Skip to content

Commit 50b2ba5

Browse files
committed
feat: support i18n namespace
1 parent 4350407 commit 50b2ba5

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

41 files changed

+984
-660
lines changed

web/src/components/language-switcher.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ export function LanguageSwitcher() {
66
const { i18n } = useTranslation();
77

88
const toggleLanguage = () => {
9-
const newLang = i18n.language === "en" ? "zh" : "en";
9+
const newLang = i18n.language === "en" ? "zh-CN" : "en";
1010
i18n.changeLanguage(newLang);
1111
};
1212

web/src/components/memshell/jre-tip.tsx

Lines changed: 0 additions & 20 deletions
This file was deleted.

web/src/components/memshell/main-config-card.tsx

Lines changed: 31 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ export default function MainConfigCard({
9292
]);
9393
const [shellTypes, setShellTypes] = useState<string[]>([]);
9494
const shellTool = form.watch("shellTool");
95-
const { t } = useTranslation();
95+
const { t } = useTranslation(["common", "memshell"]);
9696

9797
const [serverVersionOptions, setServerVersionOptions] = useState(
9898
defaultServerVersionOptions,
@@ -137,7 +137,7 @@ export default function MainConfigCard({
137137
) {
138138
form.setValue("targetJdkVersion", "52");
139139
} else {
140-
form.resetField("targetJdkVersion");
140+
form.setValue("targetJdkVersion", "50");
141141
}
142142

143143
// 特殊的服务需要指定版本
@@ -259,7 +259,7 @@ export default function MainConfigCard({
259259
<CardHeader className="pb-1">
260260
<CardTitle className="text-md flex items-center gap-2">
261261
<ServerIcon className="h-5" />
262-
<span>{t("configs.main-config")}</span>
262+
<span>{t("common:mainConfig.title")}</span>
263263
</CardTitle>
264264
</CardHeader>
265265
<CardContent>
@@ -269,7 +269,7 @@ export default function MainConfigCard({
269269
name="server"
270270
render={({ field }) => (
271271
<FormFieldItem>
272-
<FormFieldLabel>{t("mainConfig.server")}</FormFieldLabel>
272+
<FormFieldLabel>{t("common:server")}</FormFieldLabel>
273273
<Select
274274
onValueChange={(v) => {
275275
field.onChange(v);
@@ -279,7 +279,9 @@ export default function MainConfigCard({
279279
>
280280
<FormControl>
281281
<SelectTrigger>
282-
<SelectValue placeholder={t("placeholders.select")} />
282+
<SelectValue
283+
placeholder={t("common:placeholders.select")}
284+
/>
283285
</SelectTrigger>
284286
</FormControl>
285287
<SelectContent>
@@ -291,14 +293,14 @@ export default function MainConfigCard({
291293
</SelectContent>
292294
</Select>
293295
<FormDescription className="flex items-center">
294-
{t("tips.targetServerNotFound")}&nbsp;
296+
{t("memshell:tips.targetServerNotFound")}&nbsp;
295297
<a
296298
href="https://github.com/ReaJason/MemShellParty/issues/new?template=%E8%AF%B7%E6%B1%82%E9%80%82%E9%85%8D.md"
297299
target="_blank"
298300
rel="noreferrer"
299301
className="flex items-center underline"
300302
>
301-
{t("tips.targetServerRequest")}
303+
{t("memshell:tips.targetServerRequest")}
302304
<ArrowUpRightIcon className="h-4" />
303305
</a>
304306
</FormDescription>
@@ -310,11 +312,13 @@ export default function MainConfigCard({
310312
name="serverVersion"
311313
render={({ field }) => (
312314
<FormFieldItem>
313-
<FormFieldLabel>{t("mainConfig.serverVersion")}</FormFieldLabel>
315+
<FormFieldLabel>{t("common:serverVersion")}</FormFieldLabel>
314316
<Select onValueChange={field.onChange} value={field.value}>
315317
<FormControl>
316318
<SelectTrigger>
317-
<SelectValue placeholder={t("placeholders.select")} />
319+
<SelectValue
320+
placeholder={t("common:placeholders.select")}
321+
/>
318322
</SelectTrigger>
319323
</FormControl>
320324
<SelectContent>
@@ -337,9 +341,13 @@ export default function MainConfigCard({
337341
render={({ field }) => (
338342
<FormItem className="flex items-center space-x-2 space-y-0">
339343
<FormControl>
340-
<Switch id={debugId} checked={field.value} onCheckedChange={field.onChange} />
344+
<Switch
345+
id="debug"
346+
checked={field.value}
347+
onCheckedChange={field.onChange}
348+
/>
341349
</FormControl>
342-
<FormLabel htmlFor={debugId}>{t("mainConfig.debug")}</FormLabel>
350+
<FormLabel htmlFor="debug">{t("common:debug")}</FormLabel>
343351
</FormItem>
344352
)}
345353
/>
@@ -349,9 +357,13 @@ export default function MainConfigCard({
349357
render={({ field }) => (
350358
<FormItem className="flex items-center space-x-2 space-y-0">
351359
<FormControl>
352-
<Switch id={bypassId} checked={field.value} onCheckedChange={field.onChange} />
360+
<Switch
361+
id="bypass"
362+
checked={field.value}
363+
onCheckedChange={field.onChange}
364+
/>
353365
</FormControl>
354-
<Label htmlFor={bypassId}>{t("mainConfig.byPassJavaModule")}</Label>
366+
<Label htmlFor="bypass">{t("common:byPassJavaModule")}</Label>
355367
</FormItem>
356368
)}
357369
/>
@@ -361,9 +373,13 @@ export default function MainConfigCard({
361373
render={({ field }) => (
362374
<FormItem className="flex items-center space-x-2 space-y-0">
363375
<FormControl>
364-
<Switch id={shrinkId} checked={field.value} onCheckedChange={field.onChange} />
376+
<Switch
377+
id="shrink"
378+
checked={field.value}
379+
onCheckedChange={field.onChange}
380+
/>
365381
</FormControl>
366-
<Label htmlFor={shrinkId}>{t("mainConfig.shrink")}</Label>
382+
<Label htmlFor="shrink">{t("common:shrink")}</Label>
367383
</FormItem>
368384
)}
369385
/>

web/src/components/memshell/package-config-card.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ export default function PackageConfigCard({
3434

3535
const shellType = form.watch("shellType");
3636
const server = form.watch("server");
37-
const { t } = useTranslation();
37+
const { t } = useTranslation("common");
3838

3939
useEffect(() => {
4040
const filteredOptions = (packerConfig ?? []).filter((name) => {
@@ -52,7 +52,7 @@ export default function PackageConfigCard({
5252

5353
const mappedOptions = filteredOptions.map((name) => {
5454
return {
55-
name: t(`packageConfig.packer.${name}`),
55+
name: t(name),
5656
value: name,
5757
};
5858
});
@@ -72,7 +72,7 @@ export default function PackageConfigCard({
7272
<CardHeader className="pb-1">
7373
<CardTitle className="text-md flex items-center gap-2">
7474
<PackageIcon className="h-5" />
75-
<span>{t("configs.package-config")}</span>
75+
<span>{t("packerConfig.title")}</span>
7676
</CardTitle>
7777
</CardHeader>
7878
<CardContent>
@@ -83,7 +83,7 @@ export default function PackageConfigCard({
8383
name="packingMethod"
8484
render={({ field }) => (
8585
<FormItem className="space-y-3">
86-
<FormLabel>{t("packageConfig.title")}</FormLabel>
86+
<FormLabel>{t("packerMethod")}</FormLabel>
8787
<FormControl>
8888
<RadioGroup
8989
onValueChange={field.onChange}

web/src/components/memshell/quick-usage.tsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,22 +8,22 @@ import {
88
} from "@/components/ui/card.tsx";
99

1010
export function QuickUsage() {
11-
const { t } = useTranslation();
11+
const { t } = useTranslation(["common", "memshell"]);
1212
return (
1313
<Card>
1414
<CardHeader>
1515
<CardTitle className="text-md flex items-center gap-2">
1616
<ScrollTextIcon className="h-5" />
17-
<span>{t("quickUsage.title")}</span>
17+
<span>{t("common:quickUsage.title")}</span>
1818
</CardTitle>
1919
</CardHeader>
2020
<CardContent>
2121
<ol className="list-decimal list-inside space-y-4 text-sm">
22-
<li>{t("quickUsage.step1")}</li>
23-
<li>{t("quickUsage.step2")}</li>
24-
<li>{t("quickUsage.step3")}</li>
25-
<li>{t("quickUsage.step4")}</li>
26-
<li>{t("quickUsage.step5")}</li>
22+
<li>{t("memshell:quickUsage.step1")}</li>
23+
<li>{t("memshell:quickUsage.step2")}</li>
24+
<li>{t("memshell:quickUsage.step3")}</li>
25+
<li>{t("memshell:quickUsage.step4")}</li>
26+
<li>{t("memshell:quickUsage.step5")}</li>
2727
</ol>
2828
</CardContent>
2929
</Card>

web/src/components/memshell/results/agent.tsx

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,27 @@ export function AgentResult({
1010
packMethod,
1111
packResult,
1212
generateResult,
13-
}: Readonly<{ packMethod: string; packResult: string; generateResult?: MemShellResult }>) {
13+
}: Readonly<{
14+
packMethod: string;
15+
packResult: string;
16+
generateResult?: MemShellResult;
17+
}>) {
1418
const { t } = useTranslation();
1519
const isPureAgent = packMethod === "AgentJar";
1620
return (
1721
<Card>
1822
<CardHeader>
1923
<CardTitle className="text-md flex items-center gap-2">
2024
<ScrollTextIcon className="h-5" />
21-
<span>{t("generateResult.usage")}</span>
25+
<span>{t("common:usage")}</span>
2226
</CardTitle>
2327
</CardHeader>
2428
<CardContent>
2529
<ol className="list-decimal list-inside space-y-4 text-sm">
2630
<li className="flex items-center justify-between">
2731
<span>
28-
{t("download")} MemShellAgent.jar ({formatBytes(atob(packResult).length)})
32+
{t("common:download")} MemShellAgent.jar (
33+
{formatBytes(atob(packResult).length)})
2934
</span>
3035
<Button
3136
size="sm"
@@ -40,28 +45,38 @@ export function AgentResult({
4045
)
4146
}
4247
>
43-
{t("download")}
48+
{t("common:download")}
4449
</Button>
4550
</li>
4651
{isPureAgent && (
4752
<li className="flex items-center justify-between">
48-
<span>{t("tips.download-jattach")}</span>
53+
<span>{t("memshell:tips.download-jattach")}</span>
4954
<Button
5055
size="sm"
5156
variant="outline"
5257
className="w-28"
5358
type="button"
54-
onClick={() => window.open("https://github.com/jattach/jattach/releases")}
59+
onClick={() =>
60+
window.open("https://github.com/jattach/jattach/releases")
61+
}
5562
>
56-
{t("download")}
63+
{t("common:download")}
5764
</Button>
5865
</li>
5966
)}
6067
<Separator />
61-
<li>{isPureAgent ? t("tips.agent-move-to-target") : t("tips.agent-move-to-target1")}</li>
62-
<li>{t("tips.get-pid")}</li>
63-
<li>{isPureAgent ? t("tips.execute-command") : t("tips.execute-command1")}</li>
64-
<li>{t("tips.try-to-use-shell")}</li>
68+
<li>
69+
{isPureAgent
70+
? t("memshell:tips.agent-move-to-target")
71+
: t("memshell:tips.agent-move-to-target1")}
72+
</li>
73+
<li>{t("memshell:tips.get-pid")}</li>
74+
<li>
75+
{isPureAgent
76+
? t("memshell:tips.execute-command")
77+
: t("memshell:tips.execute-command1")}
78+
</li>
79+
<li>{t("memshell:tips.try-to-use-shell")}</li>
6580
</ol>
6681
</CardContent>
6782
</Card>

0 commit comments

Comments
 (0)