crowdin: Add support for multiple branches

* Allow the script to run on different branches based on default_branch
* Rename files for cm-11.0
* Identity is the same for all branches

Change-Id: I1636a4d26a3509c200e42259d469282ea95946be
diff --git a/crowdin/config_cm.yaml b/crowdin/config.yaml
similarity index 100%
rename from crowdin/config_cm.yaml
rename to crowdin/config.yaml
diff --git a/crowdin/crowdin_aosp.yaml b/crowdin/crowdin_aosp.yaml
deleted file mode 100644
index 79c38ad..0000000
--- a/crowdin/crowdin_aosp.yaml
+++ /dev/null
@@ -1,148 +0,0 @@
-# crowdin_aosp.yaml
-#
-# Crowdin configuration file for CyanogenMod's
-# additional languages not supported by AOSP
-#
-# Copyright (C) 2014 The CyanogenMod Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#   http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-project_identifier: cyanogenmod-aosp
-preserve_hierarchy: true
-
-files:
-  # Framework packages
-  -
-    source:      '/frameworks/base/core/res/res/values/strings.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: &anchor
-      android_code:
-        ast: es-rXA
-        bn: bn
-        cy: cy
-        eu: eu
-        is: is
-        ku: ku
-        lb: lb
-        ml-IN: ml
-        pa-IN: pa
-        ta: ta
-        ug: ug
-
-  -
-    source:      '/frameworks/base/packages/**/values/strings.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-    ignore:
-      - /frameworks/base/packages/services
-      - /frameworks/base/packages/WallpaperCropper
-      - /frameworks/base/packages/Keyguard/test
-
-  # Apps
-  -
-    source:      '/packages/apps/**/values/strings.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-    ignore:
-      - /packages/apps/**/tests
-      - /packages/apps/Apollo
-      - /packages/apps/AudioFX
-      - /packages/apps/BluetoothExt
-      - /packages/apps/CameraNext
-      - /packages/apps/CM*
-      - /packages/apps/DSPManager
-      - /packages/apps/Eleven
-      - /packages/apps/Email/emailcommon
-      - /packages/apps/GalleryNext
-      - /packages/apps/LockClock
-      - /packages/apps/Mms/apptests
-      - /packages/apps/OneClickAndroid
-      - /packages/apps/SamsungServiceMode
-      - /packages/apps/Screencast
-      - /packages/apps/SpeechRecorder
-      - /packages/apps/ThemeChooser
-      - /packages/apps/ThemeStore
-      - /packages/apps/Torch
-      - /packages/apps/Trebuchet
-      - /packages/apps/VoicePlus
-      - /packages/apps/VoiceWakeup
-
-  -
-    source:      '/packages/apps/Bluetooth/res/values/strings_pbap.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-
-  -
-    source:      '/packages/apps/Calendar/res/values/arrays.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-
-  -
-    source:      '/packages/apps/DeskClock/res/values/array.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-
-  -
-    source:      '/packages/apps/Gallery2/res/values/filtershow_strings.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-
-  -
-    source:      '/packages/apps/Mms/res/values/arrays.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-
-  -
-    source:      '/packages/apps/Settings/res/values/arrays.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-
-  # Input methods
-  -
-    source:      '/packages/inputmethods/LatinIME/java/res/values/strings*.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-
-  # Providers
-  -
-    source:      '/packages/providers/**/values/strings.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-    ignore:
-      - /packages/providers/**/tests
-      - /packages/providers/PartnerBookmarksProvider
-      - /packages/providers/ThemesProvider
-      - /packages/providers/UserDictionaryProvider
-
-  # Screensavers
-  -
-    source:      '/packages/screensavers/**/values/strings.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-
-  # Services
-  -
-    source:      '/packages/services/**/values/strings.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-    ignore:
-      - /packages/services/**/tests
-
-  # Wallpapers
-  -
-    source:      '/packages/wallpapers/**/values/strings.xml'
-    translation: '/%original_path%-%android_code%/%original_file_name%'
-    languages_mapping: *anchor
-    ignore:
-      - /packages/wallpapers/Galaxy4
-      - /packages/wallpapers/PhotoPhase
diff --git a/crowdin/crowdin_cm.yaml b/crowdin/crowdin_cm-11.0.yaml
similarity index 60%
rename from crowdin/crowdin_cm.yaml
rename to crowdin/crowdin_cm-11.0.yaml
index ccf5e67..3931969 100644
--- a/crowdin/crowdin_cm.yaml
+++ b/crowdin/crowdin_cm-11.0.yaml
@@ -1,4 +1,4 @@
-# crowdin_cm.yaml
+# crowdin_cm-11.0.yaml
 #
 # Crowdin configuration file for CyanogenMod
 #
@@ -22,7 +22,7 @@
 files:
   # Default for AOSP projects with CM additions
   -
-    source:      '/**/values/cm_*.xml'
+    source:      '/cm-11.0/**/values/cm_*.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: &anchor
       android_code:
@@ -90,227 +90,227 @@
         vi: vi
         zu: zu
     ignore:
-      - /**/cm_extra.xml
-      - /**/cm_colors.xml
-      - /**/cm_dimens.xml
-      - /**/cm_integers.xml
-      - /frameworks/base/core/res/**/cm_arrays.xml
-      - /frameworks/base/core/res/**/cm_public.xml
-      - /packages/apps/Browser/**/cm_arrays.xml
-      - /packages/apps/Calendar/**/cm_arrays.xml
-      - /packages/apps/Camera2/**/cm_arrays.xml
-      - /packages/apps/DeskClock/**/cm_arrays.xml
-      - /packages/apps/Email/**/cm_arrays.xml
-      - /packages/providers/TelephonyProvider/**/cm_strings.xml
-      - /packages/services/Telephony/**/cm_arrays.xml
-      - /device/**/overlay/**/*.xml
-      - /development/**/*.xml
+      - /cm-11.0/**/cm_extra.xml
+      - /cm-11.0/**/cm_colors.xml
+      - /cm-11.0/**/cm_dimens.xml
+      - /cm-11.0/**/cm_integers.xml
+      - /cm-11.0/frameworks/base/core/res/**/cm_arrays.xml
+      - /cm-11.0/frameworks/base/core/res/**/cm_public.xml
+      - /cm-11.0/packages/apps/Browser/**/cm_arrays.xml
+      - /cm-11.0/packages/apps/Calendar/**/cm_arrays.xml
+      - /cm-11.0/packages/apps/Camera2/**/cm_arrays.xml
+      - /cm-11.0/packages/apps/DeskClock/**/cm_arrays.xml
+      - /cm-11.0/packages/apps/Email/**/cm_arrays.xml
+      - /cm-11.0/packages/providers/TelephonyProvider/**/cm_strings.xml
+      - /cm-11.0/packages/services/Telephony/**/cm_arrays.xml
+      - /cm-11.0/device/**/overlay/**/*.xml
+      - /cm-11.0/development/**/*.xml
 
   # Default for device apps
   -
-    source:      '/device/**/values/arrays.xml'
+    source:      '/cm-11.0/device/**/values/arrays.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
     ignore:
-      - /device/google/**/*.xml
-      - /device/sample/**/*.xml
-      - /device/samsung/p1-common/**/*.xml
-      - /device/sony/**/*.xml
-      - /device/**/overlay/**/*.xml
+      - /cm-11.0/device/google/**/*.xml
+      - /cm-11.0/device/sample/**/*.xml
+      - /cm-11.0/device/samsung/p1-common/**/*.xml
+      - /cm-11.0/device/sony/**/*.xml
+      - /cm-11.0/device/**/overlay/**/*.xml
   -
-    source:      '/device/**/values/plurals.xml'
+    source:      '/cm-11.0/device/**/values/plurals.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
     ignore:
-      - /device/google/**/*.xml
-      - /device/sample/**/*.xml
-      - /device/sony/**/*.xml
-      - /device/**/overlay/**/*.xml
+      - /cm-11.0/device/google/**/*.xml
+      - /cm-11.0/device/sample/**/*.xml
+      - /cm-11.0/device/sony/**/*.xml
+      - /cm-11.0/device/**/overlay/**/*.xml
   -
