diff --git a/res/values-de/strings.xml b/res/values-de/strings.xml
index 363bde7..f6f6d86 100644
--- a/res/values-de/strings.xml
+++ b/res/values-de/strings.xml
@@ -1431,7 +1431,7 @@
     <string name="captioning_foreground_opacity" msgid="4370967856995419788">"Texttransparenz"</string>
     <string name="captioning_edge_color" msgid="3670094753735263238">"Rahmenfarbe"</string>
     <string name="captioning_edge_type" msgid="5997247394951682154">"Rahmentyp"</string>
-    <string name="captioning_typeface" msgid="1826169240566563259">"Schriftart"</string>
+    <string name="captioning_typeface" msgid="1826169240566563259">"Schriftfamilie"</string>
     <string name="captioning_preview_text" msgid="4067935959797375065">"Untertitel sehen so aus."</string>
     <string name="captioning_preview_characters" msgid="7105909138497851769">"Aa"</string>
     <string name="locale_default" msgid="2593883646136326969">"Standard"</string>
@@ -1488,7 +1488,7 @@
     <string name="battery_since_reset" msgid="7464546661121187045">"Akkuverbrauch seit dem Zurücksetzen"</string>
     <string name="battery_stats_on_battery" msgid="4970762168505236033">"<xliff:g id="TIME">%1$s</xliff:g> mit Akku"</string>
     <string name="battery_stats_duration" msgid="7464501326709469282">"<xliff:g id="TIME">%1$s</xliff:g> seit dem Ausstecken"</string>
-    <string name="battery_stats_charging_label" msgid="4223311142875178785">"Wird geladen..."</string>
+    <string name="battery_stats_charging_label" msgid="4223311142875178785">"Wird aufgeladen..."</string>
     <string name="battery_stats_screen_on_label" msgid="7150221809877509708">"Bildschirm an"</string>
     <string name="battery_stats_gps_on_label" msgid="1193657533641951256">"GPS aktiv"</string>
     <string name="battery_stats_wifi_running_label" msgid="1845839195549226252">"WLAN"</string>
diff --git a/res/values-pt/arrays.xml b/res/values-pt/arrays.xml
index edcf557..fcacb1d 100644
--- a/res/values-pt/arrays.xml
+++ b/res/values-pt/arrays.xml
@@ -331,9 +331,16 @@
     <item msgid="2560532955514699713">"Médio"</item>
     <item msgid="2372711992605524591">"Longo"</item>
   </string-array>
-    <!-- no translation found for captioning_typeface_selector_titles:5 (6857338041963571301) -->
-    <!-- no translation found for captioning_typeface_selector_titles:6 (961716102408512888) -->
-    <!-- no translation found for captioning_typeface_selector_titles:7 (784581717183349567) -->
+  <string-array name="captioning_typeface_selector_titles">
+    <item msgid="1319652728542138112">"Padrão"</item>
+    <item msgid="1016452621833735880">"Sans-serif"</item>
+    <item msgid="2496277987934654454">"Sans-serif condensado"</item>
+    <item msgid="4406003087391086325">"Serif"</item>
+    <item msgid="1558362802170124073">"Espaçamento uniforme"</item>
+    <item msgid="6857338041963571301">"Casual"</item>
+    <item msgid="961716102408512888">"Cursiva"</item>
+    <item msgid="784581717183349567">"Maiúsculas pequenas"</item>
+  </string-array>
   <string-array name="captioning_font_size_selector_titles">
     <item msgid="4800919809575254054">"Muito pequeno"</item>
     <item msgid="6781094565687692782">"Pequeno"</item>
@@ -341,8 +348,13 @@
     <item msgid="5813217276778560466">"Grande"</item>
     <item msgid="9044232017390975191">"Muito grande"</item>
   </string-array>
