fix: synchronize i18n translations and fix template variables

- Add missing English translations to match Chinese locale
- Fix template variable mismatches in translations ({count}, {type}, etc.)
- Correct spelling errors ('stroage' -> 'storage') in components and locales
- Synchronize zh-CN.json and en-US.json
This commit is contained in:
Bjorn de Jong
2025-07-23 20:37:28 +02:00
parent 7e05d19dbf
commit 2d9ed54eb7
4 changed files with 105 additions and 19 deletions
+1 -1
View File
@@ -94,7 +94,7 @@
<span class="ms-4">{{ t('Days After') }}</span>
</div>
</n-form-item>
<n-form-item :label="t('Stroage Type')" path="storageType">
<n-form-item :label="t('Storage Type')" path="storageType">
<n-select v-model:value="formData.storageType" :options="tiers" />
</n-form-item>
+98 -11
View File
@@ -159,9 +159,9 @@
"Configure": "Configure",
"Start Upload": "Start Upload",
"Task Management": "Task Management",
"Task In Progress": "Task In Progress",
"Task In Progress": "Task In Progress ({uploading} uploading, {completed} completed)",
"Task Completed": "Task Completed",
"Upload Completed": "Upload Completed",
"Upload Completed": "Upload Completed ({completed} successful, {failed} failed)",
"Browser Warning": "Browser Warning",
"Cache Warning": "Cache Warning",
"Clear Records": "Clear Records",
@@ -180,10 +180,10 @@
"Failed Status": "Failed Status",
"No Tasks": "No Tasks",
"Preview Content": "Preview Content",
"Cannot Preview": "Cannot Preview",
"Cannot Preview": "Cannot preview this object content (MIME type: {contentType}), please download to view",
"Preview Failed": "Preview Failed",
"New Form": "New Form",
"Name Placeholder": "Name Placeholder",
"New Form": "New {type}",
"Name Placeholder": "Please enter {type} name",
"Create": "Create",
"Create Success": "Create Success",
"Create Failed": "Create Failed",
@@ -197,7 +197,7 @@
"Object Details": "Object Details",
"Copy URL": "Copy URL",
"Tags": "Tags",
"Delete Confirm": "Delete Confirm",
"Delete Confirm": "Delete object {key}?",
"Info": "Info",
"Object Name": "Object Name",
"Object Size": "Object Size",
@@ -211,17 +211,17 @@
"Warning": "Warning",
"Delete Tag Confirm": "Delete Tag Confirm",
"Tag Update Success": "Tag Update Success",
"Tag Delete Failed": "Tag Delete Failed",
"Tag Delete Failed": "Tag delete failed: {error}",
"Tag Set Success": "Tag Set Success",
"Getting URL": "Getting URL",
"URL Copied": "URL Copied",
"Temporary URL": "Temporary URL",
"Get Success": "Get Success",
"Get Failed": "Get Failed",
"In Progress": "In Progress",
"Delete Completed": "Delete Completed",
"In Progress": "{total} tasks in progress ({deleting} deleting, {completed} completed)",
"Delete Completed": "Delete completed ({completed} successful, {failed} failed)",
"Management": "Management",
"Deleting": "Deleting",
"Deleting": "Deleting({count})",
"Canceled": "Canceled",
"Groups": "Groups",
"Status": "Status",
@@ -563,5 +563,92 @@
"Please enter Access Key": "Please enter Access Key",
"Access Key length must be between 3 and 20 characters": "Access Key length must be between 3 and 20 characters",
"Please enter Secret Key": "Please enter Secret Key",
"Secret Key length must be between 8 and 40 characters": "Secret Key length must be between 8 and 40 characters"
"Secret Key length must be between 8 and 40 characters": "Secret Key length must be between 8 and 40 characters",
"Add group members": "Add group members",
"Search User Group": "Search User Group",
"Subscribe to event notification": "Subscribe to event notification",
"Amazon Resource Name": "Amazon Resource Name",
"Please enter resource name": "Please enter resource name",
"Select events": "Select events",
"PUT - Object upload": "PUT - Object upload",
"GET - Object access": "GET - Object access",
"DELETE - Object deletion": "DELETE - Object deletion",
"REPLICA - Object migration": "REPLICA - Object migration",
"ILM - Object converted": "ILM - Object converted",
"SCANNER - Object has too many versions/prefix has too many subfolders": "SCANNER - Object has too many versions/prefix has too many subfolders",
"SNND Mode": "SNND Mode",
"SNMD Mode": "SNMD Mode",
"MNMD Mode": "MNMD Mode",
"Bucket Count": "Bucket Count",
"Object Count": "Object Count",
"EC Mode": "EC Mode",
"Access Control": "Access Control",
"Secure Transport": "Secure Transport",
"Bucket Policy": "Bucket Policy",
"Single Object": "Single Object",
"Data Redundancy": "Data Redundancy",
"Data Backup": "Data Backup",
"Scalability": "Scalability",
"Read/Write Performance": "Read/Write Performance",
"Identity Authentication Expansion": "Identity Authentication Expansion",
"S3 Compatibility": "S3 Compatibility",
"SDK Support": "SDK Support",
"Bucket Notification": "Bucket Notification",
"RustyVault Encryption": "RustyVault Encryption",
"HashiCorp Encryption": "HashiCorp Encryption",
"Lifecycle Management": "Lifecycle Management",
"s3fs": "s3fs",
"Prometheus": "Prometheus",
"Bucket Quota": "Bucket Quota",
"Audit": "Audit",
"Logs": "Logs",
"Object Repair": "Object Repair",
"WORM": "WORM",
"Remote Tiering": "Remote Tiering",
"Tiering Transfer": "Tiering Transfer",
"Object Sharing": "Object Sharing",
"Load Balancing": "Load Balancing",
"Object Tags": "Object Tags",
"Multipart Upload": "Multipart Upload",
"Key Creation": "Key Creation",
"Key Expiration": "Key Expiration",
"Disk Bad Spot Check": "Disk Bad Spot Check",
"Bitrot": "Bitrot",
"Version Control": "Version Control",
"Memory safe backend language such as": "Memory safe backend language such as",
"Supported": "Supported",
"Unlimited": "Unlimited",
"Technical Parameters": "Technical Parameters",
"Supported OS": "Supported OS",
"Supported CPU Architecture": "Supported CPU Architecture",
"Virtualization Platform Support": "Virtualization Platform Support",
"Development Language Requirements": "Development Language Requirements",
"Supports HTTPS, TLS": "Supports HTTPS, TLS",
"Public, Private, Custom": "Public, Private, Custom",
"Max 50TB": "Max 50TB",
"Supports Erasure Coding": "Supports Erasure Coding",
"Supports local and cross-datacenter backup": "Supports local and cross-datacenter backup",
"Horizontal scaling, no single point of failure": "Horizontal scaling, no single point of failure",
"High concurrency, low latency": "High concurrency, low latency",
"Fully compatible with Amazon S3 API": "Fully compatible with Amazon S3 API",
"Supports multiple programming languages including Java, Python, Go, Node.js": "Supports multiple programming languages including Java, Python, Go, Node.js",
"Reed-Solomon Matrix": "Reed-Solomon Matrix",
"Service Hotline": "Service Hotline",
"On-site Technical Service": "On-site Technical Service",
"Remote Technical Support": "Remote Technical Support",
"Technical Training": "Technical Training",
"On-site Deployment": "On-site Deployment",
"Emergency Response": "Emergency Response",
"Licensed Users": "Licensed Users",
"Auto": "Auto",
"Replication Mode": "Replication Mode",
"Please enter priority": "Please enter priority",
"Please enter target address": "Please enter target address",
"Please enter target bucket": "Please enter target bucket",
"Please enter region": "Please enter region",
"Please select replication mode": "Please select replication mode",
"Replication Options": "Replication Options",
"Please enter prefix": "Please enter prefix",
"Suffix": "Suffix",
"Please enter suffix": "Please enter suffix"
}
-1
View File
@@ -380,7 +380,6 @@
"Non-current Version": "非当前版本",
"Days After": "天之后",
"Days": "天",
"Stroage Type": "存储类型",
"Chinese": "中文",
"English": "English",
"Unknown Folder": "未知文件夹",
+6 -6
View File
@@ -146,7 +146,7 @@
</template>
<template #header>{{ t('Standard Storage Parity') }}</template>
<template #header-extra>
{{ stroageinfo.backend?.StandardSCParity }}
{{ storageinfo.backend?.StandardSCParity }}
</template>
</n-thing>
</n-list-item>
@@ -157,7 +157,7 @@
</template>
<template #header>{{ t('Reduced Redundancy Parity') }}</template>
<template #header-extra>
{{ stroageinfo.backend?.RRSCParity }}
{{ storageinfo.backend?.RRSCParity }}
</template>
</n-thing>
</n-list-item>
@@ -337,17 +337,17 @@ const getdatausageinfo = async () => {
datausageinfo.value = res;
};
const stroageinfo: any = ref({});
const getstroageinfo = async () => {
const storageinfo: any = ref({});
const getstorageinfo = async () => {
const res = await systemApi.getStorageInfo();
stroageinfo.value = res;
storageinfo.value = res;
};
const getPageData = async () => {
await getSystemInfo();
await getServerInfo();
await getdatausageinfo();
await getstroageinfo();
await getstorageinfo();
await getMetricsInfo();
};
getPageData();