-    source:      '/device/**/values/strings.xml'
+    source:      '/cm-11.0/device/**/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
     ignore:
-      - /device/google/**/*.xml
-      - /device/sample/**/*.xml
-      - /device/sony/**/*.xml
-      - /device/**/overlay/**/*.xml
+      - /cm-11.0/device/google/**/*.xml
+      - /cm-11.0/device/sample/**/*.xml
+      - /cm-11.0/device/sony/**/*.xml
+      - /cm-11.0/device/**/overlay/**/*.xml
   # Default for CM apps (CMAccount, CMFM etc.)
   -
-    source:      '/packages/apps/CM*/**/values/arrays.xml'
+    source:      '/cm-11.0/packages/apps/CM*/**/values/arrays.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
     ignore:
-      - /packages/apps/CM*/tests/**/*.xml
-      - /packages/apps/CMFileManager/**/arrays.xml
-      - /packages/apps/CMUpdater/**/arrays.xml
+      - /cm-11.0/packages/apps/CM*/tests/**/*.xml
+      - /cm-11.0/packages/apps/CMFileManager/**/arrays.xml
+      - /cm-11.0/packages/apps/CMUpdater/**/arrays.xml
   -
-    source:      '/packages/apps/CM*/**/values/plurals.xml'
+    source:      '/cm-11.0/packages/apps/CM*/**/values/plurals.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
     ignore:
-      - /packages/apps/CM*/tests/**/*.xml
+      - /cm-11.0/packages/apps/CM*/tests/**/*.xml
   -
-    source:      '/packages/apps/CM*/**/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/CM*/**/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
     ignore:
-      - /packages/apps/CM*/tests/**/*.xml
-      - /packages/apps/CMKeyguard/**/strings.xml
+      - /cm-11.0/packages/apps/CM*/tests/**/*.xml
+      - /cm-11.0/packages/apps/CMKeyguard/**/strings.xml
 
 # Other projects
 
   # WallpaperCropper
   -
-    source:      '/frameworks/base/packages/WallpaperCropper/res/values/strings.xml'
+    source:      '/cm-11.0/frameworks/base/packages/WallpaperCropper/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # Apollo
   -
-    source:      '/packages/apps/Apollo/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/Apollo/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
   -
-    source:      '/packages/apps/Apollo/res/values/plurals.xml'
+    source:      '/cm-11.0/packages/apps/Apollo/res/values/plurals.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # BluetoothExt
   -
-    source:      '/packages/apps/BluetoothExt/res/values/strings*.xml'
+    source:      '/cm-11.0/packages/apps/BluetoothExt/res/values/strings*.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # Camera2 (qcomstrings.xml)
   -
-    source:      '/packages/apps/Camera2/res/values/qcomstrings.xml'
+    source:      '/cm-11.0/packages/apps/Camera2/res/values/qcomstrings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # CameraNext (qcomstrings.xml)
   -
-    source:      '/packages/apps/CameraNext/res/values/qcomstrings.xml'
+    source:      '/cm-11.0/packages/apps/CameraNext/res/values/qcomstrings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # DSPManager
   -
-    source:      '/packages/apps/DSPManager/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/DSPManager/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
   -
-    source:      '/packages/apps/DSPManager/res/values/arrays.xml'
+    source:      '/cm-11.0/packages/apps/DSPManager/res/values/arrays.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # Eleven
   -
-    source:      '/packages/apps/Eleven/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/Eleven/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
   -
-    source:      '/packages/apps/Eleven/res/values/plurals.xml'
+    source:      '/cm-11.0/packages/apps/Eleven/res/values/plurals.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # Gallery2 (codeaurora_strings.xml)
   -
-    source:      '/packages/apps/Gallery2/res/values/codeaurora_strings.xml'
+    source:      '/cm-11.0/packages/apps/Gallery2/res/values/codeaurora_strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # GalleryNext
   -
-    source:      '/packages/apps/GalleryNext/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/GalleryNext/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # LockClock
   -
-    source:      '/packages/apps/LockClock/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/LockClock/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # OneClickAndroid
   -
-    source:      '/packages/apps/OneClickAndroid/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/OneClickAndroid/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # Screencast
   -
-    source:      '/packages/apps/Screencast/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/Screencast/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # ThemeChooser
   -
-    source:      '/packages/apps/ThemeChooser/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/ThemeChooser/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # ThemeStore
   -
-    source:      '/packages/apps/ThemeStore/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/ThemeStore/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # Torch
   -
-    source:      '/packages/apps/Torch/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/Torch/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # VoicePlus
   -
-    source:      '/packages/apps/VoicePlus/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/VoicePlus/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # VoiceWakeup
   -
-    source:      '/packages/apps/VoiceWakeup/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/VoiceWakeup/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # ThemesProvider
   -
-    source:      '/packages/providers/ThemesProvider/res/values/strings.xml'
+    source:      '/cm-11.0/packages/providers/ThemesProvider/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # UserDictionaryProvider
   -
-    source:      '/packages/providers/UserDictionaryProvider/res/values/strings.xml'
+    source:      '/cm-11.0/packages/providers/UserDictionaryProvider/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # Galaxy4
   -
-    source:      '/packages/wallpapers/Galaxy4/res/values/strings.xml'
+    source:      '/cm-11.0/packages/wallpapers/Galaxy4/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # PhotoPhase
   -
-    source:      '/packages/wallpapers/PhotoPhase/res/values/strings.xml'
+    source:      '/cm-11.0/packages/wallpapers/PhotoPhase/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
   -
-    source:      '/packages/wallpapers/PhotoPhase/res/values/plurals.xml'
+    source:      '/cm-11.0/packages/wallpapers/PhotoPhase/res/values/plurals.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # Superuser
   -
-    source:      '/external/koush/Superuser/Superuser/res/values/strings.xml'
+    source:      '/cm-11.0/external/koush/Superuser/Superuser/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # WhisperPush
   -
-    source:      '/external/whispersystems/WhisperPush/res/values/strings.xml'
+    source:      '/cm-11.0/external/whispersystems/WhisperPush/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
@@ -318,22 +318,22 @@
 
   # fmapp2
   -
-    source:      '/hardware/qcom/fm/fmapp2/res/values/strings.xml'
+    source:      '/cm-11.0/hardware/qcom/fm/fmapp2/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
   -
-    source:      '/hardware/qcom/fm/fmapp2/res/values/arrays.xml'
+    source:      '/cm-11.0/hardware/qcom/fm/fmapp2/res/values/arrays.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # FMRecord
   -
-    source:      '/hardware/qcom/fm/FMRecord/res/values/strings.xml'
+    source:      '/cm-11.0/hardware/qcom/fm/FMRecord/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
 
   # SamsungServiceMode
   -
-    source:      '/packages/apps/SamsungServiceMode/res/values/strings.xml'
+    source:      '/cm-11.0/packages/apps/SamsungServiceMode/res/values/strings.xml'
     translation: '/%original_path%-%android_code%/%original_file_name%'
     languages_mapping: *anchor
