diff --git a/ShamuLayout/res/values-af/strings.xml b/ShamuLayout/res/values-af/strings.xml
new file mode 100644
index 0000000..8f3f7c2
--- /dev/null
+++ b/ShamuLayout/res/values-af/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6-tuisskerm"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Skep"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-am/strings.xml b/ShamuLayout/res/values-am/strings.xml
new file mode 100644
index 0000000..91baaa5
--- /dev/null
+++ b/ShamuLayout/res/values-am/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 መነሻ ማያ"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"ፍጠር"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ar/strings.xml b/ShamuLayout/res/values-ar/strings.xml
new file mode 100644
index 0000000..6aafd3d
--- /dev/null
+++ b/ShamuLayout/res/values-ar/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"‏شاشة جهاز Nexus 6 الرئيسية"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"إنشاء"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-bg/strings.xml b/ShamuLayout/res/values-bg/strings.xml
new file mode 100644
index 0000000..4b3d7a3
--- /dev/null
+++ b/ShamuLayout/res/values-bg/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Начален екран на Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Googlе"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Създаване"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Google Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-bn-rBD/strings.xml b/ShamuLayout/res/values-bn-rBD/strings.xml
new file mode 100644
index 0000000..4ba9899
--- /dev/null
+++ b/ShamuLayout/res/values-bn-rBD/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 হোম স্ক্রীন"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"তৈরি করুন"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ca/strings.xml b/ShamuLayout/res/values-ca/strings.xml
new file mode 100644
index 0000000..f6c7037
--- /dev/null
+++ b/ShamuLayout/res/values-ca/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Pantalla d\'inici de Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Creació"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-cs/strings.xml b/ShamuLayout/res/values-cs/strings.xml
new file mode 100644
index 0000000..fc64569
--- /dev/null
+++ b/ShamuLayout/res/values-cs/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Plocha tabletu Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Vytvořit"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Přehrát"</string>
+</resources>
diff --git a/ShamuLayout/res/values-da/strings.xml b/ShamuLayout/res/values-da/strings.xml
new file mode 100644
index 0000000..3d35a11
--- /dev/null
+++ b/ShamuLayout/res/values-da/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Startskærm på Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Opret"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-de/strings.xml b/ShamuLayout/res/values-de/strings.xml
new file mode 100644
index 0000000..9ac1a96
--- /dev/null
+++ b/ShamuLayout/res/values-de/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6-Startbildschirm"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Erstellen"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-el/strings.xml b/ShamuLayout/res/values-el/strings.xml
new file mode 100644
index 0000000..ce43a97
--- /dev/null
+++ b/ShamuLayout/res/values-el/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Αρχική οθόνη Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Δημιουργία"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Αναπαραγωγή"</string>
+</resources>
diff --git a/ShamuLayout/res/values-en-rGB/strings.xml b/ShamuLayout/res/values-en-rGB/strings.xml
new file mode 100644
index 0000000..f70e03d
--- /dev/null
+++ b/ShamuLayout/res/values-en-rGB/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 Home Screen"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Create"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-en-rIN/strings.xml b/ShamuLayout/res/values-en-rIN/strings.xml
new file mode 100644
index 0000000..f70e03d
--- /dev/null
+++ b/ShamuLayout/res/values-en-rIN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 Home Screen"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Create"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-es-rUS/strings.xml b/ShamuLayout/res/values-es-rUS/strings.xml
new file mode 100644
index 0000000..7614e0d
--- /dev/null
+++ b/ShamuLayout/res/values-es-rUS/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Pantalla principal de Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Crear"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-es/strings.xml b/ShamuLayout/res/values-es/strings.xml
new file mode 100644
index 0000000..bdfc978
--- /dev/null
+++ b/ShamuLayout/res/values-es/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Pantalla de inicio de Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Crear"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Reproducir"</string>
+</resources>
diff --git a/ShamuLayout/res/values-et-rEE/strings.xml b/ShamuLayout/res/values-et-rEE/strings.xml
new file mode 100644
index 0000000..08af861
--- /dev/null
+++ b/ShamuLayout/res/values-et-rEE/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 avaekraan"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Loomine"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Esitamine"</string>
+</resources>
diff --git a/ShamuLayout/res/values-eu-rES/strings.xml b/ShamuLayout/res/values-eu-rES/strings.xml
new file mode 100644
index 0000000..cfafcf1
--- /dev/null
+++ b/ShamuLayout/res/values-eu-rES/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 hasierako pantaila"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Sortu"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-fa/strings.xml b/ShamuLayout/res/values-fa/strings.xml
new file mode 100644
index 0000000..4e57eb5
--- /dev/null
+++ b/ShamuLayout/res/values-fa/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"‏صفحه اصلی Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"ایجاد"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"پخش"</string>
+</resources>
diff --git a/ShamuLayout/res/values-fi/strings.xml b/ShamuLayout/res/values-fi/strings.xml
new file mode 100644
index 0000000..33366d6
--- /dev/null
+++ b/ShamuLayout/res/values-fi/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6:n aloitusruutu"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Luo"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Toista"</string>
+</resources>
diff --git a/ShamuLayout/res/values-fr-rCA/strings.xml b/ShamuLayout/res/values-fr-rCA/strings.xml
new file mode 100644
index 0000000..910b509
--- /dev/null
+++ b/ShamuLayout/res/values-fr-rCA/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Écran d\'accueil du Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Créer"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Google Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-fr/strings.xml b/ShamuLayout/res/values-fr/strings.xml
new file mode 100644
index 0000000..de0a5c1
--- /dev/null
+++ b/ShamuLayout/res/values-fr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Écran d\'accueil du Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Créer"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-gl-rES/strings.xml b/ShamuLayout/res/values-gl-rES/strings.xml
new file mode 100644
index 0000000..177281f
--- /dev/null
+++ b/ShamuLayout/res/values-gl-rES/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Pantalla de inicio de Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Crear"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-hi/strings.xml b/ShamuLayout/res/values-hi/strings.xml
new file mode 100644
index 0000000..65711ed
--- /dev/null
+++ b/ShamuLayout/res/values-hi/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 होम स्क्रीन"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"बनाएं"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"चलाएं"</string>
+</resources>
diff --git a/ShamuLayout/res/values-hr/strings.xml b/ShamuLayout/res/values-hr/strings.xml
new file mode 100644
index 0000000..a39e96f
--- /dev/null
+++ b/ShamuLayout/res/values-hr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Početni zaslon Nexusa 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Izrada"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-hu/strings.xml b/ShamuLayout/res/values-hu/strings.xml
new file mode 100644
index 0000000..d710449
--- /dev/null
+++ b/ShamuLayout/res/values-hu/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 kezdőképernyő"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Létrehozás"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-hy-rAM/strings.xml b/ShamuLayout/res/values-hy-rAM/strings.xml
new file mode 100644
index 0000000..38fa107
--- /dev/null
+++ b/ShamuLayout/res/values-hy-rAM/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 հիմնական էկրան"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Ստեղծել"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-in/strings.xml b/ShamuLayout/res/values-in/strings.xml
new file mode 100644
index 0000000..e98234c
--- /dev/null
+++ b/ShamuLayout/res/values-in/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Layar Utama Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Buat"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-is-rIS/strings.xml b/ShamuLayout/res/values-is-rIS/strings.xml
new file mode 100644
index 0000000..6c5e7ca
--- /dev/null
+++ b/ShamuLayout/res/values-is-rIS/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Heimaskjár Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Búa til"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-it/strings.xml b/ShamuLayout/res/values-it/strings.xml
new file mode 100644
index 0000000..3bf6d7e
--- /dev/null
+++ b/ShamuLayout/res/values-it/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Schermata Home del Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Crea"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-iw/strings.xml b/ShamuLayout/res/values-iw/strings.xml
new file mode 100644
index 0000000..bc74ede
--- /dev/null
+++ b/ShamuLayout/res/values-iw/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"‏מסך דף הבית של Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"צור"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ja/strings.xml b/ShamuLayout/res/values-ja/strings.xml
new file mode 100644
index 0000000..e0508dc
--- /dev/null
+++ b/ShamuLayout/res/values-ja/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6ホーム画面"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"作成"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ka-rGE/strings.xml b/ShamuLayout/res/values-ka-rGE/strings.xml
new file mode 100644
index 0000000..3d8fa72
--- /dev/null
+++ b/ShamuLayout/res/values-ka-rGE/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 მთავარი ეკრანი"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"შექმნა"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-kk-rKZ/strings.xml b/ShamuLayout/res/values-kk-rKZ/strings.xml
new file mode 100644
index 0000000..8512a92
--- /dev/null
+++ b/ShamuLayout/res/values-kk-rKZ/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 негізгі экраны"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Жасау"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Ойнату"</string>
+</resources>
diff --git a/ShamuLayout/res/values-km-rKH/strings.xml b/ShamuLayout/res/values-km-rKH/strings.xml
new file mode 100644
index 0000000..521f27c
--- /dev/null
+++ b/ShamuLayout/res/values-km-rKH/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"អេក្រង់​ដើម Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"បង្កើត"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"ចាក់"</string>
+</resources>
diff --git a/ShamuLayout/res/values-kn-rIN/strings.xml b/ShamuLayout/res/values-kn-rIN/strings.xml
new file mode 100644
index 0000000..93b03ac
--- /dev/null
+++ b/ShamuLayout/res/values-kn-rIN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 ಹೋಮ್‌ ಪರದೆ"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"ರಚಿಸಿ"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"ಪ್ಲೇ ಮಾಡು"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ko/strings.xml b/ShamuLayout/res/values-ko/strings.xml
new file mode 100644
index 0000000..e266731
--- /dev/null
+++ b/ShamuLayout/res/values-ko/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 메인 스크린"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"만들기"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ky-rKG/strings.xml b/ShamuLayout/res/values-ky-rKG/strings.xml
new file mode 100644
index 0000000..ce04d48
--- /dev/null
+++ b/ShamuLayout/res/values-ky-rKG/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 Башкы экраны"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Түзүү"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Ойнотуу"</string>
+</resources>
diff --git a/ShamuLayout/res/values-lo-rLA/strings.xml b/ShamuLayout/res/values-lo-rLA/strings.xml
new file mode 100644
index 0000000..ee4740c
--- /dev/null
+++ b/ShamuLayout/res/values-lo-rLA/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"ໜ້າຫຼັກ Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"ສ້າງ"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"ຫຼິ້ນ"</string>
+</resources>
diff --git a/ShamuLayout/res/values-lt/strings.xml b/ShamuLayout/res/values-lt/strings.xml
new file mode 100644
index 0000000..9f17d19
--- /dev/null
+++ b/ShamuLayout/res/values-lt/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Pagrindinis „Nexus 6“ ekranas"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Sukurti"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-lv/strings.xml b/ShamuLayout/res/values-lv/strings.xml
new file mode 100644
index 0000000..39c3219
--- /dev/null
+++ b/ShamuLayout/res/values-lv/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 sākuma ekrāns"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Izveidot"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Atskaņot"</string>
+</resources>
diff --git a/ShamuLayout/res/values-mk-rMK/strings.xml b/ShamuLayout/res/values-mk-rMK/strings.xml
new file mode 100644
index 0000000..f0ac9d6
--- /dev/null
+++ b/ShamuLayout/res/values-mk-rMK/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Почетен екран на Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Создај"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Пушти"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ml-rIN/strings.xml b/ShamuLayout/res/values-ml-rIN/strings.xml
new file mode 100644
index 0000000..60772eb
--- /dev/null
+++ b/ShamuLayout/res/values-ml-rIN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 ഹോം സ്‌ക്രീൻ"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"സൃഷ്‌ടിക്കുക"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"പ്ലേ ചെയ്യുക"</string>
+</resources>
diff --git a/ShamuLayout/res/values-mn-rMN/strings.xml b/ShamuLayout/res/values-mn-rMN/strings.xml
new file mode 100644
index 0000000..328998f
--- /dev/null
+++ b/ShamuLayout/res/values-mn-rMN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 Үндсэн дэлгэц"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Үүсгэх"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-mr-rIN/strings.xml b/ShamuLayout/res/values-mr-rIN/strings.xml
new file mode 100644
index 0000000..1a866b7
--- /dev/null
+++ b/ShamuLayout/res/values-mr-rIN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 मुख्य स्क्रीन"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"तयार करा"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"प्ले करा"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ms-rMY/strings.xml b/ShamuLayout/res/values-ms-rMY/strings.xml
new file mode 100644
index 0000000..e8bc50b
--- /dev/null
+++ b/ShamuLayout/res/values-ms-rMY/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Skrin Utama Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Buat"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-my-rMM/strings.xml b/ShamuLayout/res/values-my-rMM/strings.xml
new file mode 100644
index 0000000..c41776c
--- /dev/null
+++ b/ShamuLayout/res/values-my-rMM/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus ၆ ပင်မ မျက်နှာပြင်"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"ဖန်တီးရန်"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"ဖွင့်ရန်"</string>
+</resources>
diff --git a/ShamuLayout/res/values-nb/strings.xml b/ShamuLayout/res/values-nb/strings.xml
new file mode 100644
index 0000000..23e5168
--- /dev/null
+++ b/ShamuLayout/res/values-nb/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6-startsiden"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Opprett"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ne-rNP/strings.xml b/ShamuLayout/res/values-ne-rNP/strings.xml
new file mode 100644
index 0000000..2f8a96f
--- /dev/null
+++ b/ShamuLayout/res/values-ne-rNP/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"नेक्सस ६ गृह स्क्रिन"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"सिर्जना गर्नुहोस्"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"बजाउनुहोस्"</string>
+</resources>
diff --git a/ShamuLayout/res/values-nl/strings.xml b/ShamuLayout/res/values-nl/strings.xml
new file mode 100644
index 0000000..399f81c
--- /dev/null
+++ b/ShamuLayout/res/values-nl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6-startscherm"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Maken"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Afspelen"</string>
+</resources>
diff --git a/ShamuLayout/res/values-pl/strings.xml b/ShamuLayout/res/values-pl/strings.xml
new file mode 100644
index 0000000..65267f7
--- /dev/null
+++ b/ShamuLayout/res/values-pl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Ekran główny Nexusa 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Utwórz"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-pt-rPT/strings.xml b/ShamuLayout/res/values-pt-rPT/strings.xml
new file mode 100644
index 0000000..3871f43
--- /dev/null
+++ b/ShamuLayout/res/values-pt-rPT/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Ecrã principal do Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Criar"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-pt/strings.xml b/ShamuLayout/res/values-pt/strings.xml
new file mode 100644
index 0000000..cc60a5f
--- /dev/null
+++ b/ShamuLayout/res/values-pt/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Tela inicial do Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Criar"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ro/strings.xml b/ShamuLayout/res/values-ro/strings.xml
new file mode 100644
index 0000000..f087d26
--- /dev/null
+++ b/ShamuLayout/res/values-ro/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Ecranul de pornire Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Creați"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Redați"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ru/strings.xml b/ShamuLayout/res/values-ru/strings.xml
new file mode 100644
index 0000000..287011d
--- /dev/null
+++ b/ShamuLayout/res/values-ru/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Главный экран Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Создать"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-si-rLK/strings.xml b/ShamuLayout/res/values-si-rLK/strings.xml
new file mode 100644
index 0000000..a8e1d1f
--- /dev/null
+++ b/ShamuLayout/res/values-si-rLK/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 මුල් තිරය"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"සාදන්න"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"ධාවනය කරන්න"</string>
+</resources>
diff --git a/ShamuLayout/res/values-sk/strings.xml b/ShamuLayout/res/values-sk/strings.xml
new file mode 100644
index 0000000..1043e53
--- /dev/null
+++ b/ShamuLayout/res/values-sk/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Plocha zariadenia Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Vytvoriť"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-sl/strings.xml b/ShamuLayout/res/values-sl/strings.xml
new file mode 100644
index 0000000..f1be526
--- /dev/null
+++ b/ShamuLayout/res/values-sl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Začetni zaslon Nexusa 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Ustvari"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Google Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-sr/strings.xml b/ShamuLayout/res/values-sr/strings.xml
new file mode 100644
index 0000000..ab08dd6
--- /dev/null
+++ b/ShamuLayout/res/values-sr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Почетни екран Nexus-а 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Направи"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-sv/strings.xml b/ShamuLayout/res/values-sv/strings.xml
new file mode 100644
index 0000000..b5f30b6
--- /dev/null
+++ b/ShamuLayout/res/values-sv/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Startskärm för Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Skapa"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-sw/strings.xml b/ShamuLayout/res/values-sw/strings.xml
new file mode 100644
index 0000000..fc0cb46
--- /dev/null
+++ b/ShamuLayout/res/values-sw/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Skrini ya Kwanza ya Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Unda"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Google Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ta-rIN/strings.xml b/ShamuLayout/res/values-ta-rIN/strings.xml
new file mode 100644
index 0000000..3229346
--- /dev/null
+++ b/ShamuLayout/res/values-ta-rIN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 முகப்புத் திரை"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"உருவாக்கு"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-te-rIN/strings.xml b/ShamuLayout/res/values-te-rIN/strings.xml
new file mode 100644
index 0000000..fb4898c
--- /dev/null
+++ b/ShamuLayout/res/values-te-rIN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 హోమ్ స్క్రీన్"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"సృష్టించండి"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-th/strings.xml b/ShamuLayout/res/values-th/strings.xml
new file mode 100644
index 0000000..1a2a44e
--- /dev/null
+++ b/ShamuLayout/res/values-th/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"หน้าจอหลักของ Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"สร้าง"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"เล่น"</string>
+</resources>
diff --git a/ShamuLayout/res/values-tl/strings.xml b/ShamuLayout/res/values-tl/strings.xml
new file mode 100644
index 0000000..13e9505
--- /dev/null
+++ b/ShamuLayout/res/values-tl/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Home Screen ng Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Gumawa"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"I-play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-tr/strings.xml b/ShamuLayout/res/values-tr/strings.xml
new file mode 100644
index 0000000..80f22f8
--- /dev/null
+++ b/ShamuLayout/res/values-tr/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 Ana Ekranı"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Oluştur"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Google Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-uk/strings.xml b/ShamuLayout/res/values-uk/strings.xml
new file mode 100644
index 0000000..bd1cfda
--- /dev/null
+++ b/ShamuLayout/res/values-uk/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Головний екран Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Створити"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-ur-rPK/strings.xml b/ShamuLayout/res/values-ur-rPK/strings.xml
new file mode 100644
index 0000000..9066e36
--- /dev/null
+++ b/ShamuLayout/res/values-ur-rPK/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"‏Nexus 6 ہوم اسکرین"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"بنائیں"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-uz-rUZ/strings.xml b/ShamuLayout/res/values-uz-rUZ/strings.xml
new file mode 100644
index 0000000..15e8556
--- /dev/null
+++ b/ShamuLayout/res/values-uz-rUZ/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 bosh ekrani"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Yangi yaratish"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-vi/strings.xml b/ShamuLayout/res/values-vi/strings.xml
new file mode 100644
index 0000000..dcebff1
--- /dev/null
+++ b/ShamuLayout/res/values-vi/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Màn hình chính Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Tạo"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Phát"</string>
+</resources>
diff --git a/ShamuLayout/res/values-zh-rCN/strings.xml b/ShamuLayout/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000..a43a46d
--- /dev/null
+++ b/ShamuLayout/res/values-zh-rCN/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6主屏幕"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"创建"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-zh-rHK/strings.xml b/ShamuLayout/res/values-zh-rHK/strings.xml
new file mode 100644
index 0000000..eed3e51
--- /dev/null
+++ b/ShamuLayout/res/values-zh-rHK/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 主畫面"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"建立"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"播放"</string>
+</resources>
diff --git a/ShamuLayout/res/values-zh-rTW/strings.xml b/ShamuLayout/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000..1a46e1e
--- /dev/null
+++ b/ShamuLayout/res/values-zh-rTW/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Nexus 6 主螢幕"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"建立"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"Play"</string>
+</resources>
diff --git a/ShamuLayout/res/values-zu/strings.xml b/ShamuLayout/res/values-zu/strings.xml
new file mode 100644
index 0000000..2edce08
--- /dev/null
+++ b/ShamuLayout/res/values-zu/strings.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--  Copyright (C) 2014 The Android Open Source Project
+
+     Licensed under the Apache License, Version 2.0 (the "License");
+     you may not use this file except in compliance with the License.
+     You may obtain a copy of the License at
+
+          http://www.apache.org/licenses/LICENSE-2.0
+
+     Unless required by applicable law or agreed to in writing, software
+     distributed under the License is distributed on an "AS IS" BASIS,
+     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+     See the License for the specific language governing permissions and
+     limitations under the License.
+ -->
+
+<resources xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
+    <string name="app_label" msgid="4827444239162090155">"Isikrini sasekhaya se-Nexus 6"</string>
+    <string name="google_folder_title" msgid="3050712152111669078">"Google"</string>
+    <string name="create_folder_title" msgid="1626185277541881691">"Dala"</string>
+    <string name="play_folder_title" msgid="8796147714003891112">"I-Play"</string>
+</resources>
diff --git a/camera/QCamera2/QCamera2Hal.cpp b/camera/QCamera2/QCamera2Hal.cpp
index 8696f5f..6d36778 100644
--- a/camera/QCamera2/QCamera2Hal.cpp
+++ b/camera/QCamera2/QCamera2Hal.cpp
@@ -49,5 +49,6 @@
     set_callbacks: qcamera::QCamera2Factory::set_callbacks,
     get_vendor_tag_ops: qcamera::QCamera3VendorTags::get_vendor_tag_ops,
     open_legacy: qcamera::QCamera2Factory::open_legacy,
