Unverified Commit e0334cf0 authored by memoclaw's avatar memoclaw Committed by GitHub

refactor: restructure i18n locale keys for better maintainability (#5744)

Co-authored-by: 's avatarmemoclaw <265580040+memoclaw@users.noreply.github.com>
Co-authored-by: 's avatarCopilot <223556219+Copilot@users.noreply.github.com>
parent 6f1f3d81
...@@ -4,7 +4,18 @@ import { useTranslate } from "@/utils/i18n"; ...@@ -4,7 +4,18 @@ import { useTranslate } from "@/utils/i18n";
export const useWeekdayLabels = () => { export const useWeekdayLabels = () => {
const t = useTranslate(); const t = useTranslate();
return useMemo(() => [t("days.sun"), t("days.mon"), t("days.tue"), t("days.wed"), t("days.thu"), t("days.fri"), t("days.sat")], [t]); return useMemo(
() => [
t("common.days.sun"),
t("common.days.mon"),
t("common.days.tue"),
t("common.days.wed"),
t("common.days.thu"),
t("common.days.fri"),
t("common.days.sat"),
],
[t],
);
}; };
export const useTodayDate = () => { export const useTodayDate = () => {
......
...@@ -75,7 +75,7 @@ function ChangeMemberPasswordDialog({ open, onOpenChange, user, onSuccess }: Pro ...@@ -75,7 +75,7 @@ function ChangeMemberPasswordDialog({ open, onOpenChange, user, onSuccess }: Pro
<DialogContent className="max-w-md"> <DialogContent className="max-w-md">
<DialogHeader> <DialogHeader>
<DialogTitle> <DialogTitle>
{t("setting.account-section.change-password")} ({user.displayName}) {t("setting.account.change-password")} ({user.displayName})
</DialogTitle> </DialogTitle>
</DialogHeader> </DialogHeader>
<div className="flex flex-col gap-4"> <div className="flex flex-col gap-4">
......
...@@ -38,7 +38,7 @@ function CreateAccessTokenDialog({ open, onOpenChange, onSuccess }: Props) { ...@@ -38,7 +38,7 @@ function CreateAccessTokenDialog({ open, onOpenChange, onSuccess }: Props) {
// Expiration options in days (0 = never expires) // Expiration options in days (0 = never expires)
const expirationOptions = [ const expirationOptions = [
{ {
label: t("setting.access-token-section.create-dialog.duration-1m"), label: t("setting.access-token.create-dialog.duration-1m"),
value: 30, value: 30,
}, },
{ {
...@@ -46,7 +46,7 @@ function CreateAccessTokenDialog({ open, onOpenChange, onSuccess }: Props) { ...@@ -46,7 +46,7 @@ function CreateAccessTokenDialog({ open, onOpenChange, onSuccess }: Props) {
value: 90, value: 90,
}, },
{ {
label: t("setting.access-token-section.create-dialog.duration-never"), label: t("setting.access-token.create-dialog.duration-never"),
value: 0, value: 0,
}, },
]; ];
...@@ -118,12 +118,12 @@ function CreateAccessTokenDialog({ open, onOpenChange, onSuccess }: Props) { ...@@ -118,12 +118,12 @@ function CreateAccessTokenDialog({ open, onOpenChange, onSuccess }: Props) {
<Dialog open={open} onOpenChange={onOpenChange}> <Dialog open={open} onOpenChange={onOpenChange}>
<DialogContent className="max-w-md"> <DialogContent className="max-w-md">
<DialogHeader> <DialogHeader>
<DialogTitle>{t("setting.access-token-section.create-dialog.create-access-token")}</DialogTitle> <DialogTitle>{t("setting.access-token.create-dialog.create-access-token")}</DialogTitle>
</DialogHeader> </DialogHeader>
{createdToken ? ( {createdToken ? (
<div className="flex flex-col gap-4"> <div className="flex flex-col gap-4">
<div className="grid gap-2"> <div className="grid gap-2">
<Label>{t("setting.access-token-section.token")}</Label> <Label>{t("setting.access-token.token")}</Label>
<Textarea value={createdToken} readOnly rows={3} className="font-mono text-xs" /> <Textarea value={createdToken} readOnly rows={3} className="font-mono text-xs" />
</div> </div>
</div> </div>
...@@ -131,19 +131,19 @@ function CreateAccessTokenDialog({ open, onOpenChange, onSuccess }: Props) { ...@@ -131,19 +131,19 @@ function CreateAccessTokenDialog({ open, onOpenChange, onSuccess }: Props) {
<div className="flex flex-col gap-4"> <div className="flex flex-col gap-4">
<div className="grid gap-2"> <div className="grid gap-2">
<Label htmlFor="description"> <Label htmlFor="description">
{t("setting.access-token-section.create-dialog.description")} <span className="text-destructive">*</span> {t("setting.access-token.create-dialog.description")} <span className="text-destructive">*</span>
</Label> </Label>
<Input <Input
id="description" id="description"
type="text" type="text"
placeholder={t("setting.access-token-section.create-dialog.some-description")} placeholder={t("setting.access-token.create-dialog.some-description")}
value={state.description} value={state.description}
onChange={handleDescriptionInputChange} onChange={handleDescriptionInputChange}
/> />
</div> </div>
<div className="grid gap-2"> <div className="grid gap-2">
<Label> <Label>
{t("setting.access-token-section.create-dialog.expiration")} <span className="text-destructive">*</span> {t("setting.access-token.create-dialog.expiration")} <span className="text-destructive">*</span>
</Label> </Label>
<RadioGroup value={state.expiration.toString()} onValueChange={handleRoleInputChange} className="flex flex-row gap-4"> <RadioGroup value={state.expiration.toString()} onValueChange={handleRoleInputChange} className="flex flex-row gap-4">
{expirationOptions.map((option) => ( {expirationOptions.map((option) => (
......
...@@ -277,7 +277,7 @@ function CreateIdentityProviderDialog({ open, onOpenChange, identityProvider, on ...@@ -277,7 +277,7 @@ function CreateIdentityProviderDialog({ open, onOpenChange, identityProvider, on
}), }),
}), }),
}); });
toast.success(t("setting.sso-section.sso-created", { name: basicInfo.title })); toast.success(t("setting.sso.sso-created", { name: basicInfo.title }));
} else { } else {
await identityProviderServiceClient.updateIdentityProvider({ await identityProviderServiceClient.updateIdentityProvider({
identityProvider: create(IdentityProviderSchema, { identityProvider: create(IdentityProviderSchema, {
...@@ -296,7 +296,7 @@ function CreateIdentityProviderDialog({ open, onOpenChange, identityProvider, on ...@@ -296,7 +296,7 @@ function CreateIdentityProviderDialog({ open, onOpenChange, identityProvider, on
}), }),
updateMask: create(FieldMaskSchema, { paths: ["title", "identifier_filter", "config"] }), updateMask: create(FieldMaskSchema, { paths: ["title", "identifier_filter", "config"] }),
}); });
toast.success(t("setting.sso-section.sso-updated", { name: basicInfo.title })); toast.success(t("setting.sso.sso-updated", { name: basicInfo.title }));
} }
} catch (error: unknown) { } catch (error: unknown) {
await handleError(error, toast.error, { await handleError(error, toast.error, {
...@@ -318,7 +318,7 @@ function CreateIdentityProviderDialog({ open, onOpenChange, identityProvider, on ...@@ -318,7 +318,7 @@ function CreateIdentityProviderDialog({ open, onOpenChange, identityProvider, on
<Dialog open={open} onOpenChange={onOpenChange}> <Dialog open={open} onOpenChange={onOpenChange}>
<DialogContent className="max-w-2xl max-h-[80vh] overflow-y-auto"> <DialogContent className="max-w-2xl max-h-[80vh] overflow-y-auto">
<DialogHeader> <DialogHeader>
<DialogTitle>{t(isCreating ? "setting.sso-section.create-sso" : "setting.sso-section.update-sso")}</DialogTitle> <DialogTitle>{t(isCreating ? "setting.sso.create-sso" : "setting.sso.update-sso")}</DialogTitle>
</DialogHeader> </DialogHeader>
<div className="flex flex-col justify-start items-start w-full space-y-4"> <div className="flex flex-col justify-start items-start w-full space-y-4">
{isCreating && ( {isCreating && (
...@@ -336,7 +336,7 @@ function CreateIdentityProviderDialog({ open, onOpenChange, identityProvider, on ...@@ -336,7 +336,7 @@ function CreateIdentityProviderDialog({ open, onOpenChange, identityProvider, on
))} ))}
</SelectContent> </SelectContent>
</Select> </Select>
<p className="mb-2 text-sm font-medium">{t("setting.sso-section.template")}</p> <p className="mb-2 text-sm font-medium">{t("setting.sso.template")}</p>
<Select value={selectedTemplate} onValueChange={(value) => setSelectedTemplate(value)}> <Select value={selectedTemplate} onValueChange={(value) => setSelectedTemplate(value)}>
<SelectTrigger className="mb-1 h-auto w-full"> <SelectTrigger className="mb-1 h-auto w-full">
<SelectValue /> <SelectValue />
...@@ -393,10 +393,10 @@ function CreateIdentityProviderDialog({ open, onOpenChange, identityProvider, on ...@@ -393,10 +393,10 @@ function CreateIdentityProviderDialog({ open, onOpenChange, identityProvider, on
}) })
} }
/> />
<p className="mb-1 text-sm font-medium">{t("setting.sso-section.identifier-filter")}</p> <p className="mb-1 text-sm font-medium">{t("setting.sso.identifier-filter")}</p>
<Input <Input
className="mb-2 w-full" className="mb-2 w-full"
placeholder={t("setting.sso-section.identifier-filter")} placeholder={t("setting.sso.identifier-filter")}
value={basicInfo.identifierFilter} value={basicInfo.identifierFilter}
onChange={(e) => onChange={(e) =>
setBasicInfo({ setBasicInfo({
...@@ -410,86 +410,86 @@ function CreateIdentityProviderDialog({ open, onOpenChange, identityProvider, on ...@@ -410,86 +410,86 @@ function CreateIdentityProviderDialog({ open, onOpenChange, identityProvider, on
<> <>
{isCreating && ( {isCreating && (
<p className="border border-border rounded-md p-2 text-sm w-full mb-2 break-all"> <p className="border border-border rounded-md p-2 text-sm w-full mb-2 break-all">
{t("setting.sso-section.redirect-url")}: {absolutifyLink("/auth/callback")} {t("setting.sso.redirect-url")}: {absolutifyLink("/auth/callback")}
</p> </p>
)} )}
<p className="mb-1 text-sm font-medium"> <p className="mb-1 text-sm font-medium">
{t("setting.sso-section.client-id")} {t("setting.sso.client-id")}
<span className="text-destructive">*</span> <span className="text-destructive">*</span>
</p> </p>
<Input <Input
className="mb-2 w-full" className="mb-2 w-full"
placeholder={t("setting.sso-section.client-id")} placeholder={t("setting.sso.client-id")}
value={oauth2Config.clientId} value={oauth2Config.clientId}
onChange={(e) => setPartialOAuth2Config({ clientId: e.target.value })} onChange={(e) => setPartialOAuth2Config({ clientId: e.target.value })}
/> />
<p className="mb-1 text-sm font-medium"> <p className="mb-1 text-sm font-medium">
{t("setting.sso-section.client-secret")} {t("setting.sso.client-secret")}
<span className="text-destructive">*</span> <span className="text-destructive">*</span>
</p> </p>
<Input <Input
className="mb-2 w-full" className="mb-2 w-full"
placeholder={t("setting.sso-section.client-secret")} placeholder={t("setting.sso.client-secret")}
value={oauth2Config.clientSecret} value={oauth2Config.clientSecret}
onChange={(e) => setPartialOAuth2Config({ clientSecret: e.target.value })} onChange={(e) => setPartialOAuth2Config({ clientSecret: e.target.value })}
/> />
<p className="mb-1 text-sm font-medium"> <p className="mb-1 text-sm font-medium">
{t("setting.sso-section.authorization-endpoint")} {t("setting.sso.authorization-endpoint")}
<span className="text-destructive">*</span> <span className="text-destructive">*</span>
</p> </p>
<Input <Input
className="mb-2 w-full" className="mb-2 w-full"
placeholder={t("setting.sso-section.authorization-endpoint")} placeholder={t("setting.sso.authorization-endpoint")}
value={oauth2Config.authUrl} value={oauth2Config.authUrl}
onChange={(e) => setPartialOAuth2Config({ authUrl: e.target.value })} onChange={(e) => setPartialOAuth2Config({ authUrl: e.target.value })}
/> />
<p className="mb-1 text-sm font-medium"> <p className="mb-1 text-sm font-medium">
{t("setting.sso-section.token-endpoint")} {t("setting.sso.token-endpoint")}
<span className="text-destructive">*</span> <span className="text-destructive">*</span>
</p> </p>
<Input <Input
className="mb-2 w-full" className="mb-2 w-full"
placeholder={t("setting.sso-section.token-endpoint")} placeholder={t("setting.sso.token-endpoint")}
value={oauth2Config.tokenUrl} value={oauth2Config.tokenUrl}
onChange={(e) => setPartialOAuth2Config({ tokenUrl: e.target.value })} onChange={(e) => setPartialOAuth2Config({ tokenUrl: e.target.value })}
/> />
<p className="mb-1 text-sm font-medium"> <p className="mb-1 text-sm font-medium">
{t("setting.sso-section.user-endpoint")} {t("setting.sso.user-endpoint")}
<span className="text-destructive">*</span> <span className="text-destructive">*</span>
</p> </p>
<Input <Input
className="mb-2 w-full" className="mb-2 w-full"
placeholder={t("setting.sso-section.user-endpoint")} placeholder={t("setting.sso.user-endpoint")}
value={oauth2Config.userInfoUrl} value={oauth2Config.userInfoUrl}
onChange={(e) => setPartialOAuth2Config({ userInfoUrl: e.target.value })} onChange={(e) => setPartialOAuth2Config({ userInfoUrl: e.target.value })}
/> />
<p className="mb-1 text-sm font-medium"> <p className="mb-1 text-sm font-medium">
{t("setting.sso-section.scopes")} {t("setting.sso.scopes")}
<span className="text-destructive">*</span> <span className="text-destructive">*</span>
</p> </p>
<Input <Input
className="mb-2 w-full" className="mb-2 w-full"
placeholder={t("setting.sso-section.scopes")} placeholder={t("setting.sso.scopes")}
value={oauth2Scopes} value={oauth2Scopes}
onChange={(e) => setOAuth2Scopes(e.target.value)} onChange={(e) => setOAuth2Scopes(e.target.value)}
/> />
<Separator className="my-2" /> <Separator className="my-2" />
<p className="mb-1 text-sm font-medium"> <p className="mb-1 text-sm font-medium">
{t("setting.sso-section.identifier")} {t("setting.sso.identifier")}
<span className="text-destructive">*</span> <span className="text-destructive">*</span>
</p> </p>
<Input <Input
className="mb-2 w-full" className="mb-2 w-full"
placeholder={t("setting.sso-section.identifier")} placeholder={t("setting.sso.identifier")}
value={oauth2Config.fieldMapping!.identifier} value={oauth2Config.fieldMapping!.identifier}
onChange={(e) => onChange={(e) =>
setPartialOAuth2Config({ fieldMapping: { ...oauth2Config.fieldMapping, identifier: e.target.value } as FieldMapping }) setPartialOAuth2Config({ fieldMapping: { ...oauth2Config.fieldMapping, identifier: e.target.value } as FieldMapping })
} }
/> />
<p className="mb-1 text-sm font-medium">{t("setting.sso-section.display-name")}</p> <p className="mb-1 text-sm font-medium">{t("setting.sso.display-name")}</p>
<Input <Input
className="mb-2 w-full" className="mb-2 w-full"
placeholder={t("setting.sso-section.display-name")} placeholder={t("setting.sso.display-name")}
value={oauth2Config.fieldMapping!.displayName} value={oauth2Config.fieldMapping!.displayName}
onChange={(e) => onChange={(e) =>
setPartialOAuth2Config({ fieldMapping: { ...oauth2Config.fieldMapping, displayName: e.target.value } as FieldMapping }) setPartialOAuth2Config({ fieldMapping: { ...oauth2Config.fieldMapping, displayName: e.target.value } as FieldMapping })
......
...@@ -125,11 +125,11 @@ function CreateUserDialog({ open, onOpenChange, user: initialUser, onSuccess }: ...@@ -125,11 +125,11 @@ function CreateUserDialog({ open, onOpenChange, user: initialUser, onSuccess }:
> >
<div className="flex items-center space-x-2"> <div className="flex items-center space-x-2">
<RadioGroupItem value={String(User_Role.USER)} id="user" /> <RadioGroupItem value={String(User_Role.USER)} id="user" />
<Label htmlFor="user">{t("setting.member-section.user")}</Label> <Label htmlFor="user">{t("setting.member.user")}</Label>
</div> </div>
<div className="flex items-center space-x-2"> <div className="flex items-center space-x-2">
<RadioGroupItem value={String(User_Role.ADMIN)} id="admin" /> <RadioGroupItem value={String(User_Role.ADMIN)} id="admin" />
<Label htmlFor="admin">{t("setting.member-section.admin")}</Label> <Label htmlFor="admin">{t("setting.member.admin")}</Label>
</div> </div>
</RadioGroup> </RadioGroup>
</div> </div>
......
...@@ -121,32 +121,30 @@ function CreateWebhookDialog({ open, onOpenChange, webhookName, onSuccess }: Pro ...@@ -121,32 +121,30 @@ function CreateWebhookDialog({ open, onOpenChange, webhookName, onSuccess }: Pro
<DialogContent className="max-w-md"> <DialogContent className="max-w-md">
<DialogHeader> <DialogHeader>
<DialogTitle> <DialogTitle>
{isCreating {isCreating ? t("setting.webhook.create-dialog.create-webhook") : t("setting.webhook.create-dialog.edit-webhook")}
? t("setting.webhook-section.create-dialog.create-webhook")
: t("setting.webhook-section.create-dialog.edit-webhook")}
</DialogTitle> </DialogTitle>
</DialogHeader> </DialogHeader>
<div className="flex flex-col gap-4"> <div className="flex flex-col gap-4">
<div className="grid gap-2"> <div className="grid gap-2">
<Label htmlFor="displayName"> <Label htmlFor="displayName">
{t("setting.webhook-section.create-dialog.title")} <span className="text-destructive">*</span> {t("setting.webhook.create-dialog.title")} <span className="text-destructive">*</span>
</Label> </Label>
<Input <Input
id="displayName" id="displayName"
type="text" type="text"
placeholder={t("setting.webhook-section.create-dialog.an-easy-to-remember-name")} placeholder={t("setting.webhook.create-dialog.an-easy-to-remember-name")}
value={state.displayName} value={state.displayName}
onChange={handleTitleInputChange} onChange={handleTitleInputChange}
/> />
</div> </div>
<div className="grid gap-2"> <div className="grid gap-2">
<Label htmlFor="url"> <Label htmlFor="url">
{t("setting.webhook-section.create-dialog.payload-url")} <span className="text-destructive">*</span> {t("setting.webhook.create-dialog.payload-url")} <span className="text-destructive">*</span>
</Label> </Label>
<Input <Input
id="url" id="url"
type="text" type="text"
placeholder={t("setting.webhook-section.create-dialog.url-example-post-receive")} placeholder={t("setting.webhook.create-dialog.url-example-post-receive")}
value={state.url} value={state.url}
onChange={handleUrlInputChange} onChange={handleUrlInputChange}
/> />
......
...@@ -35,10 +35,10 @@ const MemoDetailSidebar = ({ memo, className, parentPage }: Props) => { ...@@ -35,10 +35,10 @@ const MemoDetailSidebar = ({ memo, className, parentPage }: Props) => {
<aside className={cn("relative w-full h-auto max-h-screen overflow-auto flex flex-col gap-5", className)}> <aside className={cn("relative w-full h-auto max-h-screen overflow-auto flex flex-col gap-5", className)}>
{canManageShares && ( {canManageShares && (
<div className="w-full space-y-2"> <div className="w-full space-y-2">
<SectionLabel>{t("memo-share.section-label")}</SectionLabel> <SectionLabel>{t("memo.share.section-label")}</SectionLabel>
<Button variant="outline" className="w-full justify-start gap-2" onClick={() => setSharePanelOpen(true)}> <Button variant="outline" className="w-full justify-start gap-2" onClick={() => setSharePanelOpen(true)}>
<Share2Icon className="w-4 h-4" /> <Share2Icon className="w-4 h-4" />
{t("memo-share.open-panel")} {t("memo.share.open-panel")}
</Button> </Button>
</div> </div>
)} )}
......
...@@ -42,15 +42,15 @@ const FILTER_CONFIGS: Record<FilterFactor, FilterConfig> = { ...@@ -42,15 +42,15 @@ const FILTER_CONFIGS: Record<FilterFactor, FilterConfig> = {
}, },
"property.hasLink": { "property.hasLink": {
icon: LinkIcon, icon: LinkIcon,
getLabel: (_, t) => t("filters.has-link"), getLabel: (_, t) => t("memo.filters.has-link"),
}, },
"property.hasTaskList": { "property.hasTaskList": {
icon: CheckCircleIcon, icon: CheckCircleIcon,
getLabel: (_, t) => t("filters.has-task-list"), getLabel: (_, t) => t("memo.filters.has-task-list"),
}, },
"property.hasCode": { "property.hasCode": {
icon: CodeIcon, icon: CodeIcon,
getLabel: (_, t) => t("filters.has-code"), getLabel: (_, t) => t("memo.filters.has-code"),
}, },
}; };
......
...@@ -22,9 +22,9 @@ function getExpireDate(option: ExpiryOption): Date | undefined { ...@@ -22,9 +22,9 @@ function getExpireDate(option: ExpiryOption): Date | undefined {
} }
function formatExpiry(share: MemoShare, t: ReturnType<typeof useTranslate>): string { function formatExpiry(share: MemoShare, t: ReturnType<typeof useTranslate>): string {
if (!share.expireTime) return t("memo-share.never-expires"); if (!share.expireTime) return t("memo.share.never-expires");
const d = timestampDate(share.expireTime); const d = timestampDate(share.expireTime);
return t("memo-share.expires-on", { date: d.toLocaleDateString() }); return t("memo.share.expires-on", { date: d.toLocaleDateString() });
} }
interface ShareLinkRowProps { interface ShareLinkRowProps {
...@@ -47,9 +47,9 @@ function ShareLinkRow({ share, memoName }: ShareLinkRowProps) { ...@@ -47,9 +47,9 @@ function ShareLinkRow({ share, memoName }: ShareLinkRowProps) {
const handleRevoke = async () => { const handleRevoke = async () => {
try { try {
await deleteShare.mutateAsync({ name: share.name, memoName }); await deleteShare.mutateAsync({ name: share.name, memoName });
toast.success(t("memo-share.revoked")); toast.success(t("memo.share.revoked"));
} catch (e) { } catch (e) {
toast.error((e as ConnectError).message || t("memo-share.revoke-failed")); toast.error((e as ConnectError).message || t("memo.share.revoke-failed"));
} }
}; };
...@@ -58,7 +58,7 @@ function ShareLinkRow({ share, memoName }: ShareLinkRowProps) { ...@@ -58,7 +58,7 @@ function ShareLinkRow({ share, memoName }: ShareLinkRowProps) {
<div className="flex items-center justify-between gap-2"> <div className="flex items-center justify-between gap-2">
<span className="truncate font-mono text-xs text-muted-foreground">{url}</span> <span className="truncate font-mono text-xs text-muted-foreground">{url}</span>
<div className="flex shrink-0 items-center gap-1"> <div className="flex shrink-0 items-center gap-1">
<Button variant="ghost" size="icon" className="h-7 w-7" onClick={handleCopy} title={t("memo-share.copy")}> <Button variant="ghost" size="icon" className="h-7 w-7" onClick={handleCopy} title={t("memo.share.copy")}>
{copied ? <CheckIcon className="h-3.5 w-3.5 text-green-500" /> : <CopyIcon className="h-3.5 w-3.5" />} {copied ? <CheckIcon className="h-3.5 w-3.5 text-green-500" /> : <CopyIcon className="h-3.5 w-3.5" />}
</Button> </Button>
<Button <Button
...@@ -67,7 +67,7 @@ function ShareLinkRow({ share, memoName }: ShareLinkRowProps) { ...@@ -67,7 +67,7 @@ function ShareLinkRow({ share, memoName }: ShareLinkRowProps) {
className="h-7 w-7 text-destructive hover:text-destructive" className="h-7 w-7 text-destructive hover:text-destructive"
onClick={handleRevoke} onClick={handleRevoke}
disabled={deleteShare.isPending} disabled={deleteShare.isPending}
title={t("memo-share.revoke")} title={t("memo.share.revoke")}
> >
<Trash2Icon className="h-3.5 w-3.5" /> <Trash2Icon className="h-3.5 w-3.5" />
</Button> </Button>
...@@ -94,7 +94,7 @@ const MemoSharePanel = ({ open, onClose, memoName }: MemoSharePanelProps) => { ...@@ -94,7 +94,7 @@ const MemoSharePanel = ({ open, onClose, memoName }: MemoSharePanelProps) => {
try { try {
await createShare.mutateAsync({ memoName, expireTime: getExpireDate(expiry) }); await createShare.mutateAsync({ memoName, expireTime: getExpireDate(expiry) });
} catch (e) { } catch (e) {
toast.error((e as ConnectError).message || t("memo-share.create-failed")); toast.error((e as ConnectError).message || t("memo.share.create-failed"));
} }
}; };
...@@ -104,18 +104,18 @@ const MemoSharePanel = ({ open, onClose, memoName }: MemoSharePanelProps) => { ...@@ -104,18 +104,18 @@ const MemoSharePanel = ({ open, onClose, memoName }: MemoSharePanelProps) => {
<DialogHeader> <DialogHeader>
<DialogTitle className="flex items-center gap-2"> <DialogTitle className="flex items-center gap-2">
<LinkIcon className="h-4 w-4" /> <LinkIcon className="h-4 w-4" />
{t("memo-share.title")} {t("memo.share.title")}
</DialogTitle> </DialogTitle>
</DialogHeader> </DialogHeader>
<div className="flex flex-col gap-4 py-2"> <div className="flex flex-col gap-4 py-2">
{/* Active links */} {/* Active links */}
<div className="flex flex-col gap-2"> <div className="flex flex-col gap-2">
<p className="text-sm font-medium text-muted-foreground">{t("memo-share.active-links")}</p> <p className="text-sm font-medium text-muted-foreground">{t("memo.share.active-links")}</p>
{isLoading ? ( {isLoading ? (
<Loader2Icon className="h-4 w-4 animate-spin text-muted-foreground" /> <Loader2Icon className="h-4 w-4 animate-spin text-muted-foreground" />
) : shares.length === 0 ? ( ) : shares.length === 0 ? (
<p className="text-sm text-muted-foreground">{t("memo-share.no-links")}</p> <p className="text-sm text-muted-foreground">{t("memo.share.no-links")}</p>
) : ( ) : (
<div className="flex flex-col gap-2"> <div className="flex flex-col gap-2">
{shares.map((share) => ( {shares.map((share) => (
...@@ -132,20 +132,20 @@ const MemoSharePanel = ({ open, onClose, memoName }: MemoSharePanelProps) => { ...@@ -132,20 +132,20 @@ const MemoSharePanel = ({ open, onClose, memoName }: MemoSharePanelProps) => {
<SelectValue /> <SelectValue />
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>
<SelectItem value="never">{t("memo-share.expiry-never")}</SelectItem> <SelectItem value="never">{t("memo.share.expiry-never")}</SelectItem>
<SelectItem value="1d">{t("memo-share.expiry-1-day")}</SelectItem> <SelectItem value="1d">{t("memo.share.expiry-1-day")}</SelectItem>
<SelectItem value="7d">{t("memo-share.expiry-7-days")}</SelectItem> <SelectItem value="7d">{t("memo.share.expiry-7-days")}</SelectItem>
<SelectItem value="30d">{t("memo-share.expiry-30-days")}</SelectItem> <SelectItem value="30d">{t("memo.share.expiry-30-days")}</SelectItem>
</SelectContent> </SelectContent>
</Select> </Select>
<Button onClick={handleCreate} disabled={createShare.isPending} className="flex-1"> <Button onClick={handleCreate} disabled={createShare.isPending} className="flex-1">
{createShare.isPending ? ( {createShare.isPending ? (
<> <>
<Loader2Icon className="mr-2 h-4 w-4 animate-spin" /> <Loader2Icon className="mr-2 h-4 w-4 animate-spin" />
{t("memo-share.creating")} {t("memo.share.creating")}
</> </>
) : ( ) : (
t("memo-share.create-link") t("memo.share.create-link")
)} )}
</Button> </Button>
</div> </div>
......
...@@ -55,10 +55,10 @@ const AccessTokenSection = () => { ...@@ -55,10 +55,10 @@ const AccessTokenSection = () => {
// Copy the token to clipboard - this is the only time it will be shown // Copy the token to clipboard - this is the only time it will be shown
if (response.token) { if (response.token) {
copy(response.token); copy(response.token);
toast.success(t("setting.access-token-section.access-token-copied-to-clipboard")); toast.success(t("setting.access-token.access-token-copied-to-clipboard"));
} }
toast.success( toast.success(
t("setting.access-token-section.create-dialog.access-token-created", { t("setting.access-token.create-dialog.access-token-created", {
description: response.personalAccessToken?.description ?? "", description: response.personalAccessToken?.description ?? "",
}), }),
); );
...@@ -78,15 +78,15 @@ const AccessTokenSection = () => { ...@@ -78,15 +78,15 @@ const AccessTokenSection = () => {
await userServiceClient.deletePersonalAccessToken({ name: tokenName }); await userServiceClient.deletePersonalAccessToken({ name: tokenName });
setPersonalAccessTokens((prev) => prev.filter((token) => token.name !== tokenName)); setPersonalAccessTokens((prev) => prev.filter((token) => token.name !== tokenName));
setDeleteTarget(undefined); setDeleteTarget(undefined);
toast.success(t("setting.access-token-section.access-token-deleted", { description })); toast.success(t("setting.access-token.access-token-deleted", { description }));
}; };
return ( return (
<div className="w-full flex flex-col gap-2"> <div className="w-full flex flex-col gap-2">
<div className="flex flex-col sm:flex-row sm:items-start sm:justify-between gap-2"> <div className="flex flex-col sm:flex-row sm:items-start sm:justify-between gap-2">
<div className="flex flex-col gap-1"> <div className="flex flex-col gap-1">
<h4 className="text-sm font-medium text-muted-foreground">{t("setting.access-token-section.title")}</h4> <h4 className="text-sm font-medium text-muted-foreground">{t("setting.access-token.title")}</h4>
<p className="text-xs text-muted-foreground">{t("setting.access-token-section.description")}</p> <p className="text-xs text-muted-foreground">{t("setting.access-token.description")}</p>
</div> </div>
<Button onClick={handleCreateToken} size="sm"> <Button onClick={handleCreateToken} size="sm">
<PlusIcon className="w-4 h-4 mr-1.5" /> <PlusIcon className="w-4 h-4 mr-1.5" />
...@@ -103,15 +103,15 @@ const AccessTokenSection = () => { ...@@ -103,15 +103,15 @@ const AccessTokenSection = () => {
}, },
{ {
key: "createdAt", key: "createdAt",
header: t("setting.access-token-section.create-dialog.created-at"), header: t("setting.access-token.create-dialog.created-at"),
render: (_, token: PersonalAccessToken) => (token.createdAt ? timestampDate(token.createdAt) : undefined)?.toLocaleString(), render: (_, token: PersonalAccessToken) => (token.createdAt ? timestampDate(token.createdAt) : undefined)?.toLocaleString(),
}, },
{ {
key: "expiresAt", key: "expiresAt",
header: t("setting.access-token-section.create-dialog.expires-at"), header: t("setting.access-token.create-dialog.expires-at"),
render: (_, token: PersonalAccessToken) => render: (_, token: PersonalAccessToken) =>
(token.expiresAt ? timestampDate(token.expiresAt) : undefined)?.toLocaleString() ?? (token.expiresAt ? timestampDate(token.expiresAt) : undefined)?.toLocaleString() ??
t("setting.access-token-section.create-dialog.duration-never"), t("setting.access-token.create-dialog.duration-never"),
}, },
{ {
key: "actions", key: "actions",
...@@ -138,8 +138,8 @@ const AccessTokenSection = () => { ...@@ -138,8 +138,8 @@ const AccessTokenSection = () => {
<ConfirmDialog <ConfirmDialog
open={!!deleteTarget} open={!!deleteTarget}
onOpenChange={(open) => !open && setDeleteTarget(undefined)} onOpenChange={(open) => !open && setDeleteTarget(undefined)}
title={deleteTarget ? t("setting.access-token-section.access-token-deletion", { description: deleteTarget.description }) : ""} title={deleteTarget ? t("setting.access-token.access-token-deletion", { description: deleteTarget.description }) : ""}
description={t("setting.access-token-section.access-token-deletion-description")} description={t("setting.access-token.access-token-deletion-description")}
confirmLabel={t("common.delete")} confirmLabel={t("common.delete")}
cancelLabel={t("common.cancel")} cancelLabel={t("common.cancel")}
onConfirm={confirmDeleteAccessToken} onConfirm={confirmDeleteAccessToken}
......
...@@ -80,29 +80,29 @@ const InstanceSection = () => { ...@@ -80,29 +80,29 @@ const InstanceSection = () => {
return ( return (
<SettingSection> <SettingSection>
<SettingGroup title={t("common.basic")}> <SettingGroup title={t("common.basic")}>
<SettingRow label={t("setting.system-section.server-name")} description={instanceGeneralSetting.customProfile?.title || "Memos"}> <SettingRow label={t("setting.system.server-name")} description={instanceGeneralSetting.customProfile?.title || "Memos"}>
<Button variant="outline" onClick={handleUpdateCustomizedProfileButtonClick}> <Button variant="outline" onClick={handleUpdateCustomizedProfileButtonClick}>
{t("common.edit")} {t("common.edit")}
</Button> </Button>
</SettingRow> </SettingRow>
</SettingGroup> </SettingGroup>
<SettingGroup title={t("setting.system-section.title")} showSeparator> <SettingGroup title={t("setting.system.title")} showSeparator>
<SettingRow label={t("setting.system-section.additional-style")} vertical> <SettingRow label={t("setting.system.additional-style")} vertical>
<Textarea <Textarea
className="font-mono w-full" className="font-mono w-full"
rows={3} rows={3}
placeholder={t("setting.system-section.additional-style-placeholder")} placeholder={t("setting.system.additional-style-placeholder")}
value={instanceGeneralSetting.additionalStyle} value={instanceGeneralSetting.additionalStyle}
onChange={(event) => updatePartialSetting({ additionalStyle: event.target.value })} onChange={(event) => updatePartialSetting({ additionalStyle: event.target.value })}
/> />
</SettingRow> </SettingRow>
<SettingRow label={t("setting.system-section.additional-script")} vertical> <SettingRow label={t("setting.system.additional-script")} vertical>
<Textarea <Textarea
className="font-mono w-full" className="font-mono w-full"
rows={3} rows={3}
placeholder={t("setting.system-section.additional-script-placeholder")} placeholder={t("setting.system.additional-script-placeholder")}
value={instanceGeneralSetting.additionalScript} value={instanceGeneralSetting.additionalScript}
onChange={(event) => updatePartialSetting({ additionalScript: event.target.value })} onChange={(event) => updatePartialSetting({ additionalScript: event.target.value })}
/> />
...@@ -110,7 +110,7 @@ const InstanceSection = () => { ...@@ -110,7 +110,7 @@ const InstanceSection = () => {
</SettingGroup> </SettingGroup>
<SettingGroup> <SettingGroup>
<SettingRow label={t("setting.instance-section.disallow-user-registration")}> <SettingRow label={t("setting.instance.disallow-user-registration")}>
<Switch <Switch
disabled={profile.demo} disabled={profile.demo}
checked={instanceGeneralSetting.disallowUserRegistration} checked={instanceGeneralSetting.disallowUserRegistration}
...@@ -118,7 +118,7 @@ const InstanceSection = () => { ...@@ -118,7 +118,7 @@ const InstanceSection = () => {
/> />
</SettingRow> </SettingRow>
<SettingRow label={t("setting.instance-section.disallow-password-auth")}> <SettingRow label={t("setting.instance.disallow-password-auth")}>
<Switch <Switch
disabled={profile.demo || (identityProviderList.length === 0 && !instanceGeneralSetting.disallowPasswordAuth)} disabled={profile.demo || (identityProviderList.length === 0 && !instanceGeneralSetting.disallowPasswordAuth)}
checked={instanceGeneralSetting.disallowPasswordAuth} checked={instanceGeneralSetting.disallowPasswordAuth}
...@@ -126,21 +126,21 @@ const InstanceSection = () => { ...@@ -126,21 +126,21 @@ const InstanceSection = () => {
/> />
</SettingRow> </SettingRow>
<SettingRow label={t("setting.instance-section.disallow-change-username")}> <SettingRow label={t("setting.instance.disallow-change-username")}>
<Switch <Switch
checked={instanceGeneralSetting.disallowChangeUsername} checked={instanceGeneralSetting.disallowChangeUsername}
onCheckedChange={(checked) => updatePartialSetting({ disallowChangeUsername: checked })} onCheckedChange={(checked) => updatePartialSetting({ disallowChangeUsername: checked })}
/> />
</SettingRow> </SettingRow>
<SettingRow label={t("setting.instance-section.disallow-change-nickname")}> <SettingRow label={t("setting.instance.disallow-change-nickname")}>
<Switch <Switch
checked={instanceGeneralSetting.disallowChangeNickname} checked={instanceGeneralSetting.disallowChangeNickname}
onCheckedChange={(checked) => updatePartialSetting({ disallowChangeNickname: checked })} onCheckedChange={(checked) => updatePartialSetting({ disallowChangeNickname: checked })}
/> />
</SettingRow> </SettingRow>
<SettingRow label={t("setting.instance-section.week-start-day")}> <SettingRow label={t("setting.instance.week-start-day")}>
<Select <Select
value={instanceGeneralSetting.weekStartDayOffset.toString()} value={instanceGeneralSetting.weekStartDayOffset.toString()}
onValueChange={(value) => { onValueChange={(value) => {
...@@ -151,9 +151,9 @@ const InstanceSection = () => { ...@@ -151,9 +151,9 @@ const InstanceSection = () => {
<SelectValue /> <SelectValue />
</SelectTrigger> </SelectTrigger>
<SelectContent> <SelectContent>
<SelectItem value="-1">{t("setting.instance-section.saturday")}</SelectItem> <SelectItem value="-1">{t("setting.instance.saturday")}</SelectItem>
<SelectItem value="0">{t("setting.instance-section.sunday")}</SelectItem> <SelectItem value="0">{t("setting.instance.sunday")}</SelectItem>
<SelectItem value="1">{t("setting.instance-section.monday")}</SelectItem> <SelectItem value="1">{t("setting.instance.monday")}</SelectItem>
</SelectContent> </SelectContent>
</Select> </Select>
</SettingRow> </SettingRow>
......
...@@ -32,9 +32,9 @@ const MemberSection = () => { ...@@ -32,9 +32,9 @@ const MemberSection = () => {
const stringifyUserRole = (role: User_Role) => { const stringifyUserRole = (role: User_Role) => {
if (role === User_Role.ADMIN) { if (role === User_Role.ADMIN) {
return t("setting.member-section.admin"); return t("setting.member.admin");
} else { } else {
return t("setting.member-section.user"); return t("setting.member.user");
} }
}; };
...@@ -63,7 +63,7 @@ const MemberSection = () => { ...@@ -63,7 +63,7 @@ const MemberSection = () => {
updateMask: create(FieldMaskSchema, { paths: ["state"] }), updateMask: create(FieldMaskSchema, { paths: ["state"] }),
}); });
setArchiveTarget(undefined); setArchiveTarget(undefined);
toast.success(t("setting.member-section.archive-success", { username })); toast.success(t("setting.member.archive-success", { username }));
await refetchUsers(); await refetchUsers();
}; };
...@@ -76,7 +76,7 @@ const MemberSection = () => { ...@@ -76,7 +76,7 @@ const MemberSection = () => {
}, },
updateMask: create(FieldMaskSchema, { paths: ["state"] }), updateMask: create(FieldMaskSchema, { paths: ["state"] }),
}); });
toast.success(t("setting.member-section.restore-success", { username })); toast.success(t("setting.member.restore-success", { username }));
await refetchUsers(); await refetchUsers();
}; };
...@@ -89,12 +89,12 @@ const MemberSection = () => { ...@@ -89,12 +89,12 @@ const MemberSection = () => {
const { username, name } = deleteTarget; const { username, name } = deleteTarget;
deleteUserMutation.mutate(name); deleteUserMutation.mutate(name);
setDeleteTarget(undefined); setDeleteTarget(undefined);
toast.success(t("setting.member-section.delete-success", { username })); toast.success(t("setting.member.delete-success", { username }));
}; };
return ( return (
<SettingSection <SettingSection
title={t("setting.member-list")} title={t("setting.member.list-title")}
actions={ actions={
<Button onClick={handleCreateUser}> <Button onClick={handleCreateUser}>
<PlusIcon className="w-4 h-4 mr-2" /> <PlusIcon className="w-4 h-4 mr-2" />
...@@ -146,14 +146,12 @@ const MemberSection = () => { ...@@ -146,14 +146,12 @@ const MemberSection = () => {
<DropdownMenuContent align="end" sideOffset={2}> <DropdownMenuContent align="end" sideOffset={2}>
<DropdownMenuItem onClick={() => handleEditUser(user)}>{t("common.update")}</DropdownMenuItem> <DropdownMenuItem onClick={() => handleEditUser(user)}>{t("common.update")}</DropdownMenuItem>
{user.state === State.NORMAL ? ( {user.state === State.NORMAL ? (
<DropdownMenuItem onClick={() => handleArchiveUserClick(user)}> <DropdownMenuItem onClick={() => handleArchiveUserClick(user)}>{t("setting.member.archive-member")}</DropdownMenuItem>
{t("setting.member-section.archive-member")}
</DropdownMenuItem>
) : ( ) : (
<> <>
<DropdownMenuItem onClick={() => handleRestoreUserClick(user)}>{t("common.restore")}</DropdownMenuItem> <DropdownMenuItem onClick={() => handleRestoreUserClick(user)}>{t("common.restore")}</DropdownMenuItem>
<DropdownMenuItem onClick={() => handleDeleteUserClick(user)} className="text-destructive focus:text-destructive"> <DropdownMenuItem onClick={() => handleDeleteUserClick(user)} className="text-destructive focus:text-destructive">
{t("setting.member-section.delete-member")} {t("setting.member.delete-member")}
</DropdownMenuItem> </DropdownMenuItem>
</> </>
)} )}
...@@ -176,8 +174,8 @@ const MemberSection = () => { ...@@ -176,8 +174,8 @@ const MemberSection = () => {
<ConfirmDialog <ConfirmDialog
open={!!archiveTarget} open={!!archiveTarget}
onOpenChange={(open) => !open && setArchiveTarget(undefined)} onOpenChange={(open) => !open && setArchiveTarget(undefined)}
title={archiveTarget ? t("setting.member-section.archive-warning", { username: archiveTarget.username }) : ""} title={archiveTarget ? t("setting.member.archive-warning", { username: archiveTarget.username }) : ""}
description={archiveTarget ? t("setting.member-section.archive-warning-description") : ""} description={archiveTarget ? t("setting.member.archive-warning-description") : ""}
confirmLabel={t("common.confirm")} confirmLabel={t("common.confirm")}
cancelLabel={t("common.cancel")} cancelLabel={t("common.cancel")}
onConfirm={confirmArchiveUser} onConfirm={confirmArchiveUser}
...@@ -187,8 +185,8 @@ const MemberSection = () => { ...@@ -187,8 +185,8 @@ const MemberSection = () => {
<ConfirmDialog <ConfirmDialog
open={!!deleteTarget} open={!!deleteTarget}
onOpenChange={(open) => !open && setDeleteTarget(undefined)} onOpenChange={(open) => !open && setDeleteTarget(undefined)}
title={deleteTarget ? t("setting.member-section.delete-warning", { username: deleteTarget.username }) : ""} title={deleteTarget ? t("setting.member.delete-warning", { username: deleteTarget.username }) : ""}
description={deleteTarget ? t("setting.member-section.delete-warning-description") : ""} description={deleteTarget ? t("setting.member.delete-warning-description") : ""}
confirmLabel={t("common.delete")} confirmLabel={t("common.delete")}
cancelLabel={t("common.cancel")} cancelLabel={t("common.cancel")}
onConfirm={confirmDeleteUser} onConfirm={confirmDeleteUser}
......
...@@ -70,22 +70,22 @@ const MemoRelatedSettings = () => { ...@@ -70,22 +70,22 @@ const MemoRelatedSettings = () => {
return ( return (
<SettingSection> <SettingSection>
<SettingGroup title={t("setting.memo-related-settings.title")}> <SettingGroup title={t("setting.memo.title")}>
<SettingRow label={t("setting.system-section.display-with-updated-time")}> <SettingRow label={t("setting.system.display-with-updated-time")}>
<Switch <Switch
checked={memoRelatedSetting.displayWithUpdateTime} checked={memoRelatedSetting.displayWithUpdateTime}
onCheckedChange={(checked) => updatePartialSetting({ displayWithUpdateTime: checked })} onCheckedChange={(checked) => updatePartialSetting({ displayWithUpdateTime: checked })}
/> />
</SettingRow> </SettingRow>
<SettingRow label={t("setting.system-section.enable-double-click-to-edit")}> <SettingRow label={t("setting.system.enable-double-click-to-edit")}>
<Switch <Switch
checked={memoRelatedSetting.enableDoubleClickEdit} checked={memoRelatedSetting.enableDoubleClickEdit}
onCheckedChange={(checked) => updatePartialSetting({ enableDoubleClickEdit: checked })} onCheckedChange={(checked) => updatePartialSetting({ enableDoubleClickEdit: checked })}
/> />
</SettingRow> </SettingRow>
<SettingRow label={t("setting.memo-related-settings.content-length-limit")}> <SettingRow label={t("setting.memo.content-length-limit")}>
<Input <Input
className="w-24" className="w-24"
type="number" type="number"
...@@ -95,7 +95,7 @@ const MemoRelatedSettings = () => { ...@@ -95,7 +95,7 @@ const MemoRelatedSettings = () => {
</SettingRow> </SettingRow>
</SettingGroup> </SettingGroup>
<SettingGroup title={t("setting.memo-related-settings.reactions")} showSeparator> <SettingGroup title={t("setting.memo.reactions")} showSeparator>
<div className="w-full flex flex-row flex-wrap gap-2"> <div className="w-full flex flex-row flex-wrap gap-2">
{memoRelatedSetting.reactions.map((reactionType) => ( {memoRelatedSetting.reactions.map((reactionType) => (
<Badge key={reactionType} variant="outline" className="flex items-center gap-1.5 h-8 px-3"> <Badge key={reactionType} variant="outline" className="flex items-center gap-1.5 h-8 px-3">
......
...@@ -27,7 +27,7 @@ const MyAccountSection = () => { ...@@ -27,7 +27,7 @@ const MyAccountSection = () => {
return ( return (
<SettingSection> <SettingSection>
<SettingGroup title={t("setting.account-section.title")}> <SettingGroup title={t("setting.account.title")}>
<div className="w-full flex flex-row justify-start items-center gap-3"> <div className="w-full flex flex-row justify-start items-center gap-3">
<UserAvatar className="shrink-0 w-12 h-12" avatarUrl={user?.avatarUrl} /> <UserAvatar className="shrink-0 w-12 h-12" avatarUrl={user?.avatarUrl} />
<div className="flex-1 min-w-0 flex flex-col justify-center items-start gap-1"> <div className="flex-1 min-w-0 flex flex-col justify-center items-start gap-1">
...@@ -49,7 +49,7 @@ const MyAccountSection = () => { ...@@ -49,7 +49,7 @@ const MyAccountSection = () => {
</Button> </Button>
</DropdownMenuTrigger> </DropdownMenuTrigger>
<DropdownMenuContent align="end"> <DropdownMenuContent align="end">
<DropdownMenuItem onClick={handleChangePassword}>{t("setting.account-section.change-password")}</DropdownMenuItem> <DropdownMenuItem onClick={handleChangePassword}>{t("setting.account.change-password")}</DropdownMenuItem>
</DropdownMenuContent> </DropdownMenuContent>
</DropdownMenu> </DropdownMenu>
</div> </div>
......
...@@ -75,13 +75,13 @@ const PreferencesSection = () => { ...@@ -75,13 +75,13 @@ const PreferencesSection = () => {
<LocaleSelect value={setting.locale} onChange={handleLocaleSelectChange} /> <LocaleSelect value={setting.locale} onChange={handleLocaleSelectChange} />
</SettingRow> </SettingRow>
<SettingRow label={t("setting.preference-section.theme")}> <SettingRow label={t("setting.preference.theme")}>
<ThemeSelect value={setting.theme} onValueChange={handleThemeChange} /> <ThemeSelect value={setting.theme} onValueChange={handleThemeChange} />
</SettingRow> </SettingRow>
</SettingGroup> </SettingGroup>
<SettingGroup title={t("setting.preference")} showSeparator> <SettingGroup title={t("setting.preference.label")} showSeparator>
<SettingRow label={t("setting.preference-section.default-memo-visibility")}> <SettingRow label={t("setting.preference.default-memo-visibility")}>
<Select value={setting.memoVisibility || "PRIVATE"} onValueChange={handleDefaultMemoVisibilityChanged}> <Select value={setting.memoVisibility || "PRIVATE"} onValueChange={handleDefaultMemoVisibilityChanged}>
<SelectTrigger className="min-w-fit"> <SelectTrigger className="min-w-fit">
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
......
...@@ -74,7 +74,7 @@ const SSOSection = () => { ...@@ -74,7 +74,7 @@ const SSOSection = () => {
<SettingSection <SettingSection
title={ title={
<div className="flex items-center gap-2"> <div className="flex items-center gap-2">
<span>{t("setting.sso-section.sso-list")}</span> <span>{t("setting.sso.sso-list")}</span>
<LearnMore url="https://usememos.com/docs/configuration/authentication" /> <LearnMore url="https://usememos.com/docs/configuration/authentication" />
</div> </div>
} }
...@@ -122,7 +122,7 @@ const SSOSection = () => { ...@@ -122,7 +122,7 @@ const SSOSection = () => {
}, },
]} ]}
data={identityProviderList} data={identityProviderList}
emptyMessage={t("setting.sso-section.no-sso-found")} emptyMessage={t("setting.sso.no-sso-found")}
getRowKey={(provider) => provider.name} getRowKey={(provider) => provider.name}
/> />
...@@ -136,7 +136,7 @@ const SSOSection = () => { ...@@ -136,7 +136,7 @@ const SSOSection = () => {
<ConfirmDialog <ConfirmDialog
open={!!deleteTarget} open={!!deleteTarget}
onOpenChange={(open) => !open && setDeleteTarget(undefined)} onOpenChange={(open) => !open && setDeleteTarget(undefined)}
title={deleteTarget ? t("setting.sso-section.confirm-delete", { name: deleteTarget.title }) : ""} title={deleteTarget ? t("setting.sso.confirm-delete", { name: deleteTarget.title }) : ""}
confirmLabel={t("common.delete")} confirmLabel={t("common.delete")}
cancelLabel={t("common.cancel")} cancelLabel={t("common.cancel")}
onConfirm={confirmDeleteIdentityProvider} onConfirm={confirmDeleteIdentityProvider}
......
...@@ -151,7 +151,7 @@ const StorageSection = () => { ...@@ -151,7 +151,7 @@ const StorageSection = () => {
return ( return (
<SettingSection> <SettingSection>
<SettingGroup title={t("setting.storage-section.current-storage")}> <SettingGroup title={t("setting.storage.current-storage")}>
<div className="w-full"> <div className="w-full">
<RadioGroup <RadioGroup
value={String(instanceStorageSetting.storageType)} value={String(instanceStorageSetting.storageType)}
...@@ -162,11 +162,11 @@ const StorageSection = () => { ...@@ -162,11 +162,11 @@ const StorageSection = () => {
> >
<div className="flex items-center space-x-2"> <div className="flex items-center space-x-2">
<RadioGroupItem value={String(InstanceSetting_StorageSetting_StorageType.DATABASE)} id="database" /> <RadioGroupItem value={String(InstanceSetting_StorageSetting_StorageType.DATABASE)} id="database" />
<Label htmlFor="database">{t("setting.storage-section.type-database")}</Label> <Label htmlFor="database">{t("setting.storage.type-database")}</Label>
</div> </div>
<div className="flex items-center space-x-2"> <div className="flex items-center space-x-2">
<RadioGroupItem value={String(InstanceSetting_StorageSetting_StorageType.LOCAL)} id="local" /> <RadioGroupItem value={String(InstanceSetting_StorageSetting_StorageType.LOCAL)} id="local" />
<Label htmlFor="local">{t("setting.storage-section.type-local")}</Label> <Label htmlFor="local">{t("setting.storage.type-local")}</Label>
</div> </div>
<div className="flex items-center space-x-2"> <div className="flex items-center space-x-2">
<RadioGroupItem value={String(InstanceSetting_StorageSetting_StorageType.S3)} id="s3" /> <RadioGroupItem value={String(InstanceSetting_StorageSetting_StorageType.S3)} id="s3" />
...@@ -175,7 +175,7 @@ const StorageSection = () => { ...@@ -175,7 +175,7 @@ const StorageSection = () => {
</RadioGroup> </RadioGroup>
</div> </div>
<SettingRow label={t("setting.system-section.max-upload-size")} tooltip={t("setting.system-section.max-upload-size-hint")}> <SettingRow label={t("setting.system.max-upload-size")} tooltip={t("setting.system.max-upload-size-hint")}>
<Input <Input
className="w-24 font-mono" className="w-24 font-mono"
value={String(instanceStorageSetting.uploadSizeLimitMb)} value={String(instanceStorageSetting.uploadSizeLimitMb)}
...@@ -184,7 +184,7 @@ const StorageSection = () => { ...@@ -184,7 +184,7 @@ const StorageSection = () => {
</SettingRow> </SettingRow>
{instanceStorageSetting.storageType !== InstanceSetting_StorageSetting_StorageType.DATABASE && ( {instanceStorageSetting.storageType !== InstanceSetting_StorageSetting_StorageType.DATABASE && (
<SettingRow label={t("setting.storage-section.filepath-template")}> <SettingRow label={t("setting.storage.filepath-template")}>
<Input <Input
className="w-64" className="w-64"
value={instanceStorageSetting.filepathTemplate} value={instanceStorageSetting.filepathTemplate}
......
...@@ -37,7 +37,7 @@ const WebhookSection = () => { ...@@ -37,7 +37,7 @@ const WebhookSection = () => {
const name = webhooks[webhooks.length - 1]?.displayName || ""; const name = webhooks[webhooks.length - 1]?.displayName || "";
setWebhooks(webhooks); setWebhooks(webhooks);
setIsCreateWebhookDialogOpen(false); setIsCreateWebhookDialogOpen(false);
toast.success(t("setting.webhook-section.create-dialog.create-webhook-success", { name })); toast.success(t("setting.webhook.create-dialog.create-webhook-success", { name }));
}; };
const handleDeleteWebhook = async (webhook: UserWebhook) => { const handleDeleteWebhook = async (webhook: UserWebhook) => {
...@@ -49,13 +49,13 @@ const WebhookSection = () => { ...@@ -49,13 +49,13 @@ const WebhookSection = () => {
await userServiceClient.deleteUserWebhook({ name: deleteTarget.name }); await userServiceClient.deleteUserWebhook({ name: deleteTarget.name });
setWebhooks(webhooks.filter((item) => item.name !== deleteTarget.name)); setWebhooks(webhooks.filter((item) => item.name !== deleteTarget.name));
setDeleteTarget(undefined); setDeleteTarget(undefined);
toast.success(t("setting.webhook-section.delete-dialog.delete-webhook-success", { name: deleteTarget.displayName })); toast.success(t("setting.webhook.delete-dialog.delete-webhook-success", { name: deleteTarget.displayName }));
}; };
return ( return (
<div className="w-full flex flex-col gap-2"> <div className="w-full flex flex-col gap-2">
<div className="flex flex-col sm:flex-row sm:items-start sm:justify-between gap-2"> <div className="flex flex-col sm:flex-row sm:items-start sm:justify-between gap-2">
<h4 className="text-sm font-medium text-muted-foreground">{t("setting.webhook-section.title")}</h4> <h4 className="text-sm font-medium text-muted-foreground">{t("setting.webhook.title")}</h4>
<Button onClick={() => setIsCreateWebhookDialogOpen(true)} size="sm"> <Button onClick={() => setIsCreateWebhookDialogOpen(true)} size="sm">
<PlusIcon className="w-4 h-4 mr-1.5" /> <PlusIcon className="w-4 h-4 mr-1.5" />
{t("common.create")} {t("common.create")}
...@@ -71,7 +71,7 @@ const WebhookSection = () => { ...@@ -71,7 +71,7 @@ const WebhookSection = () => {
}, },
{ {
key: "url", key: "url",
header: t("setting.webhook-section.url"), header: t("setting.webhook.url"),
render: (_, webhook: UserWebhook) => ( render: (_, webhook: UserWebhook) => (
<span className="max-w-[300px] inline-block truncate text-foreground" title={webhook.url}> <span className="max-w-[300px] inline-block truncate text-foreground" title={webhook.url}>
{webhook.url} {webhook.url}
...@@ -90,7 +90,7 @@ const WebhookSection = () => { ...@@ -90,7 +90,7 @@ const WebhookSection = () => {
}, },
]} ]}
data={webhooks} data={webhooks}
emptyMessage={t("setting.webhook-section.no-webhooks-found")} emptyMessage={t("setting.webhook.no-webhooks-found")}
getRowKey={(webhook) => webhook.name} getRowKey={(webhook) => webhook.name}
/> />
...@@ -113,8 +113,8 @@ const WebhookSection = () => { ...@@ -113,8 +113,8 @@ const WebhookSection = () => {
<ConfirmDialog <ConfirmDialog
open={!!deleteTarget} open={!!deleteTarget}
onOpenChange={(open) => !open && setDeleteTarget(undefined)} onOpenChange={(open) => !open && setDeleteTarget(undefined)}
title={t("setting.webhook-section.delete-dialog.delete-webhook-title", { name: deleteTarget?.displayName || "" })} title={t("setting.webhook.delete-dialog.delete-webhook-title", { name: deleteTarget?.displayName || "" })}
description={t("setting.webhook-section.delete-dialog.delete-webhook-description")} description={t("setting.webhook.delete-dialog.delete-webhook-description")}
confirmLabel={t("common.delete")} confirmLabel={t("common.delete")}
cancelLabel={t("common.cancel")} cancelLabel={t("common.cancel")}
onConfirm={confirmDeleteWebhook} onConfirm={confirmDeleteWebhook}
......
...@@ -153,7 +153,7 @@ function UpdateAccountDialog({ open, onOpenChange, onSuccess }: Props) { ...@@ -153,7 +153,7 @@ function UpdateAccountDialog({ open, onOpenChange, onSuccess }: Props) {
<Dialog open={open} onOpenChange={onOpenChange}> <Dialog open={open} onOpenChange={onOpenChange}>
<DialogContent className="max-w-md"> <DialogContent className="max-w-md">
<DialogHeader> <DialogHeader>
<DialogTitle>{t("setting.account-section.update-information")}</DialogTitle> <DialogTitle>{t("setting.account.update-information")}</DialogTitle>
</DialogHeader> </DialogHeader>
<div className="flex flex-col gap-4"> <div className="flex flex-col gap-4">
<div className="flex flex-row items-center gap-2"> <div className="flex flex-row items-center gap-2">
...@@ -176,7 +176,7 @@ function UpdateAccountDialog({ open, onOpenChange, onSuccess }: Props) { ...@@ -176,7 +176,7 @@ function UpdateAccountDialog({ open, onOpenChange, onSuccess }: Props) {
<div className="grid gap-2"> <div className="grid gap-2">
<Label htmlFor="username"> <Label htmlFor="username">
{t("common.username")} {t("common.username")}
<span className="text-sm text-muted-foreground ml-1">({t("setting.account-section.username-note")})</span> <span className="text-sm text-muted-foreground ml-1">({t("setting.account.username-note")})</span>
</Label> </Label>
<Input <Input
id="username" id="username"
...@@ -188,7 +188,7 @@ function UpdateAccountDialog({ open, onOpenChange, onSuccess }: Props) { ...@@ -188,7 +188,7 @@ function UpdateAccountDialog({ open, onOpenChange, onSuccess }: Props) {
<div className="grid gap-2"> <div className="grid gap-2">
<Label htmlFor="displayName"> <Label htmlFor="displayName">
{t("common.nickname")} {t("common.nickname")}
<span className="text-sm text-muted-foreground ml-1">({t("setting.account-section.nickname-note")})</span> <span className="text-sm text-muted-foreground ml-1">({t("setting.account.nickname-note")})</span>
</Label> </Label>
<Input <Input
id="displayName" id="displayName"
...@@ -200,7 +200,7 @@ function UpdateAccountDialog({ open, onOpenChange, onSuccess }: Props) { ...@@ -200,7 +200,7 @@ function UpdateAccountDialog({ open, onOpenChange, onSuccess }: Props) {
<div className="grid gap-2"> <div className="grid gap-2">
<Label htmlFor="email"> <Label htmlFor="email">
{t("common.email")} {t("common.email")}
<span className="text-sm text-muted-foreground ml-1">({t("setting.account-section.email-note")})</span> <span className="text-sm text-muted-foreground ml-1">({t("setting.account.email-note")})</span>
</Label> </Label>
<Input id="email" type="email" value={state.email} onChange={handleEmailChanged} /> <Input id="email" type="email" value={state.email} onChange={handleEmailChanged} />
</div> </div>
......
...@@ -106,23 +106,23 @@ function UpdateCustomizedProfileDialog({ open, onOpenChange, onSuccess }: Props) ...@@ -106,23 +106,23 @@ function UpdateCustomizedProfileDialog({ open, onOpenChange, onSuccess }: Props)
<Dialog open={open} onOpenChange={onOpenChange}> <Dialog open={open} onOpenChange={onOpenChange}>
<DialogContent className="max-w-2xl"> <DialogContent className="max-w-2xl">
<DialogHeader> <DialogHeader>
<DialogTitle>{t("setting.system-section.customize-server.title")}</DialogTitle> <DialogTitle>{t("setting.system.customize-server.title")}</DialogTitle>
<DialogDescription>Customize your instance appearance and settings.</DialogDescription> <DialogDescription>Customize your instance appearance and settings.</DialogDescription>
</DialogHeader> </DialogHeader>
<div className="grid gap-4"> <div className="grid gap-4">
<div className="grid gap-2"> <div className="grid gap-2">
<Label htmlFor="server-name">{t("setting.system-section.server-name")}</Label> <Label htmlFor="server-name">{t("setting.system.server-name")}</Label>
<Input id="server-name" type="text" value={customProfile.title} onChange={handleNameChanged} placeholder="Enter server name" /> <Input id="server-name" type="text" value={customProfile.title} onChange={handleNameChanged} placeholder="Enter server name" />
</div> </div>
<div className="grid gap-2"> <div className="grid gap-2">
<Label htmlFor="icon-url">{t("setting.system-section.customize-server.icon-url")}</Label> <Label htmlFor="icon-url">{t("setting.system.customize-server.icon-url")}</Label>
<Input id="icon-url" type="text" value={customProfile.logoUrl} onChange={handleLogoUrlChanged} placeholder="Enter icon URL" /> <Input id="icon-url" type="text" value={customProfile.logoUrl} onChange={handleLogoUrlChanged} placeholder="Enter icon URL" />
</div> </div>
<div className="grid gap-2"> <div className="grid gap-2">
<Label htmlFor="description">{t("setting.system-section.customize-server.description")}</Label> <Label htmlFor="description">{t("setting.system.customize-server.description")}</Label>
<Textarea <Textarea
id="description" id="description"
rows={3} rows={3}
......
...@@ -112,7 +112,7 @@ const UserMenu = (props: Props) => { ...@@ -112,7 +112,7 @@ const UserMenu = (props: Props) => {
)} )}
/> />
</TooltipTrigger> </TooltipTrigger>
<TooltipContent side="right">{t(`sse.${sseStatus}` as Parameters<typeof t>[0])}</TooltipContent> <TooltipContent side="right">{t(`live-update.${sseStatus}` as Parameters<typeof t>[0])}</TooltipContent>
</Tooltip> </Tooltip>
)} )}
</div> </div>
...@@ -150,7 +150,7 @@ const UserMenu = (props: Props) => { ...@@ -150,7 +150,7 @@ const UserMenu = (props: Props) => {
<DropdownMenuSub> <DropdownMenuSub>
<DropdownMenuSubTrigger> <DropdownMenuSubTrigger>
<PaletteIcon className="size-4 text-muted-foreground" /> <PaletteIcon className="size-4 text-muted-foreground" />
{t("setting.preference-section.theme")} {t("setting.preference.theme")}
</DropdownMenuSubTrigger> </DropdownMenuSubTrigger>
<DropdownMenuSubContent> <DropdownMenuSubContent>
{THEME_OPTIONS.map((option) => ( {THEME_OPTIONS.map((option) => (
......
This diff is collapsed.
...@@ -38,7 +38,15 @@ ...@@ -38,7 +38,15 @@
"created-at": "Creat el", "created-at": "Creat el",
"database": "Base de dades", "database": "Base de dades",
"day": "Dia", "day": "Dia",
"days": "Dies", "days": {
"fri": "Dv",
"mon": "Dl",
"sat": "Ds",
"sun": "Dg",
"thu": "Dj",
"tue": "Dt",
"wed": "Dc"
},
"delete": "Esborra", "delete": "Esborra",
"description": "Descripció", "description": "Descripció",
"edit": "Edita", "edit": "Edita",
...@@ -108,15 +116,6 @@ ...@@ -108,15 +116,6 @@
"visibility": "Visibilitat", "visibility": "Visibilitat",
"yourself": "Tu mateix" "yourself": "Tu mateix"
}, },
"days": {
"fri": "Dv",
"mon": "Dl",
"sat": "Ds",
"sun": "Dg",
"thu": "Dj",
"tue": "Dt",
"wed": "Dc"
},
"editor": { "editor": {
"add-your-comment-here": "Afegeix el teu comentari aquí...", "add-your-comment-here": "Afegeix el teu comentari aquí...",
"any-thoughts": "Alguna idea...", "any-thoughts": "Alguna idea...",
...@@ -127,11 +126,6 @@ ...@@ -127,11 +126,6 @@
"saving": "Guardant...", "saving": "Guardant...",
"slash-commands": "Escriu `/` per a comandaments" "slash-commands": "Escriu `/` per a comandaments"
}, },
"filters": {
"has-code": "téCodi",
"has-link": "téEnllaç",
"has-task-list": "téLlistaTasques"
},
"inbox": { "inbox": {
"failed-to-load": "Error en carregar la bústia", "failed-to-load": "Error en carregar la bústia",
"memo-comment": "{{user}} ha comentat la teva {{memo}}.", "memo-comment": "{{user}} ha comentat la teva {{memo}}.",
...@@ -162,7 +156,11 @@ ...@@ -162,7 +156,11 @@
"direction-asc": "Ascendent", "direction-asc": "Ascendent",
"direction-desc": "Descendent", "direction-desc": "Descendent",
"display-time": "Mostra l'hora", "display-time": "Mostra l'hora",
"filters": "Filtres", "filters": {
"has-code": "téCodi",
"has-link": "téEnllaç",
"has-task-list": "téLlistaTasques"
},
"links": "Enllaços", "links": "Enllaços",
"list": "Llista", "list": "Llista",
"load-more": "Carrega més", "load-more": "Carrega més",
...@@ -251,53 +249,7 @@ ...@@ -251,53 +249,7 @@
"go-to-home": "Vés a l'inici" "go-to-home": "Vés a l'inici"
}, },
"setting": { "setting": {
"access-token-section": { "member": {
"access-token-copied-to-clipboard": "Token d'accés copiat al porta-retalls",
"access-token-deleted": "Token d'accés `{{description}}` eliminat",
"access-token-deletion": "Estàs segur que vols eliminar el token d'accés `{{description}}`?",
"access-token-deletion-description": "Aquesta acció és irreversible. Hauràs d'actualitzar qualsevol servei que utilitzi aquest token per utilitzar un de nou.",
"create-dialog": {
"access-token-created": "Token d'accés `{{description}}` creat",
"create-access-token": "Crea token d'accés",
"created-at": "Creat el",
"description": "Descripció",
"duration-1m": "1 mes",
"duration-8h": "8 hores",
"duration-never": "Mai",
"expiration": "Caducitat",
"expires-at": "Caduca el",
"some-description": "Alguna descripció..."
},
"description": "Llista de tots els tokens d'accés del teu compte.",
"title": "Tokens d'accés",
"token": "Token"
},
"account-section": {
"change-password": "Canvia la contrasenya",
"email-note": "Opcional",
"export-memos": "Exporta notes",
"nickname-note": "Mostrat a la capçalera",
"openapi-reset": "Reinicia la clau OpenAPI",
"openapi-sample-post": "Hola #memos des de {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Reinicia l'API",
"title": "Informació del compte",
"update-information": "Actualitza la informació",
"username-note": "Utilitzat per iniciar sessió"
},
"instance-section": {
"disallow-change-nickname": "No permetis canviar el sobrenom",
"disallow-change-username": "No permetis canviar el nom d'usuari",
"disallow-password-auth": "No permetis autenticació per contrasenya",
"disallow-user-registration": "No permetis el registre d'usuaris",
"monday": "Dilluns",
"saturday": "Dissabte",
"sunday": "Diumenge",
"week-start-day": "Dia d'inici de setmana"
},
"member": "Membre",
"member-list": "Llista de membres",
"member-section": {
"admin": "Administrador", "admin": "Administrador",
"archive-member": "Arxiva el membre", "archive-member": "Arxiva el membre",
"archive-success": "{{username}} arxivat correctament", "archive-success": "{{username}} arxivat correctament",
...@@ -309,30 +261,24 @@ ...@@ -309,30 +261,24 @@
"delete-warning": "Estàs segur que vols eliminar {{username}}?", "delete-warning": "Estàs segur que vols eliminar {{username}}?",
"delete-warning-description": "AQUESTA ACció ÉS IRREVERSIBLE", "delete-warning-description": "AQUESTA ACció ÉS IRREVERSIBLE",
"restore-success": "{{username}} restaurat correctament", "restore-success": "{{username}} restaurat correctament",
"user": "Usuari" "user": "Usuari",
"label": "Membre",
"list-title": "Llista de membres"
}, },
"memo-related": "Nota", "my-account": {
"memo-related-settings": { "label": "El meu compte"
"content-length-limit": "Límit de longitud del contingut (Bytes)",
"enable-blur-nsfw-content": "Habilita el difuminat de contingut sensible (NSFW)",
"enable-memo-comments": "Habilita els comentaris a les notes",
"enable-memo-location": "Habilita la ubicació de la nota",
"reactions": "Reaccions",
"title": "Configuració de notes"
}, },
"my-account": "El meu compte", "preference": {
"preference": "Preferències",
"preference-section": {
"default-memo-sort-option": "Hora de visualització de la nota", "default-memo-sort-option": "Hora de visualització de la nota",
"default-memo-visibility": "Visibilitat per defecte de la nota", "default-memo-visibility": "Visibilitat per defecte de la nota",
"theme": "Tema" "theme": "Tema",
"label": "Preferències"
}, },
"shortcut": { "shortcut": {
"delete-confirm": "Estàs segur que vols eliminar la drecera `{{title}}`?", "delete-confirm": "Estàs segur que vols eliminar la drecera `{{title}}`?",
"delete-success": "Drecera `{{title}}` eliminada correctament" "delete-success": "Drecera `{{title}}` eliminada correctament"
}, },
"sso": "SSO", "sso": {
"sso-section": {
"authorization-endpoint": "Punt final d'autorització", "authorization-endpoint": "Punt final d'autorització",
"client-id": "ID de client", "client-id": "ID de client",
"client-secret": "Secret de client", "client-secret": "Secret de client",
...@@ -354,10 +300,10 @@ ...@@ -354,10 +300,10 @@
"template": "Plantilla", "template": "Plantilla",
"token-endpoint": "Punt final de token", "token-endpoint": "Punt final de token",
"update-sso": "Actualitza SSO", "update-sso": "Actualitza SSO",
"user-endpoint": "Punt final d'usuari" "user-endpoint": "Punt final d'usuari",
"label": "SSO"
}, },
"storage": "Emmagatzematge", "storage": {
"storage-section": {
"accesskey": "Clau d'accés", "accesskey": "Clau d'accés",
"accesskey-placeholder": "Clau d'accés / ID d'accés", "accesskey-placeholder": "Clau d'accés / ID d'accés",
"bucket": "Bucket", "bucket": "Bucket",
...@@ -389,10 +335,10 @@ ...@@ -389,10 +335,10 @@
"url-prefix-placeholder": "Prefix d'URL personalitzat, opcional", "url-prefix-placeholder": "Prefix d'URL personalitzat, opcional",
"url-suffix": "Sufix d'URL", "url-suffix": "Sufix d'URL",
"url-suffix-placeholder": "Sufix d'URL personalitzat, opcional", "url-suffix-placeholder": "Sufix d'URL personalitzat, opcional",
"warning-text": "Estàs segur que vols eliminar el servei d'emmagatzematge \"{{name}}\"? AQUESTA ACCIÓ ÉS IRREVERSIBLE" "warning-text": "Estàs segur que vols eliminar el servei d'emmagatzematge \"{{name}}\"? AQUESTA ACCIÓ ÉS IRREVERSIBLE",
"label": "Emmagatzematge"
}, },
"system": "Sistema", "system": {
"system-section": {
"additional-script": "Script addicional", "additional-script": "Script addicional",
"additional-script-placeholder": "Codi JavaScript addicional", "additional-script-placeholder": "Codi JavaScript addicional",
"additional-style": "Estil addicional", "additional-style": "Estil addicional",
...@@ -416,10 +362,64 @@ ...@@ -416,10 +362,64 @@
"max-upload-size-hint": "El valor recomanat és 32 MiB.", "max-upload-size-hint": "El valor recomanat és 32 MiB.",
"removed-completed-task-list-items": "Habilita l'eliminació de tasques completades", "removed-completed-task-list-items": "Habilita l'eliminació de tasques completades",
"server-name": "Nom del servidor", "server-name": "Nom del servidor",
"title": "General" "title": "General",
"label": "Sistema"
}, },
"version": "Versió", "version": "Versió",
"webhook-section": { "access-token": {
"access-token-copied-to-clipboard": "Token d'accés copiat al porta-retalls",
"access-token-deleted": "Token d'accés `{{description}}` eliminat",
"access-token-deletion": "Estàs segur que vols eliminar el token d'accés `{{description}}`?",
"access-token-deletion-description": "Aquesta acció és irreversible. Hauràs d'actualitzar qualsevol servei que utilitzi aquest token per utilitzar un de nou.",
"create-dialog": {
"access-token-created": "Token d'accés `{{description}}` creat",
"create-access-token": "Crea token d'accés",
"created-at": "Creat el",
"description": "Descripció",
"duration-1m": "1 mes",
"duration-8h": "8 hores",
"duration-never": "Mai",
"expiration": "Caducitat",
"expires-at": "Caduca el",
"some-description": "Alguna descripció..."
},
"description": "Llista de tots els tokens d'accés del teu compte.",
"title": "Tokens d'accés",
"token": "Token"
},
"account": {
"change-password": "Canvia la contrasenya",
"email-note": "Opcional",
"export-memos": "Exporta notes",
"nickname-note": "Mostrat a la capçalera",
"openapi-reset": "Reinicia la clau OpenAPI",
"openapi-sample-post": "Hola #memos des de {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Reinicia l'API",
"title": "Informació del compte",
"update-information": "Actualitza la informació",
"username-note": "Utilitzat per iniciar sessió"
},
"instance": {
"disallow-change-nickname": "No permetis canviar el sobrenom",
"disallow-change-username": "No permetis canviar el nom d'usuari",
"disallow-password-auth": "No permetis autenticació per contrasenya",
"disallow-user-registration": "No permetis el registre d'usuaris",
"monday": "Dilluns",
"saturday": "Dissabte",
"sunday": "Diumenge",
"week-start-day": "Dia d'inici de setmana"
},
"memo": {
"content-length-limit": "Límit de longitud del contingut (Bytes)",
"enable-blur-nsfw-content": "Habilita el difuminat de contingut sensible (NSFW)",
"enable-memo-comments": "Habilita els comentaris a les notes",
"enable-memo-location": "Habilita la ubicació de la nota",
"reactions": "Reaccions",
"title": "Configuració de notes",
"label": "Nota"
},
"webhook": {
"create-dialog": { "create-dialog": {
"an-easy-to-remember-name": "Un nom fàcil de recordar", "an-easy-to-remember-name": "Un nom fàcil de recordar",
"create-webhook": "Crea webhook", "create-webhook": "Crea webhook",
......
...@@ -38,7 +38,15 @@ ...@@ -38,7 +38,15 @@
"created-at": "Vytvořeno", "created-at": "Vytvořeno",
"database": "Databáze", "database": "Databáze",
"day": "Den", "day": "Den",
"days": "Dny", "days": {
"fri": "Pá",
"mon": "Po",
"sat": "So",
"sun": "Ne",
"thu": "Čt",
"tue": "Út",
"wed": "St"
},
"delete": "Smazat", "delete": "Smazat",
"description": "Popis", "description": "Popis",
"edit": "Upravit", "edit": "Upravit",
...@@ -108,15 +116,6 @@ ...@@ -108,15 +116,6 @@
"visibility": "Viditelnost", "visibility": "Viditelnost",
"yourself": "Vy sami" "yourself": "Vy sami"
}, },
"days": {
"fri": "Pá",
"mon": "Po",
"sat": "So",
"sun": "Ne",
"thu": "Čt",
"tue": "Út",
"wed": "St"
},
"editor": { "editor": {
"add-your-comment-here": "Přidejte sem svůj komentář...", "add-your-comment-here": "Přidejte sem svůj komentář...",
"any-thoughts": "Jakékoli myšlenky...", "any-thoughts": "Jakékoli myšlenky...",
...@@ -127,11 +126,6 @@ ...@@ -127,11 +126,6 @@
"saving": "Ukládání...", "saving": "Ukládání...",
"slash-commands": "Pro příkazy zadejte `/`" "slash-commands": "Pro příkazy zadejte `/`"
}, },
"filters": {
"has-code": "maKod",
"has-link": "maOdkaz",
"has-task-list": "maSeznamUkolu"
},
"inbox": { "inbox": {
"failed-to-load": "Nepodařilo se načíst položku doručené pošty", "failed-to-load": "Nepodařilo se načíst položku doručené pošty",
"memo-comment": "{{user}} komentoval k vaší {{memo}}.", "memo-comment": "{{user}} komentoval k vaší {{memo}}.",
...@@ -162,7 +156,11 @@ ...@@ -162,7 +156,11 @@
"direction-asc": "Vzestupně", "direction-asc": "Vzestupně",
"direction-desc": "Sestupně", "direction-desc": "Sestupně",
"display-time": "Doba zobrazení", "display-time": "Doba zobrazení",
"filters": "Filtry", "filters": {
"has-code": "maKod",
"has-link": "maOdkaz",
"has-task-list": "maSeznamUkolu"
},
"links": "Odkazy", "links": "Odkazy",
"list": "Seznam", "list": "Seznam",
"load-more": "Načíst více", "load-more": "Načíst více",
...@@ -251,53 +249,7 @@ ...@@ -251,53 +249,7 @@
"go-to-home": "Přejít na úvod" "go-to-home": "Přejít na úvod"
}, },
"setting": { "setting": {
"access-token-section": { "member": {
"access-token-copied-to-clipboard": "Přístupový token zkopírován do schránky",
"access-token-deleted": "Přístupový token `{{description}}` odstraněn",
"access-token-deletion": "Jste si jistí, že chcete odstranit přístupový token `{{description}}`?",
"access-token-deletion-description": "Tato akce je nevratná. Budete muset aktualizovat všechny služby používající tento token, aby používaly nový token.",
"create-dialog": {
"access-token-created": "Přístupový token `{{description}}` vytvořen",
"create-access-token": "Vytvořit přístupový token",
"created-at": "Vytvořeno",
"description": "Popis",
"duration-1m": "1 měsíc",
"duration-8h": "8 hodin",
"duration-never": "Nikdy",
"expiration": "Platnost",
"expires-at": "Vyprší",
"some-description": "Nějaký popis..."
},
"description": "Seznam všech přístupových tokenů k vašemu účtu.",
"title": "Přístupové tokeny",
"token": "Token"
},
"account-section": {
"change-password": "Změnit heslo",
"email-note": "Volitelné",
"export-memos": "Exportovat poznámky",
"nickname-note": "Zobrazeno v banneru",
"openapi-reset": "Resetovat OpenAPI klíč",
"openapi-sample-post": "Ahoj #memos z {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Resetovat API",
"title": "Informace o účtu",
"update-information": "Aktualizovat informace",
"username-note": "Slouží k přihlášení"
},
"instance-section": {
"disallow-change-nickname": "Zakázat změnu přezdívky",
"disallow-change-username": "Zakázat změnu uživatelského jména",
"disallow-password-auth": "Zakázat ověřování heslem",
"disallow-user-registration": "Zakázat registraci uživatelů",
"monday": "Pondělí",
"saturday": "Sobota",
"sunday": "Neděle",
"week-start-day": "Začátek týdne"
},
"member": "Uživatel",
"member-list": "Seznam uživatelů",
"member-section": {
"admin": "Admin", "admin": "Admin",
"archive-member": "Archivovat uživatele", "archive-member": "Archivovat uživatele",
"archive-success": "{{username}} úspěšně archivován", "archive-success": "{{username}} úspěšně archivován",
...@@ -309,30 +261,24 @@ ...@@ -309,30 +261,24 @@
"delete-warning": "Jste si jisti, že chcete odstranit uživatele {{username}}?", "delete-warning": "Jste si jisti, že chcete odstranit uživatele {{username}}?",
"delete-warning-description": "TATO AKCE JE NEVRATNÁ", "delete-warning-description": "TATO AKCE JE NEVRATNÁ",
"restore-success": "{{username}} úspěšně obnoven", "restore-success": "{{username}} úspěšně obnoven",
"user": "Uživatel" "user": "Uživatel",
"label": "Uživatel",
"list-title": "Seznam uživatelů"
}, },
"memo-related": "Poznámky", "my-account": {
"memo-related-settings": { "label": "Můj účet"
"content-length-limit": "Omezení velikosti obsahu (bajty)",
"enable-blur-nsfw-content": "Povolit rozostření citlivého obsahu",
"enable-memo-comments": "Povolit komentáře k poznámkám",
"enable-memo-location": "Povolit umístění poznámek",
"reactions": "Reakce",
"title": "Nastavení související s poznámkami"
}, },
"my-account": "Můj účet", "preference": {
"preference": "Předvolby",
"preference-section": {
"default-memo-sort-option": "Čas zobrazení poznámky", "default-memo-sort-option": "Čas zobrazení poznámky",
"default-memo-visibility": "Výchozí viditelnost poznámky", "default-memo-visibility": "Výchozí viditelnost poznámky",
"theme": "Motiv" "theme": "Motiv",
"label": "Předvolby"
}, },
"shortcut": { "shortcut": {
"delete-confirm": "Jste si jisti, že chcete odstranit zkratku `{{title}}`?", "delete-confirm": "Jste si jisti, že chcete odstranit zkratku `{{title}}`?",
"delete-success": "Zkratka `{{title}}` úspěšně odstraněna" "delete-success": "Zkratka `{{title}}` úspěšně odstraněna"
}, },
"sso": "SSO", "sso": {
"sso-section": {
"authorization-endpoint": "Autorizační koncový bod", "authorization-endpoint": "Autorizační koncový bod",
"client-id": "ID klienta", "client-id": "ID klienta",
"client-secret": "Klientské tajemství", "client-secret": "Klientské tajemství",
...@@ -354,10 +300,10 @@ ...@@ -354,10 +300,10 @@
"template": "Šablona", "template": "Šablona",
"token-endpoint": "Koncový bod tokenu", "token-endpoint": "Koncový bod tokenu",
"update-sso": "Aktualizovat SSO", "update-sso": "Aktualizovat SSO",
"user-endpoint": "Koncový bod uživatele" "user-endpoint": "Koncový bod uživatele",
"label": "SSO"
}, },
"storage": "Úložiště", "storage": {
"storage-section": {
"accesskey": "Přístupový klíč", "accesskey": "Přístupový klíč",
"accesskey-placeholder": "Přístupový klíč / ID", "accesskey-placeholder": "Přístupový klíč / ID",
"bucket": "Bucket", "bucket": "Bucket",
...@@ -389,10 +335,10 @@ ...@@ -389,10 +335,10 @@
"url-prefix-placeholder": "Vlastní předpona URL, nepovinná", "url-prefix-placeholder": "Vlastní předpona URL, nepovinná",
"url-suffix": "Přípona URL", "url-suffix": "Přípona URL",
"url-suffix-placeholder": "Vlastní přípona URL, nepovinná", "url-suffix-placeholder": "Vlastní přípona URL, nepovinná",
"warning-text": "Jste si jistí, že chcete odstranit službu úložiště \"{{name}}\"? TATO AKCE JE NEVRATNÁ" "warning-text": "Jste si jistí, že chcete odstranit službu úložiště \"{{name}}\"? TATO AKCE JE NEVRATNÁ",
"label": "Úložiště"
}, },
"system": "Systém", "system": {
"system-section": {
"additional-script": "Vlastní rozšíření skriptu", "additional-script": "Vlastní rozšíření skriptu",
"additional-script-placeholder": "Vlastní rozšíření kódu JavaScript", "additional-script-placeholder": "Vlastní rozšíření kódu JavaScript",
"additional-style": "Vlastní rozšíření stylu", "additional-style": "Vlastní rozšíření stylu",
...@@ -416,10 +362,64 @@ ...@@ -416,10 +362,64 @@
"max-upload-size-hint": "Doporučená hodnota je 32 MiB.", "max-upload-size-hint": "Doporučená hodnota je 32 MiB.",
"removed-completed-task-list-items": "Povolit odstranění dokončených položek ze seznamu úkolů", "removed-completed-task-list-items": "Povolit odstranění dokončených položek ze seznamu úkolů",
"server-name": "Název serveru", "server-name": "Název serveru",
"title": "Obecné" "title": "Obecné",
"label": "Systém"
}, },
"version": "Verze", "version": "Verze",
"webhook-section": { "access-token": {
"access-token-copied-to-clipboard": "Přístupový token zkopírován do schránky",
"access-token-deleted": "Přístupový token `{{description}}` odstraněn",
"access-token-deletion": "Jste si jistí, že chcete odstranit přístupový token `{{description}}`?",
"access-token-deletion-description": "Tato akce je nevratná. Budete muset aktualizovat všechny služby používající tento token, aby používaly nový token.",
"create-dialog": {
"access-token-created": "Přístupový token `{{description}}` vytvořen",
"create-access-token": "Vytvořit přístupový token",
"created-at": "Vytvořeno",
"description": "Popis",
"duration-1m": "1 měsíc",
"duration-8h": "8 hodin",
"duration-never": "Nikdy",
"expiration": "Platnost",
"expires-at": "Vyprší",
"some-description": "Nějaký popis..."
},
"description": "Seznam všech přístupových tokenů k vašemu účtu.",
"title": "Přístupové tokeny",
"token": "Token"
},
"account": {
"change-password": "Změnit heslo",
"email-note": "Volitelné",
"export-memos": "Exportovat poznámky",
"nickname-note": "Zobrazeno v banneru",
"openapi-reset": "Resetovat OpenAPI klíč",
"openapi-sample-post": "Ahoj #memos z {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Resetovat API",
"title": "Informace o účtu",
"update-information": "Aktualizovat informace",
"username-note": "Slouží k přihlášení"
},
"instance": {
"disallow-change-nickname": "Zakázat změnu přezdívky",
"disallow-change-username": "Zakázat změnu uživatelského jména",
"disallow-password-auth": "Zakázat ověřování heslem",
"disallow-user-registration": "Zakázat registraci uživatelů",
"monday": "Pondělí",
"saturday": "Sobota",
"sunday": "Neděle",
"week-start-day": "Začátek týdne"
},
"memo": {
"content-length-limit": "Omezení velikosti obsahu (bajty)",
"enable-blur-nsfw-content": "Povolit rozostření citlivého obsahu",
"enable-memo-comments": "Povolit komentáře k poznámkám",
"enable-memo-location": "Povolit umístění poznámek",
"reactions": "Reakce",
"title": "Nastavení související s poznámkami",
"label": "Poznámky"
},
"webhook": {
"create-dialog": { "create-dialog": {
"an-easy-to-remember-name": "Snadno zapamatovatelný název", "an-easy-to-remember-name": "Snadno zapamatovatelný název",
"create-webhook": "Vytvořit webhook", "create-webhook": "Vytvořit webhook",
......
...@@ -38,7 +38,15 @@ ...@@ -38,7 +38,15 @@
"created-at": "Erstellt am", "created-at": "Erstellt am",
"database": "Datenbank", "database": "Datenbank",
"day": "Tag", "day": "Tag",
"days": "Tage", "days": {
"fri": "Fr",
"mon": "Mo",
"sat": "Sa",
"sun": "So",
"thu": "Do",
"tue": "Di",
"wed": "Mi"
},
"delete": "Löschen", "delete": "Löschen",
"description": "Beschreibung", "description": "Beschreibung",
"edit": "Bearbeiten", "edit": "Bearbeiten",
...@@ -108,15 +116,6 @@ ...@@ -108,15 +116,6 @@
"visibility": "Sichtbarkeit", "visibility": "Sichtbarkeit",
"yourself": "Du selbst" "yourself": "Du selbst"
}, },
"days": {
"fri": "Fr",
"mon": "Mo",
"sat": "Sa",
"sun": "So",
"thu": "Do",
"tue": "Di",
"wed": "Mi"
},
"editor": { "editor": {
"add-your-comment-here": "Füge deinen Kommentar hinzu...", "add-your-comment-here": "Füge deinen Kommentar hinzu...",
"any-thoughts": "Ein Gedanke...", "any-thoughts": "Ein Gedanke...",
...@@ -127,11 +126,6 @@ ...@@ -127,11 +126,6 @@
"saving": "Speichern...", "saving": "Speichern...",
"slash-commands": "Nutze `/` für Befehle" "slash-commands": "Nutze `/` für Befehle"
}, },
"filters": {
"has-code": "hatCode",
"has-link": "hatLink",
"has-task-list": "hatAufgabenliste"
},
"inbox": { "inbox": {
"failed-to-load": "Fehler beim Laden des Eintrags", "failed-to-load": "Fehler beim Laden des Eintrags",
"memo-comment": "{{user}} hat einen Kommentar zu {{memo}} hinterlassen.", "memo-comment": "{{user}} hat einen Kommentar zu {{memo}} hinterlassen.",
...@@ -162,7 +156,11 @@ ...@@ -162,7 +156,11 @@
"direction-asc": "Aufsteigend", "direction-asc": "Aufsteigend",
"direction-desc": "Absteigend", "direction-desc": "Absteigend",
"display-time": "Anzeigedatum", "display-time": "Anzeigedatum",
"filters": "Filter", "filters": {
"has-code": "hatCode",
"has-link": "hatLink",
"has-task-list": "hatAufgabenliste"
},
"links": "Links", "links": "Links",
"list": "Liste", "list": "Liste",
"load-more": "Mehr laden", "load-more": "Mehr laden",
...@@ -251,53 +249,7 @@ ...@@ -251,53 +249,7 @@
"go-to-home": "Zurück zur Startseite" "go-to-home": "Zurück zur Startseite"
}, },
"setting": { "setting": {
"access-token-section": { "member": {
"access-token-copied-to-clipboard": "Zugangstoken in die Zwischenablage kopiert",
"access-token-deleted": "Zugangstoken `{{description}}` gelöscht",
"access-token-deletion": "Bist du sicher, dass du das Zugangstoken `{{description}}` löschen möchtest? DIESE AKTION KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN.",
"access-token-deletion-description": "Diese Aktion kann nicht rückgängig gemacht werden. Du musst alle Dienste, die diesen Token verwenden, mit einem neuen Token nutzen.",
"create-dialog": {
"access-token-created": "Zugangstoken `{{description}}` erstellt",
"create-access-token": "Zugangstoken erstellen",
"created-at": "Erstellt am",
"description": "Beschreibung",
"duration-1m": "1 Monat",
"duration-8h": "8 Stunden",
"duration-never": "Nie",
"expiration": "Ablauf",
"expires-at": "Läuft ab am",
"some-description": "Eine Beschreibung..."
},
"description": "Liste aller Zugangstoken für deinen Benutzer.",
"title": "Zugangstoken",
"token": "Token"
},
"account-section": {
"change-password": "Passwort ändern",
"email-note": "Optional",
"export-memos": "Notizen exportieren",
"nickname-note": "Wird im Banner angezeigt",
"openapi-reset": "OpenAPI Key zurücksetzen",
"openapi-sample-post": "Hallo #memos von {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "API zurücksetzen",
"title": "Konto-Informationen",
"update-information": "Informationen ändern",
"username-note": "Zum Anmelden verwendet"
},
"instance-section": {
"disallow-change-nickname": "Ändern des Spitznamens verbieten",
"disallow-change-username": "Ändern des Benutzernamens verbieten",
"disallow-password-auth": "Passwort-Authentifizierung verbieten",
"disallow-user-registration": "Benutzerregistrierung verbieten",
"monday": "Montag",
"saturday": "Samstag",
"sunday": "Sonntag",
"week-start-day": "Wochenstarttag"
},
"member": "Mitglied",
"member-list": "Mitgliederliste",
"member-section": {
"admin": "Admin", "admin": "Admin",
"archive-member": "Mitglied archivieren", "archive-member": "Mitglied archivieren",
"archive-success": "{{username}} erfolgreich archiviert", "archive-success": "{{username}} erfolgreich archiviert",
...@@ -309,30 +261,24 @@ ...@@ -309,30 +261,24 @@
"delete-warning": "Bist du sicher, dass du {{username}} löschen möchtest?\n\nDIESE AKTION KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN", "delete-warning": "Bist du sicher, dass du {{username}} löschen möchtest?\n\nDIESE AKTION KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN",
"delete-warning-description": "DIESE AKTION KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN", "delete-warning-description": "DIESE AKTION KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN",
"restore-success": "{{username}} erfolgreich wiederhergestellt", "restore-success": "{{username}} erfolgreich wiederhergestellt",
"user": "Benutzer" "user": "Benutzer",
"label": "Mitglied",
"list-title": "Mitgliederliste"
}, },
"memo-related": "Notiz", "my-account": {
"memo-related-settings": { "label": "Mein Konto"
"content-length-limit": "Limitierung der Inhaltslänge (Byte)",
"enable-blur-nsfw-content": "Unschärfe für sensible Inhalte (NSFW) aktivieren",
"enable-memo-comments": "Kommentare für Notizen aktivieren",
"enable-memo-location": "Notiz-Standort aktivieren",
"reactions": "Reaktionen",
"title": "Notiz-Einstellungen"
}, },
"my-account": "Mein Konto", "preference": {
"preference": "Einstellungen",
"preference-section": {
"default-memo-sort-option": "Anzeigedatum der Notiz", "default-memo-sort-option": "Anzeigedatum der Notiz",
"default-memo-visibility": "Standard-Notizsichtbarkeit", "default-memo-visibility": "Standard-Notizsichtbarkeit",
"theme": "Design" "theme": "Design",
"label": "Einstellungen"
}, },
"shortcut": { "shortcut": {
"delete-confirm": "Bist du sicher, dass du die Verknüpfung `{{title}}` löschen möchtest?", "delete-confirm": "Bist du sicher, dass du die Verknüpfung `{{title}}` löschen möchtest?",
"delete-success": "Verknüpfung `{{title}}` erfolgreich gelöscht" "delete-success": "Verknüpfung `{{title}}` erfolgreich gelöscht"
}, },
"sso": "SSO", "sso": {
"sso-section": {
"authorization-endpoint": "Autorisierungsendpunkt", "authorization-endpoint": "Autorisierungsendpunkt",
"client-id": "Client ID", "client-id": "Client ID",
"client-secret": "Client Secret", "client-secret": "Client Secret",
...@@ -354,10 +300,10 @@ ...@@ -354,10 +300,10 @@
"template": "Vorlage", "template": "Vorlage",
"token-endpoint": "Token-Endpunkt", "token-endpoint": "Token-Endpunkt",
"update-sso": "SSO aktualisieren", "update-sso": "SSO aktualisieren",
"user-endpoint": "Benutzer-Endpunkt" "user-endpoint": "Benutzer-Endpunkt",
"label": "SSO"
}, },
"storage": "Speicher", "storage": {
"storage-section": {
"accesskey": "Zugangsschlüssel", "accesskey": "Zugangsschlüssel",
"accesskey-placeholder": "Zugangsschlüssel / Zugangs-ID", "accesskey-placeholder": "Zugangsschlüssel / Zugangs-ID",
"bucket": "Bucket", "bucket": "Bucket",
...@@ -389,10 +335,10 @@ ...@@ -389,10 +335,10 @@
"url-prefix-placeholder": "Benutzerdefiniertes URL-Präfix, optional", "url-prefix-placeholder": "Benutzerdefiniertes URL-Präfix, optional",
"url-suffix": "URL-Suffix", "url-suffix": "URL-Suffix",
"url-suffix-placeholder": "Benutzerdefiniertes URL-Suffix, optional", "url-suffix-placeholder": "Benutzerdefiniertes URL-Suffix, optional",
"warning-text": "Bist du sicher, dass du den Speicherdienst \"{{name}}\" löschen möchtest? DIESE AKTION KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN" "warning-text": "Bist du sicher, dass du den Speicherdienst \"{{name}}\" löschen möchtest? DIESE AKTION KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN",
"label": "Speicher"
}, },
"system": "System", "system": {
"system-section": {
"additional-script": "Zusätzliches Skript", "additional-script": "Zusätzliches Skript",
"additional-script-placeholder": "Zusätzlicher JavaScript-Code", "additional-script-placeholder": "Zusätzlicher JavaScript-Code",
"additional-style": "Zusätzlicher Stil", "additional-style": "Zusätzlicher Stil",
...@@ -416,10 +362,64 @@ ...@@ -416,10 +362,64 @@
"max-upload-size-hint": "Empfohlener Wert ist 32 MiB.", "max-upload-size-hint": "Empfohlener Wert ist 32 MiB.",
"removed-completed-task-list-items": "Entfernen abgeschlossener Aufgaben aktivieren", "removed-completed-task-list-items": "Entfernen abgeschlossener Aufgaben aktivieren",
"server-name": "Servername", "server-name": "Servername",
"title": "Allgemein" "title": "Allgemein",
"label": "System"
}, },
"version": "Version", "version": "Version",
"webhook-section": { "access-token": {
"access-token-copied-to-clipboard": "Zugangstoken in die Zwischenablage kopiert",
"access-token-deleted": "Zugangstoken `{{description}}` gelöscht",
"access-token-deletion": "Bist du sicher, dass du das Zugangstoken `{{description}}` löschen möchtest? DIESE AKTION KANN NICHT RÜCKGÄNGIG GEMACHT WERDEN.",
"access-token-deletion-description": "Diese Aktion kann nicht rückgängig gemacht werden. Du musst alle Dienste, die diesen Token verwenden, mit einem neuen Token nutzen.",
"create-dialog": {
"access-token-created": "Zugangstoken `{{description}}` erstellt",
"create-access-token": "Zugangstoken erstellen",
"created-at": "Erstellt am",
"description": "Beschreibung",
"duration-1m": "1 Monat",
"duration-8h": "8 Stunden",
"duration-never": "Nie",
"expiration": "Ablauf",
"expires-at": "Läuft ab am",
"some-description": "Eine Beschreibung..."
},
"description": "Liste aller Zugangstoken für deinen Benutzer.",
"title": "Zugangstoken",
"token": "Token"
},
"account": {
"change-password": "Passwort ändern",
"email-note": "Optional",
"export-memos": "Notizen exportieren",
"nickname-note": "Wird im Banner angezeigt",
"openapi-reset": "OpenAPI Key zurücksetzen",
"openapi-sample-post": "Hallo #memos von {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "API zurücksetzen",
"title": "Konto-Informationen",
"update-information": "Informationen ändern",
"username-note": "Zum Anmelden verwendet"
},
"instance": {
"disallow-change-nickname": "Ändern des Spitznamens verbieten",
"disallow-change-username": "Ändern des Benutzernamens verbieten",
"disallow-password-auth": "Passwort-Authentifizierung verbieten",
"disallow-user-registration": "Benutzerregistrierung verbieten",
"monday": "Montag",
"saturday": "Samstag",
"sunday": "Sonntag",
"week-start-day": "Wochenstarttag"
},
"memo": {
"content-length-limit": "Limitierung der Inhaltslänge (Byte)",
"enable-blur-nsfw-content": "Unschärfe für sensible Inhalte (NSFW) aktivieren",
"enable-memo-comments": "Kommentare für Notizen aktivieren",
"enable-memo-location": "Notiz-Standort aktivieren",
"reactions": "Reaktionen",
"title": "Notiz-Einstellungen",
"label": "Notiz"
},
"webhook": {
"create-dialog": { "create-dialog": {
"an-easy-to-remember-name": "Einprägsamer Name", "an-easy-to-remember-name": "Einprägsamer Name",
"create-webhook": "Webhook erstellen", "create-webhook": "Webhook erstellen",
......
{ {
"setting": { "setting": {
"sso-section": { "sso": {
"authorization-endpoint": "Authorisation endpoint" "authorization-endpoint": "Authorisation endpoint"
}, },
"system-section": { "system": {
"customize-server": { "customize-server": {
"title": "Customise Server" "title": "Customise Server"
} }
......
...@@ -38,7 +38,15 @@ ...@@ -38,7 +38,15 @@
"created-at": "Created at", "created-at": "Created at",
"database": "Database", "database": "Database",
"day": "Day", "day": "Day",
"days": "Days", "days": {
"fri": "Fri",
"mon": "Mon",
"sat": "Sat",
"sun": "Sun",
"thu": "Thu",
"tue": "Tue",
"wed": "Wed"
},
"delete": "Delete", "delete": "Delete",
"description": "Description", "description": "Description",
"edit": "Edit", "edit": "Edit",
...@@ -108,15 +116,6 @@ ...@@ -108,15 +116,6 @@
"visibility": "Visibility", "visibility": "Visibility",
"yourself": "Yourself" "yourself": "Yourself"
}, },
"days": {
"fri": "Fri",
"mon": "Mon",
"sat": "Sat",
"sun": "Sun",
"thu": "Thu",
"tue": "Tue",
"wed": "Wed"
},
"editor": { "editor": {
"add-your-comment-here": "Add your comment here...", "add-your-comment-here": "Add your comment here...",
"any-thoughts": "Any thoughts...", "any-thoughts": "Any thoughts...",
...@@ -127,11 +126,6 @@ ...@@ -127,11 +126,6 @@
"saving": "Saving...", "saving": "Saving...",
"slash-commands": "Type `/` for commands" "slash-commands": "Type `/` for commands"
}, },
"filters": {
"has-code": "hasCode",
"has-link": "hasLink",
"has-task-list": "hasTaskList"
},
"inbox": { "inbox": {
"failed-to-load": "Failed to load inbox item", "failed-to-load": "Failed to load inbox item",
"memo-comment": "{{user}} has a comment on your {{memo}}.", "memo-comment": "{{user}} has a comment on your {{memo}}.",
...@@ -139,6 +133,11 @@ ...@@ -139,6 +133,11 @@
"no-unread": "No unread notifications", "no-unread": "No unread notifications",
"unread": "Unread" "unread": "Unread"
}, },
"live-update": {
"connected": "Live updates active",
"connecting": "Connecting to live updates...",
"disconnected": "Live updates unavailable"
},
"markdown": { "markdown": {
"checkbox": "Checkbox", "checkbox": "Checkbox",
"code-block": "Code block", "code-block": "Code block",
...@@ -162,7 +161,12 @@ ...@@ -162,7 +161,12 @@
"direction-asc": "Ascending", "direction-asc": "Ascending",
"direction-desc": "Descending", "direction-desc": "Descending",
"display-time": "Display Time", "display-time": "Display Time",
"filters": "Filters", "filters": {
"has-code": "hasCode",
"has-link": "hasLink",
"has-task-list": "hasTaskList",
"label": "Filters"
},
"links": "Links", "links": "Links",
"list": "List", "list": "List",
"load-more": "Load more", "load-more": "Load more",
...@@ -171,6 +175,31 @@ ...@@ -171,6 +175,31 @@
"no-memos": "No memos.", "no-memos": "No memos.",
"order-by": "Order By", "order-by": "Order By",
"search-placeholder": "Search memos...", "search-placeholder": "Search memos...",
"share": {
"active-links": "Active share links",
"copied": "Copied!",
"copy": "Copy link",
"create-failed": "Failed to create share link",
"create-link": "Create new link",
"creating": "Creating…",
"expiry-1-day": "1 day",
"expiry-30-days": "30 days",
"expiry-7-days": "7 days",
"expiry-label": "Expires",
"expiry-never": "Never",
"expires-on": "Expires {{date}}",
"invalid-link": "This link is invalid or has expired.",
"never-expires": "Never expires",
"no-links": "No share links yet. Create one below.",
"open-panel": "Manage share links",
"revoke": "Revoke",
"revoke-failed": "Failed to revoke link",
"revoked": "Share link revoked",
"section-label": "Sharing",
"share": "Share",
"shared-by": "Shared by {{creator}}",
"title": "Share this memo"
},
"show-less": "Show less", "show-less": "Show less",
"show-more": "Show more", "show-more": "Show more",
"to-do": "To-do", "to-do": "To-do",
...@@ -251,7 +280,7 @@ ...@@ -251,7 +280,7 @@
"go-to-home": "Go to Home" "go-to-home": "Go to Home"
}, },
"setting": { "setting": {
"access-token-section": { "access-token": {
"access-token-copied-to-clipboard": "Access token copied to clipboard", "access-token-copied-to-clipboard": "Access token copied to clipboard",
"access-token-deleted": "Access token `{{description}}` deleted", "access-token-deleted": "Access token `{{description}}` deleted",
"access-token-deletion": "Are you sure you want to delete access token `{{description}}`?", "access-token-deletion": "Are you sure you want to delete access token `{{description}}`?",
...@@ -272,7 +301,7 @@ ...@@ -272,7 +301,7 @@
"title": "Access Tokens", "title": "Access Tokens",
"token": "Token" "token": "Token"
}, },
"account-section": { "account": {
"change-password": "Change password", "change-password": "Change password",
"email-note": "Optional", "email-note": "Optional",
"export-memos": "Export Memos", "export-memos": "Export Memos",
...@@ -285,7 +314,7 @@ ...@@ -285,7 +314,7 @@
"update-information": "Update Information", "update-information": "Update Information",
"username-note": "Used to sign in" "username-note": "Used to sign in"
}, },
"instance-section": { "instance": {
"disallow-change-nickname": "Disallow changing nickname", "disallow-change-nickname": "Disallow changing nickname",
"disallow-change-username": "Disallow changing username", "disallow-change-username": "Disallow changing username",
"disallow-password-auth": "Disallow password auth", "disallow-password-auth": "Disallow password auth",
...@@ -295,9 +324,7 @@ ...@@ -295,9 +324,7 @@
"sunday": "Sunday", "sunday": "Sunday",
"week-start-day": "Week start day" "week-start-day": "Week start day"
}, },
"member": "Member", "member": {
"member-list": "Member list",
"member-section": {
"admin": "Admin", "admin": "Admin",
"archive-member": "Archive member", "archive-member": "Archive member",
"archive-success": "{{username}} archived successfully", "archive-success": "{{username}} archived successfully",
...@@ -308,31 +335,34 @@ ...@@ -308,31 +335,34 @@
"delete-success": "{{username}} deleted successfully", "delete-success": "{{username}} deleted successfully",
"delete-warning": "Are you sure you want to delete {{username}}?", "delete-warning": "Are you sure you want to delete {{username}}?",
"delete-warning-description": "THIS ACTION IS IRREVERSIBLE", "delete-warning-description": "THIS ACTION IS IRREVERSIBLE",
"label": "Member",
"list-title": "Member list",
"restore-success": "{{username}} restored successfully", "restore-success": "{{username}} restored successfully",
"user": "User" "user": "User"
}, },
"memo-related": "Memo", "memo": {
"memo-related-settings": {
"content-length-limit": "Content length limit (Byte)", "content-length-limit": "Content length limit (Byte)",
"enable-blur-nsfw-content": "Enable sensitive content (NSFW) blurring", "enable-blur-nsfw-content": "Enable sensitive content (NSFW) blurring",
"enable-memo-comments": "Enable memo comments", "enable-memo-comments": "Enable memo comments",
"enable-memo-location": "Enable memo location", "enable-memo-location": "Enable memo location",
"label": "Memo",
"reactions": "Reactions", "reactions": "Reactions",
"title": "Memo related settings" "title": "Memo related settings"
}, },
"my-account": "My Account", "my-account": {
"preference": "Preferences", "label": "My Account"
"preference-section": { },
"preference": {
"default-memo-sort-option": "Memo display time", "default-memo-sort-option": "Memo display time",
"default-memo-visibility": "Default memo visibility", "default-memo-visibility": "Default memo visibility",
"label": "Preferences",
"theme": "Theme" "theme": "Theme"
}, },
"shortcut": { "shortcut": {
"delete-confirm": "Are you sure you want to delete shortcut `{{title}}`?", "delete-confirm": "Are you sure you want to delete shortcut `{{title}}`?",
"delete-success": "Shortcut `{{title}}` deleted successfully" "delete-success": "Shortcut `{{title}}` deleted successfully"
}, },
"sso": "SSO", "sso": {
"sso-section": {
"authorization-endpoint": "Authorization endpoint", "authorization-endpoint": "Authorization endpoint",
"client-id": "Client ID", "client-id": "Client ID",
"client-secret": "Client secret", "client-secret": "Client secret",
...@@ -344,6 +374,7 @@ ...@@ -344,6 +374,7 @@
"display-name": "Display Name", "display-name": "Display Name",
"identifier": "Identifier", "identifier": "Identifier",
"identifier-filter": "Identifier Filter", "identifier-filter": "Identifier Filter",
"label": "SSO",
"no-sso-found": "No SSO found.", "no-sso-found": "No SSO found.",
"redirect-url": "Redirect URL", "redirect-url": "Redirect URL",
"scopes": "Scopes", "scopes": "Scopes",
...@@ -356,8 +387,7 @@ ...@@ -356,8 +387,7 @@
"update-sso": "Update SSO", "update-sso": "Update SSO",
"user-endpoint": "User endpoint" "user-endpoint": "User endpoint"
}, },
"storage": "Storage", "storage": {
"storage-section": {
"accesskey": "Access key", "accesskey": "Access key",
"accesskey-placeholder": "Access key / Access ID", "accesskey-placeholder": "Access key / Access ID",
"bucket": "Bucket", "bucket": "Bucket",
...@@ -368,6 +398,7 @@ ...@@ -368,6 +398,7 @@
"delete-storage": "Delete Storage", "delete-storage": "Delete Storage",
"endpoint": "Endpoint", "endpoint": "Endpoint",
"filepath-template": "Filepath template", "filepath-template": "Filepath template",
"label": "Storage",
"local-storage-path": "Local storage path", "local-storage-path": "Local storage path",
"path": "Storage Path", "path": "Storage Path",
"path-description": "You can use the same dynamic variables from local storage, like {filename}", "path-description": "You can use the same dynamic variables from local storage, like {filename}",
...@@ -391,8 +422,7 @@ ...@@ -391,8 +422,7 @@
"url-suffix-placeholder": "Custom URL suffix, optional", "url-suffix-placeholder": "Custom URL suffix, optional",
"warning-text": "Are you sure you want to delete storage service `{{name}}`? THIS ACTION IS IRREVERSIBLE" "warning-text": "Are you sure you want to delete storage service `{{name}}`? THIS ACTION IS IRREVERSIBLE"
}, },
"system": "System", "system": {
"system-section": {
"additional-script": "Additional script", "additional-script": "Additional script",
"additional-script-placeholder": "Additional JavaScript code", "additional-script-placeholder": "Additional JavaScript code",
"additional-style": "Additional style", "additional-style": "Additional style",
...@@ -406,12 +436,13 @@ ...@@ -406,12 +436,13 @@
}, },
"disable-password-login": "Disable password login", "disable-password-login": "Disable password login",
"disable-password-login-final-warning": "Please type `CONFIRM` if you know what you are doing.", "disable-password-login-final-warning": "Please type `CONFIRM` if you know what you are doing.",
"disable-password-login-warning": "This will disable password login for all users. It is not possible to log in without reverting this setting in the database if your configured identity providers fail. Youll also have to be extra careful when removing an identity provider", "disable-password-login-warning": "This will disable password login for all users. It is not possible to log in without reverting this setting in the database if your configured identity providers fail. You'll also have to be extra careful when removing an identity provider",
"display-with-updated-time": "Display with updated time", "display-with-updated-time": "Display with updated time",
"enable-auto-compact": "Enable auto compact", "enable-auto-compact": "Enable auto compact",
"enable-double-click-to-edit": "Enable double click to edit", "enable-double-click-to-edit": "Enable double click to edit",
"enable-password-login": "Enable password login", "enable-password-login": "Enable password login",
"enable-password-login-warning": "This will enable password login for all users. Continue only if you want to users to be able to log in using both SSO and password", "enable-password-login-warning": "This will enable password login for all users. Continue only if you want to users to be able to log in using both SSO and password",
"label": "System",
"max-upload-size": "Maximum upload size (MiB)", "max-upload-size": "Maximum upload size (MiB)",
"max-upload-size-hint": "Recommended value is 32 MiB.", "max-upload-size-hint": "Recommended value is 32 MiB.",
"removed-completed-task-list-items": "Enable removal of completed task list items", "removed-completed-task-list-items": "Enable removal of completed task list items",
...@@ -419,7 +450,7 @@ ...@@ -419,7 +450,7 @@
"title": "General" "title": "General"
}, },
"version": "Version", "version": "Version",
"webhook-section": { "webhook": {
"create-dialog": { "create-dialog": {
"an-easy-to-remember-name": "An easy-to-remember name", "an-easy-to-remember-name": "An easy-to-remember name",
"create-webhook": "Create webhook", "create-webhook": "Create webhook",
...@@ -462,35 +493,5 @@ ...@@ -462,35 +493,5 @@
"select-visibility": "Visibility", "select-visibility": "Visibility",
"tags": "Tags", "tags": "Tags",
"upload-attachment": "Upload Attachment(s)" "upload-attachment": "Upload Attachment(s)"
},
"sse": {
"connected": "Live updates active",
"connecting": "Connecting to live updates...",
"disconnected": "Live updates unavailable"
},
"memo-share": {
"share": "Share",
"section-label": "Sharing",
"open-panel": "Manage share links",
"title": "Share this memo",
"active-links": "Active share links",
"no-links": "No share links yet. Create one below.",
"create-link": "Create new link",
"copy": "Copy link",
"copied": "Copied!",
"revoke": "Revoke",
"expiry-label": "Expires",
"expiry-never": "Never",
"expiry-1-day": "1 day",
"expiry-7-days": "7 days",
"expiry-30-days": "30 days",
"never-expires": "Never expires",
"expires-on": "Expires {{date}}",
"creating": "Creating…",
"revoked": "Share link revoked",
"revoke-failed": "Failed to revoke link",
"create-failed": "Failed to create share link",
"invalid-link": "This link is invalid or has expired.",
"shared-by": "Shared by {{creator}}"
} }
} }
...@@ -38,7 +38,15 @@ ...@@ -38,7 +38,15 @@
"created-at": "Creado en", "created-at": "Creado en",
"database": "Base de datos", "database": "Base de datos",
"day": "Día", "day": "Día",
"days": "Días", "days": {
"fri": "Vie",
"mon": "Lun",
"sat": "Sáb",
"sun": "Dom",
"thu": "Jue",
"tue": "Mar",
"wed": "Mié"
},
"delete": "Eliminar", "delete": "Eliminar",
"description": "Descripción", "description": "Descripción",
"edit": "Editar", "edit": "Editar",
...@@ -108,15 +116,6 @@ ...@@ -108,15 +116,6 @@
"visibility": "Visibilidad", "visibility": "Visibilidad",
"yourself": "Tú mismo" "yourself": "Tú mismo"
}, },
"days": {
"fri": "Vie",
"mon": "Lun",
"sat": "Sáb",
"sun": "Dom",
"thu": "Jue",
"tue": "Mar",
"wed": "Mié"
},
"editor": { "editor": {
"add-your-comment-here": "Agrega tu comentario aquí...", "add-your-comment-here": "Agrega tu comentario aquí...",
"any-thoughts": "Alguna idea...", "any-thoughts": "Alguna idea...",
...@@ -127,11 +126,6 @@ ...@@ -127,11 +126,6 @@
"saving": "Guardando...", "saving": "Guardando...",
"slash-commands": "Escribe `/` para comandos" "slash-commands": "Escribe `/` para comandos"
}, },
"filters": {
"has-code": "tieneCódigo",
"has-link": "tieneEnlace",
"has-task-list": "tieneListaTareas"
},
"inbox": { "inbox": {
"failed-to-load": "Error al cargar el elemento de bandeja de entrada", "failed-to-load": "Error al cargar el elemento de bandeja de entrada",
"memo-comment": "{{user}} tiene un comentario sobre tu {{memo}}.", "memo-comment": "{{user}} tiene un comentario sobre tu {{memo}}.",
...@@ -162,7 +156,11 @@ ...@@ -162,7 +156,11 @@
"direction-asc": "Ascendente", "direction-asc": "Ascendente",
"direction-desc": "Descendente", "direction-desc": "Descendente",
"display-time": "Hora de visualización", "display-time": "Hora de visualización",
"filters": "Filtros", "filters": {
"has-code": "tieneCódigo",
"has-link": "tieneEnlace",
"has-task-list": "tieneListaTareas"
},
"links": "Enlaces", "links": "Enlaces",
"list": "Lista", "list": "Lista",
"load-more": "Cargar más", "load-more": "Cargar más",
...@@ -251,53 +249,7 @@ ...@@ -251,53 +249,7 @@
"go-to-home": "Ir al inicio" "go-to-home": "Ir al inicio"
}, },
"setting": { "setting": {
"access-token-section": { "member": {
"access-token-copied-to-clipboard": "Token de acceso copiado al portapapeles",
"access-token-deleted": "Token de acceso `{{description}}` eliminado",
"access-token-deletion": "¿Estás seguro de que quieres eliminar el token de acceso `{{description}}`?",
"access-token-deletion-description": "Esta acción es irreversible. Necesitarás actualizar cualquier servicio que use este token para usar uno nuevo.",
"create-dialog": {
"access-token-created": "Token de acceso `{{description}}` creado",
"create-access-token": "Crear token de acceso",
"created-at": "Creado en",
"description": "Descripción",
"duration-1m": "1 mes",
"duration-8h": "8 horas",
"duration-never": "Nunca",
"expiration": "Expiración",
"expires-at": "Expira en",
"some-description": "Alguna descripción..."
},
"description": "Lista de todos los tokens de acceso de tu cuenta.",
"title": "Tokens de acceso",
"token": "Token"
},
"account-section": {
"change-password": "Cambiar contraseña",
"email-note": "Opcional",
"export-memos": "Exportar memos",
"nickname-note": "Mostrado en el banner",
"openapi-reset": "Restablecer clave OpenAPI",
"openapi-sample-post": "Hola #memos desde {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Restablecer API",
"title": "Información de la cuenta",
"update-information": "Actualizar información",
"username-note": "Usado para iniciar sesión"
},
"instance-section": {
"disallow-change-nickname": "No permitir cambiar apodo",
"disallow-change-username": "No permitir cambiar nombre de usuario",
"disallow-password-auth": "No permitir autenticación por contraseña",
"disallow-user-registration": "No permitir registro de usuarios",
"monday": "Lunes",
"saturday": "Sábado",
"sunday": "Domingo",
"week-start-day": "Día de inicio de semana"
},
"member": "Miembro",
"member-list": "Lista de miembros",
"member-section": {
"admin": "Administrador", "admin": "Administrador",
"archive-member": "Archivar miembro", "archive-member": "Archivar miembro",
"archive-success": "{{username}} archivado correctamente", "archive-success": "{{username}} archivado correctamente",
...@@ -309,30 +261,24 @@ ...@@ -309,30 +261,24 @@
"delete-warning": "¿Estás seguro de eliminar a {{username}}? ESTA ACCIÓN ES IRREVERSIBLE", "delete-warning": "¿Estás seguro de eliminar a {{username}}? ESTA ACCIÓN ES IRREVERSIBLE",
"delete-warning-description": "ESTA ACCIÓN ES IRREVERSIBLE", "delete-warning-description": "ESTA ACCIÓN ES IRREVERSIBLE",
"restore-success": "{{username}} restaurado correctamente", "restore-success": "{{username}} restaurado correctamente",
"user": "Usuario" "user": "Usuario",
"label": "Miembro",
"list-title": "Lista de miembros"
}, },
"memo-related": "Memo", "my-account": {
"memo-related-settings": { "label": "Mi cuenta"
"content-length-limit": "Límite de longitud de contenido (Bytes)",
"enable-blur-nsfw-content": "Habilitar difuminado de contenido sensible (NSFW)",
"enable-memo-comments": "Habilitar comentarios en los memos",
"enable-memo-location": "Habilitar ubicación del memo",
"reactions": "Reacciones",
"title": "Configuración de memos"
}, },
"my-account": "Mi cuenta", "preference": {
"preference": "Preferencias",
"preference-section": {
"default-memo-sort-option": "Hora de visualización del memo", "default-memo-sort-option": "Hora de visualización del memo",
"default-memo-visibility": "Visibilidad predeterminada del memo", "default-memo-visibility": "Visibilidad predeterminada del memo",
"theme": "Tema" "theme": "Tema",
"label": "Preferencias"
}, },
"shortcut": { "shortcut": {
"delete-confirm": "¿Estás seguro de que quieres eliminar el atajo `{{title}}`?", "delete-confirm": "¿Estás seguro de que quieres eliminar el atajo `{{title}}`?",
"delete-success": "Atajo `{{title}}` eliminado correctamente" "delete-success": "Atajo `{{title}}` eliminado correctamente"
}, },
"sso": "SSO", "sso": {
"sso-section": {
"authorization-endpoint": "Punto final de autorización", "authorization-endpoint": "Punto final de autorización",
"client-id": "ID del cliente", "client-id": "ID del cliente",
"client-secret": "Secreto del cliente", "client-secret": "Secreto del cliente",
...@@ -354,10 +300,10 @@ ...@@ -354,10 +300,10 @@
"template": "Plantilla", "template": "Plantilla",
"token-endpoint": "Punto final de token", "token-endpoint": "Punto final de token",
"update-sso": "Actualizar SSO", "update-sso": "Actualizar SSO",
"user-endpoint": "Punto final de usuario" "user-endpoint": "Punto final de usuario",
"label": "SSO"
}, },
"storage": "Almacenamiento", "storage": {
"storage-section": {
"accesskey": "Clave de acceso", "accesskey": "Clave de acceso",
"accesskey-placeholder": "Clave de acceso / ID de acceso", "accesskey-placeholder": "Clave de acceso / ID de acceso",
"bucket": "Bucket", "bucket": "Bucket",
...@@ -389,10 +335,10 @@ ...@@ -389,10 +335,10 @@
"url-prefix-placeholder": "Prefijo de URL personalizado, opcional", "url-prefix-placeholder": "Prefijo de URL personalizado, opcional",
"url-suffix": "Sufijo de URL", "url-suffix": "Sufijo de URL",
"url-suffix-placeholder": "Sufijo de URL personalizado, opcional", "url-suffix-placeholder": "Sufijo de URL personalizado, opcional",
"warning-text": "¿Estás seguro de eliminar el servicio de almacenamiento \"{{name}}\"? ESTA ACCIÓN ES IRREVERSIBLE" "warning-text": "¿Estás seguro de eliminar el servicio de almacenamiento \"{{name}}\"? ESTA ACCIÓN ES IRREVERSIBLE",
"label": "Almacenamiento"
}, },
"system": "Sistema", "system": {
"system-section": {
"additional-script": "Script adicional", "additional-script": "Script adicional",
"additional-script-placeholder": "Código JavaScript adicional", "additional-script-placeholder": "Código JavaScript adicional",
"additional-style": "Estilo adicional", "additional-style": "Estilo adicional",
...@@ -416,10 +362,64 @@ ...@@ -416,10 +362,64 @@
"max-upload-size-hint": "El valor recomendado es 32 MiB.", "max-upload-size-hint": "El valor recomendado es 32 MiB.",
"removed-completed-task-list-items": "Habilitar eliminación de tareas completadas", "removed-completed-task-list-items": "Habilitar eliminación de tareas completadas",
"server-name": "Nombre del servidor", "server-name": "Nombre del servidor",
"title": "General" "title": "General",
"label": "Sistema"
}, },
"version": "Versión", "version": "Versión",
"webhook-section": { "access-token": {
"access-token-copied-to-clipboard": "Token de acceso copiado al portapapeles",
"access-token-deleted": "Token de acceso `{{description}}` eliminado",
"access-token-deletion": "¿Estás seguro de que quieres eliminar el token de acceso `{{description}}`?",
"access-token-deletion-description": "Esta acción es irreversible. Necesitarás actualizar cualquier servicio que use este token para usar uno nuevo.",
"create-dialog": {
"access-token-created": "Token de acceso `{{description}}` creado",
"create-access-token": "Crear token de acceso",
"created-at": "Creado en",
"description": "Descripción",
"duration-1m": "1 mes",
"duration-8h": "8 horas",
"duration-never": "Nunca",
"expiration": "Expiración",
"expires-at": "Expira en",
"some-description": "Alguna descripción..."
},
"description": "Lista de todos los tokens de acceso de tu cuenta.",
"title": "Tokens de acceso",
"token": "Token"
},
"account": {
"change-password": "Cambiar contraseña",
"email-note": "Opcional",
"export-memos": "Exportar memos",
"nickname-note": "Mostrado en el banner",
"openapi-reset": "Restablecer clave OpenAPI",
"openapi-sample-post": "Hola #memos desde {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Restablecer API",
"title": "Información de la cuenta",
"update-information": "Actualizar información",
"username-note": "Usado para iniciar sesión"
},
"instance": {
"disallow-change-nickname": "No permitir cambiar apodo",
"disallow-change-username": "No permitir cambiar nombre de usuario",
"disallow-password-auth": "No permitir autenticación por contraseña",
"disallow-user-registration": "No permitir registro de usuarios",
"monday": "Lunes",
"saturday": "Sábado",
"sunday": "Domingo",
"week-start-day": "Día de inicio de semana"
},
"memo": {
"content-length-limit": "Límite de longitud de contenido (Bytes)",
"enable-blur-nsfw-content": "Habilitar difuminado de contenido sensible (NSFW)",
"enable-memo-comments": "Habilitar comentarios en los memos",
"enable-memo-location": "Habilitar ubicación del memo",
"reactions": "Reacciones",
"title": "Configuración de memos",
"label": "Memo"
},
"webhook": {
"create-dialog": { "create-dialog": {
"an-easy-to-remember-name": "Un nombre fácil de recordar", "an-easy-to-remember-name": "Un nombre fácil de recordar",
"create-webhook": "Crear webhook", "create-webhook": "Crear webhook",
......
This diff is collapsed.
...@@ -38,7 +38,15 @@ ...@@ -38,7 +38,15 @@
"created-at": "Créé le", "created-at": "Créé le",
"database": "Base de données", "database": "Base de données",
"day": "Jour", "day": "Jour",
"days": "Jours", "days": {
"fri": "Ven",
"mon": "Lun",
"sat": "Sam",
"sun": "Dim",
"thu": "Jeu",
"tue": "Mar",
"wed": "Mer"
},
"delete": "Supprimer", "delete": "Supprimer",
"description": "Description", "description": "Description",
"edit": "Éditer", "edit": "Éditer",
...@@ -108,15 +116,6 @@ ...@@ -108,15 +116,6 @@
"visibility": "Visibilité", "visibility": "Visibilité",
"yourself": "Vous-même" "yourself": "Vous-même"
}, },
"days": {
"fri": "Ven",
"mon": "Lun",
"sat": "Sam",
"sun": "Dim",
"thu": "Jeu",
"tue": "Mar",
"wed": "Mer"
},
"editor": { "editor": {
"add-your-comment-here": "Ajoutez votre commentaire ici...", "add-your-comment-here": "Ajoutez votre commentaire ici...",
"any-thoughts": "Des idées...", "any-thoughts": "Des idées...",
...@@ -127,11 +126,6 @@ ...@@ -127,11 +126,6 @@
"saving": "Enregistrement...", "saving": "Enregistrement...",
"slash-commands": "Tapez `/` pour les commandes" "slash-commands": "Tapez `/` pour les commandes"
}, },
"filters": {
"has-code": "aCode",
"has-link": "aLien",
"has-task-list": "aListeTâches"
},
"inbox": { "inbox": {
"failed-to-load": "Échec du chargement de l'élément", "failed-to-load": "Échec du chargement de l'élément",
"memo-comment": "{{user}} a commenté votre {{memo}}.", "memo-comment": "{{user}} a commenté votre {{memo}}.",
...@@ -162,7 +156,11 @@ ...@@ -162,7 +156,11 @@
"direction-asc": "Ascendant", "direction-asc": "Ascendant",
"direction-desc": "Descendant", "direction-desc": "Descendant",
"display-time": "Afficher l'heure", "display-time": "Afficher l'heure",
"filters": "Filtres", "filters": {
"has-code": "aCode",
"has-link": "aLien",
"has-task-list": "aListeTâches"
},
"links": "Liens", "links": "Liens",
"list": "Liste", "list": "Liste",
"load-more": "Charger plus", "load-more": "Charger plus",
...@@ -251,53 +249,7 @@ ...@@ -251,53 +249,7 @@
"go-to-home": "Aller à l'accueil" "go-to-home": "Aller à l'accueil"
}, },
"setting": { "setting": {
"access-token-section": { "member": {
"access-token-copied-to-clipboard": "Jeton d'accès copié dans le presse-papiers",
"access-token-deleted": "Jeton d'accès `{{description}}` supprimé",
"access-token-deletion": "Êtes-vous sûr de vouloir supprimer le jeton d'accès `{{description}}` ?",
"access-token-deletion-description": "Cette action est irréversible. Vous devrez mettre à jour tous les services utilisant ce jeton.",
"create-dialog": {
"access-token-created": "Jeton d'accès `{{description}}` créé",
"create-access-token": "Créer un jeton d'accès",
"created-at": "Créé le",
"description": "Description",
"duration-1m": "1 mois",
"duration-8h": "8 heures",
"duration-never": "Jamais",
"expiration": "Expiration",
"expires-at": "Expire le",
"some-description": "Une description..."
},
"description": "Liste de tous les jetons d'accès de votre compte.",
"title": "Jetons d'accès",
"token": "Jeton"
},
"account-section": {
"change-password": "Changer le mot de passe",
"email-note": "Optionnel",
"export-memos": "Exporter les notes",
"nickname-note": "Affiché dans la bannière",
"openapi-reset": "Réinitialiser la clé OpenAPI",
"openapi-sample-post": "Bonjour #notes depuis {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Réinitialiser l'API",
"title": "Informations du compte",
"update-information": "Mettre à jour les informations",
"username-note": "Utilisé pour se connecter"
},
"instance-section": {
"disallow-change-nickname": "Interdire le changement de surnom",
"disallow-change-username": "Interdire le changement de nom d'utilisateur",
"disallow-password-auth": "Interdire l'authentification par mot de passe",
"disallow-user-registration": "Interdire l'inscription des utilisateurs",
"monday": "Lundi",
"saturday": "Samedi",
"sunday": "Dimanche",
"week-start-day": "Jour de début de semaine"
},
"member": "Membre",
"member-list": "Liste des membres",
"member-section": {
"admin": "Admin", "admin": "Admin",
"archive-member": "Archiver le membre", "archive-member": "Archiver le membre",
"archive-success": "{{username}} archivé avec succès", "archive-success": "{{username}} archivé avec succès",
...@@ -309,30 +261,24 @@ ...@@ -309,30 +261,24 @@
"delete-warning": "Êtes-vous sûr de vouloir supprimer {{username}} ? CETTE ACTION EST IRRÉVERSIBLE", "delete-warning": "Êtes-vous sûr de vouloir supprimer {{username}} ? CETTE ACTION EST IRRÉVERSIBLE",
"delete-warning-description": "CETTE ACTION EST IRRÉVERSIBLE", "delete-warning-description": "CETTE ACTION EST IRRÉVERSIBLE",
"restore-success": "{{username}} restauré avec succès", "restore-success": "{{username}} restauré avec succès",
"user": "Utilisateur" "user": "Utilisateur",
"label": "Membre",
"list-title": "Liste des membres"
}, },
"memo-related": "Note", "my-account": {
"memo-related-settings": { "label": "Mon compte"
"content-length-limit": "Limite de longueur du contenu (octets)",
"enable-blur-nsfw-content": "Activer le flou pour le contenu sensible (NSFW)",
"enable-memo-comments": "Activer les commentaires sur les notes",
"enable-memo-location": "Activer la localisation des notes",
"reactions": "Réactions",
"title": "Paramètres des notes"
}, },
"my-account": "Mon compte", "preference": {
"preference": "Préférences",
"preference-section": {
"default-memo-sort-option": "Date d'affichage de la note", "default-memo-sort-option": "Date d'affichage de la note",
"default-memo-visibility": "Visibilité par défaut de la note", "default-memo-visibility": "Visibilité par défaut de la note",
"theme": "Thème" "theme": "Thème",
"label": "Préférences"
}, },
"shortcut": { "shortcut": {
"delete-confirm": "Êtes-vous sûr de vouloir supprimer le raccourci `{{title}}` ?", "delete-confirm": "Êtes-vous sûr de vouloir supprimer le raccourci `{{title}}` ?",
"delete-success": "Raccourci `{{title}}` supprimé avec succès" "delete-success": "Raccourci `{{title}}` supprimé avec succès"
}, },
"sso": "SSO", "sso": {
"sso-section": {
"authorization-endpoint": "Point de terminaison d'autorisation", "authorization-endpoint": "Point de terminaison d'autorisation",
"client-id": "ID client", "client-id": "ID client",
"client-secret": "Secret client", "client-secret": "Secret client",
...@@ -354,10 +300,10 @@ ...@@ -354,10 +300,10 @@
"template": "Modèle", "template": "Modèle",
"token-endpoint": "Point de terminaison du jeton", "token-endpoint": "Point de terminaison du jeton",
"update-sso": "Mettre à jour SSO", "update-sso": "Mettre à jour SSO",
"user-endpoint": "Point de terminaison utilisateur" "user-endpoint": "Point de terminaison utilisateur",
"label": "SSO"
}, },
"storage": "Stockage", "storage": {
"storage-section": {
"accesskey": "Clé d'accès", "accesskey": "Clé d'accès",
"accesskey-placeholder": "Clé d'accès / ID d'accès", "accesskey-placeholder": "Clé d'accès / ID d'accès",
"bucket": "Bucket", "bucket": "Bucket",
...@@ -389,10 +335,10 @@ ...@@ -389,10 +335,10 @@
"url-prefix-placeholder": "Préfixe d'URL personnalisé, optionnel", "url-prefix-placeholder": "Préfixe d'URL personnalisé, optionnel",
"url-suffix": "Suffixe d'URL", "url-suffix": "Suffixe d'URL",
"url-suffix-placeholder": "Suffixe d'URL personnalisé, optionnel", "url-suffix-placeholder": "Suffixe d'URL personnalisé, optionnel",
"warning-text": "Êtes-vous sûr de vouloir supprimer le service de stockage \"{{name}}\" ? CETTE ACTION EST IRRÉVERSIBLE" "warning-text": "Êtes-vous sûr de vouloir supprimer le service de stockage \"{{name}}\" ? CETTE ACTION EST IRRÉVERSIBLE",
"label": "Stockage"
}, },
"system": "Système", "system": {
"system-section": {
"additional-script": "Script additionnel", "additional-script": "Script additionnel",
"additional-script-placeholder": "Code JavaScript additionnel", "additional-script-placeholder": "Code JavaScript additionnel",
"additional-style": "Style additionnel", "additional-style": "Style additionnel",
...@@ -416,10 +362,64 @@ ...@@ -416,10 +362,64 @@
"max-upload-size-hint": "La valeur recommandée est 32 MiB.", "max-upload-size-hint": "La valeur recommandée est 32 MiB.",
"removed-completed-task-list-items": "Activer la suppression des tâches terminées", "removed-completed-task-list-items": "Activer la suppression des tâches terminées",
"server-name": "Nom du serveur", "server-name": "Nom du serveur",
"title": "Général" "title": "Général",
"label": "Système"
}, },
"version": "Version", "version": "Version",
"webhook-section": { "access-token": {
"access-token-copied-to-clipboard": "Jeton d'accès copié dans le presse-papiers",
"access-token-deleted": "Jeton d'accès `{{description}}` supprimé",
"access-token-deletion": "Êtes-vous sûr de vouloir supprimer le jeton d'accès `{{description}}` ?",
"access-token-deletion-description": "Cette action est irréversible. Vous devrez mettre à jour tous les services utilisant ce jeton.",
"create-dialog": {
"access-token-created": "Jeton d'accès `{{description}}` créé",
"create-access-token": "Créer un jeton d'accès",
"created-at": "Créé le",
"description": "Description",
"duration-1m": "1 mois",
"duration-8h": "8 heures",
"duration-never": "Jamais",
"expiration": "Expiration",
"expires-at": "Expire le",
"some-description": "Une description..."
},
"description": "Liste de tous les jetons d'accès de votre compte.",
"title": "Jetons d'accès",
"token": "Jeton"
},
"account": {
"change-password": "Changer le mot de passe",
"email-note": "Optionnel",
"export-memos": "Exporter les notes",
"nickname-note": "Affiché dans la bannière",
"openapi-reset": "Réinitialiser la clé OpenAPI",
"openapi-sample-post": "Bonjour #notes depuis {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Réinitialiser l'API",
"title": "Informations du compte",
"update-information": "Mettre à jour les informations",
"username-note": "Utilisé pour se connecter"
},
"instance": {
"disallow-change-nickname": "Interdire le changement de surnom",
"disallow-change-username": "Interdire le changement de nom d'utilisateur",
"disallow-password-auth": "Interdire l'authentification par mot de passe",
"disallow-user-registration": "Interdire l'inscription des utilisateurs",
"monday": "Lundi",
"saturday": "Samedi",
"sunday": "Dimanche",
"week-start-day": "Jour de début de semaine"
},
"memo": {
"content-length-limit": "Limite de longueur du contenu (octets)",
"enable-blur-nsfw-content": "Activer le flou pour le contenu sensible (NSFW)",
"enable-memo-comments": "Activer les commentaires sur les notes",
"enable-memo-location": "Activer la localisation des notes",
"reactions": "Réactions",
"title": "Paramètres des notes",
"label": "Note"
},
"webhook": {
"create-dialog": { "create-dialog": {
"an-easy-to-remember-name": "Un nom facile à retenir", "an-easy-to-remember-name": "Un nom facile à retenir",
"create-webhook": "Créer un webhook", "create-webhook": "Créer un webhook",
......
...@@ -38,7 +38,15 @@ ...@@ -38,7 +38,15 @@
"created-at": "Creada o", "created-at": "Creada o",
"database": "Base de datos", "database": "Base de datos",
"day": "Día", "day": "Día",
"days": "Días", "days": {
"fri": "Ven",
"mon": "Lun",
"sat": "Sáb",
"sun": "Dom",
"thu": "Xov",
"tue": "Mar",
"wed": "Mér"
},
"delete": "Eliminar", "delete": "Eliminar",
"description": "Descrición", "description": "Descrición",
"edit": "Editar", "edit": "Editar",
...@@ -108,15 +116,6 @@ ...@@ -108,15 +116,6 @@
"visibility": "Visibilidade", "visibility": "Visibilidade",
"yourself": "Ti" "yourself": "Ti"
}, },
"days": {
"fri": "Ven",
"mon": "Lun",
"sat": "Sáb",
"sun": "Dom",
"thu": "Xov",
"tue": "Mar",
"wed": "Mér"
},
"editor": { "editor": {
"add-your-comment-here": "Engade aquí o comentario...", "add-your-comment-here": "Engade aquí o comentario...",
"any-thoughts": "O que pensas...", "any-thoughts": "O que pensas...",
...@@ -127,11 +126,6 @@ ...@@ -127,11 +126,6 @@
"saving": "Gardando...", "saving": "Gardando...",
"slash-commands": "Escribe `/` para ordes" "slash-commands": "Escribe `/` para ordes"
}, },
"filters": {
"has-code": "hasCode",
"has-link": "hasLink",
"has-task-list": "hasTaskList"
},
"inbox": { "inbox": {
"failed-to-load": "Fallou a carga do elemento da caixa de entrada", "failed-to-load": "Fallou a carga do elemento da caixa de entrada",
"memo-comment": "{{user}} fixo un comentario en {{memo}}.", "memo-comment": "{{user}} fixo un comentario en {{memo}}.",
...@@ -162,7 +156,11 @@ ...@@ -162,7 +156,11 @@
"direction-asc": "Ascendente", "direction-asc": "Ascendente",
"direction-desc": "Descendente", "direction-desc": "Descendente",
"display-time": "Mostrar hora", "display-time": "Mostrar hora",
"filters": "Filtros", "filters": {
"has-code": "hasCode",
"has-link": "hasLink",
"has-task-list": "hasTaskList"
},
"links": "Ligazóns", "links": "Ligazóns",
"list": "Lista", "list": "Lista",
"load-more": "Cargar máis", "load-more": "Cargar máis",
...@@ -251,53 +249,7 @@ ...@@ -251,53 +249,7 @@
"go-to-home": "Ir ao Inicio" "go-to-home": "Ir ao Inicio"
}, },
"setting": { "setting": {
"access-token-section": { "member": {
"access-token-copied-to-clipboard": "Token de acceso copiado ao portapapeis",
"access-token-deleted": "Eliminouse o token de acceso `{{description}}`",
"access-token-deletion": "Tes certeza de querer eliminar o toke de acceso `{{description}}`?",
"access-token-deletion-description": "Esta acción non é reversible. Terás que actualizar o token de acceso en todos os servizos que utilicen o actual.",
"create-dialog": {
"access-token-created": "Creouse o token de acceso `{{description}}`",
"create-access-token": "Crear token de acceso",
"created-at": "Creado o",
"description": "Descrición",
"duration-1m": "1 mes",
"duration-8h": "8 horas",
"duration-never": "Nunca",
"expiration": "Caducidade",
"expires-at": "Caduca o",
"some-description": "Descrición..."
},
"description": "Lista con todos os tokens de acceso da túa conta.",
"title": "Tokens de acceso",
"token": "Token"
},
"account-section": {
"change-password": "Cambiar contrasinal",
"email-note": "Optativo",
"export-memos": "Exportar Memos",
"nickname-note": "Mostrado na cabeceira",
"openapi-reset": "Restablecer clave OpenAPI",
"openapi-sample-post": "Ola #memos desde {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Restablecer API",
"title": "Información da conta",
"update-information": "Actualizar información",
"username-note": "Utilizada para acceder"
},
"instance-section": {
"disallow-change-nickname": "Non permitir cambiar o alcume",
"disallow-change-username": "Non permitir cambiar o identificador",
"disallow-password-auth": "Desactivar acceso con contrasinal",
"disallow-user-registration": "Non permitir a creación de contas",
"monday": "Luns",
"saturday": "Sábado",
"sunday": "Domingo",
"week-start-day": "Comezo da semana"
},
"member": "Usuaria",
"member-list": "Lista de usuarias",
"member-section": {
"admin": "Admin", "admin": "Admin",
"archive-member": "Arquivar usuaria", "archive-member": "Arquivar usuaria",
"archive-success": "{{username}} arquivada correctamente", "archive-success": "{{username}} arquivada correctamente",
...@@ -309,30 +261,24 @@ ...@@ -309,30 +261,24 @@
"delete-warning": "Tes certeza de querer eliminar a {{username}}?", "delete-warning": "Tes certeza de querer eliminar a {{username}}?",
"delete-warning-description": "ESTA ACCIÓN NON É REVERSIBLE", "delete-warning-description": "ESTA ACCIÓN NON É REVERSIBLE",
"restore-success": "{{username}} restablecida correctamente", "restore-success": "{{username}} restablecida correctamente",
"user": "Usuaria" "user": "Usuaria",
"label": "Usuaria",
"list-title": "Lista de usuarias"
}, },
"memo-related": "Memo", "my-account": {
"memo-related-settings": { "label": "A miña conta"
"content-length-limit": "Límite de lonxitude do contido (Byte)",
"enable-blur-nsfw-content": "Activar esvaecemento do contido sensible (NSFW)",
"enable-memo-comments": "Activar comentarios nas notas",
"enable-memo-location": "Activar localización nas notas",
"reactions": "Reaccións",
"title": "Axustes relacionados coas notas"
}, },
"my-account": "A miña conta", "preference": {
"preference": "Preferencias",
"preference-section": {
"default-memo-sort-option": "Hora da nota mostrada", "default-memo-sort-option": "Hora da nota mostrada",
"default-memo-visibility": "Visibilidade por defecto", "default-memo-visibility": "Visibilidade por defecto",
"theme": "Decorado" "theme": "Decorado",
"label": "Preferencias"
}, },
"shortcut": { "shortcut": {
"delete-confirm": "Tes certeza de querer eliminar o atallo `{{title}}`?", "delete-confirm": "Tes certeza de querer eliminar o atallo `{{title}}`?",
"delete-success": "Eliminouse correctamente o atallo `{{title}}`" "delete-success": "Eliminouse correctamente o atallo `{{title}}`"
}, },
"sso": "SSO", "sso": {
"sso-section": {
"authorization-endpoint": "Punto de acceso para autorización", "authorization-endpoint": "Punto de acceso para autorización",
"client-id": "ID do cliente", "client-id": "ID do cliente",
"client-secret": "Secreto do cliente", "client-secret": "Secreto do cliente",
...@@ -354,10 +300,10 @@ ...@@ -354,10 +300,10 @@
"template": "Modelo", "template": "Modelo",
"token-endpoint": "Token do punto de acceso", "token-endpoint": "Token do punto de acceso",
"update-sso": "Actualizar SSO", "update-sso": "Actualizar SSO",
"user-endpoint": "Punto de acceso da usuaria" "user-endpoint": "Punto de acceso da usuaria",
"label": "SSO"
}, },
"storage": "Almacenaxe", "storage": {
"storage-section": {
"accesskey": "Clave de acceso", "accesskey": "Clave de acceso",
"accesskey-placeholder": "Clave de acceso / ID de acceso", "accesskey-placeholder": "Clave de acceso / ID de acceso",
"bucket": "Bucket", "bucket": "Bucket",
...@@ -389,10 +335,10 @@ ...@@ -389,10 +335,10 @@
"url-prefix-placeholder": "Prefixo personalizado do URL, optativo", "url-prefix-placeholder": "Prefixo personalizado do URL, optativo",
"url-suffix": "Sufixo do URL", "url-suffix": "Sufixo do URL",
"url-suffix-placeholder": "Sufixo personalizado do URL, optativo", "url-suffix-placeholder": "Sufixo personalizado do URL, optativo",
"warning-text": "Tes certeza de querer eliminar o servizo de almacenaxe `{{name}}`? ESTA ACCIÓN NON É REVERSIBLE." "warning-text": "Tes certeza de querer eliminar o servizo de almacenaxe `{{name}}`? ESTA ACCIÓN NON É REVERSIBLE.",
"label": "Almacenaxe"
}, },
"system": "Sistema", "system": {
"system-section": {
"additional-script": "Script adicional", "additional-script": "Script adicional",
"additional-script-placeholder": "Código JavaScript adicional", "additional-script-placeholder": "Código JavaScript adicional",
"additional-style": "Estilo adicional", "additional-style": "Estilo adicional",
...@@ -416,10 +362,64 @@ ...@@ -416,10 +362,64 @@
"max-upload-size-hint": "O valor recomendado é 32 MiB.", "max-upload-size-hint": "O valor recomendado é 32 MiB.",
"removed-completed-task-list-items": "Activar a eliminación dos elementos da lista de tarefas completadas", "removed-completed-task-list-items": "Activar a eliminación dos elementos da lista de tarefas completadas",
"server-name": "Nome do servidor", "server-name": "Nome do servidor",
"title": "Xeral" "title": "Xeral",
"label": "Sistema"
}, },
"version": "Versión", "version": "Versión",
"webhook-section": { "access-token": {
"access-token-copied-to-clipboard": "Token de acceso copiado ao portapapeis",
"access-token-deleted": "Eliminouse o token de acceso `{{description}}`",
"access-token-deletion": "Tes certeza de querer eliminar o toke de acceso `{{description}}`?",
"access-token-deletion-description": "Esta acción non é reversible. Terás que actualizar o token de acceso en todos os servizos que utilicen o actual.",
"create-dialog": {
"access-token-created": "Creouse o token de acceso `{{description}}`",
"create-access-token": "Crear token de acceso",
"created-at": "Creado o",
"description": "Descrición",
"duration-1m": "1 mes",
"duration-8h": "8 horas",
"duration-never": "Nunca",
"expiration": "Caducidade",
"expires-at": "Caduca o",
"some-description": "Descrición..."
},
"description": "Lista con todos os tokens de acceso da túa conta.",
"title": "Tokens de acceso",
"token": "Token"
},
"account": {
"change-password": "Cambiar contrasinal",
"email-note": "Optativo",
"export-memos": "Exportar Memos",
"nickname-note": "Mostrado na cabeceira",
"openapi-reset": "Restablecer clave OpenAPI",
"openapi-sample-post": "Ola #memos desde {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Restablecer API",
"title": "Información da conta",
"update-information": "Actualizar información",
"username-note": "Utilizada para acceder"
},
"instance": {
"disallow-change-nickname": "Non permitir cambiar o alcume",
"disallow-change-username": "Non permitir cambiar o identificador",
"disallow-password-auth": "Desactivar acceso con contrasinal",
"disallow-user-registration": "Non permitir a creación de contas",
"monday": "Luns",
"saturday": "Sábado",
"sunday": "Domingo",
"week-start-day": "Comezo da semana"
},
"memo": {
"content-length-limit": "Límite de lonxitude do contido (Byte)",
"enable-blur-nsfw-content": "Activar esvaecemento do contido sensible (NSFW)",
"enable-memo-comments": "Activar comentarios nas notas",
"enable-memo-location": "Activar localización nas notas",
"reactions": "Reaccións",
"title": "Axustes relacionados coas notas",
"label": "Memo"
},
"webhook": {
"create-dialog": { "create-dialog": {
"an-easy-to-remember-name": "Un nome doado de lembrar", "an-easy-to-remember-name": "Un nome doado de lembrar",
"create-webhook": "Crear webhook", "create-webhook": "Crear webhook",
......
This diff is collapsed.
...@@ -38,7 +38,15 @@ ...@@ -38,7 +38,15 @@
"created-at": "Stvoreno", "created-at": "Stvoreno",
"database": "Baza podataka", "database": "Baza podataka",
"day": "Dan", "day": "Dan",
"days": "Dani", "days": {
"fri": "Pet",
"mon": "Pon",
"sat": "Sub",
"sun": "Ned",
"thu": "Čet",
"tue": "Uto",
"wed": "Sri"
},
"delete": "Obriši", "delete": "Obriši",
"description": "Opis", "description": "Opis",
"edit": "Uredi", "edit": "Uredi",
...@@ -108,15 +116,6 @@ ...@@ -108,15 +116,6 @@
"visibility": "Vidljivost", "visibility": "Vidljivost",
"yourself": "Ti" "yourself": "Ti"
}, },
"days": {
"fri": "Pet",
"mon": "Pon",
"sat": "Sub",
"sun": "Ned",
"thu": "Čet",
"tue": "Uto",
"wed": "Sri"
},
"editor": { "editor": {
"add-your-comment-here": "Dodaj svoj komentar ovdje...", "add-your-comment-here": "Dodaj svoj komentar ovdje...",
"any-thoughts": "Imaš li misli...", "any-thoughts": "Imaš li misli...",
...@@ -127,11 +126,6 @@ ...@@ -127,11 +126,6 @@
"saving": "Spremanje...", "saving": "Spremanje...",
"slash-commands": "Upisi `/` za naredbe" "slash-commands": "Upisi `/` za naredbe"
}, },
"filters": {
"has-code": "imaKod",
"has-link": "imaLink",
"has-task-list": "imaZadatke"
},
"inbox": { "inbox": {
"failed-to-load": "Neuspjelo učitavanje stavke pristigle pošte", "failed-to-load": "Neuspjelo učitavanje stavke pristigle pošte",
"memo-comment": "{{user}} je komentirao tvoj {{memo}}.", "memo-comment": "{{user}} je komentirao tvoj {{memo}}.",
...@@ -162,7 +156,11 @@ ...@@ -162,7 +156,11 @@
"direction-asc": "Uzlazno", "direction-asc": "Uzlazno",
"direction-desc": "Silazno", "direction-desc": "Silazno",
"display-time": "Vrijeme prikaza", "display-time": "Vrijeme prikaza",
"filters": "Filteri", "filters": {
"has-code": "imaKod",
"has-link": "imaLink",
"has-task-list": "imaZadatke"
},
"links": "Linkovi", "links": "Linkovi",
"list": "Popis", "list": "Popis",
"load-more": "Učitaj više", "load-more": "Učitaj više",
...@@ -251,53 +249,7 @@ ...@@ -251,53 +249,7 @@
"go-to-home": "Idi na početnu" "go-to-home": "Idi na početnu"
}, },
"setting": { "setting": {
"access-token-section": { "member": {
"access-token-copied-to-clipboard": "Token pristupa kopiran u međuspremnik",
"access-token-deleted": "Token pristupa `{{description}}` obrisan",
"access-token-deletion": "Jesi li siguran da želiš obrisati token pristupa `{{description}}`?",
"access-token-deletion-description": "Ova akcija je nepovratna. Morat ćeš ažurirati sve usluge koje koriste ovaj token da koriste novi token.",
"create-dialog": {
"access-token-created": "Token pristupa `{{description}}` stvoren",
"create-access-token": "Stvori token pristupa",
"created-at": "Stvoreno",
"description": "Opis",
"duration-1m": "1 mjesec",
"duration-8h": "8 sati",
"duration-never": "Nikada",
"expiration": "Istječe",
"expires-at": "Istječe na",
"some-description": "Neki opis..."
},
"description": "Popis svih tokena pristupa za tvoj račun.",
"title": "Tokeni pristupa",
"token": "Token"
},
"account-section": {
"change-password": "Promijeni lozinku",
"email-note": "Neobavezno",
"export-memos": "Izvezi memoe",
"nickname-note": "Prikazano u banneru",
"openapi-reset": "Resetiraj OpenAPI ključ",
"openapi-sample-post": "Pozdrav #memos od {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Resetiraj API",
"title": "Informacije o računu",
"update-information": "Ažuriraj informacije",
"username-note": "Koristi se za prijavu"
},
"instance-section": {
"disallow-change-nickname": "Onemogući promjenu nadimka",
"disallow-change-username": "Onemogući promjenu korisničkog imena",
"disallow-password-auth": "Onemogući autentikaciju lozinkom",
"disallow-user-registration": "Onemogući registraciju korisnika",
"monday": "Ponedjeljak",
"saturday": "Subota",
"sunday": "Nedjelja",
"week-start-day": "Dan početka tjedna"
},
"member": "Član",
"member-list": "Popis članova",
"member-section": {
"admin": "Admin", "admin": "Admin",
"archive-member": "Arhiviraj člana", "archive-member": "Arhiviraj člana",
"archive-success": "{{username}} uspješno arhiviran", "archive-success": "{{username}} uspješno arhiviran",
...@@ -309,30 +261,24 @@ ...@@ -309,30 +261,24 @@
"delete-warning": "Jesi li siguran da želiš obrisati {{username}}?", "delete-warning": "Jesi li siguran da želiš obrisati {{username}}?",
"delete-warning-description": "OVA AKCIJA JE NEPOVRATNA", "delete-warning-description": "OVA AKCIJA JE NEPOVRATNA",
"restore-success": "{{username}} uspješno vraćen", "restore-success": "{{username}} uspješno vraćen",
"user": "Korisnik" "user": "Korisnik",
"label": "Član",
"list-title": "Popis članova"
}, },
"memo-related": "Memo", "my-account": {
"memo-related-settings": { "label": "Moj račun"
"content-length-limit": "Ograničenje duljine sadržaja (Bajt)",
"enable-blur-nsfw-content": "Omogući zamućenje osjetljivog sadržaja (NSFW)",
"enable-memo-comments": "Omogući komentare na memoima",
"enable-memo-location": "Omogući lokaciju memoa",
"reactions": "Reakcije",
"title": "Postavke vezane uz memo"
}, },
"my-account": "Moj račun", "preference": {
"preference": "Postavke",
"preference-section": {
"default-memo-sort-option": "Vrijeme prikaza memoa", "default-memo-sort-option": "Vrijeme prikaza memoa",
"default-memo-visibility": "Zadana vidljivost memoa", "default-memo-visibility": "Zadana vidljivost memoa",
"theme": "Tema" "theme": "Tema",
"label": "Postavke"
}, },
"shortcut": { "shortcut": {
"delete-confirm": "Jesi li siguran da želiš obrisati prečac `{{title}}`?", "delete-confirm": "Jesi li siguran da želiš obrisati prečac `{{title}}`?",
"delete-success": "Prečac `{{title}}` uspješno obrisan" "delete-success": "Prečac `{{title}}` uspješno obrisan"
}, },
"sso": "SSO", "sso": {
"sso-section": {
"authorization-endpoint": "Krajnja točka autorizacije", "authorization-endpoint": "Krajnja točka autorizacije",
"client-id": "ID klijenta", "client-id": "ID klijenta",
"client-secret": "Tajna klijenta", "client-secret": "Tajna klijenta",
...@@ -354,10 +300,10 @@ ...@@ -354,10 +300,10 @@
"template": "Predložak", "template": "Predložak",
"token-endpoint": "Krajnja točka tokena", "token-endpoint": "Krajnja točka tokena",
"update-sso": "Ažuriraj SSO", "update-sso": "Ažuriraj SSO",
"user-endpoint": "Krajnja točka korisnika" "user-endpoint": "Krajnja točka korisnika",
"label": "SSO"
}, },
"storage": "Skladište", "storage": {
"storage-section": {
"accesskey": "Pristupni ključ", "accesskey": "Pristupni ključ",
"accesskey-placeholder": "Pristupni ključ / ID pristupa", "accesskey-placeholder": "Pristupni ključ / ID pristupa",
"bucket": "Bucket", "bucket": "Bucket",
...@@ -389,10 +335,10 @@ ...@@ -389,10 +335,10 @@
"url-prefix-placeholder": "Prilagođeni URL prefiks, opcionalno", "url-prefix-placeholder": "Prilagođeni URL prefiks, opcionalno",
"url-suffix": "URL sufiks", "url-suffix": "URL sufiks",
"url-suffix-placeholder": "Prilagođeni URL sufiks, opcionalno", "url-suffix-placeholder": "Prilagođeni URL sufiks, opcionalno",
"warning-text": "Jesi li siguran da želiš obrisati skladišnu uslugu \"{{name}}\"? OVA AKCIJA JE NEPOVRATNA" "warning-text": "Jesi li siguran da želiš obrisati skladišnu uslugu \"{{name}}\"? OVA AKCIJA JE NEPOVRATNA",
"label": "Skladište"
}, },
"system": "Sustav", "system": {
"system-section": {
"additional-script": "Dodatna skripta", "additional-script": "Dodatna skripta",
"additional-script-placeholder": "Dodatni JavaScript kod", "additional-script-placeholder": "Dodatni JavaScript kod",
"additional-style": "Dodatni stil", "additional-style": "Dodatni stil",
...@@ -416,10 +362,64 @@ ...@@ -416,10 +362,64 @@
"max-upload-size-hint": "Preporučena vrijednost je 32 MiB.", "max-upload-size-hint": "Preporučena vrijednost je 32 MiB.",
"removed-completed-task-list-items": "Omogući uklanjanje završenih zadataka", "removed-completed-task-list-items": "Omogući uklanjanje završenih zadataka",
"server-name": "Naziv servera", "server-name": "Naziv servera",
"title": "Općenito" "title": "Općenito",
"label": "Sustav"
}, },
"version": "Verzija", "version": "Verzija",
"webhook-section": { "access-token": {
"access-token-copied-to-clipboard": "Token pristupa kopiran u međuspremnik",
"access-token-deleted": "Token pristupa `{{description}}` obrisan",
"access-token-deletion": "Jesi li siguran da želiš obrisati token pristupa `{{description}}`?",
"access-token-deletion-description": "Ova akcija je nepovratna. Morat ćeš ažurirati sve usluge koje koriste ovaj token da koriste novi token.",
"create-dialog": {
"access-token-created": "Token pristupa `{{description}}` stvoren",
"create-access-token": "Stvori token pristupa",
"created-at": "Stvoreno",
"description": "Opis",
"duration-1m": "1 mjesec",
"duration-8h": "8 sati",
"duration-never": "Nikada",
"expiration": "Istječe",
"expires-at": "Istječe na",
"some-description": "Neki opis..."
},
"description": "Popis svih tokena pristupa za tvoj račun.",
"title": "Tokeni pristupa",
"token": "Token"
},
"account": {
"change-password": "Promijeni lozinku",
"email-note": "Neobavezno",
"export-memos": "Izvezi memoe",
"nickname-note": "Prikazano u banneru",
"openapi-reset": "Resetiraj OpenAPI ključ",
"openapi-sample-post": "Pozdrav #memos od {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Resetiraj API",
"title": "Informacije o računu",
"update-information": "Ažuriraj informacije",
"username-note": "Koristi se za prijavu"
},
"instance": {
"disallow-change-nickname": "Onemogući promjenu nadimka",
"disallow-change-username": "Onemogući promjenu korisničkog imena",
"disallow-password-auth": "Onemogući autentikaciju lozinkom",
"disallow-user-registration": "Onemogući registraciju korisnika",
"monday": "Ponedjeljak",
"saturday": "Subota",
"sunday": "Nedjelja",
"week-start-day": "Dan početka tjedna"
},
"memo": {
"content-length-limit": "Ograničenje duljine sadržaja (Bajt)",
"enable-blur-nsfw-content": "Omogući zamućenje osjetljivog sadržaja (NSFW)",
"enable-memo-comments": "Omogući komentare na memoima",
"enable-memo-location": "Omogući lokaciju memoa",
"reactions": "Reakcije",
"title": "Postavke vezane uz memo",
"label": "Memo"
},
"webhook": {
"create-dialog": { "create-dialog": {
"an-easy-to-remember-name": "Jednostavno ime za pamćenje", "an-easy-to-remember-name": "Jednostavno ime za pamćenje",
"create-webhook": "Stvori webhook", "create-webhook": "Stvori webhook",
......
...@@ -38,7 +38,15 @@ ...@@ -38,7 +38,15 @@
"created-at": "Létrehozva", "created-at": "Létrehozva",
"database": "Adatbázis", "database": "Adatbázis",
"day": "Nap", "day": "Nap",
"days": "Napok", "days": {
"fri": "Pé",
"mon": "Hé",
"sat": "Szo",
"sun": "Vas",
"thu": "Csü",
"tue": "Ke",
"wed": "Sze"
},
"delete": "Törlés", "delete": "Törlés",
"description": "Leírás", "description": "Leírás",
"edit": "Szerkesztés", "edit": "Szerkesztés",
...@@ -108,15 +116,6 @@ ...@@ -108,15 +116,6 @@
"visibility": "Láthatóság", "visibility": "Láthatóság",
"yourself": "Magad" "yourself": "Magad"
}, },
"days": {
"fri": "Pé",
"mon": "Hé",
"sat": "Szo",
"sun": "Vas",
"thu": "Csü",
"tue": "Ke",
"wed": "Sze"
},
"editor": { "editor": {
"add-your-comment-here": "Írd ide a megjegyzésed...", "add-your-comment-here": "Írd ide a megjegyzésed...",
"any-thoughts": "Bármi ami a fejedben jár...", "any-thoughts": "Bármi ami a fejedben jár...",
...@@ -127,11 +126,6 @@ ...@@ -127,11 +126,6 @@
"saving": "Mentés...", "saving": "Mentés...",
"slash-commands": "Írj `/` parancsokat" "slash-commands": "Írj `/` parancsokat"
}, },
"filters": {
"has-code": "vanKód",
"has-link": "vanLink",
"has-task-list": "vanFeladatLista"
},
"inbox": { "inbox": {
"failed-to-load": "Nem sikerült betölteni az értesítést", "failed-to-load": "Nem sikerült betölteni az értesítést",
"memo-comment": "{{user}} hozzászólt ehhez: {{memo}}.", "memo-comment": "{{user}} hozzászólt ehhez: {{memo}}.",
...@@ -162,7 +156,11 @@ ...@@ -162,7 +156,11 @@
"direction-asc": "Növekvő", "direction-asc": "Növekvő",
"direction-desc": "Csökkenő", "direction-desc": "Csökkenő",
"display-time": "Megjelenítési idő", "display-time": "Megjelenítési idő",
"filters": "Szűrők", "filters": {
"has-code": "vanKód",
"has-link": "vanLink",
"has-task-list": "vanFeladatLista"
},
"links": "Hivatkozások", "links": "Hivatkozások",
"list": "Lista", "list": "Lista",
"load-more": "Több betöltése", "load-more": "Több betöltése",
...@@ -251,53 +249,7 @@ ...@@ -251,53 +249,7 @@
"go-to-home": "Vissza a főoldalra" "go-to-home": "Vissza a főoldalra"
}, },
"setting": { "setting": {
"access-token-section": { "member": {
"access-token-copied-to-clipboard": "Hozzáférési token vágólapra másolva",
"access-token-deleted": "Hozzáférési token `{{description}}` törölve",
"access-token-deletion": "Biztosan törlöd a hozzáférési tokent `{{description}}`?",
"access-token-deletion-description": "Ez a művelet visszafordíthatatlan. Frissítened kell minden szolgáltatást, amely ezt a tokent használja, hogy új tokent használjanak.",
"create-dialog": {
"access-token-created": "Hozzáférési token `{{description}}` létrehozva",
"create-access-token": "Hozzáférési token létrehozása",
"created-at": "Létrehozva",
"description": "Leírás",
"duration-1m": "1 hónap",
"duration-8h": "8 óra",
"duration-never": "Soha",
"expiration": "Lejárat",
"expires-at": "Lejárat dátuma",
"some-description": "Néhány leírás..."
},
"description": "A fiókodhoz tartozó összes hozzáférési token listája.",
"title": "Hozzáférési tokenek",
"token": "Token"
},
"account-section": {
"change-password": "Jelszó megváltoztatása",
"email-note": "Nem kötelező",
"export-memos": "Jegyzetek exportálása",
"nickname-note": "A bannerben megjelenített",
"openapi-reset": "OpenAPI kulcs visszaállítása",
"openapi-sample-post": "Hello #memos innen: {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "API visszaállítása",
"title": "Fiókinformáció",
"update-information": "Információ frissítése",
"username-note": "Bejelentkezéshez használt"
},
"instance-section": {
"disallow-change-nickname": "Becenév módosításának tiltása",
"disallow-change-username": "Felhasználónév módosításának tiltása",
"disallow-password-auth": "Jelszavas hitelesítés tiltása",
"disallow-user-registration": "Felhasználó regisztráció tiltása",
"monday": "Hétfő",
"saturday": "Szombat",
"sunday": "Vasárnap",
"week-start-day": "A hét kezdőnapja"
},
"member": "Tag",
"member-list": "Taglista",
"member-section": {
"admin": "Admin", "admin": "Admin",
"archive-member": "Tag archiválása", "archive-member": "Tag archiválása",
"archive-success": "{{username}} sikeresen archiválva", "archive-success": "{{username}} sikeresen archiválva",
...@@ -309,30 +261,24 @@ ...@@ -309,30 +261,24 @@
"delete-warning": "Biztosan törlöd {{username}} tagot?", "delete-warning": "Biztosan törlöd {{username}} tagot?",
"delete-warning-description": "EZ A MŰVELET VÉGLEGES", "delete-warning-description": "EZ A MŰVELET VÉGLEGES",
"restore-success": "{{username}} sikeresen visszaállítva", "restore-success": "{{username}} sikeresen visszaállítva",
"user": "Felhasználó" "user": "Felhasználó",
"label": "Tag",
"list-title": "Taglista"
}, },
"memo-related": "Jegyzet", "my-account": {
"memo-related-settings": { "label": "Fiókom"
"content-length-limit": "Tartalom hosszának korlátja (bájt)",
"enable-blur-nsfw-content": "Érzékeny (NSFW) tartalom elhomályosításának engedélyezése",
"enable-memo-comments": "Jegyzet hozzászólások engedélyezése",
"enable-memo-location": "Jegyzet helyének engedélyezése",
"reactions": "Reakciók",
"title": "Jegyzethez kapcsolódó beállítások"
}, },
"my-account": "Fiókom", "preference": {
"preference": "Preferenciák",
"preference-section": {
"default-memo-sort-option": "Jegyzet megjelenítési ideje", "default-memo-sort-option": "Jegyzet megjelenítési ideje",
"default-memo-visibility": "Jegyzetek alapértelmezett láthatósága", "default-memo-visibility": "Jegyzetek alapértelmezett láthatósága",
"theme": "Téma" "theme": "Téma",
"label": "Preferenciák"
}, },
"shortcut": { "shortcut": {
"delete-confirm": "Biztosan törlöd a `{{title}}` gyorsbillentyűt?", "delete-confirm": "Biztosan törlöd a `{{title}}` gyorsbillentyűt?",
"delete-success": "`{{title}}` gyorsbillentyű sikeresen törölve" "delete-success": "`{{title}}` gyorsbillentyű sikeresen törölve"
}, },
"sso": "SSO", "sso": {
"sso-section": {
"authorization-endpoint": "Hitelesítési végpont", "authorization-endpoint": "Hitelesítési végpont",
"client-id": "Kliens ID", "client-id": "Kliens ID",
"client-secret": "Kliens titok", "client-secret": "Kliens titok",
...@@ -354,10 +300,10 @@ ...@@ -354,10 +300,10 @@
"template": "Sablon", "template": "Sablon",
"token-endpoint": "Token végpont", "token-endpoint": "Token végpont",
"update-sso": "SSO frissítése", "update-sso": "SSO frissítése",
"user-endpoint": "Felhasználói végpont" "user-endpoint": "Felhasználói végpont",
"label": "SSO"
}, },
"storage": "Tárhely", "storage": {
"storage-section": {
"accesskey": "Hozzáférési kulcs", "accesskey": "Hozzáférési kulcs",
"accesskey-placeholder": "Access key / Access ID", "accesskey-placeholder": "Access key / Access ID",
"bucket": "Bucket", "bucket": "Bucket",
...@@ -389,10 +335,10 @@ ...@@ -389,10 +335,10 @@
"url-prefix-placeholder": "Egyedi URL előtag, nem kötelező", "url-prefix-placeholder": "Egyedi URL előtag, nem kötelező",
"url-suffix": "URL utótag", "url-suffix": "URL utótag",
"url-suffix-placeholder": "Egyedi URL utótag, nem kötelező", "url-suffix-placeholder": "Egyedi URL utótag, nem kötelező",
"warning-text": "Biztosan törlöd a(z) \"{{name}}\" tárhelyszolgáltatást? EZ A MŰVELET VÉGLEGES" "warning-text": "Biztosan törlöd a(z) \"{{name}}\" tárhelyszolgáltatást? EZ A MŰVELET VÉGLEGES",
"label": "Tárhely"
}, },
"system": "Rendszer", "system": {
"system-section": {
"additional-script": "Egyedi script", "additional-script": "Egyedi script",
"additional-script-placeholder": "Egyedi JavaScript kód", "additional-script-placeholder": "Egyedi JavaScript kód",
"additional-style": "Egyedi stílus", "additional-style": "Egyedi stílus",
...@@ -416,10 +362,64 @@ ...@@ -416,10 +362,64 @@
"max-upload-size-hint": "Az ajánlott érték 32 MiB.", "max-upload-size-hint": "Az ajánlott érték 32 MiB.",
"removed-completed-task-list-items": "Kész feladatok törlésének engedélyezése", "removed-completed-task-list-items": "Kész feladatok törlésének engedélyezése",
"server-name": "Szerver neve", "server-name": "Szerver neve",
"title": "Általános" "title": "Általános",
"label": "Rendszer"
}, },
"version": "Verzió", "version": "Verzió",
"webhook-section": { "access-token": {
"access-token-copied-to-clipboard": "Hozzáférési token vágólapra másolva",
"access-token-deleted": "Hozzáférési token `{{description}}` törölve",
"access-token-deletion": "Biztosan törlöd a hozzáférési tokent `{{description}}`?",
"access-token-deletion-description": "Ez a művelet visszafordíthatatlan. Frissítened kell minden szolgáltatást, amely ezt a tokent használja, hogy új tokent használjanak.",
"create-dialog": {
"access-token-created": "Hozzáférési token `{{description}}` létrehozva",
"create-access-token": "Hozzáférési token létrehozása",
"created-at": "Létrehozva",
"description": "Leírás",
"duration-1m": "1 hónap",
"duration-8h": "8 óra",
"duration-never": "Soha",
"expiration": "Lejárat",
"expires-at": "Lejárat dátuma",
"some-description": "Néhány leírás..."
},
"description": "A fiókodhoz tartozó összes hozzáférési token listája.",
"title": "Hozzáférési tokenek",
"token": "Token"
},
"account": {
"change-password": "Jelszó megváltoztatása",
"email-note": "Nem kötelező",
"export-memos": "Jegyzetek exportálása",
"nickname-note": "A bannerben megjelenített",
"openapi-reset": "OpenAPI kulcs visszaállítása",
"openapi-sample-post": "Hello #memos innen: {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "API visszaállítása",
"title": "Fiókinformáció",
"update-information": "Információ frissítése",
"username-note": "Bejelentkezéshez használt"
},
"instance": {
"disallow-change-nickname": "Becenév módosításának tiltása",
"disallow-change-username": "Felhasználónév módosításának tiltása",
"disallow-password-auth": "Jelszavas hitelesítés tiltása",
"disallow-user-registration": "Felhasználó regisztráció tiltása",
"monday": "Hétfő",
"saturday": "Szombat",
"sunday": "Vasárnap",
"week-start-day": "A hét kezdőnapja"
},
"memo": {
"content-length-limit": "Tartalom hosszának korlátja (bájt)",
"enable-blur-nsfw-content": "Érzékeny (NSFW) tartalom elhomályosításának engedélyezése",
"enable-memo-comments": "Jegyzet hozzászólások engedélyezése",
"enable-memo-location": "Jegyzet helyének engedélyezése",
"reactions": "Reakciók",
"title": "Jegyzethez kapcsolódó beállítások",
"label": "Jegyzet"
},
"webhook": {
"create-dialog": { "create-dialog": {
"an-easy-to-remember-name": "Könnyen megjegyezhető név", "an-easy-to-remember-name": "Könnyen megjegyezhető név",
"create-webhook": "Webhook létrehozása", "create-webhook": "Webhook létrehozása",
......
...@@ -38,7 +38,15 @@ ...@@ -38,7 +38,15 @@
"created-at": "Dibuat pada", "created-at": "Dibuat pada",
"database": "Basis Data", "database": "Basis Data",
"day": "Hari", "day": "Hari",
"days": "Hari", "days": {
"fri": "Jum",
"mon": "Sen",
"sat": "Sab",
"sun": "Min",
"thu": "Kam",
"tue": "Sel",
"wed": "Rab"
},
"delete": "Hapus", "delete": "Hapus",
"description": "Deskripsi", "description": "Deskripsi",
"edit": "Edit", "edit": "Edit",
...@@ -108,15 +116,6 @@ ...@@ -108,15 +116,6 @@
"visibility": "Visibilitas", "visibility": "Visibilitas",
"yourself": "Anda sendiri" "yourself": "Anda sendiri"
}, },
"days": {
"fri": "Jum",
"mon": "Sen",
"sat": "Sab",
"sun": "Min",
"thu": "Kam",
"tue": "Sel",
"wed": "Rab"
},
"editor": { "editor": {
"add-your-comment-here": "Tambahkan komentar Anda di sini...", "add-your-comment-here": "Tambahkan komentar Anda di sini...",
"any-thoughts": "Punya pemikiran...", "any-thoughts": "Punya pemikiran...",
...@@ -127,11 +126,6 @@ ...@@ -127,11 +126,6 @@
"saving": "Menyimpan...", "saving": "Menyimpan...",
"slash-commands": "Ketik `/` untuk perintah" "slash-commands": "Ketik `/` untuk perintah"
}, },
"filters": {
"has-code": "Memiliki kode",
"has-link": "Memiliki tautan",
"has-task-list": "Memiliki daftar tugas"
},
"inbox": { "inbox": {
"failed-to-load": "Gagal memuat item kotak masuk", "failed-to-load": "Gagal memuat item kotak masuk",
"memo-comment": "{{user}} memiliki komentar di {{memo}} Anda.", "memo-comment": "{{user}} memiliki komentar di {{memo}} Anda.",
...@@ -162,7 +156,11 @@ ...@@ -162,7 +156,11 @@
"direction-asc": "Menaik", "direction-asc": "Menaik",
"direction-desc": "Menurun", "direction-desc": "Menurun",
"display-time": "Waktu Tampil", "display-time": "Waktu Tampil",
"filters": "Saring", "filters": {
"has-code": "Memiliki kode",
"has-link": "Memiliki tautan",
"has-task-list": "Memiliki daftar tugas"
},
"links": "Tautan", "links": "Tautan",
"list": "Daftar", "list": "Daftar",
"load-more": "Muat lebih banyak", "load-more": "Muat lebih banyak",
...@@ -251,53 +249,7 @@ ...@@ -251,53 +249,7 @@
"go-to-home": "Ke Beranda" "go-to-home": "Ke Beranda"
}, },
"setting": { "setting": {
"access-token-section": { "member": {
"access-token-copied-to-clipboard": "Token akses disalin ke papan klip",
"access-token-deleted": "Token akses `{{description}}` dihapus",
"access-token-deletion": "Anda yakin ingin menghapus token akses {{description}}? TINDAKAN INI TIDAK DAPAT DIBATALKAN.",
"access-token-deletion-description": "Tindakan ini tidak dapat dibatalkan. Anda perlu memperbarui layanan yang menggunakan token ini untuk menggunakan token baru.",
"create-dialog": {
"access-token-created": "Token akses `{{description}}` dibuat",
"create-access-token": "Buat Token Akses",
"created-at": "Dibuat pada",
"description": "Deskripsi",
"duration-1m": "1 bulan",
"duration-8h": "8 jam",
"duration-never": "Tidak Pernah",
"expiration": "Kedaluwarsa",
"expires-at": "Berakhir pada",
"some-description": "Beberapa deskripsi..."
},
"description": "Daftar semua token akses untuk akun Anda.",
"title": "Token Akses",
"token": "Token"
},
"account-section": {
"change-password": "Ubah kata sandi",
"email-note": "Opsional",
"export-memos": "Ekspor Memo",
"nickname-note": "Ditampilkan di banner",
"openapi-reset": "Atur ulang Kunci OpenAPI",
"openapi-sample-post": "Halo #memos dari {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Atur ulang API",
"title": "Informasi Akun",
"update-information": "Perbarui Informasi",
"username-note": "Digunakan untuk masuk"
},
"instance-section": {
"disallow-change-nickname": "Larangan mengubah nama panggilan",
"disallow-change-username": "Larangan mengubah nama pengguna",
"disallow-password-auth": "Larangan autentikasi kata sandi",
"disallow-user-registration": "Larangan pendaftaran pengguna",
"monday": "Senin",
"saturday": "Sabtu",
"sunday": "Minggu",
"week-start-day": "Hari awal pekan"
},
"member": "Anggota",
"member-list": "Daftar Anggota",
"member-section": {
"admin": "Admin", "admin": "Admin",
"archive-member": "Arsip anggota", "archive-member": "Arsip anggota",
"archive-success": "{{username}} berhasil diarsipkan", "archive-success": "{{username}} berhasil diarsipkan",
...@@ -309,30 +261,24 @@ ...@@ -309,30 +261,24 @@
"delete-warning": "Apakah Anda yakin untuk menghapus {{username}}? TINDAKAN INI TIDAK DAPAT DIBATALKAN", "delete-warning": "Apakah Anda yakin untuk menghapus {{username}}? TINDAKAN INI TIDAK DAPAT DIBATALKAN",
"delete-warning-description": "TINDAKAN INI TIDAK DAPAT DIBATALKAN", "delete-warning-description": "TINDAKAN INI TIDAK DAPAT DIBATALKAN",
"restore-success": "{{username}} berhasil dipulihkan", "restore-success": "{{username}} berhasil dipulihkan",
"user": "Pengguna" "user": "Pengguna",
"label": "Anggota",
"list-title": "Daftar Anggota"
}, },
"memo-related": "Memo", "my-account": {
"memo-related-settings": { "label": "Akun Saya"
"content-length-limit": "Batas panjang konten (Byte)",
"enable-blur-nsfw-content": "Aktifkan pengaburan konten sensitif (NSFW)",
"enable-memo-comments": "Aktifkan komentar memo",
"enable-memo-location": "Aktifkan lokasi memo",
"reactions": "Reaksi",
"title": "Pengaturan terkait Memo"
}, },
"my-account": "Akun Saya", "preference": {
"preference": "Preferensi",
"preference-section": {
"default-memo-sort-option": "Waktu tampil memo", "default-memo-sort-option": "Waktu tampil memo",
"default-memo-visibility": "Visibilitas memo default", "default-memo-visibility": "Visibilitas memo default",
"theme": "Tema" "theme": "Tema",
"label": "Preferensi"
}, },
"shortcut": { "shortcut": {
"delete-confirm": "Apakah Anda yakin ingin menghapus pintasan `{{title}}`?", "delete-confirm": "Apakah Anda yakin ingin menghapus pintasan `{{title}}`?",
"delete-success": "Pintasan `{{title}}` berhasil dihapus" "delete-success": "Pintasan `{{title}}` berhasil dihapus"
}, },
"sso": "SSO", "sso": {
"sso-section": {
"authorization-endpoint": "Akhir Otorisasi", "authorization-endpoint": "Akhir Otorisasi",
"client-id": "ID Klien", "client-id": "ID Klien",
"client-secret": "Kunci Rahasia Klien", "client-secret": "Kunci Rahasia Klien",
...@@ -354,10 +300,10 @@ ...@@ -354,10 +300,10 @@
"template": "Templat", "template": "Templat",
"token-endpoint": "Akhir Token", "token-endpoint": "Akhir Token",
"update-sso": "Perbarui SSO", "update-sso": "Perbarui SSO",
"user-endpoint": "Akhir Pengguna" "user-endpoint": "Akhir Pengguna",
"label": "SSO"
}, },
"storage": "Penyimpanan", "storage": {
"storage-section": {
"accesskey": "Kunci Akses", "accesskey": "Kunci Akses",
"accesskey-placeholder": "Kunci Akses / ID Akses", "accesskey-placeholder": "Kunci Akses / ID Akses",
"bucket": "Bucket", "bucket": "Bucket",
...@@ -389,10 +335,10 @@ ...@@ -389,10 +335,10 @@
"url-prefix-placeholder": "Prefiks URL kustom, opsional", "url-prefix-placeholder": "Prefiks URL kustom, opsional",
"url-suffix": "Sufiks URL", "url-suffix": "Sufiks URL",
"url-suffix-placeholder": "Sufiks URL kustom, opsional", "url-suffix-placeholder": "Sufiks URL kustom, opsional",
"warning-text": "Apakah Anda yakin ingin menghapus layanan penyimpanan \"{{name}}\"? TINDAKAN INI TIDAK DAPAT DIBATALKAN." "warning-text": "Apakah Anda yakin ingin menghapus layanan penyimpanan \"{{name}}\"? TINDAKAN INI TIDAK DAPAT DIBATALKAN.",
"label": "Penyimpanan"
}, },
"system": "Sistem", "system": {
"system-section": {
"additional-script": "Skrip tambahan", "additional-script": "Skrip tambahan",
"additional-script-placeholder": "Kode JavaScript tambahan", "additional-script-placeholder": "Kode JavaScript tambahan",
"additional-style": "Gaya tambahan", "additional-style": "Gaya tambahan",
...@@ -416,10 +362,64 @@ ...@@ -416,10 +362,64 @@
"max-upload-size-hint": "Nilai yang direkomendasikan adalah 32 MiB.", "max-upload-size-hint": "Nilai yang direkomendasikan adalah 32 MiB.",
"removed-completed-task-list-items": "Aktifkan penghapusan item daftar tugas yang selesai", "removed-completed-task-list-items": "Aktifkan penghapusan item daftar tugas yang selesai",
"server-name": "Nama Server", "server-name": "Nama Server",
"title": "Umum" "title": "Umum",
"label": "Sistem"
}, },
"version": "Versi", "version": "Versi",
"webhook-section": { "access-token": {
"access-token-copied-to-clipboard": "Token akses disalin ke papan klip",
"access-token-deleted": "Token akses `{{description}}` dihapus",
"access-token-deletion": "Anda yakin ingin menghapus token akses {{description}}? TINDAKAN INI TIDAK DAPAT DIBATALKAN.",
"access-token-deletion-description": "Tindakan ini tidak dapat dibatalkan. Anda perlu memperbarui layanan yang menggunakan token ini untuk menggunakan token baru.",
"create-dialog": {
"access-token-created": "Token akses `{{description}}` dibuat",
"create-access-token": "Buat Token Akses",
"created-at": "Dibuat pada",
"description": "Deskripsi",
"duration-1m": "1 bulan",
"duration-8h": "8 jam",
"duration-never": "Tidak Pernah",
"expiration": "Kedaluwarsa",
"expires-at": "Berakhir pada",
"some-description": "Beberapa deskripsi..."
},
"description": "Daftar semua token akses untuk akun Anda.",
"title": "Token Akses",
"token": "Token"
},
"account": {
"change-password": "Ubah kata sandi",
"email-note": "Opsional",
"export-memos": "Ekspor Memo",
"nickname-note": "Ditampilkan di banner",
"openapi-reset": "Atur ulang Kunci OpenAPI",
"openapi-sample-post": "Halo #memos dari {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Atur ulang API",
"title": "Informasi Akun",
"update-information": "Perbarui Informasi",
"username-note": "Digunakan untuk masuk"
},
"instance": {
"disallow-change-nickname": "Larangan mengubah nama panggilan",
"disallow-change-username": "Larangan mengubah nama pengguna",
"disallow-password-auth": "Larangan autentikasi kata sandi",
"disallow-user-registration": "Larangan pendaftaran pengguna",
"monday": "Senin",
"saturday": "Sabtu",
"sunday": "Minggu",
"week-start-day": "Hari awal pekan"
},
"memo": {
"content-length-limit": "Batas panjang konten (Byte)",
"enable-blur-nsfw-content": "Aktifkan pengaburan konten sensitif (NSFW)",
"enable-memo-comments": "Aktifkan komentar memo",
"enable-memo-location": "Aktifkan lokasi memo",
"reactions": "Reaksi",
"title": "Pengaturan terkait Memo",
"label": "Memo"
},
"webhook": {
"create-dialog": { "create-dialog": {
"an-easy-to-remember-name": "Nama yang mudah diingat", "an-easy-to-remember-name": "Nama yang mudah diingat",
"create-webhook": "Buat webhook", "create-webhook": "Buat webhook",
......
...@@ -38,7 +38,15 @@ ...@@ -38,7 +38,15 @@
"created-at": "Creato il", "created-at": "Creato il",
"database": "Database", "database": "Database",
"day": "Giorno", "day": "Giorno",
"days": "Giorni", "days": {
"fri": "Ven",
"mon": "Lun",
"sat": "Sab",
"sun": "Dom",
"thu": "Gio",
"tue": "Mar",
"wed": "Mer"
},
"delete": "Elimina", "delete": "Elimina",
"description": "Descrizione", "description": "Descrizione",
"edit": "Modifica", "edit": "Modifica",
...@@ -108,15 +116,6 @@ ...@@ -108,15 +116,6 @@
"visibility": "Visibilità", "visibility": "Visibilità",
"yourself": "Te stesso" "yourself": "Te stesso"
}, },
"days": {
"fri": "Ven",
"mon": "Lun",
"sat": "Sab",
"sun": "Dom",
"thu": "Gio",
"tue": "Mar",
"wed": "Mer"
},
"editor": { "editor": {
"add-your-comment-here": "Aggiungi qui il tuo commento...", "add-your-comment-here": "Aggiungi qui il tuo commento...",
"any-thoughts": "Qualsiasi cosa pensi...", "any-thoughts": "Qualsiasi cosa pensi...",
...@@ -127,11 +126,6 @@ ...@@ -127,11 +126,6 @@
"saving": "Salvataggio...", "saving": "Salvataggio...",
"slash-commands": "Digita `/` per i comandi" "slash-commands": "Digita `/` per i comandi"
}, },
"filters": {
"has-code": "haCodice",
"has-link": "haLink",
"has-task-list": "haListaCompiti"
},
"inbox": { "inbox": {
"failed-to-load": "Impossibile caricare l'elemento della posta in arrivo", "failed-to-load": "Impossibile caricare l'elemento della posta in arrivo",
"memo-comment": "{{user}} ha commentato il tuo {{memo}}.", "memo-comment": "{{user}} ha commentato il tuo {{memo}}.",
...@@ -162,7 +156,11 @@ ...@@ -162,7 +156,11 @@
"direction-asc": "Crescente", "direction-asc": "Crescente",
"direction-desc": "Decrescente", "direction-desc": "Decrescente",
"display-time": "Orario di visualizzazione", "display-time": "Orario di visualizzazione",
"filters": "Filtri", "filters": {
"has-code": "haCodice",
"has-link": "haLink",
"has-task-list": "haListaCompiti"
},
"links": "Link", "links": "Link",
"list": "Lista", "list": "Lista",
"load-more": "Carica altro", "load-more": "Carica altro",
...@@ -251,53 +249,7 @@ ...@@ -251,53 +249,7 @@
"go-to-home": "Vai alla home" "go-to-home": "Vai alla home"
}, },
"setting": { "setting": {
"access-token-section": { "member": {
"access-token-copied-to-clipboard": "Token di accesso copiato negli appunti",
"access-token-deleted": "Token di accesso `{{description}}` eliminato",
"access-token-deletion": "Confermi di voler eliminare il token di accesso `{{description}}`?",
"access-token-deletion-description": "Questa azione è irreversibile. Dovrai aggiornare tutti i servizi che utilizzano questo token per usare un nuovo token.",
"create-dialog": {
"access-token-created": "Token di accesso `{{description}}` creato",
"create-access-token": "Crea token di accesso",
"created-at": "Creato il",
"description": "Descrizione",
"duration-1m": "1 mese",
"duration-8h": "8 ore",
"duration-never": "Mai",
"expiration": "Scadenza",
"expires-at": "Scade il",
"some-description": "Qualche descrizione..."
},
"description": "Elenco di tutti i token di accesso del tuo account.",
"title": "Token di accesso",
"token": "Token"
},
"account-section": {
"change-password": "Cambia password",
"email-note": "Opzionale",
"export-memos": "Esporta memo",
"nickname-note": "Mostrato nel banner",
"openapi-reset": "Ripristina key OpenAPI",
"openapi-sample-post": "Ciao #memos da {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Ripristina API",
"title": "Il mio account",
"update-information": "Aggiorna informazioni",
"username-note": "Usato per il login"
},
"instance-section": {
"disallow-change-nickname": "Impedisci cambio nickname",
"disallow-change-username": "Impedisci cambio nome utente",
"disallow-password-auth": "Impedisci autenticazione password",
"disallow-user-registration": "Impedisci registrazione utente",
"monday": "Lunedì",
"saturday": "Sabato",
"sunday": "Domenica",
"week-start-day": "Giorno inizio settimana"
},
"member": "Membri",
"member-list": "Lista membri",
"member-section": {
"admin": "Admin", "admin": "Admin",
"archive-member": "Archivia membro", "archive-member": "Archivia membro",
"archive-success": "{{username}} archiviato con successo", "archive-success": "{{username}} archiviato con successo",
...@@ -309,30 +261,24 @@ ...@@ -309,30 +261,24 @@
"delete-warning": "Confermi di voler eliminare {{username}}?", "delete-warning": "Confermi di voler eliminare {{username}}?",
"delete-warning-description": "QUESTA AZIONE È IRREVERSIBILE", "delete-warning-description": "QUESTA AZIONE È IRREVERSIBILE",
"restore-success": "{{username}} ripristinato con successo", "restore-success": "{{username}} ripristinato con successo",
"user": "Utente" "user": "Utente",
"label": "Membri",
"list-title": "Lista membri"
}, },
"memo-related": "Memo", "my-account": {
"memo-related-settings": { "label": "Il mio account"
"content-length-limit": "Massima lunghezza contenuto (byte)",
"enable-blur-nsfw-content": "Abilita sfocatura contenuti sensibili (NSFW)",
"enable-memo-comments": "Abilita commenti memo",
"enable-memo-location": "Abilita posizione memo",
"reactions": "Reazioni",
"title": "Impostazioni memo"
}, },
"my-account": "Il mio account", "preference": {
"preference": "Preferenze",
"preference-section": {
"default-memo-sort-option": "Ordinamento memo predefinito", "default-memo-sort-option": "Ordinamento memo predefinito",
"default-memo-visibility": "Visibilità memo predefinita", "default-memo-visibility": "Visibilità memo predefinita",
"theme": "Tema" "theme": "Tema",
"label": "Preferenze"
}, },
"shortcut": { "shortcut": {
"delete-confirm": "Confermi di voler eliminare la scorciatoia `{{title}}`?", "delete-confirm": "Confermi di voler eliminare la scorciatoia `{{title}}`?",
"delete-success": "Scorciatoia `{{title}}` eliminata con successo" "delete-success": "Scorciatoia `{{title}}` eliminata con successo"
}, },
"sso": "SSO", "sso": {
"sso-section": {
"authorization-endpoint": "Endpoint autorizzazione", "authorization-endpoint": "Endpoint autorizzazione",
"client-id": "Client ID", "client-id": "Client ID",
"client-secret": "Client secret", "client-secret": "Client secret",
...@@ -354,10 +300,10 @@ ...@@ -354,10 +300,10 @@
"template": "Template", "template": "Template",
"token-endpoint": "Token endpoint", "token-endpoint": "Token endpoint",
"update-sso": "Aggiorna SSO", "update-sso": "Aggiorna SSO",
"user-endpoint": "User endpoint" "user-endpoint": "User endpoint",
"label": "SSO"
}, },
"storage": "Archiviazione", "storage": {
"storage-section": {
"accesskey": "Access key", "accesskey": "Access key",
"accesskey-placeholder": "Access key / Access ID", "accesskey-placeholder": "Access key / Access ID",
"bucket": "Bucket", "bucket": "Bucket",
...@@ -389,10 +335,10 @@ ...@@ -389,10 +335,10 @@
"url-prefix-placeholder": "Prefisso URL custom, opzionale", "url-prefix-placeholder": "Prefisso URL custom, opzionale",
"url-suffix": "Suffisso URL", "url-suffix": "Suffisso URL",
"url-suffix-placeholder": "Suffisso URL custom, opzionale", "url-suffix-placeholder": "Suffisso URL custom, opzionale",
"warning-text": "Confermi di voler eliminare questo servizio di archiviazione \"{{name}}\"? QUESTA AZIONE È IRREVERSIBILE" "warning-text": "Confermi di voler eliminare questo servizio di archiviazione \"{{name}}\"? QUESTA AZIONE È IRREVERSIBILE",
"label": "Archiviazione"
}, },
"system": "Sistema", "system": {
"system-section": {
"additional-script": "Script aggiuntivo", "additional-script": "Script aggiuntivo",
"additional-script-placeholder": "Codice JS aggiuntivo", "additional-script-placeholder": "Codice JS aggiuntivo",
"additional-style": "Stile aggiuntivo", "additional-style": "Stile aggiuntivo",
...@@ -416,10 +362,64 @@ ...@@ -416,10 +362,64 @@
"max-upload-size-hint": "Valore consigliato di 32 MiB.", "max-upload-size-hint": "Valore consigliato di 32 MiB.",
"removed-completed-task-list-items": "Abilita rimozione dei compiti completati", "removed-completed-task-list-items": "Abilita rimozione dei compiti completati",
"server-name": "Nome server", "server-name": "Nome server",
"title": "Generale" "title": "Generale",
"label": "Sistema"
}, },
"version": "Versione", "version": "Versione",
"webhook-section": { "access-token": {
"access-token-copied-to-clipboard": "Token di accesso copiato negli appunti",
"access-token-deleted": "Token di accesso `{{description}}` eliminato",
"access-token-deletion": "Confermi di voler eliminare il token di accesso `{{description}}`?",
"access-token-deletion-description": "Questa azione è irreversibile. Dovrai aggiornare tutti i servizi che utilizzano questo token per usare un nuovo token.",
"create-dialog": {
"access-token-created": "Token di accesso `{{description}}` creato",
"create-access-token": "Crea token di accesso",
"created-at": "Creato il",
"description": "Descrizione",
"duration-1m": "1 mese",
"duration-8h": "8 ore",
"duration-never": "Mai",
"expiration": "Scadenza",
"expires-at": "Scade il",
"some-description": "Qualche descrizione..."
},
"description": "Elenco di tutti i token di accesso del tuo account.",
"title": "Token di accesso",
"token": "Token"
},
"account": {
"change-password": "Cambia password",
"email-note": "Opzionale",
"export-memos": "Esporta memo",
"nickname-note": "Mostrato nel banner",
"openapi-reset": "Ripristina key OpenAPI",
"openapi-sample-post": "Ciao #memos da {{url}}",
"openapi-title": "OpenAPI",
"reset-api": "Ripristina API",
"title": "Il mio account",
"update-information": "Aggiorna informazioni",
"username-note": "Usato per il login"
},
"instance": {
"disallow-change-nickname": "Impedisci cambio nickname",
"disallow-change-username": "Impedisci cambio nome utente",
"disallow-password-auth": "Impedisci autenticazione password",
"disallow-user-registration": "Impedisci registrazione utente",
"monday": "Lunedì",
"saturday": "Sabato",
"sunday": "Domenica",
"week-start-day": "Giorno inizio settimana"
},
"memo": {
"content-length-limit": "Massima lunghezza contenuto (byte)",
"enable-blur-nsfw-content": "Abilita sfocatura contenuti sensibili (NSFW)",
"enable-memo-comments": "Abilita commenti memo",
"enable-memo-location": "Abilita posizione memo",
"reactions": "Reazioni",
"title": "Impostazioni memo",
"label": "Memo"
},
"webhook": {
"create-dialog": { "create-dialog": {
"an-easy-to-remember-name": "Nome facile da ricordare", "an-easy-to-remember-name": "Nome facile da ricordare",
"create-webhook": "Crea webhook", "create-webhook": "Crea webhook",
......
This diff is collapsed.
This diff is collapsed.
...@@ -38,7 +38,15 @@ ...@@ -38,7 +38,15 @@
"created-at": "생성일", "created-at": "생성일",
"database": "데이터베이스", "database": "데이터베이스",
"day": "일", "day": "일",
"days": "일", "days": {
"fri": "금",
"mon": "월",
"sat": "토",
"sun": "일",
"thu": "목",
"tue": "화",
"wed": "수"
},
"delete": "삭제", "delete": "삭제",
"description": "설명", "description": "설명",
"edit": "편집", "edit": "편집",
...@@ -108,15 +116,6 @@ ...@@ -108,15 +116,6 @@
"visibility": "공개 범위", "visibility": "공개 범위",
"yourself": "자기 자신" "yourself": "자기 자신"
}, },
"days": {
"fri": "금",
"mon": "월",
"sat": "토",
"sun": "일",
"thu": "목",
"tue": "화",
"wed": "수"
},
"editor": { "editor": {
"add-your-comment-here": "여기에 댓글을 추가하세요...", "add-your-comment-here": "여기에 댓글을 추가하세요...",
"any-thoughts": "떠오르는 게 있나요...", "any-thoughts": "떠오르는 게 있나요...",
...@@ -127,11 +126,6 @@ ...@@ -127,11 +126,6 @@
"saving": "저장 중...", "saving": "저장 중...",
"slash-commands": "명령어를 보시려면 /를 입력하세요." "slash-commands": "명령어를 보시려면 /를 입력하세요."
}, },
"filters": {
"has-code": "코드있음",
"has-link": "링크있음",
"has-task-list": "할일목록있음"
},
"inbox": { "inbox": {
"failed-to-load": "알림함 항목을 불러오지 못했습니다", "failed-to-load": "알림함 항목을 불러오지 못했습니다",
"memo-comment": "{{user}}님이 {{memo}}에 댓글을 남겼습니다.", "memo-comment": "{{user}}님이 {{memo}}에 댓글을 남겼습니다.",
...@@ -162,7 +156,11 @@ ...@@ -162,7 +156,11 @@
"direction-asc": "오름차순", "direction-asc": "오름차순",
"direction-desc": "내림차순", "direction-desc": "내림차순",
"display-time": "표시 시간", "display-time": "표시 시간",
"filters": "필터", "filters": {
"has-code": "코드있음",
"has-link": "링크있음",
"has-task-list": "할일목록있음"
},
"links": "링크", "links": "링크",
"list": "목록", "list": "목록",
"load-more": "더보기", "load-more": "더보기",
...@@ -251,53 +249,7 @@ ...@@ -251,53 +249,7 @@
"go-to-home": "홈으로" "go-to-home": "홈으로"
}, },
"setting": { "setting": {
"access-token-section": { "member": {
"access-token-copied-to-clipboard": "액세스 토큰이 복사되었습니다",
"access-token-deleted": "액세스 토큰 `{{description}}`이 삭제되었습니다",
"access-token-deletion": "액세스 토큰 {{description}}을 삭제하시겠습니까? 이 행동은 되돌릴 수 없습니다.",
"access-token-deletion-description": "이 작업은 되돌릴 수 없습니다. 이 토큰을 사용하는 서비스들은 새 토큰을 사용하도록 업데이트해야 합니다.",
"create-dialog": {
"access-token-created": "액세스 토큰 `{{description}}`이 생성되었습니다",
"create-access-token": "액세스 토큰 생성",
"created-at": "생성일",
"description": "설명",
"duration-1m": "1개월",
"duration-8h": "8시간",
"duration-never": "영구",
"expiration": "만료",
"expires-at": "만료일",
"some-description": "설명..."
},
"description": "계정의 모든 액세스 토큰 목록입니다.",
"title": "액세스 토큰",
"token": "토큰"
},
"account-section": {
"change-password": "비밀번호 변경",
"email-note": "선택 사항",
"export-memos": "메모 내보내기",
"nickname-note": "배너에 표시됨",
"openapi-reset": "OpenAPI 키 초기화",
"openapi-sample-post": "안녕, {{url}} ! #memo",
"openapi-title": "OpenAPI",
"reset-api": "API 초기화",
"title": "계정 정보",
"update-information": "정보 변경",
"username-note": "로그인하는 데 사용됨"
},
"instance-section": {
"disallow-change-nickname": "닉네임 변경 금지",
"disallow-change-username": "유저네임 변경 금지",
"disallow-password-auth": "비밀번호 인증 금지",
"disallow-user-registration": "회원가입 금지",
"monday": "월요일",
"saturday": "토요일",
"sunday": "일요일",
"week-start-day": "주 시작 요일"
},
"member": "멤버",
"member-list": "멤버 목록",
"member-section": {
"admin": "관리자", "admin": "관리자",
"archive-member": "멤버 보관처리", "archive-member": "멤버 보관처리",
"archive-success": "{{username}}님이 성공적으로 보관처리되었습니다", "archive-success": "{{username}}님이 성공적으로 보관처리되었습니다",
...@@ -309,30 +261,24 @@ ...@@ -309,30 +261,24 @@
"delete-warning": "멤버 {{username}}의 계정을 완전히 삭제하시겠습니까? 이 행동은 되돌릴 수 없습니다.", "delete-warning": "멤버 {{username}}의 계정을 완전히 삭제하시겠습니까? 이 행동은 되돌릴 수 없습니다.",
"delete-warning-description": "이 작업은 되돌릴 수 없습니다.", "delete-warning-description": "이 작업은 되돌릴 수 없습니다.",
"restore-success": "{{username}}님이 성공적으로 복구되었습니다", "restore-success": "{{username}}님이 성공적으로 복구되었습니다",
"user": "사용자" "user": "사용자",
"label": "멤버",
"list-title": "멤버 목록"
}, },
"memo-related": "메모", "my-account": {
"memo-related-settings": { "label": "내 계정"
"content-length-limit": "내용 길이 제한 (바이트)",
"enable-blur-nsfw-content": "민감한(성인) 콘텐츠 블러 처리 활성화",
"enable-memo-comments": "메모 댓글 활성화",
"enable-memo-location": "메모 위치 활성화",
"reactions": "반응",
"title": "메모 관련 설정"
}, },
"my-account": "내 계정", "preference": {
"preference": "개인 설정",
"preference-section": {
"default-memo-sort-option": "메모에 표시할 시각", "default-memo-sort-option": "메모에 표시할 시각",
"default-memo-visibility": "메모 공개 범위 기본값", "default-memo-visibility": "메모 공개 범위 기본값",
"theme": "테마" "theme": "테마",
"label": "개인 설정"
}, },
"shortcut": { "shortcut": {
"delete-confirm": "바로가기 `{{title}}`를 정말로 삭제하시겠습니까?", "delete-confirm": "바로가기 `{{title}}`를 정말로 삭제하시겠습니까?",
"delete-success": "바로가기 `{{title}}`가 성공적으로 삭제되었습니다" "delete-success": "바로가기 `{{title}}`가 성공적으로 삭제되었습니다"
}, },
"sso": "SSO", "sso": {
"sso-section": {
"authorization-endpoint": "인증 엔드포인트", "authorization-endpoint": "인증 엔드포인트",
"client-id": "클라이언트 ID", "client-id": "클라이언트 ID",
"client-secret": "클라이언트 비밀키", "client-secret": "클라이언트 비밀키",
...@@ -354,10 +300,10 @@ ...@@ -354,10 +300,10 @@
"template": "템플릿", "template": "템플릿",
"token-endpoint": "토큰 엔드포인트", "token-endpoint": "토큰 엔드포인트",
"update-sso": "SSO 수정", "update-sso": "SSO 수정",
"user-endpoint": "유저 엔드포인트" "user-endpoint": "유저 엔드포인트",
"label": "SSO"
}, },
"storage": "저장소", "storage": {
"storage-section": {
"accesskey": "액세스 키", "accesskey": "액세스 키",
"accesskey-placeholder": "액세스 키 / 액세스 ID", "accesskey-placeholder": "액세스 키 / 액세스 ID",
"bucket": "버킷", "bucket": "버킷",
...@@ -389,10 +335,10 @@ ...@@ -389,10 +335,10 @@
"url-prefix-placeholder": "URL 앞에 붙을 커스텀 접두사, 선택 사항", "url-prefix-placeholder": "URL 앞에 붙을 커스텀 접두사, 선택 사항",
"url-suffix": "URL 접미사", "url-suffix": "URL 접미사",
"url-suffix-placeholder": "URL 뒤에 붙을 커스텀 접미사, 선택 사항", "url-suffix-placeholder": "URL 뒤에 붙을 커스텀 접미사, 선택 사항",
"warning-text": "저장소 서비스 \"{{name}}\"을(를) 삭제하시겠습니까? 이 행동은 되돌릴 수 없습니다" "warning-text": "저장소 서비스 \"{{name}}\"을(를) 삭제하시겠습니까? 이 행동은 되돌릴 수 없습니다",
"label": "저장소"
}, },
"system": "시스템", "system": {
"system-section": {
"additional-script": "추가 스크립트", "additional-script": "추가 스크립트",
"additional-script-placeholder": "추가 JavaScript 코드", "additional-script-placeholder": "추가 JavaScript 코드",
"additional-style": "추가 스타일", "additional-style": "추가 스타일",
...@@ -416,10 +362,64 @@ ...@@ -416,10 +362,64 @@
"max-upload-size-hint": "권장값은 32 MiB입니다.", "max-upload-size-hint": "권장값은 32 MiB입니다.",
"removed-completed-task-list-items": "완료된 할 일 삭제 활성화", "removed-completed-task-list-items": "완료된 할 일 삭제 활성화",
"server-name": "서버 이름", "server-name": "서버 이름",
"title": "일반" "title": "일반",
"label": "시스템"
}, },
"version": "버전", "version": "버전",
"webhook-section": { "access-token": {
"access-token-copied-to-clipboard": "액세스 토큰이 복사되었습니다",
"access-token-deleted": "액세스 토큰 `{{description}}`이 삭제되었습니다",
"access-token-deletion": "액세스 토큰 {{description}}을 삭제하시겠습니까? 이 행동은 되돌릴 수 없습니다.",
"access-token-deletion-description": "이 작업은 되돌릴 수 없습니다. 이 토큰을 사용하는 서비스들은 새 토큰을 사용하도록 업데이트해야 합니다.",
"create-dialog": {
"access-token-created": "액세스 토큰 `{{description}}`이 생성되었습니다",
"create-access-token": "액세스 토큰 생성",
"created-at": "생성일",
"description": "설명",
"duration-1m": "1개월",
"duration-8h": "8시간",
"duration-never": "영구",
"expiration": "만료",
"expires-at": "만료일",
"some-description": "설명..."
},
"description": "계정의 모든 액세스 토큰 목록입니다.",
"title": "액세스 토큰",
"token": "토큰"
},
"account": {
"change-password": "비밀번호 변경",
"email-note": "선택 사항",
"export-memos": "메모 내보내기",
"nickname-note": "배너에 표시됨",
"openapi-reset": "OpenAPI 키 초기화",
"openapi-sample-post": "안녕, {{url}} ! #memo",
"openapi-title": "OpenAPI",
"reset-api": "API 초기화",
"title": "계정 정보",
"update-information": "정보 변경",
"username-note": "로그인하는 데 사용됨"
},
"instance": {
"disallow-change-nickname": "닉네임 변경 금지",
"disallow-change-username": "유저네임 변경 금지",
"disallow-password-auth": "비밀번호 인증 금지",
"disallow-user-registration": "회원가입 금지",
"monday": "월요일",
"saturday": "토요일",
"sunday": "일요일",
"week-start-day": "주 시작 요일"
},
"memo": {
"content-length-limit": "내용 길이 제한 (바이트)",
"enable-blur-nsfw-content": "민감한(성인) 콘텐츠 블러 처리 활성화",
"enable-memo-comments": "메모 댓글 활성화",
"enable-memo-location": "메모 위치 활성화",
"reactions": "반응",
"title": "메모 관련 설정",
"label": "메모"
},
"webhook": {
"create-dialog": { "create-dialog": {
"an-easy-to-remember-name": "기억하기 쉬운 이름", "an-easy-to-remember-name": "기억하기 쉬운 이름",
"create-webhook": "Webhook 생성", "create-webhook": "Webhook 생성",
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
...@@ -40,7 +40,7 @@ const SharedMemo = () => { ...@@ -40,7 +40,7 @@ const SharedMemo = () => {
return ( return (
<div className="flex h-screen flex-col items-center justify-center gap-3 text-center"> <div className="flex h-screen flex-col items-center justify-center gap-3 text-center">
<AlertCircleIcon className="h-8 w-8 text-muted-foreground" /> <AlertCircleIcon className="h-8 w-8 text-muted-foreground" />
<p className="text-sm text-muted-foreground">{t("memo-share.invalid-link")}</p> <p className="text-sm text-muted-foreground">{t("memo.share.invalid-link")}</p>
</div> </div>
); );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment