Skip to content

Commit 6243871

Browse files
committed
feat: locale
1 parent 928d647 commit 6243871

5 files changed

Lines changed: 112 additions & 29 deletions

File tree

locale/original/messages.json

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -459,5 +459,81 @@
459459
"lite_not_support": {
460460
"message": "The lite version does not support this feature",
461461
"description": "Message at the not support features"
462+
},
463+
"resourceType_main_frame": {
464+
"message": "Main frame (Top-level documents loaded into a tab)",
465+
"description": "Resource type"
466+
},
467+
"resourceType_sub_frame": {
468+
"message": "Sub frame (Documents loaded into an <iframe> or <frame> element)",
469+
"description": "Resource type"
470+
},
471+
"resourceType_stylesheet": {
472+
"message": "CSS stylesheets",
473+
"description": "Resource type"
474+
},
475+
"resourceType_script": {
476+
"message": "Scripts",
477+
"description": "Resource type"
478+
},
479+
"resourceType_image": {
480+
"message": "Images",
481+
"description": "Resource type"
482+
},
483+
"resourceType_font": {
484+
"message": "Web fonts",
485+
"description": "Resource type"
486+
},
487+
"resourceType_object": {
488+
"message": "Object (Resources loaded by an <object> or <embed> element)",
489+
"description": "Resource type"
490+
},
491+
"resourceType_xmlhttprequest": {
492+
"message": "XMLHttpRequest / Fetch",
493+
"description": "Resource type"
494+
},
495+
"resourceType_ping": {
496+
"message": "Ping (Given in a hyperlink's ping attribute)",
497+
"description": "Resource type"
498+
},
499+
"resourceType_csp_report": {
500+
"message": "CSP Report (Given in the Content-Security-Policy header)",
501+
"description": "Resource type"
502+
},
503+
"resourceType_media": {
504+
"message": "Media (video and audio)",
505+
"description": "Resource type"
506+
},
507+
"resourceType_websocket": {
508+
"message": "WebSocket",
509+
"description": "Resource type"
510+
},
511+
"resourceType_other": {
512+
"message": "Other",
513+
"description": "Resource type"
514+
},
515+
"match_method": {
516+
"message": "Method",
517+
"description": "Request method"
518+
},
519+
"match_resourceType": {
520+
"message": "Resource Type",
521+
"description": "Request resource type"
522+
},
523+
"basic_information": {
524+
"message": "Basic Information",
525+
"description": "Basic information of a rule"
526+
},
527+
"execution": {
528+
"message": "Execution",
529+
"description": "Execution settings of a rule"
530+
},
531+
"response_headers": {
532+
"message": "Response headers",
533+
"description": "Response headers"
534+
},
535+
"request_headers": {
536+
"message": "Request headers",
537+
"description": "Request headers"
462538
}
463539
}

src/pages/background/request-handler/dnr-handler.ts

Lines changed: 2 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import browser from 'webextension-polyfill';
2-
import { RULE_MATCH_TYPE, RULE_TYPE, TABLE_NAMES } from '@/share/core/constant';
2+
import { ALL_RESOURCE_TYPES, RULE_MATCH_TYPE, RULE_TYPE, TABLE_NAMES } from '@/share/core/constant';
33
import emitter from '@/share/core/emitter';
44
import { prefs } from '@/share/core/prefs';
55
import { detectRunner } from '@/share/core/rule-utils';
@@ -19,21 +19,7 @@ function createDNR(rule: Rule, id: number) {
1919
},
2020
condition: {
2121
// All resource types
22-
resourceTypes: [
23-
'main_frame',
24-
'sub_frame',
25-
'stylesheet',
26-
'script',
27-
'image',
28-
'font',
29-
'object',
30-
'xmlhttprequest',
31-
'ping',
32-
'csp_report',
33-
'media',
34-
'websocket',
35-
'other',
36-
],
22+
resourceTypes: ALL_RESOURCE_TYPES,
3723
},
3824
};
3925

src/pages/options/sections/rules/edit/index.tsx

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -349,8 +349,8 @@ export default class Edit extends React.Component<EditProps, EditState> {
349349
labelAlign="right"
350350
labelWidth={140}
351351
>
352-
<Collapse defaultActiveKey={['basic', 'match', 'exclude', 'execute', 'test']}>
353-
<Collapse.Panel header="basic" itemKey="basic">
352+
<Collapse defaultActiveKey={['basic', 'match', 'execution', 'execute', 'test']}>
353+
<Collapse.Panel header={t('basic_information')} itemKey="basic">
354354
<Form.Input field="name" label={t('name')} />
355355
<Form.Select
356356
label={t('ruleType')}
@@ -406,13 +406,12 @@ export default class Edit extends React.Component<EditProps, EditState> {
406406
disabled:
407407
editMatchType.includes(RULE_MATCH_TYPE.ALL) || editMatchType.includes(RULE_MATCH_TYPE.PREFIX),
408408
},
409-
// TODO
410409
{
411-
label: 'method',
410+
label: t('match_method'),
412411
value: RULE_MATCH_TYPE.METHOD,
413412
},
414413
{
415-
label: 'resourceType',
414+
label: t('match_resourceType'),
416415
value: RULE_MATCH_TYPE.RESOURCE_TYPE,
417416
},
418417
]}
@@ -430,12 +429,12 @@ export default class Edit extends React.Component<EditProps, EditState> {
430429
<Form.Input label={t('match_url')} field="condition.url" />
431430
)}
432431
{editMatchType.includes(RULE_MATCH_TYPE.METHOD) && (
433-
<Form.Select multiple label="method" field="condition.method" optionList={METHOD_LIST} />
432+
<Form.Select multiple label={t('match_method')} field="condition.method" optionList={METHOD_LIST} />
434433
)}
435434
{editMatchType.includes(RULE_MATCH_TYPE.RESOURCE_TYPE) && (
436435
<Form.Select
437436
multiple
438-
label="resourceType"
437+
label={t('match_resourceType')}
439438
field="condition.resourceTypes"
440439
optionList={RESOURCE_TYPE_LIST}
441440
/>
@@ -456,7 +455,7 @@ export default class Edit extends React.Component<EditProps, EditState> {
456455
value: RULE_MATCH_TYPE.DOMAIN,
457456
},
458457
{
459-
label: 'resourceType',
458+
label: t('match_resourceType'),
460459
value: RULE_MATCH_TYPE.RESOURCE_TYPE,
461460
},
462461
]}
@@ -474,13 +473,13 @@ export default class Edit extends React.Component<EditProps, EditState> {
474473
{editExcludeType.includes('resourceType') && (
475474
<Form.Select
476475
multiple
477-
label="resourceType"
476+
label={t('match_resourceType')}
478477
field="condition.excludeResourceTypes"
479478
optionList={RESOURCE_TYPE_LIST}
480479
/>
481480
)}
482481
</Collapse.Panel>
483-
<Collapse.Panel header="Execute" itemKey="execute">
482+
<Collapse.Panel header={t('execution')} itemKey="execution">
484483
{/* Response body encoding */}
485484
{this.state.rule.ruleType === RULE_TYPE.MODIFY_RECV_BODY && (
486485
<Form.Select
@@ -505,7 +504,7 @@ export default class Edit extends React.Component<EditProps, EditState> {
505504
)}
506505
{/* Header modify */}
507506
{isHeader && !this.state.rule.isFunction && (
508-
<Form.Slot label={t('header')}>
507+
<Form.Slot label={t(isHeaderSend ? 'request_headers' : 'response_headers')}>
509508
<HeaderField
510509
field="editHeader"
511510
type={isHeaderSend ? 'request' : 'response'}
@@ -518,7 +517,6 @@ export default class Edit extends React.Component<EditProps, EditState> {
518517
</Collapse.Panel>
519518
<Collapse.Panel header={t('test_url')} itemKey="test">
520519
<Input value={this.state.testUrl} onChange={this.handleTestChange} />
521-
522520
<pre>{this.state.testResult}</pre>
523521
</Collapse.Panel>
524522
</Collapse>
Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
1+
import { ALL_RESOURCE_TYPES } from '@/share/core/constant';
2+
import { t } from '@/share/core/utils';
3+
14
export const METHOD_LIST = ['get', 'post', 'put', 'delete', 'patch', 'options', 'head', 'trace', 'connect'].map(
25
(e) => ({
36
label: e.toUpperCase(),
47
value: e,
58
}),
69
);
710

8-
export const RESOURCE_TYPE_LIST = [];
11+
export const RESOURCE_TYPE_LIST = ALL_RESOURCE_TYPES.map((e) => ({
12+
label: t(`resourceType_${e}`),
13+
value: e,
14+
}));

src/share/core/constant.ts

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import { PrefValue } from './types';
2+
import type { DeclarativeNetRequest } from 'webextension-polyfill/namespaces/declarativeNetRequest';
23

34
export enum TABLE_NAMES {
45
request = 'request',
@@ -65,3 +66,19 @@ export enum EVENTs {
6566
RULE_UPDATE = 'rule_update',
6667
RULE_DELETE = 'rule_delete',
6768
}
69+
70+
export const ALL_RESOURCE_TYPES: DeclarativeNetRequest.ResourceType[] = [
71+
'main_frame',
72+
'sub_frame',
73+
'stylesheet',
74+
'script',
75+
'image',
76+
'font',
77+
'object',
78+
'xmlhttprequest',
79+
'ping',
80+
'csp_report',
81+
'media',
82+
'websocket',
83+
'other',
84+
];

0 commit comments

Comments
 (0)