# # Shared Crowdin control for all Keyman platforms # # # Your Crowdin credentials # project_id_env: "CROWDIN_PROJECT_ID" api_token_env: "CROWDIN_PERSONAL_TOKEN" base_path: "." # local base path base_url: "https://api.crowdin.com" # # Choose file structure in Crowdin # e.g. true or false # preserve_hierarchy: true # # Files configuration # files: # source: local path of file that gets uploaded to crowdin # dest: crowdin path in https://crowdin.com/project/keyman # translation: local path where downloaded translations from crowdin go # languages_mapping for custom language codes are configured in the Crowdin UI at # https://crowdin.com/project/keyman/settings#languages # Android files # Reference: https://developer.android.com/guide/topics/resources/multilingual-support - source: /android/KMEA/app/src/main/res/values/strings.xml dest: /android/engine/strings.xml translation: /android/KMEA/app/src/main/res/values-%android_code%/strings.xml languages_mapping: # Prevent invalid region pap-rPAP. Leaving "in" for Indonesian android_code: es-419: b+es+419 pap: pap - source: /android/KMAPro/kMAPro/src/main/res/values/strings.xml dest: /android/app/strings.xml translation: /android/KMAPro/kMAPro/src/main/res/values-%android_code%/strings.xml languages_mapping: # Prevent invalid region pap-rPAP android_code: es-419: b+es+419 pap: pap # Windows files # Note: we use type: android for the Windows project files - source: /windows/src/desktop/kmshell/xml/strings.xml dest: /windows/strings.xml translation: /windows/src/desktop/kmshell/locale/%locale%/%original_file_name% type: android languages_mapping: locale: de: de fr: fr kn: kn - source: /windows/src/desktop/setup/locale/en/strings.xml dest: /windows/setup/strings.xml translation: /windows/src/desktop/setup/locale/%locale%/%original_file_name% type: android languages_mapping: locale: de: de fr: fr kn: kn # iOS files - source: /ios/engine/KMEI/KeymanEngine/Classes/en.lproj/ResourceInfoView.strings dest: /ios/engine/ResourceInfoView.strings translation: /ios/engine/KMEI/KeymanEngine/Classes/%osx_code%/%original_file_name% languages_mapping: osx_code: pt-PT: pt-PT.lproj - source: /ios/engine/KMEI/KeymanEngine/en.lproj/Localizable.strings dest: /ios/engine/Localizable.strings translation: /ios/engine/KMEI/KeymanEngine/%osx_code%/%original_file_name% languages_mapping: osx_code: pt-PT: pt-PT.lproj - source: /ios/engine/KMEI/KeymanEngine/en.lproj/Localizable.stringsdict dest: /ios/engine/Localizable.stringsdict translation: /ios/engine/KMEI/KeymanEngine/%osx_code%/%original_file_name% languages_mapping: osx_code: pt-PT: pt-PT.lproj - source: /ios/keyman/Keyman/Keyman/en.lproj/Localizable.strings dest: /ios/app/Localizable.strings translation: /ios/keyman/Keyman/Keyman/%osx_code%/%original_file_name% languages_mapping: osx_code: pt-PT: pt-PT.lproj # Linux files - source: /linux/keyman-config/locale/keyman-config.pot dest: /linux/keyman-config.pot translation: /linux/keyman-config/locale/%locale_with_underscore%.po type: gettext update_option: update_as_unapproved languages_mapping: locale_with_underscore: ha: ha # macOS files - source: /mac/Keyman4MacIM/Keyman4MacIM/KMAboutWindow/en.lproj/KMAboutWindowController.strings dest: /mac/app/KMAboutWindowController.strings translation: /mac/Keyman4MacIM/Keyman4MacIM/KMAboutWindow/%osx_code%/%original_file_name% languages_mapping: osx_code: pt-PT: pt-PT.lproj - source: /mac/Keyman4MacIM/Keyman4MacIM/KMConfiguration/en.lproj/preferences.strings dest: /mac/app/preferences.strings translation: /mac/Keyman4MacIM/Keyman4MacIM/KMConfiguration/%osx_code%/%original_file_name% languages_mapping: osx_code: pt-PT: pt-PT.lproj - source: /mac/Keyman4MacIM/Keyman4MacIM/KMInfoWindow/en.lproj/KMInfoWindowController.strings dest: /mac/app/KMInfoWindowController.strings translation: /mac/Keyman4MacIM/Keyman4MacIM/KMInfoWindow/%osx_code%/%original_file_name% languages_mapping: osx_code: pt-PT: pt-PT.lproj - source: /mac/Keyman4MacIM/Keyman4MacIM/KMKeyboardHelpWindow/en.lproj/KMKeyboardHelpWindowController.strings dest: /mac/app/KMKeyboardHelpWindowController.strings translation: /mac/Keyman4MacIM/Keyman4MacIM/KMKeyboardHelpWindow/%osx_code%/%original_file_name% languages_mapping: osx_code: pt-PT: pt-PT.lproj - source: /mac/Keyman4MacIM/Keyman4MacIM/en.lproj/Localizable.strings dest: /mac/app/Localizable.strings translation: /mac/Keyman4MacIM/Keyman4MacIM/%osx_code%/%original_file_name% languages_mapping: osx_code: pt-PT: pt-PT.lproj - source: /mac/Keyman4MacIM/Keyman4MacIM/en.lproj/MainMenu.strings dest: /mac/app/MainMenu.strings translation: /mac/Keyman4MacIM/Keyman4MacIM/%osx_code%/%original_file_name% languages_mapping: osx_code: pt-PT: pt-PT.lproj # crowdin parameters descriptions: # # Source files filter # e.g. "/resources/en/*.json" # # # Where translations will be placed # e.g. "/resources/%two_letters_code%/%original_file_name%" # #"translation" : "", # # Files or directories for ignore # e.g. ["/**/?.txt", "/**/[0-9].txt", "/**/*\?*.txt"] # #"ignore" : [], # # The dest allows you to specify a file name in Crowdin # e.g. "/messages.json" # #"dest" : "", # # File type # e.g. "json" # #"type" : "", # # The parameter "update_option" is optional. If it is not set, after the files update the translations for changed strings will be removed. Use to fix typos and for minor changes in the source strings # e.g. "update_as_unapproved" or "update_without_changes" # #"update_option" : "", # # Start block (for XML only) # # # Defines whether to translate tags attributes. # e.g. 0 or 1 (Default is 1) # # "translate_attributes" : 1, # # Defines whether to translate texts placed inside the tags. # e.g. 0 or 1 (Default is 1) # # "translate_content" : 1, # # This is an array of strings, where each item is the XPaths to DOM element that should be imported # e.g. ["/content/text", "/content/text[@value]"] # # "translatable_elements" : [], # # Defines whether to split long texts into smaller text segments # e.g. 0 or 1 (Default is 1) # # "content_segmentation" : 1, # # End block (for XML only) # # # Start .properties block # # # Defines whether single quote should be escaped by another single quote or backslash in exported translations # e.g. 0 or 1 or 2 or 3 (Default is 3) # 0 - do not escape single quote; # 1 - escape single quote by another single quote; # 2 - escape single quote by backslash; # 3 - escape single quote by another single quote only in strings containing variables ( {0} ). # # "escape_quotes" : 3, # # Defines whether any special characters (=, :, ! and #) should be escaped by backslash in exported translations. # e.g. 0 or 1 (Default is 0) # 0 - do not escape special characters # 1 - escape special characters by a backslash # # "escape_special_characters": 0 # # # End .properties block # # # Often software projects have custom names for the directories where translations are placed. crowdin-cli allows you to map your own languages to be understandable by Crowdin. # #"languages_mapping" : { # "two_letters_code" : { # "crowdin_language_code" : "local_name" # } #}, # # Does the first line contain header? # e.g. true or false # #"first_line_contains_header" : true, # # for spreadsheets # e.g. "identifier,source_phrase,context,uk,ru,fr" # # "scheme" : "",