-    <!-- no translation found for captioning_edge_type_selector_titles:3 (4620283365518546731) -->
-    <!-- no translation found for captioning_edge_type_selector_titles:4 (6395808180998856466) -->
+  <string-array name="captioning_edge_type_selector_titles">
+    <item msgid="6022616153255438487">"Nenhum"</item>
+    <item msgid="1352974708028506778">"Contorno"</item>
+    <item msgid="5850876295428722675">"Sombra"</item>
+    <item msgid="4620283365518546731">"Aumentada"</item>
+    <item msgid="6395808180998856466">"Reduzida"</item>
+  </string-array>
   <string-array name="captioning_opacity_selector_titles">
     <item msgid="7622491218136667566">"25%"</item>
     <item msgid="2367156416247936773">"50%"</item>
diff --git a/res/values-pt/strings.xml b/res/values-pt/strings.xml
index 48daf09..d02cd46 100644
--- a/res/values-pt/strings.xml
+++ b/res/values-pt/strings.xml
@@ -1424,10 +1424,8 @@
     <string name="captioning_custom_options_title" msgid="5067500939930322405">"Opções de personalização"</string>
     <string name="captioning_background_color" msgid="9053011212948992570">"Cor do plano de fundo"</string>
     <string name="captioning_background_opacity" msgid="6029993616419971202">"Opacidade do plano de fundo"</string>
-    <!-- no translation found for captioning_window_color (6902052743419717394) -->
-    <skip />
-    <!-- no translation found for captioning_window_opacity (5041556024849862376) -->
-    <skip />
+    <string name="captioning_window_color" msgid="6902052743419717394">"Cor da janela de legendas"</string>
+    <string name="captioning_window_opacity" msgid="5041556024849862376">"Opacidade da janela de legendas"</string>
     <string name="captioning_foreground_color" msgid="85623486537640059">"Cor do texto"</string>
     <string name="captioning_foreground_opacity" msgid="4370967856995419788">"Opacidade do texto"</string>
     <string name="captioning_edge_color" msgid="3670094753735263238">"Cor da borda"</string>
diff --git a/res/values-sk/strings.xml b/res/values-sk/strings.xml
index 1516837..bf1948b 100644
--- a/res/values-sk/strings.xml
+++ b/res/values-sk/strings.xml
@@ -334,8 +334,8 @@
     <string name="crypt_keeper_encrypt_summary" product="tablet" msgid="6291564408810586">"Pri každom zapnutí tabletu požadovať číslo PIN alebo heslo na jeho dešifrovanie"</string>
     <string name="crypt_keeper_encrypt_summary" product="default" msgid="514138079795442371">"Pri každom zapnutí telefónu požadovať číslo PIN alebo heslo na jeho dešifrovanie"</string>
     <string name="crypt_keeper_encrypted_summary" msgid="1868233637888132906">"Šifrované"</string>
-    <string name="crypt_keeper_desc" product="tablet" msgid="3839235202103924154">"Svoje účty, nastavenia, prevzaté aplikácie a ich údaje môžete šifrovať. Po zašifrovaní tabletu budete musieť pri každom zapnutí zadať číselný kód PIN alebo heslo a dešifrovať ho – toto šifrovanie budete môcť zrušiť iba obnovením továrenských nastavení, čím sa všetky údaje v tablete vymažú.\n\nŠifrovanie môže trvať aj viac ako hodinu. V tablete musí byť pred šifrovaním nabitá batéria a po celú dobu šifrovania musí byť pripojený k zdroju napájania. Ak šifrovanie prerušíte, stratíte niektoré alebo všetky údaje."</string>
-    <string name="crypt_keeper_desc" product="default" msgid="7663118199519229502">"Svoje účty, nastavenia, prevzaté aplikácie a ich údaje môžete šifrovať. Po zašifrovaní telefónu budete musieť pri každom zapnutí zadať číselný kód PIN alebo heslo a dešifrovať ho – toto šifrovanie budete môcť zrušiť iba obnovením továrenských nastavení, čím sa všetky údaje v telefóne vymažú.\n\nŠifrovanie môže trvať aj viac ako hodinu. V telefóne musí byť pred šifrovaním nabitá batéria a po celú dobu šifrovania musí byť pripojený k zdroju napájania. Ak šifrovanie prerušíte, stratíte niektoré alebo všetky údaje."</string>
+    <string name="crypt_keeper_desc" product="tablet" msgid="3839235202103924154">"Svoje účty, nastavenia, stiahnuté aplikácie a ich údaje môžete šifrovať. Po zašifrovaní tabletu budete musieť pri každom zapnutí zadať číselný kód PIN alebo heslo a dešifrovať ho – toto šifrovanie budete môcť zrušiť iba obnovením továrenských nastavení, čím sa všetky údaje v tablete vymažú.\n\nŠifrovanie môže trvať aj viac ako hodinu. V tablete musí byť pred šifrovaním nabitá batéria a po celú dobu šifrovania musí byť pripojený k zdroju napájania. Ak šifrovanie prerušíte, stratíte niektoré alebo všetky údaje."</string>
+    <string name="crypt_keeper_desc" product="default" msgid="7663118199519229502">"Svoje účty, nastavenia, stiahnuté aplikácie a ich údaje môžete šifrovať. Po zašifrovaní telefónu budete musieť pri každom zapnutí zadať číselný kód PIN alebo heslo a dešifrovať ho – toto šifrovanie budete môcť zrušiť iba obnovením továrenských nastavení, čím sa všetky údaje v telefóne vymažú.\n\nŠifrovanie môže trvať aj viac ako hodinu. V telefóne musí byť pred šifrovaním nabitá batéria a po celú dobu šifrovania musí byť pripojený k zdroju napájania. Ak šifrovanie prerušíte, stratíte niektoré alebo všetky údaje."</string>
     <string name="crypt_keeper_button_text" product="tablet" msgid="1189623490604750854">"Šifrovať tablet"</string>
     <string name="crypt_keeper_button_text" product="default" msgid="2008346408473255519">"Šifrovať telefón"</string>
     <string name="crypt_keeper_low_charge_text" msgid="2029407131227814893">"Nabite batériu a skúste to znova."</string>
@@ -840,7 +840,7 @@
     <string name="memory_calculating_size" msgid="2188358544203768588">"Prebieha výpočet..."</string>
     <string name="memory_apps_usage" msgid="2348501997988663688">"Aplikácie (údaje aplikácií a obsah médií)"</string>
     <string name="memory_media_usage" msgid="3738830697707880405">"Médiá"</string>
-    <string name="memory_downloads_usage" msgid="3755173051677533027">"Prevzatia"</string>
+    <string name="memory_downloads_usage" msgid="3755173051677533027">"Stiahnutia"</string>
     <string name="memory_dcim_usage" msgid="558887013613822577">"Obrázky, videá"</string>
     <string name="memory_music_usage" msgid="1363785144783011606">"Zvuk (hudba, vyzváňacie tóny, podcasty atď.)"</string>
     <string name="memory_media_misc_usage" msgid="235452944021647124">"Rôzne"</string>
@@ -943,7 +943,7 @@
     <string name="erase_external_storage_description" product="default" msgid="1737638779582964966">"Vymazať všetky údaje na karte SD (napr. hudbu alebo fotografie)"</string>
     <string name="master_clear_button_text" product="tablet" msgid="3130786116528304116">"Obnoviť tablet"</string>
     <string name="master_clear_button_text" product="default" msgid="7550632653343157971">"Obnoviť telefón"</string>
-    <string name="master_clear_final_desc" msgid="7209547812233487345">"Vymazať všetky vaše osobné údaje a prevzaté aplikácie? Túto akciu nebude možné vrátiť späť."</string>
+    <string name="master_clear_final_desc" msgid="7209547812233487345">"Vymazať všetky vaše osobné údaje a stiahnuté aplikácie? Túto akciu nebude možné vrátiť späť."</string>
     <string name="master_clear_final_button_text" msgid="5390908019019242910">"Vymazať všetko"</string>
     <string name="master_clear_gesture_prompt" msgid="1428645764883536750">"Nakreslite bezpečnostný vzor"</string>
     <string name="master_clear_gesture_explanation" msgid="826193821455182780">"Obnovenie továrenských nastavení musíte potvrdiť nakreslením bezpečnostného vzoru."</string>
@@ -1144,7 +1144,7 @@
     <string name="filter_dlg_title" msgid="8693024463731076091">"Zvoľte možnosti filtra"</string>
     <string name="filter_apps_all" msgid="5142129378749391876">"Všetko"</string>
     <string name="filter_apps_disabled" msgid="5364447573326472890">"Zakázané"</string>
-    <string name="filter_apps_third_party" msgid="7786348047690140979">"Prevzaté"</string>
+    <string name="filter_apps_third_party" msgid="7786348047690140979">"Stiahnuté"</string>
     <string name="filter_apps_running" msgid="7767071454371350486">"Spustené"</string>
     <string name="filter_apps_onsdcard" product="nosdcard" msgid="4843063154701023349">"Ukladací priestor USB"</string>
     <string name="filter_apps_onsdcard" product="default" msgid="1477351142334784771">"Na karte SD"</string>
@@ -1910,7 +1910,7 @@
     <string name="data_usage_total_during_range_mobile" product="tablet" msgid="5961720793603268572">"<xliff:g id="RANGE">%2$s</xliff:g>: podľa meraní tabletu využitých asi <xliff:g id="TOTAL">%1$s</xliff:g>. Operátor môže využitie dát účtovať inak."</string>
     <string name="data_usage_total_during_range_mobile" product="default" msgid="1625833170144610767">"<xliff:g id="RANGE">%2$s</xliff:g>: podľa meraní telefónu využitých asi <xliff:g id="TOTAL">%1$s</xliff:g>. Operátor môže využitie dát účtovať inak."</string>
     <string name="data_usage_metered_title" msgid="6204750602856383278">"Mobilné hotspoty"</string>
-    <string name="data_usage_metered_body" msgid="4959032833706695848">"Vyberte siete Wi-Fi, ktoré sú mobilnými hotspotmi. Aplikáciám na pozadí môže byť používanie týchto sietí zakázané. Aplikácie môžu tiež pred preberaním veľkých súborov pomocou týchto sietí zobraziť upozornenie."</string>
+    <string name="data_usage_metered_body" msgid="4959032833706695848">"Vyberte siete Wi-Fi, ktoré sú mobilnými hotspotmi. Aplikáciám na pozadí môže byť používanie týchto sietí zakázané. Aplikácie môžu tiež pred sťahovaním veľkých súborov pomocou týchto sietí zobraziť upozornenie."</string>
     <string name="data_usage_metered_mobile" msgid="5423305619126978393">"Mobilné siete"</string>
     <string name="data_usage_metered_wifi" msgid="8540872226614404873">"Siete Wi-Fi"</string>
     <string name="data_usage_metered_wifi_disabled" msgid="5502020778468643732">"Ak chcete vybrať mobil. hotspoty, zapnite pripoj. k sieti Wi-Fi."</string>
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index 0eb90d0..a9506e8 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -27,10 +27,6 @@
                 android:title="@string/wallpaper_settings_title"
                 android:fragment="com.android.settings.WallpaperTypeSettings" />
 
-        <CheckBoxPreference
-            android:key="accelerometer"
-            android:title="@string/accelerometer_title"/>
-
         <ListPreference
                 android:key="screen_timeout"
                 android:title="@string/screen_timeout"
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index b0c944d..ab00a0d 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -49,14 +49,12 @@
     private static final int FALLBACK_SCREEN_TIMEOUT_VALUE = 30000;
 
     private static final String KEY_SCREEN_TIMEOUT = "screen_timeout";
-    private static final String KEY_ACCELEROMETER = "accelerometer";
     private static final String KEY_FONT_SIZE = "font_size";
     private static final String KEY_NOTIFICATION_PULSE = "notification_pulse";
     private static final String KEY_SCREEN_SAVER = "screensaver";
 
     private static final int DLG_GLOBAL_CHANGE_WARNING = 1;
 
-    private CheckBoxPreference mAccelerometer;
     private WarnedListPreference mFontSizePref;
     private CheckBoxPreference mNotificationPulse;
 
@@ -65,14 +63,6 @@
     private ListPreference mScreenTimeoutPreference;
     private Preference mScreenSaverPreference;
 
-    private final RotationPolicy.RotationPolicyListener mRotationPolicyListener =
-            new RotationPolicy.RotationPolicyListener() {
-        @Override
-        public void onChange() {
-            updateAccelerometerRotationCheckbox();
-        }
-    };
-
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
@@ -80,16 +70,6 @@
 
         addPreferencesFromResource(R.xml.display_settings);
 
-        mAccelerometer = (CheckBoxPreference) findPreference(KEY_ACCELEROMETER);
-        mAccelerometer.setPersistent(false);
-        if (!RotationPolicy.isRotationSupported(getActivity())
-                || RotationPolicy.isRotationLockToggleSupported(getActivity())) {
-            // If rotation lock is supported, then we do not provide this option in
-            // Display settings.  However, is still available in Accessibility settings,
-            // if the device supports rotation.
-            getPreferenceScreen().removePreference(mAccelerometer);
-        }
-
         mScreenSaverPreference = findPreference(KEY_SCREEN_SAVER);
         if (mScreenSaverPreference != null
                 && getResources().getBoolean(
@@ -226,21 +206,10 @@
     public void onResume() {
         super.onResume();
 
-        RotationPolicy.registerRotationPolicyListener(getActivity(),
-                mRotationPolicyListener);
-
         updateState();
     }
 
     @Override
-    public void onPause() {
-        super.onPause();
-
-        RotationPolicy.unregisterRotationPolicyListener(getActivity(),
-                mRotationPolicyListener);
-    }
-
-    @Override
     public Dialog onCreateDialog(int dialogId) {
         if (dialogId == DLG_GLOBAL_CHANGE_WARNING) {
             return Utils.buildGlobalChangeWarningDialog(getActivity(),
@@ -255,7 +224,6 @@
     }
 
     private void updateState() {
-        updateAccelerometerRotationCheckbox();
         readFontSizePreference(mFontSizePref);
         updateScreenSaverSummary();
     }
@@ -267,12 +235,6 @@
         }
     }
 
-    private void updateAccelerometerRotationCheckbox() {
-        if (getActivity() == null) return;
-
-        mAccelerometer.setChecked(!RotationPolicy.isRotationLocked(getActivity()));
-    }
-
     public void writeFontSizePreference(Object objValue) {
         try {
             mCurConfig.fontScale = Float.parseFloat(objValue.toString());
@@ -284,10 +246,7 @@
 
     @Override
     public boolean onPreferenceTreeClick(PreferenceScreen preferenceScreen, Preference preference) {
-        if (preference == mAccelerometer) {
-            RotationPolicy.setRotationLockForAccessibility(
-                    getActivity(), !mAccelerometer.isChecked());
-        } else if (preference == mNotificationPulse) {
+        if (preference == mNotificationPulse) {
             boolean value = mNotificationPulse.isChecked();
             Settings.System.putInt(getContentResolver(), Settings.System.NOTIFICATION_LIGHT_PULSE,
                     value ? 1 : 0);
diff --git a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
index ed5085a..29b1e92 100644
--- a/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
+++ b/src/com/android/settings/deviceinfo/StorageVolumePreferenceCategory.java
@@ -283,7 +283,7 @@
                 mFormatPreference.setSummary(mResources.getString(R.string.mtp_ptp_mode_summary));
             }
         } else if (mFormatPreference != null) {
-            mFormatPreference.setEnabled(true);
+            mFormatPreference.setEnabled(mMountTogglePreference.isEnabled());
             mFormatPreference.setSummary(mResources.getString(R.string.sd_format_summary));
         }
     }
