Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitb7ee9c6

Browse files
committed
Add trasns for Environments List and Table
1 parent5d1bc87 commitb7ee9c6

File tree

3 files changed

+60
-26
lines changed

3 files changed

+60
-26
lines changed

‎client/packages/lowcoder/src/i18n/locales/en.ts‎

Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2551,8 +2551,40 @@ export const en = {
25512551
"EnvironmentsFeature2":"Deployment of applications, data sources, and configurations between environments, directly from the UI.",
25522552
"EnvironmentsFeature3":"Environment-specific access controls and visibility rules.",
25532553
"EnvironmentsFeature5":"Clear separation of concerns for staging, sandbox, and production operations.",
2554-
},
25552554

2555+
// Environments page translations
2556+
"environments":{
2557+
"title":"Environments",
2558+
"search":"Search",
2559+
"refresh":"Refresh",
2560+
"addEnvironment":"Add Environment",
2561+
"errorLoadingEnvironments":"Error loading environments",
2562+
"noEnvironmentsFoundMatching":"No environments found matching \"{searchText}\"",
2563+
"noEnvironmentsFound":"No environments found. Create your first environment to get started.",
2564+
"environmentsTypeLabel":"{type} Environments",
2565+
"showingAllEnvironments":"Showing all {count} environments",
2566+
"unnamedEnvironment":"Unnamed Environment",
2567+
"masterEnvironment":"Master Environment",
2568+
"viewAuditLogs":"View Audit Logs",
2569+
"id":"ID",
2570+
"domain":"Domain",
2571+
"master":"Master",
2572+
"license":"License",
2573+
"apiCalls":"API Calls",
2574+
"yes":"Yes",
2575+
"no":"No",
2576+
"copyId":"Copy ID",
2577+
"copied":"Copied!",
2578+
"percentUsed":"{percent}% used",
2579+
"licenseStatus":{
2580+
"checking":"Checking...",
2581+
"licensed":"Licensed",
2582+
"unlicensed":"License Required",
2583+
"error":"Setup Required",
2584+
"unknown":"Unknown"
2585+
}
2586+
}
2587+
},
25562588
"subscription":{
25572589
"details":"Subscription Details",
25582590
"productDetails":"Product Details",

‎client/packages/lowcoder/src/pages/setting/environments/EnvironmentsList.tsx‎

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import StatsCard from "./components/StatsCard";
1313
import{buildEnvironmentId}from"@lowcoder-ee/constants/routesURL";
1414
import{createEnvironment}from"./services/environments.service";
1515
import{getEnvironmentTagColor}from"./utils/environmentUtils";
16+
import{trans}from"i18n";
1617
importstyledfrom"styled-components";
1718

1819
constEnvironmentsWrapper=styled.div`
@@ -157,9 +158,9 @@ const EnvironmentsList: React.FC = () => {
157158
return(
158159
<EnvironmentsWrapper>
159160
<HeaderWrapper>
160-
<Title>Environments</Title>
161+
<Title>{trans("enterprise.environments.title")}</Title>
161162
<Search
162-
placeholder="Search"
163+
placeholder={trans("enterprise.environments.search")}
163164
value={searchText}
164165
onChange={(e)=>setSearchText(e.target.value)}
165166
style={{width:"192px",height:"32px",margin:"0 12px 0 0"}}
@@ -169,14 +170,14 @@ const EnvironmentsList: React.FC = () => {
169170
icon={<SyncOutlinedspin={isLoading}/>}
170171
onClick={handleRefresh}
171172
>
172-
Refresh
173+
{trans("enterprise.environments.refresh")}
173174
</RefreshBtn>
174175
<AddBtn
175176
buttonType="primary"
176177
icon={<AddIcon/>}
177178
onClick={()=>setIsCreateModalVisible(true)}
178179
>
179-
Add Environment
180+
{trans("enterprise.environments.addEnvironment")}
180181
</AddBtn>
181182
</HeaderWrapper>
182183

@@ -187,7 +188,7 @@ const EnvironmentsList: React.FC = () => {
187188
{environmentStats.map(([type,count])=>(
188189
<Colxs={24}sm={12}md={8}lg={6}key={type}>
189190
<StatsCard
190-
title={`${type} Environments`}
191+
title={trans("enterprise.environments.environmentsTypeLabel",{type})}
191192
value={count}
192193
icon={getEnvironmentIcon(type)}
193194
color={getEnvironmentTagColor(type)}
@@ -199,7 +200,7 @@ const EnvironmentsList: React.FC = () => {
199200

200201
{error&&(
201202
<Alert
202-
message="Error loadingenvironments"
203+
message={trans("enterprise.environments.errorLoadingEnvironments")}
203204
description={error}
204205
type="error"
205206
showIcon
@@ -209,14 +210,14 @@ const EnvironmentsList: React.FC = () => {
209210

210211
{!isLoading&&!error&&filteredEnvironments.length===0&&searchText&&(
211212
<Empty
212-
description={`Noenvironments found matching "${searchText}"`}
213+
description={trans("enterprise.environments.noEnvironmentsFoundMatching",{searchText})}
213214
style={{margin:"60px 0"}}
214215
/>
215216
)}
216217

217218
{!isLoading&&!error&&environments.length===0&&!searchText&&(
218219
<Empty
219-
description="Noenvironments found. Create your first environment to get started."
220+
description={trans("enterprise.environments.noEnvironmentsFound")}
220221
style={{margin:"60px 0"}}
221222
/>
222223
)}

‎client/packages/lowcoder/src/pages/setting/environments/components/EnvironmentsTable.tsx‎

Lines changed: 18 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { EditOutlined, AuditOutlined, LinkOutlined, EnvironmentOutlined, StarFil
44
import{Environment}from'../types/environment.types';
55
import{getEnvironmentTagColor,formatEnvironmentType}from'../utils/environmentUtils';
66
import{getAPICallsStatusColor}from'../services/license.service';
7+
import{trans}from'i18n';
78

89
const{ Text, Title}=Typography;
910

@@ -56,35 +57,35 @@ const EnvironmentsTable: React.FC<EnvironmentsTableProps> = ({
5657
return{
5758
icon:<SyncOutlinedspin/>,
5859
color:'#40a9ff',
59-
text:'Checking...',
60+
text:trans("enterprise.environments.licenseStatus.checking"),
6061
status:'processing'asconst
6162
};
6263
case'licensed':
6364
return{
6465
icon:<CheckCircleOutlined/>,
6566
color:'#73d13d',
66-
text:'Licensed',
67+
text:trans("enterprise.environments.licenseStatus.licensed"),
6768
status:'success'asconst
6869
};
6970
case'unlicensed':
7071
return{
7172
icon:<CloseCircleOutlined/>,
7273
color:'#ff7875',
73-
text:'License Required',
74+
text:trans("enterprise.environments.licenseStatus.unlicensed"),
7475
status:'warning'asconst
7576
};
7677
case'error':
7778
return{
7879
icon:<ExclamationCircleOutlined/>,
7980
color:'#ffc53d',
80-
text:'Setup Required',
81+
text:trans("enterprise.environments.licenseStatus.error"),
8182
status:'warning'asconst
8283
};
8384
default:
8485
return{
8586
icon:<ExclamationCircleOutlined/>,
8687
color:'#d9d9d9',
87-
text:'Unknown',
88+
text:trans("enterprise.environments.licenseStatus.unknown"),
8889
status:'default'asconst
8990
};
9091
}
@@ -163,9 +164,9 @@ const EnvironmentsTable: React.FC<EnvironmentsTableProps> = ({
163164
/>
164165
<div>
165166
<Titlelevel={5}style={{margin:0,marginBottom:'4px',fontSize:'14px'}}>
166-
{env.environmentName||'Unnamed Environment'}
167+
{env.environmentName||trans("enterprise.environments.unnamedEnvironment")}
167168
{env.isMaster&&(
168-
<Tooltiptitle="Master Environment">
169+
<Tooltiptitle={trans("enterprise.environments.masterEnvironment")}>
169170
<StarFilledstyle={{color:'#faad14',marginLeft:'6px',fontSize:'12px'}}/>
170171
</Tooltip>
171172
)}
@@ -192,7 +193,7 @@ const EnvironmentsTable: React.FC<EnvironmentsTableProps> = ({
192193
{/* Only show audit button for licensed environments */}
193194
{isAccessible&&(
194195
<div>
195-
<Tooltiptitle="View Audit Logs"placement="top">
196+
<Tooltiptitle={trans("enterprise.environments.viewAuditLogs")}placement="top">
196197
<Button
197198
type="text"
198199
icon={<AuditOutlined/>}
@@ -214,9 +215,9 @@ const EnvironmentsTable: React.FC<EnvironmentsTableProps> = ({
214215
<divstyle={{padding:'8px 0',borderTop:'1px solid #f5f5f5'}}>
215216
<divstyle={{display:'flex',flexDirection:'column',gap:'6px'}}>
216217
<divstyle={{display:'flex',justifyContent:'space-between',alignItems:'center'}}>
217-
<Texttype="secondary"style={{fontSize:'12px'}}>ID:</Text>
218+
<Texttype="secondary"style={{fontSize:'12px'}}>{trans("enterprise.environments.id")}:</Text>
218219
{isAccessible ?(
219-
<Textstyle={{fontSize:'12px',fontFamily:'monospace'}}copyable={{tooltips:['Copy ID','Copied!']}}>
220+
<Textstyle={{fontSize:'12px',fontFamily:'monospace'}}copyable={{tooltips:[trans("enterprise.environments.copyId"),trans("enterprise.environments.copied")]}}>
220221
{env.environmentId}
221222
</Text>
222223
) :(
@@ -227,7 +228,7 @@ const EnvironmentsTable: React.FC<EnvironmentsTableProps> = ({
227228
</div>
228229

229230
<divstyle={{display:'flex',justifyContent:'space-between',alignItems:'center'}}>
230-
<Texttype="secondary"style={{fontSize:'12px'}}>Domain:</Text>
231+
<Texttype="secondary"style={{fontSize:'12px'}}>{trans("enterprise.environments.domain")}:</Text>
231232
{env.environmentFrontendUrl ?(
232233
isAccessible ?(
233234
<a
@@ -251,14 +252,14 @@ const EnvironmentsTable: React.FC<EnvironmentsTableProps> = ({
251252
</div>
252253

253254
<divstyle={{display:'flex',justifyContent:'space-between',alignItems:'center'}}>
254-
<Texttype="secondary"style={{fontSize:'12px'}}>Master:</Text>
255+
<Texttype="secondary"style={{fontSize:'12px'}}>{trans("enterprise.environments.master")}:</Text>
255256
<Textstyle={{fontSize:'12px'}}>
256-
{env.isMaster ?'Yes' :'No'}
257+
{env.isMaster ?trans("enterprise.environments.yes") :trans("enterprise.environments.no")}
257258
</Text>
258259
</div>
259260

260261
<divstyle={{display:'flex',justifyContent:'space-between',alignItems:'center'}}>
261-
<Texttype="secondary"style={{fontSize:'12px'}}>License:</Text>
262+
<Texttype="secondary"style={{fontSize:'12px'}}>{trans("enterprise.environments.license")}:</Text>
262263
<divstyle={{display:'flex',alignItems:'center',gap:'4px'}}>
263264
<spanstyle={{color:licenseDisplay.color,fontSize:'12px'}}>
264265
{licenseDisplay.icon}
@@ -275,7 +276,7 @@ const EnvironmentsTable: React.FC<EnvironmentsTableProps> = ({
275276
<divstyle={{display:'flex',justifyContent:'space-between',alignItems:'center',marginBottom:'6px'}}>
276277
<Texttype="secondary"style={{fontSize:'11px'}}>
277278
<ApiOutlinedstyle={{marginRight:'4px'}}/>
278-
API Calls
279+
{trans("enterprise.environments.apiCalls")}
279280
</Text>
280281

281282
</div>
@@ -295,7 +296,7 @@ const EnvironmentsTable: React.FC<EnvironmentsTableProps> = ({
295296
fontSize:'10px',
296297
color:'#8c8c8c'
297298
}}>
298-
<span>{env.licenseDetails.apiCallsUsage||0}% used</span>
299+
<span>{trans("enterprise.environments.percentUsed",{percent:env.licenseDetails.apiCallsUsage||0})}</span>
299300
</div>
300301
</div>
301302
)}
@@ -310,7 +311,7 @@ const EnvironmentsTable: React.FC<EnvironmentsTableProps> = ({
310311
{environments.length>10&&(
311312
<divstyle={{textAlign:'center',margin:'16px 0'}}>
312313
<Texttype="secondary"style={{fontSize:'13px'}}>
313-
Showing all{environments.length} environments
314+
{trans("enterprise.environments.showingAllEnvironments",{count:environments.length})}
314315
</Text>
315316
</div>
316317
)}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp