zendesk_apps_support 4.29.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (44) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +176 -0
  3. data/README.md +39 -0
  4. data/config/locales/en.yml +163 -0
  5. data/config/locales/translations/zendesk_apps_support.yml +405 -0
  6. data/lib/zendesk_apps_support.rb +42 -0
  7. data/lib/zendesk_apps_support/app_file.rb +44 -0
  8. data/lib/zendesk_apps_support/app_requirement.rb +11 -0
  9. data/lib/zendesk_apps_support/app_version.rb +78 -0
  10. data/lib/zendesk_apps_support/assets/default_app_logo.svg +10 -0
  11. data/lib/zendesk_apps_support/assets/default_styles.scss +3 -0
  12. data/lib/zendesk_apps_support/assets/default_template.html.erb +10 -0
  13. data/lib/zendesk_apps_support/assets/installed.js.erb +21 -0
  14. data/lib/zendesk_apps_support/assets/src.js.erb +37 -0
  15. data/lib/zendesk_apps_support/build_translation.rb +51 -0
  16. data/lib/zendesk_apps_support/engine.rb +11 -0
  17. data/lib/zendesk_apps_support/finders.rb +36 -0
  18. data/lib/zendesk_apps_support/i18n.rb +31 -0
  19. data/lib/zendesk_apps_support/installation.rb +22 -0
  20. data/lib/zendesk_apps_support/installed.rb +27 -0
  21. data/lib/zendesk_apps_support/location.rb +71 -0
  22. data/lib/zendesk_apps_support/manifest.rb +197 -0
  23. data/lib/zendesk_apps_support/manifest/location_options.rb +35 -0
  24. data/lib/zendesk_apps_support/manifest/no_override_hash.rb +50 -0
  25. data/lib/zendesk_apps_support/manifest/parameter.rb +23 -0
  26. data/lib/zendesk_apps_support/package.rb +402 -0
  27. data/lib/zendesk_apps_support/product.rb +31 -0
  28. data/lib/zendesk_apps_support/sass_functions.rb +43 -0
  29. data/lib/zendesk_apps_support/stylesheet_compiler.rb +38 -0
  30. data/lib/zendesk_apps_support/validations/banner.rb +35 -0
  31. data/lib/zendesk_apps_support/validations/manifest.rb +412 -0
  32. data/lib/zendesk_apps_support/validations/marketplace.rb +31 -0
  33. data/lib/zendesk_apps_support/validations/mime.rb +41 -0
  34. data/lib/zendesk_apps_support/validations/requests.rb +47 -0
  35. data/lib/zendesk_apps_support/validations/requirements.rb +154 -0
  36. data/lib/zendesk_apps_support/validations/secrets.rb +77 -0
  37. data/lib/zendesk_apps_support/validations/secure_settings.rb +37 -0
  38. data/lib/zendesk_apps_support/validations/source.rb +25 -0
  39. data/lib/zendesk_apps_support/validations/stylesheets.rb +28 -0
  40. data/lib/zendesk_apps_support/validations/svg.rb +81 -0
  41. data/lib/zendesk_apps_support/validations/templates.rb +20 -0
  42. data/lib/zendesk_apps_support/validations/translations.rb +160 -0
  43. data/lib/zendesk_apps_support/validations/validation_error.rb +77 -0
  44. metadata +327 -0
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 8a0de7b7d7fcdd4588d5eff4a44ca2b7359630094c9660705f6964867de0324f
4
+ data.tar.gz: c2184021707a952289f78987019a8aab46fcebe51f094c8e0b5cba28aff57381
5
+ SHA512:
6
+ metadata.gz: c523f4bc63ff062085caebc36d05d708fd475661e338811d2ab435c011499333189a55965a3bb1b7b070f16d6ce2103210caf96edaafd13b264fcc19fdd5749e
7
+ data.tar.gz: b16330afa2508ad09407910ba8887c8e2f7304306d8141493059b71773783189426482b2731e126a0b5464dfa79dbbf19de4f86b912d0b7d47d9085a86e7b51a
data/LICENSE ADDED
@@ -0,0 +1,176 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ http://www.apache.org/licenses/
4
+
5
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
6
+
7
+ 1. Definitions.
8
+
9
+ "License" shall mean the terms and conditions for use, reproduction,
10
+ and distribution as defined by Sections 1 through 9 of this document.
11
+
12
+ "Licensor" shall mean the copyright owner or entity authorized by
13
+ the copyright owner that is granting the License.
14
+
15
+ "Legal Entity" shall mean the union of the acting entity and all
16
+ other entities that control, are controlled by, or are under common
17
+ control with that entity. For the purposes of this definition,
18
+ "control" means (i) the power, direct or indirect, to cause the
19
+ direction or management of such entity, whether by contract or
20
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
21
+ outstanding shares, or (iii) beneficial ownership of such entity.
22
+
23
+ "You" (or "Your") shall mean an individual or Legal Entity
24
+ exercising permissions granted by this License.
25
+
26
+ "Source" form shall mean the preferred form for making modifications,
27
+ including but not limited to software source code, documentation
28
+ source, and configuration files.
29
+
30
+ "Object" form shall mean any form resulting from mechanical
31
+ transformation or translation of a Source form, including but
32
+ not limited to compiled object code, generated documentation,
33
+ and conversions to other media types.
34
+
35
+ "Work" shall mean the work of authorship, whether in Source or
36
+ Object form, made available under the License, as indicated by a
37
+ copyright notice that is included in or attached to the work
38
+ (an example is provided in the Appendix below).
39
+
40
+ "Derivative Works" shall mean any work, whether in Source or Object
41
+ form, that is based on (or derived from) the Work and for which the
42
+ editorial revisions, annotations, elaborations, or other modifications
43
+ represent, as a whole, an original work of authorship. For the purposes
44
+ of this License, Derivative Works shall not include works that remain
45
+ separable from, or merely link (or bind by name) to the interfaces of,
46
+ the Work and Derivative Works thereof.
47
+
48
+ "Contribution" shall mean any work of authorship, including
49
+ the original version of the Work and any modifications or additions
50
+ to that Work or Derivative Works thereof, that is intentionally
51
+ submitted to Licensor for inclusion in the Work by the copyright owner
52
+ or by an individual or Legal Entity authorized to submit on behalf of
53
+ the copyright owner. For the purposes of this definition, "submitted"
54
+ means any form of electronic, verbal, or written communication sent
55
+ to the Licensor or its representatives, including but not limited to
56
+ communication on electronic mailing lists, source code control systems,
57
+ and issue tracking systems that are managed by, or on behalf of, the
58
+ Licensor for the purpose of discussing and improving the Work, but
59
+ excluding communication that is conspicuously marked or otherwise
60
+ designated in writing by the copyright owner as "Not a Contribution."
61
+
62
+ "Contributor" shall mean Licensor and any individual or Legal Entity
63
+ on behalf of whom a Contribution has been received by Licensor and
64
+ subsequently incorporated within the Work.
65
+
66
+ 2. Grant of Copyright License. Subject to the terms and conditions of
67
+ this License, each Contributor hereby grants to You a perpetual,
68
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
69
+ copyright license to reproduce, prepare Derivative Works of,
70
+ publicly display, publicly perform, sublicense, and distribute the
71
+ Work and such Derivative Works in Source or Object form.
72
+
73
+ 3. Grant of Patent License. Subject to the terms and conditions of
74
+ this License, each Contributor hereby grants to You a perpetual,
75
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
76
+ (except as stated in this section) patent license to make, have made,
77
+ use, offer to sell, sell, import, and otherwise transfer the Work,
78
+ where such license applies only to those patent claims licensable
79
+ by such Contributor that are necessarily infringed by their
80
+ Contribution(s) alone or by combination of their Contribution(s)
81
+ with the Work to which such Contribution(s) was submitted. If You
82
+ institute patent litigation against any entity (including a
83
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
84
+ or a Contribution incorporated within the Work constitutes direct
85
+ or contributory patent infringement, then any patent licenses
86
+ granted to You under this License for that Work shall terminate
87
+ as of the date such litigation is filed.
88
+
89
+ 4. Redistribution. You may reproduce and distribute copies of the
90
+ Work or Derivative Works thereof in any medium, with or without
91
+ modifications, and in Source or Object form, provided that You
92
+ meet the following conditions:
93
+
94
+ (a) You must give any other recipients of the Work or
95
+ Derivative Works a copy of this License; and
96
+
97
+ (b) You must cause any modified files to carry prominent notices
98
+ stating that You changed the files; and
99
+
100
+ (c) You must retain, in the Source form of any Derivative Works
101
+ that You distribute, all copyright, patent, trademark, and
102
+ attribution notices from the Source form of the Work,
103
+ excluding those notices that do not pertain to any part of
104
+ the Derivative Works; and
105
+
106
+ (d) If the Work includes a "NOTICE" text file as part of its
107
+ distribution, then any Derivative Works that You distribute must
108
+ include a readable copy of the attribution notices contained
109
+ within such NOTICE file, excluding those notices that do not
110
+ pertain to any part of the Derivative Works, in at least one
111
+ of the following places: within a NOTICE text file distributed
112
+ as part of the Derivative Works; within the Source form or
113
+ documentation, if provided along with the Derivative Works; or,
114
+ within a display generated by the Derivative Works, if and
115
+ wherever such third-party notices normally appear. The contents
116
+ of the NOTICE file are for informational purposes only and
117
+ do not modify the License. You may add Your own attribution
118
+ notices within Derivative Works that You distribute, alongside
119
+ or as an addendum to the NOTICE text from the Work, provided
120
+ that such additional attribution notices cannot be construed
121
+ as modifying the License.
122
+
123
+ You may add Your own copyright statement to Your modifications and
124
+ may provide additional or different license terms and conditions
125
+ for use, reproduction, or distribution of Your modifications, or
126
+ for any such Derivative Works as a whole, provided Your use,
127
+ reproduction, and distribution of the Work otherwise complies with
128
+ the conditions stated in this License.
129
+
130
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
131
+ any Contribution intentionally submitted for inclusion in the Work
132
+ by You to the Licensor shall be under the terms and conditions of
133
+ this License, without any additional terms or conditions.
134
+ Notwithstanding the above, nothing herein shall supersede or modify
135
+ the terms of any separate license agreement you may have executed
136
+ with Licensor regarding such Contributions.
137
+
138
+ 6. Trademarks. This License does not grant permission to use the trade
139
+ names, trademarks, service marks, or product names of the Licensor,
140
+ except as required for reasonable and customary use in describing the
141
+ origin of the Work and reproducing the content of the NOTICE file.
142
+
143
+ 7. Disclaimer of Warranty. Unless required by applicable law or
144
+ agreed to in writing, Licensor provides the Work (and each
145
+ Contributor provides its Contributions) on an "AS IS" BASIS,
146
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
147
+ implied, including, without limitation, any warranties or conditions
148
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
149
+ PARTICULAR PURPOSE. You are solely responsible for determining the
150
+ appropriateness of using or redistributing the Work and assume any
151
+ risks associated with Your exercise of permissions under this License.
152
+
153
+ 8. Limitation of Liability. In no event and under no legal theory,
154
+ whether in tort (including negligence), contract, or otherwise,
155
+ unless required by applicable law (such as deliberate and grossly
156
+ negligent acts) or agreed to in writing, shall any Contributor be
157
+ liable to You for damages, including any direct, indirect, special,
158
+ incidental, or consequential damages of any character arising as a
159
+ result of this License or out of the use or inability to use the
160
+ Work (including but not limited to damages for loss of goodwill,
161
+ work stoppage, computer failure or malfunction, or any and all
162
+ other commercial damages or losses), even if such Contributor
163
+ has been advised of the possibility of such damages.
164
+
165
+ 9. Accepting Warranty or Additional Liability. While redistributing
166
+ the Work or Derivative Works thereof, You may choose to offer,
167
+ and charge a fee for, acceptance of support, warranty, indemnity,
168
+ or other liability obligations and/or rights consistent with this
169
+ License. However, in accepting such obligations, You may act only
170
+ on Your own behalf and on Your sole responsibility, not on behalf
171
+ of any other Contributor, and only if You agree to indemnify,
172
+ defend, and hold each Contributor harmless for any liability
173
+ incurred by, or claims asserted against, such Contributor by reason
174
+ of your accepting any such warranty or additional liability.
175
+
176
+ END OF TERMS AND CONDITIONS
@@ -0,0 +1,39 @@
1
+ # Zendesk Apps Support
2
+
3
+ ## Description
4
+ Classes to manage and validate Zendesk Apps. This is a gem used in [Zendesk Apps Tools](https://github.com/zendesk/zendesk_apps_tools/).
5
+
6
+ ## Owners
7
+ This repo is owned and maintained by the Zendesk Apps team. You can reach us on vegemite@zendesk.com. We are located in Melbourne!
8
+
9
+ ## Getting Started
10
+ When you want to help **develop** this tool, you will need to clone this repo.
11
+
12
+ Since ZAS is used in ZAT, which supports Ruby 2.1, the Bundler Gem Version 1.17.3 is required for bundling dependencies. If you are working with a version that is higher than `1.17.3`, you will need to downgrade it.
13
+ ```
14
+ $ gem install bundler --version 1.17.3
15
+ $ bundle install
16
+ ```
17
+
18
+ Very likely you want to try out your changes with the use of ZAT. See [ZAT](https://github.com/zendesk/zendesk_apps_tools/) for how to get ZAT/ZAS in development.
19
+
20
+ ## Testing
21
+ This project uses Rspec, which can be run with `bundle exec rake`.
22
+
23
+ ## Contribute
24
+ * Put up a PR into the master branch.
25
+ * CC and get two +1 from @zendesk/dingo, @zendesk/wattle, or @zendesk/vegemite.
26
+
27
+ ## Bugs
28
+ Bugs can be reported as an issue here on github, or submitted to support@zendesk.com. By mentioning this project it will assigned to the right team.
29
+
30
+ ## Copyright and license
31
+ Copyright 2013 Zendesk
32
+ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License.
33
+ You may obtain a copy of the License at
34
+
35
+ [http://www.apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0)
36
+
37
+ Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS,
38
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
39
+ See the License for the specific language governing permissions and limitations under the License.
@@ -0,0 +1,163 @@
1
+ # This is a generated file. Do NOT edit directly.
2
+ # To update, run 'bundle exec rake i18n:standardize'.
3
+ ---
4
+ en:
5
+ txt:
6
+ apps:
7
+ admin:
8
+ error:
9
+ app_build:
10
+ listing_comma: ", "
11
+ jshint:
12
+ one: 'JSHint error in %{file}: %{errors}'
13
+ other: 'JSHint errors in %{file}: %{errors}'
14
+ no_template_deprecated_in_v2: 'noTemplate is deprecated and cannot be
15
+ used with framework version 2 or above. Set the autoLoad or autoHide
16
+ property for each specific location instead. Learn more: %{link}.'
17
+ no_parameters_required: Parameters can't be defined for marketing-only
18
+ apps
19
+ marketing_only_app_cant_be_private: Marketing-only apps must not be private
20
+ no_location_required: Locations can't be defined when you specify requirements
21
+ only
22
+ no_framework_version_required: Framework versions can't be set when you
23
+ specify requirements only
24
+ manifest_not_json: manifest is not proper JSON. %{errors}
25
+ duplicate_manifest_keys: Duplicate keys are specified in the manifest.json
26
+ file. %{errors}
27
+ missing_manifest: Could not find manifest.json
28
+ nested_manifest: Could not find manifest.json in the root of the zip file,
29
+ but %{found_path} was found. Try re-creating the archive from this directory.
30
+ symlink_in_zip: Symlinks are not allowed in the zip file
31
+ invalid_experiment: 'Manifest specifies unknown or unavailable experiment:
32
+ %{experiment}'
33
+ unacceptable_hash: The manifest field %{field} needs to be key-value pairs
34
+ with string keys, but it was %{value}
35
+ unacceptable_array: The manifest field %{field} needs to be an array,
36
+ but it was %{value}
37
+ unacceptable_array_of_strings: The manifest field %{field} need to be
38
+ an array containing strings
39
+ missing_requirements: Could not find requirements.json
40
+ requirements_not_supported: App requirements are not supported for marketing-only
41
+ or Chat-only apps
42
+ manifest_keys:
43
+ missing:
44
+ one: 'Missing required field in manifest: %{missing_keys}'
45
+ other: 'Missing required fields in manifest: %{missing_keys}'
46
+ requirements_not_json: requirements.json is not proper JSON. %{errors}
47
+ excessive_requirements: The requirements.json file contains too many requirements.
48
+ The current limit is %{max} requirements. This app has %{count} requirements.
49
+ excessive_custom_objects_requirements: The requirements.json file contains
50
+ too many custom objects requirements. The current limit is %{max} requirements.
51
+ This app has %{count} requirements.
52
+ missing_required_fields: 'Missing required fields in requirements.json:
53
+ "%{field}" is required in "%{identifier}"'
54
+ duplicate_requirements:
55
+ one: 'requirements.json contains a duplicate key: %{duplicate_keys}'
56
+ other: 'requirements.json contains duplicate keys: %{duplicate_keys}'
57
+ invalid_requirements_types:
58
+ one: 'requirements.json contains an invalid type: %{invalid_types}'
59
+ other: 'requirements.json contains invalid types: %{invalid_types}'
60
+ unsupported_mime_type_detected:
61
+ one: Unsupported MIME type detected in %{file_names}.
62
+ other: Unsupported MIME types detected in %{file_names}.
63
+ multiple_channel_integrations: Specifying multiple channel integrations
64
+ in requirements.json is not supported.
65
+ oauth_parameter_required: "Please upgrade to our new oauth format. Learn more: %{link}"
66
+ invalid_cr_schema_keys:
67
+ one: 'Custom resources schema contains an invalid key: %{invalid_keys}'
68
+ other: 'Custom resources schema contains invalid keys: %{invalid_keys}'
69
+ invalid_custom_objects_schema_keys:
70
+ one: 'Custom objects schema contains an invalid key: %{invalid_keys}'
71
+ other: 'Custom objects schema contains invalid keys: %{invalid_keys}'
72
+ banner:
73
+ invalid_format: Banner image must be a PNG file.
74
+ invalid_size: Invalid banner image dimensions. Must be %{required_banner_width}x%{required_banner_height}px.
75
+ dirty_svg: "%{svg} contains invalid markup and could not be automatically
76
+ regenerated."
77
+ oauth_keys:
78
+ missing:
79
+ one: 'Missing required oauth field in manifest: %{missing_keys}'
80
+ other: 'Missing required oauth fields in manifest: %{missing_keys}'
81
+ too_many_oauth_parameters: 'Too many parameters with type ''oauth'': one
82
+ permitted'
83
+ missing_source: Could not find app.js
84
+ style_in_template: "<style> tag in %{template}. Use an app.css file instead."
85
+ no_code_for_ifo_notemplate: Javascripts, stylesheets, and templates are
86
+ not allowed when an iframe URI or noTemplate is specified
87
+ no_source_required_apps: Javascripts, stylesheets, and templates are not
88
+ required for marketingOnly or requirementsOnly apps
89
+ invalid_default_locale: "%{default_locale} is not a valid default locale."
90
+ missing_translation_file: 'Missing translation file for locale ''%{default_locale}''.
91
+ Learn more: https://developer.zendesk.com/apps/docs/developer-guide/deploying#app-internationalization'
92
+ invalid_host: "%{host_name} is an invalid host for apps."
93
+ invalid_location:
94
+ one: "%{invalid_locations} is an invalid location in %{host_name}."
95
+ other: "%{invalid_locations} are invalid locations in %{host_name}."
96
+ blank_location_uri: "%{location} location does not specify a URI."
97
+ invalid_location_uri: "%{uri} is either an invalid location URI, refers
98
+ to a missing asset, or does not use HTTPS."
99
+ name_as_parameter_name: Can't call a parameter 'name'
100
+ invalid_hidden_parameter:
101
+ one: "%{invalid_params} is set to hidden and cannot be required."
102
+ other: "%{invalid_params} are set to hidden and cannot be required."
103
+ blocked_request: Possible request to a %{type} ip %{uri} in %{file}.
104
+ blocked_request_private: private
105
+ blocked_request_loopback: loopback
106
+ blocked_request_link_local: link-local
107
+ invalid_version: "%{target_version} is not a valid framework version.
108
+ Available versions are: %{available_versions}."
109
+ old_version: Iframe Only apps must target framework versions 2.0 or greater.
110
+ parameters_not_an_array: App parameters must be an array.
111
+ duplicate_parameters: 'Duplicate app parameters defined: %{duplicate_parameters}'
112
+ translation:
113
+ invalid_locale: "%{file} is not a valid locale."
114
+ invalid_format: "%{field} is invalid for translation."
115
+ not_json: "%{file} is not valid JSON. %{errors}"
116
+ not_json_object: "%{file} is not a JSON object."
117
+ missing_required_key: 'Missing required key from %{file}: %{missing_key}'
118
+ missing_required_key_on_leaf: Missing required key %{missing_key} on
119
+ leaf %{leaf} from %{file}
120
+ missing_required_key_for_product: 'Missing required key from %{file}
121
+ for %{product}: %{missing_key}'
122
+ products_do_not_match_manifest_products: Products in manifest (%{manifest_products})
123
+ do not match products in translations (%{translation_products})
124
+ insecure_token_parameter_in_manifest: 'Make sure to set secure to true
125
+ when using keys in Settings. Learn more: %{link}'
126
+ stylesheet_error: 'Sass error: %{sass_error}'
127
+ invalid_type_parameter:
128
+ one: "%{invalid_types} is an invalid parameter type."
129
+ other: "%{invalid_types} are invalid parameter types."
130
+ unacceptable_boolean: '%{field} must be a boolean value, got "%{value}".'
131
+ unacceptable_string: '%{field} must be a string, got "%{value}".'
132
+ invalid_no_template: noTemplate must be set to true, false, or an array
133
+ of valid locations.
134
+ duplicate_reference: 'Duplicate reference in manifest: "%{key}".'
135
+ duplicate_reference_values: Initially set to "%{original}", attempted
136
+ overwrite to "%{attempted}".
137
+ locations_must_be_urls: App locations need to be URLs for this framework
138
+ version.
139
+ locations_cant_be_urls: App locations must not be URLs for this framework
140
+ version.
141
+ invalid_v1_location:
142
+ one: "%{invalid_locations} is an invalid location in framework v1."
143
+ other: "%{invalid_locations} are invalid locations in framework v1."
144
+ oauth_parameter_cannot_be_secure: oauth parameter cannot be set to be
145
+ secure.
146
+ warning:
147
+ app_build:
148
+ deprecated_version: You are targeting a deprecated version of the framework.
149
+ Your app will work, but it might break when the new framework version
150
+ is deployed.
151
+ sanitised_svg: The markup in %{svg} has been edited for use in Zendesk
152
+ and may not display as intended.
153
+ bitmap_in_svg: "%{svg} contains an embedded bitmap and cannot be used
154
+ as an app icon. It has been replaced with a default placeholder icon."
155
+ generic_secrets:
156
+ one: Possible secrets found in %{files}. Consider reviewing the contents
157
+ of this file before submitting your app.
158
+ other: Possible secrets found in %{files}. Consider reviewing the contents
159
+ of these files before submitting your app.
160
+ insecure_http_request: Possible insecure HTTP request to %{uri} in %{file}.
161
+ Consider using the HTTPS protocol instead.
162
+ application_secret: Possible %{secret_type} found in %{file}. Consider
163
+ reviewing the contents of this file before submitting your app.
@@ -0,0 +1,405 @@
1
+ # This file is contains translations in Zendesk's custom format. The rake task
2
+ # `i18n:standardize` will generate a version that is compatible with the i18n
3
+ # gem (and thus Rails). Both versions should be checked in.
4
+ title: "Apps Support"
5
+ packages:
6
+ - default
7
+ - apps_support
8
+
9
+ parts:
10
+ - translation:
11
+ key: "txt.apps.admin.error.app_build.listing_comma"
12
+ title: "Punctuation for separating lists of items in a sentence"
13
+ value: ", "
14
+ - translation:
15
+ key: "txt.apps.admin.error.app_build.jshint.one"
16
+ title: "App builder job: JSHint error message"
17
+ value: "JSHint error in %{file}: %{errors}"
18
+ obsolete: "2019-11-01"
19
+ - translation:
20
+ key: "txt.apps.admin.error.app_build.jshint.other"
21
+ title: "App builder job: JSHint error messages"
22
+ value: "JSHint errors in %{file}: %{errors}"
23
+ obsolete: "2019-11-01"
24
+ - translation:
25
+ key: "txt.apps.admin.error.app_build.no_template_deprecated_in_v2"
26
+ title: "App builder job: prevent using noTemplate in v2 apps and give advice on how to migrate. Leave noTemplate and autoHide as is (do not localize)"
27
+ value: "noTemplate is deprecated and cannot be used with framework version 2 or above. Set the autoLoad or autoHide property for each specific location instead. Learn more: %{link}."
28
+ - translation:
29
+ key: "txt.apps.admin.error.app_build.no_parameters_required"
30
+ title: "App builder job: prevent adding parameters while marketing only"
31
+ value: "Parameters can't be defined for marketing-only apps"
32
+ - translation:
33
+ key: "txt.apps.admin.error.app_build.marketing_only_app_cant_be_private"
34
+ title: "App builder job: prevent creating a private marketing only app"
35
+ value: "Marketing-only apps must not be private"
36
+ - translation:
37
+ key: "txt.apps.admin.error.app_build.no_location_required"
38
+ title: "App builder job: ban location while requirements only"
39
+ value: "Locations can't be defined when you specify requirements only"
40
+ - translation:
41
+ key: "txt.apps.admin.error.app_build.no_framework_version_required"
42
+ title: "App builder job: ban framework version while requirements only"
43
+ value: "Framework versions can't be set when you specify requirements only"
44
+ - translation:
45
+ key: "txt.apps.admin.error.app_build.manifest_not_json"
46
+ title: "App builder job: manifest is invalid JSON error"
47
+ value: "manifest is not proper JSON. %{errors}"
48
+ - translation:
49
+ key: "txt.apps.admin.error.app_build.duplicate_manifest_keys"
50
+ title: "App builder job: duplicate keys in manifest.json file (do not localize file name). Placeholders loads errors"
51
+ value: "Duplicate keys are specified in the manifest.json file. %{errors}"
52
+ - translation:
53
+ key: "txt.apps.admin.error.app_build.missing_manifest"
54
+ title: "App builder job: missing manifest error"
55
+ value: "Could not find manifest.json"
56
+ - translation:
57
+ key: "txt.apps.admin.error.app_build.nested_manifest"
58
+ title: "App builder job: missing manifest.json (file name, leave as is) error, but it was found in a subdirectory (path to correct file is loaded in the placeholder"
59
+ value: "Could not find manifest.json in the root of the zip file, but %{found_path} was found. Try re-creating the archive from this directory."
60
+ - translation:
61
+ key: "txt.apps.admin.error.app_build.symlink_in_zip"
62
+ title: "App builder job: symlinks not allowed. https://en.wikipedia.org/wiki/Symbolic_link"
63
+ value: "Symlinks are not allowed in the zip file"
64
+ - translation:
65
+ key: "txt.apps.admin.error.app_build.invalid_experiment"
66
+ title: "App builder job: an experiment has been specifed that is not publically available or otherwise invalid. https://en.wikipedia.org/wiki/Manifest_file"
67
+ value: "Manifest specifies unknown or unavailable experiment: %{experiment}"
68
+ - translation:
69
+ key: "txt.apps.admin.error.app_build.unacceptable_hash"
70
+ title: "App builder job: the value for a field needs to be key-value pairs, but it was something else. https://en.wikipedia.org/wiki/Manifest_file"
71
+ value: "The manifest field %{field} needs to be key-value pairs with string keys, but it was %{value}"
72
+ - translation:
73
+ key: "txt.apps.admin.error.app_build.unacceptable_array"
74
+ title: "App builder job: the value for a field needs to be an array, but it was something else. https://en.wikipedia.org/wiki/Manifest_file"
75
+ value: "The manifest field %{field} needs to be an array, but it was %{value}"
76
+ - translation:
77
+ key: "txt.apps.admin.error.app_build.unacceptable_array_of_strings"
78
+ title: "App builder job: the value for domainWhitelist needs to be an array of strings, but it was something else. https://en.wikipedia.org/wiki/Manifest_file"
79
+ value: "The manifest field %{field} need to be an array containing strings"
80
+ - translation:
81
+ key: "txt.apps.admin.error.app_build.missing_requirements"
82
+ title: "App builder job: missing requirements error"
83
+ value: "Could not find requirements.json"
84
+ - translation:
85
+ key: "txt.apps.admin.error.app_build.requirements_not_supported"
86
+ title: "App builder job: requirements not supported error (for example not supported for apps built only for the product Chat or for marketing purposes."
87
+ value: "App requirements are not supported for marketing-only or Chat-only apps"
88
+ - translation:
89
+ key: "txt.apps.admin.error.app_build.manifest_keys.missing.one"
90
+ title: "App builder job: missing manifest fields error"
91
+ value: "Missing required field in manifest: %{missing_keys}"
92
+ - translation:
93
+ key: "txt.apps.admin.error.app_build.manifest_keys.missing.other"
94
+ title: "App builder job: missing manifest fields error"
95
+ value: "Missing required fields in manifest: %{missing_keys}"
96
+ - translation:
97
+ key: "txt.apps.admin.error.app_build.requirements_not_json"
98
+ title: "App builder job: requirements file is invalid JSON error"
99
+ value: "requirements.json is not proper JSON. %{errors}"
100
+ - translation:
101
+ key: "txt.apps.admin.error.app_build.excessive_requirements"
102
+ title: "App builder job: requirements file contains too many requirements"
103
+ value: "The requirements.json file contains too many requirements. The current limit is %{max} requirements. This app has %{count} requirements."
104
+ - translation:
105
+ key: "txt.apps.admin.error.app_build.excessive_custom_objects_requirements"
106
+ title: "App builder job: requirements file contains too many custom objects requirements. Leave requirements.json as is (do not localize)"
107
+ value: "The requirements.json file contains too many custom objects requirements. The current limit is %{max} requirements. This app has %{count} requirements."
108
+ screenshot: "https://drive.google.com/open?id=18yac8rV7kMe5qm49ERVFVCA7WOZl8vcP"
109
+ - translation:
110
+ key: "txt.apps.admin.error.app_build.missing_required_fields"
111
+ title: "App builder job: required key missing in requirements, e.g. \"title\" is required in \"my_custom_email_target\""
112
+ value: "Missing required fields in requirements.json: \"%{field}\" is required in \"%{identifier}\""
113
+ - translation:
114
+ key: "txt.apps.admin.error.app_build.duplicate_requirements.one"
115
+ title: "App builder job: requirements file contains duplicate key error"
116
+ value: "requirements.json contains a duplicate key: %{duplicate_keys}"
117
+ - translation:
118
+ key: "txt.apps.admin.error.app_build.duplicate_requirements.other"
119
+ title: "App builder job: requirements file contains duplicate keys error"
120
+ value: "requirements.json contains duplicate keys: %{duplicate_keys}"
121
+ - translation:
122
+ key: "txt.apps.admin.error.app_build.invalid_requirements_types.one"
123
+ title: "App builder job: requirements file contains invalid type error"
124
+ value: "requirements.json contains an invalid type: %{invalid_types}"
125
+ - translation:
126
+ key: "txt.apps.admin.error.app_build.invalid_requirements_types.other"
127
+ title: "App builder job: requirements file contains invalid types error"
128
+ value: "requirements.json contains invalid types: %{invalid_types}"
129
+ - translation:
130
+ key: "txt.apps.admin.error.app_build.unsupported_mime_type_detected.one"
131
+ title: "App builder job: directory contains unsupported mime type. MIME is an abbreviation for Multipurpose Internet Mail Extensions. https://en.wikipedia.org/wiki/MIME"
132
+ value: "Unsupported MIME type detected in %{file_names}."
133
+ screenshot: "https://drive.google.com/open?id=13sG5kRWrcVPZiFzDLYo-WavY4WbsHdvX"
134
+ - translation:
135
+ key: "txt.apps.admin.error.app_build.unsupported_mime_type_detected.other"
136
+ title: "App builder job: directory contains unsupported mime type. MIME is an abbreviation for Multipurpose Internet Mail Extensions. https://en.wikipedia.org/wiki/MIME"
137
+ value: "Unsupported MIME types detected in %{file_names}."
138
+ screenshot: "https://drive.google.com/open?id=1Ht4Nq4ZcQ0DMfcm6JphF66QI3e1FT8Wn"
139
+ - translation:
140
+ key: "txt.apps.admin.error.app_build.multiple_channel_integrations"
141
+ title: "App builder job: requirements file contains multiple channel integrations, leave requirements.json as is (file name)"
142
+ value: "Specifying multiple channel integrations in requirements.json is not supported."
143
+ - translation:
144
+ key: "txt.apps.admin.error.app_build.invalid_cr_schema_keys.one"
145
+ title: "App builder job: custom resources schema contains invalid key error"
146
+ value: "Custom resources schema contains an invalid key: %{invalid_keys}"
147
+ screenshot: "https://drive.google.com/open?id=1-CHVDcmr5mf1DKKeWqiOuGWrW25gDY4y"
148
+ obsolete: "2020-01-01"
149
+ - translation:
150
+ key: "txt.apps.admin.error.app_build.invalid_cr_schema_keys.other"
151
+ title: "App builder job: custom resources schema contains invalid keys error"
152
+ value: "Custom resources schema contains invalid keys: %{invalid_keys}"
153
+ screenshot: "https://drive.google.com/open?id=1iEx7f7PYnum_qDQESD3Gz2PwLDza3zI0"
154
+ obsolete: "2020-01-01"
155
+ - translation:
156
+ key: "txt.apps.admin.error.app_build.invalid_custom_objects_schema_keys.one"
157
+ title: "App builder job: custom objects schema contains invalid key error"
158
+ value: "Custom objects schema contains an invalid key: %{invalid_keys}"
159
+ screenshot: "https://drive.google.com/open?id=1-CHVDcmr5mf1DKKeWqiOuGWrW25gDY4y"
160
+ - translation:
161
+ key: "txt.apps.admin.error.app_build.invalid_custom_objects_schema_keys.other"
162
+ title: "App builder job: custom objects schema contains invalid keys error"
163
+ value: "Custom objects schema contains invalid keys: %{invalid_keys}"
164
+ screenshot: "https://drive.google.com/open?id=1iEx7f7PYnum_qDQESD3Gz2PwLDza3zI0"
165
+ - translation:
166
+ key: "txt.apps.admin.error.app_build.banner.invalid_format"
167
+ title: "App builder job: Banner image invalid format error"
168
+ value: "Banner image must be a PNG file."
169
+ - translation:
170
+ key: "txt.apps.admin.error.app_build.banner.invalid_size"
171
+ title: "App builder job: Banner image invalid size error"
172
+ value: "Invalid banner image dimensions. Must be %{required_banner_width}x%{required_banner_height}px."
173
+ - translation:
174
+ key: "txt.apps.admin.error.app_build.dirty_svg"
175
+ title: "App builder job: invalid SVG markup error"
176
+ value: "%{svg} contains invalid markup and could not be automatically regenerated."
177
+ - translation:
178
+ key: "txt.apps.admin.error.app_build.oauth_keys.missing.one"
179
+ title: "App builder job: missing oauth fields error"
180
+ value: "Missing required oauth field in manifest: %{missing_keys}"
181
+ - translation:
182
+ key: "txt.apps.admin.error.app_build.oauth_keys.missing.other"
183
+ title: "App builder job: missing oauth fields error"
184
+ value: "Missing required oauth fields in manifest: %{missing_keys}"
185
+ - translation:
186
+ key: "txt.apps.admin.error.app_build.too_many_oauth_parameters"
187
+ title: "App builder job: upload error when there are more than one 'oauth'"
188
+ value: "Too many parameters with type 'oauth': one permitted"
189
+ screenshot: "https://drive.google.com/file/d/1L3h2fmhJ_9HtYMG1nsinm2gcl-L28IN3/view"
190
+ - translation:
191
+ key: "txt.apps.admin.error.app_build.missing_source"
192
+ title: "App builder job: missing app.js error"
193
+ value: "Could not find app.js"
194
+ obsolete: "2019-11-01"
195
+ - translation:
196
+ key: "txt.apps.admin.error.app_build.style_in_template"
197
+ title: "App builder job: <style> tags in template error"
198
+ value: "<style> tag in %{template}. Use an app.css file instead."
199
+ - translation:
200
+ key: "txt.apps.admin.error.app_build.no_code_for_ifo_notemplate"
201
+ title: "App builder job: code included for a type of app that shouldn't have code"
202
+ value: "Javascripts, stylesheets, and templates are not allowed when an iframe URI or noTemplate is specified"
203
+ obsolete: "2019-11-01"
204
+ - translation:
205
+ key: "txt.apps.admin.error.app_build.no_source_required_apps"
206
+ title: "Inform users that no source files are required when uploading marketingOnly and requirementsOnly apps. Do not translate 'marketingOnly' and 'requirementsOnly', these are Manifest properties (https://developer.zendesk.com/apps/docs/developer-guide/manifest). Also refer to https://en.wikipedia.org/wiki/Style_sheet_(web_development) for stylesheets."
207
+ value: "Javascripts, stylesheets, and templates are not required for marketingOnly or requirementsOnly apps"
208
+ screenshot: "https://drive.google.com/open?id=12B7CMtErshVxI2b-Eo-DjexOqer27oxV"
209
+ - translation:
210
+ key: "txt.apps.admin.error.app_build.invalid_default_locale"
211
+ title: "App builder job: invalid default locale"
212
+ value: "%{default_locale} is not a valid default locale."
213
+ - translation:
214
+ key: "txt.apps.admin.error.app_build.missing_translation_file"
215
+ title: "App builder job: missing translation file"
216
+ value: "Missing translation file for locale '%{default_locale}'. Learn more: https://developer.zendesk.com/apps/docs/developer-guide/deploying#app-internationalization"
217
+ - translation:
218
+ key: "txt.apps.admin.error.app_build.invalid_host"
219
+ title: "App builder job: invalid host application for apps"
220
+ value: "%{host_name} is an invalid host for apps."
221
+ - translation:
222
+ key: "txt.apps.admin.error.app_build.invalid_location.one"
223
+ title: "App builder job: invalid locations"
224
+ value: "%{invalid_locations} is an invalid location in %{host_name}."
225
+ - translation:
226
+ key: "txt.apps.admin.error.app_build.invalid_location.other"
227
+ title: "App builder job: invalid locations"
228
+ value: "%{invalid_locations} are invalid locations in %{host_name}."
229
+ - translation:
230
+ key: "txt.apps.admin.error.app_build.blank_location_uri"
231
+ title: "App builder job: invalid URI for an iframe in the manifest"
232
+ value: "%{location} location does not specify a URI."
233
+ - translation:
234
+ key: "txt.apps.admin.error.app_build.invalid_location_uri"
235
+ title: "App builder job: invalid URI for an iframe in the manifest"
236
+ value: "%{uri} is either an invalid location URI, refers to a missing asset, or does not use HTTPS."
237
+ - translation:
238
+ key: "txt.apps.admin.error.app_build.name_as_parameter_name"
239
+ title: "App builder job: error message when developer names a parameter 'name'"
240
+ value: "Can't call a parameter 'name'"
241
+ - translation:
242
+ key: "txt.apps.admin.error.app_build.invalid_hidden_parameter.one"
243
+ title: "App builder job: hidden parameters set to required"
244
+ value: "%{invalid_params} is set to hidden and cannot be required."
245
+ - translation:
246
+ key: "txt.apps.admin.error.app_build.invalid_hidden_parameter.other"
247
+ title: "App builder job: hidden parameters set to required"
248
+ value: "%{invalid_params} are set to hidden and cannot be required."
249
+ - translation:
250
+ key: "txt.apps.admin.warning.app_build.deprecated_version"
251
+ title: "App builder job: deprecated version specified"
252
+ value: "You are targeting a deprecated version of the framework. Your app will work, but it might break when the new framework version is deployed."
253
+ obsolete: "2019-11-01"
254
+ - translation:
255
+ key: "txt.apps.admin.warning.app_build.sanitised_svg"
256
+ title: "App builder job: warning that contents of svg have been sanitised and overwritten"
257
+ value: "The markup in %{svg} has been edited for use in Zendesk and may not display as intended."
258
+ - translation:
259
+ key: "txt.apps.admin.warning.app_build.bitmap_in_svg"
260
+ title: "App builder job: warning that svg contains an embedded bitmap image and cannot be used"
261
+ value: "%{svg} contains an embedded bitmap and cannot be used as an app icon. It has been replaced with a default placeholder icon."
262
+ - translation:
263
+ key: "txt.apps.admin.warning.app_build.generic_secrets.one"
264
+ title: "App builder job: warning for generic secrets found in app text files. %{files} will be replaced with one file name"
265
+ value: "Possible secrets found in %{files}. Consider reviewing the contents of this file before submitting your app."
266
+ screenshot: "https://drive.google.com/file/d/179IMwzJvXD1m5u-0K499Ul3-qRBXAxnT"
267
+ - translation:
268
+ key: "txt.apps.admin.warning.app_build.generic_secrets.other"
269
+ title: "App builder job: warning for generic secrets found in app text files. %{files} will be replaced with multiple file names"
270
+ value: "Possible secrets found in %{files}. Consider reviewing the contents of these files before submitting your app."
271
+ screenshot: "https://drive.google.com/file/d/179IMwzJvXD1m5u-0K499Ul3-qRBXAxnT"
272
+ - translation:
273
+ key: "txt.apps.admin.warning.app_build.insecure_http_request"
274
+ title: "App builder job: warning on detecting an insecure http request call in app source files"
275
+ value: "Possible insecure HTTP request to %{uri} in %{file}. Consider using the HTTPS protocol instead."
276
+ screenshot: "https://drive.google.com/file/d/1V-lXrVoAXAZEtBoekq7XLyetomUZRqY-"
277
+ - translation:
278
+ key: "txt.apps.admin.error.app_build.blocked_request"
279
+ title: "App builder job: error on detecting a forbidden http request call in app source files"
280
+ value: "Possible request to a %{type} ip %{uri} in %{file}."
281
+ screenshot: "https://drive.google.com/file/d/1hiTwbQi5aj6PnEtfuA7QTALs6AryDmj_"
282
+ - translation:
283
+ key: "txt.apps.admin.error.app_build.blocked_request_private"
284
+ title: "App builder job: forbidden http request call ip type: private. See https://en.wikipedia.org/wiki/Private_network"
285
+ value: "private"
286
+ - translation:
287
+ key: "txt.apps.admin.error.app_build.blocked_request_loopback"
288
+ title: "App builder job: forbidden http request call ip type: loopback. See https://en.wikipedia.org/wiki/Loopback"
289
+ value: "loopback"
290
+ - translation:
291
+ key: "txt.apps.admin.error.app_build.blocked_request_link_local"
292
+ title: "App builder job: forbidden http request call ip type: link-local. See https://en.wikipedia.org/wiki/Link-local_address"
293
+ value: "link-local"
294
+ - translation:
295
+ key: "txt.apps.admin.warning.app_build.application_secret"
296
+ title: "App builder job: warning for secrets found in app text files"
297
+ value: "Possible %{secret_type} found in %{file}. Consider reviewing the contents of this file before submitting your app."
298
+ screenshot: "https://drive.google.com/file/d/1LoN9-IlRbiz6uv1-CQ933mh-WY8XY5o2"
299
+ - translation:
300
+ key: "txt.apps.admin.error.app_build.invalid_version"
301
+ title: "App builder job: invalid framework version"
302
+ value: "%{target_version} is not a valid framework version. Available versions are: %{available_versions}."
303
+ - translation:
304
+ key: "txt.apps.admin.error.app_build.old_version"
305
+ title: "App builder job: old framework version"
306
+ value: "Iframe Only apps must target framework versions 2.0 or greater."
307
+ obsolete: "2019-11-01"
308
+ - translation:
309
+ key: "txt.apps.admin.error.app_build.parameters_not_an_array"
310
+ title: "App builder job: app parameters must be an array"
311
+ value: "App parameters must be an array."
312
+ - translation:
313
+ key: "txt.apps.admin.error.app_build.duplicate_parameters"
314
+ title: "App builder job: duplicate parameters error"
315
+ value: "Duplicate app parameters defined: %{duplicate_parameters}"
316
+ - translation:
317
+ key: "txt.apps.admin.error.app_build.translation.invalid_locale"
318
+ title: "App builder job: invalid locale file name"
319
+ value: "%{file} is not a valid locale."
320
+ - translation:
321
+ key: "txt.apps.admin.error.app_build.translation.invalid_format"
322
+ title: "App builder job: file format is invalid for translation"
323
+ value: "%{field} is invalid for translation."
324
+ - translation:
325
+ key: "txt.apps.admin.error.app_build.translation.not_json"
326
+ title: "App builder job: translation file is invalid json"
327
+ value: "%{file} is not valid JSON. %{errors}"
328
+ - translation:
329
+ key: "txt.apps.admin.error.app_build.translation.not_json_object"
330
+ title: "App builder job: translation file is not a JSON object"
331
+ value: "%{file} is not a JSON object."
332
+ - translation:
333
+ key: "txt.apps.admin.error.app_build.translation.missing_required_key"
334
+ title: "App builder job: required key missing from translation file"
335
+ value: "Missing required key from %{file}: %{missing_key}"
336
+ - translation:
337
+ key: "txt.apps.admin.error.app_build.translation.missing_required_key_on_leaf"
338
+ title: "App builder job: required key missing from translation file."
339
+ screenshot: "https://zendesk.box.com/s/m6yr2j0vai0a7qkimj2gcqiy61jznmn4"
340
+ value: "Missing required key %{missing_key} on leaf %{leaf} from %{file}"
341
+ - translation:
342
+ key: "txt.apps.admin.error.app_build.translation.missing_required_key_for_product"
343
+ title: "App builder job: required key missing from translation file for a specific product"
344
+ value: "Missing required key from %{file} for %{product}: %{missing_key}"
345
+ - translation:
346
+ key: "txt.apps.admin.error.app_build.translation.products_do_not_match_manifest_products"
347
+ title: "App builder job: products specified in translation file don't match products in manifest"
348
+ value: "Products in manifest (%{manifest_products}) do not match products in translations (%{translation_products})"
349
+ - translation:
350
+ key: "txt.apps.admin.error.app_build.translation.insecure_token_parameter_in_manifest"
351
+ title: "Validation message to indicate missing secure(true) field in manifest's token parameter. Do not translate 'secure' and 'true'. Secure(true) in manifest refers to https://developer.zendesk.com/apps/docs/developer-guide/using_sdk#using-secure-settings"
352
+ value: "Make sure to set secure to true when using keys in Settings. Learn more: %{link}"
353
+ screenshot: "https://drive.google.com/open?id=1ss3nNN2RG29R7StjCtiH8qjuwFBlRApJ"
354
+ - translation:
355
+ key: "txt.apps.admin.error.app_build.stylesheet_error"
356
+ title: "App builder job: invalid stylesheet syntax"
357
+ value: "Sass error: %{sass_error}"
358
+ - translation:
359
+ key: "txt.apps.admin.error.app_build.invalid_type_parameter.one"
360
+ title: "App builder job: single invalid parameter type error"
361
+ value: "%{invalid_types} is an invalid parameter type."
362
+ - translation:
363
+ key: "txt.apps.admin.error.app_build.invalid_type_parameter.other"
364
+ title: "App builder job: multiple invalid parameter types error"
365
+ value: "%{invalid_types} are invalid parameter types."
366
+ - translation:
367
+ key: "txt.apps.admin.error.app_build.unacceptable_boolean"
368
+ title: "App builder job: this value needs to be either true or false, but something else was passed in. placeholder value is taken from user input. You can translate as: The value %{field} must be a Boolean... to avoid any gender issues."
369
+ value: "%{field} must be a boolean value, got \"%{value}\"."
370
+ - translation:
371
+ key: "txt.apps.admin.error.app_build.unacceptable_string"
372
+ title: "App builder job: this value needs to be a text string, but something else was passed in. placeholder value is taken from user input. You can translate as: The value %{field} must be a string... to avoid any gender issues."
373
+ value: "%{field} must be a string, got \"%{value}\"."
374
+ - translation:
375
+ key: "txt.apps.admin.error.app_build.invalid_no_template"
376
+ title: "App builder job: `noTemplate` needs to be true, false or a valid array, but something else was passed in. noTemplate, true, and false should not be translated."
377
+ value: "noTemplate must be set to true, false, or an array of valid locations."
378
+ - translation:
379
+ key: "txt.apps.admin.error.app_build.duplicate_reference"
380
+ title: "App builder job: a key was included twice in the supplied manifest file, but it is only allowed once"
381
+ value: "Duplicate reference in manifest: \"%{key}\"."
382
+ - translation:
383
+ key: "txt.apps.admin.error.app_build.duplicate_reference_values"
384
+ title: "This sentence follows txt.apps.admin.error.app_build.duplicate_reference. The values are included to help find the problem."
385
+ value: "Initially set to \"%{original}\", attempted overwrite to \"%{attempted}\"."
386
+ - translation:
387
+ key: "txt.apps.admin.error.app_build.locations_must_be_urls"
388
+ title: "The locations needed to be URLs, but they were empty."
389
+ value: "App locations need to be URLs for this framework version."
390
+ - translation:
391
+ key: "txt.apps.admin.error.app_build.locations_cant_be_urls"
392
+ title: "The locations can't be URLs, but they were."
393
+ value: "App locations must not be URLs for this framework version."
394
+ - translation:
395
+ key: "txt.apps.admin.error.app_build.invalid_v1_location.one"
396
+ title: "The location listed is not available in framework v1."
397
+ value: "%{invalid_locations} is an invalid location in framework v1."
398
+ - translation:
399
+ key: "txt.apps.admin.error.app_build.invalid_v1_location.other"
400
+ title: "The locations listed are not available in framework v1."
401
+ value: "%{invalid_locations} are invalid locations in framework v1."
402
+ - translation:
403
+ key: "txt.apps.admin.error.app_build.oauth_parameter_cannot_be_secure"
404
+ title: "oauth parameter cannot be set to be secure."
405
+ value: "oauth parameter cannot be set to be secure."