diff --git a/crowdin/crowdin_cm-11.0_aosp.yaml b/crowdin/crowdin_cm-11.0_aosp.yaml
new file mode 100644
index 0000000..ae58f83
--- /dev/null
+++ b/crowdin/crowdin_cm-11.0_aosp.yaml
@@ -0,0 +1,148 @@
+# crowdin_cm-11.0_aosp.yaml
+#
+# Crowdin configuration file for CyanogenMod's
+# additional languages not supported by AOSP
+#
+# Copyright (C) 2014 The CyanogenMod Project
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+project_identifier: cyanogenmod-aosp
+preserve_hierarchy: true
+
+files:
+  # Framework packages
+  -
+    source:      '/cm-11.0/frameworks/base/core/res/res/values/strings.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: &anchor
+      android_code:
+        ast: es-rXA
+        bn: bn
+        cy: cy
+        eu: eu
+        is: is
+        ku: ku
+        lb: lb
+        ml-IN: ml
+        pa-IN: pa
+        ta: ta
+        ug: ug
+
+  -
+    source:      '/cm-11.0/frameworks/base/packages/**/values/strings.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+    ignore:
+      - /cm-11.0/frameworks/base/packages/services
+      - /cm-11.0/frameworks/base/packages/WallpaperCropper
+      - /cm-11.0/frameworks/base/packages/Keyguard/test
+
+  # Apps
+  -
+    source:      '/cm-11.0/packages/apps/**/values/strings.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+    ignore:
+      - /cm-11.0/packages/apps/**/tests
+      - /cm-11.0/packages/apps/Apollo
+      - /cm-11.0/packages/apps/AudioFX
+      - /cm-11.0/packages/apps/BluetoothExt
+      - /cm-11.0/packages/apps/CameraNext
+      - /cm-11.0/packages/apps/CM*
+      - /cm-11.0/packages/apps/DSPManager
+      - /cm-11.0/packages/apps/Eleven
+      - /cm-11.0/packages/apps/Email/emailcommon
+      - /cm-11.0/packages/apps/GalleryNext
+      - /cm-11.0/packages/apps/LockClock
+      - /cm-11.0/packages/apps/Mms/apptests
+      - /cm-11.0/packages/apps/OneClickAndroid
+      - /cm-11.0/packages/apps/SamsungServiceMode
+      - /cm-11.0/packages/apps/Screencast
+      - /cm-11.0/packages/apps/SpeechRecorder
+      - /cm-11.0/packages/apps/ThemeChooser
+      - /cm-11.0/packages/apps/ThemeStore
+      - /cm-11.0/packages/apps/Torch
+      - /cm-11.0/packages/apps/Trebuchet
+      - /cm-11.0/packages/apps/VoicePlus
+      - /cm-11.0/packages/apps/VoiceWakeup
+
+  -
+    source:      '/cm-11.0/packages/apps/Bluetooth/res/values/strings_pbap.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+
+  -
+    source:      '/cm-11.0/packages/apps/Calendar/res/values/arrays.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+
+  -
+    source:      '/cm-11.0/packages/apps/DeskClock/res/values/array.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+
+  -
+    source:      '/cm-11.0/packages/apps/Gallery2/res/values/filtershow_strings.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+
+  -
+    source:      '/cm-11.0/packages/apps/Mms/res/values/arrays.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+
+  -
+    source:      '/cm-11.0/packages/apps/Settings/res/values/arrays.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+
+  # Input methods
+  -
+    source:      '/cm-11.0/packages/inputmethods/LatinIME/java/res/values/strings*.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+
+  # Providers
+  -
+    source:      '/cm-11.0/packages/providers/**/values/strings.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+    ignore:
+      - /cm-11.0/packages/providers/**/tests
+      - /cm-11.0/packages/providers/PartnerBookmarksProvider
+      - /cm-11.0/packages/providers/ThemesProvider
+      - /cm-11.0/packages/providers/UserDictionaryProvider
+
+  # Screensavers
+  -
+    source:      '/cm-11.0/packages/screensavers/**/values/strings.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+
+  # Services
+  -
+    source:      '/cm-11.0/packages/services/**/values/strings.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+    ignore:
+      - /cm-11.0/packages/services/**/tests
+
+  # Wallpapers
+  -
+    source:      '/cm-11.0/packages/wallpapers/**/values/strings.xml'
+    translation: '/%original_path%-%android_code%/%original_file_name%'
+    languages_mapping: *anchor
+    ignore:
+      - /cm-11.0/packages/wallpapers/Galaxy4
+      - /cm-11.0/packages/wallpapers/PhotoPhase
diff --git a/crowdin/extra_packages.xml b/crowdin/extra_packages_cm-11.0.xml
similarity index 100%
rename from crowdin/extra_packages.xml
rename to crowdin/extra_packages_cm-11.0.xml
diff --git a/crowdin_sync.py b/crowdin_sync.py
index 0d3124f..e4f34f8 100755
--- a/crowdin_sync.py
+++ b/crowdin_sync.py
@@ -91,7 +91,7 @@
 
 ############################################# PREPARE ##############################################
 
