# cm-14.1.yaml
#
# Crowdin configuration file for LineageOS
#
# Copyright (C) 2014-2016 The CyanogenMod Project
# Copyright (C) 2017-2018 The LineageOS Project
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

api_key_env: LINEAGE_CROWDIN_API_KEY
base_path_env: LINEAGE_CROWDIN_BASE_PATH_CM_14_1
project_identifier: lineageos
preserve_hierarchy: true

files:
# Frameworks

  # framework-res
  -
    source:      '/frameworks/base/core/res/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: &anchor
      android_code:
        af: af
        am: am
        ar: ar
        as: as-rIN
        ast: ast-rES
        az: az-rAZ
        be: be-rBY
        bg: bg
        bn: bn-rBD
        bs: bs-rBA
        ca: ca
        cs: cs
        cy: cy
        da: da
        de: de
        el: el
        en-AU: en-rAU
        en-GB: en-rGB
        en-IN: en-rIN
        en-PT: en-rPT
        eo: eo
        es-ES: es
        es-MX: es-rMX
        es-US: es-rUS
        et: et-rEE
        eu: eu-rES
        fa: fa
        fi: fi
        fr: fr
        fr-CA: fr-rCA
        fy-NL: fy-rNL
        gl: gl-rES
        gu-IN: gu-rIN
        he: iw
        hi: hi
        hr: hr
        hu: hu
        hy-AM: hy-rAM
        id: in
        is: is-rIS
        it: it
        ja: ja
        ka: ka-rGE
        kab: kab-rDZ
        kk: kk-rKZ
        km: km-rKH
        kn: kn-rIN
        ko: ko
        ku: ku
        ky: ky-rKG
        lb: lb
        lo: lo-rLA
        lt: lt
        lv: lv
        mk: mk-rMK
        ml-IN: ml-rIN
        mn: mn-rMN
        mr: mr-rIN
        ms: ms-rMY
        my: my-rMM
        nb: nb
        ne-NP: ne-rNP
        nl: nl
        or: or-rIN
        pa-IN: pa-rIN
        pl: pl
        pt-PT: pt-rPT
        pt-BR: pt-rBR
        rm-CH: rm
        ro: ro
        ru: ru
        sc: sc-rIT
        si-LK: si-rLK
        sk: sk
        sl: sl
        sq: sq-rAL
        sr: sr
        sv-SE: sv
        sw: sw
        ta: ta-rIN
        te: te-rIN
        th: th
        tl: tl
        tr: tr
        ug: ug
        uk: uk
        ur-PK: ur-rPK
        uz: uz-rUZ
        vi: vi
        zh-CN: zh-rCN
        zh-HK: zh-rHK
        zh-TW: zh-rTW
        zu: zu

  # SettingsLib
  -
    source:      '/frameworks/base/packages/SettingsLib/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # SystemUI
  -
    source:      '/frameworks/base/packages/SystemUI/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

# Packages

  # AudioFX
  -
    source:      '/packages/apps/AudioFX/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Bluetooth
  -
    source:      '/packages/apps/Bluetooth/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Calendar
  -
    source:      '/packages/apps/Calendar/res/values/cm_plurals.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Calendar/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Camera2
  -
    source:      '/packages/apps/Camera2/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # CellBroadcastReceiver
  -
    source:      '/packages/apps/CellBroadcastReceiver/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # CMParts
  -
    source:      '/packages/apps/CMParts/res/values/plurals.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/CMParts/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Contacts
  -
    source:      '/packages/apps/Contacts/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # ContactsCommon
  -
    source:      '/packages/apps/ContactsCommon/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # DeskClock
  -
    source:      '/packages/apps/DeskClock/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Dialer
  -
    source:      '/packages/apps/Dialer/res/values/cm_arrays.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Dialer/res/values/cm_plurals.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Dialer/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Dialer/InCallUI/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Dialer/InCallUI/res/values/qtistrings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Eleven
  -
    source:      '/packages/apps/Eleven/res/values/plurals.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Eleven/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Email
  -
    source:      '/packages/apps/Email/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # FMRadio
  -
    source:      '/packages/apps/FMRadio/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Gallery2
  -
    source:      '/packages/apps/Gallery2/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Gallery2/res/values/codeaurora_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Jelly
  -
    source:      '/packages/apps/Jelly/app/src/main/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # LockClock
  -
    source:      '/packages/apps/LockClock/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Messaging
  -
    source:      '/packages/apps/Messaging/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # PhoneCommon
  -
    source:      '/packages/apps/PhoneCommon/res/values/qtistrings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Profiles
  -
    source:      '/packages/apps/Profiles/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Recorder
  -
    source:      '/packages/apps/Recorder/app/src/main/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Settings
  -
    source:      '/packages/apps/Settings/res/values/cm_plurals.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Settings/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # SetupWizard
  -
    source:      '/packages/apps/SetupWizard/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Snap
  -
    source:      '/packages/apps/Snap/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Snap/res/values/qcomstrings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Snap/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Snap/quickReader/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Terminal
  -
    source:      '/packages/apps/Terminal/res/values/arrays.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Terminal/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Trebuchet
  -
    source:      '/packages/apps/Trebuchet/res/values/cm_arrays.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/apps/Trebuchet/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # UnifiedEmail
  -
    source:      '/packages/apps/UnifiedEmail/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Updater
  -
    source:      '/packages/apps/Updater/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # WallpaperPicker
  -
    source:      '/packages/apps/WallpaperPicker/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

# Input methods

  # LatinIME
  -
    source:      '/packages/inputmethods/LatinIME/java/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

# Providers

  # DataUsageProvider
  -
    source:      '/packages/providers/DataUsageProvider/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # DownloadProvider
  -
    source:      '/packages/providers/DownloadProvider/res/values/cm_plurals.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/providers/DownloadProvider/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # WeatherProvider
  -
    source:      '/packages/providers/WeatherProvider/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

# Services

  # CMAudioService
  -
    source:      '/packages/services/CMAudioService/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # Telephony
  -
    source:      '/packages/services/Telephony/res/values/cm_strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/packages/services/Telephony/res/values/qtistrings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # WeatherService
  -
    source:      '/packages/services/WeatherService/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

# Vendor

  # CM SDK
  -
    source:      '/vendor/cmsdk/cm/res/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # CMSettingsProvider
  -
    source:      '/vendor/cmsdk/packages/CMSettingsProvider/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # OpenWeatherMapProvider
  -
    source:      '/vendor/cmsdk/samples/weatherproviderservice/OpenWeatherMapProvider/app/src/main/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

# Device specific

  # fmapp2
  -
    source:      '/hardware/qcom/fm/fmapp2/res/values/arrays.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/hardware/qcom/fm/fmapp2/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # FMRecord
  -
    source:      '/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'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # oppo common configpanel
  -
    source:      '/device/oppo/common/configpanel/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # sony huashan devicesettings
  -
    source:      '/device/sony/huashan/devicesettings/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # samsung AdvancedDisplay
  -
    source:      '/hardware/samsung/AdvancedDisplay/res/values/arrays.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
  -
    source:      '/hardware/samsung/AdvancedDisplay/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # resources devicesettings
  -
    source:      '/packages/resources/devicesettings/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor

  # FlipFlap
  -
    source:      '/packages/apps/FlipFlap/res/values/strings.xml'
    translation: '/%original_path%-%android_code%/%original_file_name%'
    languages_mapping: *anchor
