diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form.component.html
index 1518374ab22..ec9729bfe29 100644
--- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form.component.html
+++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-form/rbd-form.component.html
@@ -44,10 +44,9 @@
name="name"
formControlName="name"
autofocus>
-
- This field is required.
+ This field is required.
@@ -77,24 +76,19 @@
*ngIf="mode !== 'editing' && poolPermission.read">
+ i18n>Loading...
+ i18n>-- No rbd pools available --
+ i18n>-- Select a pool --
-
- This field is required.
-
+ i18n>This field is required.
@@ -142,23 +136,19 @@
*ngIf="mode !== 'editing' && poolPermission.read">
+ i18n>Loading...
+ i18n>-- No data pools available --
-
- This field is required.
-
+ This field is required.
@@ -180,16 +170,12 @@
placeholder="e.g., 10GiB"
defaultUnit="GiB"
cdDimlessBinary>
-
- This field is required.
-
-
- You have to increase the size.
-
+ This field is required.
+ You have to increase the size.
@@ -199,9 +185,7 @@
formGroupName="features">
+ for="features">Features
-
- This field is required because stripe count is defined!
-
-
- Stripe unit is greater than object size.
-
+ This field is required because stripe count is defined!
+ Stripe unit is greater than object size.
@@ -300,16 +278,12 @@
formControlName="stripingCount"
class="form-control"
type="number">
-
- This field is required because stripe unit is defined!
-
-
- Stripe count must be greater than 0.
-
+ This field is required because stripe unit is defined!
+ Stripe count must be greater than 0.
@@ -323,12 +297,10 @@
(submitAction)="submit()">
{mode, select, editing {Update} cloning {Clone} copying {Copy} other {Create}} RBD
-
+ routerLink="/block/rbd"
+ i18n>Back
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form.component.html
index c987c7fda68..ac455e5174d 100644
--- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form.component.html
+++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/block/rbd-snapshot-form/rbd-snapshot-form.component.html
@@ -31,11 +31,9 @@
name="snapshotName"
formControlName="snapshotName"
autofocus>
-
- This field is required.
-
+ This field is required.
@@ -45,9 +43,7 @@
- { editing, select, true {Rename} other {Create}} Snapshot
-
+ i18n>{ editing, select, true {Rename} other {Create}} Snapshot
-
- Performance counters not available
-
+ Performance counters not available
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html
index 096fc579893..f0e7c720c35 100644
--- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html
+++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/pool/erasure-code-profile-form/erasure-code-profile-form.component.html
@@ -1,7 +1,6 @@
Add erasure code profile
-
+ i18n>Add erasure code profile
-
- This field is required!
-
+ This field is required!
The name can only consist of alphanumeric characters, dashes and underscores.
-
- The chosen erasure code profile name is already in use.
-
+ The chosen erasure code profile name is already in use.
@@ -62,28 +57,23 @@
formControlName="plugin">
+ i18n>Loading...
-
- This field is required!
-
+ This field is required!
-
@@ -127,16 +113,12 @@
class="form-control"
placeholder="Coding chunks..."
formControlName="m">
-
- This field is required!
-
-
- Must be equal to or greater than 1.
-
+ This field is required!
+ Must be equal to or greater than 1.
@@ -156,11 +138,9 @@
class="form-control"
placeholder="Coding chunks..."
formControlName="c">
-
- Must be equal to or greater than 1.
-
+ Must be equal to or greater than 1.
@@ -181,16 +161,12 @@
class="form-control"
placeholder="Coding chunks..."
formControlName="l">
-
- This field is required!
-
-
- Must be equal to or greater than 1.
-
+ This field is required!
+ Must be equal to or greater than 1.
@@ -208,9 +184,7 @@
formControlName="crushFailureDomain">
+ i18n>Loading...
+ i18n>Loading...
+ i18n>None
+ i18n>any
+ i18n>-- Select a pool type --
-
- This field is required!
-
+ This field is required!
@@ -98,38 +90,28 @@
(keyup)="pgKeyUp($event)"
(blur)="pgUpdate()"
required>
-
- This field is required!
-
-
- At least one placement group is needed!
-
-
- Your cluster can't handle this many PGs. Please recalculate the PG amount needed.
-
-
- You can only increase the number of PGs of an existing pool.
- Currently your pool has {{ data.pool.pg_num }} PGs.
-
+ This field is required!
+ At least one placement group is needed!
+ Your cluster can't handle this many PGs. Please recalculate the PG amount needed.
+ You can only increase the number of PGs of an existing pool.
+ Currently your pool has {{ data.pool.pg_num }} PGs.Calculation help
- The current PGs settings were calculated for you, you should make sure the values
- suite your needs before submit.
-
+ *ngIf="externalPgChange"
+ i18n>The current PGs settings were calculated for you, you
+ should make sure the values suite your needs before submit.
@@ -139,19 +121,15 @@
*ngIf="form.getValue('poolType') && current.rules.length > 0">
+ i18n>Crush ruleset
@@ -216,20 +192,14 @@
-
- Minimum: {{ getMinSize() }}
-
-
- Maximum: {{ getMaxSize() }}
-
+
Minimum: {{ getMinSize() }}
+
Maximum: {{ getMaxSize() }}
- The size specified is out of range.
- A value from {{ getMinSize() }} to {{ getMaxSize() }} is valid.
-
+ *ngIf="form.showError('size', formDir)"
+ i18n>The size specified is out of range. A value from
+ {{ getMinSize() }} to {{ getMaxSize() }} is valid.
@@ -238,9 +208,7 @@
*ngIf="form.getValue('poolType') === 'erasure'">
+ for="erasureProfile">Erasure code profile
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-501/rgw-501.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-501/rgw-501.component.html
index 81181c4401e..701048d4f7a 100644
--- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-501/rgw-501.component.html
+++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-501/rgw-501.component.html
@@ -1,6 +1,5 @@
{{ message }}
-
- Please consult the documentation on how to configure and enable the Object Gateway management functionality.
-
+ Please consult the documentation
+ on how to configure and enable the Object Gateway management functionality.
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html
index cd7dd19db61..391378c03e3 100644
--- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html
+++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-bucket-form/rgw-bucket-form.component.html
@@ -1,12 +1,8 @@
- Loading bucket data...
-
+ i18n>Loading bucket data...
- The bucket data could not be loaded.
-
+ i18n>The bucket data could not be loaded.
@@ -18,9 +14,7 @@
- {editing, select, 1 {Edit} other {Add}} bucket
-
+ i18n>{editing, select, 1 {Edit} other {Add}} bucket
@@ -43,9 +37,9 @@
-
@@ -92,20 +80,16 @@
formControlName="owner">
Loading...
-
+ [ngValue]="null">Loading...
-- Select a user --
-
+ [ngValue]="null">-- Select a user --
{{ owner }}
-
- This field is required.
-
+ This field is required.
@@ -120,9 +104,7 @@
- Back
-
+ routerLink="/rgw/bucket">Back
{{ perm }}
@@ -74,9 +69,7 @@
- This field is required.
-
+ i18n>This field is required.
@@ -89,7 +82,6 @@
Close
-
+ i18n>Close
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.html
index 12737ed2505..33f6726169c 100644
--- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.html
+++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-form/rgw-user-form.component.html
@@ -1,12 +1,8 @@
- Loading user data...
-
+ i18n>Loading user data...
- The user data could not be loaded.
-
+ i18n>The user data could not be loaded.
@@ -16,9 +12,7 @@
novalidate>
-
- {editing, select, 1 {Edit} other {Add}} user
-
+
{editing, select, 1 {Edit} other {Add}} user
@@ -41,14 +35,10 @@
autofocus>
- This field is required.
-
+ i18n>This field is required.
- The chosen user ID is already in use.
-
+ i18n>The chosen user ID is already in use.
@@ -69,9 +59,7 @@
formControlName="display_name">
- This field is required.
-
+ i18n>This field is required.
- This is not a valid email address.
-
+ i18n>This is not a valid email address.
@@ -110,14 +95,10 @@
formControlName="max_buckets">
- This field is required.
-
+ i18n>This field is required.
- The entered value must be >= 0.
-
+ i18n>The entered value must be >= 0.
@@ -129,8 +110,7 @@
type="checkbox"
formControlName="suspended">
Suspended
-
+ i18n>Suspended
@@ -147,8 +127,7 @@
type="checkbox"
formControlName="generate_key">
Auto-generate key
-
+ i18n>Auto-generate key
@@ -181,9 +160,7 @@
- This field is required.
-
+ i18n>This field is required.
@@ -215,9 +192,7 @@
- This field is required.
-
+ i18n>This field is required.
@@ -230,9 +205,7 @@
- There are no subusers.
-
+ i18n>There are no subusers.
@@ -289,15 +262,12 @@
S3
-
+ i18n>S3
- There are no keys.
-
+ i18n>There are no keys.
@@ -342,15 +312,12 @@
Swift
-
+ i18n>Swift
- There are no keys.
-
+ i18n>There are no keys.
@@ -385,9 +352,7 @@
- There are no capabilities.
-
+ i18n>There are no capabilities.
@@ -442,8 +407,7 @@
type="checkbox"
formControlName="user_quota_enabled">
Enabled
-
+ i18n>Enabled
@@ -457,8 +421,7 @@
type="checkbox"
formControlName="user_quota_max_size_unlimited">
Unlimited size
-
+ i18n>Unlimited size
@@ -480,14 +443,10 @@
cdDimlessBinary>
- This field is required.
-
+ i18n>This field is required.
- The value is not valid.
-
+ i18n>The value is not valid.
@@ -500,8 +459,7 @@
type="checkbox"
formControlName="user_quota_max_objects_unlimited">
Unlimited objects
-
+ i18n>Unlimited objects
@@ -522,14 +480,10 @@
formControlName="user_quota_max_objects">
- This field is required.
-
+ i18n>This field is required.
- The entered value must be >= 0.
-
+ i18n>The entered value must be >= 0.
@@ -546,8 +500,7 @@
type="checkbox"
formControlName="bucket_quota_enabled">
Enabled
-
+ i18n>Enabled
@@ -561,8 +514,7 @@
type="checkbox"
formControlName="bucket_quota_max_size_unlimited">
Unlimited size
-
+ i18n>Unlimited size
@@ -584,14 +536,10 @@
cdDimlessBinary>
- This field is required.
-
+ i18n>This field is required.
- The value is not valid.
-
+ i18n>The value is not valid.
@@ -604,8 +552,7 @@
type="checkbox"
formControlName="bucket_quota_max_objects_unlimited">
Unlimited objects
-
+ i18n>Unlimited objects
@@ -626,14 +573,10 @@
formControlName="bucket_quota_max_objects">
- This field is required.
-
+ i18n>This field is required.
- The entered value must be >= 0.
-
+ i18n>The entered value must be >= 0.
@@ -649,9 +592,7 @@
- Back
-
+ i18n>Back
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html
index 2d1dd45b191..858b21b4853 100644
--- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html
+++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-s3-key-modal/rgw-user-s3-key-modal.component.html
@@ -1,7 +1,6 @@
S3 key
-
+ i18n>S3 key
-- Select a username --
-
+ [ngValue]="null">-- Select a username --
{{ userCandidate }}
- This field is required.
-
+ i18n>This field is required.
@@ -61,8 +57,7 @@
type="checkbox"
formControlName="generate_key">
Auto-generate key
-
+ i18n>Auto-generate key
@@ -98,9 +93,7 @@
- This field is required.
-
+ i18n>This field is required.
@@ -135,9 +128,7 @@
- This field is required.
-
+ i18n>This field is required.
@@ -146,12 +137,10 @@
Add
-
+ i18n>Add
Close
-
+ i18n>Close
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html
index d1617ed7be1..c83bd94cce1 100644
--- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html
+++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/rgw/rgw-user-subuser-modal/rgw-user-subuser-modal.component.html
@@ -1,7 +1,6 @@
Subuser
-
+ i18n>Subuser
Username
-
+ i18n>Username
- This field is required.
-
+ i18n>This field is required.
- The chosen subuser ID is already in use.
-
+ i18n>The chosen subuser ID is already in use.
- {mode, select, editing {Edit} other {Add}} Role
-
+
{mode, select, editing {Edit} other {Add}} Role
@@ -30,16 +29,12 @@
name="name"
formControlName="name"
autofocus>
-
- This field is required.
-
-
- The chosen name is already in use.
-
+ This field is required.
+ The chosen name is already in use.
- {mode, select, editing {Update} other {Create}} Role
-
+ (submitAction)="submit()"
+ i18n>{mode, select, editing {Update} other {Create}} Role
- Back
-
+ routerLink="/user-management/roles">Back
-
- This field is required.
-
-
- Password confirmation doesn't match the password.
-
+ This field is required.
+ Password confirmation doesn't match the password.
@@ -106,8 +95,7 @@
Full name
-
+ for="name">Full name
Email
-
+ for="email">Email
-
- Invalid email.
-
+ Invalid email.
Roles
-
+ i18n>Roles
@@ -159,15 +143,12 @@
- {mode, select, editing {Update} other {Create}} User
-
+ (submitAction)="submit()"
+ i18n>{mode, select, editing {Update} other {Create}} User
- Back
-
+ routerLink="/user-management/users">Back
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/components/view-cache/view-cache.component.html b/src/pybind/mgr/dashboard/frontend/src/app/shared/components/view-cache/view-cache.component.html
index ce98cad09ef..73e9ea6ad13 100644
--- a/src/pybind/mgr/dashboard/frontend/src/app/shared/components/view-cache/view-cache.component.html
+++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/components/view-cache/view-cache.component.html
@@ -1,14 +1,15 @@
-
- Retrieving data for . Please wait...
+
+ Retrieving data for
+ . Please wait...
-
- Displaying previously cached data for .
+
+ Displaying previously cached data
+ for .
-
- Could not load data for . Please check the cluster health.
+
+ Could not load data for
+ .
+ Please check the cluster health.
diff --git a/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.html b/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.html
index 50f88b4d077..7191e8aff3d 100644
--- a/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.html
+++ b/src/pybind/mgr/dashboard/frontend/src/app/shared/datatable/table/table.component.html
@@ -1,7 +1,6 @@
-
- Failed to load data.
-
+Failed to load data.
+