-print('\nSTEP 0A: Checking dependencies')
+print('\nSTEP 0: Checking dependencies & define shared variables')
 # Check for Ruby version of crowdin-cli
 if subprocess.check_output(['rvm', 'all', 'do', 'gem', 'list', 'crowdin-cli', '-i']) == 'true':
     sys.exit('You have not installed crowdin-cli. Terminating.')
@@ -110,38 +110,6 @@
 else:
     print('Found: android/default.xml')
 
-# Check for crowdin/config_aosp.yaml
-if not os.path.isfile('crowdin/config_aosp.yaml'):
-    sys.exit('You have no crowdin/config_aosp.yaml. Terminating.')
-else:
-    print('Found: crowdin/config_aosp.yaml')
-
-# Check for crowdin/config_cm.yaml
-if not os.path.isfile('crowdin/config_cm.yaml'):
-    sys.exit('You have no crowdin/config_cm.yaml. Terminating.')
-else:
-    print('Found: crowdin/config_cm.yaml')
-
-# Check for crowdin/crowdin_aosp.yaml
-if not os.path.isfile('crowdin/crowdin_aosp.yaml'):
-    sys.exit('You have no crowdin/crowdin_aosp.yaml. Terminating.')
-else:
-    print('Found: crowdin/crowdin_aosp.yaml')
-
-# Check for crowdin/crowdin_cm.yaml
-if not os.path.isfile('crowdin/crowdin_cm.yaml'):
-    sys.exit('You have no crowdin/crowdin_cm.yaml. Terminating.')
-else:
-    print('Found: crowdin/crowdin_cm.yaml')
-
-# Check for crowdin/extra_packages.xml
-if not os.path.isfile('crowdin/extra_packages.xml'):
-    sys.exit('You have no crowdin/extra_packages.xml. Terminating.')
-else:
-    print('Found: crowdin/extra_packages.xml')
-
-print('\nSTEP 0B: Define shared variables')
-
 # Variables regarding android/default.xml
 print('Loading: android/default.xml')
 xml_android = minidom.parse('android/default.xml')
@@ -150,17 +118,47 @@
 default_branch = get_default_branch(xml_android)
 print('Default branch: ' + default_branch)
 
+# Check for crowdin/extra_packages_' + default_branch + '.xml
+if not os.path.isfile('crowdin/extra_packages_' + default_branch + '.xml'):
+    sys.exit('You have no crowdin/extra_packages_' + default_branch + '.xml. Terminating.')
+else:
+    print('Found: crowdin/extra_packages_' + default_branch + '.xml')
+
+# Check for crowdin/config.yaml
+if not os.path.isfile('crowdin/config.yaml'):
+    sys.exit('You have no crowdin/config.yaml. Terminating.')
+else:
+    print('Found: crowdin/config.yaml')
+
+# Check for crowdin/config_aosp.yaml
+if not os.path.isfile('crowdin/config_aosp.yaml'):
+    sys.exit('You have no crowdin/config_aosp.yaml. Terminating.')
+else:
+    print('Found: crowdin/config_aosp.yaml')
+
+# Check for crowdin/crowdin_' + default_branch + '.yaml
+if not os.path.isfile('crowdin/crowdin_' + default_branch + '.yaml'):
+    sys.exit('You have no crowdin/crowdin_' + default_branch + '.yaml. Terminating.')
+else:
+    print('Found: crowdin/crowdin_' + default_branch + '.yaml')
+
+# Check for crowdin/crowdin_' + default_branch + '_aosp.yaml
+if not os.path.isfile('crowdin/crowdin_' + default_branch + '_aosp.yaml'):
+    sys.exit('You have no crowdin/crowdin_' + default_branch + '_aosp.yaml. Terminating.')
+else:
+    print('Found: crowdin/crowdin_' + default_branch + '_aosp.yaml')
+
 ############################################### MAIN ###############################################
 
 if not args.no_upload:
     print('\nSTEP 1: Upload Crowdin source translations')
-    print('Uploading Crowdin source translations (non-AOSP supported languages)')
-    # Execute 'crowdin-cli upload sources' and show output
-    print(subprocess.check_output(['crowdin-cli', '--config=crowdin/crowdin_aosp.yaml', '--identity=crowdin/config_aosp.yaml', 'upload', 'sources']))
-
     print('Uploading Crowdin source translations (AOSP supported languages)')
     # Execute 'crowdin-cli upload sources' and show output
-    print(subprocess.check_output(['crowdin-cli', '--config=crowdin/crowdin_cm.yaml', '--identity=crowdin/config_cm.yaml', 'upload', 'sources']))
+    print(subprocess.check_output(['crowdin-cli', '--config=crowdin/crowdin_' + default_branch + '.yaml', '--identity=crowdin/config.yaml', 'upload', 'sources']))
+
+    print('Uploading Crowdin source translations (non-AOSP supported languages)')
+    # Execute 'crowdin-cli upload sources' and show output
+    print(subprocess.check_output(['crowdin-cli', '--config=crowdin/crowdin_' + default_branch + '_aosp.yaml', '--identity=crowdin/config_aosp.yaml', 'upload', 'sources']))
 else:
     print('\nSkipping source translations upload')
 
@@ -168,11 +166,11 @@
     print('\nSTEP 2: Download Crowdin translations')
     print('Downloading Crowdin translations (AOSP supported languages)')
     # Execute 'crowdin-cli download' and show output
-    print(subprocess.check_output(['crowdin-cli', '--config=crowdin/crowdin_cm.yaml', '--identity=crowdin/config_cm.yaml', 'download']))
+    print(subprocess.check_output(['crowdin-cli', '--config=crowdin/crowdin_' + default_branch + '.yaml', '--identity=crowdin/config.yaml', 'download']))
 
     print('Downloading Crowdin translations (non-AOSP supported languages)')
     # Execute 'crowdin-cli download' and show output
-    print(subprocess.check_output(['crowdin-cli', '--config=crowdin/crowdin_aosp.yaml', '--identity=crowdin/config_aosp.yaml', 'download']))
+    print(subprocess.check_output(['crowdin-cli', '--config=crowdin/crowdin_' + default_branch + '_aosp.yaml', '--identity=crowdin/config_aosp.yaml', 'download']))
 
     print('\nSTEP 3: Remove useless empty translations')
     # Some line of code that I found to find all XML files
@@ -187,11 +185,11 @@
 
     print('\nSTEP 4: Create a list of pushable translations')
     # Get all files that Crowdin pushed
-    proc = subprocess.Popen(['crowdin-cli --config=crowdin/crowdin_cm.yaml --identity=crowdin/config_cm.yaml list sources && crowdin-cli --config=crowdin/crowdin_aosp.yaml --identity=crowdin/config_aosp.yaml list sources'], stdout=subprocess.PIPE, shell=True)
+    proc = subprocess.Popen(['crowdin-cli --config=crowdin/crowdin_' + default_branch + '.yaml --identity=crowdin/config.yaml list sources | grep "' + default_branch + '" | sed "s#/' + default_branch + '##g" && crowdin-cli --config=crowdin/crowdin_' + default_branch + '_aosp.yaml --identity=crowdin/config_aosp.yaml list sources | grep "' + default_branch + '" | sed "s#/' + default_branch + '##g"'], stdout=subprocess.PIPE, shell=True)
     proc.wait() # Wait for the above to finish
 
     print('\nSTEP 5: Upload to Gerrit')
-    xml_extra = minidom.parse('crowdin/extra_packages.xml')
+    xml_extra = minidom.parse('crowdin/extra_packages_' + default_branch + '.xml')
     items = xml_android.getElementsByTagName('project')
     items += xml_extra.getElementsByTagName('project')
     all_projects = []
@@ -226,7 +224,7 @@
         # and check if it's already in there.
         all_projects.append(result)
 
-        # Search in android/default.xml or crowdin/extra_packages.xml for the project's name
+        # Search in android/default.xml or crowdin/extra_packages_' + default_branch + '.xml for the project's name
         for project_item in items:
             if project_item.attributes['path'].value != result:
                 # No match found, go to next item