+    set_torch_mode: NULL,
     reserved: {0}
 };
diff --git a/device.mk b/device.mk
index 7a87626..ea1fa7b 100644
--- a/device.mk
+++ b/device.mk
@@ -201,9 +201,6 @@
 PRODUCT_PACKAGES += \
     keystore.msm8084
 
-PRODUCT_PACKAGES += \
-    qrngd
-
 PRODUCT_PROPERTY_OVERRIDES += \
     ro.opengles.version=196609
 
diff --git a/qrngd/Android.mk b/qrngd/Android.mk
deleted file mode 100644
index 18640be..0000000
--- a/qrngd/Android.mk
+++ /dev/null
@@ -1,9 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_SRC_FILES:= qrngd.c
-LOCAL_SHARED_LIBRARIES := libc libcutils
-LOCAL_CFLAGS := -DANDROID_CHANGES
-LOCAL_MODULE = qrngd
-LOCAL_MODULE_TAGS := optional
-include $(BUILD_EXECUTABLE)
diff --git a/qrngd/qrngd.c b/qrngd/qrngd.c
deleted file mode 100644
index 0be5bd3..0000000
--- a/qrngd/qrngd.c
+++ /dev/null
@@ -1,462 +0,0 @@
-/*
- * Copyright (c) 2011, The Linux Foundation. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *     * Redistributions of source code must retain the above copyright
- *       notice, this list of conditions and the following disclaimer.
- *     * Redistributions in binary form must reproduce the above
- *       copyright notice, this list of conditions and the following
- *       disclaimer in the documentation and/or other materials provided
- *       with the distribution.
- *     * Neither the name of The Linux Foundation nor the names of its
- *       contributors may be used to endorse or promote products derived
- *       from this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
- * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
- * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
- * ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
- * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
- * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
- * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
- * IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- */
-#include <stdint.h>
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <signal.h>
-#include <syslog.h>
-#include <unistd.h>
-#include <linux/random.h>
-#include <linux/types.h>
-#include <sys/ioctl.h>
-#include <sys/stat.h>
-#include <sys/time.h>
-#include <sys/types.h>
-#include <sys/poll.h>
-#include <linux/capability.h>
-#include <sys/prctl.h>
-#include <private/android_filesystem_config.h>
-
-#ifdef ANDROID_CHANGES
-#include <android/log.h>
-#endif
-
-#ifndef min
-	#define min(a,b) (((a)>(b))?(b):(a))
-#endif
-
-typedef unsigned char bool;
-
-#define TRUE 1
-#define FALSE 0
-
-#define RANDOM_DEVICE       "/dev/random"
-#define RANDOM_DEVICE_HW    "/dev/hw_random"
-
-/* The device (/dev/random) internal limits 4096 bits of entropy, 512 bytes */
-#define MAX_ENT_POOL_BITS  4096
-#define MAX_ENT_POOL_BYTES (MAX_ENT_POOL_BITS / 8)
-
-#define MAX_ENT_POOL_WRITES 128  		/* write pool with smaller chunks */
-
-///* Burst-mode timeout in us (micro-seconds) */
-//#define BURST_MODE_TIMEOUT 100000		/* 100ms */
-///* Idle-mode wait in us (micro-seconds) */
-//#define IDLE_MODE_WAIT 10000			/* 10ms */
-
-/* Buffer to hold hardware entropy bytes (this must be 2KB for FIPS testing       */
-#define MAX_BUFFER 2048				/* do not change this value       */
-static unsigned char databuf[MAX_BUFFER];	/* create buffer for FIPS testing */
-static unsigned long buffsize;			/* size of data in buffer         */
-static unsigned long curridx;			/* position of current index      */
-
-/* Globals */
-//static bool read_blocked = FALSE;
-//static pid_t qrngd_pid;
-
-/* User parameters */
-struct user_options {
-	char            input_device_name[128];
-	char            output_device_name[128];
-	bool            run_as_daemon;
-};
-
-/* Version number of this source */
-#define APP_VERSION "1.01"
-#define APP_NAME    "qrngd"
-
-const char *program_version =
-APP_NAME " " APP_VERSION "\n"
-"Copyright (c) 2011, The Linux Foundation. All rights reserved.\n"
-"This is free software; see the source for copying conditions.  There is NO\n"
-"warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.\n\n";
-
-const char *program_usage =
-"Usage: " APP_NAME " [OPTION...]\n"
-"  -b                 background - become a daemon (default)\n"
-"  -f                 foreground - do not fork and become a daemon\n"
-"  -r <device name>   hardware random input device (default: /dev/hw_random)\n"
-"  -o <device name>   system random output device (default: /dev/random)\n"
-"  -h                 help (this page)\n";
-
-/* Logging information */
-enum log_level {
-	DEBUG = 0,
-	INFO = 1,
-	WARNING = 2,
-	ERROR = 3,
-	FATAL = 4,
-	LOG_MAX = 4,
-};
-
-/* Logging function for outputing to stderr or log */
-void log_print(int level, char *format, ...)
-{
-	if (level >= 0 && level <= LOG_MAX) {
-#ifdef ANDROID_CHANGES
-		static int levels[5] = {
-			ANDROID_LOG_DEBUG, ANDROID_LOG_INFO, ANDROID_LOG_WARN,
-			ANDROID_LOG_ERROR, ANDROID_LOG_FATAL
-		};
-		va_list ap;
-		va_start(ap, format);
-		__android_log_vprint(levels[level], APP_NAME, format, ap);
-		va_end(ap);
-#else
-		static char *levels = "DIWEF";
-		va_list ap;
-		fprintf(stderr, "%c: ", levels[level]);
-		va_start(ap, format);
-		vfprintf(stderr, format, ap);
-		va_end(ap);
-		fputc('\n', stderr);
-#endif
-	}
-}
-
-static void title(void)
-{
-	printf("%s", program_version);
-}
-
-static void usage(void)
-{
-	printf("%s", program_usage);
-}
-
-/* Parse command line parameters */
-static int get_user_options(struct user_options *user_ops, int argc, char **argv)
-{
-	int max_params = argc;
-	int itr = 1;			/* skip program name */
-	while (itr < max_params) {
-		if (argv[itr][0] != '-')
-			return -1;
-
-		switch (argv[itr++][1]) {
-			case 'b':
-				user_ops->run_as_daemon = TRUE;
-				break;
-
-			case 'f':
-				user_ops->run_as_daemon = FALSE;
-				break;
-
-			case 'r':
-				if (itr < max_params) {
-					if (strlen(argv[itr]) < sizeof(user_ops->input_device_name))
-						strcpy(user_ops->input_device_name, argv[itr++]);
-					else
-						return -1;
-					break;
-				}
-				else
-					return -1;
-
-			case 'o':
-				if (itr < max_params) {
-					if (strlen(argv[itr]) < sizeof(user_ops->output_device_name))
-						strcpy(user_ops->output_device_name, argv[itr++]);
-					else
-						return -1;
-					break;
-				}
-				else
-					return -1;
-
-			case 'h':
-				return -1;
-
-
-			default:
-				fprintf(stderr, "ERROR: Bad option: '%s'\n", argv[itr-1]);
-				return -1;
-		}
-	}
-	return 0;
-}
-
-/* Only check FIPS 140-2 (Continuous Random Number Generator Test) */
-static int fips_test(const unsigned char *buf, size_t size)
-{
-	unsigned long *buff_ul = (unsigned long *) buf;
-	size_t size_ul = size >> 2;	/* convert byte to word size */
-	unsigned long last_value;
-	unsigned int rnd_ctr[256];
-	int i;
-
-
-	/* Continuous Random Number Generator Test */
-	last_value = *(buff_ul++);
-	size_ul--;
-
-	while (size_ul > 0) {
-		if (*buff_ul == last_value) {
-			log_print(ERROR, "ERROR: Bad word value from hardware.");
-			return -1;
-		} else
-			last_value = *buff_ul;
-		buff_ul++;
-		size_ul--;
-	}
-
-	/* count each random number */
-	for (i = 0; i < size; ++i) {
-		rnd_ctr[buf[i]]++;
-	}
-
-	/* check random numbers to make sure they are not bogus */
-	for (i = 0; i < 256; ++i) {
-		if (rnd_ctr[i] == 0) {
-			log_print(ERROR, "ERROR: Bad spectral random number sample.");
-			return -1;
-		}
-	}
-
-	return 0;
-}
-
-/* Read data from the hardware RNG source */
-static int read_src(int fd, void *buf, size_t size)
-{
-	size_t offset = 0;
-	char *chr = (char *) buf;
-	ssize_t ret;
-
-	if (!size)
-		return -1;
-	do {
-		ret = read(fd, chr + offset, size);
-		/* any read failure is bad */
-		if (ret == -1)
-			return -1;
-		size -= ret;
-		offset += ret;
-	} while (size > 0);
-
-	/* should have read in all of requested data */
-	if (size > 0)
-		return -1;
-	return 0;
-}
-
-/*Hold minimal permissions, so as to get IOCTL working*/
-static int qrng_update_cap()
-{
-	int retvalue = 0;
-	struct __user_cap_header_struct header;
-	struct __user_cap_data_struct cap;
-
-	memset(&header, 0, sizeof(header));
-	memset(&cap, 0, sizeof(cap));
-	prctl(PR_SET_KEEPCAPS, 1, 0, 0, 0);
-	if( 0 != setgid(AID_SYSTEM)){
-		fprintf(stderr, "setgid error\n");
-		return -1;
-	}
-	if( 0 != setuid(AID_SYSTEM)){
-		fprintf(stderr, "setuid error\n");
-		return -1;
-	}
-	header.version = _LINUX_CAPABILITY_VERSION;
-	header.pid = 0;
-	cap.effective = (1 << CAP_SYS_ADMIN) | (1 << CAP_NET_RAW);
-	cap.permitted = cap.effective;
-	cap.inheritable = 0;
-	retvalue = capset(&header, &cap);
-	if(retvalue != 0){
-		fprintf(stderr, "capset error\n");
-		return -1;
-	}
-	return 0;
-}
-
-/* The beginning of everything */
-int main(int argc, char **argv)
-{
-	struct user_options user_ops;		/* holds user configuration data     */
-	struct rand_pool_info *rand = NULL;	/* structure to pass entropy (IOCTL) */
-	int random_fd = 0;			/* output file descriptor            */
-	int random_hw_fd = 0;			/* input file descriptor             */
-	int ent_count;				/* current system entropy            */
-	int write_size;				/* max entropy data to pass          */
-	struct pollfd fds[1];			/* used for polling file descriptor  */
-	int ret;
-	int exitval = 0;
-
-	/* set default parameters */
-	user_ops.run_as_daemon = TRUE;
-	strcpy(user_ops.input_device_name, RANDOM_DEVICE_HW);
-	strcpy(user_ops.output_device_name, RANDOM_DEVICE);
-
-	/* display application header */
-	title();
-
-	/* get user preferences */
-	ret = get_user_options(&user_ops, argc, argv);
-	if (ret < 0) {
-		usage();
-		exitval = 1;
-		goto exit;
-	}
-
-	/* open hardware random device */
-	random_hw_fd = open(user_ops.input_device_name, O_RDONLY);
-	if (random_hw_fd < 0) {
-		fprintf(stderr, "Can't open hardware random device file %s\n", user_ops.input_device_name);
-		exitval = 1;
-		goto exit;
-	}
-
-	/*Hold minimal permissions, just enough to get IOCTL working*/
-	if(0 != qrng_update_cap()){
-		log_print(ERROR, "qrngd permission reset failed, exiting\n");
-		exitval = 1;
-		goto exit;
-	}
-
-	/* open random device */
-	random_fd = open(user_ops.output_device_name, O_RDWR);
-	if (random_fd < 0) {
-		fprintf(stderr, "Can't open random device file %s\n", user_ops.output_device_name);
-		exitval = 1;
-		goto exit;
-	}
-
-	/* allocate memory for ioctl data struct and buffer */
-	rand = malloc(sizeof(struct rand_pool_info) + MAX_ENT_POOL_WRITES);
-	if (!rand) {
-		fprintf(stderr, "Can't allocate memory\n");
-		exitval = 1;
-		goto exit;
-	}
-
-	/* setup poll() data */
-	memset(fds, 0 , sizeof(fds));
-	fds[0].fd = random_fd;
-	fds[0].events = POLLOUT;
-
-	/* run as daemon if requested to do so */
-	if (user_ops.run_as_daemon) {
-		fprintf(stderr, "Starting daemon.\n");
-		if (daemon(0, 0) < 0) {
-			fprintf(stderr, "can't daemonize: %s\n", strerror(errno));
-			exitval = 1;
-			goto exit;
-		}
-#ifndef ANDROID_CHANGES
-		openlog(APP_NAME, 0, LOG_DAEMON);
-#endif
-	}
-
-	/* log message */
-	log_print(INFO, APP_NAME " has started:\n" "Reading device:'%s' updating entropy for device:'%s'",
-		  user_ops.input_device_name,
-		  user_ops.output_device_name);
-
-	/* main loop to get data from hardware and feed RNG entropy pool */
-	while (1) {
-
-		/* Check for empty buffer and fill with hardware random generated numbers */
-		if (buffsize == 0) {
-			/* fill buffer with random data from hardware */
-			ret = read_src(random_hw_fd, databuf, MAX_BUFFER);
-			if (ret < 0) {
-				log_print(ERROR, "ERROR: Can't read from hardware source.");
-				exitval = 1;
-				goto exit;
-			}
-			/* run FIPS test on buffer, if buffer fails then ditch it and get new data */
-			ret = fips_test(databuf, MAX_BUFFER);
-			if (ret < 0) {
-				buffsize = 0;
-				log_print(INFO, "ERROR: Failed FIPS test.");
-			}
-			/* everything good, reset buffer variables to indicate full buffer */
-			else {
-				buffsize = MAX_BUFFER;
-				curridx  = 0;
-			}
-		}
-		/* We should have data here, if not then something bad happened above and we should wait and try again */
-		if (buffsize == 0) {
-			log_print(ERROR, "ERROR: Timeout getting valid random data from hardware.");
-			usleep(100000);	/* 100ms */
-			continue;
-		}
-
-		/* Get current entropy pool size in bits and convert to bytes */
-		if (ioctl(random_fd, RNDGETENTCNT, &ent_count) != 0) {
-			log_print(ERROR, "ERROR: Can't read entropy count.");
-			exitval = 1;
-			goto exit;
-		}
-		/* convert entropy bits to bytes */
-		ent_count >>= 3;
-
-		/* fill entropy pool */
-		write_size = min(buffsize, MAX_ENT_POOL_WRITES);
-
-		/* Write some data to the device */
-		rand->entropy_count = write_size * 8;
-		rand->buf_size      = write_size;
-		memcpy(rand->buf, &databuf[curridx], write_size);
-		curridx  += write_size;
-		buffsize -= write_size;
-
-		/* Issue the ioctl to increase the entropy count */
-		if (ioctl(random_fd, RNDADDENTROPY, rand) < 0) {
-			log_print(ERROR,"ERROR: RNDADDENTROPY ioctl() failed.");
-			exitval = 1;
-			goto exit;
-		}
-
-		/* Wait if entropy pool is full */
-		ret = poll(fds, 1, -1);
-		if (ret < 0) {
-			log_print(ERROR,"ERROR: poll call failed.");
-			/* wait if error */
-			usleep(100000);
-		}
-	}
-
-exit:
-	/* free other resources */
-	if (rand)
-		free(rand);
-	if (random_fd)
-		close(random_fd);
-	if (random_hw_fd)
-		close(random_hw_fd);
-	return exitval;
-}
-
diff --git a/sepolicy/atfwd.te b/sepolicy/atfwd.te
index a713530..0400a1a 100644
--- a/sepolicy/atfwd.te
+++ b/sepolicy/atfwd.te
@@ -13,3 +13,5 @@
 binder_use(atfwd);
 binder_call(atfwd, system_app);
 binder_call(atfwd, servicemanager);
+
+allow atfwd atfwd_service:service_manager find;
