aboutsummaryrefslogtreecommitdiffhomepage
path: root/client/src/app/+admin/config/edit-custom-config
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2018-06-04 16:21:17 +0200
committerChocobozzz <me@florianbigard.com>2018-06-05 08:43:01 +0200
commitb1d40cff89f7cff565a98cdbcea9a624196a169a (patch)
treed24746c1cc69f50471a9eba0dfb1c1bae06a1870 /client/src/app/+admin/config/edit-custom-config
parent989e526abf0c0dd7958deb630df009608561bb67 (diff)
downloadPeerTube-b1d40cff89f7cff565a98cdbcea9a624196a169a.tar.gz
PeerTube-b1d40cff89f7cff565a98cdbcea9a624196a169a.tar.zst
PeerTube-b1d40cff89f7cff565a98cdbcea9a624196a169a.zip
Add i18n attributes
Diffstat (limited to 'client/src/app/+admin/config/edit-custom-config')
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html140
-rw-r--r--client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts28
2 files changed, 96 insertions, 72 deletions
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
index 8a1e33c56..4263b7b5f 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
+++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.html
@@ -4,13 +4,13 @@
4 4
5 <tab heading="Basic configuration"> 5 <tab heading="Basic configuration">
6 6
7 <div class="inner-form-title">Instance</div> 7 <div i18n class="inner-form-title">Instance</div>
8 8
9 <div class="form-group"> 9 <div class="form-group">
10 <label for="instanceName">Name</label> 10 <label i18n for="instanceName">Name</label>
11 <input 11 <input
12 type="text" id="instanceName" 12 type="text" id="instanceName"
13 formControlName="instanceName" [ngClass]="{ 'input-error': formErrors['instanceName'] }" 13 formControlName="instanceName" [ngClass]="{ 'input-error': formErrors['instanceName'] }"
14 > 14 >
15 <div *ngIf="formErrors.instanceName" class="form-error"> 15 <div *ngIf="formErrors.instanceName" class="form-error">
16 {{ formErrors.instanceName }} 16 {{ formErrors.instanceName }}
@@ -18,10 +18,10 @@
18 </div> 18 </div>
19 19
20 <div class="form-group"> 20 <div class="form-group">
21 <label for="instanceShortDescription">Short description</label> 21 <label i18n for="instanceShortDescription">Short description</label>
22 <textarea 22 <textarea
23 id="instanceShortDescription" formControlName="instanceShortDescription" 23 id="instanceShortDescription" formControlName="instanceShortDescription"
24 [ngClass]="{ 'input-error': formErrors['instanceShortDescription'] }" 24 [ngClass]="{ 'input-error': formErrors['instanceShortDescription'] }"
25 ></textarea> 25 ></textarea>
26 <div *ngIf="formErrors.instanceShortDescription" class="form-error"> 26 <div *ngIf="formErrors.instanceShortDescription" class="form-error">
27 {{ formErrors.instanceShortDescription }} 27 {{ formErrors.instanceShortDescription }}
@@ -29,10 +29,10 @@
29 </div> 29 </div>
30 30
31 <div class="form-group"> 31 <div class="form-group">
32 <label for="instanceDescription">Description</label><my-help helpType="markdownText"></my-help> 32 <label i18n for="instanceDescription">Description</label><my-help helpType="markdownText"></my-help>
33 <my-markdown-textarea 33 <my-markdown-textarea
34 id="instanceDescription" formControlName="instanceDescription" textareaWidth="500px" [previewColumn]="true" 34 id="instanceDescription" formControlName="instanceDescription" textareaWidth="500px" [previewColumn]="true"
35 [classes]="{ 'input-error': formErrors['instanceDescription'] }" 35 [classes]="{ 'input-error': formErrors['instanceDescription'] }"
36 ></my-markdown-textarea> 36 ></my-markdown-textarea>
37 <div *ngIf="formErrors.instanceDescription" class="form-error"> 37 <div *ngIf="formErrors.instanceDescription" class="form-error">
38 {{ formErrors.instanceDescription }} 38 {{ formErrors.instanceDescription }}
@@ -40,10 +40,10 @@
40 </div> 40 </div>
41 41
42 <div class="form-group"> 42 <div class="form-group">
43 <label for="instanceTerms">Terms</label><my-help helpType="markdownText"></my-help> 43 <label i18n for="instanceTerms">Terms</label><my-help helpType="markdownText"></my-help>
44 <my-markdown-textarea 44 <my-markdown-textarea
45 id="instanceTerms" formControlName="instanceTerms" textareaWidth="500px" [previewColumn]="true" 45 id="instanceTerms" formControlName="instanceTerms" textareaWidth="500px" [previewColumn]="true"
46 [ngClass]="{ 'input-error': formErrors['instanceTerms'] }" 46 [ngClass]="{ 'input-error': formErrors['instanceTerms'] }"
47 ></my-markdown-textarea> 47 ></my-markdown-textarea>
48 <div *ngIf="formErrors.instanceTerms" class="form-error"> 48 <div *ngIf="formErrors.instanceTerms" class="form-error">
49 {{ formErrors.instanceTerms }} 49 {{ formErrors.instanceTerms }}
@@ -51,12 +51,12 @@
51 </div> 51 </div>
52 52
53 <div class="form-group"> 53 <div class="form-group">
54 <label for="instanceDefaultClientRoute">Default client route</label> 54 <label i18n for="instanceDefaultClientRoute">Default client route</label>
55 <div class="peertube-select-container"> 55 <div class="peertube-select-container">
56 <select id="instanceDefaultClientRoute" formControlName="instanceDefaultClientRoute"> 56 <select id="instanceDefaultClientRoute" formControlName="instanceDefaultClientRoute">
57 <option value="/videos/trending">Videos Trending</option> 57 <option i18n value="/videos/trending">Videos Trending</option>
58 <option value="/videos/recently-added">Videos Recently Added</option> 58 <option i18n value="/videos/recently-added">Videos Recently Added</option>
59 <option value="/videos/local">Local videos</option> 59 <option i18n value="/videos/local">Local videos</option>
60 </select> 60 </select>
61 </div> 61 </div>
62 <div *ngIf="formErrors.instanceDefaultClientRoute" class="form-error"> 62 <div *ngIf="formErrors.instanceDefaultClientRoute" class="form-error">
@@ -65,14 +65,17 @@
65 </div> 65 </div>
66 66
67 <div class="form-group"> 67 <div class="form-group">
68 <label for="instanceDefaultNSFWPolicy">Policy on videos containing sensitive content</label> 68 <label i18n for="instanceDefaultNSFWPolicy">Policy on videos containing sensitive content</label>
69 <my-help helpType="custom" customHtml="With <strong>Do not list</strong> or <strong>Blur thumbnails</strong>, a confirmation will be requested to watch the video."></my-help> 69 <my-help
70 helpType="custom" i18n-customHtml
71 customHtml="With <strong>Do not list</strong> or <strong>Blur thumbnails</strong>, a confirmation will be requested to watch the video."
72 ></my-help>
70 73
71 <div class="peertube-select-container"> 74 <div class="peertube-select-container">
72 <select id="instanceDefaultNSFWPolicy" formControlName="instanceDefaultNSFWPolicy"> 75 <select id="instanceDefaultNSFWPolicy" formControlName="instanceDefaultNSFWPolicy">
73 <option value="do_not_list">Do not list</option> 76 <option i18n value="do_not_list">Do not list</option>
74 <option value="blur">Blur thumbnails</option> 77 <option i18n value="blur">Blur thumbnails</option>
75 <option value="display">Display</option> 78 <option i18n value="display">Display</option>
76 </select> 79 </select>
77 </div> 80 </div>
78 <div *ngIf="formErrors.instanceDefaultNSFWPolicy" class="form-error"> 81 <div *ngIf="formErrors.instanceDefaultNSFWPolicy" class="form-error">
@@ -80,43 +83,43 @@
80 </div> 83 </div>
81 </div> 84 </div>
82 85
83 <div class="inner-form-title">Signup</div> 86 <div i18n class="inner-form-title">Signup</div>
84 87
85 <div class="form-group"> 88 <div class="form-group">
86 <input type="checkbox" id="signupEnabled" formControlName="signupEnabled"> 89 <input type="checkbox" id="signupEnabled" formControlName="signupEnabled">
87 90
88 <label for="signupEnabled"></label> 91 <label for="signupEnabled"></label>
89 <label for="signupEnabled">Signup enabled</label> 92 <label i18n for="signupEnabled">Signup enabled</label>
90 </div> 93 </div>
91 94
92 <div *ngIf="isSignupEnabled()" class="form-group"> 95 <div *ngIf="isSignupEnabled()" class="form-group">
93 <label for="signupLimit">Signup limit</label> 96 <label i18n for="signupLimit">Signup limit</label>
94 <input 97 <input
95 type="text" id="signupLimit" 98 type="text" id="signupLimit"
96 formControlName="signupLimit" [ngClass]="{ 'input-error': formErrors['signupLimit'] }" 99 formControlName="signupLimit" [ngClass]="{ 'input-error': formErrors['signupLimit'] }"
97 > 100 >
98 <div *ngIf="formErrors.signupLimit" class="form-error"> 101 <div *ngIf="formErrors.signupLimit" class="form-error">
99 {{ formErrors.signupLimit }} 102 {{ formErrors.signupLimit }}
100 </div> 103 </div>
101 </div> 104 </div>
102 105
103 <div class="inner-form-title">Administrator</div> 106 <div i18n class="inner-form-title">Administrator</div>
104 107
105 <div class="form-group"> 108 <div class="form-group">
106 <label for="adminEmail">Admin email</label> 109 <label i18n for="adminEmail">Admin email</label>
107 <input 110 <input
108 type="text" id="adminEmail" 111 type="text" id="adminEmail"
109 formControlName="adminEmail" [ngClass]="{ 'input-error': formErrors['adminEmail'] }" 112 formControlName="adminEmail" [ngClass]="{ 'input-error': formErrors['adminEmail'] }"
110 > 113 >
111 <div *ngIf="formErrors.adminEmail" class="form-error"> 114 <div *ngIf="formErrors.adminEmail" class="form-error">
112 {{ formErrors.adminEmail }} 115 {{ formErrors.adminEmail }}
113 </div> 116 </div>
114 </div> 117 </div>
115 118
116 <div class="inner-form-title">Users</div> 119 <div i18n class="inner-form-title">Users</div>
117 120
118 <div class="form-group"> 121 <div class="form-group">
119 <label for="userVideoQuota">User default video quota</label> 122 <label i18n for="userVideoQuota">User default video quota</label>
120 <div class="peertube-select-container"> 123 <div class="peertube-select-container">
121 <select id="userVideoQuota" formControlName="userVideoQuota"> 124 <select id="userVideoQuota" formControlName="userVideoQuota">
122 <option *ngFor="let videoQuotaOption of videoQuotaOptions" [value]="videoQuotaOption.value"> 125 <option *ngFor="let videoQuotaOption of videoQuotaOptions" [value]="videoQuotaOption.value">
@@ -132,14 +135,17 @@
132 135
133 <tab heading="Services"> 136 <tab heading="Services">
134 137
135 <div class="inner-form-title">Twitter</div> 138 <div i18n class="inner-form-title">Twitter</div>
136 139
137 <div class="form-group"> 140 <div class="form-group">
138 <label for="signupLimit">Your Twitter username</label> 141 <label i18n for="signupLimit">Your Twitter username</label>
139 <my-help helpType="custom" customHtml="Indicates the Twitter account for the website or platform on which the content was published."></my-help> 142 <my-help
143 helpType="custom" i18n-customHtml
144 customHtml="Indicates the Twitter account for the website or platform on which the content was published."
145 ></my-help>
140 <input 146 <input
141 type="text" id="servicesTwitterUsername" 147 type="text" id="servicesTwitterUsername"
142 formControlName="servicesTwitterUsername" [ngClass]="{ 'input-error': formErrors['servicesTwitterUsername'] }" 148 formControlName="servicesTwitterUsername" [ngClass]="{ 'input-error': formErrors['servicesTwitterUsername'] }"
143 > 149 >
144 <div *ngIf="formErrors.servicesTwitterUsername" class="form-error"> 150 <div *ngIf="formErrors.servicesTwitterUsername" class="form-error">
145 {{ formErrors.servicesTwitterUsername }} 151 {{ formErrors.servicesTwitterUsername }}
@@ -150,29 +156,32 @@
150 <input type="checkbox" id="servicesTwitterWhitelisted" formControlName="servicesTwitterWhitelisted"> 156 <input type="checkbox" id="servicesTwitterWhitelisted" formControlName="servicesTwitterWhitelisted">
151 157
152 <label for="servicesTwitterWhitelisted"></label> 158 <label for="servicesTwitterWhitelisted"></label>
153 <label for="servicesTwitterWhitelisted">Instance whitelisted by Twitter</label> 159 <label i18n for="servicesTwitterWhitelisted">Instance whitelisted by Twitter</label>
154 <my-help helpType="custom" customHtml="If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.<br /> 160 <my-help
161 helpType="custom" i18n-customHtml
162 customHtml="If your instance is whitelisted by Twitter, a video player will be embedded in the Twitter feed on PeerTube video share.<br />
155If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance.<br /><br /> 163If the instance is not whitelisted, we use an image link card that will redirect on your PeerTube instance.<br /><br />
156Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on <a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'>https://cards-dev.twitter.com/validator</a> to see if you instance is whitelisted."></my-help> 164Check this checkbox, save the configuration and test with a video URL of your instance (https://example.com/videos/watch/blabla) on <a target='_blank' rel='noopener noreferrer' href='https://cards-dev.twitter.com/validator'>https://cards-dev.twitter.com/validator</a> to see if you instance is whitelisted."
165 ></my-help>
157 166
158 </div> 167 </div>
159 </tab> 168 </tab>
160 169
161 <tab heading="Advanced configuration"> 170 <tab heading="Advanced configuration">
162 171
163 <div class="inner-form-title">Transcoding</div> 172 <div i18n class="inner-form-title">Transcoding</div>
164 173
165 <div class="form-group"> 174 <div class="form-group">
166 <input type="checkbox" id="transcodingEnabled" formControlName="transcodingEnabled"> 175 <input type="checkbox" id="transcodingEnabled" formControlName="transcodingEnabled">
167 176
168 <label for="transcodingEnabled"></label> 177 <label for="transcodingEnabled"></label>
169 <label for="transcodingEnabled">Transcoding enabled</label> 178 <label i18n for="transcodingEnabled">Transcoding enabled</label>
170 </div> 179 </div>
171 180
172 <ng-template [ngIf]="isTranscodingEnabled()"> 181 <ng-template [ngIf]="isTranscodingEnabled()">
173 182
174 <div class="form-group"> 183 <div class="form-group">
175 <label for="transcodingThreads">Transcoding threads</label> 184 <label i18n for="transcodingThreads">Transcoding threads</label>
176 <div class="peertube-select-container"> 185 <div class="peertube-select-container">
177 <select id="transcodingThreads" formControlName="transcodingThreads"> 186 <select id="transcodingThreads" formControlName="transcodingThreads">
178 <option *ngFor="let transcodingThreadOption of transcodingThreadOptions" [value]="transcodingThreadOption.value"> 187 <option *ngFor="let transcodingThreadOption of transcodingThreadOptions" [value]="transcodingThreadOption.value">
@@ -191,33 +200,39 @@ Check this checkbox, save the configuration and test with a video URL of your in
191 [formControlName]="getResolutionKey(resolution)" 200 [formControlName]="getResolutionKey(resolution)"
192 > 201 >
193 <label [for]="getResolutionKey(resolution)"></label> 202 <label [for]="getResolutionKey(resolution)"></label>
194 <label [for]="getResolutionKey(resolution)">Resolution {{ resolution }} enabled</label> 203 <label i18n [for]="getResolutionKey(resolution)">Resolution {{ resolution }} enabled</label>
195 </div> 204 </div>
196 </ng-template> 205 </ng-template>
197 206
198 <div class="inner-form-title">Cache</div> 207 <div i18n class="inner-form-title">Cache</div>
199 208
200 <div class="form-group"> 209 <div class="form-group">
201 <label for="cachePreviewsSize">Preview cache size</label> 210 <label i18n for="cachePreviewsSize">Preview cache size</label>
202 <my-help helpType="custom" customHtml="Previews are not federated. We fetch them directly from the origin instance and cache them."></my-help> 211 <my-help
212 helpType="custom" i18n-customHtml
213 customHtml="Previews are not federated. We fetch them directly from the origin instance and cache them."
214 ></my-help>
203 215
204 <input 216 <input
205 type="text" id="cachePreviewsSize" 217 type="text" id="cachePreviewsSize"
206 formControlName="cachePreviewsSize" [ngClass]="{ 'input-error': formErrors['cachePreviewsSize'] }" 218 formControlName="cachePreviewsSize" [ngClass]="{ 'input-error': formErrors['cachePreviewsSize'] }"
207 > 219 >
208 <div *ngIf="formErrors.cachePreviewsSize" class="form-error"> 220 <div *ngIf="formErrors.cachePreviewsSize" class="form-error">
209 {{ formErrors.cachePreviewsSize }} 221 {{ formErrors.cachePreviewsSize }}
210 </div> 222 </div>
211 </div> 223 </div>
212 224
213 <div class="inner-form-title">Customizations</div> 225 <div i18n class="inner-form-title">Customizations</div>
214 226
215 <div class="form-group"> 227 <div class="form-group">
216 <label for="customizationJavascript">JavaScript</label> 228 <label i18n for="customizationJavascript">JavaScript</label>
217 <my-help helpType="custom" customHtml="Write directly JavaScript code.<br />Example: <pre>console.log('my instance is amazing');</pre>"></my-help> 229 <my-help
230 helpType="custom" i18n-customHtml
231 customHtml="Write directly JavaScript code.<br />Example: <pre>console.log('my instance is amazing');</pre>"
232 ></my-help>
218 <textarea 233 <textarea
219 id="customizationJavascript" formControlName="customizationJavascript" 234 id="customizationJavascript" formControlName="customizationJavascript"
220 [ngClass]="{ 'input-error': formErrors['customizationJavascript'] }" 235 [ngClass]="{ 'input-error': formErrors['customizationJavascript'] }"
221 ></textarea> 236 ></textarea>
222 <div *ngIf="formErrors.customizationJavascript" class="form-error"> 237 <div *ngIf="formErrors.customizationJavascript" class="form-error">
223 {{ formErrors.customizationJavascript }} 238 {{ formErrors.customizationJavascript }}
@@ -228,25 +243,26 @@ Check this checkbox, save the configuration and test with a video URL of your in
228 <label for="customizationCSS">CSS</label> 243 <label for="customizationCSS">CSS</label>
229 <my-help 244 <my-help
230 helpType="custom" 245 helpType="custom"
246 i18n-customHtml
231 customHtml=" 247 customHtml="
232 Write directly CSS code. Example:<br /> 248 Write directly CSS code. Example:<br />
233 <pre> 249 <pre>
234 body { 250 body {{ '{' }}
235 background-color: red; 251 background-color: red;
236 } 252 {{ '}' }}
237 </pre> 253 </pre>
238 254
239 Prepend with <em>#custom-css</em> to override styles. Example: 255 Prepend with <em>#custom-css</em> to override styles. Example:
240 <pre> 256 <pre>
241 #custom-css .logged-in-email { 257 #custom-css .logged-in-email {{ '{' }}
242 color: red; 258 color: red;
243 } 259 {{ '}' }}
244 </pre> 260 </pre>
245 " 261 "
246 ></my-help> 262 ></my-help>
247 <textarea 263 <textarea
248 id="customizationCSS" formControlName="customizationCSS" 264 id="customizationCSS" formControlName="customizationCSS"
249 [ngClass]="{ 'input-error': formErrors['customizationCSS'] }" 265 [ngClass]="{ 'input-error': formErrors['customizationCSS'] }"
250 ></textarea> 266 ></textarea>
251 <div *ngIf="formErrors.customizationCSS" class="form-error"> 267 <div *ngIf="formErrors.customizationCSS" class="form-error">
252 {{ formErrors.customizationCSS }} 268 {{ formErrors.customizationCSS }}
@@ -255,5 +271,5 @@ Check this checkbox, save the configuration and test with a video URL of your in
255 </tab> 271 </tab>
256 </tabset> 272 </tabset>
257 273
258 <input (click)="formValidated()" type="submit" value="Update configuration" [disabled]="!form.valid"> 274 <input (click)="formValidated()" type="submit" i18n-value value="Update configuration" [disabled]="!form.valid">
259</form> 275</form>
diff --git a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
index a1e334a74..3f9205460 100644
--- a/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
+++ b/client/src/app/+admin/config/edit-custom-config/edit-custom-config.component.ts
@@ -8,12 +8,15 @@ import { FormReactive, USER_VIDEO_QUOTA } from '@app/shared'
8import { 8import {
9 ADMIN_EMAIL, 9 ADMIN_EMAIL,
10 CACHE_PREVIEWS_SIZE, 10 CACHE_PREVIEWS_SIZE,
11 INSTANCE_NAME, INSTANCE_SHORT_DESCRIPTION, SERVICES_TWITTER_USERNAME, 11 INSTANCE_NAME,
12 INSTANCE_SHORT_DESCRIPTION,
13 SERVICES_TWITTER_USERNAME,
12 SIGNUP_LIMIT, 14 SIGNUP_LIMIT,
13 TRANSCODING_THREADS 15 TRANSCODING_THREADS
14} from '@app/shared/forms/form-validators/custom-config' 16} from '@app/shared/forms/form-validators/custom-config'
15import { NotificationsService } from 'angular2-notifications' 17import { NotificationsService } from 'angular2-notifications'
16import { CustomConfig } from '../../../../../../shared/models/server/custom-config.model' 18import { CustomConfig } from '../../../../../../shared/models/server/custom-config.model'
19import { I18n } from '@ngx-translate/i18n-polyfill'
17 20
18@Component({ 21@Component({
19 selector: 'my-edit-custom-config', 22 selector: 'my-edit-custom-config',
@@ -77,7 +80,8 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
77 private notificationsService: NotificationsService, 80 private notificationsService: NotificationsService,
78 private configService: ConfigService, 81 private configService: ConfigService,
79 private serverService: ServerService, 82 private serverService: ServerService,
80 private confirmService: ConfirmService 83 private confirmService: ConfirmService,
84 private i18n: I18n
81 ) { 85 ) {
82 super() 86 super()
83 } 87 }
@@ -133,7 +137,7 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
133 this.forceCheck() 137 this.forceCheck()
134 }, 138 },
135 139
136 err => this.notificationsService.error('Error', err.message) 140 err => this.notificationsService.error(this.i18n('Error'), err.message)
137 ) 141 )
138 } 142 }
139 143
@@ -156,11 +160,15 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
156 if (customizations.length !== 0) { 160 if (customizations.length !== 0) {
157 const customizationsText = customizations.join('/') 161 const customizationsText = customizations.join('/')
158 162
159 const message = `You set custom ${customizationsText}. ` + 163 // FIXME: i18n service does not support string concatenation
160 'This could lead to security issues or bugs if you do not understand it. ' + 164 const message = this.i18n('You set custom {{ customizationsText }}. ', { customizationsText }) +
161 'Are you sure you want to update the configuration?' 165 this.i18n('This could lead to security issues or bugs if you do not understand it. ') +
162 const label = `Please type "I understand the ${customizationsText} I set" to confirm.` 166 this.i18n('Are you sure you want to update the configuration?')
163 const expectedInputValue = `I understand the ${customizationsText} I set` 167 const label = this.i18n(
168 'Please type "I understand the {{ customizationsText }} I set" to confirm.',
169 { customizationsText }
170 )
171 const expectedInputValue = this.i18n('I understand the {{ customizationsText }} I set', { customizationsText})
164 172
165 const confirmRes = await this.confirmService.confirmWithInput(message, label, expectedInputValue) 173 const confirmRes = await this.confirmService.confirmWithInput(message, label, expectedInputValue)
166 if (confirmRes === false) return 174 if (confirmRes === false) return
@@ -223,10 +231,10 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
223 231
224 this.updateForm() 232 this.updateForm()
225 233
226 this.notificationsService.success('Success', 'Configuration updated.') 234 this.notificationsService.success(this.i18n('Success'), this.i18n('Configuration updated.'))
227 }, 235 },
228 236
229 err => this.notificationsService.error('Error', err.message) 237 err => this.notificationsService.error(this.i18n('Error'), err.message)
230 ) 238 )
231 } 239 }
232 240