Compare commits

..
Author SHA1 Message Date
Calum H. (IMB11) ae67af0314 fix: retro in app 2026-07-28 13:09:08 +01:00
Prospector d026afbe43 merge 2026-07-27 13:20:44 -07:00
Prospector a4b13a7697 Merge remote-tracking branch 'origin/main' into prospector/fix-authorized-apps-settings
# Conflicts:
#	apps/frontend/src/pages/user/[user].vue
2026-07-27 13:17:45 -07:00
7c4190fb9c feat: move users page to xplat page system (#6889)
* feat: move users page to xplat

* feat: stop doing tauri plugin open for user links

* feat: qa

* fix: qa

* fix: qa

* fix: comment

* fix: prepr

* prepr

* prepr

* prepr

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2026-07-27 20:02:33 +00:00
SychicandGitHub ebc7cac8b0 feat(labrinth): user blocking (#6837)
* feat(labrinth): user blocking

still wip, nothing is hooked up

* style(labrinth): cargo fmt

* refactor(labrinth): move block/unblock routes to public api

* feat(labrinth): block friend requests if blocked

* feat(labrinth): remove friend/request on block

* feat(labrinth): get blocked users endpoint
2026-07-27 19:41:57 +00:00
François-Xavier TalbotandGitHub 224c28f29d feat: more details linked account info for support/moderation (#6897)
* feat: show discord + steam ID + github profile in "Show details" user modal

* pnpm intl:extract
2026-07-27 19:20:38 +00:00
aecsocketandGitHub e192f6a0af feat: define default search vars in env (#6902)
* feat: define default search vars in env

* fix
2026-07-27 19:17:14 +00:00
ProspectorandGitHub c938ca3ceb update toggle filter design (#6888)
change toggle filters to just use exclude-only filters, same design as the others.
2026-07-27 11:49:52 -07:00
François-Xavier TalbotandGitHub 20adb0f16a fix(labrinth): let through emails when neverbounce hangs or fails (#6898)
* fix(labrinth): let through emails when neverbounce hangs or fails

* chore(ci): stack size
2026-07-27 18:10:54 +00:00
Prospector 011ea19a77 fix authorized apps settings, redesign, fix retro theme vars 2026-07-27 11:08:41 -07:00
Calum H.andGitHub 354940a8c6 fix: search resetting to page 1 (#6896) 2026-07-27 15:09:13 +00:00
4c2e64e31f fix: try fix install jobs being bricked/improve tracing (#6890)
* fix: try fix install jobs being bricked/improve tracing

* fix: rev cmts

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2026-07-27 14:47:46 +00:00
Modrinth BotandGitHub 372e2bf47b New translations from Crowdin (main) (#6892) 2026-07-27 10:46:42 +00:00
Magnus JensenandGitHub 36d786f504 Fix vertical mis-aligned badge in notifcations (#6887)
vertical align badge
2026-07-26 20:25:19 +00:00
Prospector 1a1e1ea448 changelog 2026-07-26 12:22:50 -07:00
ProspectorandGitHub 24240d514a update 24-48hrs -> within a week to give more realistic estimate (#6886) 2026-07-26 12:06:31 -07:00
aecsocketandGitHub 158de019a6 fix: search indexing performance and batching (#6521)
* Add consume batching delay

* maybe fix

* max batch size

* more logging

* parallelize remove tasks

* delete/upsert project/version messages

* prepare

* more logging

* log number of docs

* try more targeted, homogenous version change ops

* ensure only necessary fields are serialized into typesense

* disable index background task

* wip: script changes

* don't facet by project id

* fix

* fix clippy

* batch by document and dedup loaders

* fix test

* wip: projects/versions collections

* clean up SearchBackend interface

* cleanup pass

* cleanup pass 2

* standardise fn names

* cleanup pass

* fix compile

* factor out filter rewriting

* query perf

* put categories into the project doc

* wip: search filter AST

* doc comment

* more AST normalization

* (temp) convert search request errors into internal errors

* implement unary NOT

* tombi fmt

* fix tests

* revert request error

* try increase stack size
2026-07-26 14:55:00 +00:00
Prospector 54cc1898fa changelog 2026-07-25 18:32:56 -07:00
b96a1cfa58 fix: allow crowdin badges to skip image proxy (#6861)
Add crowdin to allowed hostnames

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2026-07-26 01:14:21 +00:00
59a794ebb1 Minor UX UI tweaks (#6596)
* feat(ux): Add letter counters to the bio and username

the username letter counter only appears after the 30th letter to not encourage people to have long usernames for no reason

* feat(ux): Added "Expand" button to bio on mobile

* Revert "feat(ux): Added "Expand" button to bio on mobile"

This reverts commit f7e036002a.

* prepr

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2026-07-26 00:47:14 +00:00
b4380aee87 feat(moderation): modpack scanning improvements (#6843)
* feat(moderation): make modpack scanning improvements

* oopsie

* feat(moderation): batch size for modpack scan

* feat: i18n for modpack scan modal

* chore: remove debug line

* run intl:extract and prepr

---------

Co-authored-by: coolbot100s <76798835+coolbot100s@users.noreply.github.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2026-07-26 00:14:09 +00:00
François-Xavier TalbotandGitHub 2cf71a53f2 chore(ci): increase rust stack size (#6874) 2026-07-26 00:11:08 +00:00
coolbotandGitHub 44be49416b feat: update private use moderation msgs and stage (#6872) 2026-07-26 00:10:48 +00:00
ProspectorandGitHub 7f07e66e4f fix: users not seeing moderation page banners and info 🤦 (#6882) 2026-07-25 17:10:24 -07:00
197 changed files with 13704 additions and 6066 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
# Windows has stack overflows when calling from Tauri, so we increase the default stack size used by the compiler
[target.'cfg(windows)']
[target."cfg(windows)"]
rustflags = ["-C", "link-args=/STACK:16777220"]
[target.x86_64-pc-windows-msvc]
+1 -1
View File
@@ -81,7 +81,7 @@ jobs:
REDIS_CONNECTION_TYPE: multiplexed
REDIS_URL: redis://127.0.0.1:7000,redis://127.0.0.1:7001,redis://127.0.0.1:7002,redis://127.0.0.1:7003,redis://127.0.0.1:7004,redis://127.0.0.1:7005
# Avoid stack overflows in tests
RUST_MIN_STACK: 33554432
RUST_MIN_STACK: 134217728
steps:
- name: Check out code
Generated
+2
View File
@@ -5465,6 +5465,7 @@ dependencies = [
"bytes",
"censor",
"chrono",
"chumsky",
"clap 4.5.48",
"clickhouse",
"color-eyre",
@@ -5518,6 +5519,7 @@ dependencies = [
"serde_with",
"sha1 0.10.6",
"sha2",
"smallvec",
"spdx",
"sqlx",
"sqlx-tracing",
+2
View File
@@ -59,6 +59,7 @@ bytes = "1.10.1"
censor = "0.3.0"
chardetng = "0.1.17"
chrono = "0.4.42"
chumsky = "0.9.3"
cidre = { version = "0.15.0", default-features = false, features = [
"macos_15_0"
] }
@@ -192,6 +193,7 @@ sha1 = "0.10.6"
sha1_smol = { version = "1.0.1", features = ["std"] }
sha2 = "0.10.9"
shlex = "1.3.0"
smallvec = "1.15.1"
spdx = "0.12.0"
sqlx = { version = "0.8.6", default-features = false }
sqlx-tracing = { path = "packages/sqlx-tracing" }
+8 -4
View File
@@ -115,6 +115,7 @@ import { mergeUrlQuery, parseModrinthLink } from '@/helpers/project-links.ts'
import { get as getSettings, set as setSettings } from '@/helpers/settings.ts'
import { get_opening_command, initialize_state } from '@/helpers/state'
import { hasActivePride26Midas, hasMidasBadge } from '@/helpers/user-campaigns.ts'
import { parse_modrinth_user_link } from '@/helpers/users'
import {
areUpdatesEnabled,
enqueueUpdateForInstallation,
@@ -265,7 +266,7 @@ providePageContext({
themeStore.getFeatureFlag('server_ram_as_bytes_always_on'),
),
},
openExternalUrl: (url) => openUrl(url),
openExternalUrl: (url) => void openUrl(url),
})
provideModalBehavior({
noblur: computed(() => !themeStore.advancedRendering),
@@ -966,7 +967,7 @@ async function declineServerInviteNotification(notification) {
function openServerInviteInviterProfile(inviterName) {
if (!inviterName) return
openUrl(`${config.siteUrl}/user/${encodeURIComponent(inviterName)}`)
void router.push(`/user/${encodeURIComponent(inviterName)}`)
}
async function handleLiveNotification(notification) {
@@ -1407,8 +1408,11 @@ function handleClick(e) {
!target.href.startsWith('https://tauri.localhost') &&
!target.href.startsWith('http://tauri.localhost')
) {
const userPath = parse_modrinth_user_link(target.href)
const parsed = parseModrinthLink(target.href)
if (target.target !== '_blank' && parsed) {
if (userPath) {
void router.push(userPath)
} else if (target.target !== '_blank' && parsed) {
void openModrinthProjectLinkInApp(parsed)
} else {
openUrl(target.href)
@@ -1654,7 +1658,7 @@ provideAppUpdateDownloadProgress(appUpdateDownload)
:options="[
{
id: 'view-profile',
action: () => openUrl('https://modrinth.com/user/' + credentials.user.username),
action: () => router.push(`/user/${encodeURIComponent(credentials.user.username)}`),
},
{
id: 'sign-out',
@@ -8,13 +8,14 @@ import {
OverflowMenu,
useVIntl,
} from '@modrinth/ui'
import { openUrl } from '@tauri-apps/plugin-opener'
import { useTemplateRef } from 'vue'
import { useRouter } from 'vue-router'
import ContextMenu from '@/components/ui/ContextMenu.vue'
import type { FriendWithUserData } from '@/helpers/friends.ts'
const { formatMessage } = useVIntl()
const router = useRouter()
const props = withDefaults(
defineProps<{
@@ -54,7 +55,7 @@ function createContextMenuOptions(friend: FriendWithUserData) {
}
function openProfile(username: string) {
openUrl('https://modrinth.com/user/' + username)
void router.push(`/user/${encodeURIComponent(username)}`)
}
const friendOptions = useTemplateRef('friendOptions')
@@ -186,8 +186,8 @@ import {
type TeleportOverflowMenuItem,
useVIntl,
} from '@modrinth/ui'
import { openUrl } from '@tauri-apps/plugin-opener'
import { computed } from 'vue'
import { useRouter } from 'vue-router'
import type { GameInstance } from '@/helpers/types'
@@ -247,6 +247,7 @@ const messages = defineMessages({
defaultMessage: "This instance's content is being shared to other users.",
},
})
const router = useRouter()
const props = withDefaults(
defineProps<{
@@ -331,7 +332,7 @@ const sharedInstanceManagerLabel = computed(() =>
const sharedInstanceManagerAction = computed(() => {
const manager = props.sharedInstanceManager
if (manager?.type !== 'user') return undefined
return () => openUrl(`https://modrinth.com/user/${encodeURIComponent(manager.name)}`)
return () => router.push(`/user/${encodeURIComponent(manager.name)}`)
})
const playtimeLabel = computed(() => {
if (props.timePlayed <= 0) return formatMessage(messages.neverPlayed)
@@ -1,6 +1,6 @@
<script setup lang="ts">
import { Combobox, defineMessages, ThemeSelector, Toggle, useVIntl } from '@modrinth/ui'
import { ref, watch } from 'vue'
import { computed, ref, watch } from 'vue'
import { get, set } from '@/helpers/settings.ts'
import { getOS } from '@/helpers/utils'
@@ -123,6 +123,11 @@ const messages = defineMessages({
const os = ref(await getOS())
const settings = ref(await get())
const themeOptions = computed(() =>
themeStore
.getThemeOptions()
.filter((theme) => theme !== 'retro' || themeStore.devMode || settings.value.theme === 'retro'),
)
watch(
settings,
@@ -146,7 +151,7 @@ watch(
}
"
:current-theme="settings.theme"
:theme-options="themeStore.getThemeOptions()"
:theme-options="themeOptions"
system-theme-color="system"
/>
@@ -1,6 +1,14 @@
<script setup>
import { BoxIcon, FolderOpenIcon, FolderSearchIcon, TrashIcon } from '@modrinth/assets'
import { ButtonStyled, injectNotificationManager, Slider, StyledInput } from '@modrinth/ui'
import {
ButtonStyled,
defineMessages,
injectNotificationManager,
Slider,
StyledInput,
Toggle,
useVIntl,
} from '@modrinth/ui'
import { open } from '@tauri-apps/plugin-dialog'
import { ref, watch } from 'vue'
@@ -11,9 +19,23 @@ import { showAppDbBackupsFolder } from '@/helpers/utils.js'
import { useTheming } from '@/store/state'
const { handleError } = injectNotificationManager()
const { formatMessage } = useVIntl()
const themeStore = useTheming()
const settings = ref(await get())
const purgeCacheConfirmModal = ref(null)
const alwaysShowCopyDetailsFlag = 'always_show_copy_details'
const messages = defineMessages({
alwaysShowCopyDetailsTitle: {
id: 'app.resource-management-settings.always-show-copy-details.title',
defaultMessage: 'Always show copy details',
},
alwaysShowCopyDetailsDescription: {
id: 'app.resource-management-settings.always-show-copy-details.description',
defaultMessage:
'Show the Copy details action while an install is queued or running. It is always available for failed or interrupted installs.',
},
})
watch(
settings,
@@ -154,6 +176,28 @@ async function findLauncherDir() {
</p>
</div>
<div class="flex items-center justify-between gap-4">
<div>
<h2 class="m-0 text-lg font-semibold text-contrast">
{{ formatMessage(messages.alwaysShowCopyDetailsTitle) }}
</h2>
<p class="m-0 mt-1">
{{ formatMessage(messages.alwaysShowCopyDetailsDescription) }}
</p>
</div>
<Toggle
id="always-show-copy-details"
:model-value="themeStore.getFeatureFlag(alwaysShowCopyDetailsFlag)"
@update:model-value="
() => {
const newValue = !themeStore.getFeatureFlag(alwaysShowCopyDetailsFlag)
themeStore.featureFlags[alwaysShowCopyDetailsFlag] = newValue
settings.feature_flags[alwaysShowCopyDetailsFlag] = newValue
}
"
/>
</div>
<div class="flex flex-col gap-2.5">
<h2 class="mt-0 m-0 text-lg font-semibold text-contrast">App database backups</h2>
<button id="open-db-backups-folder" class="btn min-w-max" @click="openDbBackupsFolder">
@@ -6,11 +6,9 @@ import {
injectPopupNotificationManager,
} from '@modrinth/ui'
import { useQueryClient } from '@tanstack/vue-query'
import { openUrl } from '@tauri-apps/plugin-opener'
import { type Ref, watch } from 'vue'
import { useRouter } from 'vue-router'
import { config } from '@/config'
import { get_user } from '@/helpers/cache'
import { toError } from '@/helpers/errors'
import {
@@ -216,7 +214,7 @@ export function useSharedInstanceInviteHandler(
markNotificationRead(notification).catch((error) => handleError(toError(error))),
onOpenActor: () => {
if (invite.invitedByUsername) {
openUrl(`${config.siteUrl}/user/${encodeURIComponent(invite.invitedByUsername)}`)
void router.push(`/user/${encodeURIComponent(invite.invitedByUsername)}`)
}
},
},
@@ -23,6 +23,7 @@ import {
type InstallProgress,
} from '@/helpers/install'
import { get_many as getInstances } from '@/helpers/instance'
import { useTheming } from '@/store/state'
const messages = defineMessages({
installs: {
@@ -221,13 +222,6 @@ const failureSummaryMessages = defineMessages({
})
const visibleJobStatuses = new Set<InstallJobStatus>(['queued', 'running', 'failed', 'interrupted'])
const copyDetailsStallMs = 30_000
interface ProgressSnapshot {
signature: string
changedAt: number
timeout: number | null
}
function getDisplayIconUrl(icon: string | null | undefined): string | null {
if (!icon) return null
@@ -241,6 +235,7 @@ export async function useInstallJobNotifications(opts: {
onChange: () => void
}) {
const { formatMessage } = useVIntl()
const themeStore = useTheming()
const jobs = ref<InstallJobSnapshot[]>([])
const iconUrls = ref<Record<string, string | null>>({})
const instanceNames = ref<Record<string, string>>({})
@@ -250,7 +245,6 @@ export async function useInstallJobNotifications(opts: {
let metadataRequest = 0
let nextJobOrder = 0
const copiedResetTimeouts = new Map<string, number>()
const progressSnapshots = new Map<string, ProgressSnapshot>()
function getTitle(job: InstallJobSnapshot): string {
if (job.display?.title) return job.display.title
@@ -421,116 +415,14 @@ export async function useInstallJobNotifications(opts: {
return job.status === 'failed' || job.status === 'interrupted'
}
function canShowStalledProgressDetails(job: InstallJobSnapshot): boolean {
return (
job.status === 'running' &&
job.phase !== 'preparing_instance' &&
job.phase !== 'finalizing' &&
job.phase !== 'rolling_back'
)
}
function getJobSortRank(job: InstallJobSnapshot): number {
if (isTerminalJob(job)) return 0
if (job.status === 'queued' || job.phase === 'preparing_instance') return 2
return 1
}
function progressSignature(job: InstallJobSnapshot): string {
const progress = job.progress
const secondary = progress?.secondary
return [
job.status,
job.phase,
JSON.stringify(job.details),
progress?.current ?? '',
progress?.total ?? '',
secondary?.current ?? '',
secondary?.total ?? '',
].join(':')
}
function clearCopied(jobId: string) {
if (!copiedJobIds.value.has(jobId)) {
return
}
const timeout = copiedResetTimeouts.get(jobId)
if (timeout != null) {
window.clearTimeout(timeout)
copiedResetTimeouts.delete(jobId)
}
const nextCopiedJobIds = new Set(copiedJobIds.value)
nextCopiedJobIds.delete(jobId)
copiedJobIds.value = nextCopiedJobIds
}
function clearProgressSnapshot(jobId: string) {
const snapshot = progressSnapshots.get(jobId)
if (snapshot?.timeout != null) {
window.clearTimeout(snapshot.timeout)
}
progressSnapshots.delete(jobId)
}
function scheduleStaleProgressRefresh(jobId: string) {
const snapshot = progressSnapshots.get(jobId)
if (!snapshot) {
return
}
snapshot.timeout = window.setTimeout(() => {
const snapshot = progressSnapshots.get(jobId)
if (!snapshot) {
return
}
snapshot.timeout = null
opts.onChange()
}, copyDetailsStallMs)
}
function syncProgressSnapshots(nextJobs: InstallJobSnapshot[]) {
const trackedJobIds = new Set<string>()
const now = Date.now()
for (const job of nextJobs) {
if (!canShowStalledProgressDetails(job)) {
continue
}
trackedJobIds.add(job.job_id)
const signature = progressSignature(job)
const snapshot = progressSnapshots.get(job.job_id)
if (snapshot?.signature === signature) {
continue
}
clearProgressSnapshot(job.job_id)
clearCopied(job.job_id)
progressSnapshots.set(job.job_id, {
signature,
changedAt: now,
timeout: null,
})
scheduleStaleProgressRefresh(job.job_id)
}
for (const jobId of progressSnapshots.keys()) {
if (!trackedJobIds.has(jobId)) {
clearProgressSnapshot(jobId)
}
}
}
function hasStalledProgress(job: InstallJobSnapshot): boolean {
const snapshot = progressSnapshots.get(job.job_id)
return !!snapshot && Date.now() - snapshot.changedAt >= copyDetailsStallMs
}
function shouldShowCopyDetails(job: InstallJobSnapshot): boolean {
return isTerminalJob(job) || (canShowStalledProgressDetails(job) && hasStalledProgress(job))
return isTerminalJob(job) || themeStore.getFeatureFlag('always_show_copy_details')
}
function isCopied(job: InstallJobSnapshot): boolean {
@@ -607,6 +499,16 @@ export async function useInstallJobNotifications(opts: {
return buttons
}
function getDismissHandler(job: InstallJobSnapshot): (() => Promise<void>) | undefined {
if (isTerminalJob(job)) {
return async () => {
await install_job_dismiss(job.job_id).catch(opts.handleError)
await refresh()
}
}
return undefined
}
function setJobs(nextJobs: InstallJobSnapshot[]) {
for (const job of nextJobs) {
if (!jobOrder.has(job.job_id)) {
@@ -615,7 +517,6 @@ export async function useInstallJobNotifications(opts: {
}
const visibleJobs = nextJobs.filter((job) => visibleJobStatuses.has(job.status))
syncProgressSnapshots(visibleJobs)
jobs.value = visibleJobs.sort(
(a, b) =>
@@ -642,12 +543,8 @@ export async function useInstallJobNotifications(opts: {
progressCurrent: isTerminalJob(job) ? undefined : progress?.current,
progressTotal: isTerminalJob(job) ? undefined : progress?.total,
buttons: getButtons(job),
onDismiss: isTerminalJob(job)
? async () => {
await install_job_dismiss(job.job_id).catch(opts.handleError)
await refresh()
}
: undefined,
dismissible: isTerminalJob(job),
onDismiss: getDismissHandler(job),
}
}),
)
@@ -730,8 +627,8 @@ export async function useInstallJobNotifications(opts: {
void refreshMetadata()
}
await refresh(false)
const unlisten = await install_job_listener((job: InstallJobSnapshot) => applyJobUpdate(job))
await refresh(false)
return {
active: computed(() => jobs.value.length > 0),
@@ -743,9 +640,6 @@ export async function useInstallJobNotifications(opts: {
for (const timeout of copiedResetTimeouts.values()) {
window.clearTimeout(timeout)
}
for (const jobId of progressSnapshots.keys()) {
clearProgressSnapshot(jobId)
}
unlisten()
},
}
+1 -1
View File
@@ -189,7 +189,7 @@ type AppSettings = {
max_concurrent_downloads: number
max_concurrent_writes: number
theme: 'dark' | 'light' | 'oled'
theme: 'dark' | 'light' | 'oled' | 'retro' | 'system'
default_page: 'Home' | 'Library'
collapsed_navigation: boolean
advanced_rendering: boolean
+51 -6
View File
@@ -1,11 +1,56 @@
import type { Labrinth } from '@modrinth/api-client'
import { invoke } from '@tauri-apps/api/core'
export type SearchUser = {
id: string
username: string
avatar_url: string | null
// Converts user profile links from rendered Markdown/any dynamic content into app routes.
export function parse_modrinth_user_link(href: string): string | null {
try {
const url = new URL(href)
if (url.hostname !== 'modrinth.com' && url.hostname !== 'www.modrinth.com') return null
const segments = url.pathname.split('/').filter(Boolean)
if (segments[0]?.toLowerCase() !== 'user' || !segments[1] || segments.length > 3) return null
const path = `/user/${encodeURIComponent(decodeURIComponent(segments[1]))}`
return segments[2] ? `${path}/${encodeURIComponent(decodeURIComponent(segments[2]))}` : path
} catch {
return null
}
}
export async function search_user(query: string): Promise<SearchUser[]> {
return await invoke<SearchUser[]>('plugin:users|search_user', { query })
export async function search_user(query: string): Promise<Labrinth.Users.v3.SearchUser[]> {
return await invoke<Labrinth.Users.v3.SearchUser[]>('plugin:users|search_user', { query })
}
export async function get_user_profile(userId: string): Promise<Labrinth.Users.v3.User> {
return await invoke<Labrinth.Users.v3.User>('plugin:users|get_user_profile', { userId })
}
export async function get_user_projects(userId: string): Promise<Labrinth.Projects.v2.Project[]> {
return await invoke<Labrinth.Projects.v2.Project[]>('plugin:users|get_user_projects', {
userId,
})
}
export async function get_user_organizations(
userId: string,
): Promise<Labrinth.Organizations.v3.Organization[]> {
return await invoke<Labrinth.Organizations.v3.Organization[]>(
'plugin:users|get_user_organizations',
{ userId },
)
}
export async function get_user_collections(
userId: string,
): Promise<Labrinth.Collections.Collection[]> {
return await invoke<Labrinth.Collections.Collection[]>('plugin:users|get_user_collections', {
userId,
})
}
export async function patch_user(
userId: string,
patch: Partial<Pick<Labrinth.Users.v3.User, 'badges' | 'role'>>,
): Promise<void> {
await invoke('plugin:users|patch_user', { userId, patch })
}
@@ -29,6 +29,9 @@
"app.action-bar.install.summary.app-closing": {
"message": "Annulleret på grund af appen blev lukket"
},
"app.action-bar.install.summary.bad-modpack-file": {
"message": "Kunne ikke indlæse modpack"
},
"app.action-bar.install.summary.canceled": {
"message": "Annulleret"
},
@@ -47,9 +50,45 @@
"app.action-bar.install.summary.instance-not-found": {
"message": "Instance kunne ikke blive fundet"
},
"app.action-bar.install.summary.invalid-file-path": {
"message": "Fil sti er ugyldig"
},
"app.action-bar.install.summary.invalid-modpack": {
"message": "Modpack data ugyldig"
},
"app.action-bar.install.summary.invalid-modpack-files": {
"message": "Modpack har ugyldig metadata"
},
"app.action-bar.install.summary.java-setup-failed": {
"message": "Java setup kunne ikke færdiggøres"
},
"app.action-bar.install.summary.loader-setup-failed": {
"message": "Loader setup fejlede"
},
"app.action-bar.install.summary.local-data-error": {
"message": "Kunne ikke opdatere lokal data"
},
"app.action-bar.install.summary.minecraft-setup-failed": {
"message": "Minecraft setup fejlede"
},
"app.action-bar.install.summary.modrinth-unreachable": {
"message": "Kunne ikke få forbindelse til Modrinth"
},
"app.action-bar.install.summary.no-write-permission": {
"message": "Ingen adgang til at skrive"
},
"app.action-bar.install.summary.pack-download-failed": {
"message": "Kunne ikke download pack"
},
"app.action-bar.install.summary.unexpected-error": {
"message": "Noget gik galt"
},
"app.action-bar.install.unknown-instance": {
"message": "Ukendt instance"
},
"app.action-bar.install.updating-shared-content": {
"message": "Opdatere delt indhold"
},
"app.action-bar.make-primary-instance": {
"message": "Gør til primære instance"
},
@@ -83,6 +122,15 @@
"app.action-bar.view-logs": {
"message": "Vis logs"
},
"app.ads-consent.accept": {
"message": "Tillad alle"
},
"app.ads-consent.body": {
"message": "Reklamer gør Modrinth muligt og finansiere skaber udbetalinger. Vores partnere må gemme og tilgå cookies i appen for at personliggøre reklamer og måle effektivitet."
},
"app.ads-consent.reject": {
"message": "Afvis alle"
},
"app.appearance-settings.advanced-rendering.description": {
"message": "Aktiverer avanceret gengivelse som sløringseffekter, der kan forårsage ydelsesproblemer uden hardwareaccelereret gengivelse."
},
@@ -224,6 +272,9 @@
"app.install.phase.preparing_java.downloading": {
"message": "Downloader Java {version}"
},
"app.instance.admonitions.shared-instance.added-label": {
"message": "Tilføjet"
},
"app.instance.confirm-delete.admonition-body": {
"message": "Al' data for din instance vil blive permanent slettet, dette inkludere dine verdener, konfigurationer, og alt installeret indhold."
},
@@ -269,12 +320,51 @@
"app.instance.mods.successfully-uploaded": {
"message": "Uploadet"
},
"app.instance.share.locked.empty-description-suffix": {
"message": "for at tilgå denne side."
},
"app.instance.share.locked.signed-out-heading": {
"message": "Ikke logget ind"
},
"app.instance.share.locked.switch-account-button": {
"message": "Skift konto"
},
"app.instance.share.locked.wrong-account-heading": {
"message": "Forkert konto"
},
"app.instance.share.remove-user-modal.effects-label": {
"message": "Hvad vil der ske?"
},
"app.instance.share.remove-user-modal.user-avatar-alt": {
"message": "{username}'s avatar"
},
"app.instance.share.sign-in.button": {
"message": "Log ind"
},
"app.instance.shared-instance-already-installed.install-anyway": {
"message": "Installer alligevel"
},
"app.instance.shared-instance-already-installed.instance": {
"message": "Instans"
},
"app.instance.shared-instance-wrong-account.sign-in-as-label": {
"message": "Log ind som"
},
"app.instance.worlds.add-server": {
"message": "Tilføj server"
},
"app.instance.worlds.browse-servers": {
"message": "Søg servere"
},
"app.instance.worlds.delete-world-modal.delete-button": {
"message": "Slet verden"
},
"app.instance.worlds.delete-world-modal.title": {
"message": "Slet verden"
},
"app.instance.worlds.delete-world-modal.warning-header": {
"message": "Sletter {name}"
},
"app.instance.worlds.filter-modded": {
"message": "Moddet"
},
@@ -293,18 +383,42 @@
"app.instance.worlds.no-worlds-heading": {
"message": "Ingen servere eller verdener tilføjet"
},
"app.instance.worlds.remove-server-modal.remove-button": {
"message": "Fjern server"
},
"app.instance.worlds.remove-server-modal.title": {
"message": "Fjern server"
},
"app.instance.worlds.remove-server-modal.warning-header": {
"message": "Fjerner {name}"
},
"app.instance.worlds.search-worlds-placeholder": {
"message": "Søg {count} verdener..."
},
"app.modal.install-to-play.additional-context": {
"message": "Yderligere kontekst"
},
"app.modal.install-to-play.delete-instance": {
"message": "Slet instans"
},
"app.modal.install-to-play.header": {
"message": "Installer for at spille"
},
"app.modal.install-to-play.install-anyway": {
"message": "Installer alligevel"
},
"app.modal.install-to-play.install-button": {
"message": "Installer"
},
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# mod} other {# mods}}"
},
"app.modal.install-to-play.report-image-too-large": {
"message": "Filen overskrider 1MiB størrelse begrænsning"
},
"app.modal.install-to-play.report-reason.spam": {
"message": "Spam"
},
"app.modal.install-to-play.shared-instance": {
"message": "Delt instance"
},
@@ -314,12 +428,33 @@
"app.modal.update-to-play.header": {
"message": "Opdater for at spille"
},
"app.modal.update-to-play.shared-instance-added-label": {
"message": "Tilføjede"
},
"app.modal.update-to-play.shared-instance-removed-label": {
"message": "Fjernede"
},
"app.modal.update-to-play.update-required": {
"message": "Opdatering krævet"
},
"app.project.install-button.already-installed": {
"message": "Dette projekt er allerede installeret"
},
"app.project.install-button.switch-version": {
"message": "Skift version"
},
"app.project.install-context.back-to-browse": {
"message": "Tilbage til udforsk"
},
"app.project.version.all-versions": {
"message": "Alle versioner"
},
"app.project.version.download-in-browser": {
"message": "Download i browser"
},
"app.project.version.installing": {
"message": "Installere"
},
"app.project.versions.already-installed": {
"message": "Allerede installeret"
},
@@ -380,6 +515,9 @@
"app.skins.modal.add-title": {
"message": "Tilføjer et skin"
},
"app.skins.modal.arm-style-section": {
"message": "Arm stil"
},
"app.skins.modal.arm-style-slim": {
"message": "Slank"
},
@@ -482,6 +620,12 @@
"app.skins.title": {
"message": "Skin vælger"
},
"app.skins.toggle-ears-features-off": {
"message": "Slå fra"
},
"app.skins.toggle-ears-features-on": {
"message": "Slå til"
},
"app.update-popup.body.download-complete": {
"message": "Modrinth App v{version} er færdig med at download. Genindlæs for at opdatere nu, eller automatisk når du lukker Modrinth App."
},
@@ -530,6 +674,9 @@
"app.world.world-item.players-online": {
"message": "{count} online"
},
"content.shared-instance.delete-button": {
"message": "Slet alligevel"
},
"friends.action.add-friend": {
"message": "Tilføj en ven"
},
@@ -593,6 +740,27 @@
"friends.sign-in-to-add-friends": {
"message": "<link>Log ind på en Modrinth konto</link> for at tilføje venner og se hvad de spiller!"
},
"instance.action.create-shortcut": {
"message": "Opret genvej"
},
"instance.action.export-modpack": {
"message": "Eksporter modpack"
},
"instance.action.more-actions": {
"message": "Flere handlinger"
},
"instance.action.open-folder": {
"message": "Åbn mappe"
},
"instance.action.settings": {
"message": "Instans indstillinger"
},
"instance.action.starting": {
"message": "Starter..."
},
"instance.action.stopping": {
"message": "Stopper..."
},
"instance.add-server.add-and-play": {
"message": "Tilføj og spil"
},
@@ -635,6 +803,15 @@
"instance.files.save-as": {
"message": "Gem som..."
},
"instance.locked.delete-button": {
"message": "Slet instans"
},
"instance.locked.play-tooltip": {
"message": "Denne instans er blevet låst"
},
"instance.playtime.never-played": {
"message": "Aldrig spillet"
},
"instance.server-modal.address": {
"message": "Adresse"
},
@@ -806,6 +983,33 @@
"instance.settings.tabs.window.width.enter": {
"message": "Indtast bredde..."
},
"instance.shared-instance.error.title": {
"message": "Noget gik galt"
},
"instance.shared-instance.publish-review.added-label": {
"message": "Tilføjede"
},
"instance.shared-instance.publish-review.admonition-header": {
"message": "Skub opdatering til spillere"
},
"instance.shared-instance.publish-review.config-title-v2": {
"message": "Vælg konfigurations filer"
},
"instance.shared-instance.publish-review.header": {
"message": "Gennemså ændringer"
},
"instance.shared-instance.publish-review.publish-button": {
"message": "Skub opdatering"
},
"instance.shared-instance.publish-review.removed-label": {
"message": "Fjernede"
},
"instance.shared-instance.unavailable.locked-title": {
"message": "Instans låst"
},
"instance.shared-instance.unavailable.title": {
"message": "Delt instans er ikke længere tilgængelig"
},
"instance.worlds.a_minecraft_server": {
"message": "En Minecraft server"
},
@@ -815,6 +1019,9 @@
"instance.worlds.copy_address": {
"message": "Kopier adresse"
},
"instance.worlds.create_shortcut": {
"message": "Opret genvej"
},
"instance.worlds.dont_show_on_home": {
"message": "Vis ikke på forsiden"
},
@@ -866,6 +1073,54 @@
"minecraft-account.sign-in": {
"message": "Log ind på Minecraft"
},
"minecraft-required.description-header": {
"message": "Log ind med en Microsoft konto"
},
"minecraft-required.dont-have-account": {
"message": "Har du ikke en konto?"
},
"minecraft-required.get-minecraft": {
"message": "Få Minecraft"
},
"minecraft-required.get-support": {
"message": "Få hjælp"
},
"minecraft-required.header": {
"message": "Minecraft påkrævet"
},
"minecraft-required.sign-in": {
"message": "Log ind på Microsoft"
},
"modal.modrinth-account-required.cancel-button": {
"message": "Annuller"
},
"modal.modrinth-account-required.continue-in-browser-heading": {
"message": "Fortsæt i din browser"
},
"modal.modrinth-account-required.create-account-button": {
"message": "Opret en konto"
},
"modal.modrinth-account-required.header": {
"message": "Konto påkrævet"
},
"modal.modrinth-account-required.open-browser-again-button": {
"message": "Åbn browser igen"
},
"modal.modrinth-account-required.sign-in-button": {
"message": "Log ind på Modrinth"
},
"modal.modrinth-account-required.sign-in-heading": {
"message": "Log ind med en Modrinth konto"
},
"modal.modrinth-account-required.signing-in-header": {
"message": "Logger ind"
},
"modal.modrinth-account-required.support-prompt": {
"message": "Har du problemer med at logge ind? <support>Få hjælp</support>"
},
"modal.modrinth-account-required.waiting-for-browser": {
"message": "Venter på browser bekræftigelse..."
},
"search.filter.locked.instance": {
"message": "Givet af instanceen"
},
@@ -15,7 +15,7 @@
"message": "Kopiert"
},
"app.action-bar.install.copy-details": {
"message": "Details kopieren"
"message": "Kopier Details"
},
"app.action-bar.install.dismiss": {
"message": "Ignorieren"
@@ -27,16 +27,16 @@
"message": "Wiederholen"
},
"app.action-bar.install.summary.app-closing": {
"message": "Aufgrund von Schließung der App abgebrochen"
"message": "Abbroche will app gschlosse worde isch"
},
"app.action-bar.install.summary.bad-modpack-file": {
"message": "Modpack konnte nicht gelesen werden"
"message": "Modpack kud nöd glese werde"
},
"app.action-bar.install.summary.canceled": {
"message": "Abgebrochen"
"message": "Abbroche"
},
"app.action-bar.install.summary.cleanup-incomplete": {
"message": "Bereinigung konnte nicht abgeschlossen werden"
"message": "Ufrume kunnti nöt beendet werde"
},
"app.action-bar.install.summary.content-download-failed": {
"message": "Dateien konnten nicht heruntergeladen werden"
@@ -456,7 +456,7 @@
"message": "Falsches Konto"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "Diese Person wird für diese geteilte Instanz erhalten keine Updates mehr erhalten"
"message": "Diese Person wird für diese geteilte Instanz keine Updates mehr erhalten"
},
"app.instance.share.remove-user-modal.effect-installed-copy": {
"message": "Jede bereits installierte Kopie bleibt auf deren Gerät erhalten"
@@ -396,7 +396,7 @@
"message": "Instanz"
},
"app.instance.mods.bulk-update.downloading-projects": {
"message": "{current, number}/{total, number} Projekte werden heruntergelanden..."
"message": "{current, number}/{total, number} Projekte werden heruntergeladen..."
},
"app.instance.mods.bulk-update.finishing": {
"message": "Update wird fertiggestellt..."
@@ -456,7 +456,7 @@
"message": "Falsches Konto"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "Diese Person wird für diese geteilte Instanz erhalten keine Updates mehr erhalten"
"message": "Diese Person wird für diese geteilte Instanz keine Updates mehr erhalten"
},
"app.instance.share.remove-user-modal.effect-installed-copy": {
"message": "Jede bereits installierte Kopie bleibt auf deren Gerät erhalten"
@@ -704,6 +704,12 @@
"app.project.versions.already-installed": {
"message": "Already installed"
},
"app.resource-management-settings.always-show-copy-details.description": {
"message": "Show the Copy details action while an install is queued or running. It is always available for failed or interrupted installs."
},
"app.resource-management-settings.always-show-copy-details.title": {
"message": "Always show copy details"
},
"app.settings.developer-mode-enabled": {
"message": "Developer mode enabled."
},
@@ -311,6 +311,9 @@
"app.instance.mods.successfully-uploaded": {
"message": "Onnistuneesti ladattu"
},
"app.instance.share.remove-user-modal.effect-installed-copy": {
"message": "Kaikki laitteeseen jo asennetut kopiot säilyvät laitteessa"
},
"app.instance.worlds.add-server": {
"message": "Lisää palvelin"
},
+92 -14
View File
@@ -36,7 +36,7 @@
"message": "Annulé"
},
"app.action-bar.install.summary.cleanup-incomplete": {
"message": "Le nettoyage n'a pas terminé"
"message": "Le nettoyage n'a pas pu terminer"
},
"app.action-bar.install.summary.content-download-failed": {
"message": "Impossible de télécharger les fichiers"
@@ -132,7 +132,7 @@
"message": "Tout accepter"
},
"app.ads-consent.body": {
"message": "Les publicités rendent Modrinth possible et financent les rémunérations des créateurs. Nos partenaires peuvent stocker des cookies ou y accéder au sein de l'application afin de personnaliser les publicités et de mesurer les performances."
"message": "Les publicités rendent Modrinth possible et financent la rémunération des créateurs. Nos partenaires peuvent stocker des cookies ou y accéder au sein de l'application afin de personnaliser les publicités et de mesurer les performances."
},
"app.ads-consent.manage": {
"message": "Gérer les préférences"
@@ -180,7 +180,7 @@
"message": "Mondes sur partie rapide"
},
"app.appearance-settings.minimize-launcher.description": {
"message": "Minimiser le lanceur quand Minecraft démarre."
"message": "Minimiser le launcher quand a processus Minecraft démarre."
},
"app.appearance-settings.minimize-launcher.title": {
"message": "Minimiser le lanceur"
@@ -294,7 +294,7 @@
"message": "Téléchargement de Minecraft"
},
"app.install.phase.downloading_pack_file": {
"message": "Téléchargement le fichier de pack"
"message": "Téléchargement du fichier de pack"
},
"app.install.phase.extracting_overrides": {
"message": "Extraction des fichiers personnalisés"
@@ -522,7 +522,7 @@
"message": "Vous utilisez le mauvais compte Modrinth"
},
"app.instance.worlds.add-server": {
"message": "Ajouter le serveur"
"message": "Ajouter un serveur"
},
"app.instance.worlds.browse-servers": {
"message": "Parcourir des serveurs"
@@ -555,13 +555,13 @@
"message": "Ajouter un serveur ou parcourir pour commencer"
},
"app.instance.worlds.no-worlds-heading": {
"message": "Aucun serveur ou monde ajoutés"
"message": "Aucun serveur ou monde ajouté"
},
"app.instance.worlds.remove-server-modal.remove-button": {
"message": "Enlever le serveur"
"message": "Supprimer le serveur"
},
"app.instance.worlds.remove-server-modal.title": {
"message": "Enlever le serveur"
"message": "Supprimer le serveur"
},
"app.instance.worlds.remove-server-modal.warning-body": {
"message": "Ce serveur sera enlevé de votre liste de serveur et de la liste de serveur en jeu. Vous pourrez le rajouter plus tard si vous connaissez son adresse."
@@ -611,6 +611,9 @@
"app.modal.install-to-play.report-image-too-large": {
"message": "Le fichier dépasse la limite de 1 MiB"
},
"app.modal.install-to-play.report-legal-claims": {
"message": "Pour les notifications DMCA ou autres réclamations juridiques, veuillez consulter notre <copyright-link>Politique relative aux droits d'auteur</copyright-link>."
},
"app.modal.install-to-play.report-reason": {
"message": "Quelle règle cette instance enfreint-elle ?"
},
@@ -629,6 +632,9 @@
"app.modal.install-to-play.report-submitted": {
"message": "Signalement soumis"
},
"app.modal.install-to-play.report-support-and-bugs": {
"message": "Pour des demandes de support, contactez notre <support-link>équipe de support</support-link>. Pour signaler des bugs, ouvrez <github-link>une issue Github</github-link>."
},
"app.modal.install-to-play.reviewed-files": {
"message": "Un fichier est seulement examiné s'il est publié sur Modrinth, peu importe son extension (y compris .mrpack)."
},
@@ -638,6 +644,9 @@
"app.modal.install-to-play.shared-instance-content": {
"message": "Contenu de l'instance partagée"
},
"app.modal.install-to-play.shared-instance-unknown-files-description": {
"message": "Cette instance partagée contient des fichiers qui ne sont pas publiés sur Modrinth. Nous recommandons fortement de seulement installer des fichiers de sources en qui vous avez confiance."
},
"app.modal.install-to-play.unknown-files-description": {
"message": "Ce modpack de serveur contient des fichiers qui ne sont pas publiés sur Modrinth. Nous recommandons fortement de seulement installer des fichiers de sources en qui vous avez confiance."
},
@@ -723,7 +732,7 @@
"message": "Gestion des ressources"
},
"app.skins.add-button": {
"message": "Ajouter une skin"
"message": "Ajouter un skin"
},
"app.skins.add-button.drag-and-drop": {
"message": "Glisser et déposer"
@@ -738,7 +747,7 @@
"message": "Cela va supprimer de manière permanente ce skin. Cette action est irréversible."
},
"app.skins.delete-modal.title": {
"message": "Êtes-vous sûr de vouloir supprimer cette skin ?"
"message": "Êtes-vous sûr de vouloir supprimer ce skin ?"
},
"app.skins.dropped-file-error.text": {
"message": "Impossible de lire le fichier déposé."
@@ -753,13 +762,13 @@
"message": "Modifier le skin"
},
"app.skins.modal.add-skin-button": {
"message": "Ajouter une skin"
"message": "Ajouter un skin"
},
"app.skins.modal.add-title": {
"message": "Ajouter une skin"
"message": "Ajouter un skin"
},
"app.skins.modal.arm-style-section": {
"message": "Bras"
"message": "Style du bras"
},
"app.skins.modal.arm-style-slim": {
"message": "Mince"
@@ -929,18 +938,36 @@
"content.shared-instance.change-version-body": {
"message": "Changer la version change seulement votre copie locale. Des futures mises à jour d'instance partagées peuvent restaurer ou changer la version."
},
"content.shared-instance.delete-bulk-body": {
"message": "Certains projets sélectionnés font partie de l'instance partagée. Les supprimer changerait seulement votre copie locale, et de futures mises à jour d'instance partagées peuvent restaurer ou les changer de nouveau."
},
"content.shared-instance.delete-button": {
"message": "Supprimer quand même"
},
"content.shared-instance.delete-many-button": {
"message": "Supprimer {count, number} projets quand même"
},
"content.shared-instance.delete-single-body": {
"message": "Le supprimer change seulement votre copie locale. De futures mises à jour d'instance partagées peuvent restaurer ou changer la version."
},
"content.shared-instance.disable-bulk-body": {
"message": "Certains projets sélectionnés font partie de l'instance partagée. Les désactiver changerait seulement votre copie locale, et de futures mises à jour d'instance partagées peuvent restaurer ou les changer de nouveau."
},
"content.shared-instance.disable-button": {
"message": "Désactiver quand même"
},
"content.shared-instance.disable-many-button": {
"message": "Désactiver {count, number} projets quand même"
},
"content.shared-instance.disable-single-body": {
"message": "Le désactiver change seulement votre copie locale. De futures mises à jour d'instance partagées peuvent restaurer ou changer la version."
},
"content.shared-instance.unlink-body": {
"message": "Le délier change seulement votre copie locale. De futures mises à jour d'instance partagées peuvent restaurer ou changer la version."
},
"content.shared-instance.warning-header": {
"message": "Ceci fait partie de l'instance partagée"
},
"friends.action.add-friend": {
"message": "Ajouter un ami"
},
@@ -975,7 +1002,7 @@
"message": "La demande d'ami a été envoyé"
},
"friends.friend.view-profile": {
"message": "Voir le profile"
"message": "Voir le profil"
},
"friends.heading": {
"message": "Amis"
@@ -1004,6 +1031,48 @@
"friends.sign-in-to-add-friends": {
"message": "<link>Créer un compte Modrinth</link> pour ajouter des amis et voir à quoi ils jouent !"
},
"installation-settings.shared-instance.linked-title": {
"message": "Instance partagée liée"
},
"installation-settings.shared-instance.title": {
"message": "Dépublier l'instance"
},
"installation-settings.shared-instance.unlink-button": {
"message": "Dissocier l'instance partagée"
},
"installation-settings.shared-instance.unlink-description": {
"message": "Déconnecter cette instance locale de futures mises à jour partagées."
},
"installation-settings.shared-instance.unlinking-button": {
"message": "Dissociation..."
},
"installation-settings.shared-instance.unpublish-button": {
"message": "Dépublier l'instance partagée"
},
"installation-settings.shared-instance.unpublish-description": {
"message": "Supprime cette instance partagée de Modrinth et arrête d'envoyer des mises à jour à toute personne l'utilisant. Votre copie locale ne sera pas affectée."
},
"installation-settings.shared-instance.unpublishing-button": {
"message": "Dépublication..."
},
"installation-settings.unlink-shared-instance.modal.admonition-body": {
"message": "Cela affecte seulement votre instance locale. Votre contenu installé restera sur cet appareil, et l'instance partagée et les autres personnes l'utilisant ne seront pas affectés."
},
"installation-settings.unlink-shared-instance.modal.admonition-header": {
"message": "Dissociation de l'instance partagée"
},
"installation-settings.unlink-shared-instance.modal.header": {
"message": "Dissocier l'instance partagée"
},
"installation-settings.unpublish-shared-instance.modal.admonition-body": {
"message": "Cela supprime l'instance partagée des serveurs de Modrinth. Les personnes l'utilisant dans l'application Modrinth vont cesser de recevoir des mises à jour, mais votre instance locale et son contenu resteront sur cet appareil."
},
"installation-settings.unpublish-shared-instance.modal.admonition-header": {
"message": "Dépublication de l'instance partagée"
},
"installation-settings.unpublish-shared-instance.modal.header": {
"message": "Dépublier l'instance partagée"
},
"instance.action.create-shortcut": {
"message": "Créer un raccourci"
},
@@ -1217,6 +1286,9 @@
"instance.settings.tabs.installation.loader-version": {
"message": "Version de {loader}"
},
"instance.settings.tabs.installation.locked": {
"message": "Les paramètres d'installation ne sont pas disponible pendant que cette instance est verrouillée."
},
"instance.settings.tabs.java": {
"message": "Java et mémoire"
},
@@ -1319,9 +1391,15 @@
"instance.shared-instance.tooltip": {
"message": "Le contenu de cette instance est gérée par quelqu'un d'autre."
},
"instance.shared-instance.unavailable.access-revoked-text": {
"message": "Votre accès à l'instance partagée a été révoqué. Cette instance reste disponible, mais n'est plus liée et ne recevra plus de mises à jour."
},
"instance.shared-instance.unavailable.deleted-text": {
"message": "L'instance principale a été supprimée. Cette instance est encore disponible, mais n'est plus liée et va cesser de recevoir des mises à jour."
},
"instance.shared-instance.unavailable.locked-text": {
"message": "Cette instance partagée a été verrouillée par la Team de Modération de Contenu. Elle ne recevra plus de mises à jour de l'instance primaire et ne peut plus être jouée."
},
"instance.shared-instance.unavailable.locked-title": {
"message": "Instance verrouillée"
},
+126 -15
View File
@@ -108,7 +108,7 @@
"message": "Elsődleges játékpéldány"
},
"app.action-bar.reload-to-update": {
"message": "Töltsd újra a frissítéshez"
"message": "Frissítés elérhető"
},
"app.action-bar.show-more-running-instances": {
"message": "További futó pédányok megjelenítése"
@@ -315,7 +315,7 @@
"message": "A Java {version} kibontása..."
},
"app.install.phase.preparing_java.fetching-metadata": {
"message": "A Java {version} előkészítése..."
"message": "A Java {version} beszerzése..."
},
"app.install.phase.preparing_java.resolving": {
"message": "A Java {version} előkészítése..."
@@ -324,25 +324,28 @@
"message": "A Java {version} ellenőrzése..."
},
"app.install.phase.reading_pack_manifest": {
"message": "Csomag adati kiolvasása"
"message": "A modcsomag leírófájljának beolvasása..."
},
"app.install.phase.resolving_loader": {
"message": "A betöltő meghatározása..."
},
"app.install.phase.resolving_minecraft": {
"message": "Minecraft Betöltése"
"message": "A Minecraft-verzió meghatározása..."
},
"app.install.phase.resolving_pack": {
"message": "Tartalom betöltése"
"message": "A tartalom meghatározása..."
},
"app.install.phase.rolling_back": {
"message": "Visszavonás"
"message": "Visszavonás..."
},
"app.install.phase.running_loader_processors": {
"message": "Betöltő folyamatok futtatása"
"message": "Betöltőfolyamatok futtatása..."
},
"app.instance.admonitions.shared-instance.added-label": {
"message": "Hozzáadva"
},
"app.instance.admonitions.shared-instance.changes-body": {
"message": "A helyi példányod előrébb tart, mint azoké a felhasználóké, akikkel megosztottad."
"message": "A te gépeden lévő játékpéldány újabb, mint azoké a felhasználóké, akikkel megosztottad."
},
"app.instance.admonitions.shared-instance.changes-header": {
"message": "A változtatásaid még nem lettek megosztva"
@@ -360,7 +363,7 @@
"message": "Frissítés közzététele"
},
"app.instance.admonitions.shared-instance.review-description": {
"message": "A példányt használó összes résztvevővel megosztásra kerülő tartalomváltoztatások áttekintése."
"message": "A játékpéldányt használó összes résztvevővel megosztásra kerülő tartalomváltoztatások áttekintése."
},
"app.instance.admonitions.shared-instance.review-header": {
"message": "Változtatások áttekintése"
@@ -405,7 +408,7 @@
"message": "projekt"
},
"app.instance.mods.locked-content": {
"message": "Zárolt példányokban a tartalom nem változtatható meg."
"message": "Zárolt játékpéldányokban a tartalom nem változtatható meg."
},
"app.instance.mods.project-was-added": {
"message": "„{name}” hozzá lett adva"
@@ -423,7 +426,7 @@
"message": "Sikeresen feltöltve"
},
"app.instance.share.empty.description": {
"message": "Ezt a példányt megoszthatod a barátaiddal!"
"message": "Ezt a játékpéldányt megoszthatod a barátaiddal!"
},
"app.instance.share.empty.heading": {
"message": "Nincsenek barátok meghívva"
@@ -452,20 +455,65 @@
"app.instance.share.locked.wrong-account-heading": {
"message": "Helytelen fiók"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "Többé nem fog frissítéseket kapni ehhez a megosztott játékpéldányhoz"
},
"app.instance.share.remove-user-modal.effect-installed-copy": {
"message": "A már telepített játékpéldányok megmaradnak az eszközén"
},
"app.instance.share.remove-user-modal.effect-invite-again": {
"message": "Később újra meghívhatod"
},
"app.instance.share.remove-user-modal.effect-last-user": {
"message": "Ő az utolsó felhasználó, a megosztás ezen az játékpéldányon le lesz tiltva"
},
"app.instance.share.remove-user-modal.effects-label": {
"message": "Mi fog történni?"
},
"app.instance.share.remove-user-modal.header": {
"message": "Hozzáférés visszavonása"
},
"app.instance.share.remove-user-modal.remove-button": {
"message": "Hozzáférés visszavonása"
},
"app.instance.share.remove-user-modal.user-avatar-alt": {
"message": "{username} avatárja"
},
"app.instance.share.remove-user-modal.warning-body": {
"message": "Ha visszavonod {username} hozzáférését ehhez a megosztott játékpéldányhoz, újra meg kell hívnod, mielőtt frissítéseket kaphatna."
},
"app.instance.share.sign-in.button": {
"message": "Bejelentkezés"
},
"app.instance.share.unlink.body": {
"message": "A játékpéldány megosztásához le kell választanod ezt a modcsomagot"
},
"app.instance.share.unlink.header": {
"message": "A megosztáshoz le kell választani"
},
"app.instance.shared-instance-already-installed.install-anyway": {
"message": "Telepítés mindenképpen"
},
"app.instance.shared-instance-already-installed.instance": {
"message": "Példány"
"message": "Játékpéldány"
},
"app.instance.shared-instance-wrong-account.fallback-username": {
"message": "az összekapcsolt fiók"
},
"app.instance.shared-instance-wrong-account.owner-admonition-body-v2": {
"message": ", hogy kezelhesd ezt a megosztott játékpéldányt. Nem fogod tudni a frissítéseket eljuttatni a felhasználókhoz."
},
"app.instance.shared-instance-wrong-account.sign-in-as-label": {
"message": "Bejelentkezés mint"
"message": "Jelentkezz be mint"
},
"app.instance.shared-instance-wrong-account.signed-out-header": {
"message": "Be kell jelentkezned a Modrinth-ba"
"message": "Be kell jelentkezned a Modrinthba"
},
"app.instance.shared-instance-wrong-account.user-admonition-body-v2": {
"message": ", hogy értesítéseket kapj erről a megosztott játékpéldányról."
},
"app.instance.shared-instance-wrong-account.warning-header": {
"message": "Nem a megfelelő Modrinth-fiókot használod"
},
"app.instance.worlds.add-server": {
"message": "Szerver hozzáadása"
@@ -518,6 +566,18 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Keresés {count} világ között..."
},
"app.modal.install-to-play.additional-context": {
"message": "További kontextus"
},
"app.modal.install-to-play.content-you-are-reporting": {
"message": "A játékpéldány, amelyet bejelenteni kívánsz"
},
"app.modal.install-to-play.delete-instance": {
"message": "Játékpéldány törlése"
},
"app.modal.install-to-play.external-files-dont-install": {
"message": "Ne telepítse"
},
"app.modal.install-to-play.header": {
"message": "Telepítés a játékhoz"
},
@@ -533,6 +593,9 @@
"app.modal.install-to-play.mod-count": {
"message": "{count} mod"
},
"app.modal.install-to-play.report-reason.spam": {
"message": "Spam"
},
"app.modal.install-to-play.reviewed-files": {
"message": "Egy fájlt csak akkor vizsgálnak meg, ha azt a Modrinth-en közzétették, függetlenül a fájlformátumtól (beleértve a .mrpack formátumot is)."
},
@@ -783,7 +846,7 @@
"message": "Sikeres letöltés"
},
"app.update-popup.reload": {
"message": "Töltsd újra a frissítéshez"
"message": "Frissítés"
},
"app.update-popup.title": {
"message": "Frissítés elérhető"
@@ -875,6 +938,15 @@
"friends.sign-in-to-add-friends": {
"message": "<link>Lépj be Modrinth fiókodba</link>, hogy felvehess barátokat és lásd mivel játszanak!"
},
"installation-settings.shared-instance.unpublishing-button": {
"message": "Közzététel visszavonása..."
},
"installation-settings.unlink-shared-instance.modal.admonition-header": {
"message": "Megosztott játékpéldány leválasztása"
},
"installation-settings.unlink-shared-instance.modal.header": {
"message": "Megosztott játékpéldány leválasztása"
},
"instance.action.create-shortcut": {
"message": "Parancsikon létrehozása"
},
@@ -944,6 +1016,9 @@
"instance.files.save-as": {
"message": "Mentés másként..."
},
"instance.locked.delete-button": {
"message": "Játékpéldány törlése"
},
"instance.playtime.never-played": {
"message": "Még nem játszott"
},
@@ -1121,6 +1196,9 @@
"instance.settings.tabs.java.java-path-placeholder": {
"message": "/eleresi/ut/a/javahoz"
},
"instance.settings.tabs.sharing": {
"message": "Megosztás"
},
"instance.settings.tabs.window": {
"message": "Ablak"
},
@@ -1151,6 +1229,18 @@
"instance.settings.tabs.window.width.enter": {
"message": "Szélesség megadása..."
},
"instance.shared-instance.publish-review.added-label": {
"message": "Hozzáadva"
},
"instance.shared-instance.publish-review.header": {
"message": "Változtatások áttekintése"
},
"instance.shared-instance.publish-review.removed-label": {
"message": "Eltávolítva"
},
"instance.shared-instance.unavailable.locked-title": {
"message": "Pédány lezárva"
},
"instance.worlds.a_minecraft_server": {
"message": "Egy Minecraft szerver"
},
@@ -1235,6 +1325,27 @@
"minecraft-required.sign-in": {
"message": "Bejelentkezés a Microsft-ba"
},
"modal.modrinth-account-required.cancel-button": {
"message": "Mégse"
},
"modal.modrinth-account-required.create-account-button": {
"message": "Fiók létrehozása"
},
"modal.modrinth-account-required.header": {
"message": "Fiók szükséges"
},
"modal.modrinth-account-required.sign-in-button": {
"message": "Jelentkezz be a Modrinth-be"
},
"modal.modrinth-account-required.sign-in-heading": {
"message": "Jelentkezz be egy Modrinth-fiókba"
},
"modal.modrinth-account-required.signing-in-header": {
"message": "Bejelentkezés"
},
"modal.modrinth-account-required.waiting-for-browser": {
"message": "Várakozás a böngésző megerősítésére..."
},
"search.filter.locked.instance": {
"message": "A játékpéldány által van megadva"
},
@@ -27,7 +27,7 @@
"message": "Riprova"
},
"app.action-bar.install.summary.app-closing": {
"message": "Annullato per app chiusa"
"message": "Annullato per chiusura app"
},
"app.action-bar.install.summary.bad-modpack-file": {
"message": "Impossibile leggere il pacchetto"
@@ -489,7 +489,7 @@
"message": "Scollega prima di condividere"
},
"app.instance.shared-instance-already-installed.body": {
"message": "Questa istanza condivisa è già installata come <bold>{instanceName}</bold>. Vuoi installarne un'altra copia?"
"message": "Questa istanza condivisa è già installata come <bold>{instanceName}</bold>. Vuoi davvero installarne un'altra copia?"
},
"app.instance.shared-instance-already-installed.header": {
"message": "Istanza condivisa già installata"
@@ -972,7 +972,7 @@
"message": "Stringi un'amicizia"
},
"friends.action.view-friend-requests": {
"message": "{count, plural, one {# richiesta} other {# richieste}} d''amicizia"
"message": "{count, plural, one {# richiesta} other {# richieste}} d'amicizia"
},
"friends.add-friend.submit": {
"message": "Invia richiesta d'amicizia"
+259 -1
View File
@@ -338,6 +338,24 @@
"app.install.phase.running_loader_processors": {
"message": "ローダーのプロセッサーを実行中"
},
"app.instance.admonitions.shared-instance.added-label": {
"message": "追加済"
},
"app.instance.admonitions.shared-instance.changes-header": {
"message": "変更はまだ共有されていません"
},
"app.instance.admonitions.shared-instance.publish-button": {
"message": "アップデートを公開する"
},
"app.instance.admonitions.shared-instance.publishing-button": {
"message": "公開しています…"
},
"app.instance.admonitions.shared-instance.review-admonition-header": {
"message": "アップデートを公開する"
},
"app.instance.admonitions.shared-instance.reviewing-button": {
"message": "審査中…"
},
"app.instance.confirm-delete.admonition-body": {
"message": "インスタンス内のすべてのデータは、ワールド、設定、インストール済みのコンテンツを含め、完全に削除されます。"
},
@@ -374,6 +392,9 @@
"app.instance.mods.content-type-project": {
"message": "プロジェクト"
},
"app.instance.mods.locked-content": {
"message": "ロックされた起動構成の内にあるコンテンツは変更できません。"
},
"app.instance.mods.project-was-added": {
"message": "「{name}」が追加されました"
},
@@ -389,6 +410,90 @@
"app.instance.mods.successfully-uploaded": {
"message": "アップロードに成功しました"
},
"app.instance.share.empty.description": {
"message": "フレンドとこのインスタンスをシェアしましょう!"
},
"app.instance.share.empty.heading": {
"message": "まだ誰も招待していないようです"
},
"app.instance.share.empty.invite-friends-button": {
"message": "フレンドを招待"
},
"app.instance.share.invite-modal.heading": {
"message": "{name} をシェアする"
},
"app.instance.share.locked.empty-description-prefix": {
"message": "このページにアクセスするには"
},
"app.instance.share.locked.empty-description-suffix": {
"message": "としてサインインする必要があります。"
},
"app.instance.share.locked.linked-account-fallback": {
"message": "リンクされたアカウント"
},
"app.instance.share.locked.signed-out-heading": {
"message": "サインインしていません"
},
"app.instance.share.locked.switch-account-button": {
"message": "アカウントを切り替える"
},
"app.instance.share.locked.wrong-account-heading": {
"message": "アカウントが違います"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "このインスタンスのアップデートは受信できなくなります"
},
"app.instance.share.remove-user-modal.effect-invite-again": {
"message": "後でもう一度招待することもできます"
},
"app.instance.share.remove-user-modal.effect-last-user": {
"message": "彼らがすでにインストールしたコピーは彼らのデバイスに残ります"
},
"app.instance.share.remove-user-modal.effects-label": {
"message": "この変更で何が起きるか?"
},
"app.instance.share.remove-user-modal.header": {
"message": "アクセスを取り消す"
},
"app.instance.share.remove-user-modal.remove-button": {
"message": "アクセスを取り消す"
},
"app.instance.share.remove-user-modal.user-avatar-alt": {
"message": "{username}のアバター"
},
"app.instance.share.remove-user-modal.warning-body": {
"message": "もし{username}のアクセス権を取り消した場合、彼らが再びアップデートを受け取れるようにするには、もう一度招待し直す必要があります。"
},
"app.instance.share.sign-in.button": {
"message": "サインイン"
},
"app.instance.share.unlink.body": {
"message": "この起動構成を共有するには、このmodpackのリンクを解除する必要があります"
},
"app.instance.share.unlink.header": {
"message": "共有にはリンクを解除する必要があります"
},
"app.instance.shared-instance-already-installed.body": {
"message": "この共有された起動構成はすでに<bold> {instanceName} </bold>としてインストールされています。別のコピーをインストールしてもよろしいですか?"
},
"app.instance.shared-instance-already-installed.header": {
"message": "共有された起動構成はすでにインストールされています"
},
"app.instance.shared-instance-already-installed.install-anyway": {
"message": "インストールを続行"
},
"app.instance.shared-instance-already-installed.instance": {
"message": "起動構成"
},
"app.instance.shared-instance-wrong-account.fallback-username": {
"message": "リンクされたアカウント"
},
"app.instance.shared-instance-wrong-account.signed-out-header": {
"message": "Modrinthへのサインインが必要です"
},
"app.instance.shared-instance-wrong-account.warning-header": {
"message": "Modrinthのアカウントが間違っています"
},
"app.instance.worlds.add-server": {
"message": "サーバーを追加"
},
@@ -440,11 +545,26 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "{count} 個のワールドを検索…"
},
"app.modal.install-to-play.additional-context": {
"message": "追加のコンテンツ"
},
"app.modal.install-to-play.additional-context-placeholder": {
"message": "可能であれば、リンクや画像も含めてください"
},
"app.modal.install-to-play.content-you-are-reporting": {
"message": "起動構成を報告する"
},
"app.modal.install-to-play.delete-instance": {
"message": "インスタンスを削除する"
},
"app.modal.install-to-play.external-files-dont-install": {
"message": "インストールしない"
},
"app.modal.install-to-play.header": {
"message": "インストールしてプレイ"
},
"app.modal.install-to-play.install-anyway": {
"message": "このままインストール"
"message": "インストールを続行"
},
"app.modal.install-to-play.install-button": {
"message": "インストール"
@@ -455,12 +575,48 @@
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, other {#個のMod}}"
},
"app.modal.install-to-play.report-description": {
"message": "このフォームを使用して、<rules-link>ルール</rules-link>または<terms-link>利用規約</terms-link>に違反する可能性のある事例を報告してください。"
},
"app.modal.install-to-play.report-image-invalid-type": {
"message": "対応していない画像形式です"
},
"app.modal.install-to-play.report-image-too-large": {
"message": "ファイルのサイズが 1 MiBの制限を超えています"
},
"app.modal.install-to-play.report-reason": {
"message": "この起動構成はどの規則に違反していますか?"
},
"app.modal.install-to-play.report-reason.inappropriate": {
"message": "不適切なコンテンツ"
},
"app.modal.install-to-play.report-reason.malicious": {
"message": "悪意がある"
},
"app.modal.install-to-play.report-reason.spam": {
"message": "スパム"
},
"app.modal.install-to-play.report-shared-instance-header": {
"message": "共有された起動構成を通報する"
},
"app.modal.install-to-play.report-submitted": {
"message": "通報は送信されました"
},
"app.modal.install-to-play.report-support-and-bugs": {
"message": "サポートに関するお問い合わせは、<support-link>サポートチーム</support-link>までご連絡ください。バグの報告は、<github-link>GitHubのIssue</github-link>を作成してください。"
},
"app.modal.install-to-play.reviewed-files": {
"message": "ファイル形式(.mrpackを含む)に関わらず、Modrinthに公開されているファイルのみが審査の対象となります。"
},
"app.modal.install-to-play.shared-instance": {
"message": "共有インスタンス"
},
"app.modal.install-to-play.shared-instance-content": {
"message": "共有された起動構成の内容"
},
"app.modal.install-to-play.shared-instance-unknown-files-description": {
"message": "この共有された起動構成には、Modrinthで公開されていないファイルが含まれています。信頼できる提供元からのファイルのみをインストールすることを強くお勧めします。"
},
"app.modal.install-to-play.unknown-files-description": {
"message": "このサーバーModパックには、Modrinthに公開されていないファイルが含まれています。信頼できるソースからのファイルのみをインストールすることを強く推奨します。"
},
@@ -479,6 +635,24 @@
"app.modal.update-to-play.removed": {
"message": "削除されました"
},
"app.modal.update-to-play.server-modpack-unknown-files-description": {
"message": "このサーバーModパックのアップデートには、Modrinthに公開されていないファイルが含まれています。信頼できるソースからのファイルのみをインストールすることを強く推奨します。"
},
"app.modal.update-to-play.shared-instance-added-label": {
"message": "追加済み"
},
"app.modal.update-to-play.shared-instance-removed-label": {
"message": "削除済み"
},
"app.modal.update-to-play.shared-instance-unknown-files-description": {
"message": "この共有された起動構成のアップデートには、Modrinthで公開されていないファイルが含まれています。信頼できる提供元からのファイルのみをインストールすることを強くお勧めします。"
},
"app.modal.update-to-play.update-required": {
"message": "更新が必要です"
},
"app.modal.update-to-play.update-required-description": {
"message": "{name}をプレイするにはアップデートが必要です。ゲームを起動するには最新バージョンにアップデートしてください。"
},
"app.project.install-button.already-installed": {
"message": "このプロジェクトは既にインストールされています"
},
@@ -734,6 +908,36 @@
"app.world.world-item.players-online": {
"message": "{count} 人がオンライン"
},
"content.shared-instance.change-version-body": {
"message": "バージョンの変更はローカルコピーにのみ影響します。今後共有された起動構成がアップデートされた際に、元の状態に戻ったり、別のバージョンに変更されたりする場合があります。"
},
"content.shared-instance.delete-bulk-body": {
"message": "選択された一部のプロジェクトは共有された起動構成の一部です。これらを削除してもローカルコピーのみが変更され、今後共有された起動構成がアップデートされた際に、再び復元されたり変更されたりする場合があります。"
},
"content.shared-instance.delete-button": {
"message": "とにかく削除する"
},
"content.shared-instance.delete-many-button": {
"message": "それでも {count, number} のプロジェクトを削除する"
},
"content.shared-instance.delete-single-body": {
"message": "削除はローカルコピーにのみ影響します。今後共有された起動構成がアップデートされた際に、元の状態に戻ったり、別のバージョンに変更されたりする場合があります。"
},
"content.shared-instance.disable-bulk-body": {
"message": "選択された一部のプロジェクトは共有された起動構成の一部です。これらを無効化してもローカルコピーのみが変更され、今後共有された起動構成がアップデートされた際に、再び有効化されたり、復元されたり、変更されたりする場合があります。"
},
"content.shared-instance.disable-button": {
"message": "とにかく無効化する"
},
"content.shared-instance.disable-many-button": {
"message": "それでも {count, number} のプロジェクトを無効化する"
},
"content.shared-instance.disable-single-body": {
"message": "無効化はローカルコピーにのみ影響します。今後共有された起動構成がアップデートされた際に、再び有効化されたり、元の状態に戻ったり、変更されたりする場合があります。"
},
"content.shared-instance.warning-header": {
"message": "これは共有された起動構成の一部です"
},
"friends.action.add-friend": {
"message": "フレンドを追加"
},
@@ -797,6 +1001,21 @@
"friends.sign-in-to-add-friends": {
"message": "<link>Modrinthアカウントにサインイン</link>して友達を追加し、彼らがプレイしているゲームをチェックしよう!"
},
"installation-settings.shared-instance.linked-title": {
"message": "リンク済の共有された起動構成"
},
"installation-settings.shared-instance.title": {
"message": "起動構成を非公開化"
},
"installation-settings.shared-instance.unlink-button": {
"message": "起動構成の共有を解除"
},
"installation-settings.shared-instance.unlinking-button": {
"message": "共有を解除中…"
},
"installation-settings.shared-instance.unpublish-button": {
"message": "共有された軌道構成を非公開にする"
},
"instance.action.create-shortcut": {
"message": "ショートカット作成"
},
@@ -1073,6 +1292,9 @@
"instance.settings.tabs.window.width.enter": {
"message": "幅を入力…"
},
"instance.shared-instance.publish-review.admonition-header": {
"message": "アップデートを配信する"
},
"instance.worlds.a_minecraft_server": {
"message": "Minecraftサーバー"
},
@@ -1157,6 +1379,42 @@
"minecraft-required.sign-in": {
"message": "Microsoft にサインイン"
},
"modal.modrinth-account-required.browser-description": {
"message": "サインイン用のタブが開きました。そちらでサインインを完了してから、アプリに戻ってください。"
},
"modal.modrinth-account-required.cancel-button": {
"message": "キャンセル"
},
"modal.modrinth-account-required.continue-in-browser-heading": {
"message": "ブラウザで続行"
},
"modal.modrinth-account-required.create-account-button": {
"message": "アカウントを作成"
},
"modal.modrinth-account-required.description": {
"message": "この機能を利用するには、Modrinthアカウントにログインする必要があります。"
},
"modal.modrinth-account-required.header": {
"message": "アカウントが必要です"
},
"modal.modrinth-account-required.open-browser-again-button": {
"message": "もう一度ブラウザを開く"
},
"modal.modrinth-account-required.sign-in-button": {
"message": "Modrinthへサインイン"
},
"modal.modrinth-account-required.sign-in-heading": {
"message": "Modrinth アカウントにサインインしてください"
},
"modal.modrinth-account-required.signing-in-header": {
"message": "サインイン"
},
"modal.modrinth-account-required.support-prompt": {
"message": "サインインでお困りですか?<support>サポート</support>"
},
"modal.modrinth-account-required.waiting-for-browser": {
"message": "ブラウザからの確認を待っています…"
},
"search.filter.locked.instance": {
"message": "インスタンスによる条件"
},
@@ -89,6 +89,9 @@
"app.action-bar.install.unknown-instance": {
"message": "알 수 없는 인스턴스"
},
"app.action-bar.install.updating-shared-content": {
"message": "공유 콘텐츠 업데이트 중"
},
"app.action-bar.installs": {
"message": "설치"
},
@@ -338,6 +341,36 @@
"app.install.phase.running_loader_processors": {
"message": "로더 진행기 실행 중"
},
"app.instance.admonitions.shared-instance.added-label": {
"message": "추가됨"
},
"app.instance.admonitions.shared-instance.changes-body": {
"message": "현재 로컬 인스턴스가 콘텐츠를 공유한 다른 사용자들의 인스턴스보다 최신 상태입니다."
},
"app.instance.admonitions.shared-instance.changes-header": {
"message": "변경 사항이 아직 공유되지 않았습니다"
},
"app.instance.admonitions.shared-instance.publish-button": {
"message": "업데이트 게시"
},
"app.instance.admonitions.shared-instance.publishing-button": {
"message": "게시중..."
},
"app.instance.admonitions.shared-instance.removed-label": {
"message": "삭제중"
},
"app.instance.admonitions.shared-instance.review-admonition-header": {
"message": "Push 업데이트"
},
"app.instance.admonitions.shared-instance.review-description": {
"message": "이 인스턴스를 사용하는 모든 사람과 공유될 콘텐츠 변경 사항을 검토하세요."
},
"app.instance.admonitions.shared-instance.review-header": {
"message": "Review changes"
},
"app.instance.admonitions.shared-instance.reviewing-button": {
"message": "검토중..."
},
"app.instance.confirm-delete.admonition-body": {
"message": "인스턴스의 모든 데이터가 삭제됩니다. 세계 폴더, 설정 폴더 등 설치된 모든 컨텐츠가 포함됩니다."
},
@@ -374,6 +407,9 @@
"app.instance.mods.content-type-project": {
"message": "프로젝트"
},
"app.instance.mods.locked-content": {
"message": "잠긴 인스턴스의 콘텐츠는 변경할 수 없습니다."
},
"app.instance.mods.project-was-added": {
"message": "\"{name}\" 추가됨"
},
@@ -389,6 +425,102 @@
"app.instance.mods.successfully-uploaded": {
"message": "업로드 성공"
},
"app.instance.share.empty.description": {
"message": "친구들과 이 인스턴스를 공유할 수 있습니다!"
},
"app.instance.share.empty.heading": {
"message": "아직 초대된 친구가 없습니다"
},
"app.instance.share.empty.invite-friends-button": {
"message": "친구 초대"
},
"app.instance.share.invite-modal.heading": {
"message": "{name} 공유"
},
"app.instance.share.locked.empty-description-prefix": {
"message": "이 페이지에 접근하려면"
},
"app.instance.share.locked.empty-description-suffix": {
"message": "계정으로 로그인해야 합니다."
},
"app.instance.share.locked.linked-account-fallback": {
"message": "연동된"
},
"app.instance.share.locked.signed-out-heading": {
"message": "로그인되지 않음"
},
"app.instance.share.locked.switch-account-button": {
"message": "계정 전환"
},
"app.instance.share.locked.wrong-account-heading": {
"message": "잘못된 계정"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "이들은 더 이상 해당 공유 인스턴스의 업데이트를 받지 않습니다"
},
"app.instance.share.remove-user-modal.effect-installed-copy": {
"message": "이미 설치한 사본은 해당 기기에 그대로 남아 있습니다"
},
"app.instance.share.remove-user-modal.effect-invite-again": {
"message": "나중에 다시 초대할 수 있습니다"
},
"app.instance.share.remove-user-modal.effect-last-user": {
"message": "마지막 사용자이며, 이 인스턴스의 공유가 비활성화됩니다"
},
"app.instance.share.remove-user-modal.effects-label": {
"message": "어떻게 되나요?"
},
"app.instance.share.remove-user-modal.header": {
"message": "액세스 권한 취소"
},
"app.instance.share.remove-user-modal.remove-button": {
"message": "액세스 권한 취소"
},
"app.instance.share.remove-user-modal.user-avatar-alt": {
"message": "{username}의 계정"
},
"app.instance.share.remove-user-modal.warning-body": {
"message": "{username} 님의 이 공유 인스턴스 액세스 권한을 취소하면, 해당 사용자가 업데이트를 받기 전에 다시 초대해야 합니다."
},
"app.instance.share.sign-in.button": {
"message": "로그인"
},
"app.instance.share.unlink.body": {
"message": "인스턴스를 공유하려면 이 모드팩 연동을 해제해야 합니다"
},
"app.instance.share.unlink.header": {
"message": "공유를 진행하려면 연동 해제가 필요합니다"
},
"app.instance.shared-instance-already-installed.body": {
"message": "이 공유 인스턴스는 이미 <bold>{instanceName}</bold> 이름으로 설치되어 있습니다. 사본을 하나 더 설치하시겠습니까?"
},
"app.instance.shared-instance-already-installed.header": {
"message": "공유 인스턴스가 이미 설치됨"
},
"app.instance.shared-instance-already-installed.install-anyway": {
"message": "그래도 설치"
},
"app.instance.shared-instance-already-installed.instance": {
"message": "인스턴스"
},
"app.instance.shared-instance-wrong-account.fallback-username": {
"message": "연동된 계정"
},
"app.instance.shared-instance-wrong-account.owner-admonition-body-v2": {
"message": "이 공유 인스턴스를 관리해야 합니다. 그렇지 않으면 사용자에게 업데이트를 푸시할 수 없습니다."
},
"app.instance.shared-instance-wrong-account.sign-in-as-label": {
"message": "계정 로그인:"
},
"app.instance.shared-instance-wrong-account.signed-out-header": {
"message": "Modrinth 로그인 필요"
},
"app.instance.shared-instance-wrong-account.user-admonition-body-v2": {
"message": "이 공유 인스턴스의 업데이트를 받으려면 로그인하세요."
},
"app.instance.shared-instance-wrong-account.warning-header": {
"message": "잘못된 Modrinth 계정을 사용하고 있습니다"
},
"app.instance.worlds.add-server": {
"message": "서버 추가"
},
@@ -440,6 +572,21 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "{count}개의 세계 검색..."
},
"app.modal.install-to-play.additional-context": {
"message": "추가 정보"
},
"app.modal.install-to-play.additional-context-placeholder": {
"message": "관련이 있는 경우 가능하면 링크 및 이미지를 포함하세요"
},
"app.modal.install-to-play.content-you-are-reporting": {
"message": "신고 대상 인스턴스"
},
"app.modal.install-to-play.delete-instance": {
"message": "인스턴스 삭제"
},
"app.modal.install-to-play.external-files-dont-install": {
"message": "설치하지 않음"
},
"app.modal.install-to-play.header": {
"message": "설치하고 플레이"
},
@@ -455,6 +602,9 @@
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {모드 #개} other {모드 #개}}"
},
"app.modal.install-to-play.report-description": {
"message": "본 서식을 사용하여 당사의 <rules-link>규칙</rules-link> 또는 <terms-link>이용약관</terms-link> 위반 가능성이 있는 인스턴스를 신고하세요."
},
"app.modal.install-to-play.reviewed-files": {
"message": "모든 파일은 형식(.mrpack 포함)에 무관하게 Modrinth에 게시되어야만 검수를 거칩니다."
},
@@ -1073,6 +1223,36 @@
"instance.settings.tabs.window.width.enter": {
"message": "너비 입력..."
},
"instance.shared-instance.publish-review.admonition-header": {
"message": "플레이어에게 업데이트 게시"
},
"instance.shared-instance.publish-review.config-title-v2": {
"message": "설정 파일 선택"
},
"instance.shared-instance.publish-review.description": {
"message": "콘텐츠 변경 사항을 검토하고 이번 업데이트에 포함할 설정 파일을 선택하세요."
},
"instance.shared-instance.publish-review.header": {
"message": "변경 사항 검토"
},
"instance.shared-instance.publish-review.publish-button": {
"message": "업데이트 푸시"
},
"instance.shared-instance.publish-review.removed-label": {
"message": "제거됨"
},
"instance.shared-instance.tooltip": {
"message": "이 인스턴스의 콘텐츠는 다른 사용자가 관리하고 있습니다."
},
"instance.shared-instance.unavailable.access-revoked-text": {
"message": "공유 인스턴스 접근 권한이 취소되었습니다. 이 인스턴스는 계속 사용 가능하지만, 더 이상 연동되지 않으며 업데이트를 받지 않습니다."
},
"instance.shared-instance.unavailable.deleted-text": {
"message": "기본 인스턴스가 삭제되었습니다. 이 인스턴스는 계속 사용 가능하지만, 더 이상 연동되지 않으며 업데이트를 받지 않습니다."
},
"instance.shared-instance.unavailable.locked-text": {
"message": "이 공유 인스턴스는 콘텐츠 조정 팀에 의해 잠겼습니다. 기본 인스턴스 업데이트를 받지 않으며 플레이할 수 없습니다."
},
"instance.worlds.a_minecraft_server": {
"message": "Minecraft 서버"
},
+389 -11
View File
@@ -89,11 +89,14 @@
"app.action-bar.install.unknown-instance": {
"message": "Onbekende instantie"
},
"app.action-bar.install.updating-shared-content": {
"message": "Gedeelde inhoud bijwerken"
},
"app.action-bar.installs": {
"message": "Installaties"
},
"app.action-bar.make-primary-instance": {
"message": "Maak primaire instantie"
"message": "Tot hoofdinstantie maken"
},
"app.action-bar.no-instances-running": {
"message": "Geen actieve instanties"
@@ -102,7 +105,7 @@
"message": "Offline"
},
"app.action-bar.primary-instance": {
"message": "Primaire instantie"
"message": "Hoofdinstantie"
},
"app.action-bar.reload-to-update": {
"message": "Herlaadt om te updaten"
@@ -338,6 +341,36 @@
"app.install.phase.running_loader_processors": {
"message": "Loader-processors aan het uitvoeren"
},
"app.instance.admonitions.shared-instance.added-label": {
"message": "Toegevoegd"
},
"app.instance.admonitions.shared-instance.changes-body": {
"message": "Je lokale instantie loopt voor op de gebruikers met wie je deze hebt gedeeld."
},
"app.instance.admonitions.shared-instance.changes-header": {
"message": "Je wijzigingen zijn nog niet gedeeld"
},
"app.instance.admonitions.shared-instance.publish-button": {
"message": "Update verzenden"
},
"app.instance.admonitions.shared-instance.publishing-button": {
"message": "Verzenden..."
},
"app.instance.admonitions.shared-instance.removed-label": {
"message": "Verwijderd"
},
"app.instance.admonitions.shared-instance.review-admonition-header": {
"message": "Update verzenden"
},
"app.instance.admonitions.shared-instance.review-description": {
"message": "Bekijk de inhoudelijke wijzigingen die met alle gebruikers van deze instantie zullen worden gedeeld."
},
"app.instance.admonitions.shared-instance.review-header": {
"message": "Wijzigingen bekijken"
},
"app.instance.admonitions.shared-instance.reviewing-button": {
"message": "Controleren..."
},
"app.instance.confirm-delete.admonition-body": {
"message": "Alle gegevens van je instantie worden definitief verwijderd, inclusief je werelden, configuraties en alle geïnstalleerde inhoud."
},
@@ -374,6 +407,9 @@
"app.instance.mods.content-type-project": {
"message": "project"
},
"app.instance.mods.locked-content": {
"message": "De inhoud van vergrendelde instanties kan niet worden gewijzigd."
},
"app.instance.mods.project-was-added": {
"message": "\"{name}\" was toegevoegd"
},
@@ -389,6 +425,102 @@
"app.instance.mods.successfully-uploaded": {
"message": "Succesvol geüpload"
},
"app.instance.share.empty.description": {
"message": "Je kunt deze instantie met je vrienden delen!"
},
"app.instance.share.empty.heading": {
"message": "Geen vrienden uitgenodigd"
},
"app.instance.share.empty.invite-friends-button": {
"message": "Vrienden uitnodigen"
},
"app.instance.share.invite-modal.heading": {
"message": "{name} delen"
},
"app.instance.share.locked.empty-description-prefix": {
"message": "Je moet je aanmelden als"
},
"app.instance.share.locked.empty-description-suffix": {
"message": "om deze pagina te openen."
},
"app.instance.share.locked.linked-account-fallback": {
"message": "het gekoppelde account"
},
"app.instance.share.locked.signed-out-heading": {
"message": "Niet aangemeld"
},
"app.instance.share.locked.switch-account-button": {
"message": "Van account wisselen"
},
"app.instance.share.locked.wrong-account-heading": {
"message": "Verkeerd account"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "Ze zullen geen updates meer ontvangen voor deze gedeelde instantie"
},
"app.instance.share.remove-user-modal.effect-installed-copy": {
"message": "Elke versie die ze al hebben geïnstalleerd, blijft op hun apparaat staan"
},
"app.instance.share.remove-user-modal.effect-invite-again": {
"message": "Je kunt ze later opnieuw uitnodigen"
},
"app.instance.share.remove-user-modal.effect-last-user": {
"message": "Dit is de laatste gebruiker; delen wordt voor deze instantie uitgeschakeld"
},
"app.instance.share.remove-user-modal.effects-label": {
"message": "Wat gebeurt er dan?"
},
"app.instance.share.remove-user-modal.header": {
"message": "Toegang intrekken"
},
"app.instance.share.remove-user-modal.remove-button": {
"message": "Toegang intrekken"
},
"app.instance.share.remove-user-modal.user-avatar-alt": {
"message": "Avatar van {username}"
},
"app.instance.share.remove-user-modal.warning-body": {
"message": "Als je de toegang van {username} tot deze gedeelde instantie intrekt, moet je die persoon opnieuw uitnodigen voordat die updates kunnen ontvangen."
},
"app.instance.share.sign-in.button": {
"message": "Aanmelden"
},
"app.instance.share.unlink.body": {
"message": "Je moet dit modpack ontkoppelen om je instantie te kunnen delen"
},
"app.instance.share.unlink.header": {
"message": "Om te delen moet je ontkoppelen"
},
"app.instance.shared-instance-already-installed.body": {
"message": "Deze gedeelde instantie is al geïnstalleerd als <bold>{instanceName}</bold>. Weet je zeker dat je nog een exemplaar wilt installeren?"
},
"app.instance.shared-instance-already-installed.header": {
"message": "Gedeelde instantie al geïnstalleerd"
},
"app.instance.shared-instance-already-installed.install-anyway": {
"message": "Toch installeren"
},
"app.instance.shared-instance-already-installed.instance": {
"message": "Instantie"
},
"app.instance.shared-instance-wrong-account.fallback-username": {
"message": "het gekoppelde account"
},
"app.instance.shared-instance-wrong-account.owner-admonition-body-v2": {
"message": "om deze gedeelde instantie te beheren. Je kunt geen updates naar gebruikers verzenden."
},
"app.instance.shared-instance-wrong-account.sign-in-as-label": {
"message": "Log in als"
},
"app.instance.shared-instance-wrong-account.signed-out-header": {
"message": "Je moet je aanmelden bij Modrinth"
},
"app.instance.shared-instance-wrong-account.user-admonition-body-v2": {
"message": "om updates voor deze gedeelde instantie te ontvangen."
},
"app.instance.shared-instance-wrong-account.warning-header": {
"message": "Je gebruikt het verkeerde Modrinth-account"
},
"app.instance.worlds.add-server": {
"message": "Voeg server toe"
},
@@ -440,6 +572,21 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Zoek werelden"
},
"app.modal.install-to-play.additional-context": {
"message": "Aanvullende context"
},
"app.modal.install-to-play.additional-context-placeholder": {
"message": "Voeg links en afbeeldingen toe als dat mogelijk en relevant is"
},
"app.modal.install-to-play.content-you-are-reporting": {
"message": "Instantie die je meldt"
},
"app.modal.install-to-play.delete-instance": {
"message": "Instantie verwijderen"
},
"app.modal.install-to-play.external-files-dont-install": {
"message": "Niet installeren"
},
"app.modal.install-to-play.header": {
"message": "Installeer om te spelen"
},
@@ -455,12 +602,51 @@
"app.modal.install-to-play.mod-count": {
"message": "{count, plural,one {# mod}other {# mods}}"
},
"app.modal.install-to-play.report-description": {
"message": "Gebruik dit formulier om instanties te melden die mogelijk in strijd zijn met onze <rules-link>Regels</rules-link> of <terms-link>Gebruiksvoorwaarden</terms-link>."
},
"app.modal.install-to-play.report-image-invalid-type": {
"message": "Bestand is geen ondersteund afbeeldingstype"
},
"app.modal.install-to-play.report-image-too-large": {
"message": "Bestand overschrijdt maximale grootte van 1 MiB"
},
"app.modal.install-to-play.report-legal-claims": {
"message": "Voor DMCA-meldingen of andere juridische vorderingen, zie ons <copyright-link>auteursrechtbeleid</copyright-link>."
},
"app.modal.install-to-play.report-reason": {
"message": "Welke regel wordt in deze instantie overtreden?"
},
"app.modal.install-to-play.report-reason.inappropriate": {
"message": "Ongepast"
},
"app.modal.install-to-play.report-reason.malicious": {
"message": "Kwaadaardig"
},
"app.modal.install-to-play.report-reason.spam": {
"message": "Spam"
},
"app.modal.install-to-play.report-shared-instance-header": {
"message": "Gedeelde instantie melden"
},
"app.modal.install-to-play.report-submitted": {
"message": "Melding ingediend"
},
"app.modal.install-to-play.report-support-and-bugs": {
"message": "Neem voor ondersteuningsverzoeken contact op met ons <support-link>ondersteuningsteam</support-link>. Voor bugmeldingen kun je een <github-link>GitHub-issue</github-link> aanmaken."
},
"app.modal.install-to-play.reviewed-files": {
"message": "Een bestand wordt alleen beoordeeld als het op Modrinth wordt gepubliceerd, ongeacht het bestandsformaat (inclusief .mrpack)."
},
"app.modal.install-to-play.shared-instance": {
"message": "Gedeelde instantie"
},
"app.modal.install-to-play.shared-instance-content": {
"message": "Inhoud van de gedeelde instantie"
},
"app.modal.install-to-play.shared-instance-unknown-files-description": {
"message": "Deze gedeelde instantie bevat bestanden die niet op Modrinth zijn gepubliceerd. We raden je ten zeerste aan om alleen bestanden te installeren uit bronnen die je vertrouwt."
},
"app.modal.install-to-play.unknown-files-description": {
"message": "Dit server-modpack bevat bestanden die niet op Modrinth zijn gepubliceerd. We raden je ten zeerste aan om alleen bestanden te installeren uit bronnen die je vertrouwt."
},
@@ -479,6 +665,24 @@
"app.modal.update-to-play.removed": {
"message": "Verwijderde"
},
"app.modal.update-to-play.server-modpack-unknown-files-description": {
"message": "Deze update voor de server-modpack bevat bestanden die niet op Modrinth zijn gepubliceerd. We raden je ten zeerste aan om alleen bestanden te installeren uit bronnen die je vertrouwt."
},
"app.modal.update-to-play.shared-instance-added-label": {
"message": "Toegevoegd"
},
"app.modal.update-to-play.shared-instance-removed-label": {
"message": "Verwijderd"
},
"app.modal.update-to-play.shared-instance-unknown-files-description": {
"message": "Deze update voor de gedeelde instantie bevat bestanden die niet op Modrinth zijn gepubliceerd. We raden je ten zeerste aan om alleen bestanden te installeren uit bronnen die je vertrouwt."
},
"app.modal.update-to-play.update-required": {
"message": "Update vereist"
},
"app.modal.update-to-play.update-required-description": {
"message": "Er is een update nodig om {name} te spelen. Werk het spel bij naar de nieuwste versie om het te kunnen starten."
},
"app.project.install-button.already-installed": {
"message": "Dit project is al geïnstalleerd"
},
@@ -543,7 +747,7 @@
"message": "De geselecteerde skin wordt permanent verwijderd. Deze actie kan niet ongedaan worden gemaakt."
},
"app.skins.delete-modal.title": {
"message": "Weet u zeker dat u deze skin wilt verwijderen?"
"message": "Weet je zeker dat je deze skin wilt verwijderen?"
},
"app.skins.dropped-file-error.text": {
"message": "Kan het neergezette bestand niet lezen."
@@ -612,7 +816,7 @@
"message": "Voorvertonen"
},
"app.skins.rate-limit.text": {
"message": "U verandert te snel van skin. Mojang's servers hebben nieuwe aanvragen tijdelijk geblokkeerd. Wacht een moment voordat u het opnieuw probeert."
"message": "Je verandert je skin te vaak. De servers van Mojang hebben verdere verzoeken tijdelijk geblokkeerd. Wacht even voordat je het opnieuw probeert."
},
"app.skins.rate-limit.title": {
"message": "Rustig aan!"
@@ -645,7 +849,7 @@
"message": "Modrinth Pride"
},
"app.skins.section.modrinth-pride.tooltip": {
"message": "U heeft deze skins ontvangen omdat u tijdens Pride Month heeft gedoneerd aan een Modrinth Pride-inzamelingsactie."
"message": "Je hebt deze skins ontvangen omdat je tijdens Pride Month een donatie hebt gedaan aan een inzamelingsactie van Modrinth Pride."
},
"app.skins.section.mounts-of-mayhem": {
"message": "Mounts of Mayhem"
@@ -669,13 +873,13 @@
"message": "Inloggen"
},
"app.skins.sign-in.description": {
"message": "Log in op je Minecraft-account om de skinbeheerfuncties van de Modrinth-app te gebruiken."
"message": "Log in op je Minecraft-account om de functies voor het beheren van skins in de Modrinth-app te kunnen gebruiken."
},
"app.skins.sign-in.rinthbot-alt": {
"message": "Excited Modrinth Bot"
},
"app.skins.sign-in.title": {
"message": "Log in"
"message": "Graag inloggen"
},
"app.skins.title": {
"message": "Skinkiezer"
@@ -734,6 +938,39 @@
"app.world.world-item.players-online": {
"message": "{count} online"
},
"content.shared-instance.change-version-body": {
"message": "Als je de versie wijzigt, wordt alleen je lokale kopie aangepast. Bij toekomstige updates van de gedeelde instantie kan deze weer worden teruggezet of opnieuw worden gewijzigd."
},
"content.shared-instance.delete-bulk-body": {
"message": "Sommige geselecteerde projecten maken deel uit van de gedeelde instantie. Als je ze verwijdert, wordt alleen je lokale kopie aangepast; bij toekomstige updates van de gedeelde instantie kunnen ze weer worden hersteld of opnieuw worden gewijzigd."
},
"content.shared-instance.delete-button": {
"message": "Toch verwijderen"
},
"content.shared-instance.delete-many-button": {
"message": "{count, plural, one {# project} other {# projecten}} toch verwijderen"
},
"content.shared-instance.delete-single-body": {
"message": "Het verwijderen past alleen je lokale kopie aan. Bij toekomstige updates van de gedeelde instantie kan deze weer worden teruggezet of opnieuw worden gewijzigd."
},
"content.shared-instance.disable-bulk-body": {
"message": "Sommige geselecteerde projecten maken deel uit van de gedeelde instantie. Als je ze uitschakelt, heeft dit alleen gevolgen voor je lokale kopie; bij toekomstige updates van de gedeelde instantie kunnen ze opnieuw worden ingeschakeld, hersteld of gewijzigd."
},
"content.shared-instance.disable-button": {
"message": "Toch uitschakelen"
},
"content.shared-instance.disable-many-button": {
"message": "{count, plural, one {# project} other {# projecten}} toch uitschakelen"
},
"content.shared-instance.disable-single-body": {
"message": "Het uitschakelen heeft alleen gevolgen voor je lokale kopie. Bij toekomstige updates van de gedeelde instantie kan deze functie opnieuw worden ingeschakeld, hersteld of gewijzigd."
},
"content.shared-instance.unlink-body": {
"message": "Het ontkoppelen heeft alleen invloed op je lokale kopie. Bij toekomstige updates van de gedeelde instantie kan deze weer worden hersteld of opnieuw worden gewijzigd."
},
"content.shared-instance.warning-header": {
"message": "Dit maakt deel uit van de gedeelde instantie"
},
"friends.action.add-friend": {
"message": "Voeg een vriend toe"
},
@@ -753,7 +990,7 @@
"message": "Voer Modrinth gebruikersnaam in..."
},
"friends.add-friend.username.title": {
"message": "Wat is de Modrinth gebruikersnaam van jouw vriend?"
"message": "Wat is de Modrinth-gebruikersnaam van je vriend(in)?"
},
"friends.add-friends-to-share": {
"message": "<link>Voeg vrienden toe</link> om te zien wat zij spelen!"
@@ -795,7 +1032,49 @@
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Log in op een Modrinth account</link> om vrienden toe te voegen en zien wat zij spelen!"
"message": "<link>Log in op een Modrinth-account</link> om vrienden toe te voegen en te zien wat zij spelen!"
},
"installation-settings.shared-instance.linked-title": {
"message": "Gekoppelde gedeelde instantie"
},
"installation-settings.shared-instance.title": {
"message": "Instantie terugtrekken"
},
"installation-settings.shared-instance.unlink-button": {
"message": "Gedeelde instantie ontkoppelen"
},
"installation-settings.shared-instance.unlink-description": {
"message": "Koppel deze lokale instantie los van toekomstige gedeelde updates."
},
"installation-settings.shared-instance.unlinking-button": {
"message": "Ontkoppelen..."
},
"installation-settings.shared-instance.unpublish-button": {
"message": "Gedeelde instantie terugtrekken"
},
"installation-settings.shared-instance.unpublish-description": {
"message": "Verwijder deze gedeelde instantie uit Modrinth en stuur geen updates meer naar gebruikers ervan. Je lokale instantie merkt hier geen gevolgen van."
},
"installation-settings.shared-instance.unpublishing-button": {
"message": "Terugtrekken..."
},
"installation-settings.unlink-shared-instance.modal.admonition-body": {
"message": "Dit heeft alleen gevolgen voor je lokale instantie. Je geïnstalleerde inhoud blijft op dit apparaat staan, en de gedeelde instantie en andere gebruikers ervan ondervinden hier geen hinder van."
},
"installation-settings.unlink-shared-instance.modal.admonition-header": {
"message": "Gedeelde instantie ontkoppelen"
},
"installation-settings.unlink-shared-instance.modal.header": {
"message": "Gedeelde instantie ontkoppelen"
},
"installation-settings.unpublish-shared-instance.modal.admonition-body": {
"message": "Hiermee wordt de gedeelde instantie van de servers van Modrinth verwijderd. Gebruikers die deze instantie in de Modrinth-app gebruiken, ontvangen geen updates meer, maar je lokale instantie en de inhoud daarvan blijven op dit apparaat staan."
},
"installation-settings.unpublish-shared-instance.modal.admonition-header": {
"message": "Gedeelde instantie terugtrekken"
},
"installation-settings.unpublish-shared-instance.modal.header": {
"message": "Gedeelde instantie terugtrekken"
},
"instance.action.create-shortcut": {
"message": "Snelkoppeling maken"
@@ -866,6 +1145,12 @@
"instance.files.save-as": {
"message": "Opslaan als..."
},
"instance.locked.delete-button": {
"message": "Instantie verwijderen"
},
"instance.locked.play-tooltip": {
"message": "Deze instantie is vergrendeld"
},
"instance.playtime.never-played": {
"message": "Nog nooit gespeeld"
},
@@ -1004,6 +1289,9 @@
"instance.settings.tabs.installation.loader-version": {
"message": "Versie {loader}"
},
"instance.settings.tabs.installation.locked": {
"message": "Installatie-instellingen zijn niet beschikbaar zolang deze instantie is vergrendeld."
},
"instance.settings.tabs.java": {
"message": "Java en geheugen"
},
@@ -1043,6 +1331,9 @@
"instance.settings.tabs.java.java-path-placeholder": {
"message": "//pad/naar/java"
},
"instance.settings.tabs.sharing": {
"message": "Delen"
},
"instance.settings.tabs.window": {
"message": "Venster"
},
@@ -1073,6 +1364,57 @@
"instance.settings.tabs.window.width.enter": {
"message": "Voer breedte in..."
},
"instance.shared-instance.error.title": {
"message": "Er is iets misgegaan"
},
"instance.shared-instance.owner-tooltip": {
"message": "De inhoud van deze instantie wordt gedeeld met andere gebruikers."
},
"instance.shared-instance.publish-review.added-label": {
"message": "Toegevoegd"
},
"instance.shared-instance.publish-review.admonition-header": {
"message": "Update naar spelers verzenden"
},
"instance.shared-instance.publish-review.config-title-v2": {
"message": "Configuratiebestanden selecteren"
},
"instance.shared-instance.publish-review.description": {
"message": "Bekijk de inhoudelijke wijzigingen en selecteer de configuratiebestanden die je in deze update wilt opnemen."
},
"instance.shared-instance.publish-review.header": {
"message": "Wijzigingen bekijken"
},
"instance.shared-instance.publish-review.publish-button": {
"message": "Update verzenden"
},
"instance.shared-instance.publish-review.removed-label": {
"message": "Verwijderd"
},
"instance.shared-instance.tooltip": {
"message": "De inhoud van deze instantie wordt door iemand anders beheerd."
},
"instance.shared-instance.unavailable.access-revoked-text": {
"message": "Je toegang tot de gedeelde instantie is ingetrokken. Deze instantie is nog steeds beschikbaar, maar is niet langer gekoppeld en ontvangt geen updates meer."
},
"instance.shared-instance.unavailable.deleted-text": {
"message": "De hoofdinstantie is verwijderd. Deze instantie is nog steeds beschikbaar, maar is niet meer gekoppeld en ontvangt geen updates meer."
},
"instance.shared-instance.unavailable.locked-text": {
"message": "Deze gedeelde instantie is vergrendeld door het inhoudsmoderatieteam. De instantie ontvangt geen updates meer van de hoofdinstantie en je kunt er niet meer in spelen."
},
"instance.shared-instance.unavailable.locked-title": {
"message": "Instantie vergrendeld"
},
"instance.shared-instance.unavailable.manager-fallback": {
"message": "de instantiebeheerder"
},
"instance.shared-instance.unavailable.text": {
"message": "Je lokale instantie is nog steeds beschikbaar, maar is niet langer gekoppeld en ontvangt geen updates meer."
},
"instance.shared-instance.unavailable.title": {
"message": "Gedeelde instantie niet meer beschikbaar"
},
"instance.worlds.a_minecraft_server": {
"message": "Een Minecraft server"
},
@@ -1125,7 +1467,7 @@
"message": "Minecraft account"
},
"minecraft-account.not-signed-in": {
"message": "Niet ingelogd"
"message": "Niet aangemeld"
},
"minecraft-account.remove-account": {
"message": "Verwijder account"
@@ -1134,7 +1476,7 @@
"message": "Selecteer account"
},
"minecraft-account.sign-in": {
"message": "Log in bij Minecraft"
"message": "Meld je aan bij Minecraft"
},
"minecraft-required.description": {
"message": "Je hebt een Microsoft-account nodig waarop Minecraft is geregistreerd voordat je het spel kunt starten en spelen."
@@ -1157,6 +1499,42 @@
"minecraft-required.sign-in": {
"message": "Aanmelden bij Microsoft"
},
"modal.modrinth-account-required.browser-description": {
"message": "Er is een nieuw tabblad geopend om je aan te melden. Log daar in en ga vervolgens terug naar de app."
},
"modal.modrinth-account-required.cancel-button": {
"message": "Annuleren"
},
"modal.modrinth-account-required.continue-in-browser-heading": {
"message": "Doorgaan in je browser"
},
"modal.modrinth-account-required.create-account-button": {
"message": "Een account aanmaken"
},
"modal.modrinth-account-required.description": {
"message": "Je moet je aanmelden bij je Modrinth-account voordat je deze functie kunt gebruiken."
},
"modal.modrinth-account-required.header": {
"message": "Account vereist"
},
"modal.modrinth-account-required.open-browser-again-button": {
"message": "Opnieuw de browser openen"
},
"modal.modrinth-account-required.sign-in-button": {
"message": "Bij Modrinth aanmelden"
},
"modal.modrinth-account-required.sign-in-heading": {
"message": "Meld je aan bij een Modrinth-account"
},
"modal.modrinth-account-required.signing-in-header": {
"message": "Aanmelden"
},
"modal.modrinth-account-required.support-prompt": {
"message": "Problemen bij het aanmelden? <support>Hulp krijgen</support>"
},
"modal.modrinth-account-required.waiting-for-browser": {
"message": "Wachten op bevestiging van de browser..."
},
"search.filter.locked.instance": {
"message": "Aangeboden door de instantie"
},
@@ -359,6 +359,12 @@
"app.instance.admonitions.shared-instance.review-admonition-header": {
"message": "Opublikuj aktualizację"
},
"app.instance.admonitions.shared-instance.review-header": {
"message": "Sprawdź zmiany"
},
"app.instance.admonitions.shared-instance.reviewing-button": {
"message": "Trwa przegląd..."
},
"app.instance.confirm-delete.admonition-body": {
"message": "Wszystkie dane z Twojej instancji zostaną trwale usunięte, w tym Twoje światy, pliki konfiguracji i jakakolwiek dodana zawartość."
},
@@ -407,6 +413,69 @@
"app.instance.mods.successfully-uploaded": {
"message": "Przesyłanie zakończone sukcesem"
},
"app.instance.share.empty.heading": {
"message": "Nie zaproszono żadnych znajomych"
},
"app.instance.share.empty.invite-friends-button": {
"message": "Zaproś znajomych"
},
"app.instance.share.invite-modal.heading": {
"message": "Udostępnij {name}"
},
"app.instance.share.locked.empty-description-prefix": {
"message": "Musisz zalogować się jako"
},
"app.instance.share.locked.empty-description-suffix": {
"message": ", by mieć dostęp do tej strony."
},
"app.instance.share.locked.linked-account-fallback": {
"message": "połączone konto"
},
"app.instance.share.locked.signed-out-heading": {
"message": "Nie zalogowano"
},
"app.instance.share.locked.switch-account-button": {
"message": "Zmień konto"
},
"app.instance.share.locked.wrong-account-heading": {
"message": "Złe konto"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "Nie będzie w stanie otrzymywać aktualizacji dla tej udostępnionej instancji"
},
"app.instance.share.remove-user-modal.effects-label": {
"message": "Co się stanie?"
},
"app.instance.share.remove-user-modal.header": {
"message": "Odwołaj dostęp"
},
"app.instance.share.remove-user-modal.remove-button": {
"message": "Odwołaj dostęp"
},
"app.instance.share.remove-user-modal.user-avatar-alt": {
"message": "Awatar użytkownika {username}"
},
"app.instance.share.sign-in.button": {
"message": "Zaloguj się"
},
"app.instance.shared-instance-already-installed.install-anyway": {
"message": "Instaluj mimo to"
},
"app.instance.shared-instance-already-installed.instance": {
"message": "Instancja"
},
"app.instance.shared-instance-wrong-account.fallback-username": {
"message": "połączone konto"
},
"app.instance.shared-instance-wrong-account.sign-in-as-label": {
"message": "Zaloguj się jako"
},
"app.instance.shared-instance-wrong-account.signed-out-header": {
"message": "Musisz zalogować się na Modrinth"
},
"app.instance.shared-instance-wrong-account.user-admonition-body-v2": {
"message": ", by otrzymywać aktualizacje dla tej udostępnionej instancji."
},
"app.instance.worlds.add-server": {
"message": "Dodaj serwer"
},
@@ -458,6 +527,18 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Szukaj wśród {count} światów..."
},
"app.modal.install-to-play.additional-context": {
"message": "Dodatkowy kontekst"
},
"app.modal.install-to-play.content-you-are-reporting": {
"message": "Instancja, którą zgłaszasz"
},
"app.modal.install-to-play.delete-instance": {
"message": "Usuń instancję"
},
"app.modal.install-to-play.external-files-dont-install": {
"message": "Nie instaluj"
},
"app.modal.install-to-play.header": {
"message": "Zainstaluj, aby grać"
},
@@ -473,6 +554,30 @@
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# mod} few {# mody} other {# modów}}"
},
"app.modal.install-to-play.report-image-invalid-type": {
"message": "Plik nie jest dozwolonym formatem zdjęcia"
},
"app.modal.install-to-play.report-image-too-large": {
"message": "Plik przekracza limit rozmiaru (1MiB)"
},
"app.modal.install-to-play.report-legal-claims": {
"message": "W przypadku powiadomień DMCA lub innych roszczeń prawnych zapoznaj się z naszą <copyright-link>Polityką dotyczącą praw autorskich</copyright-link>."
},
"app.modal.install-to-play.report-reason": {
"message": "Którą zasadę narusza ta instancja?"
},
"app.modal.install-to-play.report-reason.malicious": {
"message": "Złośliwe"
},
"app.modal.install-to-play.report-reason.spam": {
"message": "Spam"
},
"app.modal.install-to-play.report-shared-instance-header": {
"message": "Zgłoś udostępnioną instancję"
},
"app.modal.install-to-play.report-submitted": {
"message": "Zgłoszenie przesłane"
},
"app.modal.install-to-play.reviewed-files": {
"message": "Plik jest sprawdzony tylko, jeżeli został opublikowany na Modrinth, niezależnie od jego formatu (w tym pliki .mrpack)."
},
@@ -497,6 +602,21 @@
"app.modal.update-to-play.removed": {
"message": "Usunięto"
},
"app.modal.update-to-play.shared-instance-added-label": {
"message": "Dodano"
},
"app.modal.update-to-play.shared-instance-removed-label": {
"message": "Usunięto"
},
"app.modal.update-to-play.shared-instance-unknown-files-description": {
"message": "Ta aktualizacja udostępnionej instancji zawiera pliki, które nie zostały opublikowane na Modrinth. Zalecamy instalowanie plików tylko z źródeł, którym ufasz."
},
"app.modal.update-to-play.update-required": {
"message": "Wymagana jest aktualizacja"
},
"app.modal.update-to-play.update-required-description": {
"message": "Aktualizacja jest wymagana, by grać w {name}. Zaktualizuj do najnowszej wersji, aby uruchomić grę."
},
"app.project.install-button.already-installed": {
"message": "Ten projekt jest już zainstalowany"
},
@@ -752,6 +872,21 @@
"app.world.world-item.players-online": {
"message": "{count} online"
},
"content.shared-instance.delete-button": {
"message": "Usuń mimo to"
},
"content.shared-instance.delete-many-button": {
"message": "Usuń {count, number} projekty/ów mimo to"
},
"content.shared-instance.disable-button": {
"message": "Wyłącz mimo to"
},
"content.shared-instance.disable-many-button": {
"message": "Wyłącz {count, number} projekty/ów mimo to"
},
"content.shared-instance.warning-header": {
"message": "Jest to część udostępnionej instancji"
},
"friends.action.add-friend": {
"message": "Dodaj znajomego"
},
@@ -815,6 +950,9 @@
"friends.sign-in-to-add-friends": {
"message": "<link>Zaloguj się na konto Modrinth</link> by dodać znajomych i widzieć, w co grają!"
},
"installation-settings.shared-instance.linked-title": {
"message": "Powiązana udostępniona instancja"
},
"instance.action.create-shortcut": {
"message": "Utwórz skrót"
},
@@ -1061,6 +1199,9 @@
"instance.settings.tabs.java.java-path-placeholder": {
"message": "/path/to/java"
},
"instance.settings.tabs.sharing": {
"message": "Udostępnianie"
},
"instance.settings.tabs.window": {
"message": "Okno"
},
@@ -1091,12 +1232,57 @@
"instance.settings.tabs.window.width.enter": {
"message": "Wprowadź szerokość..."
},
"instance.shared-instance.error.title": {
"message": "Coś poszło nie tak"
},
"instance.shared-instance.owner-tooltip": {
"message": "Zawartość tej instancji jest udostępniana dla innych użytkowników."
},
"instance.shared-instance.publish-review.added-label": {
"message": "Dodano"
},
"instance.shared-instance.publish-review.admonition-header": {
"message": "Opublikuj aktualizację graczom"
},
"instance.shared-instance.publish-review.config-title-v2": {
"message": "Wybierz pliki konfiguracji"
},
"instance.shared-instance.publish-review.description": {
"message": "Sprawdź zmiany zawartości i wybierz pliki konfiguracji, które mają być zawarte w tej aktualizacji."
},
"instance.shared-instance.publish-review.header": {
"message": "Sprawdź zmiany"
},
"instance.shared-instance.publish-review.publish-button": {
"message": "Opublikuj aktualizację"
},
"instance.shared-instance.publish-review.removed-label": {
"message": "Usunięto"
},
"instance.shared-instance.tooltip": {
"message": "Zawartość tej instancji jest zarządzana przez kogoś innego."
},
"instance.shared-instance.unavailable.access-revoked-text": {
"message": "Twój dostęp do udostępnionej instancji został odwołany. Instancja jest nadal dostępna, ale nie jest już połączona i nie będzie otrzymywać aktualizacji."
},
"instance.shared-instance.unavailable.deleted-text": {
"message": "Instancja źródłowa została usunięta. Instancja jest nadal dostępna, ale nie jest już połączona i nie będzie otrzymywać aktualizacji."
},
"instance.shared-instance.unavailable.locked-text": {
"message": "Ta udostępniona instancja została zablokowana przez zespół moderacyjny Modrinth. Nie będzie otrzymywać dalszych aktualizacji z instancji źródłowej."
},
"instance.shared-instance.unavailable.locked-title": {
"message": "Instancja zablokowana"
},
"instance.shared-instance.unavailable.manager-fallback": {
"message": "zarządcę instancji"
},
"instance.shared-instance.unavailable.text": {
"message": "Twoja lokalna instancja jest nadal dostępna, ale nie jest już połączona i nie będzie otrzymywać aktualizacji."
},
"instance.shared-instance.unavailable.title": {
"message": "Udostępniona instancja nie jest już dostępna"
},
"instance.worlds.a_minecraft_server": {
"message": "Serwer Minecraft"
},
@@ -1181,6 +1367,27 @@
"minecraft-required.sign-in": {
"message": "Zaloguj się do Microsoft"
},
"modal.modrinth-account-required.cancel-button": {
"message": "Anuluj"
},
"modal.modrinth-account-required.continue-in-browser-heading": {
"message": "Kontynuuj w przeglądarce"
},
"modal.modrinth-account-required.create-account-button": {
"message": "Utwórz konto"
},
"modal.modrinth-account-required.header": {
"message": "Konto wymagane"
},
"modal.modrinth-account-required.open-browser-again-button": {
"message": "Otwórz ponownie przeglądarkę"
},
"modal.modrinth-account-required.sign-in-button": {
"message": "Zaloguj się na Modrinth"
},
"modal.modrinth-account-required.sign-in-heading": {
"message": "Zaloguj się na konto Modrinth"
},
"search.filter.locked.instance": {
"message": "Podane przez instancję"
},
+381 -3
View File
@@ -89,6 +89,9 @@
"app.action-bar.install.unknown-instance": {
"message": "Instância desconhecida"
},
"app.action-bar.install.updating-shared-content": {
"message": "Atualizando conteúdo compartilhado"
},
"app.action-bar.installs": {
"message": "Instalações"
},
@@ -201,7 +204,7 @@
"message": "Pula automaticamente as confirmações desnecessárias como duplica de instalação de pacotes de mods, exclusão de conteúdo normal, atualizações em massa, desvinculo de pacotes de mods e diálogos de reparo. Os avisos de perigo ainda serão exibidos."
},
"app.appearance-settings.skip-non-essential-warnings.title": {
"message": "Pular avisos desnecessários"
"message": "Ignorar avisos desnecessários"
},
"app.appearance-settings.toggle-sidebar.description": {
"message": "Permite alternar a barra lateral."
@@ -338,6 +341,36 @@
"app.install.phase.running_loader_processors": {
"message": "Executando processadores de loader"
},
"app.instance.admonitions.shared-instance.added-label": {
"message": "Adicionado"
},
"app.instance.admonitions.shared-instance.changes-body": {
"message": "Sua instância local é além dos usuários que você a compartilhou."
},
"app.instance.admonitions.shared-instance.changes-header": {
"message": "Suas alterações ainda não foram compartilhadas"
},
"app.instance.admonitions.shared-instance.publish-button": {
"message": "Atualização de publicação"
},
"app.instance.admonitions.shared-instance.publishing-button": {
"message": "Publicando..."
},
"app.instance.admonitions.shared-instance.removed-label": {
"message": "Removido"
},
"app.instance.admonitions.shared-instance.review-admonition-header": {
"message": "Atualização de publicação"
},
"app.instance.admonitions.shared-instance.review-description": {
"message": "Revise as alterações de conteúdo que serão compartilhadas com todos os usuários desta instância."
},
"app.instance.admonitions.shared-instance.review-header": {
"message": "Revisar alterações"
},
"app.instance.admonitions.shared-instance.reviewing-button": {
"message": "Revisando..."
},
"app.instance.confirm-delete.admonition-body": {
"message": "Todos os dados para sua instância serão excluídos permanentemente, incluindo seus mundos, configs e todo o conteúdo instalado."
},
@@ -374,6 +407,9 @@
"app.instance.mods.content-type-project": {
"message": "projeto"
},
"app.instance.mods.locked-content": {
"message": "O conteúdo em instâncias privadas não podem ser alterados."
},
"app.instance.mods.project-was-added": {
"message": "\"{name}\" foi adicionado"
},
@@ -389,6 +425,102 @@
"app.instance.mods.successfully-uploaded": {
"message": "Adicionado com sucesso"
},
"app.instance.share.empty.description": {
"message": "Você pode compartilhar esta instância com seus amigos!"
},
"app.instance.share.empty.heading": {
"message": "Nenhum amigo convidado"
},
"app.instance.share.empty.invite-friends-button": {
"message": "Convidar amigos"
},
"app.instance.share.invite-modal.heading": {
"message": "Compartilhar {name}"
},
"app.instance.share.locked.empty-description-prefix": {
"message": "Você precisa iniciar sessão como"
},
"app.instance.share.locked.empty-description-suffix": {
"message": "para acessar essa página."
},
"app.instance.share.locked.linked-account-fallback": {
"message": "a conta vinculada"
},
"app.instance.share.locked.signed-out-heading": {
"message": "Não conectado"
},
"app.instance.share.locked.switch-account-button": {
"message": "Trocar de conta"
},
"app.instance.share.locked.wrong-account-heading": {
"message": "Conta errada"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "Eles não receberão mais atualizações para esta instância compartilhada"
},
"app.instance.share.remove-user-modal.effect-installed-copy": {
"message": "Qualquer cópia que eles já instalaram ainda permanecerão no dispositivo deles"
},
"app.instance.share.remove-user-modal.effect-invite-again": {
"message": "Você pode convidá-los novamente depois"
},
"app.instance.share.remove-user-modal.effect-last-user": {
"message": "Este é o último usuário, o compartilhamento será desativado para esta instância"
},
"app.instance.share.remove-user-modal.effects-label": {
"message": "O que acontece?"
},
"app.instance.share.remove-user-modal.header": {
"message": "Revogar acesso"
},
"app.instance.share.remove-user-modal.remove-button": {
"message": "Revogar acesso"
},
"app.instance.share.remove-user-modal.user-avatar-alt": {
"message": "Avatar de {username}"
},
"app.instance.share.remove-user-modal.warning-body": {
"message": "Se você revogar o acesso de {username} a esta instância compartilhada, você precisará convidá-los de novo antes que possam receber atualizações."
},
"app.instance.share.sign-in.button": {
"message": "Iniciar sessão"
},
"app.instance.share.unlink.body": {
"message": "Você precisa desvincular este pacote de mods para compartilhar sua instância"
},
"app.instance.share.unlink.header": {
"message": "Para compartilhar requer desvincular"
},
"app.instance.shared-instance-already-installed.body": {
"message": "Esta instância compartilhada já foi instalada como <bold>{instanceName}</bold>. Deseja mesmo instalar outra cópia?"
},
"app.instance.shared-instance-already-installed.header": {
"message": "Instância compartilhada já instalada"
},
"app.instance.shared-instance-already-installed.install-anyway": {
"message": "Instalar mesmo assim"
},
"app.instance.shared-instance-already-installed.instance": {
"message": "Instância"
},
"app.instance.shared-instance-wrong-account.fallback-username": {
"message": "a conta vinculada"
},
"app.instance.shared-instance-wrong-account.owner-admonition-body-v2": {
"message": "para gerenciar esta instância compartilhada. Você não conseguirá mais publicar atualizações para os usuários."
},
"app.instance.shared-instance-wrong-account.sign-in-as-label": {
"message": "Iniciar sessão como"
},
"app.instance.shared-instance-wrong-account.signed-out-header": {
"message": "Você precisa iniciar sessão no Modrinth"
},
"app.instance.shared-instance-wrong-account.user-admonition-body-v2": {
"message": "para receber atualizações desta instância compartilhada."
},
"app.instance.shared-instance-wrong-account.warning-header": {
"message": "Você está usando a conta errada do Modrinth"
},
"app.instance.worlds.add-server": {
"message": "Adicionar servidor"
},
@@ -440,6 +572,21 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Buscar {count} mundos..."
},
"app.modal.install-to-play.additional-context": {
"message": "Contexto adicional"
},
"app.modal.install-to-play.additional-context-placeholder": {
"message": "Incluir links e imagens se possível e relevante"
},
"app.modal.install-to-play.content-you-are-reporting": {
"message": "Instância que está denunciando"
},
"app.modal.install-to-play.delete-instance": {
"message": "Excluir instância"
},
"app.modal.install-to-play.external-files-dont-install": {
"message": "Não instalar"
},
"app.modal.install-to-play.header": {
"message": "Instale para jogar"
},
@@ -455,12 +602,51 @@
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, =0 {Nenhum mod} one {# mod} other {# mods}}"
},
"app.modal.install-to-play.report-description": {
"message": "Use este formulário para denunciar casos que talvez violem nossas <rules-link>Regras</rules-link> ou <terms-link>Termos de Uso</terms-link>."
},
"app.modal.install-to-play.report-image-invalid-type": {
"message": "O arquivo não é um tipo de imagem suportado"
},
"app.modal.install-to-play.report-image-too-large": {
"message": "O arquivo excede o limite de tamanho de 1 MiB"
},
"app.modal.install-to-play.report-legal-claims": {
"message": "Para avisos DMCA ou outras reivindicações legais, veja nossa <copyright-link>Política de Copyright</copyright-link>."
},
"app.modal.install-to-play.report-reason": {
"message": "Qual regra esta instância viola?"
},
"app.modal.install-to-play.report-reason.inappropriate": {
"message": "Inapropriado"
},
"app.modal.install-to-play.report-reason.malicious": {
"message": "Malicioso"
},
"app.modal.install-to-play.report-reason.spam": {
"message": "Spam"
},
"app.modal.install-to-play.report-shared-instance-header": {
"message": "Denunciar instância compartilhada"
},
"app.modal.install-to-play.report-submitted": {
"message": "Denúncia enviada"
},
"app.modal.install-to-play.report-support-and-bugs": {
"message": "Para solicitações de suporte, entre em contato com nossa <support-link>equipe de suporte</support-link>. Para informar erros, abra uma <github-link>discussão no GitHub</github-link>."
},
"app.modal.install-to-play.reviewed-files": {
"message": "Um arquivo só é revisado se for publicado no Modrinth, independente do formato de arquivo (incluindo .mrpack)."
},
"app.modal.install-to-play.shared-instance": {
"message": "Instância compartilhada"
},
"app.modal.install-to-play.shared-instance-content": {
"message": "Conteúdo de instância compartilhado"
},
"app.modal.install-to-play.shared-instance-unknown-files-description": {
"message": "Esta instância compartilhada contém arquivos não publicados no Modrinth. Recomendamos fortemente a instalar somente arquivos de fontes que você confia."
},
"app.modal.install-to-play.unknown-files-description": {
"message": "Este pacote de mods do servidor contém arquivos não publicados no Modrinth. Recomendamos fortemente a instalar apenas arquivos de fontes que você confia."
},
@@ -479,6 +665,24 @@
"app.modal.update-to-play.removed": {
"message": "Removido"
},
"app.modal.update-to-play.server-modpack-unknown-files-description": {
"message": "Esta atualização do pacote de mods do servidor contém arquivos que não estão publicados no Modrinth. Recomendamos fortemente a apenas instalar arquivos de fontes que você confia."
},
"app.modal.update-to-play.shared-instance-added-label": {
"message": "Adicionado"
},
"app.modal.update-to-play.shared-instance-removed-label": {
"message": "Removido"
},
"app.modal.update-to-play.shared-instance-unknown-files-description": {
"message": "Esta atualização de instância compartilhada contém arquivos não publicados no Modrinth. Recomendamos fortemente a instalar apenas de fontes que você confia."
},
"app.modal.update-to-play.update-required": {
"message": "Atualização necessária"
},
"app.modal.update-to-play.update-required-description": {
"message": "Uma atualização é necessária para jogar {name}. Atualize para a versão mais recente para iniciar o jogo."
},
"app.project.install-button.already-installed": {
"message": "Este projeto já foi instalado"
},
@@ -579,7 +783,7 @@
"message": "Capas"
},
"app.skins.modal.edit-title": {
"message": "Editando a skin"
"message": "Editando skin"
},
"app.skins.modal.make-edit-first-tooltip": {
"message": "Primeiramente, faça uma edição na skin!"
@@ -624,7 +828,7 @@
"message": "Falhou ao reordenar skins"
},
"app.skins.section.builders-and-biomes": {
"message": "Construtores & Biomas"
"message": "Builders & Biomes"
},
"app.skins.section.chaos-cubed": {
"message": "Chaos Cubed"
@@ -734,6 +938,39 @@
"app.world.world-item.players-online": {
"message": "{count} ativo(s)"
},
"content.shared-instance.change-version-body": {
"message": "Alterar a versão modifica apenas a sua cópia local. Atualizações futuras da instância compartilhada podem restaurá-la ou alterá-la novamente."
},
"content.shared-instance.delete-bulk-body": {
"message": "Alguns dos projetos selecionados fazem parte da instância compartilhada. Excluí-los altera apenas sua cópia local, e futuras atualizações da instância compartilhada podem restaurá-los ou alterá-los novamente."
},
"content.shared-instance.delete-button": {
"message": "Excluir mesmo assim"
},
"content.shared-instance.delete-many-button": {
"message": "Excluir {count, plural, one {# projeto} other {# projetos}} mesmo assim"
},
"content.shared-instance.delete-single-body": {
"message": "Excluir altera apenas a sua cópia local. Atualizações futuras da instância compartilhada podem restaurá-la ou alterá-la novamente."
},
"content.shared-instance.disable-bulk-body": {
"message": "Alguns projetos selecionados fazem parte da instância compartilhada. Desativá-los afeta apenas sua cópia local, e futuras atualizações da instância compartilhada podem reativá-los, restaurá-los ou alterá-los novamente."
},
"content.shared-instance.disable-button": {
"message": "Desativar mesmo assim"
},
"content.shared-instance.disable-many-button": {
"message": "Desative {count, plural, one {# projeto} other {# projetos}} mesmo assim"
},
"content.shared-instance.disable-single-body": {
"message": "Desativá-lo altera apenas a sua cópia local. Atualizações futuras da instância compartilhada podem reativá-lo, restaurá-lo ou alterá-lo novamente."
},
"content.shared-instance.unlink-body": {
"message": "Desvincular altera apenas a sua cópia local. Atualizações futuras da instância compartilhada podem restaurá-la ou alterá-la novamente."
},
"content.shared-instance.warning-header": {
"message": "Isto faz parte da instância compartilhada"
},
"friends.action.add-friend": {
"message": "Adicionar amigo"
},
@@ -797,6 +1034,48 @@
"friends.sign-in-to-add-friends": {
"message": "<link>Inicie uma sessão com o Modrinth</link> para adicionar amigos e ver o que eles estão jogando!"
},
"installation-settings.shared-instance.linked-title": {
"message": "Instância compartilhada vinculada"
},
"installation-settings.shared-instance.title": {
"message": "Remover instância"
},
"installation-settings.shared-instance.unlink-button": {
"message": "Desvincular instância compartilhada"
},
"installation-settings.shared-instance.unlink-description": {
"message": "Desconecte esta instância local de futuras atualizações compartilhadas."
},
"installation-settings.shared-instance.unlinking-button": {
"message": "Desvinculando..."
},
"installation-settings.shared-instance.unpublish-button": {
"message": "Remover instância compartilhada"
},
"installation-settings.shared-instance.unpublish-description": {
"message": "Remova esta instância compartilhada do Modrinth e pare de enviar atualizações para todos que a utilizam. Sua instância local não será afetada."
},
"installation-settings.shared-instance.unpublishing-button": {
"message": "Removendo..."
},
"installation-settings.unlink-shared-instance.modal.admonition-body": {
"message": "Isso afeta apenas a sua instância local. O conteúdo instalado permanecerá neste dispositivo, e a instância compartilhada e outras pessoas que a utilizam não serão afetadas."
},
"installation-settings.unlink-shared-instance.modal.admonition-header": {
"message": "Desvinculando instância compartilhada"
},
"installation-settings.unlink-shared-instance.modal.header": {
"message": "Desvincular instância compartilhada"
},
"installation-settings.unpublish-shared-instance.modal.admonition-body": {
"message": "Isso excluirá a instância compartilhada dos servidores do Modrinth. As pessoas usando-o no Modrinth App não receberá mais atualizações, mas sua instância local e seu conteúdo ainda permanecerá no dispositivo."
},
"installation-settings.unpublish-shared-instance.modal.admonition-header": {
"message": "Removendo instância compartilhada"
},
"installation-settings.unpublish-shared-instance.modal.header": {
"message": "Remover instância compartilhada"
},
"instance.action.create-shortcut": {
"message": "Criar atalho"
},
@@ -866,6 +1145,12 @@
"instance.files.save-as": {
"message": "Salvar como..."
},
"instance.locked.delete-button": {
"message": "Excluir instância"
},
"instance.locked.play-tooltip": {
"message": "Esta instância foi privada"
},
"instance.playtime.never-played": {
"message": "Nunca jogou"
},
@@ -1004,6 +1289,9 @@
"instance.settings.tabs.installation.loader-version": {
"message": "Versão {loader}"
},
"instance.settings.tabs.installation.locked": {
"message": "As opções de instalação estarão indisponíveis enquanto esta instância estiver privada."
},
"instance.settings.tabs.java": {
"message": "Java e memória"
},
@@ -1043,6 +1331,9 @@
"instance.settings.tabs.java.java-path-placeholder": {
"message": "/caminho/ao/java"
},
"instance.settings.tabs.sharing": {
"message": "Compartilhamento"
},
"instance.settings.tabs.window": {
"message": "Janela"
},
@@ -1073,6 +1364,57 @@
"instance.settings.tabs.window.width.enter": {
"message": "Insira a largura..."
},
"instance.shared-instance.error.title": {
"message": "Algo deu errado"
},
"instance.shared-instance.owner-tooltip": {
"message": "O conteúdo desta instância está sendo compartilhado com outros usuários."
},
"instance.shared-instance.publish-review.added-label": {
"message": "Adicionado"
},
"instance.shared-instance.publish-review.admonition-header": {
"message": "Enviar atualização aos jogadores"
},
"instance.shared-instance.publish-review.config-title-v2": {
"message": "Selecione os arquivos de configuração"
},
"instance.shared-instance.publish-review.description": {
"message": "Revise as alterações de conteúdo e selecione os arquivos de configuração que deseja incluir nesta atualização."
},
"instance.shared-instance.publish-review.header": {
"message": "Revisar alterações"
},
"instance.shared-instance.publish-review.publish-button": {
"message": "Atualização de publicação"
},
"instance.shared-instance.publish-review.removed-label": {
"message": "Removido"
},
"instance.shared-instance.tooltip": {
"message": "O conteúdo desta instância está sendo gerenciado por outra pessoa."
},
"instance.shared-instance.unavailable.access-revoked-text": {
"message": "Seu acesso a esta instância compartilhada foi revogado. Ela ainda está disponível, mas não está mais vinculada e não receberá mais atualizações."
},
"instance.shared-instance.unavailable.deleted-text": {
"message": "A instância principal foi excluída. Esta instância ainda está disponível, mas não está mais vinculada e não receberá mais atualizações."
},
"instance.shared-instance.unavailable.locked-text": {
"message": "Esta instância compartilhada foi bloqueada pela equipe de Moderação de Conteúdo. Ela não receberá mais atualizações da instância principal e não poderá ser jogada."
},
"instance.shared-instance.unavailable.locked-title": {
"message": "Instância bloqueada"
},
"instance.shared-instance.unavailable.manager-fallback": {
"message": "o gerenciador de instâncias"
},
"instance.shared-instance.unavailable.text": {
"message": "Sua instância local ainda está disponível, mas não está mais vinculada e não receberá atualizações."
},
"instance.shared-instance.unavailable.title": {
"message": "A instância compartilhada não está mais disponível"
},
"instance.worlds.a_minecraft_server": {
"message": "Servidor de Minecraft"
},
@@ -1157,6 +1499,42 @@
"minecraft-required.sign-in": {
"message": "Entrar na Microsoft"
},
"modal.modrinth-account-required.browser-description": {
"message": "Uma nova aba foi aberta para iniciar sessão. Conclua lá, então volte ao aplicativo."
},
"modal.modrinth-account-required.cancel-button": {
"message": "Cancelar"
},
"modal.modrinth-account-required.continue-in-browser-heading": {
"message": "Continuar em seu navegador"
},
"modal.modrinth-account-required.create-account-button": {
"message": "Criar uma conta"
},
"modal.modrinth-account-required.description": {
"message": "Você precisa iniciar sessão na sua conta do Modrinth antes de usar este recurso."
},
"modal.modrinth-account-required.header": {
"message": "Conta necessária"
},
"modal.modrinth-account-required.open-browser-again-button": {
"message": "Abra o navegador novamente"
},
"modal.modrinth-account-required.sign-in-button": {
"message": "Entrar no Modrinth"
},
"modal.modrinth-account-required.sign-in-heading": {
"message": "Iniciar sessão em uma conta do Modrinth"
},
"modal.modrinth-account-required.signing-in-header": {
"message": "Iniciando sessão"
},
"modal.modrinth-account-required.support-prompt": {
"message": "Enfrentando problemas ao iniciar sessão? <support>Obtenha suporte</support>"
},
"modal.modrinth-account-required.waiting-for-browser": {
"message": "Aguardando confirmação do navegador..."
},
"search.filter.locked.instance": {
"message": "Fornecido pela instância"
},
+148 -7
View File
@@ -89,6 +89,9 @@
"app.action-bar.install.unknown-instance": {
"message": "Неизвестная сборка"
},
"app.action-bar.install.updating-shared-content": {
"message": "Обновление совместного контента"
},
"app.action-bar.installs": {
"message": "Установки"
},
@@ -338,6 +341,27 @@
"app.install.phase.running_loader_processors": {
"message": "Запуск процессоров загрузчика"
},
"app.instance.admonitions.shared-instance.added-label": {
"message": "Добавлен"
},
"app.instance.admonitions.shared-instance.changes-body": {
"message": "Локальная сборка опережает версию других участников."
},
"app.instance.admonitions.shared-instance.changes-header": {
"message": "Изменения не отправлены"
},
"app.instance.admonitions.shared-instance.publish-button": {
"message": "Отправить изменения"
},
"app.instance.admonitions.shared-instance.publishing-button": {
"message": "Отправка..."
},
"app.instance.admonitions.shared-instance.removed-label": {
"message": "Удалён"
},
"app.instance.admonitions.shared-instance.review-admonition-header": {
"message": "Отправка изменений"
},
"app.instance.admonitions.shared-instance.review-header": {
"message": "Проверьте изменения"
},
@@ -380,6 +404,9 @@
"app.instance.mods.content-type-project": {
"message": "проект"
},
"app.instance.mods.locked-content": {
"message": "Содержимое заблокированных экземпляров нельзя изменить."
},
"app.instance.mods.project-was-added": {
"message": "«{name}» добавлен"
},
@@ -392,12 +419,30 @@
"app.instance.mods.successfully-uploaded": {
"message": "Успешно загружено"
},
"app.instance.share.empty.description": {
"message": "Поделитесь сборкой со своими друзьями!"
},
"app.instance.share.empty.heading": {
"message": "Друзья не приглашены"
"message": "Нет приглашённых друзей"
},
"app.instance.share.empty.invite-friends-button": {
"message": "Пригласить друзей"
},
"app.instance.share.invite-modal.heading": {
"message": "Доступ к {name}"
},
"app.instance.share.locked.empty-description-prefix": {
"message": "Необходимо войти как"
},
"app.instance.share.locked.empty-description-suffix": {
"message": "для доступа к этой странице."
},
"app.instance.share.locked.linked-account-fallback": {
"message": "связанный аккаунт"
},
"app.instance.share.locked.signed-out-heading": {
"message": "Вход не выполнен"
},
"app.instance.share.locked.switch-account-button": {
"message": "Сменить аккаунт"
},
@@ -419,6 +464,12 @@
"app.instance.share.sign-in.button": {
"message": "Войти"
},
"app.instance.shared-instance-already-installed.header": {
"message": "Сборка уже установлена"
},
"app.instance.shared-instance-already-installed.install-anyway": {
"message": "Всё равно установить"
},
"app.instance.shared-instance-already-installed.instance": {
"message": "Сборка"
},
@@ -444,7 +495,7 @@
"message": "Удаление мира"
},
"app.instance.worlds.delete-world-modal.warning-body": {
"message": "Этот мир будет удалён навсегда из этой сборки. Отменить это действие нельзя."
"message": "Этот мир будет удалён навсегда из этой сборки. Это действие необратимо."
},
"app.instance.worlds.delete-world-modal.warning-header": {
"message": "Удаление {name}"
@@ -479,6 +530,12 @@
"app.instance.worlds.remove-server-modal.warning-header": {
"message": "Удаление {name}"
},
"app.modal.install-to-play.additional-context": {
"message": "Дополнительный контекст"
},
"app.modal.install-to-play.additional-context-placeholder": {
"message": "При желании прикрепите ссылки и изображения"
},
"app.modal.install-to-play.delete-instance": {
"message": "Удалить сборку"
},
@@ -500,15 +557,39 @@
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# мод} few {# мода} other {# модов}}"
},
"app.modal.install-to-play.report-description": {
"message": "Используйте эту форму, чтобы отправить жалобу на сборки, которые могут нарушать наши <rules-link>Правила</rules-link> или <terms-link>Условия использования</terms-link>."
},
"app.modal.install-to-play.report-image-too-large": {
"message": "Размер файла превышает лимит в 1 МиБ"
},
"app.modal.install-to-play.report-reason": {
"message": "Какое правило нарушает данная сборка?"
},
"app.modal.install-to-play.report-reason.inappropriate": {
"message": "Неприемлемое содержимое"
},
"app.modal.install-to-play.report-reason.malicious": {
"message": "Вредоносное содержимое"
},
"app.modal.install-to-play.report-reason.spam": {
"message": "Спам"
},
"app.modal.install-to-play.report-submitted": {
"message": "Жалоба отправлена"
},
"app.modal.install-to-play.reviewed-files": {
"message": "Файл проверяется только если он опубликован на Modrinth, независимо от его формата (включая .mrpack)."
},
"app.modal.install-to-play.shared-instance": {
"message": "Сборка"
},
"app.modal.install-to-play.shared-instance-content": {
"message": "Контент"
},
"app.modal.install-to-play.shared-instance-unknown-files-description": {
"message": "Сборка содержит файлы, которые не опубликованы на Modrinth. Рекомендуется скачивать файлы только из надёжных источников."
},
"app.modal.install-to-play.unknown-files-description": {
"message": "Сборка этого сервера содержит файлы, которые не опубликованы на Modrinth. Рекомендуется скачивать файлы только из надёжных источников."
},
@@ -527,6 +608,15 @@
"app.modal.update-to-play.removed": {
"message": "Удалён"
},
"app.modal.update-to-play.server-modpack-unknown-files-description": {
"message": "Обновление сборки этого сервера содержит файлы, которые не опубликованы на Modrinth. Рекомендуется скачивать файлы только из надёжных источников."
},
"app.modal.update-to-play.shared-instance-added-label": {
"message": "Добавлен"
},
"app.modal.update-to-play.shared-instance-removed-label": {
"message": "Удалён"
},
"app.modal.update-to-play.update-required": {
"message": "Требуется обновление"
},
@@ -797,6 +887,12 @@
"content.shared-instance.disable-button": {
"message": "Всё равно отключить"
},
"content.shared-instance.disable-many-button": {
"message": "Всё равно отключить {count, plural, one {# проект} few {# проекта} other {# проектов}}"
},
"content.shared-instance.warning-header": {
"message": "Это часть сборки"
},
"friends.action.add-friend": {
"message": "Добавить в друзья"
},
@@ -860,6 +956,21 @@
"friends.sign-in-to-add-friends": {
"message": "<link>Войдите в аккаунт Modrinth</link>, чтобы добавлять друзей и следить за ними!"
},
"installation-settings.shared-instance.linked-title": {
"message": "Связанная сборка"
},
"installation-settings.shared-instance.unlink-button": {
"message": "Отвязать сборку"
},
"installation-settings.shared-instance.unlinking-button": {
"message": "Отвязка..."
},
"installation-settings.unlink-shared-instance.modal.admonition-header": {
"message": "Отвязка сборки"
},
"installation-settings.unlink-shared-instance.modal.header": {
"message": "Отвязка сборки"
},
"instance.action.create-shortcut": {
"message": "Создать ярлык"
},
@@ -1106,6 +1217,9 @@
"instance.settings.tabs.java.java-path-placeholder": {
"message": "/путь/к/java"
},
"instance.settings.tabs.sharing": {
"message": "Доступ"
},
"instance.settings.tabs.window": {
"message": "Окно"
},
@@ -1136,12 +1250,30 @@
"instance.settings.tabs.window.width.enter": {
"message": "Введите ширину..."
},
"instance.shared-instance.error.title": {
"message": "Произошла ошибка"
},
"instance.shared-instance.publish-review.added-label": {
"message": "Добавлен"
},
"instance.shared-instance.publish-review.admonition-header": {
"message": "Отправка изменений игрокам"
},
"instance.shared-instance.publish-review.config-title-v2": {
"message": "Выберите файлы настройки"
},
"instance.shared-instance.publish-review.header": {
"message": "Проверьте изменения"
},
"instance.shared-instance.publish-review.publish-button": {
"message": "Отправить изменения"
},
"instance.shared-instance.publish-review.removed-label": {
"message": "Удалён"
},
"instance.shared-instance.unavailable.locked-title": {
"message": "Сборка заблокирована"
},
"instance.worlds.a_minecraft_server": {
"message": "Сервер Minecraft"
},
@@ -1188,19 +1320,19 @@
"message": "Мир используется"
},
"minecraft-account.add-account": {
"message": "Добавить"
"message": "Добавить аккаунт"
},
"minecraft-account.label": {
"message": "Учётная запись Minecraft"
"message": "Аккаунт Minecraft"
},
"minecraft-account.not-signed-in": {
"message": "Вход не выполнен"
},
"minecraft-account.remove-account": {
"message": "Удалить"
"message": "Удалить аккаунт"
},
"minecraft-account.select-account": {
"message": "Выберите профиль"
"message": "Выберите аккаунт"
},
"minecraft-account.sign-in": {
"message": "Войти в Minecraft"
@@ -1226,8 +1358,11 @@
"minecraft-required.sign-in": {
"message": "Войти в Microsoft"
},
"modal.modrinth-account-required.browser-description": {
"message": "Открылась вкладка для входа. Завершение вход и вернитесь в приложение."
},
"modal.modrinth-account-required.cancel-button": {
"message": "Отменить"
"message": "Отмена"
},
"modal.modrinth-account-required.continue-in-browser-heading": {
"message": "Продолжите в браузере"
@@ -1235,9 +1370,15 @@
"modal.modrinth-account-required.create-account-button": {
"message": "Создать аккаунт"
},
"modal.modrinth-account-required.description": {
"message": "Войдите в аккаунт Modrinth, чтобы использовать эту функцию."
},
"modal.modrinth-account-required.header": {
"message": "Требуется аккаунт"
},
"modal.modrinth-account-required.open-browser-again-button": {
"message": "Открыть браузер снова"
},
"modal.modrinth-account-required.sign-in-button": {
"message": "Войти в Modrinth"
},
+165 -3
View File
@@ -71,6 +71,9 @@
"app.action-bar.install.unknown-instance": {
"message": "Okänd instans"
},
"app.action-bar.install.updating-shared-content": {
"message": "Uppdaterar delat innehåll"
},
"app.action-bar.installs": {
"message": "Installationer"
},
@@ -320,6 +323,12 @@
"app.install.phase.running_loader_processors": {
"message": "Kör loader-processorer"
},
"app.instance.admonitions.shared-instance.added-label": {
"message": "Tillagd"
},
"app.instance.admonitions.shared-instance.removed-label": {
"message": "Borttagen"
},
"app.instance.confirm-delete.admonition-body": {
"message": "All data från din instans kommer permanent raderas, däribland dina världar, konfigurationer samt allt installerat innehåll."
},
@@ -371,6 +380,90 @@
"app.instance.mods.successfully-uploaded": {
"message": "Uppladdning lyckades"
},
"app.instance.share.empty.description": {
"message": "Du kan dela denna instansen med dina vänner!"
},
"app.instance.share.empty.heading": {
"message": "Inga inbjudna vänner"
},
"app.instance.share.empty.invite-friends-button": {
"message": "Bjud in vänner"
},
"app.instance.share.invite-modal.heading": {
"message": "Dela {name}"
},
"app.instance.share.locked.empty-description-prefix": {
"message": "Du behöver logga in som"
},
"app.instance.share.locked.empty-description-suffix": {
"message": "för att komma åt denna sida."
},
"app.instance.share.locked.linked-account-fallback": {
"message": "det länkade kontot"
},
"app.instance.share.locked.signed-out-heading": {
"message": "Inte inloggad"
},
"app.instance.share.locked.switch-account-button": {
"message": "Byt konto"
},
"app.instance.share.locked.wrong-account-heading": {
"message": "Fel konto"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "De kommer inte längre få uppdateringar för denna delade instansen"
},
"app.instance.share.remove-user-modal.effect-installed-copy": {
"message": "Alla kopior de redan har installerat kommer vara kvar på deras enhet"
},
"app.instance.share.remove-user-modal.effect-invite-again": {
"message": "Du kan bjuda in dem igen senare"
},
"app.instance.share.remove-user-modal.effects-label": {
"message": "Vad händer?"
},
"app.instance.share.remove-user-modal.header": {
"message": "Återkalla åtkomst"
},
"app.instance.share.remove-user-modal.remove-button": {
"message": "Återkalla åtkomst"
},
"app.instance.share.remove-user-modal.user-avatar-alt": {
"message": "{username}s avatar"
},
"app.instance.share.remove-user-modal.warning-body": {
"message": "Återkallar du {username}s åtkomst till denna delade instansen behöver du bjuda in dem igen innan de kan få uppdateringar."
},
"app.instance.share.sign-in.button": {
"message": "Logga in"
},
"app.instance.share.unlink.body": {
"message": "Du måste avlänka detta modpaket för att dela din instans"
},
"app.instance.share.unlink.header": {
"message": "Delning kräver avlänkning"
},
"app.instance.shared-instance-already-installed.body": {
"message": "Denna delade instansen är redan installerad som <bold>{instanceName}</bold>. Är du säker på att du vill installera en till kopia?"
},
"app.instance.shared-instance-already-installed.header": {
"message": "Delad instans redan installerad"
},
"app.instance.shared-instance-already-installed.install-anyway": {
"message": "Installera ändå"
},
"app.instance.shared-instance-already-installed.instance": {
"message": "Instans"
},
"app.instance.shared-instance-wrong-account.fallback-username": {
"message": "det länkade kontot"
},
"app.instance.shared-instance-wrong-account.sign-in-as-label": {
"message": "Logga in som"
},
"app.instance.shared-instance-wrong-account.warning-header": {
"message": "Du använder fel Modrinth-konto"
},
"app.instance.worlds.add-server": {
"message": "Lägg till server"
},
@@ -422,6 +515,21 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Sök {count} världar..."
},
"app.modal.install-to-play.additional-context": {
"message": "Ytterligare sammanhang"
},
"app.modal.install-to-play.additional-context-placeholder": {
"message": "Inkludera länkar och bilder om möjligt och relevant"
},
"app.modal.install-to-play.content-you-are-reporting": {
"message": "Instans du anmäler"
},
"app.modal.install-to-play.delete-instance": {
"message": "Radera instans"
},
"app.modal.install-to-play.external-files-dont-install": {
"message": "Installera inte"
},
"app.modal.install-to-play.header": {
"message": "Installera för att spela"
},
@@ -437,6 +545,9 @@
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# mod} other {# moddar}}"
},
"app.modal.install-to-play.report-description": {
"message": "Använd denna formulär för att anmäla instanser som kan bryta mot våra <rules-link>Regler</rules-link> eller <terms-link>Användarvillkor</terms-link>."
},
"app.modal.install-to-play.shared-instance": {
"message": "Delad instans"
},
@@ -455,6 +566,12 @@
"app.modal.update-to-play.removed": {
"message": "Tog bort"
},
"app.modal.update-to-play.shared-instance-added-label": {
"message": "Lade till"
},
"app.modal.update-to-play.shared-instance-removed-label": {
"message": "Tog bort"
},
"app.project.install-button.already-installed": {
"message": "Detta projekt är redan installerat"
},
@@ -528,7 +645,7 @@
"message": "Fel med behandlingen av filen"
},
"app.skins.edit-button": {
"message": "Redigera utseende"
"message": "Ändra utseende"
},
"app.skins.modal.add-skin-button": {
"message": "Lägg till utseende"
@@ -552,7 +669,7 @@
"message": "Mantel"
},
"app.skins.modal.edit-title": {
"message": "Redigerar utseende"
"message": "Ändrar utseende"
},
"app.skins.modal.make-edit-first-tooltip": {
"message": "Gör en ändring på utseendet först!"
@@ -579,7 +696,7 @@
"message": "Ladda upp utseende först!"
},
"app.skins.preview.edit-button": {
"message": "Redigera utseende"
"message": "Ändra utseende"
},
"app.skins.previewing-badge": {
"message": "Förhandsvisa"
@@ -764,6 +881,12 @@
"friends.sign-in-to-add-friends": {
"message": "<link>Logga in på ett Modrinth-konto</link> för att lägga till vänner och se vad de spelar!"
},
"installation-settings.shared-instance.unlink-button": {
"message": "Avlänka delad instans"
},
"installation-settings.shared-instance.unlinking-button": {
"message": "Avlänkar..."
},
"instance.action.create-shortcut": {
"message": "Skapa genväg"
},
@@ -833,6 +956,9 @@
"instance.files.save-as": {
"message": "Spara som..."
},
"instance.locked.delete-button": {
"message": "Radera instans"
},
"instance.playtime.never-played": {
"message": "Aldrig spelad"
},
@@ -1010,6 +1136,9 @@
"instance.settings.tabs.java.java-path-placeholder": {
"message": "/sökväg/till/java"
},
"instance.settings.tabs.sharing": {
"message": "Dela"
},
"instance.settings.tabs.window": {
"message": "Fönster"
},
@@ -1040,6 +1169,21 @@
"instance.settings.tabs.window.width.enter": {
"message": "Ange bredd..."
},
"instance.shared-instance.error.title": {
"message": "Något gick fel"
},
"instance.shared-instance.publish-review.added-label": {
"message": "Lade till"
},
"instance.shared-instance.publish-review.config-title-v2": {
"message": "Välj konfigurationsfiler"
},
"instance.shared-instance.publish-review.header": {
"message": "Granska ändringar"
},
"instance.shared-instance.publish-review.removed-label": {
"message": "Tog bort"
},
"instance.worlds.a_minecraft_server": {
"message": "En Minecraft Server"
},
@@ -1124,6 +1268,24 @@
"minecraft-required.sign-in": {
"message": "Logga in på Microsoft"
},
"modal.modrinth-account-required.cancel-button": {
"message": "Avbryt"
},
"modal.modrinth-account-required.continue-in-browser-heading": {
"message": "Fortsätt i din webbläsare"
},
"modal.modrinth-account-required.create-account-button": {
"message": "Skapa ett konto"
},
"modal.modrinth-account-required.header": {
"message": "Konto behövs"
},
"modal.modrinth-account-required.open-browser-again-button": {
"message": "Öppna webbläsare igen"
},
"modal.modrinth-account-required.signing-in-header": {
"message": "Loggar in"
},
"search.filter.locked.instance": {
"message": "Tillhandahållet av instansen"
},
@@ -11,6 +11,21 @@
"app.action-bar.hide-more-running-instances": {
"message": "ซ่อนอินสแตนซ์ที่ทำงานอยู่เพิ่มเติม"
},
"app.action-bar.install.copied-details": {
"message": "คัดลอก"
},
"app.action-bar.install.copy-details": {
"message": "คัดลอก รายระเอียด"
},
"app.action-bar.install.dismiss": {
"message": "ปิด"
},
"app.action-bar.install.retry": {
"message": "ลองอีกครั้ง"
},
"app.action-bar.install.summary.canceled": {
"message": "ยกเลิกสำเร็จ"
},
"app.action-bar.make-primary-instance": {
"message": "กำหนดอินสแตนซ์หลัก"
},
+82 -1
View File
@@ -89,6 +89,9 @@
"app.action-bar.install.unknown-instance": {
"message": "Bilinmeyen kurulum"
},
"app.action-bar.install.updating-shared-content": {
"message": "Paylaşılmış içerik güncelleniyor"
},
"app.action-bar.installs": {
"message": "Yüklenenler"
},
@@ -135,7 +138,7 @@
"message": "Tercihleri yönet"
},
"app.ads-consent.reject": {
"message": "Hepsini redder"
"message": "Hepsini reddet"
},
"app.ads-consent.title": {
"message": "Sizin mahremiyetiniz ve reklamlar Modrinth'i nasıl destekler"
@@ -338,6 +341,36 @@
"app.install.phase.running_loader_processors": {
"message": "Yükleyici işlemcileri çalıştırılıyor"
},
"app.instance.admonitions.shared-instance.added-label": {
"message": "Eklendi"
},
"app.instance.admonitions.shared-instance.changes-body": {
"message": "Yerel instance, paylaştığın kullanıcıların kurulumundan daha güncel."
},
"app.instance.admonitions.shared-instance.changes-header": {
"message": "Değişiklikler henüz paylaşılmadı"
},
"app.instance.admonitions.shared-instance.publish-button": {
"message": "Güncellemeyi Yayınla"
},
"app.instance.admonitions.shared-instance.publishing-button": {
"message": "Yayınlıyor..."
},
"app.instance.admonitions.shared-instance.removed-label": {
"message": "Kaldırıldı"
},
"app.instance.admonitions.shared-instance.review-admonition-header": {
"message": "Güncellemeyi yayınla"
},
"app.instance.admonitions.shared-instance.review-description": {
"message": "Bu kurulumu kullanan herkesle paylaşılacak içerik değişikliklerini gözden geçirin."
},
"app.instance.admonitions.shared-instance.review-header": {
"message": "Değişimleri inceleniyor"
},
"app.instance.admonitions.shared-instance.reviewing-button": {
"message": "İnceleniyor..."
},
"app.instance.confirm-delete.admonition-body": {
"message": "Dünyalarınız, yapılandırmalarınız ve yüklü tüm içerikler ve tüm veriler kalıcı olarak silinecek."
},
@@ -374,6 +407,9 @@
"app.instance.mods.content-type-project": {
"message": "proje"
},
"app.instance.mods.locked-content": {
"message": "İnstance'ta kilitli olan içerikler değiştirilemez."
},
"app.instance.mods.project-was-added": {
"message": "\"{name}\" eklendi"
},
@@ -389,6 +425,51 @@
"app.instance.mods.successfully-uploaded": {
"message": "Başarıyla yüklendi"
},
"app.instance.share.empty.description": {
"message": "Bu instance'ı arkadaşlarınla paylaşabilirsin!"
},
"app.instance.share.empty.heading": {
"message": "Hiçbir arkadaş davet edilmedi"
},
"app.instance.share.empty.invite-friends-button": {
"message": "Arkadaşlarını davet et"
},
"app.instance.share.invite-modal.heading": {
"message": "Paylaş {name}"
},
"app.instance.share.locked.empty-description-prefix": {
"message": "Giriş yapmanız gerekiyor"
},
"app.instance.share.locked.empty-description-suffix": {
"message": "sayfaya giriş yapabilmeniz işin."
},
"app.instance.share.locked.linked-account-fallback": {
"message": "bağlı hesap"
},
"app.instance.share.locked.signed-out-heading": {
"message": "Giriş yapılmadı"
},
"app.instance.share.locked.switch-account-button": {
"message": "Hesap değiştir"
},
"app.instance.share.locked.wrong-account-heading": {
"message": "Hatalı hesap"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "Artık bu paylaşılan kurulum için güncelleme almayacaklar"
},
"app.instance.share.remove-user-modal.effect-installed-copy": {
"message": "Daha önce yükledikleri kopyalar cihazlarında kalmaya devam edecek"
},
"app.instance.share.remove-user-modal.effects-label": {
"message": "Ne olur?"
},
"app.instance.share.remove-user-modal.user-avatar-alt": {
"message": "{username} nın avatarı"
},
"app.instance.share.sign-in.button": {
"message": "Giriş yap"
},
"app.instance.worlds.add-server": {
"message": "Sunucu Ekle"
},
+222 -21
View File
@@ -57,7 +57,7 @@
"message": "Недійсний шлях до файлу"
},
"app.action-bar.install.summary.invalid-modpack": {
"message": "Дані збірки модів недійсні"
"message": "Дані збірки недійсні"
},
"app.action-bar.install.summary.invalid-modpack-files": {
"message": "Файли збірки містять недійсні метадані"
@@ -66,7 +66,7 @@
"message": "Не вдалося завершити встановлення Java"
},
"app.action-bar.install.summary.loader-setup-failed": {
"message": "Не вдалося встановити завантажувач"
"message": "Помилка встановлення завантажувача"
},
"app.action-bar.install.summary.local-data-error": {
"message": "Не вдалося оновити локальні дані"
@@ -117,7 +117,7 @@
"message": "Оновити"
},
"app.action-bar.view-active-downloads": {
"message": "Переглянути активні завантаження"
"message": "Переглянути поточні завантаження"
},
"app.action-bar.view-instance": {
"message": "Переглянути профіль"
@@ -189,13 +189,13 @@
"message": "Системне оформлення"
},
"app.appearance-settings.select-option": {
"message": "Виберіть опцію"
"message": "Оберіть опцію"
},
"app.appearance-settings.show-play-time.description": {
"message": "Показує, скільки часу ви провели в цьому профілі."
},
"app.appearance-settings.show-play-time.title": {
"message": "Час гри"
"message": "Показати час гри"
},
"app.appearance-settings.skip-non-essential-warnings.description": {
"message": "Автоматично пропускає низькоризикові підтвердження: установки дубльованих збірок, звичайні видалення вмісту, масові оновлення та запити на відновлення. Попередження з вищим рівнем ризику залишаться."
@@ -213,13 +213,13 @@
"message": "Якщо ви спробуєте встановити файл пакета Modrinth (.mrpack), який не розміщено на Modrinth, ми переконаємося, що ви розумієте ризики, перш ніж установлювати його."
},
"app.appearance-settings.unknown-pack-warning.title": {
"message": "Попередження перед установленням невідомих збірок"
"message": "Попереджати мене перед установленням невідомих збірок"
},
"app.auth-servers.unreachable.body": {
"message": "Сервери автентифікації Minecraft можуть зараз не працювати. Перевірте з’єднання з інтернетом та спробуйте пізніше."
},
"app.auth-servers.unreachable.header": {
"message": "Не вдається зв’язатися зі серверами автентифікації"
"message": "Не вдається зв’язатися із серверами автентифікації"
},
"app.browse.add-servers-to-instance": {
"message": "Додавання сервера до профілю"
@@ -255,7 +255,7 @@
"message": "Збірки"
},
"app.browse.server-instance-content-warning": {
"message": "Додавання вмісту може порушити сумісність при приєднанні до сервера. Усі додані матеріали також будуть утрачені під час оновлення вмісту профілю сервера."
"message": "Додавання вмісту може порушити сумісність із сервером. Будь-який доданий уміст буде втрачено під час оновлення вмісту профілю сервера."
},
"app.browse.server.installing": {
"message": "Установлення"
@@ -303,7 +303,7 @@
"message": "У черзі на встановлення"
},
"app.install.phase.preparing_java": {
"message": "Підготовка Java"
"message": "Підготовлення Java"
},
"app.install.phase.preparing_java.downloading": {
"message": "Завантаження Java {version}"
@@ -315,10 +315,10 @@
"message": "Отримання Java {version}"
},
"app.install.phase.preparing_java.resolving": {
"message": "Підготовка Java {version}"
"message": "Підготовлення Java {version}"
},
"app.install.phase.preparing_java.validating": {
"message": "Перевірка Java {version}"
"message": "Перевірення Java {version}"
},
"app.install.phase.reading_pack_manifest": {
"message": "Читання маніфесту пакета"
@@ -338,6 +338,21 @@
"app.install.phase.running_loader_processors": {
"message": "Запуск процесорів завантажувача"
},
"app.instance.admonitions.shared-instance.added-label": {
"message": "Додано"
},
"app.instance.admonitions.shared-instance.changes-body": {
"message": "Ваш локальний профіль містить зміни, з якими ви не поділилися."
},
"app.instance.admonitions.shared-instance.changes-header": {
"message": "Ви ще не поділилися своїми змінами"
},
"app.instance.admonitions.shared-instance.publish-button": {
"message": "Опублікувати оновлення"
},
"app.instance.admonitions.shared-instance.publishing-button": {
"message": "Публікуємо…"
},
"app.instance.confirm-delete.admonition-body": {
"message": "Усі дані вашого профілю будуть видалені назавжди, включно з вашими світами, налаштуваннями та всім установленим умістом."
},
@@ -381,7 +396,7 @@
"message": "«{name}» додано"
},
"app.instance.mods.projects-were-added": {
"message": "{count} проєктів додано"
"message": "{count} проєктів було додано"
},
"app.instance.mods.share-text": {
"message": "Погляньте на проєкти, які я використовую у своїй збірці!"
@@ -401,12 +416,48 @@
"app.instance.share.empty.invite-friends-button": {
"message": "Запросити друзів"
},
"app.instance.share.invite-modal.heading": {
"message": "Поділитися {name}"
},
"app.instance.share.locked.empty-description-prefix": {
"message": "Ви повинні ввійти як"
},
"app.instance.share.locked.switch-account-button": {
"message": "Змінити обліковий запис"
},
"app.instance.share.locked.wrong-account-heading": {
"message": "Неправильний обліковий запис"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "Він більше не зможе отримувати оновлення для цього спільного профілю"
},
"app.instance.share.remove-user-modal.effect-installed-copy": {
"message": "Будь-які копії, які він уже встановив, залишаться на його пристрої"
},
"app.instance.share.remove-user-modal.effect-invite-again": {
"message": "Ви зможете потім запросити його знову"
},
"app.instance.share.remove-user-modal.effect-last-user": {
"message": "Це останній користувач, тому спільний доступ буде вимкнено для цього профілю"
},
"app.instance.share.remove-user-modal.effects-label": {
"message": "Що тоді?"
},
"app.instance.share.remove-user-modal.header": {
"message": "Відкликання доступу"
},
"app.instance.share.remove-user-modal.remove-button": {
"message": "Відкликати доступ"
},
"app.instance.share.remove-user-modal.user-avatar-alt": {
"message": "Аватар {username}"
},
"app.instance.share.remove-user-modal.warning-body": {
"message": "Якщо ви відкличете доступ {username} до цього спільного профілю, він зможе отримувати оновлення, лише якщо ви знову його запросите."
},
"app.instance.share.sign-in.button": {
"message": "Увійти"
},
"app.instance.share.unlink.body": {
"message": "Ви повинні від'єднати цю збірку, аби поділитися своїм профілем"
},
@@ -425,6 +476,9 @@
"app.instance.shared-instance-wrong-account.signed-out-header": {
"message": "Ви повинні ввійти в Modrinth"
},
"app.instance.shared-instance-wrong-account.warning-header": {
"message": "Ви використовуєте не той обліковий запис Modrinth"
},
"app.instance.worlds.add-server": {
"message": "Додати сервер"
},
@@ -476,6 +530,21 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "Пошук {count} світів…"
},
"app.modal.install-to-play.additional-context": {
"message": "Додатковий контекст"
},
"app.modal.install-to-play.additional-context-placeholder": {
"message": "Надайте посилання та зображення, які стосуються скарги"
},
"app.modal.install-to-play.content-you-are-reporting": {
"message": "Профіль, на який скаржитеся"
},
"app.modal.install-to-play.delete-instance": {
"message": "Видалити профіль"
},
"app.modal.install-to-play.external-files-dont-install": {
"message": "Не встановлювати"
},
"app.modal.install-to-play.header": {
"message": "Установлення для гри"
},
@@ -491,12 +560,45 @@
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, one {# мод} few {# мода} other {# модів}}"
},
"app.modal.install-to-play.report-description": {
"message": "Використайте цю форму, аби поскаржитися на профілі, які можуть порушувати наші <rules-link>правила</rules-link> чи <terms-link>умови використання</terms-link>."
},
"app.modal.install-to-play.report-image-too-large": {
"message": "Файл перевищує обмеження розміру в 1 МіБ"
},
"app.modal.install-to-play.report-reason": {
"message": "Яке правило порушує цей профіль?"
},
"app.modal.install-to-play.report-reason.inappropriate": {
"message": "Неприпустимий уміст"
},
"app.modal.install-to-play.report-reason.malicious": {
"message": "Шкідливий уміст"
},
"app.modal.install-to-play.report-reason.spam": {
"message": "Спам"
},
"app.modal.install-to-play.report-shared-instance-header": {
"message": "Скарга на спільний профіль"
},
"app.modal.install-to-play.report-submitted": {
"message": "Скаргу відправлено"
},
"app.modal.install-to-play.report-support-and-bugs": {
"message": "Для отримання допомоги зв'яжіться з нашою <support-link>командою підтримки</support-link>. Для створення звіту про помилки відкрийте <github-link>issue в GitHub</github-link>."
},
"app.modal.install-to-play.reviewed-files": {
"message": "Файл перевірятиметься, лише якщо його завантажено на Modrinth, незалежно від його формату (включно з .mrpack)."
},
"app.modal.install-to-play.shared-instance": {
"message": "Профіль"
},
"app.modal.install-to-play.shared-instance-content": {
"message": "Уміст спільного профілю"
},
"app.modal.install-to-play.shared-instance-unknown-files-description": {
"message": "Цей спільний профіль містить файли, які не є опубліковані на Modrinth. Ми наполегливо рекомендуємо встановлювати лише ті файли, яким довіряєте."
},
"app.modal.install-to-play.unknown-files-description": {
"message": "Ця збірка сервера містить файли, які не є опубліковані на Modrinth. Ми наполегливо рекомендуємо встановлювати лише ті файли, яким довіряєте."
},
@@ -515,6 +617,21 @@
"app.modal.update-to-play.removed": {
"message": "Видалено"
},
"app.modal.update-to-play.server-modpack-unknown-files-description": {
"message": "Це оновлення збірки сервера містить файли, які не є опубліковані на Modrinth. Ми наполегливо рекомендуємо встановлювати лише ті файли, яким довіряєте."
},
"app.modal.update-to-play.shared-instance-added-label": {
"message": "Додано"
},
"app.modal.update-to-play.shared-instance-removed-label": {
"message": "Видалено"
},
"app.modal.update-to-play.shared-instance-unknown-files-description": {
"message": "Це оновлення спільного профілю містить файли, які не є опубліковані на Modrinth. Ми наполегливо рекомендуємо встановлювати лише ті файли, яким довіряєте."
},
"app.modal.update-to-play.update-required": {
"message": "Необхідне оновлення"
},
"app.project.install-button.already-installed": {
"message": "Проєкт уже встановлено"
},
@@ -528,7 +645,7 @@
"message": "Усі версії"
},
"app.project.version.download-in-browser": {
"message": "Завантажити в браузері"
"message": "Завантажити в переглядачу"
},
"app.project.version.installing": {
"message": "Установлення"
@@ -594,7 +711,7 @@
"message": "Редагувати скін"
},
"app.skins.modal.add-skin-button": {
"message": "Додати скін"
"message": "Додати вигляд"
},
"app.skins.modal.add-title": {
"message": "Додавання скіна"
@@ -639,16 +756,16 @@
"message": "Текстура"
},
"app.skins.modal.upload-skin-first-tooltip": {
"message": "Спершу завантажте скін!"
"message": "Спершу завантажте вигляд!"
},
"app.skins.preview.edit-button": {
"message": "Редагувати скін"
"message": "Змінити вигляд"
},
"app.skins.previewing-badge": {
"message": "Попередній перегляд"
},
"app.skins.rate-limit.text": {
"message": "Ви змінюєте скін занадто часто. Сервери Mojang тимчасово заблокували подальші запити. Зачекайте трохи, перш ніж спробувати знову."
"message": "Ви змінюєте свій вигляд зачасто. Сервери Mojang тимчасово заблокували дальші запити. Заждіть, перш ніж спробувати знову."
},
"app.skins.rate-limit.title": {
"message": "Повільніше!"
@@ -657,7 +774,7 @@
"message": "Ваше замовлення скінів не вдалося зберегти."
},
"app.skins.reorder-error.title": {
"message": "Не вдалося змінити порядок скінів"
"message": "Не вдалося змінити порядок виглядів"
},
"app.skins.section.builders-and-biomes": {
"message": "Builders & Biomes"
@@ -669,7 +786,7 @@
"message": "Chase the Skies"
},
"app.skins.section.default-skins": {
"message": "Усталені скіни"
"message": "Усталені вигляди"
},
"app.skins.section.minecon-earth-2017": {
"message": "MINECON Earth 2017"
@@ -687,7 +804,7 @@
"message": "Mounts of Mayhem"
},
"app.skins.section.saved-skins": {
"message": "Збережені скіни"
"message": "Збережені вигляди"
},
"app.skins.section.striding-hero": {
"message": "Striding Hero"
@@ -770,6 +887,18 @@
"app.world.world-item.players-online": {
"message": "{count} у мережі"
},
"content.shared-instance.delete-button": {
"message": "Усе одно видалити"
},
"content.shared-instance.delete-many-button": {
"message": "Усе одно видалити {count, plural, one {# проєкт} few {# проєкти} many {# проєктів} other {# проєкту}}"
},
"content.shared-instance.disable-button": {
"message": "Усе одно вимкнути"
},
"content.shared-instance.disable-many-button": {
"message": "Усе одно вимкнути {count, plural, one {# проєкт} few {# проєкти} many {# проєктів} other {# проєкту}}"
},
"friends.action.add-friend": {
"message": "Додати друга"
},
@@ -1089,7 +1218,7 @@
"message": "Повний екран"
},
"instance.settings.tabs.window.fullscreen.description": {
"message": "Запускати гру в повноекранному режимі (за допомогою options.txt)."
"message": "Змушує гру запускатися в повному екрані (за допомогою options.txt)."
},
"instance.settings.tabs.window.height": {
"message": "Висота"
@@ -1109,9 +1238,48 @@
"instance.settings.tabs.window.width.enter": {
"message": "Уведіть ширину…"
},
"instance.shared-instance.error.title": {
"message": "Щось пішло не так"
},
"instance.shared-instance.publish-review.added-label": {
"message": "Додано"
},
"instance.shared-instance.publish-review.admonition-header": {
"message": "Публікація оновлення"
},
"instance.shared-instance.publish-review.config-title-v2": {
"message": "Оберіть файли конфігурації"
},
"instance.shared-instance.publish-review.description": {
"message": "Перегляньте зміни вмісту та оберіть файли конфігурації, які варто включити в цьому оновленні."
},
"instance.shared-instance.publish-review.header": {
"message": "Огляд змін"
},
"instance.shared-instance.publish-review.publish-button": {
"message": "Опублікувати оновлення"
},
"instance.shared-instance.publish-review.removed-label": {
"message": "Видалено"
},
"instance.shared-instance.tooltip": {
"message": "Уміст цього профілю керується іншим користувачем."
},
"instance.shared-instance.unavailable.access-revoked-text": {
"message": "Ваш доступ до цього спільного профілю відкликано. Профіль досі доступний, але вже не прив'язаний та не отримуватиме оновлення."
},
"instance.shared-instance.unavailable.deleted-text": {
"message": "Основний профіль видалено. Цей профіль досі доступний, але вже не прив'язаний та не отримуватиме оновлення."
},
"instance.shared-instance.unavailable.locked-title": {
"message": "Профіль заблоковано"
},
"instance.shared-instance.unavailable.text": {
"message": "Ваш локальний профіль досі доступний, але вже не прив'язаний та не отримуватиме оновлення."
},
"instance.shared-instance.unavailable.title": {
"message": "Спільний профіль уже не доступний"
},
"instance.worlds.a_minecraft_server": {
"message": "Сервер Minecraft"
},
@@ -1196,6 +1364,39 @@
"minecraft-required.sign-in": {
"message": "Увійти в Microsoft"
},
"modal.modrinth-account-required.browser-description": {
"message": "Відкрилася нова вкладка, де ви зможете ввійти. Увійдіть, тоді поверніться до застосунку."
},
"modal.modrinth-account-required.cancel-button": {
"message": "Скасувати"
},
"modal.modrinth-account-required.create-account-button": {
"message": "Створити обліковий запис"
},
"modal.modrinth-account-required.description": {
"message": "Ви повинні ввійти у свій обліковий запис Modrinth, перш ніж використовувати цей функціонал."
},
"modal.modrinth-account-required.header": {
"message": "Необхідний обліковий запис"
},
"modal.modrinth-account-required.open-browser-again-button": {
"message": "Знову відкрити браузер"
},
"modal.modrinth-account-required.sign-in-button": {
"message": "Увійти в Modrinth"
},
"modal.modrinth-account-required.sign-in-heading": {
"message": "Вхід в обліковий запис Modrinth"
},
"modal.modrinth-account-required.signing-in-header": {
"message": "Вхід"
},
"modal.modrinth-account-required.support-prompt": {
"message": "Не можете ввійти? <support>Отримати допомогу</support>"
},
"modal.modrinth-account-required.waiting-for-browser": {
"message": "Очікуємо на підтвердження від переглядача…"
},
"search.filter.locked.instance": {
"message": "Надано профілем"
},
+22 -22
View File
@@ -18,7 +18,7 @@
"message": "复制详细信息"
},
"app.action-bar.install.dismiss": {
"message": "忽略"
"message": "隐藏"
},
"app.action-bar.install.open-instance": {
"message": "打开实例"
@@ -30,19 +30,19 @@
"message": "由于应用关闭而取消"
},
"app.action-bar.install.summary.bad-modpack-file": {
"message": "整合包读取失败"
"message": "无法读取整合包"
},
"app.action-bar.install.summary.canceled": {
"message": "已取消"
},
"app.action-bar.install.summary.cleanup-incomplete": {
"message": "未完成清理"
"message": "未完成清理"
},
"app.action-bar.install.summary.content-download-failed": {
"message": "无法下载文件"
},
"app.action-bar.install.summary.corrupt-download": {
"message": "下载的文件损坏"
"message": "下载的文件损坏"
},
"app.action-bar.install.summary.could-not-save-files": {
"message": "无法保存文件"
@@ -60,7 +60,7 @@
"message": "整合包数据无效"
},
"app.action-bar.install.summary.invalid-modpack-files": {
"message": "整合包文件含有无效元数据"
"message": "整合包文件含有无效元数据"
},
"app.action-bar.install.summary.java-setup-failed": {
"message": "无法完成 Java 配置"
@@ -69,22 +69,22 @@
"message": "加载器配置失败"
},
"app.action-bar.install.summary.local-data-error": {
"message": "无法更新本地数据"
"message": "无法更新本地数据"
},
"app.action-bar.install.summary.minecraft-setup-failed": {
"message": "Minecraft 配置失败"
},
"app.action-bar.install.summary.modrinth-unreachable": {
"message": "无法连接 Modrinth"
"message": "无法连接Modrinth"
},
"app.action-bar.install.summary.no-write-permission": {
"message": "没有写入权限"
"message": "没有写入权限"
},
"app.action-bar.install.summary.pack-download-failed": {
"message": "无法下载包"
"message": "无法下载整合包"
},
"app.action-bar.install.summary.unexpected-error": {
"message": "出错了"
"message": "出现了一些问题"
},
"app.action-bar.install.unknown-instance": {
"message": "未知的实例"
@@ -225,7 +225,7 @@
"message": "无法连接到身份验证服务器"
},
"app.browse.add-servers-to-instance": {
"message": "添加服务器到实例"
"message": "添加实例到服务器"
},
"app.browse.add-to-an-instance": {
"message": "添加到实例"
@@ -297,7 +297,7 @@
"message": "正在下载包文件"
},
"app.install.phase.extracting_overrides": {
"message": "提取覆盖项"
"message": "正在解压覆盖项"
},
"app.install.phase.finalizing": {
"message": "完成"
@@ -312,7 +312,7 @@
"message": "正在下载 Java {version}"
},
"app.install.phase.preparing_java.extracting": {
"message": "正在提取 Java {version}"
"message": "正在解压 Java {version}"
},
"app.install.phase.preparing_java.fetching-metadata": {
"message": "正在获取 Java {version}"
@@ -336,7 +336,7 @@
"message": "正在解析内容"
},
"app.install.phase.rolling_back": {
"message": "回滚"
"message": "回滚"
},
"app.install.phase.running_loader_processors": {
"message": "正在运行加载处理器"
@@ -453,7 +453,7 @@
"message": "切换账号"
},
"app.instance.share.locked.wrong-account-heading": {
"message": "账号不正确"
"message": "账号错误"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "对方将不再收到该共享实例的后续更新"
@@ -540,7 +540,7 @@
"message": "正在删除 {name}"
},
"app.instance.worlds.filter-modded": {
"message": "模组"
"message": "适配模组"
},
"app.instance.worlds.filter-offline": {
"message": "离线"
@@ -945,10 +945,10 @@
"message": "部分选中的项目属于共享实例的一部分。删除它们只会修改你的本地副本,未来的共享实例更新可能会再次将其恢复或更改。"
},
"content.shared-instance.delete-button": {
"message": "要删除"
"message": "要删除"
},
"content.shared-instance.delete-many-button": {
"message": "要删除{count, number}"
"message": "要删除 {count, number} 个项目"
},
"content.shared-instance.delete-single-body": {
"message": "删除它只会修改你的本地副本。未来的共享实例更新可能会再次将其恢复或更改。"
@@ -957,10 +957,10 @@
"message": "部分选中的项目属于共享实例的一部分。禁用它们只会修改你的本地副本,未来的共享实例更新可能会再次重新启用、恢复或更改它们。"
},
"content.shared-instance.disable-button": {
"message": "坚持禁用"
"message": "仍要禁用"
},
"content.shared-instance.disable-many-button": {
"message": "坚持禁用 {count, number} 个项目"
"message": "仍要禁用 {count, number} 个项目"
},
"content.shared-instance.disable-single-body": {
"message": "禁用它只会修改你的本地副本。未来的共享实例更新可能会再次将其启用、恢复或更改。"
@@ -1209,7 +1209,7 @@
"message": "库分组"
},
"instance.settings.tabs.general.library-groups.create": {
"message": "创建新的分组"
"message": "新建分组"
},
"instance.settings.tabs.general.library-groups.description": {
"message": "库分组功能可以让你将实例整理到库中的不同部分。"
@@ -1509,7 +1509,7 @@
"message": "请在你的浏览器中继续"
},
"modal.modrinth-account-required.create-account-button": {
"message": "建账户"
"message": "建账户"
},
"modal.modrinth-account-required.description": {
"message": "在使用这个功能之前,你需要登入你的Modrinth账户。"
+296 -2
View File
@@ -89,6 +89,9 @@
"app.action-bar.install.unknown-instance": {
"message": "未知的實例"
},
"app.action-bar.install.updating-shared-content": {
"message": "正在更新共用內容"
},
"app.action-bar.installs": {
"message": "安裝"
},
@@ -338,6 +341,36 @@
"app.install.phase.running_loader_processors": {
"message": "正在執行載入器處理程式"
},
"app.instance.admonitions.shared-instance.added-label": {
"message": "已新增"
},
"app.instance.admonitions.shared-instance.changes-body": {
"message": "你的本機實例有尚未同步給其他使用者的變更。"
},
"app.instance.admonitions.shared-instance.changes-header": {
"message": "變更尚未共用"
},
"app.instance.admonitions.shared-instance.publish-button": {
"message": "推送更新"
},
"app.instance.admonitions.shared-instance.publishing-button": {
"message": "正在推送..."
},
"app.instance.admonitions.shared-instance.removed-label": {
"message": "已移除"
},
"app.instance.admonitions.shared-instance.review-admonition-header": {
"message": "推送更新"
},
"app.instance.admonitions.shared-instance.review-description": {
"message": "審查即將與這個實例的所有使用者共用的內容變更。"
},
"app.instance.admonitions.shared-instance.review-header": {
"message": "審查變更"
},
"app.instance.admonitions.shared-instance.reviewing-button": {
"message": "正在審查..."
},
"app.instance.confirm-delete.admonition-body": {
"message": "你實例中的所有資料將被永久刪除,包含你的世界、設定檔以及所有已安裝的內容。"
},
@@ -374,6 +407,9 @@
"app.instance.mods.content-type-project": {
"message": "專案"
},
"app.instance.mods.locked-content": {
"message": "已鎖定實例中的內容無法變更。"
},
"app.instance.mods.project-was-added": {
"message": "已新增「{name}」"
},
@@ -389,9 +425,18 @@
"app.instance.mods.successfully-uploaded": {
"message": "已成功上傳"
},
"app.instance.share.empty.description": {
"message": "你可以與好友共用這個實例!"
},
"app.instance.share.empty.heading": {
"message": "未邀請任何好友"
},
"app.instance.share.empty.invite-friends-button": {
"message": "邀請好友"
},
"app.instance.share.invite-modal.heading": {
"message": "共用「{name}」"
},
"app.instance.share.locked.empty-description-prefix": {
"message": "你需要以"
},
@@ -401,6 +446,27 @@
"app.instance.share.locked.linked-account-fallback": {
"message": "已連結的帳號"
},
"app.instance.share.locked.signed-out-heading": {
"message": "未登入"
},
"app.instance.share.locked.switch-account-button": {
"message": "切換帳號"
},
"app.instance.share.locked.wrong-account-heading": {
"message": "帳號錯誤"
},
"app.instance.share.remove-user-modal.effect-access": {
"message": "他不會再收到這個共用實例的更新"
},
"app.instance.share.remove-user-modal.effect-installed-copy": {
"message": "他已經安裝的副本仍會保留在他的裝置上"
},
"app.instance.share.remove-user-modal.effect-invite-again": {
"message": "你可以稍後再次邀請他"
},
"app.instance.share.remove-user-modal.effect-last-user": {
"message": "這是最後一位共用使用者,這個實例的共用功能將被關閉"
},
"app.instance.share.remove-user-modal.effects-label": {
"message": "會發生什麼事?"
},
@@ -419,6 +485,18 @@
"app.instance.share.sign-in.button": {
"message": "登入"
},
"app.instance.share.unlink.body": {
"message": "你必須先與模組包取消連結才能共用實例"
},
"app.instance.share.unlink.header": {
"message": "共用前需要取消連結"
},
"app.instance.shared-instance-already-installed.body": {
"message": "這個共用實例已經在本機安裝,名稱為「<bold>{instanceName}</bold>」。你確定要再安裝一個副本嗎?"
},
"app.instance.shared-instance-already-installed.header": {
"message": "共用實例已經安裝"
},
"app.instance.shared-instance-already-installed.install-anyway": {
"message": "仍要安裝"
},
@@ -428,9 +506,21 @@
"app.instance.shared-instance-wrong-account.fallback-username": {
"message": "已連結的帳號"
},
"app.instance.shared-instance-wrong-account.owner-admonition-body-v2": {
"message": "登入才能管理這個共用實例,否則你將無法向使用者推送更新。"
},
"app.instance.shared-instance-wrong-account.sign-in-as-label": {
"message": "你需要以"
},
"app.instance.shared-instance-wrong-account.signed-out-header": {
"message": "你需要登入 Modrinth"
},
"app.instance.shared-instance-wrong-account.user-admonition-body-v2": {
"message": "登入才能收到這個共用實例的更新。"
},
"app.instance.shared-instance-wrong-account.warning-header": {
"message": "你目前使用的 Modrinth 帳號不正確"
},
"app.instance.worlds.add-server": {
"message": "新增伺服器"
},
@@ -450,7 +540,7 @@
"message": "即將刪除「{name}」"
},
"app.instance.worlds.filter-modded": {
"message": "模組"
"message": "模組"
},
"app.instance.worlds.filter-offline": {
"message": "離線"
@@ -482,6 +572,15 @@
"app.instance.worlds.search-worlds-placeholder": {
"message": "搜尋 {count} 個世界..."
},
"app.modal.install-to-play.additional-context": {
"message": "補充說明"
},
"app.modal.install-to-play.additional-context-placeholder": {
"message": "若可行且相關,請一併附上連結與圖片"
},
"app.modal.install-to-play.content-you-are-reporting": {
"message": "你要檢舉的實例"
},
"app.modal.install-to-play.delete-instance": {
"message": "刪除實例"
},
@@ -503,14 +602,23 @@
"app.modal.install-to-play.mod-count": {
"message": "{count, plural, other {# 個模組}}"
},
"app.modal.install-to-play.report-description": {
"message": "用這個表單檢舉可能違反我們的《<rules-link>內容規範</rules-link>》或《<terms-link>使用條款</terms-link>》的實例。"
},
"app.modal.install-to-play.report-image-invalid-type": {
"message": "不支援的圖片格式"
},
"app.modal.install-to-play.report-image-too-large": {
"message": "檔案大小超過 1 MiB 限制"
},
"app.modal.install-to-play.report-legal-claims": {
"message": "關於 DMCA 通知或其他法律訴求,請參閱我們的《<copyright-link>著作權政策</copyright-link>》。"
},
"app.modal.install-to-play.report-reason": {
"message": "這個實例違反了哪一條規則?"
},
"app.modal.install-to-play.report-reason.inappropriate": {
"message": "不當內容"
"message": "不當內容"
},
"app.modal.install-to-play.report-reason.malicious": {
"message": "惡意內容"
@@ -518,12 +626,27 @@
"app.modal.install-to-play.report-reason.spam": {
"message": "垃圾內容"
},
"app.modal.install-to-play.report-shared-instance-header": {
"message": "檢舉共用實例"
},
"app.modal.install-to-play.report-submitted": {
"message": "檢舉已提交"
},
"app.modal.install-to-play.report-support-and-bugs": {
"message": "如需客服支援,請聯絡我們的<support-link>客服團隊</support-link>。如需回報錯誤,請<github-link>在 GitHub 上提交 issue</github-link>。"
},
"app.modal.install-to-play.reviewed-files": {
"message": "只有在 Modrinth 上發布的檔案才會經過審查,無論其檔案格式為何(包含 .mrpack)。"
},
"app.modal.install-to-play.shared-instance": {
"message": "共用實例"
},
"app.modal.install-to-play.shared-instance-content": {
"message": "共用實例的內容"
},
"app.modal.install-to-play.shared-instance-unknown-files-description": {
"message": "這個共用實例包含未在 Modrinth 上發布的檔案。強烈建議你僅安裝來自信任來源的檔案。"
},
"app.modal.install-to-play.unknown-files-description": {
"message": "這個伺服器模組包中包含未在 Modrinth 上發布的檔案。強烈建議你僅安裝來自信任來源的檔案。"
},
@@ -542,6 +665,21 @@
"app.modal.update-to-play.removed": {
"message": "已移除"
},
"app.modal.update-to-play.server-modpack-unknown-files-description": {
"message": "這個伺服器模組包更新包含未在 Modrinth 上發布的檔案。強烈建議你僅安裝來自信任來源的檔案。"
},
"app.modal.update-to-play.shared-instance-added-label": {
"message": "已新增"
},
"app.modal.update-to-play.shared-instance-removed-label": {
"message": "已移除"
},
"app.modal.update-to-play.shared-instance-unknown-files-description": {
"message": "這個共用實例更新包含未在 Modrinth 上發布的檔案。強烈建議你僅安裝來自信任來源的檔案。"
},
"app.modal.update-to-play.update-required": {
"message": "需要更新"
},
"app.modal.update-to-play.update-required-description": {
"message": "需要更新才能遊玩「{name}」。請更新至最新版本以啟動遊戲。"
},
@@ -800,9 +938,39 @@
"app.world.world-item.players-online": {
"message": "{count} 人在線上"
},
"content.shared-instance.change-version-body": {
"message": "變更版本只會影響本機副本。未來共用實例更新時可能會再次復原或變更這個專案。"
},
"content.shared-instance.delete-bulk-body": {
"message": "部分選取的專案是共用實例的一部分。刪除這些專案只會影響你的本機副本,而未來共用實例更新時可能會還原或再次變更這些專案。"
},
"content.shared-instance.delete-button": {
"message": "仍要刪除"
},
"content.shared-instance.delete-many-button": {
"message": "仍要刪除 {count, number} 個專案"
},
"content.shared-instance.delete-single-body": {
"message": "刪除這個專案只會影響本機副本。未來共用實例更新時可能會再次復原或變更這個專案。"
},
"content.shared-instance.disable-bulk-body": {
"message": "部分選取的專案是共用實例的一部分。停用這些專案只會影響你的本機副本,而未來共用實例更新時可能會重新啟用、還原或再次變更這些專案。"
},
"content.shared-instance.disable-button": {
"message": "仍要停用"
},
"content.shared-instance.disable-many-button": {
"message": "仍要停用 {count, number} 個專案"
},
"content.shared-instance.disable-single-body": {
"message": "停用這個專案只會影響本機副本。未來共用實例更新時,可能會重新啟用、還原或再次變更這個專案。"
},
"content.shared-instance.unlink-body": {
"message": "解除連結只會影響本機副本。未來共用實例更新時可能會復原或再次變更。"
},
"content.shared-instance.warning-header": {
"message": "這是共用實例的一部分"
},
"friends.action.add-friend": {
"message": "新增好友"
},
@@ -866,6 +1034,48 @@
"friends.sign-in-to-add-friends": {
"message": "<link>登入 Modrinth 帳號</link>即可新增好友並查看他們正在玩什麼!"
},
"installation-settings.shared-instance.linked-title": {
"message": "已連結的共用實例"
},
"installation-settings.shared-instance.title": {
"message": "取消發布實例"
},
"installation-settings.shared-instance.unlink-button": {
"message": "取消連結共用實例"
},
"installation-settings.shared-instance.unlink-description": {
"message": "解除這個本機實例與後續共用更新的連結。"
},
"installation-settings.shared-instance.unlinking-button": {
"message": "正在取消連結..."
},
"installation-settings.shared-instance.unpublish-button": {
"message": "取消發布共用實例"
},
"installation-settings.shared-instance.unpublish-description": {
"message": "在 Modrinth 上移除這個共用實例,並停止向任何使用者推送更新。你的本機實例不會受到影響。"
},
"installation-settings.shared-instance.unpublishing-button": {
"message": "正在取消發布..."
},
"installation-settings.unlink-shared-instance.modal.admonition-body": {
"message": "這只會影響你的本機實例。你已安裝的內容仍會保留在此裝置上,共用實例及其他使用者都不會受到影響。"
},
"installation-settings.unlink-shared-instance.modal.admonition-header": {
"message": "即將取消連結共用實例"
},
"installation-settings.unlink-shared-instance.modal.header": {
"message": "取消連結共用實例"
},
"installation-settings.unpublish-shared-instance.modal.admonition-body": {
"message": "這會從 Modrinth 的伺服器刪除共用實例。在 Modrinth App 使用該實例的使用者將不再收到更新,但本機實例及其內容仍會保留在此裝置上。"
},
"installation-settings.unpublish-shared-instance.modal.admonition-header": {
"message": "即將取消發布共用實例"
},
"installation-settings.unpublish-shared-instance.modal.header": {
"message": "取消發布共用實例"
},
"instance.action.create-shortcut": {
"message": "建立捷徑"
},
@@ -938,6 +1148,9 @@
"instance.locked.delete-button": {
"message": "刪除實例"
},
"instance.locked.play-tooltip": {
"message": "這個實例已被鎖定"
},
"instance.playtime.never-played": {
"message": "從未遊玩"
},
@@ -1076,6 +1289,9 @@
"instance.settings.tabs.installation.loader-version": {
"message": "{loader} 版本"
},
"instance.settings.tabs.installation.locked": {
"message": "實例被鎖定時無法使用安裝設定選項。"
},
"instance.settings.tabs.java": {
"message": "Java 和記憶體"
},
@@ -1115,6 +1331,9 @@
"instance.settings.tabs.java.java-path-placeholder": {
"message": "/path/to/java"
},
"instance.settings.tabs.sharing": {
"message": "共用"
},
"instance.settings.tabs.window": {
"message": "視窗"
},
@@ -1145,6 +1364,57 @@
"instance.settings.tabs.window.width.enter": {
"message": "輸入寬度..."
},
"instance.shared-instance.error.title": {
"message": "出了點狀況"
},
"instance.shared-instance.owner-tooltip": {
"message": "這個實例的內容正在與其他使用者共用。"
},
"instance.shared-instance.publish-review.added-label": {
"message": "已新增"
},
"instance.shared-instance.publish-review.admonition-header": {
"message": "向玩家推送更新"
},
"instance.shared-instance.publish-review.config-title-v2": {
"message": "選擇設定檔"
},
"instance.shared-instance.publish-review.description": {
"message": "審查內容變更,並選擇要包含在本次更新的設定檔。"
},
"instance.shared-instance.publish-review.header": {
"message": "審查變更"
},
"instance.shared-instance.publish-review.publish-button": {
"message": "推送更新"
},
"instance.shared-instance.publish-review.removed-label": {
"message": "已移除"
},
"instance.shared-instance.tooltip": {
"message": "這個實例的內容由其他使用者負責管理。"
},
"instance.shared-instance.unavailable.access-revoked-text": {
"message": "你對共用實例的存取權已被撤銷。這個實例仍可正常使用,但已不再與共用實例連結,且不再接收更新。"
},
"instance.shared-instance.unavailable.deleted-text": {
"message": "主要實例已被刪除。這個實例仍可正常使用,但已不再與共用實例連結,且不再接收更新。"
},
"instance.shared-instance.unavailable.locked-text": {
"message": "這個共用實例已被內容管理團隊鎖定,不會再接收來自主要實例的更新,且無法遊玩。"
},
"instance.shared-instance.unavailable.locked-title": {
"message": "實例已鎖定"
},
"instance.shared-instance.unavailable.manager-fallback": {
"message": "實例管理者"
},
"instance.shared-instance.unavailable.text": {
"message": "你的本機實例仍可正常使用,但已不再與共用實例連結,且不再接收更新。"
},
"instance.shared-instance.unavailable.title": {
"message": "你無法使用這個共用實例"
},
"instance.worlds.a_minecraft_server": {
"message": "Minecraft 伺服器"
},
@@ -1229,18 +1499,42 @@
"minecraft-required.sign-in": {
"message": "登入 Microsoft"
},
"modal.modrinth-account-required.browser-description": {
"message": "一個新分頁已開啟供你登入。請在該分頁完成登入,然後返回應用程式。"
},
"modal.modrinth-account-required.cancel-button": {
"message": "取消"
},
"modal.modrinth-account-required.continue-in-browser-heading": {
"message": "在瀏覽器中繼續"
},
"modal.modrinth-account-required.create-account-button": {
"message": "建立帳號"
},
"modal.modrinth-account-required.description": {
"message": "你必須登入 Modrinth 帳號才能使用這個功能。"
},
"modal.modrinth-account-required.header": {
"message": "需要帳號"
},
"modal.modrinth-account-required.open-browser-again-button": {
"message": "再次開啟瀏覽器"
},
"modal.modrinth-account-required.sign-in-button": {
"message": "登入 Modrinth"
},
"modal.modrinth-account-required.sign-in-heading": {
"message": "登入 Modrinth 帳號"
},
"modal.modrinth-account-required.signing-in-header": {
"message": "登入"
},
"modal.modrinth-account-required.support-prompt": {
"message": "登入時遇到問題嗎?<support>取得支援</support>"
},
"modal.modrinth-account-required.waiting-for-browser": {
"message": "等待瀏覽器確認..."
},
"search.filter.locked.instance": {
"message": "由該實例提供"
},
+4 -2
View File
@@ -975,8 +975,10 @@ const searchState = useBrowseSearch({
watch(
[
() => searchState.query.value,
() => searchState.currentFilters.value,
() => searchState.serverCurrentFilters.value,
() =>
searchState.isServerType.value
? searchState.serverCurrentFilters.value
: searchState.currentFilters.value,
() => projectType.value,
],
() => {
+108
View File
@@ -0,0 +1,108 @@
<template>
<div class="w-full pt-2">
<UserProfilePageLayout
:user-id="userId"
:project-type="projectType"
variant="app"
site-url="https://modrinth.com"
project-link-mode="app"
external-navigation
/>
</div>
</template>
<script setup lang="ts">
import { provideUserProfile, UserProfilePageLayout } from '@modrinth/ui'
import { useQuery, useQueryClient } from '@tanstack/vue-query'
import { computed, watch } from 'vue'
import { onBeforeRouteUpdate, useRoute } from 'vue-router'
import {
get_user_collections,
get_user_organizations,
get_user_profile,
get_user_projects,
patch_user,
} from '@/helpers/users'
import { useBreadcrumbs } from '@/store/breadcrumbs'
const route = useRoute()
const queryClient = useQueryClient()
const breadcrumbs = useBreadcrumbs()
const userProfile = provideUserProfile({
getUser: get_user_profile,
getProjects: get_user_projects,
getOrganizations: get_user_organizations,
getCollections: get_user_collections,
patchUser: patch_user,
})
const userId = computed(() => {
const value = route.params.user
return Array.isArray(value) ? (value[0] ?? '') : (value ?? '')
})
const projectType = computed(() => {
const value = route.params.projectType
return Array.isArray(value) ? value[0] : value
})
async function ensureUserProfileData(id: string): Promise<void> {
if (!id) return
let breadcrumbName = id
try {
const user = await queryClient.ensureQueryData({
queryKey: ['user', id],
queryFn: () => userProfile.getUser(id),
staleTime: 30_000,
})
breadcrumbName = user.username
} catch {
// Let the mounted layout's useQuery surface errors; do not fail route setup.
}
await Promise.allSettled([
queryClient.ensureQueryData({
queryKey: ['user', id, 'projects'],
queryFn: () => userProfile.getProjects(id),
staleTime: 30_000,
}),
queryClient.ensureQueryData({
queryKey: ['user', id, 'organizations'],
queryFn: () => userProfile.getOrganizations(id),
staleTime: 30_000,
}),
queryClient.ensureQueryData({
queryKey: ['user', id, 'collections'],
queryFn: () => userProfile.getCollections(id),
staleTime: 30_000,
}),
])
breadcrumbs.setName('User', breadcrumbName)
}
onBeforeRouteUpdate(async (to) => {
const value = to.params.user
const id = Array.isArray(value) ? (value[0] ?? '') : (value ?? '')
await ensureUserProfileData(id)
})
breadcrumbs.setName('User', userId.value)
await ensureUserProfileData(userId.value)
const { data: user } = useQuery({
queryKey: computed(() => ['user', userId.value]),
queryFn: () => userProfile.getUser(userId.value),
enabled: false,
staleTime: 30_000,
})
watch(
[userId, user],
([currentUserId, value]) => {
breadcrumbs.setName('User', value?.username ?? currentUserId)
},
{ immediate: true },
)
</script>
@@ -5,7 +5,6 @@ import {
ServersManageAccessPage,
} from '@modrinth/ui'
import { useQueryClient } from '@tanstack/vue-query'
import { openUrl } from '@tauri-apps/plugin-opener'
const client = injectModrinthClient()
const { serverId } = injectModrinthServerContext()
@@ -29,7 +28,7 @@ try {
}
function userProfileLink(username: string) {
return () => openUrl(`https://modrinth.com/user/${encodeURIComponent(username)}`)
return `/user/${encodeURIComponent(username)}`
}
</script>
+2 -1
View File
@@ -2,6 +2,7 @@ import Browse from './Browse.vue'
import Index from './Index.vue'
import Servers from './Servers.vue'
import Skins from './Skins.vue'
import User from './User.vue'
import Worlds from './Worlds.vue'
export { Browse, Index, Servers, Skins, Worlds }
export { Browse, Index, Servers, Skins, User, Worlds }
@@ -198,6 +198,13 @@ const messages = defineMessages({
let savedModalState: ModpackContentModalState | null = null
function contentOwnerLink(owner: ContentOwner): NonNullable<ContentOwner['link']> {
if (owner.type === 'user') return `/user/${encodeURIComponent(owner.id)}`
return () => {
void openUrl(`https://modrinth.com/organization/${owner.id}`)
}
}
const { formatMessage } = useVIntl()
const { handleError, addNotification } = injectNotificationManager()
const { installingItems, installRevisionByInstance, installFailureRevisionByInstance } =
@@ -1390,10 +1397,7 @@ provideContentManager({
owner: linkedModpackOwner.value
? {
...linkedModpackOwner.value,
link: () =>
openUrl(
`https://modrinth.com/${linkedModpackOwner.value!.type}/${linkedModpackOwner.value!.id}`,
),
link: contentOwnerLink(linkedModpackOwner.value),
}
: undefined,
categories: linkedModpackCategories.value,
@@ -1491,7 +1495,7 @@ provideContentManager({
owner: item.owner
? {
...item.owner,
link: () => openUrl(`https://modrinth.com/${item.owner!.type}/${item.owner!.id}`),
link: contentOwnerLink(item.owner),
}
: undefined,
enabled: canMutateContent(item) ? item.enabled : undefined,
@@ -138,7 +138,6 @@ import {
useVIntl,
} from '@modrinth/ui'
import { useQueryClient } from '@tanstack/vue-query'
import { openUrl } from '@tauri-apps/plugin-opener'
import { computed, ref, toRef, watch } from 'vue'
import ModrinthAccountRequiredModal from '@/components/ui/modal/ModrinthAccountRequiredModal.vue'
@@ -342,9 +341,7 @@ function removeMember(row: ShareRow) {
members.remove(row.id)
}
function userProfileLink(username: string) {
return !username || username.includes('@')
? undefined
: () => openUrl(`https://modrinth.com/user/${encodeURIComponent(username)}`)
return !username || username.includes('@') ? undefined : `/user/${encodeURIComponent(username)}`
}
async function requestAuth(flow: ModrinthAuthFlow) {
await auth.requestSignIn(`/instance/${encodeURIComponent(props.instance.id)}/share`, flow, {
@@ -157,7 +157,6 @@ import {
useRelativeTime,
useVIntl,
} from '@modrinth/ui'
import { openUrl } from '@tauri-apps/plugin-opener'
import { computed, ref } from 'vue'
import {
@@ -294,9 +293,7 @@ const messages = defineMessages({
},
})
function userProfileLink(username: string) {
return !username || username.includes('@')
? undefined
: () => openUrl(`https://modrinth.com/user/${encodeURIComponent(username)}`)
return !username || username.includes('@') ? undefined : `/user/${encodeURIComponent(username)}`
}
function setUsernameRef(id: string, element: Element | null) {
usernameRefs.value[id] = element instanceof HTMLElement ? element : null
@@ -31,8 +31,9 @@
:organization="organization"
:members="members"
:org-link="(slug) => `https://modrinth.com/organization/${slug}`"
:user-link="(username) => `https://modrinth.com/user/${username}`"
:user-link="(username) => `/user/${encodeURIComponent(username)}`"
link-target="_blank"
:user-link-target="null"
class="project-sidebar-section"
/>
<ProjectSidebarDetails
@@ -475,7 +475,7 @@ export function createContentInstall(opts: {
name: owner.user.username,
iconUrl: owner.user.avatar_url,
circle: true,
link: () => openUrl(`https://modrinth.com/user/${owner.user.username}`),
link: `/user/${encodeURIComponent(owner.user.username)}`,
},
}
}
@@ -108,7 +108,7 @@ function getQueuedInstallOwnerFallback(project: InstallableSearchResult) {
id: ownerId,
name: project.author,
type: 'user' as const,
link: `https://modrinth.com/user/${ownerId}`,
link: `/user/${encodeURIComponent(ownerId)}`,
}
}
@@ -144,7 +144,7 @@ async function getQueuedInstallOwner(
name: owner.username,
type: 'user' as const,
avatar_url: owner.avatar_url,
link: `https://modrinth.com/user/${owner.username}`,
link: `/user/${encodeURIComponent(owner.username)}`,
}
}
} catch {
+8
View File
@@ -100,6 +100,14 @@ export default new createRouter({
breadcrumb: [{ name: 'Skin selector' }],
},
},
{
path: '/user/:user/:projectType?',
name: 'User',
component: Pages.User,
meta: {
breadcrumb: [{ name: '?User' }],
},
},
{
path: '/library',
name: 'Library',
+2 -1
View File
@@ -17,9 +17,10 @@ export const DEFAULT_FEATURE_FLAGS = {
i18n_debug: false,
show_instance_play_time: true,
advanced_filters_collapsed: true,
always_show_copy_details: false,
}
export const THEME_OPTIONS = ['dark', 'light', 'oled', 'system'] as const
export const THEME_OPTIONS = ['dark', 'light', 'oled', 'retro', 'system'] as const
export type FeatureFlag = keyof typeof DEFAULT_FEATURE_FLAGS
export type FeatureFlags = Record<FeatureFlag, boolean>
+2 -2
View File
@@ -55,11 +55,11 @@ core-foundation.workspace = true
core-graphics.workspace = true
objc2-app-kit = { workspace = true, features = ["NSWindow"] }
[target.'cfg(windows)'.dependencies]
[target."cfg(windows)".dependencies]
webview2-com.workspace = true
windows-core.workspace = true
[target.'cfg(windows)'.dependencies.windows]
[target."cfg(windows)".dependencies.windows]
workspace = true
features = [
"Win32_Foundation",
+8 -1
View File
@@ -276,7 +276,14 @@ fn main() {
.plugin(
"users",
InlinedPlugin::new()
.commands(&["search_user"])
.commands(&[
"search_user",
"get_user_profile",
"get_user_projects",
"get_user_organizations",
"get_user_collections",
"patch_user",
])
.default_permission(
DefaultPermissionRule::AllowAllCommands,
),
+34 -1
View File
@@ -1,4 +1,5 @@
use crate::api::Result;
use serde_json::Value;
use theseus::users::SearchUser;
#[tauri::command]
@@ -6,8 +7,40 @@ pub async fn search_user(query: &str) -> Result<Vec<SearchUser>> {
Ok(theseus::users::search_user(query).await?)
}
#[tauri::command]
pub async fn get_user_profile(user_id: &str) -> Result<Value> {
Ok(theseus::users::get_user_profile(user_id).await?)
}
#[tauri::command]
pub async fn get_user_projects(user_id: &str) -> Result<Value> {
Ok(theseus::users::get_user_projects(user_id).await?)
}
#[tauri::command]
pub async fn get_user_organizations(user_id: &str) -> Result<Value> {
Ok(theseus::users::get_user_organizations(user_id).await?)
}
#[tauri::command]
pub async fn get_user_collections(user_id: &str) -> Result<Value> {
Ok(theseus::users::get_user_collections(user_id).await?)
}
#[tauri::command]
pub async fn patch_user(user_id: &str, patch: Value) -> Result<()> {
Ok(theseus::users::patch_user(user_id, patch).await?)
}
pub fn init<R: tauri::Runtime>() -> tauri::plugin::TauriPlugin<R> {
tauri::plugin::Builder::new("users")
.invoke_handler(tauri::generate_handler![search_user])
.invoke_handler(tauri::generate_handler![
search_user,
get_user_profile,
get_user_projects,
get_user_organizations,
get_user_collections,
patch_user,
])
.build()
}
+7 -3
View File
@@ -280,15 +280,19 @@ html {
}
.retro-mode {
--color-bg: #191917;
--color-raised-bg: #1d1e1b;
--surface-1: #191917;
--surface-2: rgb(22, 22, 21);
--surface-3: #232421;
--surface-4: #3a3b38;
--surface-5: #5a5c58;
--color-button-bg: #3a3b38;
--color-base: #c3c4b3;
--color-secondary: #777a74;
--color-secondary: #9b9e98;
--color-contrast: #e6e2d1;
--color-brand: #4d9227;
--color-brand-highlight: #25421e;
--color-accent-contrast: #ffffff;
--color-ad: var(--color-brand-highlight);
--color-ad-raised: var(--color-brand);
--color-ad-contrast: black;
@@ -590,6 +590,7 @@ onBeforeUnmount(() => {
})
</script>
<template><div></div></template>
<style>
html.modrinth-cmp-summary-hidden .qc-cmp2-container,
html.modrinth-cmp-summary-hidden #qc-cmp2-container,
@@ -0,0 +1,165 @@
<template>
<div class="rounded-2xl border border-solid border-surface-4 bg-surface-3">
<div class="flex flex-col gap-2 border-0 border-b border-solid border-surface-4 p-4">
<div class="flex flex-wrap justify-between gap-3">
<div class="flex items-center gap-3">
<Avatar :src="authorization.app.icon_url" size="48px" />
<div class="flex flex-col gap-0.5">
<h2 class="m-0 flex items-center gap-1 text-base font-semibold">
{{ authorization.app.name }}
<BadgeCheckIcon
v-if="isOfficial"
v-tooltip="formatMessage(messages.officialTooltip)"
class="size-5 text-green"
fill="currentColor"
fill-opacity="0.125"
/>
</h2>
<PageHeaderMetadata>
<PageHeaderMetadataItem>
<IntlFormatted :message-id="messages.byLabel">
<template #~user>
<nuxt-link
:to="'/user/' + authorization.owner.id"
class="flex items-center gap-1 hover:underline"
target="_blank"
>
<Avatar :src="authorization.owner.avatar_url" size="24px" circle />
{{ authorization.owner.username }}
</nuxt-link>
</template>
</IntlFormatted>
</PageHeaderMetadataItem>
<PageHeaderMetadataItem v-if="authorization.app.url">
<a class="text-link" :to="authorization.app.url" target="_blank">
{{ authorization.app.url }}
</a>
</PageHeaderMetadataItem>
</PageHeaderMetadata>
</div>
</div>
<div>
<ButtonStyled color="red">
<button @click="emit('revoke', authorization.app_id)">
<XCircleIcon />
{{ formatMessage(messages.revokeAction) }}
</button>
</ButtonStyled>
</div>
</div>
<div v-if="showUnofficialDisclosure" class="flex items-center gap-1 text-orange">
<IssuesIcon />
{{ formatMessage(messages.unofficialDisclosure) }}
</div>
</div>
<div class="rounded-b-2xl bg-surface-2 p-4">
<template v-if="authorization.app.description">
<label :for="descriptionId" class="mb-1 flex font-semibold text-contrast">
{{ formatMessage(messages.aboutThisAppLabel) }}
</label>
<div :id="descriptionId" class="mb-4">{{ authorization.app.description }}</div>
</template>
<label :for="scopeListId" class="mb-1 flex font-semibold text-contrast">
{{ formatMessage(commonMessages.permissionsLabel) }}
</label>
<div :id="scopeListId" class="grid gap-1 sm:grid-cols-2">
<div
v-for="scope in scopesToDefinitions(BigInt(authorization.scopes || 0))"
:key="scope"
class="flex items-center gap-1"
>
<CheckIcon class="size-5 shrink-0 text-green" />
{{ scope }}
</div>
</div>
</div>
</div>
</template>
<script setup lang="ts">
import type { Labrinth } from '@modrinth/api-client'
import { BadgeCheckIcon, CheckIcon, IssuesIcon, XCircleIcon } from '@modrinth/assets'
import {
Avatar,
ButtonStyled,
commonMessages,
defineMessages,
IntlFormatted,
PageHeaderMetadata,
PageHeaderMetadataItem,
useVIntl,
} from '@modrinth/ui'
import { isOfficialAccount } from '@modrinth/utils'
import { useScopes } from '~/composables/auth/scopes.ts'
export type AuthorizationCardData = Labrinth.OAuth.Internal.OAuthClientAuthorization & {
app: Labrinth.OAuth.Internal.OAuthClient
owner: Labrinth.Users.v2.User
}
const props = defineProps<{
authorization: AuthorizationCardData
}>()
const emit = defineEmits<{
revoke: [appId: string]
}>()
const { formatMessage } = useVIntl()
const { scopesToDefinitions } = useScopes()
const descriptionId = computed(() => `app-description-${props.authorization.id}`)
const scopeListId = computed(() => `app-scope-list-${props.authorization.id}`)
const unofficialTriggerWords = [
'modrinth',
'mod rinth',
'rnodrinth',
'rinth',
'modrith',
'official',
'verified',
'verification',
]
const showUnofficialDisclosure = computed(() => {
return (
(unofficialTriggerWords.some((word) =>
props.authorization.app.name.toLowerCase().includes(word),
) ||
unofficialTriggerWords.some((word) =>
props.authorization.owner.username?.toLowerCase().includes(word),
)) &&
!isOfficial.value
)
})
const isOfficial = computed(() => {
return isOfficialAccount(props.authorization.owner.id)
})
const messages = defineMessages({
revokeAction: {
id: 'settings.authorizations.revoke.action',
defaultMessage: 'Revoke',
},
byLabel: {
id: 'settings.authorizations.created-by',
defaultMessage: 'Created by {user}',
},
aboutThisAppLabel: {
id: 'settings.authorizations.about-this-app',
defaultMessage: 'About this app',
},
unofficialDisclosure: {
id: 'settings.authorizations.unofficial-disclosure',
defaultMessage: 'This app is not affiliated with Modrinth in any way, despite its name.',
},
officialTooltip: {
id: 'settings.authorizations.official-tooltip',
defaultMessage: 'This app is created by an official Modrinth account.',
},
})
</script>
@@ -1,8 +1,16 @@
<script setup lang="ts">
import type { Labrinth } from '@modrinth/api-client'
import { FolderSearchIcon, StarIcon, TrashIcon } from '@modrinth/assets'
import {
FolderSearchIcon,
RotateCounterClockwiseIcon,
SpinnerIcon,
StarIcon,
TrashIcon,
} from '@modrinth/assets'
import {
ButtonStyled,
Combobox,
type ComboboxOption,
ConfirmModal,
defineMessages,
injectModrinthClient,
@@ -12,6 +20,7 @@ import {
type TableColumn,
useVIntl,
} from '@modrinth/ui'
import { renderString } from '@modrinth/utils'
import { useQueryClient } from '@tanstack/vue-query'
import { computed, ref, useTemplateRef } from 'vue'
@@ -52,6 +61,10 @@ const messages = defineMessages({
id: 'modpack-scan-modal.scanning',
defaultMessage: 'Scanning...',
},
success: {
id: 'modpack-scan-modal.success',
defaultMessage: 'Success',
},
failed: {
id: 'modpack-scan-modal.failed',
defaultMessage: 'Failed',
@@ -66,11 +79,40 @@ const messages = defineMessages({
},
scanError: {
id: 'modpack-scan-modal.scan-error',
defaultMessage: 'Some files failed to scan: {error}',
defaultMessage: 'Some files failed to scan: \n\n{error}',
},
clearAllGroups: {
id: 'modpack-scan-modal.clear-all-groups',
defaultMessage: 'Clear All Groups',
batchPlaceholder: {
id: 'modpack-scan-modal.batch.placeholder',
defaultMessage: 'Batch amount',
},
batchLabel: {
id: 'modpack-scan-modal.batch.label',
defaultMessage: '{amount} per batch',
},
deleteAllGroups: {
id: 'project.settings.permissions.delete-all-groups',
defaultMessage: 'Delete all groups',
},
deleteAllGroupsConfirmationTitle: {
id: 'project.settings.permissions.delete-all-groups-confirmation.title',
defaultMessage: 'Delete all attribution groups?',
},
deleteAllGroupsConfirmationDescription: {
id: 'modpack-scan-modal.delete-all-groups-confirmation.description',
defaultMessage:
'This will permanently delete all attribution groups for this project and all files inside them. This action cannot be undone.',
},
deleteAllGroupsConfirmationProceed: {
id: 'modpack-scan-modal.delete-all-groups.proceed',
defaultMessage: 'Clear',
},
deleteAllGroupsSuccess: {
id: 'modpack-scan-modal.delete-all-groups.success',
defaultMessage: 'All groups cleared successfully.',
},
deleteAllGroupsError: {
id: 'modpack-scan-modal.delete-all-groups.error',
defaultMessage: 'Failed to clear all groups: {error}',
},
})
@@ -98,23 +140,64 @@ const modalRef = useTemplateRef<InstanceType<typeof NewModal>>('modalRef')
const clearModalRef = useTemplateRef<InstanceType<typeof ConfirmModal>>('clearModalRef')
const { formatMessage } = useVIntl()
const rows = ref<ScanRow[]>([])
const rows = ref<Record<string, ScanRow>>({})
const isLoadingVersions = ref(false)
const isScanning = ref(false)
const isClearing = ref(false)
const versionLoadError = ref<string | null>(null)
const scanError = ref<string | null>(null)
const requestId = ref(0)
const scanRequestId = ref(0)
const DEFAULT_BATCH_AMOUNT = 10
const batchAmountOptions: ComboboxOption<number>[] = [
{ value: 1, label: '1' },
{ value: 5, label: '5' },
{ value: 10, label: '10' },
{ value: 20, label: '20' },
{ value: 50, label: '50' },
]
const batchAmountValues = batchAmountOptions.map((opt) => opt.value)
const batchAmountCookie = useCookie<number>('moderation-modpack-scan-batch', {
default: () => DEFAULT_BATCH_AMOUNT,
maxAge: 60 * 60 * 24 * 365,
sameSite: 'lax',
path: '/',
})
const batchAmount = computed({
get() {
const value = Number(batchAmountCookie.value)
return batchAmountValues.includes(value) ? value : DEFAULT_BATCH_AMOUNT
},
set(value: number) {
batchAmountCookie.value = value
},
})
const columns = computed<TableColumn<ScanTableColumn>[]>(() => [
{ key: 'filename', label: formatMessage(messages.packFileName), width: '60%' },
{ key: 'newFiles', label: formatMessage(messages.newFiles), align: 'center', width: '20%' },
{ key: 'newGroups', label: formatMessage(messages.newGroups), align: 'center', width: '20%' },
])
const scannedCount = computed(() => rows.value.filter((row) => row.scan || row.error).length)
const scannedCount = computed(
() => Object.entries(rows.value).filter(([_, row]) => row.scan || row.error).length,
)
const isBusy = computed(() => isLoadingVersions.value || isScanning.value || isClearing.value)
const titleButtonsDisabled = computed(() => isBusy.value || Object.keys(rows.value).length === 0)
const rescanButtonsDisabled = computed(() => isLoadingVersions.value || isClearing.value)
const rowErrors = computed(() =>
Object.entries(rows.value)
.filter(([_, row]) => row.error)
.map(([_, row]) => row),
)
const rowScanError = computed(() => {
if (rowErrors.value.length === 0) return undefined
return formatMessage(messages.scanError, {
error: rowErrors.value.map((r) => `\n - ${r.filename}`).join(''),
})
})
function getErrorMessage(error: unknown) {
if (error instanceof Error) {
@@ -131,12 +214,27 @@ function getErrorMessage(error: unknown) {
return String(error)
}
async function runWithConcurrency<T>(
items: T[],
limit: number,
task: (item: T) => Promise<void>,
): Promise<void> {
const queue = [...items]
const workers = Array.from({ length: limit }, async () => {
while (queue.length) {
const item = queue.shift()
if (item === undefined) return
await task(item)
}
})
await Promise.all(workers)
}
async function fetchAllVersions() {
const currentRequestId = ++requestId.value
isLoadingVersions.value = true
versionLoadError.value = null
scanError.value = null
rows.value = []
rows.value = {}
try {
const versions = await client.labrinth.versions_v2.getProjectVersions(props.project_id)
@@ -144,17 +242,20 @@ async function fetchAllVersions() {
return
}
rows.value = versions
const filteredVersions = versions
.flatMap((version) => version.files)
.filter((file): file is Labrinth.Versions.v2.VersionFile & { id: string } => Boolean(file.id))
.map((file) => ({
id: file.id,
filename: file.filename,
primary: file.primary,
for (const version of filteredVersions) {
rows.value[version.id] = {
id: version.id,
filename: version.filename,
primary: version.primary,
isScanning: false,
newFiles: undefined,
newGroups: undefined,
}))
}
}
} catch (error) {
if (currentRequestId === requestId.value) {
versionLoadError.value = formatMessage(messages.loadVersionsError, {
@@ -168,54 +269,45 @@ async function fetchAllVersions() {
}
}
async function fetchScan(id: string) {
rows.value[id].isScanning = true
try {
const scan = await client.labrinth.attribution_internal.scanFile(id)
rows.value[id].scan = scan
rows.value[id].newFiles = scan.new_attribution_files
rows.value[id].newGroups = scan.new_attribution_groups
rows.value[id].error = undefined
} catch (error) {
rows.value[id].error = getErrorMessage(error)
} finally {
rows.value[id].isScanning = false
}
}
async function fetchAllScans() {
if (isBusy.value) {
return
}
if (isBusy.value) return
const currentScanRequestId = ++scanRequestId.value
isScanning.value = true
scanError.value = null
rows.value = rows.value.map((row) => ({
...row,
scan: undefined,
isScanning: false,
error: undefined,
newFiles: undefined,
newGroups: undefined,
}))
Object.entries(rows.value).map(([id, row]) => {
rows.value[id] = {
...row,
scan: undefined,
isScanning: false,
error: undefined,
newFiles: undefined,
newGroups: undefined,
}
})
try {
for (const row of rows.value) {
if (currentScanRequestId !== scanRequestId.value) {
return
}
row.isScanning = true
try {
const scan = await client.labrinth.attribution_internal.scanFile(row.id)
if (currentScanRequestId !== scanRequestId.value) {
return
}
row.scan = scan
row.newFiles = scan.new_attribution_files
row.newGroups = scan.new_attribution_groups
} catch (error) {
if (currentScanRequestId !== scanRequestId.value) {
return
}
row.error = getErrorMessage(error)
scanError.value = formatMessage(messages.scanError, { error: row.error })
} finally {
row.isScanning = false
}
}
await runWithConcurrency(Object.keys(rows.value), batchAmount.value, async (id: string) => {
await fetchScan(id)
})
} finally {
if (currentScanRequestId === scanRequestId.value) {
isScanning.value = false
}
isScanning.value = false
}
}
@@ -242,8 +334,8 @@ async function clearAllGroups() {
failed = true
addNotification({
type: 'error',
title: 'An error occurred',
text: `Failed to clear all groups: ${getErrorMessage(error)}`,
title: formatMessage(messages.failed),
text: formatMessage(messages.deleteAllGroupsError, { error: getErrorMessage(error) }),
})
} finally {
isClearing.value = false
@@ -252,8 +344,8 @@ async function clearAllGroups() {
if (!failed) {
addNotification({
type: 'success',
title: 'Success',
text: 'All groups cleared successfully.',
title: formatMessage(messages.success),
text: formatMessage(messages.deleteAllGroupsSuccess),
})
}
}
@@ -261,7 +353,7 @@ async function clearAllGroups() {
function show() {
scanRequestId.value++
isScanning.value = false
rows.value = []
rows.value = {}
void fetchAllVersions()
modalRef.value?.show()
}
@@ -275,9 +367,9 @@ defineExpose({ show, hide })
<template>
<ConfirmModal
ref="clearModalRef"
title="Clear all permission groups?"
description="This will clear **all** groups for this project. This action cannot be undone."
proceed-label="Clear"
:title="formatMessage(messages.deleteAllGroupsConfirmationTitle)"
:description="formatMessage(messages.deleteAllGroupsConfirmationDescription)"
:proceed-label="formatMessage(messages.deleteAllGroupsConfirmationProceed)"
@proceed="clearAllGroups"
/>
@@ -294,27 +386,43 @@ defineExpose({ show, hide })
{{
formatMessage(messages.title, {
scanned: scannedCount,
total: rows.length,
total: Object.keys(rows).length,
})
}}
</span>
<div class="flex items-center gap-2">
<Combobox
v-model="batchAmount"
:options="batchAmountOptions"
:disabled="titleButtonsDisabled"
:placeholder="formatMessage(messages.batchPlaceholder)"
>
<template #selected>
<span class="flex flex-row gap-2 align-middle font-semibold">
<span class="truncate text-contrast">{{
formatMessage(messages.batchLabel, { amount: batchAmount })
}}</span>
</span>
</template>
</Combobox>
<ButtonStyled circular color="red" color-fill="none">
<button
v-tooltip="formatMessage(messages.clearAllGroups)"
:disabled="isBusy || rows.length === 0"
v-tooltip="formatMessage(messages.deleteAllGroups)"
:disabled="titleButtonsDisabled"
@click="showConfirmClearGroups"
>
<TrashIcon aria-hidden="true" />
<TrashIcon v-if="!isClearing" aria-hidden="true" />
<SpinnerIcon v-else class="animate-spin" />
</button>
</ButtonStyled>
<ButtonStyled circular>
<button
v-tooltip="formatMessage(messages.scanAllFiles)"
:disabled="isBusy || rows.length === 0"
:disabled="titleButtonsDisabled"
@click="fetchAllScans"
>
<FolderSearchIcon aria-hidden="true" />
<FolderSearchIcon v-if="!isScanning" aria-hidden="true" />
<SpinnerIcon v-else class="animate-spin" />
</button>
</ButtonStyled>
</div>
@@ -323,14 +431,14 @@ defineExpose({ show, hide })
<div class="w-full">
<div
v-if="versionLoadError || scanError"
class="mb-3 rounded-xl bg-highlight-red p-3 text-red"
v-if="versionLoadError || rowScanError"
class="mb-3 rounded-xl bg-highlight-red px-4 py-1 text-red"
>
{{ versionLoadError || scanError }}
<div v-html="renderString((versionLoadError || rowScanError) ?? '')"></div>
</div>
<Table
:columns="columns"
:data="rows"
:data="Object.entries(rows).map(([_, row]) => row)"
row-key="id"
:row-below-visible="
(row) => Boolean(row.scan?.scanned_file_names && row.scan.scanned_file_names.length > 0)
@@ -345,16 +453,36 @@ defineExpose({ show, hide })
</template>
<template #cell-newFiles="{ row }">
<span v-if="row.isScanning">{{ formatMessage(messages.scanning) }}</span>
<span v-else-if="row.error" v-tooltip="row.error" class="text-red">
{{ formatMessage(messages.failed) }}
<span v-else-if="row.error" v-tooltip="row.error" class="flex justify-center">
<ButtonStyled
class="justify-self-center"
color="red"
type="outlined"
hover-color-fill="background"
>
<button :disabled="rescanButtonsDisabled" @click="() => fetchScan(row.id)">
<RotateCounterClockwiseIcon />
{{ formatMessage(messages.failed) }}
</button>
</ButtonStyled>
</span>
<span v-else-if="row.scan">{{ row.scan.new_attribution_files }}</span>
<span v-else>{{ formatMessage(messages.notScanned) }}</span>
</template>
<template #cell-newGroups="{ row }">
<span v-if="row.isScanning">{{ formatMessage(messages.scanning) }}</span>
<span v-else-if="row.error" v-tooltip="row.error" class="text-red">
{{ formatMessage(messages.failed) }}
<span v-else-if="row.error" v-tooltip="row.error" class="flex justify-center">
<ButtonStyled
class="justify-self-center"
color="red"
type="outlined"
hover-color-fill="background"
>
<button :disabled="rescanButtonsDisabled" @click="() => fetchScan(row.id)">
<RotateCounterClockwiseIcon />
{{ formatMessage(messages.failed) }}
</button>
</ButtonStyled>
</span>
<span v-else-if="row.scan">{{ row.scan.new_attribution_groups }}</span>
<span v-else>{{ formatMessage(messages.notScanned) }}</span>
@@ -1838,9 +1838,6 @@
"muralpay.placeholder.cuit-cuil": {
"message": "أدخل CUIT أو CUIL"
},
"profile.user-id": {
"message": "معرّف المستخدم: {id}"
},
"project-member-header.success-decline": {
"message": "لقد رفضت دعوة الفريق"
},
-108
View File
@@ -2105,111 +2105,6 @@
"muralpay.placeholder.account-number": {
"message": "Zadejte číslo účtu"
},
"profile.bio.fallback.creator": {
"message": "Modrinth tvůrce."
},
"profile.bio.fallback.user": {
"message": "Modrinth uživatel."
},
"profile.button.analytics": {
"message": "Zobrazit analytika uživatele"
},
"profile.button.billing": {
"message": "Spravujte fakturaci uživatele"
},
"profile.button.edit-role": {
"message": "Upravit roli"
},
"profile.button.info": {
"message": "Podívejte se na detaily uživatele"
},
"profile.button.manage-projects": {
"message": "Spravujte projekty"
},
"profile.button.remove-affiliate": {
"message": "Odebrat jako partnera"
},
"profile.button.set-affiliate": {
"message": "Nastavit jako partnera"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# projekt} few {# projekty} other {# projektů}}"
},
"profile.details.label.auth-providers": {
"message": "Poskytovatelé přihlášení"
},
"profile.details.label.email": {
"message": "E-mail"
},
"profile.details.label.email-verified": {
"message": "E-mail ověřen"
},
"profile.details.label.has-password": {
"message": "Má heslo"
},
"profile.details.label.has-totp": {
"message": "Má TOTP"
},
"profile.details.label.payment-methods": {
"message": "Platební metody"
},
"profile.details.tooltip.email-not-verified": {
"message": "E-mail není ověřen"
},
"profile.details.tooltip.email-verified": {
"message": "E-mail je ověřen"
},
"profile.error.not-found": {
"message": "Uživatel nenalezen"
},
"profile.label.affiliate": {
"message": "Partner"
},
"profile.label.badges": {
"message": "Odznaky"
},
"profile.label.collection": {
"message": "Kolekce"
},
"profile.label.joined": {
"message": "Členem od"
},
"profile.label.no-collections": {
"message": "Tento uživatel nemá žádné kolekce!"
},
"profile.label.no-collections-auth": {
"message": "Nemáte žádné kolekce.\nChcete nějakou <create-link>vytvořit</create-link>?"
},
"profile.label.no-projects": {
"message": "Tento uživatel nemá žádné projekty!"
},
"profile.label.no-projects-auth": {
"message": "Nemáte žádné projekty.\nChcete nějaký <create-link>vytvořit</create-link>?"
},
"profile.label.organizations": {
"message": "Organizace"
},
"profile.label.saving": {
"message": "Ukládání..."
},
"profile.meta.description": {
"message": "Stáhněte si projekty od {username} na Modrinthu"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Stáhněte si projekty od {username} na Modrinthu"
},
"profile.official-account": {
"message": "Oficiální Modrinth účet"
},
"profile.official-account.bio": {
"message": "Oficiální uživatelský účet Modrinthu. Podporu získáte na <support-link></support-link> nebo e-mailem na <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> sledující projektu} few {<stat>{count}</stat> sledující projektu} other {<stat>{count}</stat> sledujících projektu}}"
},
"profile.user-id": {
"message": "ID uživatele: {id}"
},
"project-member-header.error-decline": {
"message": "Nepodařilo se zamítnout pozvánku do týmu"
},
@@ -2936,9 +2831,6 @@
"settings.authorizations.about-this-app": {
"message": "O této aplikaci"
},
"settings.authorizations.by": {
"message": "od"
},
"settings.authorizations.head-title": {
"message": "Autorizace"
},
File diff suppressed because it is too large Load Diff
+3 -129
View File
@@ -2928,13 +2928,13 @@
"message": "E-Mail-Bestätigung erforderlich"
},
"modal.shared-instance.open-in-app.benefit.install": {
"message": "Installiere automatisch das erforderliche Spiel und den erforderlichen Loader"
"message": "Installiere automatisch alles, was gerade gespielt wird"
},
"modal.shared-instance.open-in-app.benefit.join": {
"message": "Tritt der geteilten Instanz mit einem Klick bei"
"message": "Spiele dieselben Inhalte wie deine Freunde"
},
"modal.shared-instance.open-in-app.benefit.update": {
"message": "Halte geteilte Inhalte aktuell, wenn sich die Instanz ändert"
"message": "Halte gemeinsame Inhalte immer aktuell"
},
"modal.shared-instance.open-in-app.get-app": {
"message": "Modrinth App herunterladen"
@@ -2972,9 +2972,6 @@
"moderation.page.technicalReview": {
"message": "Technische Überprüfung"
},
"modpack-scan-modal.clear-all-groups": {
"message": "Alle Gruppen entfernen"
},
"modpack-scan-modal.failed": {
"message": "Fehlgeschlagen"
},
@@ -3005,9 +3002,6 @@
"modpack-scan-modal.scan-all-files": {
"message": "Alle Dateien scannen"
},
"modpack-scan-modal.scan-error": {
"message": "Einige Dateien konnten nicht gescannt werden: {error}"
},
"modpack-scan-modal.scanning": {
"message": "Wird gescannt..."
},
@@ -3326,117 +3320,6 @@
"organization.projects.none-with-create-prompt": {
"message": "Diese Organisation hat noch keine Projekte. Möchtest du <create-link>eins erstellen</create-link>?"
},
"profile.bio.fallback.creator": {
"message": "Ein Modrinth Ersteller."
},
"profile.bio.fallback.user": {
"message": "Ein Modrinth Benutzer."
},
"profile.button.analytics": {
"message": "Nutzungsstatistik anzeigen"
},
"profile.button.billing": {
"message": "Nutzer Zahlungen verwalten"
},
"profile.button.edit-role": {
"message": "Rolle bearbeiten"
},
"profile.button.info": {
"message": "Nutzerdetails ansehen"
},
"profile.button.manage-projects": {
"message": "Projekte verwalten"
},
"profile.button.remove-affiliate": {
"message": "Als Partner entfernen"
},
"profile.button.set-affiliate": {
"message": "Als Partner setzen"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# Projekt} other {# Projekte}}"
},
"profile.details.label.auth-providers": {
"message": "Authentifizierungsanbieter"
},
"profile.details.label.email": {
"message": "E-Mail"
},
"profile.details.label.email-verified": {
"message": "E-Mail verifiziert"
},
"profile.details.label.has-password": {
"message": "Hat Passwort"
},
"profile.details.label.has-totp": {
"message": "Hat TOTP"
},
"profile.details.label.payment-methods": {
"message": "Zahlungsmethoden"
},
"profile.details.tooltip.email-not-verified": {
"message": "E-Mail nicht verifiziert"
},
"profile.details.tooltip.email-verified": {
"message": "E-Mail verifiziert"
},
"profile.error.not-found": {
"message": "Benutzer nicht gefunden"
},
"profile.label.affiliate": {
"message": "Partner"
},
"profile.label.badges": {
"message": "Abzeichen"
},
"profile.label.collection": {
"message": "Kollektion"
},
"profile.label.download-count": {
"message": "{count, plural, one {Download} other {Downloads}}"
},
"profile.label.joined": {
"message": "Beigetreten"
},
"profile.label.no-collections": {
"message": "Dieser Nutzer hat keine Kollektionen!"
},
"profile.label.no-collections-auth": {
"message": "Du hast keine Kollektionen.\nMöchtest du gerne <create-link>eine erstellen</create-link>?"
},
"profile.label.no-projects": {
"message": "Dieser Nutzer hat keine Projekte!"
},
"profile.label.no-projects-auth": {
"message": "Du hast keine Projekte.\nMöchtest du gerne <create-link>eines erstellen</create-link>?"
},
"profile.label.organizations": {
"message": "Organisationen"
},
"profile.label.project-count": {
"message": "{count, plural, one {Projekt} other {Projekte}}"
},
"profile.label.saving": {
"message": "Speichert..."
},
"profile.meta.description": {
"message": "Lade {username}'s Projekte auf Modrinth herunter"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Lade {username}'s Projekte auf Modrinth herunter"
},
"profile.official-account": {
"message": "Offizielles Modrinth-Konto"
},
"profile.official-account.bio": {
"message": "Das offizielle Benutzerkonto von Modrinth. Erhalte Support unter <support-link></support-link> oder per E-Mail an <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat>} other {<stat>{count}</stat>}} Projekt-Follower"
},
"profile.user-id": {
"message": "Benutzer ID: {id}"
},
"project-member-header.error-decline": {
"message": "Ablehnen der Team-Einladung fehlgeschlagen"
},
@@ -3785,9 +3668,6 @@
"project.moderation.admonition.under-review.body.3": {
"message": "Du kannst dein Projekt weiterhin ändern, dies hat keinen Einfluss auf deine Position in der Warteschlange."
},
"project.moderation.admonition.under-review.body.4": {
"message": "Wir streben an, Einreichungen innerhalb von 24 bis 48 Stunden zu überprüfen, aber bei einigen Projekten kann es zu Verzögerungen kommen. Dies deutet nicht auf ein Problem mit deiner Einreichung hin."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>Wir schätzen deine Geduld, während unsere Moderatoren hart daran arbeiten, Modrinth sicher zu halten, und freuen uns darauf, dir dabei zu helfen, deine Inhalte zu teilen! 💚</emphasis>"
},
@@ -4892,15 +4772,9 @@
"settings.authorizations.about-this-app": {
"message": "Über diese Anwendung"
},
"settings.authorizations.by": {
"message": "von"
},
"settings.authorizations.description": {
"message": "Wenn du eine Anwendung mit deinem Modrinth-Konto autorisierst, gewährst du dieser Zugriff auf dein Konto. Du kannst den Zugriff auf dein Konto hier jederzeit verwalten und überprüfen."
},
"settings.authorizations.empty-state": {
"message": "Wir konnen aktuell deine autorisierten Anwendungen nicht anzeigen und arbeiten an einer lösung dafür. Bitte besuche diese Seite zu einem späteren Zeitpunkt erneut!"
},
"settings.authorizations.head-title": {
"message": "Autorisierungen"
},
+9 -135
View File
@@ -756,7 +756,7 @@
"message": "Erforderliche Abfrageparameter für OAuth fehlen."
},
"auth.authorize.error.no-redirect-url": {
"message": "Keine Weiterleitungsziel in Antwort gefunden"
"message": "Kein Weiterleitungsziel in Antwort gefunden"
},
"auth.authorize.errro-title": {
"message": "Ein Fehler ist aufgetreten"
@@ -1968,7 +1968,7 @@
"message": "In Verarbeitung"
},
"dashboard.revenue.processing.tooltip": {
"message": "Einnahmen bleiben in bearbeitung bis zum ende des Monats, und werden 60 Tage danach verfügbar."
"message": "Die Einnahmen bleiben bis zum Monatsende in Bearbeitung und werden 60 Tage später verfügbar."
},
"dashboard.revenue.stats.received": {
"message": "Erhalten"
@@ -2013,7 +2013,7 @@
"message": "Deine Auszahlungen sind vorrübergehend gesperrt, da deine TIN oder SSN nicht mit den IRS-Aufzeichnungen übereinstimmt. Bitte kontaktiere den Support um dein Steuerformular zurückzusetzen und erneut einzureichen."
},
"dashboard.revenue.withdraw.card.description": {
"message": "Hebe von deinem Verfügbaren Guthaben über einen Zahlungsmethode ab."
"message": "Hebe von deinem verfügbaren Guthaben über eine Zahlungsmethode ab."
},
"dashboard.revenue.withdraw.card.title": {
"message": "Auszahlen"
@@ -2175,7 +2175,7 @@
"message": "Durchsuche {projectType}"
},
"discover.seo.title-with-query": {
"message": "Durchsuche {projectType} {query}"
"message": "Durchsuche {projectType} | {query}"
},
"error.collection.404.list_item.1": {
"message": "Eventuell hast du die URL der Kollektion falsch eingegeben."
@@ -2928,13 +2928,13 @@
"message": "E-Mail-Bestätigung erforderlich"
},
"modal.shared-instance.open-in-app.benefit.install": {
"message": "Installiere automatisch das erforderliche Spiel und den erforderlichen Loader"
"message": "Installiere automatisch alles, was gerade gespielt wird"
},
"modal.shared-instance.open-in-app.benefit.join": {
"message": "Tritt der geteilten Instanz mit einem Klick bei"
"message": "Spiele dieselben Inhalte wie deine Freunde"
},
"modal.shared-instance.open-in-app.benefit.update": {
"message": "Halte geteilte Inhalte aktuell, wenn sich die Instanz ändert"
"message": "Halte gemeinsame Inhalte immer aktuell"
},
"modal.shared-instance.open-in-app.get-app": {
"message": "Modrinth App herunterladen"
@@ -2972,9 +2972,6 @@
"moderation.page.technicalReview": {
"message": "Technische Überprüfung"
},
"modpack-scan-modal.clear-all-groups": {
"message": "Alle Gruppen entfernen"
},
"modpack-scan-modal.failed": {
"message": "Fehlgeschlagen"
},
@@ -3005,9 +3002,6 @@
"modpack-scan-modal.scan-all-files": {
"message": "Alle Dateien scannen"
},
"modpack-scan-modal.scan-error": {
"message": "Einige Dateien konnten nicht gescannt werden: {error}"
},
"modpack-scan-modal.scanning": {
"message": "Wird gescannt..."
},
@@ -3326,117 +3320,6 @@
"organization.projects.none-with-create-prompt": {
"message": "Diese Organisation hat noch keine Projekte. Möchtest du <create-link>eins erstellen</create-link>?"
},
"profile.bio.fallback.creator": {
"message": "Ein Modrinth-Ersteller."
},
"profile.bio.fallback.user": {
"message": "Ein Modrinth-Benutzer."
},
"profile.button.analytics": {
"message": "Benutzeranalysen anzeigen"
},
"profile.button.billing": {
"message": "Benutzerabrechnungen verwalten"
},
"profile.button.edit-role": {
"message": "Rolle bearbeiten"
},
"profile.button.info": {
"message": "Nutzerdetails ansehen"
},
"profile.button.manage-projects": {
"message": "Projekte verwalten"
},
"profile.button.remove-affiliate": {
"message": "Als Partner entfernen"
},
"profile.button.set-affiliate": {
"message": "Als Partner setzen"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# Projekt} other {# Projekte}}"
},
"profile.details.label.auth-providers": {
"message": "Authentifizierungsanbieter"
},
"profile.details.label.email": {
"message": "E-Mail"
},
"profile.details.label.email-verified": {
"message": "E-Mail verifiziert"
},
"profile.details.label.has-password": {
"message": "Hat Passwort"
},
"profile.details.label.has-totp": {
"message": "Hat TOTP"
},
"profile.details.label.payment-methods": {
"message": "Zahlungsmethoden"
},
"profile.details.tooltip.email-not-verified": {
"message": "E-Mail nicht verifiziert"
},
"profile.details.tooltip.email-verified": {
"message": "E-Mail verifiziert"
},
"profile.error.not-found": {
"message": "Benutzer nicht gefunden"
},
"profile.label.affiliate": {
"message": "Partner"
},
"profile.label.badges": {
"message": "Abzeichen"
},
"profile.label.collection": {
"message": "Kollektion"
},
"profile.label.download-count": {
"message": "{count, plural, one {Download} other {Downloads}}"
},
"profile.label.joined": {
"message": "Beigetreten"
},
"profile.label.no-collections": {
"message": "Dieser Nutzer hat keine Kollektionen!"
},
"profile.label.no-collections-auth": {
"message": "Du hast keine Kollektionen.\nMöchtest du eine <create-link>erstellen</create-link>?"
},
"profile.label.no-projects": {
"message": "Dieser Nutzer hat keine Projekte!"
},
"profile.label.no-projects-auth": {
"message": "Du hast keine Projekte.\nMöchtest du eins <create-link>erstellen</create-link>?"
},
"profile.label.organizations": {
"message": "Organisationen"
},
"profile.label.project-count": {
"message": "{count, plural, one {Projekt} other {Projekte}}"
},
"profile.label.saving": {
"message": "Speichert..."
},
"profile.meta.description": {
"message": "Lade {username}'s Projekte auf Modrinth herunter"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Lade {username}s Projekte auf Modrinth herunter"
},
"profile.official-account": {
"message": "Offizielles Konto von Modrinth"
},
"profile.official-account.bio": {
"message": "Das offizielle Benutzerkonto von Modrinth. Erhalte Hilfe unter <support-link></support-link> oder per E-Mail unter <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat>} other {<stat>{count}</stat>}} Projekt-Follower"
},
"profile.user-id": {
"message": "Benutzer ID: {id}"
},
"project-member-header.error-decline": {
"message": "Teameinladung konnte nicht abgelehnt werden"
},
@@ -3693,7 +3576,7 @@
"message": "Spielversion auswählen"
},
"project.download.select-platform": {
"message": "Platftorm auswählen"
"message": "Plattform auswählen"
},
"project.download.show-all-versions": {
"message": "Alle Versionen anzeigen"
@@ -3785,9 +3668,6 @@
"project.moderation.admonition.under-review.body.3": {
"message": "Du kannst dein Projekt weiterhin bearbeiten, dies hat keinen Einfluss auf deinen Platz in der Warteschlange."
},
"project.moderation.admonition.under-review.body.4": {
"message": "Wir bemühen uns, Einsendungen innerhalb von 24 bis 48 Stunden zu überprüfen, doch bei einigen Projekten kann es zu Verzögerungen kommen. Dies bedeutet nicht, dass mit deiner Einreichung etwas nicht in Ordnung ist."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>Wir danken dir für deine Geduld, während unsere Moderatoren daran arbeiten, Modrinth sicher zu halten, und freuen uns darauf, dir dabei zu helfen, deine Inhalte zu teilen! 💚</emphasis>"
},
@@ -4842,7 +4722,7 @@
"message": "Möchtest du diese Anwendung wirklich löschen?"
},
"settings.applications.description.intro": {
"message": "Anwendungen können verwendet werden, um Modrinth-Benutzer mit deinen Produkten zu authentifizieren. Weitere Informationen findest du in der <docs-link>Modrinth's API-Dokumentation</docs-link>."
"message": "Anwendungen können verwendet werden, um Modrinth-Benutzer mit deinen Produkten zu authentifizieren. Weitere Informationen findest du in der <docs-link>API-Dokumentation von Modrinth</docs-link>."
},
"settings.applications.field.description": {
"message": "Beschreibung"
@@ -4892,15 +4772,9 @@
"settings.authorizations.about-this-app": {
"message": "Über diese Anwendung"
},
"settings.authorizations.by": {
"message": "von"
},
"settings.authorizations.description": {
"message": "Wenn du eine Anwendung mit deinem Modrinth-Konto autorisierst, gewährst du dieser Zugriff auf dein Konto. Du kannst den Zugriff auf dein Konto hier jederzeit verwalten und überprüfen."
},
"settings.authorizations.empty-state": {
"message": "Wir können deine autorisierten Apps derzeit nicht anzeigen, wir arbeiten daran, das zu beheben. Bitte besuche diese Seite zu einem späteren Zeitpunkt erneut!"
},
"settings.authorizations.head-title": {
"message": "Autorisierungen"
},
+38 -119
View File
@@ -2972,8 +2972,23 @@
"moderation.page.technicalReview": {
"message": "Tech review"
},
"modpack-scan-modal.clear-all-groups": {
"message": "Clear All Groups"
"modpack-scan-modal.batch.label": {
"message": "{amount} per batch"
},
"modpack-scan-modal.batch.placeholder": {
"message": "Batch amount"
},
"modpack-scan-modal.delete-all-groups-confirmation.description": {
"message": "This will permanently delete all attribution groups for this project and all files inside them. This action cannot be undone."
},
"modpack-scan-modal.delete-all-groups.error": {
"message": "Failed to clear all groups: {error}"
},
"modpack-scan-modal.delete-all-groups.proceed": {
"message": "Clear"
},
"modpack-scan-modal.delete-all-groups.success": {
"message": "All groups cleared successfully."
},
"modpack-scan-modal.failed": {
"message": "Failed"
@@ -3006,11 +3021,14 @@
"message": "Scan All Files"
},
"modpack-scan-modal.scan-error": {
"message": "Some files failed to scan: {error}"
"message": "Some files failed to scan: \n\n{error}"
},
"modpack-scan-modal.scanning": {
"message": "Scanning..."
},
"modpack-scan-modal.success": {
"message": "Success"
},
"modpack-scan-modal.title": {
"message": "Modpack Scan ({scanned}/{total} Files)"
},
@@ -3326,117 +3344,6 @@
"organization.projects.none-with-create-prompt": {
"message": "This organization doesn't have any projects yet. Would you like to <create-link>create one</create-link>?"
},
"profile.bio.fallback.creator": {
"message": "A Modrinth creator."
},
"profile.bio.fallback.user": {
"message": "A Modrinth user."
},
"profile.button.analytics": {
"message": "View user analytics"
},
"profile.button.billing": {
"message": "Manage user billing"
},
"profile.button.edit-role": {
"message": "Edit role"
},
"profile.button.info": {
"message": "View user details"
},
"profile.button.manage-projects": {
"message": "Manage projects"
},
"profile.button.remove-affiliate": {
"message": "Remove as affiliate"
},
"profile.button.set-affiliate": {
"message": "Set as affiliate"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# project} other {# projects}}"
},
"profile.details.label.auth-providers": {
"message": "Auth providers"
},
"profile.details.label.email": {
"message": "Email"
},
"profile.details.label.email-verified": {
"message": "Email verified"
},
"profile.details.label.has-password": {
"message": "Has password"
},
"profile.details.label.has-totp": {
"message": "Has TOTP"
},
"profile.details.label.payment-methods": {
"message": "Payment methods"
},
"profile.details.tooltip.email-not-verified": {
"message": "Email not verified"
},
"profile.details.tooltip.email-verified": {
"message": "Email verified"
},
"profile.error.not-found": {
"message": "User not found"
},
"profile.label.affiliate": {
"message": "Affiliate"
},
"profile.label.badges": {
"message": "Badges"
},
"profile.label.collection": {
"message": "Collection"
},
"profile.label.download-count": {
"message": "{count, plural, one {download} other {downloads}}"
},
"profile.label.joined": {
"message": "Joined"
},
"profile.label.no-collections": {
"message": "This user has no collections!"
},
"profile.label.no-collections-auth": {
"message": "You don't have any collections.\nWould you like to <create-link>create one</create-link>?"
},
"profile.label.no-projects": {
"message": "This user has no projects!"
},
"profile.label.no-projects-auth": {
"message": "You don't have any projects.\nWould you like to <create-link>create one</create-link>?"
},
"profile.label.organizations": {
"message": "Organizations"
},
"profile.label.project-count": {
"message": "{count, plural, one {project} other {projects}}"
},
"profile.label.saving": {
"message": "Saving..."
},
"profile.meta.description": {
"message": "Download {username}'s projects on Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Download {username}'s projects on Modrinth"
},
"profile.official-account": {
"message": "Official Modrinth account"
},
"profile.official-account.bio": {
"message": "The official user account of Modrinth. Get support at <support-link></support-link> or via email at <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> project follower} other {<stat>{count}</stat> project followers}}"
},
"profile.user-id": {
"message": "User ID: {id}"
},
"project-member-header.error-decline": {
"message": "Failed to decline team invitation"
},
@@ -3786,7 +3693,10 @@
"message": "You can still modify your project, it won't affect your position in the queue."
},
"project.moderation.admonition.under-review.body.4": {
"message": "We aim to review submissions in 24-48 hours, but some projects may face delays. This does not reflect an issue with your submission."
"message": "We aim to review submissions in 2448 hours, but some projects may face delays. This does not reflect an issue with your submission."
},
"project.moderation.admonition.under-review.body.4.alt-week": {
"message": "We aim to review submissions within a week, but some projects may face delays. This does not reflect an issue with your submission."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>We appreciate your patience while our moderators work hard to keep Modrinth safe, and look forward to helping you share your content! 💚</emphasis>"
@@ -4892,18 +4802,24 @@
"settings.authorizations.about-this-app": {
"message": "About this app"
},
"settings.authorizations.by": {
"message": "by"
"settings.authorizations.created-by": {
"message": "Created by {user}"
},
"settings.authorizations.description": {
"message": "When you authorize an application with your Modrinth account, you grant it access to your account. You can manage and review access to your account here at any time."
},
"settings.authorizations.empty-state": {
"message": "We currently can't display your authorized apps, we're working to fix this. Please visit this page at a later date!"
"settings.authorizations.empty-state.description": {
"message": "Applications you authorize will appear here."
},
"settings.authorizations.empty-state.heading": {
"message": "No authorized apps"
},
"settings.authorizations.head-title": {
"message": "Authorizations"
},
"settings.authorizations.official-tooltip": {
"message": "This app is created by an official Modrinth account."
},
"settings.authorizations.revoke.action": {
"message": "Revoke"
},
@@ -4913,6 +4829,9 @@
"settings.authorizations.revoke.confirm.title": {
"message": "Are you sure you want to revoke this application?"
},
"settings.authorizations.unofficial-disclosure": {
"message": "This app is not affiliated with Modrinth in any way, despite its name."
},
"settings.billing.charges.description": {
"message": "All of your past charges to your Modrinth account will be listed here:"
},
-117
View File
@@ -2723,9 +2723,6 @@
"modpack-scan-modal.scan-all-files": {
"message": "Escanear todos los archivos"
},
"modpack-scan-modal.scan-error": {
"message": "No se pudieron escanear algunos archivos: {error}"
},
"modpack-scan-modal.scanning": {
"message": "Escaneando..."
},
@@ -2999,111 +2996,6 @@
"muralpay.warning.wallet-address": {
"message": "Verifica dos veces la dirección de tu billetera. Los fondos enviados a una dirección incorrecta no se pueden recuperar."
},
"profile.bio.fallback.creator": {
"message": "Un creador de Modrinth."
},
"profile.bio.fallback.user": {
"message": "Un usuario de Modrinth."
},
"profile.button.analytics": {
"message": "Ver estadísticas de usuario"
},
"profile.button.billing": {
"message": "Gestionar la facturación de usuario"
},
"profile.button.edit-role": {
"message": "Editar rol"
},
"profile.button.info": {
"message": "Ver detalles de usuario"
},
"profile.button.manage-projects": {
"message": "Gestionar proyectos"
},
"profile.button.remove-affiliate": {
"message": "Remover como afiliado"
},
"profile.button.set-affiliate": {
"message": "Configurar como afiliado"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# proyecto} other {# proyectos}}"
},
"profile.details.label.auth-providers": {
"message": "Proveedores de autenticación"
},
"profile.details.label.email": {
"message": "Correo electrónico"
},
"profile.details.label.email-verified": {
"message": "Correo electrónico verificado"
},
"profile.details.label.has-password": {
"message": "Tiene contraseña"
},
"profile.details.label.has-totp": {
"message": "Tiene TOTP"
},
"profile.details.label.payment-methods": {
"message": "Métodos de pago"
},
"profile.details.tooltip.email-not-verified": {
"message": "Correo electrónico no verificado"
},
"profile.details.tooltip.email-verified": {
"message": "Correo electrónico verificado"
},
"profile.error.not-found": {
"message": "Usuario no encontrado"
},
"profile.label.affiliate": {
"message": "Afiliado"
},
"profile.label.badges": {
"message": "Insignias"
},
"profile.label.collection": {
"message": "Colección"
},
"profile.label.joined": {
"message": "Se unió"
},
"profile.label.no-collections": {
"message": "¡Este usuario no tiene colecciones!"
},
"profile.label.no-collections-auth": {
"message": "No tienes ninguna colección.\n¿Te gustaría <create-link>crear una</create-link>?"
},
"profile.label.no-projects": {
"message": "¡Este usuario no tiene proyectos!"
},
"profile.label.no-projects-auth": {
"message": "No tienes ningún proyecto.\n¿Te gustaría <create-link>crear uno</create-link>?"
},
"profile.label.organizations": {
"message": "Organizaciones"
},
"profile.label.saving": {
"message": "Guardando..."
},
"profile.meta.description": {
"message": "Descarga proyectos de {username} en Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Descarga proyectos de {username} en Modrinth"
},
"profile.official-account": {
"message": "Cuenta oficial de Modrinth"
},
"profile.official-account.bio": {
"message": "La cuenta de usuario oficial de Modrinth. Obtén soporte en <support-link></support-link> o vía correo en <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> seguidor del proyecto} other {<stat>{count}</stat> seguidores del proyecto}}"
},
"profile.user-id": {
"message": "ID de usuario: {id}"
},
"project-member-header.error-decline": {
"message": "Error al rechazar la invitación del equipo"
},
@@ -3443,9 +3335,6 @@
"project.moderation.admonition.under-review.body.3": {
"message": "Aún puedes modificar tu proyecto, no afectará tu posición en la cola."
},
"project.moderation.admonition.under-review.body.4": {
"message": "Nuestro objetivo es revisar envíos en un plazo de 24-48 horas, pero algunos proyectos pueden sufrir retrasos. Esto no indica que haya algún problema con tu envío."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>¡Apreciamos tu paciencia mientras nuestros moderadores trabajan duro para mantener Modrinth seguro, y estaremos encantados de poder ayudarte a compartir tu contenido! 💚</emphasis>"
},
@@ -4391,15 +4280,9 @@
"settings.authorizations.about-this-app": {
"message": "Acerca de esta aplicación"
},
"settings.authorizations.by": {
"message": "por"
},
"settings.authorizations.description": {
"message": "Cuando autorizas una aplicación con tu cuenta de Modrinth, le concedes acceso a tu cuenta. Puedes gestionar y revisar los accesos a tu cuenta aquí en cualquier momento."
},
"settings.authorizations.empty-state": {
"message": "Actualmente no podemos mostrar tus aplicaciones autorizadas. Estamos trabajando para solucionar esto. ¡Por favor, visita esta página más tarde!"
},
"settings.authorizations.head-title": {
"message": "Autorizaciones"
},
-114
View File
@@ -2822,111 +2822,6 @@
"muralpay.warning.wallet-address": {
"message": "Verifique la dirección de su billetera. Los fondos enviados a una dirección incorrecta no se pueden recuperar."
},
"profile.bio.fallback.creator": {
"message": "Creador en Modrinth."
},
"profile.bio.fallback.user": {
"message": "Usuario de Modrinth."
},
"profile.button.analytics": {
"message": "Ver analíticas de usuario"
},
"profile.button.billing": {
"message": "Gestionar la facturación de los usuarios"
},
"profile.button.edit-role": {
"message": "Editar rol"
},
"profile.button.info": {
"message": "Ver detalles del usuario"
},
"profile.button.manage-projects": {
"message": "Gestionar proyectos"
},
"profile.button.remove-affiliate": {
"message": "Borrar como afiliado"
},
"profile.button.set-affiliate": {
"message": "Establecer como afiliado"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# proyecto} other {# proyectos}}"
},
"profile.details.label.auth-providers": {
"message": "Autentificar proveedores"
},
"profile.details.label.email": {
"message": "Correo electrónico"
},
"profile.details.label.email-verified": {
"message": "Email verificado"
},
"profile.details.label.has-password": {
"message": "Tiene contraseña"
},
"profile.details.label.has-totp": {
"message": "Tiene autentificación de doble factor"
},
"profile.details.label.payment-methods": {
"message": "Métodos de pago"
},
"profile.details.tooltip.email-not-verified": {
"message": "Correo electrónico no verificado"
},
"profile.details.tooltip.email-verified": {
"message": "Correo electrónico verificado"
},
"profile.error.not-found": {
"message": "Usuario no encontrado"
},
"profile.label.affiliate": {
"message": "Afiliado"
},
"profile.label.badges": {
"message": "Medallas"
},
"profile.label.collection": {
"message": "Colección"
},
"profile.label.joined": {
"message": "Se unió hace"
},
"profile.label.no-collections": {
"message": "¡Este usuario no tiene colecciones!"
},
"profile.label.no-collections-auth": {
"message": "No tienes ninguna colección.\n¿Te gustaría <create-link>crear una</create-link>?"
},
"profile.label.no-projects": {
"message": "¡Este usuario no tiene proyectos!"
},
"profile.label.no-projects-auth": {
"message": "No tienes ningún proyecto.\n¿Te gustaría <create-link>crear uno</create-link>?"
},
"profile.label.organizations": {
"message": "Organizaciones"
},
"profile.label.saving": {
"message": "Guardando..."
},
"profile.meta.description": {
"message": "Descargar los proyectos de {username} en Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Descarga los proyectos en Modrinth de {username}"
},
"profile.official-account": {
"message": "Cuenta oficial de Modrinth"
},
"profile.official-account.bio": {
"message": "La cuenta de usuario oficial de Modrinth. Obtén soporte en <support-link></support-link> o vía correo en <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> seguidor} other {<stat>{count}</stat> seguidores}}"
},
"profile.user-id": {
"message": "ID de usuario: {id}"
},
"project-member-header.error-decline": {
"message": "No se ha podido rechazar la invitación del equipo"
},
@@ -3164,9 +3059,6 @@
"project.moderation.admonition.under-review.body.3": {
"message": "Aún puedes modificar tu proyecto, no afectará tu posición en la cola."
},
"project.moderation.admonition.under-review.body.4": {
"message": "Nuestro objetivo es revisar envíos en un plazo de 24-48 horas, pero algunos proyectos pueden sufrir retrasos. Esto no indica que haya algún problema con tu envío."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>¡Apreciamos tu paciencia mientras nuestros moderadores trabajan duro para mantener Modrinth seguro, y estaremos encantados de poder ayudarte a compartir tu contenido! 💚</emphasis>"
},
@@ -4061,15 +3953,9 @@
"settings.authorizations.about-this-app": {
"message": "Acerca de esta aplicación"
},
"settings.authorizations.by": {
"message": "por"
},
"settings.authorizations.description": {
"message": "Cuando autorizas una aplicación con tu cuenta de Modrinth, le concedes acceso a tu cuenta. Puedes gestionar y revisar el acceso a tu cuenta aquí en cualquier momento."
},
"settings.authorizations.empty-state": {
"message": "Por el momento no podemos mostrar tus aplicaciones autorizadas, pero estamos trabajando para solucionar el problema. ¡Vuelve a visitar esta página más adelante!"
},
"settings.authorizations.head-title": {
"message": "Autorizaciones"
},
@@ -908,15 +908,6 @@
"moderation.page.reports": {
"message": "Raportit"
},
"profile.label.badges": {
"message": "Arvomerkit"
},
"profile.label.organizations": {
"message": "Organisaatiot"
},
"profile.user-id": {
"message": "Käyttäjätunnus: {id}"
},
"project-moderation-nags.required": {
"message": "Vaadittu"
},
@@ -2153,99 +2153,6 @@
"muralpay.warning.wallet-address": {
"message": "Pakisuri muli ng iyong wallet address. Ang mga pundong nahatid sa maling address ay hindi na mababawi."
},
"profile.bio.fallback.creator": {
"message": "Isang tagagawa sa Modrinth."
},
"profile.bio.fallback.user": {
"message": "Isang tagagamit sa Modrinth."
},
"profile.button.billing": {
"message": "Pamahalaan ang billing ng tagagamit"
},
"profile.button.edit-role": {
"message": "Baguhin ang tungkulin"
},
"profile.button.info": {
"message": "Tingang ang mga detalye ng tagagamit"
},
"profile.button.manage-projects": {
"message": "Pamahalaan ang mga proyekto"
},
"profile.button.remove-affiliate": {
"message": "Tanggalin bilang affiliate"
},
"profile.button.set-affiliate": {
"message": "Itakda bilang affiliate"
},
"profile.details.label.auth-providers": {
"message": "Mga auth provider"
},
"profile.details.label.email": {
"message": "Email"
},
"profile.details.label.email-verified": {
"message": "Napatunayan na email"
},
"profile.details.label.has-password": {
"message": "May password"
},
"profile.details.label.has-totp": {
"message": "May TOTP"
},
"profile.details.label.payment-methods": {
"message": "Mga paraan ng pagbabayad"
},
"profile.details.tooltip.email-not-verified": {
"message": "Hindi napatunayang email"
},
"profile.details.tooltip.email-verified": {
"message": "Napatunayan na email"
},
"profile.error.not-found": {
"message": "Hindi mahanap na tagagamit"
},
"profile.label.affiliate": {
"message": "Affiliate"
},
"profile.label.badges": {
"message": "Tsapa"
},
"profile.label.collection": {
"message": "Koleksiyon"
},
"profile.label.joined": {
"message": "Sumali"
},
"profile.label.no-collections": {
"message": "Walang mga koleksiyon ang tagagamit na ito!"
},
"profile.label.no-collections-auth": {
"message": "Wala kang koleksiyon.\nNais mo bang <create-link>lumikha ng isa</create-link>?"
},
"profile.label.no-projects": {
"message": "Walang mga proyekto ang tagagmit na ito!"
},
"profile.label.no-projects-auth": {
"message": "Wala kang proyekto.\nNais mo bang <create-link>lumikha ng isa</create-link>?"
},
"profile.label.organizations": {
"message": "Mga organisasyon"
},
"profile.label.saving": {
"message": "Sine-save..."
},
"profile.meta.description": {
"message": "Magdownload ng mga proyekto ni {username} sa Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Magdownload ng mga proyekto ni {username} sa Modrinth"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> follower ng proyekto} other {<stat>{count}</stat> na follower ng proyekto}}"
},
"profile.user-id": {
"message": "User ID: {id}"
},
"project-member-header.error-decline": {
"message": "Bigong matanggihan ang anyaya sa koponan"
},
@@ -3026,12 +2933,6 @@
"settings.authorizations.about-this-app": {
"message": "Tungkol sa app"
},
"settings.authorizations.by": {
"message": "ni/ng"
},
"settings.authorizations.empty-state": {
"message": "Kasalukuyang hindi namin mapapakita ang mga pinahintulutang app, kinukumpuni pa namin ito. Mangyaring bisitahin ang pahinang ito sa ibang pagkataon!"
},
"settings.authorizations.head-title": {
"message": "Mga pagpapahintulot"
},
+46 -139
View File
@@ -126,7 +126,7 @@
"message": "Période précédente"
},
"analytics.chart.controls.project-events": {
"message": "Événements projet"
"message": "Événements de projet"
},
"analytics.chart.controls.ratio": {
"message": "Ratio"
@@ -417,7 +417,7 @@
"message": "Téléchargements"
},
"analytics.stat.monetization-banner.body": {
"message": "Seules les vues et les téléchargements effectués via Modrinth sont éligibles à la monétisation et doivent passer un filtrage de prévention de la fraude. Les téléchargements de l'application Modrinth exigent également que l'utilisateur soit connecté. Parce que tous les projets ont un ratio similaire de téléchargements monétisés, vos revenus ne changeraient pas de manière significative si tous les téléchargements étaient comptés."
"message": "Seuls les vues et les téléchargements effectués via Modrinth sont éligibles à la monétisation et doivent passer un filtrage de prévention de la fraude. Les téléchargements de l'application Modrinth exigent également que l'utilisateur soit connecté. Parce que tous les projets ont un ratio similaire de téléchargements monétisés, vos revenus ne changeraient pas de manière significative si tous les téléchargements étaient comptés."
},
"analytics.stat.monetization-banner.learn-more": {
"message": "En savoir plus"
@@ -438,7 +438,7 @@
"message": "vs préc."
},
"analytics.stat.revenue": {
"message": "Revenue"
"message": "Revenus"
},
"analytics.stat.revenue-value": {
"message": "${value}"
@@ -450,7 +450,7 @@
"message": "Statistique non disponible pour la requête actuelle"
},
"analytics.stat.views": {
"message": "Vus"
"message": "Vues"
},
"analytics.table.csv.date-range": {
"message": "{start} à {end}"
@@ -1757,6 +1757,9 @@
"dashboard.creator-withdraw-modal.tremendous-details.withdrawal-amount-min-max": {
"message": "{min} montant de retrait minimum, {max} montant de retrait maximum."
},
"dashboard.creator-withdraw-modal.tremendous-details.withdrawal-amount-min-only": {
"message": "{min} montant de retrait minimum."
},
"dashboard.creator-withdraw-modal.withdraw-button": {
"message": "Retrait"
},
@@ -1941,19 +1944,19 @@
"message": "Signalements"
},
"dashboard.revenue.available-now": {
"message": "Disponible Maintenant"
"message": "Disponible maintenant"
},
"dashboard.revenue.balance": {
"message": "Balance"
"message": "Solde"
},
"dashboard.revenue.estimated-tooltip.msg1": {
"message": "Les revenus estimés peuvent être modifiés jusqu'à leur publication."
"message": "Les revenus estimés peuvent changer jusquà leur disponibilité."
},
"dashboard.revenue.estimated-tooltip.msg2": {
"message": "Cliquez pour lire comment Modrinth gère votre revenu."
"message": "Cliquez pour lire comment Modrinth gère vos revenus."
},
"dashboard.revenue.estimated-with-date": {
"message": "Estimé pour {date}"
"message": "Estimé pour le {date}"
},
"dashboard.revenue.processing": {
"message": "Traitement"
@@ -1983,7 +1986,7 @@
"message": "Transactions"
},
"dashboard.revenue.transactions.none": {
"message": "Aucune Transaction"
"message": "Aucune transaction"
},
"dashboard.revenue.transactions.none.desc": {
"message": "Vos paiements et retraits apparaîtront ici."
@@ -2037,7 +2040,7 @@
"message": "Projets"
},
"dashboard.sidebar.label.revenue": {
"message": "Revenu"
"message": "Revenus"
},
"dashboard.withdraw.completion.account": {
"message": "Compte"
@@ -2426,9 +2429,18 @@
"hosting-marketing.medal.text-secondary": {
"message": "Offre à durée limitée. Aucune carte de crédit requise. Disponible pour les serveurs américains."
},
"hosting-marketing.notification.error-fetching-payment-data-title": {
"message": "Erreur lors de la récupération des données de paiement"
},
"hosting-marketing.notification.invalid-product-text": {
"message": "Le produit sélectionné a été trouvé, mais certaines données nécessaires sont manquantes. Veuillez contacter le support."
},
"hosting-marketing.notification.invalid-product-title": {
"message": "Produit invalide"
},
"hosting-marketing.notification.server-capacity-full-text": {
"message": "Nous avons actuellement atteint notre capacité maximale. Veuillez réessayer plus tard."
},
"hosting-marketing.notification.server-capacity-full-title": {
"message": "Capacité maximale du serveur atteinte"
},
@@ -2892,7 +2904,7 @@
"message": "Projets"
},
"layout.nav.revenue": {
"message": "Revenu"
"message": "Revenus"
},
"layout.nav.saved-projects": {
"message": "Projets sauvegardés"
@@ -2910,13 +2922,13 @@
"message": "Vérification de l'adresse e-mail requise"
},
"modal.shared-instance.open-in-app.benefit.install": {
"message": "Automatiquement installer le jeu requis and le loader"
"message": "Installez automatiquement tout ce à quoi ils jouent"
},
"modal.shared-instance.open-in-app.benefit.join": {
"message": "Rejoindre l'instance partagée en un clic"
"message": "Jouez le même contenu que vos amis"
},
"modal.shared-instance.open-in-app.benefit.update": {
"message": "Gardez le contenu partagé à jour quand l'instance change"
"message": "Gardez le contenu partagé à jour dès qu'il change"
},
"modal.shared-instance.open-in-app.get-app": {
"message": "Obtenir l'application Modrinth"
@@ -2954,8 +2966,8 @@
"moderation.page.technicalReview": {
"message": "Revue technique"
},
"modpack-scan-modal.clear-all-groups": {
"message": "Effacer tous les groupes"
"modpack-scan-modal.delete-all-groups.proceed": {
"message": "Effacer"
},
"modpack-scan-modal.failed": {
"message": "Échec"
@@ -2988,11 +3000,14 @@
"message": "Scanner tous les fichiers"
},
"modpack-scan-modal.scan-error": {
"message": "Certains fichiers n'ont pas réussi à scanner : {error}"
"message": "Certains fichiers n'ont pas pu être scannés : \n\n{error}"
},
"modpack-scan-modal.scanning": {
"message": "Scan en cours..."
},
"modpack-scan-modal.success": {
"message": "Succès"
},
"modpack-scan-modal.title": {
"message": "Scan du modpack ({scanned}/{total} fichiers)"
},
@@ -3308,117 +3323,6 @@
"organization.projects.none-with-create-prompt": {
"message": "Cette organisation n'a pas encore de projet. Souhaitez-vous en <create-link>créer un</create-link> ?"
},
"profile.bio.fallback.creator": {
"message": "Un créateur Modrinth."
},
"profile.bio.fallback.user": {
"message": "Un utilisateur Modrinth."
},
"profile.button.analytics": {
"message": "Voir les analyses de l'utilisateur"
},
"profile.button.billing": {
"message": "Gérer la facturation de lutilisateur"
},
"profile.button.edit-role": {
"message": "Modifier le rôle"
},
"profile.button.info": {
"message": "Afficher les détails de lutilisateur"
},
"profile.button.manage-projects": {
"message": "Gérer les projets"
},
"profile.button.remove-affiliate": {
"message": "Se Désaffilié"
},
"profile.button.set-affiliate": {
"message": "Se mettre comme affilié"
},
"profile.collection.projects-count": {
"message": "{count, plural,one {# projet} other {# projets}}"
},
"profile.details.label.auth-providers": {
"message": "Fournisseurs dauthentification"
},
"profile.details.label.email": {
"message": "Adresse e-mail"
},
"profile.details.label.email-verified": {
"message": "Adresse e-mail vérifiée"
},
"profile.details.label.has-password": {
"message": "Dispose d'un mot de passe"
},
"profile.details.label.has-totp": {
"message": "Dispose d'un TOTP"
},
"profile.details.label.payment-methods": {
"message": "Moyens de paiements"
},
"profile.details.tooltip.email-not-verified": {
"message": "Adresse e-mail non vérifiée"
},
"profile.details.tooltip.email-verified": {
"message": "Adresse e-mail vérifiée"
},
"profile.error.not-found": {
"message": "Utilisateur introuvable"
},
"profile.label.affiliate": {
"message": "Affilié"
},
"profile.label.badges": {
"message": "Badges"
},
"profile.label.collection": {
"message": "Collection"
},
"profile.label.download-count": {
"message": "{count, plural, one {téléchargement} other {téléchargements}}"
},
"profile.label.joined": {
"message": "Rejoint"
},
"profile.label.no-collections": {
"message": "Cet utilisateur n'a aucune collection !"
},
"profile.label.no-collections-auth": {
"message": "Vous n'avez aucune collection.\nVoulez-vous en <create-link>créer une</create-link> ?"
},
"profile.label.no-projects": {
"message": "Cet utilisateur n'a aucun projet !"
},
"profile.label.no-projects-auth": {
"message": "Vous n'avez aucun projet.\nVoulez-vous en <create-link>créer un</create-link> ?"
},
"profile.label.organizations": {
"message": "Organisations"
},
"profile.label.project-count": {
"message": "{count, plural, one {projet} other {projets}}"
},
"profile.label.saving": {
"message": "Sauvegarde en cours..."
},
"profile.meta.description": {
"message": "Téléchargez les projets de {username} sur Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Téléchargez les projets de {username} sur Modrinth"
},
"profile.official-account": {
"message": "Compte Modrinth Officiel"
},
"profile.official-account.bio": {
"message": "Le compte utilisateur officiel de Modrinth. Obtenez de laide via <support-link></support-link> ou par e-mail à <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> personne adore} other {<stat>{count}</stat> personnes adorent}}"
},
"profile.user-id": {
"message": "ID utilisateur : {id}"
},
"project-member-header.error-decline": {
"message": "Échec du refus de linvitation à l’équipe"
},
@@ -3767,9 +3671,6 @@
"project.moderation.admonition.under-review.body.3": {
"message": "Vous pouvez toujours modifier votre projet, cela n'affectera pas votre position dans la file d'attente."
},
"project.moderation.admonition.under-review.body.4": {
"message": "Nous visons à examiner les soumissions dans les 24 à 48 heures, mais certains projets peuvent être menacés. Cela ne reflète pas un problème avec votre soumission."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>Nous apprécions votre patience pendant que nos modérateurs travaillent dur pour garder Modrinth en sécurité, et nous sommes impatients de vous aider à partager votre contenu !</emphasis>"
},
@@ -3890,6 +3791,12 @@
"project.settings.permissions.delete-all-groups": {
"message": "Supprimer tous les groupes"
},
"project.settings.permissions.delete-all-groups-confirmation.description": {
"message": "Cela supprimera définitivement {count, plural, one {# groupe d'attribution} other {tous les # groupes d'attribution}} de ce projet ainsi que tous les fichiers qu'{count, plural, one {il contient} other {ils contiennent}}. Cette action est irréversible."
},
"project.settings.permissions.delete-all-groups-confirmation.title": {
"message": "Supprimer tous les groupes d'attribution ?"
},
"project.settings.permissions.empty-state.description": {
"message": "Aucune des versions de votre projet ne contient de contenu externe, vous n'avez donc pas à vous soucier d'obtenir des autorisations."
},
@@ -4043,6 +3950,9 @@
"project.versions.copy-link-option": {
"message": "Copier le lien"
},
"project.versions.copy-maven-coordinates-option": {
"message": "Copier les coordonnées Maven"
},
"project.versions.delete-button": {
"message": "Supprimer"
},
@@ -4850,15 +4760,9 @@
"settings.authorizations.about-this-app": {
"message": "À propos de cette application"
},
"settings.authorizations.by": {
"message": "par"
},
"settings.authorizations.description": {
"message": "Lorsque vous autorisez une application avec votre compte Modrinth, vous lui accordez laccès à votre compte. Vous pouvez gérer et consulter les accès à votre compte ici à tout moment."
},
"settings.authorizations.empty-state": {
"message": "Nous ne pouvons pas afficher vos applications autorisées pour le moment, nous travaillons à résoudre ce problème. Veuillez revenir sur cette page ultérieurement !"
},
"settings.authorizations.head-title": {
"message": "Autorisations"
},
@@ -5273,6 +5177,9 @@
"shared-instance.invite.inviter.unknown": {
"message": "Un utilisateur Modrinth"
},
"shared-instance.invite.joined-count": {
"message": "{count, plural, one {# personne a} other {# personnes ont}} déjà rejoint"
},
"shared-instance.invite.loading": {
"message": "Chargement de l'invitation…"
},
@@ -5370,7 +5277,7 @@
"message": "Version supprimée"
},
"version.notification.packaging-success-text": {
"message": "Votre pack de données a été packagé avec succès en un mod ! Assurez vous de tester pour vérifier la présence d'erreurs."
"message": "Votre pack de données a été empaqueté avec succès en un mod ! Assurez-vous de le tester pour vérifier la présence d'erreurs."
},
"version.notification.packaging-success-title": {
"message": "Succès d'empaquetage"
@@ -1778,99 +1778,6 @@
"muralpay.warning.wallet-address": {
"message": "בדוק היטב את כתובת הארנק שלך. לא ניתן לשחזר כספים שנשלחו לכתובת שגויה."
},
"profile.bio.fallback.creator": {
"message": "יוצר ב-Modrinth."
},
"profile.bio.fallback.user": {
"message": "משתמש ב-Modrinth."
},
"profile.button.billing": {
"message": "נהל את חיוב המשתמש"
},
"profile.button.edit-role": {
"message": "עריכת תפקיד"
},
"profile.button.info": {
"message": "הצג את הפרטים של המשתמש"
},
"profile.button.manage-projects": {
"message": "ניהול פרויקטים"
},
"profile.button.remove-affiliate": {
"message": "הסרה מתוכנית השותפים"
},
"profile.button.set-affiliate": {
"message": "הגדר כשותף"
},
"profile.details.label.auth-providers": {
"message": "ספקי אימות זהות"
},
"profile.details.label.email": {
"message": "אימייל"
},
"profile.details.label.email-verified": {
"message": "כתובת האימייל אומתה"
},
"profile.details.label.has-password": {
"message": "יש סיסמה"
},
"profile.details.label.has-totp": {
"message": "אימות דו-שלבי פעיל"
},
"profile.details.label.payment-methods": {
"message": "שיטת תשלום"
},
"profile.details.tooltip.email-not-verified": {
"message": "כתובת האימייל טרם אומתה"
},
"profile.details.tooltip.email-verified": {
"message": "כתובת האימייל אומתה"
},
"profile.error.not-found": {
"message": "המשתמש לא נמצא"
},
"profile.label.affiliate": {
"message": "שותף או משתמש שותף"
},
"profile.label.badges": {
"message": "תגים"
},
"profile.label.collection": {
"message": "אוסף"
},
"profile.label.joined": {
"message": "הצטרף ב-"
},
"profile.label.no-collections": {
"message": "למשתמש זה אין אוספים!"
},
"profile.label.no-collections-auth": {
"message": "אין לך אוספים.\nהאם תרצה <create-link>ליצור אחד</create-link>?"
},
"profile.label.no-projects": {
"message": "למשתמש זה אין פרויקטים!"
},
"profile.label.no-projects-auth": {
"message": "אין לך פרויקטים.\nהאם תרצה <create-link>ליצור אחד</create-link>?"
},
"profile.label.organizations": {
"message": "ארגונים"
},
"profile.label.saving": {
"message": "שומר..."
},
"profile.meta.description": {
"message": "הורד את הפרויקטים של {username} ב-Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - הורד את הפרויקטים של {username} ב-Modrinth"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> project follower} other {<stat>{count}</stat> project followers}}"
},
"profile.user-id": {
"message": "מזהה משתמש: {id}"
},
"project-member-header.error-decline": {
"message": "הפעולה לדחיית ההזמנה לצוות נכשלה"
},
+26 -134
View File
@@ -588,7 +588,7 @@
"message": "{author} által"
},
"app-marketing.features.mod-management.description": {
"message": "A Modrinth könnyűvé teszi az összes telepített modjaidnak a kezelését egy helyen. Telepíthetsz, eltávolíthatsz és frissíthetsz modokat egyetlen kattintással."
"message": "A Modrinth könnyűvé teszi az összes telepített modod a kezelését egy helyen. Telepíthetsz, eltávolíthatsz és frissíthetsz modokat egyetlen kattintással."
},
"app-marketing.features.mod-management.installed-mods": {
"message": "Telepített modok"
@@ -804,13 +804,13 @@
"message": "Visszaállítási e-mail küldése"
},
"auth.reset-password.method-choice.description": {
"message": "Írd be az e-mail címedet az alábbi mezőbe, és küldünk neked egy hivatkozást, amivel vissza tudja állítani a fiókod."
"message": "Írd be az e-mail címedet az alábbi mezőbe, és küldünk neked egy hivatkozást, amivel vissza tudod állítani a fiókod."
},
"auth.reset-password.notification.email-sent.text": {
"message": "Egy e-mail el lett küldve önnek az email-címére amennyiben az email-cím el volt mente a fiókban."
"message": "Egy e-mail el lett küldve az e-mail címedre amennyiben az email-cím el volt mente a fiókodban."
},
"auth.reset-password.notification.email-sent.title": {
"message": "E-mail küldve"
"message": "E-mail eküldve"
},
"auth.reset-password.notification.password-reset.text": {
"message": "Most már be tud lépni a fiókjába az új jelszavával."
@@ -843,7 +843,7 @@
"message": "Kód beírása..."
},
"auth.sign-in.continue-with-email": {
"message": "Továbblépés Email-lel"
"message": "Folytatás e-maillel"
},
"auth.sign-in.continue-with-passkey": {
"message": "Továbblépés biztonsági kulccsal"
@@ -870,7 +870,7 @@
"message": "Korhatár"
},
"auth.sign-up.continue-with-email": {
"message": "Folytatás Email-lel"
"message": "Folytatás e-maillel"
},
"auth.sign-up.legal-dislaimer": {
"message": "Fiók létrehozásával elfogadod a Modrinth <terms-link>Felhasználási feltételeit</terms-link> és <privacy-policy-link>Adatvédelmi irányelveit</privacy-policy-link>."
@@ -915,10 +915,10 @@
"message": "Az e-mail cím hitelesítés sikertelen"
},
"auth.verify-email.notification.email-sent.description": {
"message": "Egy Emailt kapott egy linkkel fiókja hitelesítéséhez ezen az Email címen: {email}."
"message": "Egy e-mailt kaptál egy linkkel a fiókod hitelesítéséhez ezen az e-mail címen: {email}."
},
"auth.verify-email.notification.email-sent.title": {
"message": "Email elküldve"
"message": "E-mail eküldve"
},
"auth.verify-email.notification.error-occurred.title": {
"message": "Egy hiba történt"
@@ -930,7 +930,7 @@
"message": "E-mail cím hitelesítése"
},
"auth.verify-email.title": {
"message": "Email-cím hitelesítése"
"message": "E-mail cím hitelesítése"
},
"collection.aria-label.upload-icon": {
"message": "Ikon feltöltése"
@@ -954,7 +954,7 @@
"message": "Ikon kiválasztása"
},
"collection.button.unfollow-project": {
"message": "Projektek kikövetése"
"message": "Projekt kikövetése"
},
"collection.delete-modal.description": {
"message": "Ezzel véglegesen törlöd ezt a gyűjteményt. Ez a művelet nem vonható vissza."
@@ -1653,7 +1653,7 @@
"message": "Válassz kategóriát a folytatáshoz"
},
"dashboard.creator-withdraw-modal.tremendous-details.unverified-email-header": {
"message": "Hitelesítetlen e-mail"
"message": "Hitelesítetlen e-mail cím"
},
"dashboard.creator-withdraw-modal.tremendous-details.unverified-email-message": {
"message": "A kiszállítási e-mail cím, amit megadtál nincs hozzákapcsolva a Modrinth fiókodhoz. A Modrinth nem tudja visszaállítani a jutalmakat, amik rossz e-mail címre lettek küldve."
@@ -1974,7 +1974,7 @@
"message": "A pénzfelvétel előtt ellenőrizned kell az e-mail címedet."
},
"dashboard.withdraw.error.email-verification.title": {
"message": "E-mail hítelesítés szükséges"
"message": "E-mail hitelesítés szükséges"
},
"dashboard.withdraw.error.generic.text": {
"message": "Nem tudtuk elküldeni a kifizetési kérelmed, kérjük, ellenőrizd az adataid, vagy vedd fel a kapcsolatot az ügyfélszolgálattal.\n{error}"
@@ -2526,7 +2526,7 @@
"message": "Technikai áttekintés"
},
"layout.avatar.alt": {
"message": "Avatárod"
"message": "Az avatárod"
},
"layout.banner.account-action": {
"message": "Fiók akció szükséges"
@@ -2741,6 +2741,12 @@
"layout.nav.upgrade-to-modrinth-plus": {
"message": "Frissíts a Modrinth+-ra"
},
"layout.publish.email-verification-required.description": {
"message": "A Modrinthon való közzététel előtt hitelesítened kell az e-mail címedet."
},
"layout.publish.email-verification-required.title": {
"message": "E-mail hitelesítés szükséges"
},
"moderation.moderate": {
"message": "Moderálás"
},
@@ -2783,9 +2789,6 @@
"modpack-scan-modal.scan-all-files": {
"message": "Összes fájl beolvasása"
},
"modpack-scan-modal.scan-error": {
"message": "Pár fájlt nem sikerült beolvasni: {error}"
},
"modpack-scan-modal.scanning": {
"message": "Beolvasás..."
},
@@ -3065,117 +3068,6 @@
"organization.projects.none-with-create-prompt": {
"message": "Ennek a szervezetnek még nincsenek projektjei. Szeretnél <create-link>létrehozni egyet</create-link>?"
},
"profile.bio.fallback.creator": {
"message": "Egy Modrinth fejlesztő."
},
"profile.bio.fallback.user": {
"message": "Egy Modrinth felhasználó."
},
"profile.button.analytics": {
"message": "Felhasználó statisztikáinak megtekintése"
},
"profile.button.billing": {
"message": "Felhasználói számlázás kezelése"
},
"profile.button.edit-role": {
"message": "Szerep szerkesztése"
},
"profile.button.info": {
"message": "Felhasználói adatok megtekintése"
},
"profile.button.manage-projects": {
"message": "Projektek kezelése"
},
"profile.button.remove-affiliate": {
"message": "Társult vállalkozás törlése"
},
"profile.button.set-affiliate": {
"message": "Beállítás társult vállalkozás ként"
},
"profile.collection.projects-count": {
"message": "{count} projekt"
},
"profile.details.label.auth-providers": {
"message": "Auth szolgáltatók"
},
"profile.details.label.email": {
"message": "E-mail"
},
"profile.details.label.email-verified": {
"message": "E-mail cím ellenőrizve"
},
"profile.details.label.has-password": {
"message": "Van jelszó"
},
"profile.details.label.has-totp": {
"message": "Van TOTP"
},
"profile.details.label.payment-methods": {
"message": "Kifizetési módok"
},
"profile.details.tooltip.email-not-verified": {
"message": "Nem hitelesített email"
},
"profile.details.tooltip.email-verified": {
"message": "E-mail cím hitelesítve"
},
"profile.error.not-found": {
"message": "Felhasználó nem található"
},
"profile.label.affiliate": {
"message": "Társult vállalkozás"
},
"profile.label.badges": {
"message": "Jelvények"
},
"profile.label.collection": {
"message": "Gyűjtemény"
},
"profile.label.download-count": {
"message": "letöltés"
},
"profile.label.joined": {
"message": "Csatlakozott"
},
"profile.label.no-collections": {
"message": "Ennek a felhasználónak nincsenek gyűjteményei!"
},
"profile.label.no-collections-auth": {
"message": "Nincsenek gyűjteményeid.\nSzeretnél <create-link>létrehozni egyet</create-link>?"
},
"profile.label.no-projects": {
"message": "Ennek a felhasználónak nincsenek projektjei!"
},
"profile.label.no-projects-auth": {
"message": "Nincsenek projektjeid.\nSzeretnél <create-link>létrehozni egyet</create-link>?"
},
"profile.label.organizations": {
"message": "Szervezetek"
},
"profile.label.project-count": {
"message": "projekt"
},
"profile.label.saving": {
"message": "Mentés..."
},
"profile.meta.description": {
"message": "Töltsd le {username} projektjeit a Modrinthon"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Töltsd le {username} projektjeit a Modrinthon"
},
"profile.official-account": {
"message": "Hivatalos Modrinth fiók"
},
"profile.official-account.bio": {
"message": "A hivatalos Modrinth fiók. Kérj segítséget a <support-link></support-link> oldalon, vagy e-mailben: <email></email>"
},
"profile.stats.projects-followers": {
"message": "<stat>{count}</stat> projektkövető"
},
"profile.user-id": {
"message": "Felhasználói azonosító: {id}"
},
"project-member-header.error-decline": {
"message": "Nem sikerült elutasítani a meghívást"
},
@@ -3614,6 +3506,9 @@
"project.settings.permissions.sort.status": {
"message": "Állapot"
},
"project.settings.tags.multiple-resolution-tags-warning": {
"message": "{count} felbontási címkét választottál ki ({tags}). A forráscsomagoknak általában csak egy felbontási címkéjük lehet."
},
"project.settings.title": {
"message": "Beállítások"
},
@@ -4239,7 +4134,7 @@
"message": "Átírányítás URI hozzáadása"
},
"settings.applications.button.cancel": {
"message": "Megszakítás"
"message": "Mégse"
},
"settings.applications.button.create": {
"message": "Alkalmazás létrehozása"
@@ -4328,15 +4223,9 @@
"settings.authorizations.about-this-app": {
"message": "Az alkalmazásról"
},
"settings.authorizations.by": {
"message": "által"
},
"settings.authorizations.description": {
"message": "Amikor engedélyezel egy alkalmazást a Modrinth fiókoddal, hozzáférést biztosítasz számára a fiókodhoz. A fiókodhoz való hozzáférést bármikor kezelheted és ellenőrizheted itt."
},
"settings.authorizations.empty-state": {
"message": "Jelenleg nem tudjuk megjeleníteni az azonosított alkalmazásokat, dolgozunk a probléma megoldásán. Kérlek látogasd meg ezt az oldalt később!"
},
"settings.authorizations.head-title": {
"message": "Engedélyek"
},
@@ -4736,6 +4625,9 @@
"settings.sidebar.label.display": {
"message": "Megjelenés"
},
"shared-instance.invite.joined-count": {
"message": "{count} személy már csatlakozott"
},
"ui.latest-news-row.latest-news": {
"message": "A legújabb hírek a Modrinthról"
},
@@ -2159,99 +2159,6 @@
"muralpay.warning.wallet-address": {
"message": "Periksa ulang alamat dompet Anda. Dana yang terkirim ke alamat yang salah tidak dapat dipulihkan."
},
"profile.bio.fallback.creator": {
"message": "Seorang kreator Modrinth."
},
"profile.bio.fallback.user": {
"message": "Seorang pengguna Modrinth."
},
"profile.button.billing": {
"message": "Kelola penagihan pengguna"
},
"profile.button.edit-role": {
"message": "Ubah peran"
},
"profile.button.info": {
"message": "Lihat perincian pengguna"
},
"profile.button.manage-projects": {
"message": "Kelola proyek"
},
"profile.button.remove-affiliate": {
"message": "Hapus sebagai afiliasi"
},
"profile.button.set-affiliate": {
"message": "Tetapkan sebagai afiliasi"
},
"profile.details.label.auth-providers": {
"message": "Penyedia autentikasi"
},
"profile.details.label.email": {
"message": "Sur-el"
},
"profile.details.label.email-verified": {
"message": "Sur-el terverifikasi"
},
"profile.details.label.has-password": {
"message": "Memiliki kata sandi"
},
"profile.details.label.has-totp": {
"message": "Memiliki TOTP"
},
"profile.details.label.payment-methods": {
"message": "Metode pembayaran"
},
"profile.details.tooltip.email-not-verified": {
"message": "Sur-el tidak terverifikasi"
},
"profile.details.tooltip.email-verified": {
"message": "Sur-el terverifikasi"
},
"profile.error.not-found": {
"message": "Pengguna tidak ditemukan"
},
"profile.label.affiliate": {
"message": "Afiliasi"
},
"profile.label.badges": {
"message": "Lencana"
},
"profile.label.collection": {
"message": "Koleksi"
},
"profile.label.joined": {
"message": "Telah bergabung"
},
"profile.label.no-collections": {
"message": "Pengguna ini tidak memiliki koleksi!"
},
"profile.label.no-collections-auth": {
"message": "Anda tidak memiliki koleksi apa pun.\nApakah Anda ingin <create-link>membuatnya</create-link>?"
},
"profile.label.no-projects": {
"message": "Pengguna ini tidak memiliki proyek!"
},
"profile.label.no-projects-auth": {
"message": "Anda tidak memiliki proyek apa pun.\nApakah Anda ingin <create-link>membuatnya</create-link>?"
},
"profile.label.organizations": {
"message": "Organisasi"
},
"profile.label.saving": {
"message": "Menyimpan..."
},
"profile.meta.description": {
"message": "Unduh proyek milik {username} di Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Unduh proyek milik {username} di Modrinth"
},
"profile.stats.projects-followers": {
"message": "{count, plural, other {<stat>{count}</stat> pengikut proyek}}"
},
"profile.user-id": {
"message": "Pengenal Pengguna: {id}"
},
"project-member-header.error-decline": {
"message": "Gagal menolak undangan tim"
},
+34 -124
View File
@@ -2123,6 +2123,12 @@
"dashboard.withdraw.error.minimum-not-met.title": {
"message": "Importo troppo basso"
},
"dashboard.withdraw.error.payout-method-disabled.text": {
"message": "Questo metodo di prelievo è stato disabilitato dal PSP. Usane uno diverso o contatta l'assistenza."
},
"dashboard.withdraw.error.payout-method-disabled.title": {
"message": "Metodo di prelievo non disponibile"
},
"dashboard.withdraw.error.paypal-country-mismatch.text": {
"message": "Si prega di usare l'opzione di trasferimento PayPal corretta per la tua regione (Stati Uniti o Internazionale)."
},
@@ -2913,13 +2919,13 @@
"message": "Verifica email richiesta"
},
"modal.shared-instance.open-in-app.benefit.install": {
"message": "Installa automaticamente il gioco e il loader richiesto"
"message": "Installa automaticamente ciò a cui stanno giocando"
},
"modal.shared-instance.open-in-app.benefit.join": {
"message": "Entra nell'istanza condivisa in un clic"
"message": "Gioca allo stesso modo dei tuoi amici"
},
"modal.shared-instance.open-in-app.benefit.update": {
"message": "Mantieni i contenuti condivisi aggiornati con l'istanza"
"message": "Aggiorna i contenuti non appena lo fanno loro"
},
"modal.shared-instance.open-in-app.get-app": {
"message": "Scarica Modrinth App"
@@ -2957,8 +2963,23 @@
"moderation.page.technicalReview": {
"message": "Revisione tecnica"
},
"modpack-scan-modal.clear-all-groups": {
"message": "Svuota gruppi"
"modpack-scan-modal.batch.label": {
"message": "{amount} alla volta"
},
"modpack-scan-modal.batch.placeholder": {
"message": "Ammontare"
},
"modpack-scan-modal.delete-all-groups-confirmation.description": {
"message": "Questi gruppi di attribuzione e i file all'interno saranno rimossi per sempre da questo progetto. Quest'azione non può essere annullata."
},
"modpack-scan-modal.delete-all-groups.error": {
"message": "Errore nell'eliminazione dei gruppi: {error}"
},
"modpack-scan-modal.delete-all-groups.proceed": {
"message": "Procedi"
},
"modpack-scan-modal.delete-all-groups.success": {
"message": "Tutti i gruppi eliminati con successo."
},
"modpack-scan-modal.failed": {
"message": "Errore"
@@ -2991,11 +3012,14 @@
"message": "Scansiona tutto"
},
"modpack-scan-modal.scan-error": {
"message": "Alcuni file non sono stati scansionati: {error}"
"message": "Alcuni file non sono stati scansionati: \n\n{error}"
},
"modpack-scan-modal.scanning": {
"message": "Scansione..."
},
"modpack-scan-modal.success": {
"message": "Successo"
},
"modpack-scan-modal.title": {
"message": "Scansione del pacchetto ({scanned}/{total} file)"
},
@@ -3311,117 +3335,6 @@
"organization.projects.none-with-create-prompt": {
"message": "Questa organizzazione non ha alcun progetto. Vorresti <create-link>crearne uno</create-link>?"
},
"profile.bio.fallback.creator": {
"message": "Creatore su Modrinth."
},
"profile.bio.fallback.user": {
"message": "Utente di Modrinth."
},
"profile.button.analytics": {
"message": "Mostra analitiche"
},
"profile.button.billing": {
"message": "Gestisci pagamento utente"
},
"profile.button.edit-role": {
"message": "Modifica ruolo"
},
"profile.button.info": {
"message": "Mostra dettagli utente"
},
"profile.button.manage-projects": {
"message": "Gestisci progetti"
},
"profile.button.remove-affiliate": {
"message": "Rimuovi da affiliato"
},
"profile.button.set-affiliate": {
"message": "Imposta come affiliato"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# progetto} other {# progetti}}"
},
"profile.details.label.auth-providers": {
"message": "Fornitori autenticazione"
},
"profile.details.label.email": {
"message": "Email"
},
"profile.details.label.email-verified": {
"message": "Email verificata"
},
"profile.details.label.has-password": {
"message": "Usa una password"
},
"profile.details.label.has-totp": {
"message": "Usa TOTP"
},
"profile.details.label.payment-methods": {
"message": "Metodi di pagamento"
},
"profile.details.tooltip.email-not-verified": {
"message": "Email non verificata"
},
"profile.details.tooltip.email-verified": {
"message": "Email verificata"
},
"profile.error.not-found": {
"message": "Utente non trovato"
},
"profile.label.affiliate": {
"message": "Affiliato"
},
"profile.label.badges": {
"message": "Distintivi"
},
"profile.label.collection": {
"message": "Raccolta"
},
"profile.label.download-count": {
"message": "download"
},
"profile.label.joined": {
"message": "Iscrizione"
},
"profile.label.no-collections": {
"message": "Questo utente non ha raccolte!"
},
"profile.label.no-collections-auth": {
"message": "Non hai alcuna raccolta.\nNe vorresti <create-link>creare una</create-link>?"
},
"profile.label.no-projects": {
"message": "Questo utente non ha progetti!"
},
"profile.label.no-projects-auth": {
"message": "Non hai alcun progetto. Ne vorresti <create-link>creare uno</create-link>?"
},
"profile.label.organizations": {
"message": "Organizzazioni"
},
"profile.label.project-count": {
"message": "{count, plural, one {progetto} other {progetti}}"
},
"profile.label.saving": {
"message": "Salvataggio..."
},
"profile.meta.description": {
"message": "Scarica i progetti di {username} su Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Scarica i progetti di {username} su Modrinth"
},
"profile.official-account": {
"message": "Account Modrinth ufficiale"
},
"profile.official-account.bio": {
"message": "L'account ufficiale di Modrinth. Ricevi assistenza presso <support-link></support-link> o tramite mail presso <email></email>"
},
"profile.stats.projects-followers": {
"message": "<stat>{count, plural, =0 {Nessun} other {{count}}}</stat> follower del progetto"
},
"profile.user-id": {
"message": "ID utente: {id}"
},
"project-member-header.error-decline": {
"message": "Errore nel rifiutare l'invito al team"
},
@@ -3771,7 +3684,10 @@
"message": "Puoi ancora modificare il progetto; non influirà sulla tua posizione in coda."
},
"project.moderation.admonition.under-review.body.4": {
"message": "Puntiamo a revisionare i progetti entro le 24-48 ore, ma potrebbero esserci dei ritardi; ciò non vuol dire che abbiamo trovato un problema."
"message": "Puntiamo a revisionare i progetti entro le 2448 ore, ma potrebbero esserci dei ritardi; Ciò non vuol dire che abbiamo trovato un problema."
},
"project.moderation.admonition.under-review.body.4.alt-week": {
"message": "Puntiamo a revisionare i progetti entro una settimana, ma potrebbero esserci dei ritardi. Ciò non vuol dire che abbiamo trovato un problema."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>Apprezziamo la tua pazienza. Mentre i nostri moderatori si impegnano a tenere Modrinth un posto sicuro, non vediamo l'ora di aiutare a condividere i tuoi contenuti! 💚</emphasis>"
@@ -4844,15 +4760,9 @@
"settings.authorizations.about-this-app": {
"message": "Info sull'app"
},
"settings.authorizations.by": {
"message": "da"
},
"settings.authorizations.description": {
"message": "Quando autorizzi un'applicazione, le concedi l'accesso al tuo account Modrinth. Qui puoi gestirne e controllarne l'accesso in qualsiasi momento."
},
"settings.authorizations.empty-state": {
"message": "Al momento non riusciamo a mostrare le tue app autorizzate, stiamo lavorando per risolvere il problema. Ritorna più tardi!"
},
"settings.authorizations.head-title": {
"message": "Autorizzazioni"
},
+93 -99
View File
@@ -45,10 +45,10 @@
"message": "依存プロジェクトのタイプ"
},
"analytics.breakdown.download-reason": {
"message": "ダウンロードの追加情報"
"message": "ダウンロードの理由"
},
"analytics.breakdown.download-source": {
"message": "プラットフォーム"
"message": "ソース"
},
"analytics.breakdown.game-version": {
"message": "ゲームのバージョン"
@@ -57,7 +57,7 @@
"message": "内訳"
},
"analytics.breakdown.loader": {
"message": "ゲームのローダー"
"message": "ローダー"
},
"analytics.breakdown.members": {
"message": "メンバー"
@@ -284,6 +284,9 @@
"analytics.project.all": {
"message": "全てのプロジェクト"
},
"analytics.project.icon-alt": {
"message": "{name}のアイコン"
},
"analytics.project.select": {
"message": "プロジェクトを選択"
},
@@ -608,6 +611,33 @@
"auth.authorize.redirect-url": {
"message": "<redirect-url>{url}</redirect-url> に自動的に転送されます"
},
"auth.create-account.age-requirement.warning-title": {
"message": "年齢制限"
},
"auth.create-account.complete-sign-up": {
"message": "サインアップを完了する"
},
"auth.create-account.date-of-birth.invalid.title": {
"message": "入力された生年月日が無効です"
},
"auth.create-account.date-of-birth.label": {
"message": "生年月日"
},
"auth.create-account.date-of-birth.placeholder": {
"message": "生年月日を選んでください"
},
"auth.create-account.date-of-birth.required.text": {
"message": "続行する前に生年月日を入力してください。"
},
"auth.create-account.date-of-birth.required.title": {
"message": "生年月日が必要です"
},
"auth.create-account.date-of-birth.under13-helper": {
"message": "Modrinthアカウントを作成するための年齢を満たしていません。"
},
"auth.create-account.info-panel.text": {
"message": "入力された生年月日は保存されません。登録時にCOPPA(児童オンラインプライバシー保護法)への準拠を確認するためにのみ使用いたします。"
},
"auth.create-account.page-title": {
"message": "アカウントの作成"
},
@@ -662,6 +692,9 @@
"auth.sign-in.continue-with-email": {
"message": "メールアドレスで続ける"
},
"auth.sign-in.continue-with-passkey": {
"message": "パスキーで続ける"
},
"auth.sign-in.create-account": {
"message": "サインアップ"
},
@@ -671,12 +704,18 @@
"auth.sign-in.last-sign-in": {
"message": "最後に使用"
},
"auth.sign-in.no-account": {
"message": "アカウントを持っていませんか?"
},
"auth.sign-in.sign-in-with": {
"message": "Modrinthへサインイン"
},
"auth.sign-in.title": {
"message": "ログイン"
},
"auth.sign-up.age-requirement.warning-title": {
"message": "年齢制限"
},
"auth.sign-up.continue-with-email": {
"message": "メールアドレスで続ける"
},
@@ -698,6 +737,9 @@
"auth.verify-email.action.account-settings": {
"message": "アカウント設定"
},
"auth.verify-email.action.discover-mods": {
"message": "早速Modを探す"
},
"auth.verify-email.already-verified.description": {
"message": "メールアドレスはすでに承認されています!"
},
@@ -731,6 +773,9 @@
"collection.aria-label.upload-icon": {
"message": "アイコンをアップロード"
},
"collection.button.discover-mods": {
"message": "Modを探す"
},
"collection.button.edit-icon": {
"message": "アイコンを編集"
},
@@ -803,6 +848,9 @@
"conversation-thread.action.send": {
"message": "送信"
},
"conversation-thread.action.set-to-draft": {
"message": "下書きとして保存"
},
"conversation-thread.reply-editor.placeholder.send": {
"message": "メッセージを送る…"
},
@@ -815,6 +863,27 @@
"create-project-version.create-modal.stage.add-files.metadata-tab": {
"message": "メタデータ"
},
"create-project-version.create-modal.stage.details.details-tab": {
"message": "詳細"
},
"create-project-version.create-modal.stage.details.files-tab": {
"message": "ファイル"
},
"create-project-version.create-modal.stage.details.metadata-tab": {
"message": "メタデータ"
},
"create-project-version.create-modal.stage.details.version-changelog": {
"message": "バージョン履歴"
},
"create-project-version.create-modal.stage.metadata.details-tab": {
"message": "詳細"
},
"create-project-version.create-modal.stage.metadata.edit-button": {
"message": "編集"
},
"create-project-version.create-modal.stage.metadata.files-tab": {
"message": "ファイル"
},
"create-project-version.create-modal.stage.metadata.uploaded-files": {
"message": "アップロードされたファイル"
},
@@ -917,6 +986,9 @@
"create.project.name-placeholder": {
"message": "プロジェクト名を入力…"
},
"create.project.organization-icon-alt": {
"message": "{name}アイコン"
},
"create.project.owner-description": {
"message": "プロジェクトオーナーを自分自身または自身が所属している組織に設定してください。"
},
@@ -947,6 +1019,9 @@
"create.project.type-server": {
"message": "サーバー"
},
"create.project.unknown-user": {
"message": "不明なユーザー"
},
"create.project.url-label": {
"message": "URL"
},
@@ -1289,6 +1364,9 @@
"dashboard.discord-roles.banner.cta": {
"message": "Discordをリンクする"
},
"dashboard.discord-roles.banner.title": {
"message": "Discordのロールを獲得"
},
"dashboard.discord-roles.role.creator": {
"message": "クリエイター"
},
@@ -2267,6 +2345,9 @@
"layout.footer.social.x": {
"message": "X"
},
"layout.footer.unknown-commit": {
"message": "不明"
},
"layout.menu-toggle.action": {
"message": "メニューを切り替える"
},
@@ -2330,6 +2411,15 @@
"layout.nav.upgrade-to-modrinth-plus": {
"message": "Modrinth+にアップグレード"
},
"modal.shared-instance.open-in-app.get-app": {
"message": "Modrinth Appを取得"
},
"modal.shared-instance.open-in-app.title": {
"message": "Modrinth Appで開く"
},
"modal.shared-instance.open-in-app.why-use": {
"message": "Modrinth Appの良いところ"
},
"moderation.moderate": {
"message": "適度"
},
@@ -2639,96 +2729,6 @@
"organization.project-transfer.type-column": {
"message": "タイプ"
},
"profile.bio.fallback.creator": {
"message": "Modrinthの作成者。"
},
"profile.bio.fallback.user": {
"message": "Modrinthのユーザー。"
},
"profile.button.billing": {
"message": "ユーザー課金管理"
},
"profile.button.edit-role": {
"message": "ロールを編集"
},
"profile.button.info": {
"message": "ユーザー情報を表示"
},
"profile.button.manage-projects": {
"message": "プロジェクトを管理"
},
"profile.button.remove-affiliate": {
"message": "アフィリエイトを解除する"
},
"profile.button.set-affiliate": {
"message": "アフィリエイトとして設定する"
},
"profile.details.label.auth-providers": {
"message": "認証プロバイダー"
},
"profile.details.label.email": {
"message": "メールドレス"
},
"profile.details.label.email-verified": {
"message": "メールアドレス認証済み"
},
"profile.details.label.has-password": {
"message": "パスワードがすでにあります"
},
"profile.details.label.has-totp": {
"message": "TOTPがあります"
},
"profile.details.label.payment-methods": {
"message": "支払い方法"
},
"profile.details.tooltip.email-not-verified": {
"message": "メールアドレス未認証"
},
"profile.details.tooltip.email-verified": {
"message": "メールアドレス認証済み"
},
"profile.error.not-found": {
"message": "ユーザーが見つかりませんでした"
},
"profile.label.affiliate": {
"message": "アフィリエイト"
},
"profile.label.badges": {
"message": "バッジ"
},
"profile.label.collection": {
"message": "コレクション"
},
"profile.label.joined": {
"message": "参加: "
},
"profile.label.no-collections": {
"message": "このユーザーのコレクションはありません!"
},
"profile.label.no-collections-auth": {
"message": "コレクションがありません。\n <create-link>コレクションを作成しますか</create-link>"
},
"profile.label.no-projects": {
"message": "このユーザーのプロジェクトはありません!"
},
"profile.label.no-projects-auth": {
"message": "プロジェクトがありません\nプロジェクトを<create-link>作成しますか</create-link>"
},
"profile.label.organizations": {
"message": "組織"
},
"profile.label.saving": {
"message": "保存中…"
},
"profile.meta.description": {
"message": "Modrinthで{username}のプロジェクトをダウンロードする"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Modrinthで{username}のプロジェクトをダウンロードする"
},
"profile.user-id": {
"message": "ユーザーID: {id}"
},
"project-member-header.error-decline": {
"message": "チームへの招待の辞退に失敗しました"
},
@@ -3713,15 +3713,9 @@
"settings.authorizations.about-this-app": {
"message": "このアプリについて"
},
"settings.authorizations.by": {
"message": "作成者"
},
"settings.authorizations.description": {
"message": "Modrinthアカウントでアプリケーションを承認することにより、アプリケーションがあなたのアカウントにアクセスできるようになります。 アクセス権はいつでも確認でき、変更可能です。"
},
"settings.authorizations.empty-state": {
"message": "現在承認済みアプリを表示することができません。現在修正中のため、また後ほど確認ください!"
},
"settings.authorizations.head-title": {
"message": "承認"
},
-126
View File
@@ -2942,9 +2942,6 @@
"moderation.page.technicalReview": {
"message": "기술 리뷰"
},
"modpack-scan-modal.clear-all-groups": {
"message": "모든 그룹 삭제"
},
"modpack-scan-modal.failed": {
"message": "실패"
},
@@ -2975,9 +2972,6 @@
"modpack-scan-modal.scan-all-files": {
"message": "전체 파일 스캔"
},
"modpack-scan-modal.scan-error": {
"message": "일부 파일을 스캔하지 못했습니다: {error}"
},
"modpack-scan-modal.scanning": {
"message": "스캔중..."
},
@@ -3296,117 +3290,6 @@
"organization.projects.none-with-create-prompt": {
"message": "이 조직에는 아직 프로젝트가 없습니다. <create-link>하나 생성하시겠습니까?</create-link>?"
},
"profile.bio.fallback.creator": {
"message": "Modrinth 창작자입니다."
},
"profile.bio.fallback.user": {
"message": "Modrinth 사용자입니다."
},
"profile.button.analytics": {
"message": "사용자 분석 보기"
},
"profile.button.billing": {
"message": "사용자 청구 관리"
},
"profile.button.edit-role": {
"message": "역할 수정"
},
"profile.button.info": {
"message": "사용자 상세 정보 보기"
},
"profile.button.manage-projects": {
"message": "프로젝트 관리"
},
"profile.button.remove-affiliate": {
"message": "제휴 취소"
},
"profile.button.set-affiliate": {
"message": "제휴사로 설정"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {프로젝트 #개} other {프로젝트 #개}}"
},
"profile.details.label.auth-providers": {
"message": "인증 제공자"
},
"profile.details.label.email": {
"message": "이메일"
},
"profile.details.label.email-verified": {
"message": "이메일 인증됨"
},
"profile.details.label.has-password": {
"message": "비밀번호 사용"
},
"profile.details.label.has-totp": {
"message": "TOTP 사용"
},
"profile.details.label.payment-methods": {
"message": "결제 수단"
},
"profile.details.tooltip.email-not-verified": {
"message": "이메일이 인증되지 않음"
},
"profile.details.tooltip.email-verified": {
"message": "이메일 인증됨"
},
"profile.error.not-found": {
"message": "사용자를 찾을 수 없습니다"
},
"profile.label.affiliate": {
"message": "제휴"
},
"profile.label.badges": {
"message": "배지"
},
"profile.label.collection": {
"message": "컬렉션"
},
"profile.label.download-count": {
"message": ""
},
"profile.label.joined": {
"message": "가입"
},
"profile.label.no-collections": {
"message": "이 사용자는 컬렉션이 없습니다!"
},
"profile.label.no-collections-auth": {
"message": "아직 컬렉션이 없습니다.\n<create-link>새 컬렉션</create-link>을 생성하시겠습니까?"
},
"profile.label.no-projects": {
"message": "이 사용자는 프로젝트가 없습니다!"
},
"profile.label.no-projects-auth": {
"message": "아직 프로젝트가 없습니다.\n<create-link>새 프로젝트</create-link>를 생성하시겠습니까?"
},
"profile.label.organizations": {
"message": "조직"
},
"profile.label.project-count": {
"message": ""
},
"profile.label.saving": {
"message": "저장..."
},
"profile.meta.description": {
"message": "Modrinth에서 {username}의 프로젝트 다운로드"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Modrinth에서 {username}의 프로젝트 다운로드"
},
"profile.official-account": {
"message": "공식 Modrinth 계정"
},
"profile.official-account.bio": {
"message": "Modrinth의 공식 사용자 계정입니다. <support-link></support-link> 또는 <email></email> 이메일을 통해 지원을 받으실 수 있습니다"
},
"profile.stats.projects-followers": {
"message": "{count, plural, other {<stat>{count}</stat> 프로젝트 팔로워}}"
},
"profile.user-id": {
"message": "사용자 ID: {id}"
},
"project-member-header.error-decline": {
"message": "팀 초대를 거절하지 못했습니다"
},
@@ -3755,9 +3638,6 @@
"project.moderation.admonition.under-review.body.3": {
"message": "프로젝트를 수정해도 대기열 우선 순위에는 영향을 미치지 않습니다."
},
"project.moderation.admonition.under-review.body.4": {
"message": "제출한 내용을 24~48시간 이내에 검토하는 것을 목표로 하고 있으나, 일부 프로젝트의 경우 지연될 수 있습니다. 이는 제출한 내용에 문제가 있다는 것을 의미하지 않습니다."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>운영진들이 Modrinth의 안전한 환경을 유지하기 위해 최선을 다하고 있는 동안 기다려 주셔서 감사합니다. 여러분의 콘텐츠를 공유하실 수 있도록 도와드릴 수 있기를 기대합니다! 💚</emphasis>"
},
@@ -4844,15 +4724,9 @@
"settings.authorizations.about-this-app": {
"message": "이 앱에 대해"
},
"settings.authorizations.by": {
"message": "제작자"
},
"settings.authorizations.description": {
"message": "Modrinth 계정으로 애플리케이션에 권한을 부여하면, 해당 앱이 귀하의 계정에 접근할 수 있게 됩니다. 여기에서 언제든지 계정 접근 권한을 관리하고 확인할 수 있습니다."
},
"settings.authorizations.empty-state": {
"message": "현재 승인한 애플리케이션을 표시할 수 없습니다. 이 문제를 해결하기 위해 노력 중입니다. 나중에 다시 확인해 주세요!"
},
"settings.authorizations.head-title": {
"message": "승인"
},
-108
View File
@@ -2684,105 +2684,6 @@
"muralpay.warning.wallet-address": {
"message": "Semak semula alamat dompet anda. Dana yang dihantar ke alamat yang salah tidak boleh dipulihkan."
},
"profile.bio.fallback.creator": {
"message": "Seorang pencipta Modrinth."
},
"profile.bio.fallback.user": {
"message": "Seorang pengguna Modrinth."
},
"profile.button.billing": {
"message": "Urus pengebilan pengguna"
},
"profile.button.edit-role": {
"message": "Sunting peranan"
},
"profile.button.info": {
"message": "Lihat butiran pengguna"
},
"profile.button.manage-projects": {
"message": "Urus projek"
},
"profile.button.remove-affiliate": {
"message": "Alih keluar rakan afiliasi"
},
"profile.button.set-affiliate": {
"message": "Tetapkan sebagai rakan afiliasi"
},
"profile.collection.projects-count": {
"message": "{count, plural, other {# projek}}"
},
"profile.details.label.auth-providers": {
"message": "Penyedia pengesahan"
},
"profile.details.label.email": {
"message": "E-mel"
},
"profile.details.label.email-verified": {
"message": "E-mel disahkan"
},
"profile.details.label.has-password": {
"message": "Mempunyai kata laluan"
},
"profile.details.label.has-totp": {
"message": "Mempunyai TOTP"
},
"profile.details.label.payment-methods": {
"message": "Kaedah pembayaran"
},
"profile.details.tooltip.email-not-verified": {
"message": "E-mel tidak disahkan"
},
"profile.details.tooltip.email-verified": {
"message": "E-mel disahkan"
},
"profile.error.not-found": {
"message": "Pengguna tidak dijumpai"
},
"profile.label.affiliate": {
"message": "Afiliasi"
},
"profile.label.badges": {
"message": "Lencana"
},
"profile.label.collection": {
"message": "Koleksi"
},
"profile.label.joined": {
"message": "Telah menyertai"
},
"profile.label.no-collections": {
"message": "Pengguna ini tidak memiliki sebarang koleksi!"
},
"profile.label.no-collections-auth": {
"message": "Anda tidak memiliki sebarang koleksi.\nAdakah anda mahu <create-link>mencipta sebuah koleksi</create-link>?"
},
"profile.label.no-projects": {
"message": "Pengguna ini tidak memiliki sebarang projek!"
},
"profile.label.no-projects-auth": {
"message": "Anda tidak memiliki sebarang projek.\nAdakah anda mahu <create-link>mencipta sebuah projek</create-link>?"
},
"profile.label.organizations": {
"message": "Organisasi"
},
"profile.label.saving": {
"message": "Sedang menyimpan..."
},
"profile.meta.description": {
"message": "Muat turun projek milik {username} di Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Muat turun projek milik {username} di Modrinth"
},
"profile.official-account.bio": {
"message": "Akaun pengguna rasmi Modrinth. Dapatkan sokongan di <support-link></support-link> atau melalui e-mel di <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, other {<stat>{count}</stat> pengikut projek}}"
},
"profile.user-id": {
"message": "ID Pengguna: {id}"
},
"project-member-header.error-decline": {
"message": "Gagal menolak jemputan pasukan"
},
@@ -3020,9 +2921,6 @@
"project.moderation.admonition.under-review.body.3": {
"message": "Anda masih boleh mengubah suai projek anda, ia tidak akan menjejaskan kedudukan anda dalam barisan."
},
"project.moderation.admonition.under-review.body.4": {
"message": "Kami menyasarkan untuk menyemak penyerahan dalam masa 24-48 jam, tetapi sesetengah projek mungkin menghadapi kelewatan. Ini tidak mencerminkan masalah dengan penyerahan anda."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>Kami menghargai kesabaran anda sementara penyederhana kami berusaha keras untuk memastikan Modrinth kekal selamat, dan berharap dapat membantu anda berkongsi kandungan anda!💚</emphasis>"
},
@@ -3848,15 +3746,9 @@
"settings.authorizations.about-this-app": {
"message": "Mengenai aplikasi ini"
},
"settings.authorizations.by": {
"message": "oleh"
},
"settings.authorizations.description": {
"message": "Apabila anda membenarkan aplikasi ini dengan akaun Modrinth anda, anda memberikannya akses kepada akaun anda. Anda boleh mengurus dan menyemak akses kepada akaun anda di sini pada bila-bila masa."
},
"settings.authorizations.empty-state": {
"message": "Kami tidak dapat memaparkan aplikasi yang dibenarkan oleh anda pada masa ini, kami sedang berusaha untuk memperbaikinya. Sila kunjungi laman ini pada tarikh yang akan datang!"
},
"settings.authorizations.head-title": {
"message": "Kebenaran"
},
+182 -203
View File
@@ -147,7 +147,7 @@
"message": "Details van statistieken over inkomsten bekijken"
},
"analytics.chart.legend.monetization-details.description": {
"message": "Alleen weergaven en downloads via Modrinth tellen mee voor het genereren van inkomsten, en voor downloads moeten gebruikers ingelogd zijn."
"message": "Alleen weergaven en downloads via Modrinth tellen mee voor het genereren van inkomsten, en voor downloads moeten gebruikers aangemeld zijn."
},
"analytics.chart.legend.monetization-details.title": {
"message": "Details over genereren van inkomsten"
@@ -417,7 +417,7 @@
"message": "Installaties"
},
"analytics.stat.monetization-banner.body": {
"message": "Alleen weergaven en downloads die via Modrinth plaatsvinden, komen in aanmerking voor inkomsten en moeten de fraudepreventiefiltering doorstaan. Voor downloads van de Modrinth-app moet de gebruiker bovendien ingelogd zijn. Aangezien alle projecten een vergelijkbaar percentage aan downloads met inkomsten hebben, zouden je inkomsten niet wezenlijk veranderen als alle downloads zouden worden meegeteld."
"message": "Alleen weergaven en downloads die via Modrinth plaatsvinden, komen in aanmerking voor inkomsten en moeten de fraudepreventiefiltering doorstaan. Voor downloads van de Modrinth-app moet de gebruiker bovendien aangemeld zijn. Aangezien alle projecten een vergelijkbaar percentage aan downloads met inkomsten hebben, zouden je inkomsten niet wezenlijk veranderen als alle downloads zouden worden meegeteld."
},
"analytics.stat.monetization-banner.learn-more": {
"message": "Meer informatie"
@@ -786,7 +786,7 @@
"message": "Kies je geboortedatum"
},
"auth.create-account.date-of-birth.required.text": {
"message": "Voer uw geboortedatum in voordat u verdergaat."
"message": "Voer je geboortedatum in voordat je verdergaat."
},
"auth.create-account.date-of-birth.required.title": {
"message": "Geboortedatum verplicht"
@@ -822,7 +822,7 @@
"message": "Herstel email verzenden"
},
"auth.reset-password.method-choice.description": {
"message": "Voer hieronder uw e-mailadres in en we sturen een herstel link zodat u uw account kunt herstellen."
"message": "Vul hieronder je e-mailadres in, dan sturen we je een herstellink waarmee je je account kunt herstellen."
},
"auth.reset-password.notification.email-sent.text": {
"message": "Als de e-mail eerder op uw account is opgeslagen, is er een email met instructies verzonden."
@@ -831,7 +831,7 @@
"message": "E-mail is verzonden"
},
"auth.reset-password.notification.password-reset.text": {
"message": "U kunt nu inloggen op uw account met uw nieuwe wachtwoord."
"message": "Je kunt nu met je nieuwe wachtwoord inloggen op je account."
},
"auth.reset-password.notification.password-reset.title": {
"message": "Wachtwoord succesvol opnieuw ingesteld"
@@ -843,13 +843,13 @@
"message": "Bevestig wachtwoord"
},
"auth.reset-password.post-challenge.description": {
"message": "Vul uw nieuwe wachtwoord hieronder in om toegang te krijgen tot uw account."
"message": "Voer hieronder je nieuwe wachtwoord in om toegang te krijgen tot je account."
},
"auth.reset-password.title": {
"message": "Wachtwoord Opnieuw Instellen"
},
"auth.reset-password.title.long": {
"message": "Uw wachtwoord opnieuw instellen"
"message": "Je wachtwoord opnieuw instellen"
},
"auth.sign-in.2fa.description": {
"message": "Voer de 6-cijferige code uit je authenticator-app in, of een van je backup codes."
@@ -924,7 +924,7 @@
"message": "We kunnen je e-mail niet verifiëren. Probeer de e-mail opnieuw te verzenden in je dashboard door in te loggen."
},
"auth.verify-email.failed-verification.description.logged-in": {
"message": "We konden uw emailadres niet verifiëren. Probeer de verificatie e-mail opnieuw te versturen via onderstaande knop."
"message": "We hebben je e-mailadres niet kunnen verifiëren. Probeer de verificatiemail nogmaals te versturen via de onderstaande knop."
},
"auth.verify-email.failed-verification.title": {
"message": "Email verificatie mislukt"
@@ -975,13 +975,13 @@
"message": "Deze verzameling wordt permanent verwijderd. Deze actie kan niet ongedaan worden gemaakt."
},
"collection.delete-modal.title": {
"message": "Weet u zeker dat u deze collectie wilt verwijderen?"
"message": "Weet je zeker dat je deze collectie wilt verwijderen?"
},
"collection.description": {
"message": "{description} - Bekijk de collectie {name} gemaakt door {username} op Modrinth"
},
"collection.description.following": {
"message": "Automatisch gegenereerde collectie van alle projecten die u volgt."
"message": "Automatisch gegenereerde collectie van alle projecten die je volgt."
},
"collection.editing": {
"message": "Verzameling bewerken"
@@ -1137,10 +1137,10 @@
"message": "Metadata"
},
"create-project-version.create-modal.stage.add-files.primary-file-description": {
"message": "Het primaire bestand is het standaardbestand dat een gebruiker downloadt bij het installeren van het project."
"message": "Het hoofdbestand is het standaardbestand dat een gebruiker downloadt bij het installeren van het project."
},
"create-project-version.create-modal.stage.add-files.primary-file-label": {
"message": "Primair bestand"
"message": "Hoofdbestand"
},
"create-project-version.create-modal.stage.add-files.supplementary-files-description": {
"message": "Je kunt desgewenst aanvullende bestanden toevoegen, zoals broncode, documentatie of benodigde bronpakketten."
@@ -1155,7 +1155,7 @@
"message": "Bestand uploaden"
},
"create-project-version.create-modal.stage.add-files.upload-primary-prompt": {
"message": "Primaire en aanvullende bestanden uploaden"
"message": "Hoofd- en aanvullende bestanden uploaden"
},
"create-project-version.create-modal.stage.add-files.upload-secondary-prompt": {
"message": "Sleep bestanden hierheen of klik om te bladeren"
@@ -1416,7 +1416,7 @@
"message": "Fout bij het laden van affiliatelinks"
},
"dashboard.affiliate-links.header": {
"message": "Uw affiliatelinks"
"message": "Je partnerlinks"
},
"dashboard.affiliate-links.revoke-confirm.body": {
"message": "Hierdoor wordt de affiliatecode `{id}` permanent ingetrokken en zijn alle bestaande links met deze code die zijn gedeeld, niet langer geldig."
@@ -1569,7 +1569,7 @@
"message": "Zoek deelgebieden..."
},
"dashboard.creator-withdraw-modal.method-selection.country-placeholder": {
"message": "Selecteer uw land"
"message": "Kies jouw land"
},
"dashboard.creator-withdraw-modal.method-selection.country-search-placeholder": {
"message": "Zoek landen..."
@@ -1605,7 +1605,7 @@
"message": "Munt"
},
"dashboard.creator-withdraw-modal.muralpay-details.crypto-warning-header": {
"message": "Bevestig uw portemonnee-adres"
"message": "Bevestig je walletadres"
},
"dashboard.creator-withdraw-modal.muralpay-details.document-number-national-id": {
"message": "Nationaal ID-nummer"
@@ -1683,10 +1683,10 @@
"message": "Belastingformulier"
},
"dashboard.creator-withdraw-modal.tax-form-required.body": {
"message": "Om uw volledige <b>{available}</b> beschikbare saldo op te nemen, vult u onderstaand formulier in. Dit is nodig voor de belastingaangifte en hoeft slechts eenmalig te worden gedaan."
"message": "Om je volledige beschikbare saldo van <b>{available}</b> op te nemen, vul je het onderstaande formulier in. Dit is nodig voor de belastingaangifte en hoef je maar één keer te doen."
},
"dashboard.creator-withdraw-modal.tax-form-required.body-with-limit": {
"message": "U dient een W-9- of W-8-formulier in te vullen voor de belastingadministratie van Modrinth, zodat wij aan de belastingwetgeving blijven voldoen."
"message": "Je moet een W-9- of W-8-formulier invullen voor de belastingadministratie van Modrinth, zodat wij aan de belastingwetgeving blijven voldoen."
},
"dashboard.creator-withdraw-modal.tax-form-required.header": {
"message": "Belastingformulier vereist"
@@ -1710,7 +1710,7 @@
"message": "Je hebt minimaal {min} nodig om deze cadeaubon te gebruiken."
},
"dashboard.creator-withdraw-modal.tremendous-details.no-denominations-available": {
"message": "Er zijn geen coupures beschikbaar voor uw huidige saldo"
"message": "Er zijn geen coupures beschikbaar voor je huidige saldo"
},
"dashboard.creator-withdraw-modal.tremendous-details.no-suggestions-no-max": {
"message": "Geen coupures in de buurt van dit bedrag"
@@ -1749,7 +1749,7 @@
"message": "Niet-geverifieerde e-mail"
},
"dashboard.creator-withdraw-modal.tremendous-details.unverified-email-message": {
"message": "Het e-mailadres dat u hebt ingevoerd voor de bezorging is niet gekoppeld aan uw Modrinth-account. Modrinth kan beloningen die naar een onjuist e-mailadres zijn verzonden niet terugvorderen."
"message": "Het e-mailadres dat je hebt opgegeven, is niet gekoppeld aan je Modrinth-account. Modrinth kan beloningen die naar een fout e-mailadres zijn verzonden, niet terugvinden."
},
"dashboard.creator-withdraw-modal.tremendous-details.usd-paypal-warning-header": {
"message": "Lagere kosten beschikbaar"
@@ -1779,7 +1779,7 @@
"message": "Verbind Discord"
},
"dashboard.discord-roles.banner.title": {
"message": "Claim uw Discord rollen"
"message": "Claim je Discord-rollen"
},
"dashboard.discord-roles.role.big-creator": {
"message": "1M+ Downloads"
@@ -1794,7 +1794,7 @@
"message": "Dashboard"
},
"dashboard.notifications.empty.no-unread": {
"message": "U heeft geen ongelezen notificaties."
"message": "Je hebt geen ongelezen meldingen."
},
"dashboard.notifications.link.see-all": {
"message": "Allemaal bekijken"
@@ -1827,7 +1827,7 @@
"message": "Geschiedenis bekijken"
},
"dashboard.overview.notifications.empty.no-unread": {
"message": "U heeft geen ongelezen notificaties."
"message": "Je hebt geen ongelezen meldingen."
},
"dashboard.overview.notifications.error.loading": {
"message": "Fout tijdens het laden van de notificaties:"
@@ -1845,7 +1845,7 @@
"message": "Massa wijzigingen worden niet ondersteund door server projecten"
},
"dashboard.projects.empty": {
"message": "U heeft nog geen projecten. Klik de groene knop hierboven om te beginnen."
"message": "Je hebt nog geen projecten. Klik op de groene knop hierboven om te beginnen."
},
"dashboard.projects.head-title": {
"message": "Projecten"
@@ -1854,7 +1854,7 @@
"message": "en nog {count} anderen..."
},
"dashboard.projects.links.button.clear-link": {
"message": "Leeg link"
"message": "Link verwijderen"
},
"dashboard.projects.links.button.edit": {
"message": "Wijzig link"
@@ -1863,7 +1863,7 @@
"message": "De wijzigingen worden toegepast op <strong>{count}</strong> {count, plural, one {project} other {projects}}."
},
"dashboard.projects.links.description": {
"message": "Alle links die u hieronder opgeeft, worden in elk van de geselecteerde projecten overschreven. Links die u leeg laat, worden genegeerd. U kunt een link uit alle geselecteerde projecten verwijderen met de prullenbakknop."
"message": "Alle links die je hieronder opgeeft, worden in elk van de geselecteerde projecten overschreven. Links die je leeg laat, worden genegeerd. Je kunt een link uit alle geselecteerde projecten verwijderen met de prullenbakknop."
},
"dashboard.projects.links.discord-invite.description": {
"message": "Een uitnodigingslink naar jouw Discord server."
@@ -2082,13 +2082,13 @@
"message": "Portemonnee"
},
"dashboard.withdraw.error.account-not-linked.text": {
"message": "Koppel je betaalaccount voordat u geld opneemt."
"message": "Koppel alsjeblieft eerst je betaalrekening voordat je geld opneemt."
},
"dashboard.withdraw.error.account-not-linked.title": {
"message": "Account is niet gekoppeld"
},
"dashboard.withdraw.error.email-verification.text": {
"message": "U moet uw e-mailadres verifiëren voordat u geld opneemt."
"message": "Je moet je e-mailadres verifiëren voordat je geld kunt opnemen."
},
"dashboard.withdraw.error.email-verification.title": {
"message": "Email verificatie vereist"
@@ -2106,19 +2106,19 @@
"message": "Onvoldoende saldo"
},
"dashboard.withdraw.error.invalid-address.text": {
"message": "Het door u opgegeven adres kon niet worden geverifieerd. Controleer uw adresgegevens."
"message": "Het door jou opgegeven adres kon niet worden geverifieerd. Controleer alsjeblieft je adresgegevens."
},
"dashboard.withdraw.error.invalid-address.title": {
"message": "Adres verificatie mislukt"
},
"dashboard.withdraw.error.invalid-bank.text": {
"message": "De door u opgegeven bankgegevens zijn onjuist. Controleer uw gegevens."
"message": "De bankgegevens die je hebt opgegeven, zijn ongeldig. Controleer alsjeblieft je gegevens."
},
"dashboard.withdraw.error.invalid-bank.title": {
"message": "Ongeldige bankgegevens"
},
"dashboard.withdraw.error.invalid-wallet.text": {
"message": "Het door u opgegeven crypto portemonnee adres is ongeldig. Controleer het adres en probeer het opnieuw."
"message": "Het adres van de cryptowallet dat je hebt opgegeven, is ongeldig. Controleer het nog een keer en probeer het opnieuw."
},
"dashboard.withdraw.error.invalid-wallet.title": {
"message": "Ongeldig portemonnee adres"
@@ -2129,6 +2129,12 @@
"dashboard.withdraw.error.minimum-not-met.title": {
"message": "Te laag bedrag"
},
"dashboard.withdraw.error.payout-method-disabled.text": {
"message": "Deze uitbetalingsmethode is door de betalingsprovider uitgeschakeld. Gebruik een andere uitbetalingsmethode of neem contact op met de klantenservice."
},
"dashboard.withdraw.error.payout-method-disabled.title": {
"message": "Uitbetalingsmethode niet beschikbaar"
},
"dashboard.withdraw.error.paypal-country-mismatch.text": {
"message": "Gebruik alsjeblieft de juiste PayPal-overschrijvingsoptie voor je regio (VS of internationaal)."
},
@@ -2136,7 +2142,7 @@
"message": "PayPal regio mismatch"
},
"dashboard.withdraw.error.tax-form.text": {
"message": "U moet een belastingformulier invullen om uw opnameverzoek in te dienen."
"message": "Je moet een belastingformulier invullen om je opnameverzoek in te dienen."
},
"dashboard.withdraw.error.tax-form.title": {
"message": "Gelieve het belastingformulier in te vullen"
@@ -2169,7 +2175,7 @@
"message": "Zoeken naar {projectType} | {query}"
},
"error.collection.404.list_item.1": {
"message": "U heeft mogelijk de URL van de collectie fout ingetypt."
"message": "Misschien heb je de URL van de collectie verkeerd getypt."
},
"error.collection.404.list_item.2": {
"message": "Deze collectie is mogelijk privé."
@@ -2190,7 +2196,7 @@
"message": "Je hebt geen toegang tot deze pagina"
},
"error.generic.404.subtitle": {
"message": "De pagina die u zoekt, blijkt niet te bestaan."
"message": "De pagina die je zocht, lijkt niet te bestaan."
},
"error.generic.404.title": {
"message": "Pagina niet gevonden"
@@ -2217,7 +2223,7 @@
"message": "Oeps!"
},
"error.organization.404.list_item.1": {
"message": "U heeft misschien de URL van de organisatie verkeerd getypt."
"message": "Misschien heb je de URL van de organisatie verkeerd getypt."
},
"error.organization.404.list_item.2": {
"message": "De eigenaar van de organisatie heeft misschien de URL veranderd of verwijderd."
@@ -2292,7 +2298,7 @@
"message": "Hoe werken CPU burst threads?"
},
"hosting-marketing.faq.burst-threads.answer": {
"message": "Wanneer uw server zwaar belast wordt, geven we deze tijdelijk toegang tot extra CPU-threads om vertragingspieken en instabiliteit te verminderen. Dit helpt voorkomen dat de TPS onder de 20 zakt, waardoor een zo soepel mogelijke ervaring wordt gegarandeerd. Omdat deze CPU-threads slechts kort beschikbaar zijn tijdens zwaardere periodes, worden ze mogelijk niet weergeven in Spark-rapporten of andere profilingtools."
"message": "Wanneer je server zwaar wordt belast, geven we hem tijdelijk toegang tot extra CPU-threads om pieken in vertraging en instabiliteit te helpen verminderen. Dit helpt voorkomen dat de TPS onder de 20 daalt, waardoor een zo soepel mogelijke ervaring wordt gegarandeerd. Aangezien die extra CPU-threads slechts kort beschikbaar zijn tijdens periodes van hoge belasting, is het mogelijk dat ze niet worden weergegeven in Spark-rapporten of andere profileringsprogramma's."
},
"hosting-marketing.faq.cpu-kind": {
"message": "Op wat voor CPU's draaien de servers van Modrinth Hosting?"
@@ -2328,13 +2334,13 @@
"message": "Kan ik de opslagruimte op mijn server vergroten?"
},
"hosting-marketing.faq.increase-storage.answer": {
"message": "Ja, de opslagruimte op uw server kan kosteloos worden uitgebreid. Neem contact op met Modrinth klantenservice als u meer opslagruimte nodig heeft."
"message": "Ja, de opslagcapaciteit op je server kan zonder extra kosten worden uitgebreid. Neem contact op met de Modrinth-klantenservice als je meer opslagruimte nodig hebt."
},
"hosting-marketing.faq.location": {
"message": "Waar bevinden de servers van Modrinth Hosting zich? Kan ik een regio kiezen?"
},
"hosting-marketing.faq.location.answer": {
"message": "Op dit moment hebben we servers beschikbaar in Noord-Amerika, Europa, Zuidoost-Azië en Australië, waaruit u bij aankoop kunt kiezen. In de toekomst komen er nog meer regios bij! Als u van regio wilt wisselen, neem dan contact op met de klantenservice."
"message": "Op dit moment hebben we servers beschikbaar in Noord-Amerika, Europa, Zuidoost-Azië en Australië, waaruit je bij aankoop kunt kiezen. In de toekomst komen er nog meer regio's bij! Als je van regio wilt wisselen, neem dan contact op met de klantenservice."
},
"hosting-marketing.faq.versions-loaders": {
"message": "Welke Minecraft-versies en loaders kunnen worden gebruikt?"
@@ -2391,7 +2397,7 @@
"message": "Zoek, beheer, bewerk en upload bestanden moeiteloos rechtstreeks naar je server."
},
"hosting-marketing.included.heading": {
"message": "Komt met alle functies die u nodig heeft."
"message": "Bevat alle functies die je nodig hebt."
},
"hosting-marketing.included.help": {
"message": "Hulp wanneer je het nodig hebt"
@@ -2403,16 +2409,16 @@
"message": "Een krachtige console, servereigenschappenbeheerder en meer"
},
"hosting-marketing.included.powerful-console.description": {
"message": "Modrinth Hosting biedt krachtige tools voor het beheren van uw server."
"message": "Modrinth Hosting biedt krachtige tools om je server te beheren."
},
"hosting-marketing.included.sftp-access": {
"message": "SFTP toegang"
},
"hosting-marketing.included.sftp-access.description": {
"message": "Krijg rechtstreeks toegang tot de bestanden op uw server met de SFTP-functionaliteit die in Modrinth Hosting is ingebouwd."
"message": "Krijg rechtstreeks toegang tot de bestanden op je server via de in Modrinth Hosting ingebouwde SFTP-functie."
},
"hosting-marketing.included.with-your-server": {
"message": "Inbegrepen bij uw server"
"message": "Bij je server inbegrepen"
},
"hosting-marketing.know-what-you-need": {
"message": "Weet je precies wat je nodig hebt?"
@@ -2472,13 +2478,13 @@
"message": "Ervaar een moderne, betrouwbare hosting"
},
"hosting-marketing.why.modern-reliable-hosting.description": {
"message": "Modrinth hosting servers draaien op <contrast>hoog-perfarmance AMD CPU's met DDR5 RAM </contrast>, draaiend op zelf gemaakte software om ervoor te zorgen dat uw servers perfect draaien."
"message": "De servers van Modrinth Hosting worden gehost op <contrast>krachtige AMD-CPU's met DDR5-RAM </contrast> en draaien op speciaal ontwikkelde software om ervoor te zorgen dat je servers soepel draaien."
},
"hosting-marketing.why.where-mods-are": {
"message": "Speel waar uw mods worden gemaakt"
"message": "Speel waar je mods zijn"
},
"hosting-marketing.why.where-mods-are.description": {
"message": "Modrinth Hosting zorgt voor een gemakelijke intergratie voor mod en modpakketen instalatie op uw servers."
"message": "Modrinth Hosting integreert het installatieproces van mods en modpacks naadloos in je server."
},
"hosting-marketing.why.why-modrinth-hosting": {
"message": "Waarom Modrinth Hosting?"
@@ -2487,13 +2493,13 @@
"message": "Al je Favorite mods"
},
"hosting-marketing.why.your-favorite-mods.description": {
"message": "Kies tussen Vanilla, Fabric, Forge, Quilt en NeoForge. Als het op Modrinth is kan het op uw server."
"message": "Kies uit Vanilla, Fabric, Forge, Quilt en NeoForge. Als het op Modrinth staat, werkt het ook op jouw server."
},
"hosting.plan.out-of-stock": {
"message": "Uitverkocht"
},
"hosting.plan.select-plan": {
"message": "Selecteer uw plan"
"message": "Kies een abonnement"
},
"landing.button.discover-mods": {
"message": "Ontdek mods"
@@ -2586,7 +2592,7 @@
"message": "ATLauncher"
},
"landing.launcher.graphic-alt": {
"message": "Een vereenvoudigde weergave van een Minecraft venster, met het Mojang Studios logo in Modrinth groen."
"message": "Een vereenvoudigde weergave van een Minecraft-venster, met het logo van Mojang Studios in Modrinth-groen."
},
"landing.launcher.modrinth-app-label": {
"message": "Modrinth-app"
@@ -2601,7 +2607,7 @@
"message": "Meldingen"
},
"landing.notifications.received-time": {
"message": "Ontvangen {time}"
"message": "{time} ontvangen"
},
"landing.notifications.version-released": {
"message": "Versie {version} is gereleased voor {gameVersion}"
@@ -2715,7 +2721,7 @@
"message": "Werk factuurgegevens bij"
},
"layout.banner.subscription-payment-failed.description": {
"message": "Een of meer abonnementen zijn niet verlengd. Werk uw betaalmethode bij om te voorkomen dat u de toegang verliest!"
"message": "Een of meer abonnementen zijn niet verlengd. Werk je betaalmethode bij om te voorkomen dat je de toegang verliest!"
},
"layout.banner.subscription-payment-failed.title": {
"message": "Factuur actie vereist."
@@ -2733,7 +2739,7 @@
"message": "Neem contact op met support"
},
"layout.banner.tin-mismatch.description": {
"message": "Uw opnames zijn tijdelijk geblokkeerd omdat uw TIN of SSN niet overeenkomt met de gegevens van de IRS. Neem contact op met de klantenservice om uw gegevens te resetten en uw belastingaangifte opnieuw in te dienen."
"message": "Je opnames zijn tijdelijk geblokkeerd omdat je TIN of SSN niet overeenkomt met de gegevens van de IRS. Neem contact op met de klantenservice om je belastingformulier opnieuw in te vullen en in te dienen."
},
"layout.banner.tin-mismatch.title": {
"message": "Belastingformulier mislukt"
@@ -2918,6 +2924,30 @@
"layout.publish.email-verification-required.title": {
"message": "E-mailverificatie vereist"
},
"modal.shared-instance.open-in-app.benefit.install": {
"message": "Alles wat ze spelen automatisch installeren"
},
"modal.shared-instance.open-in-app.benefit.join": {
"message": "Speel dezelfde inhoud als je vrienden"
},
"modal.shared-instance.open-in-app.benefit.update": {
"message": "Houd gedeelde inhoud up-to-date wanneer deze verandert"
},
"modal.shared-instance.open-in-app.get-app": {
"message": "Modrinth-app downloaden"
},
"modal.shared-instance.open-in-app.managed-by": {
"message": "Beheerd door"
},
"modal.shared-instance.open-in-app.opening-automatically": {
"message": "De Modrinth-app wordt automatisch geopend..."
},
"modal.shared-instance.open-in-app.title": {
"message": "Modrinth-app openen"
},
"modal.shared-instance.open-in-app.why-use": {
"message": "Waarom de Modrinth-app gebruiken"
},
"moderation.exclude-technical-review": {
"message": "TR uitsluiten"
},
@@ -2939,8 +2969,23 @@
"moderation.page.technicalReview": {
"message": "Technische beoordeling"
},
"modpack-scan-modal.clear-all-groups": {
"message": "Alle groepen wissen"
"modpack-scan-modal.batch.label": {
"message": "{amount} per batch"
},
"modpack-scan-modal.batch.placeholder": {
"message": "Batchhoeveelheid"
},
"modpack-scan-modal.delete-all-groups-confirmation.description": {
"message": "Hiermee worden alle toewijzingsgroepen voor dit project en alle bestanden daarin definitief verwijderd. Deze handeling kan niet ongedaan worden gemaakt."
},
"modpack-scan-modal.delete-all-groups.error": {
"message": "Niet gelukt om alle groepen te wissen: {error}"
},
"modpack-scan-modal.delete-all-groups.proceed": {
"message": "Wissen"
},
"modpack-scan-modal.delete-all-groups.success": {
"message": "Alle groepen zijn succesvol gewist."
},
"modpack-scan-modal.failed": {
"message": "Mislukt"
@@ -2973,11 +3018,14 @@
"message": "Alle bestanden scannen"
},
"modpack-scan-modal.scan-error": {
"message": "Sommige bestanden konden niet worden gescand: {error}"
"message": "Sommige bestanden konden niet worden gescand:\n\n{error}"
},
"modpack-scan-modal.scanning": {
"message": "Scannen..."
},
"modpack-scan-modal.success": {
"message": "Gelukt"
},
"modpack-scan-modal.title": {
"message": "Modpack-scan ({scanned}/{total} bestanden)"
},
@@ -3246,7 +3294,7 @@
"message": "Crypto (USDC)"
},
"muralpay.warning.wallet-address": {
"message": "Controleer uw portemonnee adres nogmaals. Geld dat naar een onjuist adres is overgemaakt, kan niet worden teruggevonden."
"message": "Controleer je walletadres opnieuw. Geld dat naar een verkeerd adres is overgemaakt, kan niet worden teruggehaald."
},
"organization.button.manage": {
"message": "Beheren"
@@ -3293,117 +3341,6 @@
"organization.projects.none-with-create-prompt": {
"message": "Deze organisatie heeft nog geen projecten. Wil je er <create-link>een aanmaken</create-link>?"
},
"profile.bio.fallback.creator": {
"message": "Een Modrinth creator."
},
"profile.bio.fallback.user": {
"message": "Een Modrinth gebruiker."
},
"profile.button.analytics": {
"message": "Gebruikersstatistieken bekijken"
},
"profile.button.billing": {
"message": "Gebruikers facturering beheren"
},
"profile.button.edit-role": {
"message": "Bewerk rol"
},
"profile.button.info": {
"message": "Bekijk gebruikersdetails"
},
"profile.button.manage-projects": {
"message": "Beheer projecten"
},
"profile.button.remove-affiliate": {
"message": "Verwijderen als partner"
},
"profile.button.set-affiliate": {
"message": "Zet als partner"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# project} other {# projecten}}"
},
"profile.details.label.auth-providers": {
"message": "Beveiliging providers"
},
"profile.details.label.email": {
"message": "Email"
},
"profile.details.label.email-verified": {
"message": "Email geverifieerd"
},
"profile.details.label.has-password": {
"message": "Heeft wachtwoord"
},
"profile.details.label.has-totp": {
"message": "Heeft TOTP"
},
"profile.details.label.payment-methods": {
"message": "Betaalmethodes"
},
"profile.details.tooltip.email-not-verified": {
"message": "Email niet geverifieerd"
},
"profile.details.tooltip.email-verified": {
"message": "Email geverifieerd"
},
"profile.error.not-found": {
"message": "Gebruiker niet gevonden"
},
"profile.label.affiliate": {
"message": "Partners"
},
"profile.label.badges": {
"message": "Badges"
},
"profile.label.collection": {
"message": "Collectie"
},
"profile.label.download-count": {
"message": "{count, plural, one {download} other {downloads}}"
},
"profile.label.joined": {
"message": "Lid geworden"
},
"profile.label.no-collections": {
"message": "Deze gebruiker heeft geen collecties!"
},
"profile.label.no-collections-auth": {
"message": "Je hebt geen collecties.\n<create-link>Wil je er een aanmaken?</create-link>"
},
"profile.label.no-projects": {
"message": "Deze gebruiker heeft geen projecten!"
},
"profile.label.no-projects-auth": {
"message": "Je hebt geen projecten.\n<create-link>Wil je er een aanmaken?</create-link>"
},
"profile.label.organizations": {
"message": "Organisaties"
},
"profile.label.project-count": {
"message": "{count, plural, one {project} other {projecten}}"
},
"profile.label.saving": {
"message": "Opslaan..."
},
"profile.meta.description": {
"message": "Download {username} z'n projecten via Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Download {username}'s projecten op Modrinth"
},
"profile.official-account": {
"message": "Officieel Modrinth-account"
},
"profile.official-account.bio": {
"message": "Het officiële gebruikersaccount van Modrinth. Neem contact op met het Helpcentrum via <support-link></support-link> of per e-mail via <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> project volger}other {<stat>{count}</stat> project volgers}}"
},
"profile.user-id": {
"message": "Gebruiker ID: {id}"
},
"project-member-header.error-decline": {
"message": "Team uitnodiging niet afgeslagen"
},
@@ -3465,7 +3402,7 @@
"message": "Collectie"
},
"project-type.datapack.plural": {
"message": "Data Packs"
"message": "Gegevenspakketten"
},
"project-type.datapack.singular": {
"message": "Data Pack"
@@ -3755,6 +3692,9 @@
"project.moderation.admonition.under-review.body.4": {
"message": "We streven ernaar om inzendingen binnen 24 tot 48 uur te beoordelen, maar bij sommige projecten kan er vertraging optreden. Dit betekent niet dat er iets mis is met je inzending."
},
"project.moderation.admonition.under-review.body.4.alt-week": {
"message": "We streven ernaar om inzendingen binnen een week te beoordelen, maar bij sommige projecten kan er vertraging optreden. Dit betekent niet dat er iets mis is met je inzending."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>We stellen je geduld zeer op prijs terwijl onze moderators hard werken om Modrinth veilig te houden, en we kijken ernaar uit om je te helpen je content te delen! 💚</emphasis>"
},
@@ -3852,7 +3792,7 @@
"message": "Toon alsjeblieft aan dat je toestemming hebt om alle onderstaande bestanden te verspreiden. Zodra dit is voltooid, worden de achtergehouden versies automatisch gepubliceerd."
},
"project.settings.permissions.attention-needed.description.proj-draft": {
"message": "Gelieve aan te tonen dat u toestemming hebt om alle onderstaande bestanden te verspreiden, voordat u uw project ter beoordeling indient."
"message": "Toon alsjeblieft aan dat je toestemming hebt om alle onderstaande bestanden te verspreiden, voordat je je project ter beoordeling indient."
},
"project.settings.permissions.attention-needed.title": {
"message": "Onbekende externe inhoud"
@@ -3872,6 +3812,21 @@
"project.settings.permissions.completed.title": {
"message": "Toestemmingen voltooid!"
},
"project.settings.permissions.delete-all-groups": {
"message": "Alle groepen verwijderen"
},
"project.settings.permissions.delete-all-groups-confirmation.description": {
"message": "Hiermee {count, plural, one {wordt # toewijzingsgroep} other {worden alle # toewijzingsgroepen}} voor dit project en alle bestanden daarin definitief verwijderd. Deze actie kan niet ongedaan worden gemaakt."
},
"project.settings.permissions.delete-all-groups-confirmation.title": {
"message": "Alle toewijzingsgroepen verwijderen?"
},
"project.settings.permissions.delete-all-groups-error": {
"message": "Verwijderen van alle toewijzingsgroepen niet gelukt"
},
"project.settings.permissions.delete-all-groups-success": {
"message": "Alle toewijzingsgroepen zijn verwijderd."
},
"project.settings.permissions.empty-state.description": {
"message": "Geen van de versies van je project bevat externe inhoud, dus je hoeft je geen zorgen te maken over het verkrijgen van toestemming."
},
@@ -3990,7 +3945,7 @@
"message": "Je hebt {count} resolutietags ({tags}) geselecteerd. Bronpakketten zouden normaal gesproken slechts één resolutietag moeten hebben."
},
"project.settings.tags.performance-impact-description": {
"message": "Selecteer de realistische invloed op de prestaties van uw {type}. Selecteer meerdere opties als het {type} kan worden geconfigureerd voor verschillende niveaus van invloed op de prestaties."
"message": "Selecteer de realistische invloed op de prestaties van je {type}. Selecteer meerdere opties als het {type} kan worden geconfigureerd voor verschillende niveaus van invloed op de prestaties."
},
"project.settings.tags.resolutions-description": {
"message": "Selecteer de resolutie(s) van de texturen in je {type}."
@@ -4077,7 +4032,7 @@
"message": "{count, plural, one {Versie {version_name}} other {Versies}} niet weergegeven vanwege onbekende ingesloten inhoud"
},
"report.already-reported": {
"message": "U heeft al {title} gerapporteerd"
"message": "Je hebt {title} al gemeld"
},
"report.already-reported-description": {
"message": "Je hebt al een openstaand rapport voor dit/deze {item}. Je kunt meer details aan je rapport toevoegen als je nog meer informatie hebt."
@@ -4089,7 +4044,7 @@
"message": "Voeg linken en afbeelding als het mogelijk en relevant is. Lege of onvoldoende rapportages zullen gesloten worden en geregeerd worden."
},
"report.body.title": {
"message": "Geef alstublieft aanvoegende context over uw rapportage"
"message": "Geef alsjeblieft wat meer achtergrondinformatie over je melding"
},
"report.checking": {
"message": "{item} wordt gecontroleerd..."
@@ -4125,7 +4080,7 @@
"message": "Houd er rekening mee dat je *geen* DMCA-verzoek tot verwijdering indient, maar een melding van opnieuw geüploade inhoud."
},
"report.note.copyright.2": {
"message": "Als het uw bedoeling was om een DMCA-report in te dienen(wat een wettelijke actie is), kijk dan alsublieft in onze <copyright-policy-link>Copyright Policy</copyright-policy-link>."
"message": "Als je in plaats hiervan een DMCA-verzoek tot verwijdering (een juridische procedure) wilde indienen, raadpleeg dan ons <copyright-policy-link>auteursrechtbeleid</copyright-policy-link>."
},
"report.note.malicious.1": {
"message": "Rapporten voor malware en niet geaccepteerde content moeten bewijs hebben zoals code voorbeelden."
@@ -4281,7 +4236,7 @@
"message": "Schrijf PAT's"
},
"scopes.payoutsRead.description": {
"message": "Lees uw uitbetalingsgegevens"
"message": "Bekijk je uitbetalingsgegevens"
},
"scopes.payoutsRead.label": {
"message": "Lees uitbetalingen"
@@ -4377,31 +4332,31 @@
"message": "Schrijf op threads"
},
"scopes.userAuthWrite.description": {
"message": "Modificeer uw authenticatie data"
"message": "Wijzig je inloggegevens"
},
"scopes.userAuthWrite.label": {
"message": "Schrijf authenticatie data"
},
"scopes.userDelete.description": {
"message": "Verwijder uw account"
"message": "Je account verwijderen"
},
"scopes.userDelete.label": {
"message": "Verwijder uw account"
"message": "Je account verwijderen"
},
"scopes.userRead.description": {
"message": "Zie uw publieke profiel informatie"
"message": "Je openbare profielgegevens bekijken"
},
"scopes.userRead.label": {
"message": "Lees gebruokers data"
},
"scopes.userReadEmail.description": {
"message": "Lees uw email"
"message": "Lees je e-mail"
},
"scopes.userReadEmail.label": {
"message": "Lees gebruiker email"
},
"scopes.userWrite.description": {
"message": "Schrijf bij uw profiel"
"message": "Aan je profiel toevoegen"
},
"scopes.userWrite.label": {
"message": "Schrijf gebruikers data"
@@ -4458,7 +4413,7 @@
"message": "Negeerbaar"
},
"servers.notice.expires": {
"message": "Overdatum in"
"message": "Verloopt"
},
"servers.notice.id": {
"message": "ID"
@@ -4515,7 +4470,7 @@
"message": "Je account verwijderen"
},
"settings.account.delete.confirm.title": {
"message": "Weet u zeker dat u uw account wilt verwijderen?"
"message": "Weet je zeker dat je je account wilt verwijderen?"
},
"settings.account.delete.section.action": {
"message": "Verwijder account"
@@ -4533,7 +4488,7 @@
"message": "Email adres"
},
"settings.account.email.field.placeholder": {
"message": "Voer uw e-mailadres in..."
"message": "Vul je e-mailadres in..."
},
"settings.account.email.modal.header.add": {
"message": "Voeg e-mailadres toe"
@@ -4554,7 +4509,7 @@
"message": "De ingevoerde wachtwoorden komen niet overeen!"
},
"settings.account.password.field.confirm-current.description": {
"message": "Voer uw wachtwoord in om door te gaan."
"message": "Voer je wachtwoord in om verder te gaan."
},
"settings.account.password.field.confirm-current.label": {
"message": "Bevestig wachtwoord"
@@ -4608,7 +4563,7 @@
"message": "Email veranderen"
},
"settings.account.security.email.description": {
"message": "Hiermee wijzigt u het e-mailadres dat aan uw account is gekoppeld."
"message": "Wijzigt het e-mailadres dat met je account is gekoppeld."
},
"settings.account.security.email.title": {
"message": "E-mail"
@@ -4671,13 +4626,13 @@
"message": "Wachtwoord wijzigen"
},
"settings.account.security.password.description.change": {
"message": "Wijzig het wachtwoord dat u gebruikt om in te loggen op uw account."
"message": "Wijzig het wachtwoord dat je gebruikt om in te loggen op je account."
},
"settings.account.security.password.description.change-or-remove": {
"message": "Wijzig of verwijder het wachtwoord dat u gebruikt om in te loggen op uw account."
"message": "Wijzig of verwijder het wachtwoord dat je gebruikt om in te loggen op je account."
},
"settings.account.security.password.description.set": {
"message": "Stel een vast wachtwoord in om in te loggen op uw account."
"message": "Stel een permanent wachtwoord in om in te loggen op je account."
},
"settings.account.security.password.title": {
"message": "Wachtwoord"
@@ -4701,7 +4656,7 @@
"message": "2FA instellen"
},
"settings.account.security.two-factor.description": {
"message": "Voeg een extra beveiligingslaag toe aan uw account tijdens het inloggen."
"message": "Voeg een extra beveiligingslaag toe aan je account tijdens het inloggen."
},
"settings.account.security.two-factor.modal.remove.header": {
"message": "2FA uitschakelen"
@@ -4844,15 +4799,9 @@
"settings.authorizations.about-this-app": {
"message": "Over deze app"
},
"settings.authorizations.by": {
"message": "door"
},
"settings.authorizations.description": {
"message": "Wanneer je een app via je Modrinth-account autoriseert, verleen je die app toegang tot je account. Je kunt de toegang tot je account hier op elk moment beheren en bekijken."
},
"settings.authorizations.empty-state": {
"message": "We kunnen je geautoriseerde apps momenteel niet weergeven, maar we werken eraan om dit te verhelpen. Kom later nog eens terug op deze pagina!"
},
"settings.authorizations.head-title": {
"message": "Toestemmingen"
},
@@ -4866,7 +4815,7 @@
"message": "Weet u zeker dat u deze aanvraag wilt intrekken?"
},
"settings.billing.charges.description": {
"message": "Hier vindt u een overzicht van alle eerdere afschrijvingen op uw Modrinth rekening:"
"message": "Al je eerdere afschrijvingen van je Modrinth-account worden hier weergegeven:"
},
"settings.billing.charges.product.medal-trial": {
"message": "Proefversie van Medal Server"
@@ -4880,6 +4829,9 @@
"settings.billing.charges.title": {
"message": "Eerdere aanklachten"
},
"settings.billing.expires": {
"message": "Verloopt op {date}"
},
"settings.billing.interval.month": {
"message": "maand"
},
@@ -4905,7 +4857,7 @@
"message": "Je hebt je abonnement opgezegd."
},
"settings.billing.midas.status.cancelled.line2": {
"message": "U behoudt uw voordelen tot het einde van de huidige factureringsperiode."
"message": "Je behoudt je voordelen tot het einde van de huidige factureringsperiode."
},
"settings.billing.midas.status.failed": {
"message": "De betaling van je abonnement is mislukt. Werk je betaalmethode bij."
@@ -4923,7 +4875,7 @@
"message": "Annuleer abbonement"
},
"settings.billing.modal.cancel.description": {
"message": "Dit zal uw abonnement opzeggen. Je houdt je voordelen tot het einde van je huidige betaling cyclus"
"message": "Hiermee wordt je abonnement opgezegd. Je behoudt je voordelen tot het einde van de huidige factureringsperiode."
},
"settings.billing.modal.cancel.title": {
"message": "Weet je zeker dat je je abonnement wil beëindigen?"
@@ -4983,7 +4935,7 @@
"message": "{gb} GB RAM"
},
"settings.billing.pyro.resubscribe.error.text": {
"message": "Er is een fout opgetreden bij het opnieuw abonneren op uw Modrinth server."
"message": "Er is een fout opgetreden bij het opnieuw abonneren op je Modrinth-server."
},
"settings.billing.pyro.resubscribe.error.title": {
"message": "Fout bij het opnieuw abonneren"
@@ -5001,7 +4953,7 @@
"message": "De betaling voor je abonnement is mislukt. Werk je betaalmethode bij en meld je vervolgens opnieuw aan."
},
"settings.billing.pyro.status.processing": {
"message": "Uw betaling wordt verwerkt. Uw server wordt geactiveerd zodra de betaling is voltooid."
"message": "Je betaling wordt verwerkt. Je server wordt geactiveerd zodra de betaling is voltooid."
},
"settings.billing.pyro.storage": {
"message": "{gb} GB SSD"
@@ -5046,7 +4998,7 @@
"message": "Ontwikkelaarsmodus deactiveren"
},
"settings.display.banner.developer-mode.description": {
"message": "<strong>Ontwikkelaarsmodus</strong> is actief. Dit geeft je de mogelijkheid om de interne ID's van verschillende dingen in Modrinth te bekijken die handig kunnen zijn als je een ontwikkelaar bent en gebruik maakt van de Modrinth API. Klik 5 keer op het Modrinth logo onderaan de pagina om ontwikkelaarsmodus in of uit te schakelen."
"message": "<strong>Ontwikkelaarsmodus</strong> is ingeschakeld. Hiermee kun je de interne ID's bekijken van verschillende elementen in Modrinth, wat handig kan zijn als je als ontwikkelaar gebruikmaakt van de Modrinth-API. Klik vijf keer op het Modrinth-logo onderaan de pagina om de ontwikkelaarsmodus in of uit te schakelen."
},
"settings.display.flags.description": {
"message": "Schakel bepaalde functies op dit apparaat in of uit."
@@ -5064,7 +5016,7 @@
"message": "Data Packs pagina"
},
"settings.display.project-list-layouts.description": {
"message": "Selecteer de lay-out van uw voorkeur voor elke pagina die projectlijsten op dit apparaat toont."
"message": "Kies de gewenste lay-out voor elke pagina waarop projectlijsten op dit apparaat worden weergegeven."
},
"settings.display.project-list-layouts.mod": {
"message": "Mods pagina"
@@ -5115,7 +5067,7 @@
"message": "Externe links openen in nieuw tabblad"
},
"settings.display.sidebar.hide-app-promos.description": {
"message": "Verbergt de \"Modrinth-app downloaden\" knoppen in de primaire navigatie. De Modrinth App-pagina is nog steeds te vinden op de startpagina of in de voettekst."
"message": "Verbergt de \"Modrinth-app downloaden\" knoppen in de hoofdnavigatie. De Modrinth App-pagina is nog steeds te vinden op de startpagina of in de voettekst."
},
"settings.display.sidebar.hide-app-promos.title": {
"message": "Promoties voor de Modrinth-app verbergen"
@@ -5243,6 +5195,33 @@
"settings.sidebar.label.display": {
"message": "Weergave "
},
"shared-instance.invite.accept": {
"message": "Uitnodiging accepteren"
},
"shared-instance.invite.inviter.unknown": {
"message": "Een Modrinth-gebruiker"
},
"shared-instance.invite.joined-count": {
"message": "{count, plural, one {# persoon heeft} other {# mensen hebben}} zich al aangesloten"
},
"shared-instance.invite.loading": {
"message": "Uitnodiging laden…"
},
"shared-instance.invite.title": {
"message": "{name} heeft je uitgenodigd om te spelen"
},
"shared-instance.invite.trust.description": {
"message": "Deze uitnodiging is aangemaakt door een andere Modrinth-gebruiker, niet door Modrinth zelf. Accepteer alleen uitnodigingen van mensen die je vertrouwt."
},
"shared-instance.invite.trust.heading": {
"message": "Ken je deze gebruiker?"
},
"shared-instance.invite.unavailable.description": {
"message": "Het kan zijn dat de uitnodiging is verlopen, dat de gebruikslimiet is bereikt of dat het is verwijderd door de persoon die het heeft gedeeld."
},
"shared-instance.invite.unavailable.title": {
"message": "Deze uitnodiging is niet beschikbaar"
},
"ui.latest-news-row.latest-news": {
"message": "Laatste nieuws van Modrinth"
},
@@ -5280,7 +5259,7 @@
"message": "Kies een versie om te downloaden"
},
"version.download.no-primary-file": {
"message": "Fout: geen primair bestand gevonden"
"message": "Fout: geen hoofdbestand gevonden"
},
"version.download.optional-resource-pack": {
"message": "Optioneel bronpakket"
-108
View File
@@ -2609,108 +2609,6 @@
"muralpay.warning.wallet-address": {
"message": "Dobbeltsjekk lommeboksadressa di. Penger sendt til feil adresse kan ikke bli gjenoppretta."
},
"profile.bio.fallback.creator": {
"message": "En Modrinth-skaper."
},
"profile.bio.fallback.user": {
"message": "En Modrinth-bruker."
},
"profile.button.analytics": {
"message": "Vis brukerstatistikk"
},
"profile.button.billing": {
"message": "Hold styr på brukerfakturering"
},
"profile.button.edit-role": {
"message": "Rediger rolle"
},
"profile.button.info": {
"message": "Vis brukerdetaljer"
},
"profile.button.manage-projects": {
"message": "Hold styr på prosjekt"
},
"profile.button.remove-affiliate": {
"message": "Fjern tilknyting"
},
"profile.button.set-affiliate": {
"message": "Sett som tilknyting"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# prosjekt} other {# prosjekter}}"
},
"profile.details.label.auth-providers": {
"message": "Autoriseringsgivere"
},
"profile.details.label.email": {
"message": "Epost"
},
"profile.details.label.email-verified": {
"message": "Epostbekreftelse"
},
"profile.details.label.has-password": {
"message": "Har passord"
},
"profile.details.label.has-totp": {
"message": "Har TOTP"
},
"profile.details.label.payment-methods": {
"message": "Betalingsmetoder"
},
"profile.details.tooltip.email-not-verified": {
"message": "Epost ikke bekrefta"
},
"profile.details.tooltip.email-verified": {
"message": "Epost bekrefta"
},
"profile.error.not-found": {
"message": "Bruker ikke funnet"
},
"profile.label.affiliate": {
"message": "Tilknytt"
},
"profile.label.badges": {
"message": "Merker"
},
"profile.label.collection": {
"message": "Samling"
},
"profile.label.joined": {
"message": "Blei med"
},
"profile.label.no-collections": {
"message": "Denne brukeren har ingen samlinger!"
},
"profile.label.no-collections-auth": {
"message": "Du har ikke noen samlinger.\nHar du lyst å <create-link>lage en</create-link>?"
},
"profile.label.no-projects": {
"message": "Denne brukeren har ingen prosjekt!"
},
"profile.label.no-projects-auth": {
"message": "Du har ikke noen prosjekt.\nHar du lyst å <create-link>lage en</create-link>?"
},
"profile.label.organizations": {
"message": "Organisasjoner"
},
"profile.label.saving": {
"message": "Lagrer..."
},
"profile.meta.description": {
"message": "Last ned prosjekta til {username} på Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Last ned prosjekta til {username} på Modrinth"
},
"profile.official-account": {
"message": "Offisiell Modrinth-bruker"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> prosjektfølger} other {<stat>{count}</stat> prosjektfølgere}}"
},
"profile.user-id": {
"message": "Bruker-ID: {id}"
},
"project-member-header.error-decline": {
"message": "Kunne ikke avslå laginvitasjonen"
},
@@ -3734,15 +3632,9 @@
"settings.authorizations.about-this-app": {
"message": "Om denne appen"
},
"settings.authorizations.by": {
"message": "fra"
},
"settings.authorizations.description": {
"message": "Når du autoriserer en applikasjon med Modrinth-kontoen din, så gir du tilgang til kontoen din. Du kan handere og gå gjennom tilgang til kontoen din her når som helst."
},
"settings.authorizations.empty-state": {
"message": "Vi kan ikke vise de autoriserte appene dine akkurat nå, vi jobber med å fikse det. Vær så snill å besøk denne sida seinere!"
},
"settings.authorizations.head-title": {
"message": "Autoriseringer"
},
+430 -112
View File
@@ -8,6 +8,18 @@
"admin.billing.error.not-found": {
"message": "Nie znaleziono użytkownika"
},
"ads-consent.accept": {
"message": "Zaakceptuj wszystko"
},
"ads-consent.body": {
"message": "Reklamy pozwalają na dalsze działanie Modrinth i finansują dochody dla twórców. Nasi partnerzy mogą gromadzić i uzyskiwać dostęp do plików cookies w celu personalizacji reklam i mierzenia skuteczności."
},
"ads-consent.manage": {
"message": "Zarządzaj preferencjami"
},
"ads-consent.reject": {
"message": "Odrzuć wszystko"
},
"ads-consent.title": {
"message": "Twoja prywatność i jak reklamy wspierają Modrinth"
},
@@ -932,6 +944,12 @@
"auth.verify-email.title": {
"message": "Zweryfikuj e-mail"
},
"collection.aria-label.upload-icon": {
"message": "Prześlij ikonę"
},
"collection.button.discover-mods": {
"message": "Odkrywaj modyfikacje"
},
"collection.button.edit-icon": {
"message": "Edytuj ikonę"
},
@@ -1106,6 +1124,135 @@
"create-project-version.create-modal.stage.add-files.admonition": {
"message": "Pliki uzupełniające to np. kod źródłowy, a nie alternatywne wersje lub wariacje."
},
"create-project-version.create-modal.stage.add-files.details-tab": {
"message": "Szczegóły"
},
"create-project-version.create-modal.stage.add-files.files-tab": {
"message": "Pliki"
},
"create-project-version.create-modal.stage.add-files.metadata-tab": {
"message": "Metadane"
},
"create-project-version.create-modal.stage.add-files.primary-file-description": {
"message": "Główny plik to ten, który zostanie domyślnie pobrany przez użytkownika instalującego ten projekt."
},
"create-project-version.create-modal.stage.add-files.primary-file-label": {
"message": "Plik główny"
},
"create-project-version.create-modal.stage.add-files.supplementary-files-description": {
"message": "Możesz opcjonalnie przesłać pliki dopełniające, takie jak kod źródłowy, dokumentacja lub wymagane paczki zasobów."
},
"create-project-version.create-modal.stage.add-files.supplementary-files-label": {
"message": "Pliki dodatkowe"
},
"create-project-version.create-modal.stage.add-files.upload-additional-file-aria-label": {
"message": "Prześlij plik dodatkowy"
},
"create-project-version.create-modal.stage.add-files.upload-file-aria-label": {
"message": "Prześlij plik"
},
"create-project-version.create-modal.stage.add-files.upload-primary-prompt": {
"message": "Prześlij główny plik oraz pliki pomocnicze"
},
"create-project-version.create-modal.stage.add-files.upload-secondary-prompt": {
"message": "Przeciągnij i upuść pliki tutaj, lub kliknij, aby przeglądać pliki"
},
"create-project-version.create-modal.stage.details.details-tab": {
"message": "Szczegóły"
},
"create-project-version.create-modal.stage.details.files-tab": {
"message": "Pliki"
},
"create-project-version.create-modal.stage.details.metadata-tab": {
"message": "Metadane"
},
"create-project-version.create-modal.stage.details.version-changelog": {
"message": "Zmiany w wersji"
},
"create-project-version.create-modal.stage.details.version-number": {
"message": "Numer wersji"
},
"create-project-version.create-modal.stage.details.version-number-description": {
"message": "Numer wersji odróżnia tę wersję od innych."
},
"create-project-version.create-modal.stage.details.version-number-placeholder": {
"message": "Wprowadź numer wersji, np. 1.2.3-alpha.1"
},
"create-project-version.create-modal.stage.details.version-subtitle": {
"message": "Podtytuł wersji"
},
"create-project-version.create-modal.stage.details.version-subtitle-placeholder": {
"message": "Wprowadź podtytuł..."
},
"create-project-version.create-modal.stage.details.version-type": {
"message": "Rodzaj wersji"
},
"create-project-version.create-modal.stage.metadata.add-dependency": {
"message": "Dodaj zależność"
},
"create-project-version.create-modal.stage.metadata.dependencies": {
"message": "Zależności"
},
"create-project-version.create-modal.stage.metadata.details-tab": {
"message": "Szczegóły"
},
"create-project-version.create-modal.stage.metadata.detected-loaders": {
"message": "Wykryte loadery"
},
"create-project-version.create-modal.stage.metadata.detected-versions": {
"message": "Wykryte wersje"
},
"create-project-version.create-modal.stage.metadata.edit-button": {
"message": "Edytuj"
},
"create-project-version.create-modal.stage.metadata.environment": {
"message": "Środowisko"
},
"create-project-version.create-modal.stage.metadata.files-tab": {
"message": "Pliki"
},
"create-project-version.create-modal.stage.metadata.loaders": {
"message": "Loadery"
},
"create-project-version.create-modal.stage.metadata.metadata-tab": {
"message": "Metadane"
},
"create-project-version.create-modal.stage.metadata.modpack-loaders-tooltip": {
"message": "Loadery paczek modów nie mogą być edytowane"
},
"create-project-version.create-modal.stage.metadata.modpack-versions-tooltip": {
"message": "Wersje gry paczek modów nie mogą być edytowane"
},
"create-project-version.create-modal.stage.metadata.no-dependencies-added": {
"message": "Nie dodano żadnych zależności."
},
"create-project-version.create-modal.stage.metadata.no-environment-set": {
"message": "Nie ustawiono środowiska."
},
"create-project-version.create-modal.stage.metadata.no-loaders-selected": {
"message": "Nie wybrano żadnych loaderów."
},
"create-project-version.create-modal.stage.metadata.no-mod-loader": {
"message": "Brak loadera modów"
},
"create-project-version.create-modal.stage.metadata.no-versions-selected": {
"message": "Nie wybrano żadnych wersji."
},
"create-project-version.create-modal.stage.metadata.prefilled-environment-tooltip": {
"message": "Wypełnione na wzór poprzedniej, podobnej wersji"
},
"create-project-version.create-modal.stage.metadata.resource-pack-loaders-tooltip": {
"message": "Loadery paczek zasobów nie mogą być edytowane"
},
"create-project-version.create-modal.stage.metadata.suggested": {
"message": "Sugerowane"
},
"create-project-version.create-modal.stage.metadata.uploaded-files": {
"message": "Przesłane pliki"
},
"create-project-version.create-modal.stage.metadata.versions": {
"message": "Wersje"
},
"create.collection.collection-info": {
"message": "Twoja nowa kolekcja zostanie stworzona jako publiczna kolekcja {count, plural, =0 {bez żadnych projektów} one {z # projektem} other {z # projektami}}."
},
@@ -1202,6 +1349,9 @@
"create.project.name-placeholder": {
"message": "Wprowadź nazwę projektu..."
},
"create.project.organization-icon-alt": {
"message": "Ikona {name}"
},
"create.project.owner-description": {
"message": "Ustaw siebie lub organizację, do której należysz, jako właściciela projektu."
},
@@ -1232,9 +1382,15 @@
"create.project.type-server": {
"message": "Serwer"
},
"create.project.unknown-user": {
"message": "Nieznany użytkownik"
},
"create.project.url-label": {
"message": "URL"
},
"create.project.user-avatar-alt": {
"message": "Awatar użytkownika"
},
"create.project.visibility-description": {
"message": "Widoczność Twojego projektu po zatwierdzeniu."
},
@@ -1316,6 +1472,9 @@
"dashboard.collections.sort.recently-updated": {
"message": "Ostatnio zaktualizowane"
},
"dashboard.creator-tax-form-modal.close-button": {
"message": "Zamknij"
},
"dashboard.creator-tax-form-modal.confirmation.download-button": {
"message": "Pobierz {formType}"
},
@@ -1343,6 +1502,12 @@
"dashboard.creator-tax-form-modal.header": {
"message": "Formularz podatkowy"
},
"dashboard.creator-tax-form-modal.incomplete.text": {
"message": "Nie skończono wypełniać formularza podatkowego. Spróbuj ponownie."
},
"dashboard.creator-tax-form-modal.incomplete.title": {
"message": "Formularz podatkowy nie jest kompletny"
},
"dashboard.creator-tax-form-modal.security.description": {
"message": "Modrinth używa dostawcy będącego stroną trzecią, Track1099, by bezpiecznie zbierać i przechowywać Twoje formularze podatkowe. <security-link>Dowiedz się więcej.</security-link>"
},
@@ -1382,6 +1547,9 @@
"dashboard.creator-withdraw-modal.kyc.business-entity": {
"message": "Podmiot gospodarczy"
},
"dashboard.creator-withdraw-modal.kyc.date-of-birth-placeholder": {
"message": "Wprowadź datę urodzenia"
},
"dashboard.creator-withdraw-modal.kyc.entity-description": {
"message": "Podmiot gospodarczy to na przykład korporacja, spółka osobowa bądź sp. z.o.o."
},
@@ -1391,6 +1559,12 @@
"dashboard.creator-withdraw-modal.kyc.private-individual": {
"message": "Osoba prywatna"
},
"dashboard.creator-withdraw-modal.kyc.search-countries-placeholder": {
"message": "Szukaj kraju..."
},
"dashboard.creator-withdraw-modal.kyc.search-subdivisions-placeholder": {
"message": "Wyszukaj podstrefy..."
},
"dashboard.creator-withdraw-modal.method-selection.country-placeholder": {
"message": "Wybierz swój kraj"
},
@@ -1526,6 +1700,21 @@
"dashboard.creator-withdraw-modal.tremendous-details.enter-denomination-placeholder": {
"message": "Wprowadź kwotę"
},
"dashboard.creator-withdraw-modal.tremendous-details.minimum-denomination-exceeds-balance": {
"message": "Minimalna wartość wynosi {min}, wykraczając poza twój balans wynoszący {balance}."
},
"dashboard.creator-withdraw-modal.tremendous-details.need-at-least-gift-card": {
"message": "Potrzebujesz co najmniej {min} aby móc użyć tej kart podarunkowej."
},
"dashboard.creator-withdraw-modal.tremendous-details.no-denominations-available": {
"message": "Brak kart o wartości mniejszej niż twój balans"
},
"dashboard.creator-withdraw-modal.tremendous-details.no-suggestions-no-max": {
"message": "Brak kart o wartości bliskiej szukanej"
},
"dashboard.creator-withdraw-modal.tremendous-details.no-suggestions-with-max": {
"message": "Brak kart o wartości bliskiej szukanej. Najwyższa dostępna wartość to {max}."
},
"dashboard.creator-withdraw-modal.tremendous-details.payment-method": {
"message": "Metoda płatności"
},
@@ -1541,6 +1730,12 @@
"dashboard.creator-withdraw-modal.tremendous-details.search-amount-label": {
"message": "Szukaj kwoty"
},
"dashboard.creator-withdraw-modal.tremendous-details.search-category-placeholder": {
"message": "Wyszukaj {category}..."
},
"dashboard.creator-withdraw-modal.tremendous-details.select-category-placeholder": {
"message": "Wybierz {category}"
},
"dashboard.creator-withdraw-modal.tremendous-details.select-denomination-hint": {
"message": "Wybierz nominał:"
},
@@ -1559,6 +1754,12 @@
"dashboard.creator-withdraw-modal.tremendous-details.usd-paypal-warning-message": {
"message": "Wybrano walutę USD w opcji międzynarodowej PayPal. <direct-paypal-link>Przełącz się na bezpośredni PayPal</direct-paypal-link> dla niższych opłat (≈2% zamiast ≈6%)."
},
"dashboard.creator-withdraw-modal.tremendous-details.withdrawal-amount-min-max": {
"message": "Minimalnie {min}, maksymalnie {max} możliwe do odebrania."
},
"dashboard.creator-withdraw-modal.tremendous-details.withdrawal-amount-min-only": {
"message": "Minimalnie {min} możliwe do odebrania."
},
"dashboard.creator-withdraw-modal.withdraw-button": {
"message": "Wypłać"
},
@@ -1922,6 +2123,12 @@
"dashboard.withdraw.error.minimum-not-met.title": {
"message": "Zbyt niska kwota"
},
"dashboard.withdraw.error.payout-method-disabled.text": {
"message": "Ta metoda wypłaty została zablokowana przez dostawcę płatności. Użyj innej metody wypłaty lub skontaktuj się z obsługą klienta."
},
"dashboard.withdraw.error.payout-method-disabled.title": {
"message": "Metoda wypłaty jest niedostępna"
},
"dashboard.withdraw.error.paypal-country-mismatch.text": {
"message": "Proszę użyć poprawnej opcji transferu Paypal dla twojego regionu(Stany Zjednoczone lub Międzynarodowe)."
},
@@ -2219,6 +2426,24 @@
"hosting-marketing.medal.text-secondary": {
"message": "Oferta ograniczona czasowo. Karta kredytowa nie jest wymagana. Dostępne dla serwerów w USA."
},
"hosting-marketing.notification.error-fetching-payment-data-title": {
"message": "Błąd podczas pobierania danych o płatności"
},
"hosting-marketing.notification.invalid-product-text": {
"message": "Wybrany produkt został znaleziony, ale brakuje mu potrzebnych danych. Skontaktuj się z obsługą klienta."
},
"hosting-marketing.notification.invalid-product-title": {
"message": "Nieprawidłowy produkt"
},
"hosting-marketing.notification.server-capacity-full-text": {
"message": "Nasz serwer jest obecnie przepełniony. Spróbuj ponownie później."
},
"hosting-marketing.notification.server-capacity-full-title": {
"message": "Serwer przepełniony"
},
"hosting-marketing.notification.unexpected-error-text": {
"message": "Wystąpił nieoczekiwany błąd"
},
"hosting-marketing.pick-customized-plan": {
"message": "Wybierz spersonalizowany plan z parametrami, których potrzebujesz."
},
@@ -2537,6 +2762,21 @@
"layout.footer.about.status": {
"message": "Status"
},
"layout.footer.based-on-label": {
"message": "Na podstawie"
},
"layout.footer.developer-mode-activated.text": {
"message": "Tryb dewelopera został włączony"
},
"layout.footer.developer-mode-activated.title": {
"message": "Włączono tryb dewelopera"
},
"layout.footer.developer-mode-deactivated.text": {
"message": "Tryb dewelopera został wyłączony"
},
"layout.footer.developer-mode-deactivated.title": {
"message": "Wyłączono tryb dewelopera"
},
"layout.footer.legal": {
"message": "Polityka"
},
@@ -2606,6 +2846,9 @@
"layout.footer.social.x": {
"message": "X"
},
"layout.footer.unknown-commit": {
"message": "nieznany"
},
"layout.menu-toggle.action": {
"message": "Przełącz menu"
},
@@ -2675,6 +2918,30 @@
"layout.publish.email-verification-required.title": {
"message": "Wymagana weryfikacja adresu e-mail"
},
"modal.shared-instance.open-in-app.benefit.install": {
"message": "Automatycznie instaluj to, w co grają"
},
"modal.shared-instance.open-in-app.benefit.join": {
"message": "Graj w to samo, co Twoi znajomi"
},
"modal.shared-instance.open-in-app.benefit.update": {
"message": "Otrzymuj aktualizacje do udostępnionej zawartości, gdy zostanie zmieniona"
},
"modal.shared-instance.open-in-app.get-app": {
"message": "Pobierz Modrinth App"
},
"modal.shared-instance.open-in-app.managed-by": {
"message": "Zarządzane przez"
},
"modal.shared-instance.open-in-app.opening-automatically": {
"message": "Modrinth App zostanie otwarte automatycznie..."
},
"modal.shared-instance.open-in-app.title": {
"message": "Otwieranie Modrinth App"
},
"modal.shared-instance.open-in-app.why-use": {
"message": "Czemu warto używać Modrinth App"
},
"moderation.exclude-technical-review": {
"message": "Wyklucz RT"
},
@@ -2696,6 +2963,15 @@
"moderation.page.technicalReview": {
"message": "Przegląd techniczny"
},
"modpack-scan-modal.batch.label": {
"message": "{amount} na stronę"
},
"modpack-scan-modal.batch.placeholder": {
"message": "Ilość elementów na stronę"
},
"modpack-scan-modal.delete-all-groups.proceed": {
"message": "Wyczyść"
},
"modpack-scan-modal.failed": {
"message": "Błąd"
},
@@ -2727,11 +3003,14 @@
"message": "Zeskanuj wszystkie pliki"
},
"modpack-scan-modal.scan-error": {
"message": "Nie udało się zeskanować niektórych plików: {error}"
"message": "Nie udało się zeskanować niektórych plików: \n\n{error}"
},
"modpack-scan-modal.scanning": {
"message": "Skanowanie..."
},
"modpack-scan-modal.success": {
"message": "Sukces"
},
"modpack-scan-modal.title": {
"message": "Skanowanie paczki modów ({scanned}/{total} plików)"
},
@@ -3020,116 +3299,23 @@
"organization.label.projects": {
"message": "projektów"
},
"profile.bio.fallback.creator": {
"message": "Twórca na Modrinth."
"organization.project-transfer.id-column": {
"message": "ID"
},
"profile.bio.fallback.user": {
"message": "Użytkownik Modrinth."
"organization.project-transfer.name-column": {
"message": "Nazwa"
},
"profile.button.analytics": {
"message": "Pokaż dane analityczne użytkownika"
"organization.project-transfer.project-icon-alt": {
"message": "Ikona {name}"
},
"profile.button.billing": {
"message": "Zarządzaj rozliczaniem użytkownika"
"organization.project-transfer.type-column": {
"message": "Rodzaj"
},
"profile.button.edit-role": {
"message": "Edytuj rolę"
"organization.projects.none": {
"message": "Ta organizacja nie ma jeszcze żadnych projektów."
},
"profile.button.info": {
"message": "Otwórz szczegóły użytkownika"
},
"profile.button.manage-projects": {
"message": "Zarządzaj projektami"
},
"profile.button.remove-affiliate": {
"message": "Usuń afiliację"
},
"profile.button.set-affiliate": {
"message": "Ustaw jako afiliację"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# projekt} few {# projekty} other {# projektów}}"
},
"profile.details.label.auth-providers": {
"message": "Dostawcy uwierzytelniania"
},
"profile.details.label.email": {
"message": "E-mail"
},
"profile.details.label.email-verified": {
"message": "Zweryfikowano e-mail"
},
"profile.details.label.has-password": {
"message": "Ma hasło"
},
"profile.details.label.has-totp": {
"message": "Ma TOTP"
},
"profile.details.label.payment-methods": {
"message": "Metody płatności"
},
"profile.details.tooltip.email-not-verified": {
"message": "E-mail nie jest zweryfikowany"
},
"profile.details.tooltip.email-verified": {
"message": "E-mail jest zweryfikowany"
},
"profile.error.not-found": {
"message": "Nie znaleziono użytkownika"
},
"profile.label.affiliate": {
"message": "Afiliacja"
},
"profile.label.badges": {
"message": "Odznaki"
},
"profile.label.collection": {
"message": "Kolekcja"
},
"profile.label.download-count": {
"message": "{count, plural, one {pobranie} few {pobrania} other {pobrań}}"
},
"profile.label.joined": {
"message": "Dołączył(-a)"
},
"profile.label.no-collections": {
"message": "Ten użytkownik nie ma żadnych kolekcji!"
},
"profile.label.no-collections-auth": {
"message": "Nie masz żadnych kolekcji.\nCzy chcesz <create-link>utworzyć jedną</create-link>?"
},
"profile.label.no-projects": {
"message": "Ten użytkownik nie ma żadnych projektów!"
},
"profile.label.no-projects-auth": {
"message": "Nie masz żadnych projektów.\nCzy chcesz <create-link>utworzyć nowy</create-link>?"
},
"profile.label.organizations": {
"message": "Organizacje"
},
"profile.label.project-count": {
"message": "{count, plural, one {projekt} few {projekty} other {projektów}}"
},
"profile.label.saving": {
"message": "Zapisywanie..."
},
"profile.meta.description": {
"message": "Pobieraj projekty {username} na Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Pobieraj projekty {username} na Modrinth"
},
"profile.official-account": {
"message": "Oficjalne konto Modrinth"
},
"profile.official-account.bio": {
"message": "Oficjalne konto Modrinth. Otrzymaj wsparcie na stronie <support-link></support-link> lub poprzez e-mail <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> obserwujący projekt} other {<stat>{count}</stat> obserwujących projekt}}"
},
"profile.user-id": {
"message": "ID użytkownika: {id}"
"organization.projects.none-with-create-prompt": {
"message": "Ta organizacja nie ma jeszcze żadnych projektów. Czy chcesz <create-link>utworzyć nowy</create-link>?"
},
"project-member-header.error-decline": {
"message": "Odrzucenie zaproszenia do zespołu nie powiodło się"
@@ -3431,6 +3617,9 @@
"project.gallery.title": {
"message": "Galeria"
},
"project.install-context.back-to-discover": {
"message": "Powróć do odkrywania"
},
"project.moderation.admonition.approved.body.private": {
"message": "Twój projekt jest prywatny, co oznacza, że jest widoczny tylko dla ciebie i tych, których zaprosisz."
},
@@ -3476,6 +3665,9 @@
"project.moderation.admonition.under-review.body.4": {
"message": "Staramy się zakończyć przegląd w 24-48 godzin, ale sprawdzanie niektórych projektów może zająć dłużej. Nie oznacza to, że coś jest nie tak z Twoim projektem."
},
"project.moderation.admonition.under-review.body.4.alt-week": {
"message": "Staramy się zakończyć przegląd w tydzień, ale sprawdzanie niektórych projektów może zająć dłużej. Nie oznacza to, że coś jest nie tak z Twoim projektem."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>Dziękujemy za cierpliwość podczas gdy nasi moderatorzy pracują ciężko by zapewnić, że Modrinth jest bezpiecznym miejscem i żeby Twój projekt został opublikowany! 💚</emphasis>"
},
@@ -3593,6 +3785,9 @@
"project.settings.permissions.completed.title": {
"message": "Uprawnienia gotowe!"
},
"project.settings.permissions.delete-all-groups": {
"message": "Usuń wszystkie grupy"
},
"project.settings.permissions.empty-state.description": {
"message": "Żadne z wersji Twojego projektu nie zawierają zewnętrznej zawartości, więc nie musisz martwić się o uzyskanie zezwoleń."
},
@@ -3641,6 +3836,60 @@
"project.settings.permissions.sort.status": {
"message": "Status"
},
"project.settings.server.bedrock-address-label": {
"message": "Adres Bedrock"
},
"project.settings.server.cannot-save-title": {
"message": "Nie udało się zapisać"
},
"project.settings.server.details-heading": {
"message": "Szczegóły o serwerze"
},
"project.settings.server.enter-address-placeholder": {
"message": "Wprowadź adres"
},
"project.settings.server.java-address-label": {
"message": "Adres Java"
},
"project.settings.server.languages-label": {
"message": "Języki"
},
"project.settings.server.optional-label": {
"message": "opcjonalne"
},
"project.settings.server.refresh-ping-tooltip": {
"message": "Odśwież ping"
},
"project.settings.server.region-label": {
"message": "Region"
},
"project.settings.server.select-languages-placeholder": {
"message": "Wybierz języki"
},
"project.settings.server.select-region-placeholder": {
"message": "Wybierz region"
},
"project.settings.server.server-online": {
"message": "Serwer jest online!"
},
"project.settings.tags.featured-tags": {
"message": "Wyróżnione tagi"
},
"project.settings.tags.featured-tags-description": {
"message": "Możesz wyróżnić 3 z najlepiej pasujących do Twojego projektu tagów. Inne tagi mogą zostać pokazane jako wyróżnione, jeżeli nie wybierzesz wszystkich trzech."
},
"project.settings.tags.features-description": {
"message": "Wszystkie funkcjonalności, których używa {type}"
},
"project.settings.tags.resolutions-description": {
"message": "Rozdzielczość tekstur, którą ma {type}."
},
"project.settings.tags.title": {
"message": "Tagi"
},
"project.settings.tags.upload-version-first": {
"message": "Prześlij wersję, by móc wybierać tagi!"
},
"project.settings.title": {
"message": "Ustawienia"
},
@@ -3650,9 +3899,51 @@
"project.status.archived.message": {
"message": "{title} zostało zarchiwizowane. {title} nie będzie otrzymywać żadnych dalszych aktualizacji, chyba że autor zdecyduje się przywrócić projekt."
},
"project.versions.copy-id-option": {
"message": "Kopiuj ID"
},
"project.versions.copy-link-option": {
"message": "Kopiuj łącze"
},
"project.versions.copy-maven-coordinates-option": {
"message": "Kopiuj koordynaty Maven"
},
"project.versions.delete-button": {
"message": "Usuń"
},
"project.versions.delete-confirm.description": {
"message": "Usunie to wersję na zawsze (na serio na zawsze)."
},
"project.versions.delete-confirm.title": {
"message": "Czy na pewno chcesz usunąć tę wersję?"
},
"project.versions.edit-details-option": {
"message": "Edytuj szczegóły"
},
"project.versions.edit-files-option": {
"message": "Edytuj pliki"
},
"project.versions.edit-metadata-option": {
"message": "Edytuj metadane"
},
"project.versions.edit-version-tooltip": {
"message": "Edytuj wersję"
},
"project.versions.open-in-new-tab-option": {
"message": "Otwórz w nowej karcie"
},
"project.versions.share-option": {
"message": "Udostępnij"
},
"project.versions.title": {
"message": "Wersje"
},
"project.versions.version-deleted-text": {
"message": "Wersja została usunięta pomyślnie."
},
"project.versions.version-deleted-title": {
"message": "Wersja usunięta"
},
"project.versions.withheld-versions-warning.description": {
"message": "{count, plural, one {Ta wersja jest} other {Te wersje są}} obecnie wstrzymane i nie widnieją na publicznej liście. Proszę o przesłanie potwierdzenia posiadania zgody na redystrybucję określonych plików zawartych w {count, plural, one {tej wersji} other {tych wersjach}} modpacka."
},
@@ -4067,6 +4358,9 @@
"servers.plan.small.description": {
"message": "Idealny dla 15 przyjaciół z kilkoma lekkimi modami."
},
"servers.purchase.step.plan.most-popular": {
"message": "Najbardziej popularny"
},
"settings.account.button.complete-setup": {
"message": "Zakończ ustawianie"
},
@@ -4421,15 +4715,9 @@
"settings.authorizations.about-this-app": {
"message": "O aplikacji"
},
"settings.authorizations.by": {
"message": "od"
},
"settings.authorizations.description": {
"message": "Kiedy autoryzujesz aplikacje ze swoim kontem Modrinth, dajesz jej dostęp do swojego konta. Możesz tutaj zawsze zarządzać oraz przeglądać stan aplikacji z dostępem do Twojego konta."
},
"settings.authorizations.empty-state": {
"message": "Nie udało się nam wyświetlić twoich zautoryzowanych aplikacji, pracujemy nad tym, aby to naprawić. Odwiedź tę stronę później!"
},
"settings.authorizations.head-title": {
"message": "Autoryzacje"
},
@@ -4838,6 +5126,33 @@
"settings.sidebar.label.display": {
"message": "Wyświetlanie"
},
"shared-instance.invite.accept": {
"message": "Zaakceptuj zaproszenie"
},
"shared-instance.invite.inviter.unknown": {
"message": "Użytkownik Modrinth"
},
"shared-instance.invite.joined-count": {
"message": "{count, plural, one {# osoba już dołączyła} other {# osób już dołączyło}}"
},
"shared-instance.invite.loading": {
"message": "Ładowanie zaproszenia…"
},
"shared-instance.invite.title": {
"message": "Użytkownik {name} zaprosił Cię do grania w"
},
"shared-instance.invite.trust.description": {
"message": "To zaproszenie zostało utworzone przez innego użytkownika Modrinth, na przez Modrinth. Akceptuj zaproszenia tylko od osób, którym ufasz."
},
"shared-instance.invite.trust.heading": {
"message": "Czy znasz tego użytkownika?"
},
"shared-instance.invite.unavailable.description": {
"message": "Mogło ono wygasnąć, przekroczyć limit użyć lub zostać usunięte przez osobę, która go udostępniła."
},
"shared-instance.invite.unavailable.title": {
"message": "To zaproszenie jest niedostępne"
},
"ui.latest-news-row.latest-news": {
"message": "Najnowsze aktualności z Modrinth"
},
@@ -4910,6 +5225,9 @@
"version.environment.unknown.title": {
"message": "Nieznane środowisko"
},
"version.notification.deleted-text": {
"message": "Wersja została usunięta pomyślnie."
},
"version.notification.deleted-title": {
"message": "Wersja usunięta"
},
+104 -128
View File
@@ -174,10 +174,10 @@
"message": "Exibindo {count} {itemType, select, project {{count, plural, one {projeto} other {os projetos}}} country {{count, plural, one {país} other {os países}}} monetization {{count, plural, one {valor monetário} other {os valores monetários}}} downloadSource {{count, plural, one {fonte do download} other {as fontes do download}}} downloadReason {{count, plural, one {motivo do download} other {os motivos do download}}} member {{count, plural, one {membro} other {os membros}}} projectVersion {{count, plural, one {versão do projeto} other {as versões do projeto}}} loader {{count, plural, one {loader} other {os loaders}}} gameVersion {{count, plural, one {versão do jogo} other {as versões do jogo}}} other {{count, plural, one {item} other {itens}}}} do topo da tabela"
},
"analytics.chart.tooltip.dependent-on-project": {
"message": "Dependente em {project}"
"message": "Dependente de {project}"
},
"analytics.chart.tooltip.dependent-project-version": {
"message": "{dependentProject} dependente em {dependencyProject}, {version}"
"message": "{dependentProject} dependente de {dependencyProject}, {version}"
},
"analytics.chart.tooltip.duration.days": {
"message": "{count, plural, one {# dia} other {# dias}}"
@@ -744,7 +744,7 @@
"message": "Autorizar"
},
"auth.authorize.action.decline": {
"message": "Negar"
"message": "Rejeitar"
},
"auth.authorize.app-info": {
"message": "<strong>{appName}</strong> por <creator-link>{creator}</creator-link> poderá:"
@@ -1665,7 +1665,7 @@
"message": "Nome de usuário Venmo salvo com sucesso!"
},
"dashboard.creator-withdraw-modal.paypal-details.sign-in-with-paypal": {
"message": "Iniciar sessão com o PayPal"
"message": "Iniciar sessão com PayPal"
},
"dashboard.creator-withdraw-modal.paypal-details.venmo-description": {
"message": "Insira o nome de usuário Venmo para receber pagamentos."
@@ -2132,6 +2132,12 @@
"dashboard.withdraw.error.minimum-not-met.title": {
"message": "Quantia muito baixo"
},
"dashboard.withdraw.error.payout-method-disabled.text": {
"message": "Este método de pagamento foi desativado pelo provedor de pagamento. Use o método de pagamento diferente ou entre em contato com o suporte."
},
"dashboard.withdraw.error.payout-method-disabled.title": {
"message": "Método de pagamento indisponível"
},
"dashboard.withdraw.error.paypal-country-mismatch.text": {
"message": "Selecione a opção de transferência do PayPal correspondente à sua região (BR ou Internacional)."
},
@@ -2499,10 +2505,10 @@
"message": "Selecione o plano"
},
"landing.button.discover-mods": {
"message": "Descubra mods"
"message": "Descobrir mods"
},
"landing.button.go-to-dashboard": {
"message": "Visitar painel"
"message": "Acessar painel"
},
"landing.creator.feature.constantly-evolving.description": {
"message": "Obtenha a melhor experiência possível de mods com atualizações constantes da equipe do Modrinth"
@@ -2583,7 +2589,7 @@
"message": "servidores"
},
"landing.heading.the-place-for-minecraft.shaders": {
"message": "sombreadores"
"message": "shaders"
},
"landing.launcher.atlauncher-label": {
"message": "ATLauncher"
@@ -2921,6 +2927,30 @@
"layout.publish.email-verification-required.title": {
"message": "Verificação de e-mail necessária"
},
"modal.shared-instance.open-in-app.benefit.install": {
"message": "Instalar tudo automaticamente enquanto estiver jogando"
},
"modal.shared-instance.open-in-app.benefit.join": {
"message": "Jogue o mesmo conteúdo que seus amigos"
},
"modal.shared-instance.open-in-app.benefit.update": {
"message": "Mantenha o conteúdo compartilhado atualizado a cada mudança"
},
"modal.shared-instance.open-in-app.get-app": {
"message": "Baixe o Modrinth App"
},
"modal.shared-instance.open-in-app.managed-by": {
"message": "Gerenciado por"
},
"modal.shared-instance.open-in-app.opening-automatically": {
"message": "O Modrinth App vai abrir automaticamente..."
},
"modal.shared-instance.open-in-app.title": {
"message": "Abrindo o Modrinth App"
},
"modal.shared-instance.open-in-app.why-use": {
"message": "Por que usar o Modrinth App"
},
"moderation.exclude-technical-review": {
"message": "Excluir RT"
},
@@ -2942,8 +2972,23 @@
"moderation.page.technicalReview": {
"message": "Revisão técnica"
},
"modpack-scan-modal.clear-all-groups": {
"message": "Limpar todos os grupos"
"modpack-scan-modal.batch.label": {
"message": "{amount} por lote"
},
"modpack-scan-modal.batch.placeholder": {
"message": "Quantidade do lote"
},
"modpack-scan-modal.delete-all-groups-confirmation.description": {
"message": "Isso excluirá permanentemente todos os grupos de atribuição para este projeto e todos os arquivos contidos. Esta ação não pode ser desfeita."
},
"modpack-scan-modal.delete-all-groups.error": {
"message": "Falhou ao excluir todos os grupos: {error}"
},
"modpack-scan-modal.delete-all-groups.proceed": {
"message": "Excluir"
},
"modpack-scan-modal.delete-all-groups.success": {
"message": "Todos os grupos excluídos com sucesso."
},
"modpack-scan-modal.failed": {
"message": "Falhou"
@@ -2976,11 +3021,14 @@
"message": "Verificar todos os arquivos"
},
"modpack-scan-modal.scan-error": {
"message": "Alguns arquivos não puderam ser verificados: {error}"
"message": "Alguns arquivos falharam ao escanear: \n\n{error}"
},
"modpack-scan-modal.scanning": {
"message": "Verificando..."
},
"modpack-scan-modal.success": {
"message": "Sucesso"
},
"modpack-scan-modal.title": {
"message": "Verificação do pacote de mods ({scanned}/{total} Arquivos)"
},
@@ -3296,117 +3344,6 @@
"organization.projects.none-with-create-prompt": {
"message": "Esta organização ainda não tem nenhum projeto. Gostaria de <create-link>criar um</create-link>?"
},
"profile.bio.fallback.creator": {
"message": "Um criador Modrinth."
},
"profile.bio.fallback.user": {
"message": "Usuário comum."
},
"profile.button.analytics": {
"message": "Ver estatísticas do usuário"
},
"profile.button.billing": {
"message": "Gerenciar cobrança do usuário"
},
"profile.button.edit-role": {
"message": "Editar cargo"
},
"profile.button.info": {
"message": "Ver detalhes do usuário"
},
"profile.button.manage-projects": {
"message": "Gerenciar projetos"
},
"profile.button.remove-affiliate": {
"message": "Remover como afiliado"
},
"profile.button.set-affiliate": {
"message": "Configurar como afiliado"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# projeto} other {# projetos}}"
},
"profile.details.label.auth-providers": {
"message": "Provedores de autenticação"
},
"profile.details.label.email": {
"message": "E-mail"
},
"profile.details.label.email-verified": {
"message": "E-mail verificado"
},
"profile.details.label.has-password": {
"message": "Possui senha"
},
"profile.details.label.has-totp": {
"message": "Possui TOTP"
},
"profile.details.label.payment-methods": {
"message": "Métodos de pagamento"
},
"profile.details.tooltip.email-not-verified": {
"message": "E-mail não verificado"
},
"profile.details.tooltip.email-verified": {
"message": "E-mail verificado"
},
"profile.error.not-found": {
"message": "Usuário não encontrado"
},
"profile.label.affiliate": {
"message": "Afiliado"
},
"profile.label.badges": {
"message": "Emblemas"
},
"profile.label.collection": {
"message": "Coleção"
},
"profile.label.download-count": {
"message": "{count, plural, one {download} other {downloads}}"
},
"profile.label.joined": {
"message": "Entrou"
},
"profile.label.no-collections": {
"message": "Este usuário não possui coleções!"
},
"profile.label.no-collections-auth": {
"message": "Você não tem nenhuma coleção.\nGostaria de <create-link>criar uma</create-link>?"
},
"profile.label.no-projects": {
"message": "Este usuário não tem projetos!"
},
"profile.label.no-projects-auth": {
"message": "Você não tem nenhum projeto.\nGostaria de <create-link>criar um</create-link>?"
},
"profile.label.organizations": {
"message": "Organizações"
},
"profile.label.project-count": {
"message": "{count, plural, one {projeto} other {projetos}}"
},
"profile.label.saving": {
"message": "Salvando..."
},
"profile.meta.description": {
"message": "Baixe os projetos de {username} no Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} — Baixe os projetos de {username} no Modrinth"
},
"profile.official-account": {
"message": "Conta oficial do Modrinth"
},
"profile.official-account.bio": {
"message": "Conta oficial do Modrinth. Obtenha suporte em<support-link></support-link> ou por e-mail via <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, =0 {{count} seguidores} one {<stat>{count}</stat> seguidor} other {<stat>{count}</stat> seguidores}} do projeto"
},
"profile.user-id": {
"message": "ID do usuário: {id}"
},
"project-member-header.error-decline": {
"message": "Falha ao recusar o convite da equipe"
},
@@ -3756,7 +3693,10 @@
"message": "Você ainda pode modificar seu projeto, isso não afetará sua posição na fila."
},
"project.moderation.admonition.under-review.body.4": {
"message": "Nosso objetivo é analisar as submissões em 24 a 48 horas, mas alguns projetos podem sofrer atrasos. Isso não significa que haja algum problema com a sua submissão."
"message": "Buscamos revisar submissões dentro de 2448 horas, mas alguns projetos talvez sofram atrasos. Isso não significa que há um problema com sua submissão."
},
"project.moderation.admonition.under-review.body.4.alt-week": {
"message": "Buscamos revisar submissões dentro de uma semana, mas alguns projetos talvez sofram atrasos. Isso não significa que há um problema com sua submissão."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>Agradecemos sua paciência enquanto nossos moderadores trabalham arduamente para manter o Modrinth seguro e estamos ansiosos para ajudá-lo(a) a compartilhar seu conteúdo! 💚</emphasis>"
@@ -3875,6 +3815,21 @@
"project.settings.permissions.completed.title": {
"message": "Permissões concluídas!"
},
"project.settings.permissions.delete-all-groups": {
"message": "Excluir todos os grupos"
},
"project.settings.permissions.delete-all-groups-confirmation.description": {
"message": "Isso excluirá permanentemente {count, plural, one {# grupo de atribuição} other {todos os # grupos de atribuição}} para este projeto e todos arquivos contidos. Esta ação não pode ser desfeita."
},
"project.settings.permissions.delete-all-groups-confirmation.title": {
"message": "Excluir todos os grupos de atribuição?"
},
"project.settings.permissions.delete-all-groups-error": {
"message": "Não foi possível excluir todos os grupos de atribuição"
},
"project.settings.permissions.delete-all-groups-success": {
"message": "Todos os grupos de atribuição foram excluídos."
},
"project.settings.permissions.empty-state.description": {
"message": "Nenhuma das versões do seu projeto contém conteúdo externo, não há o que se preocupar sobre adquirir permissões."
},
@@ -4847,15 +4802,9 @@
"settings.authorizations.about-this-app": {
"message": "Sobre este aplicativo"
},
"settings.authorizations.by": {
"message": "por"
},
"settings.authorizations.description": {
"message": "Ao autorizar um aplicativo com sua conta do Modrinth, você concede acesso à sua conta. Você pode gerenciar e revisar o acesso à sua conta aqui a qualquer momento."
},
"settings.authorizations.empty-state": {
"message": "No momento, não podemos exibir seus aplicativos autorizados. Estamos trabalhando para corrigir isso. Visite esta página novamente mais tarde!"
},
"settings.authorizations.head-title": {
"message": "Autorizações"
},
@@ -5264,6 +5213,33 @@
"settings.sidebar.label.display": {
"message": "Interface"
},
"shared-instance.invite.accept": {
"message": "Aceitar convite"
},
"shared-instance.invite.inviter.unknown": {
"message": "Um usuário do Modrinth"
},
"shared-instance.invite.joined-count": {
"message": "{count, plural, one {# pessoa} other {# pessoas}} já entraram"
},
"shared-instance.invite.loading": {
"message": "Carregando convite…"
},
"shared-instance.invite.title": {
"message": "{name} convidou você para jogar"
},
"shared-instance.invite.trust.description": {
"message": "Este convite foi criado por outro usuário do Modrinth, não pelo próprio Modrinth. Só aceite convites de pessoas que você confia."
},
"shared-instance.invite.trust.heading": {
"message": "Você conhece este usuário?"
},
"shared-instance.invite.unavailable.description": {
"message": "Pode ter expirado, atingido o limite de uso ou ter sido removido pela pessoa que o compartilhou."
},
"shared-instance.invite.unavailable.title": {
"message": "Este convite não está disponível"
},
"ui.latest-news-row.latest-news": {
"message": "Notícias recentes do Modrinth"
},
@@ -2501,99 +2501,6 @@
"muralpay.warning.wallet-address": {
"message": "Confirme o endereço da carteira. Fundos enviados para um endereço errado não podem ser recuperados."
},
"profile.bio.fallback.creator": {
"message": "Um criador Modrinth."
},
"profile.bio.fallback.user": {
"message": "Um utilizador Modrinth."
},
"profile.button.billing": {
"message": "Gerir faturação do utilizador"
},
"profile.button.edit-role": {
"message": "Editar cargo"
},
"profile.button.info": {
"message": "Ver detalhes de utilizador"
},
"profile.button.manage-projects": {
"message": "Gerir projetos"
},
"profile.button.remove-affiliate": {
"message": "Remover como afiliado"
},
"profile.button.set-affiliate": {
"message": "Definir como afiliado"
},
"profile.details.label.auth-providers": {
"message": "Fornecedores de Autenticação"
},
"profile.details.label.email": {
"message": "E-mail"
},
"profile.details.label.email-verified": {
"message": "E-mail verificado"
},
"profile.details.label.has-password": {
"message": "Tem password"
},
"profile.details.label.has-totp": {
"message": "Tem TOTP"
},
"profile.details.label.payment-methods": {
"message": "Métodos de pagamento"
},
"profile.details.tooltip.email-not-verified": {
"message": "E-mail não verificado"
},
"profile.details.tooltip.email-verified": {
"message": "E-mail verificado"
},
"profile.error.not-found": {
"message": "Utilizador não encontrado"
},
"profile.label.affiliate": {
"message": "Afiliado"
},
"profile.label.badges": {
"message": "Emblemas"
},
"profile.label.collection": {
"message": "Coleção"
},
"profile.label.joined": {
"message": "Entrou"
},
"profile.label.no-collections": {
"message": "Este utilizador não tem coleções!"
},
"profile.label.no-collections-auth": {
"message": "Não tens nenhuma coleção.\nQueres <create-link>criar uma</create-link>?"
},
"profile.label.no-projects": {
"message": "Este utilizador não tem projetos!"
},
"profile.label.no-projects-auth": {
"message": "Não tens nenhum projeto.\nQueres <create-link>criar um</create-link>?"
},
"profile.label.organizations": {
"message": "Organizações"
},
"profile.label.saving": {
"message": "A guardar..."
},
"profile.meta.description": {
"message": "Transfere os projetos de {username} no Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Transfere os projetos de {username} no Modrinth"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> seguidor do projeto} other {<stat>{count}</stat> seguidores do projeto}}"
},
"profile.user-id": {
"message": "ID do utilizador: {id}"
},
"project-member-header.error-decline": {
"message": "Falha a rejeitar o convite de equipa"
},
@@ -3536,15 +3443,9 @@
"settings.authorizations.about-this-app": {
"message": "Sobre esta aplicação"
},
"settings.authorizations.by": {
"message": "por"
},
"settings.authorizations.description": {
"message": "Quando autorizas uma aplicação com a tua conta Modrinth, dás-lhe acesso à tua conta. Podes gerir e rever acesso à tua conta aqui quando quiseres."
},
"settings.authorizations.empty-state": {
"message": "Neste momento, não conseguimos mostrar as tuas aplicações autorizadas, estamos a tentar corrigir isto. Por favor tenta novamente mais tarde!"
},
"settings.authorizations.head-title": {
"message": "Autorizações"
},
@@ -1214,60 +1214,6 @@
"muralpay.rail.fiat-usd.name": {
"message": "Transfer bancar (USD)"
},
"profile.bio.fallback.creator": {
"message": "Un creator Modrinth."
},
"profile.bio.fallback.user": {
"message": "Un utilizator Modrinth."
},
"profile.button.billing": {
"message": "Administrează facturarea utilizatorului"
},
"profile.button.edit-role": {
"message": "Editează rolul"
},
"profile.button.info": {
"message": "Vizualizează detaliile utilizatorului"
},
"profile.button.manage-projects": {
"message": "Administrează proiectele"
},
"profile.error.not-found": {
"message": "Utilizatorul nu a fost găsit"
},
"profile.label.badges": {
"message": "Insigne"
},
"profile.label.no-collections": {
"message": "Acest utilizator nu are colecții!"
},
"profile.label.no-collections-auth": {
"message": "Nu ai nicio colecție.\nVrei să <create-link>creezi una</create-link>?"
},
"profile.label.no-projects": {
"message": "Acest utilizator nu are proiecte!"
},
"profile.label.no-projects-auth": {
"message": "Nu aveți proiecte.\nDoriți să <create-link>creați unul</create-link>?"
},
"profile.label.organizations": {
"message": "Organizații"
},
"profile.label.saving": {
"message": "Salvare..."
},
"profile.meta.description": {
"message": "Descarcă proiectele lui {username} pe Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Descarcă proiectele lui {username} pe Modrinth"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> urmăritor} other {<stat>{count}</stat> urmăritori}}"
},
"profile.user-id": {
"message": "ID-ul utilizatorului: {id}"
},
"project-member-header.error-decline": {
"message": "Refuzarea invitației în echipă a eșuat"
},
+39 -150
View File
@@ -216,7 +216,7 @@
"message": "Сборка"
},
"analytics.download-reason.standalone": {
"message": "Прямая загрузка"
"message": "Напрямую"
},
"analytics.download-reason.update": {
"message": "Обновление"
@@ -225,7 +225,7 @@
"message": "Modrinth App"
},
"analytics.download-source.website": {
"message": "Веб-сайт Modrinth"
"message": "Сайт Modrinth"
},
"analytics.downloads.suffix": {
"message": "скачиваний"
@@ -903,7 +903,7 @@
"message": "Создание аккаунта"
},
"auth.verify-email.action.account-settings": {
"message": "Настройки учётной записи"
"message": "Настройки"
},
"auth.verify-email.action.discover-mods": {
"message": "Найти моды"
@@ -1641,16 +1641,16 @@
"message": "Почти исчерпан лимит вывода: доступно ещё <b>{amountRemaining}</b>. Для снятия лимита заполните налоговую форму."
},
"dashboard.creator-withdraw-modal.paypal-details.account": {
"message": "Учётная запись"
"message": "Аккаунт"
},
"dashboard.creator-withdraw-modal.paypal-details.disconnect-account": {
"message": "Отвязать учётную запись"
"message": "Отвязать аккаунт"
},
"dashboard.creator-withdraw-modal.paypal-details.payment-method": {
"message": "Способ вывода"
},
"dashboard.creator-withdraw-modal.paypal-details.paypal-account": {
"message": "Учётная запись PayPal"
"message": "Аккаунт PayPal"
},
"dashboard.creator-withdraw-modal.paypal-details.paypal-auth-description": {
"message": "Подключите свой PayPal и получайте выплаты напрямую."
@@ -2079,10 +2079,10 @@
"message": "Кошелёк"
},
"dashboard.withdraw.error.account-not-linked.text": {
"message": "Привяжите платёжную учётную запись перед выводом средств."
"message": "Привяжите платёжный аккаунт перед выводом средств."
},
"dashboard.withdraw.error.account-not-linked.title": {
"message": "Учётная запись не привязана"
"message": "Аккаунт не привязан"
},
"dashboard.withdraw.error.email-verification.text": {
"message": "Перед выводом средств необходимо подтвердить адрес электронной почты."
@@ -2921,11 +2921,8 @@
"layout.publish.email-verification-required.title": {
"message": "Необходимо подтвердить почту"
},
"modal.shared-instance.open-in-app.benefit.install": {
"message": "Автоустановка необходимой игры и загрузчика"
},
"modal.shared-instance.open-in-app.get-app": {
"message": "Скачать Modrinth App"
"message": "Скачать лаунчер"
},
"modal.shared-instance.open-in-app.managed-by": {
"message": "Управляется"
@@ -2960,8 +2957,17 @@
"moderation.page.technicalReview": {
"message": "Техпроверка"
},
"modpack-scan-modal.clear-all-groups": {
"message": "Очистить все группы"
"modpack-scan-modal.delete-all-groups-confirmation.description": {
"message": "Все группы атрибуции для этого проекта и все находящиеся в них файлы будут удалены навсегда. Это действие необратимо."
},
"modpack-scan-modal.delete-all-groups.error": {
"message": "Не удалось удалить все группы: {error}"
},
"modpack-scan-modal.delete-all-groups.proceed": {
"message": "Удалить"
},
"modpack-scan-modal.delete-all-groups.success": {
"message": "Все группы успешно удалены."
},
"modpack-scan-modal.failed": {
"message": "Ошибка"
@@ -2994,11 +3000,14 @@
"message": "Сканировать все файлы"
},
"modpack-scan-modal.scan-error": {
"message": "Не удалось просканировать некоторые файлы: {error}"
"message": "Не удалось просканировать некоторые файлы: \n\n{error}"
},
"modpack-scan-modal.scanning": {
"message": "Сканирование..."
},
"modpack-scan-modal.success": {
"message": "Готово"
},
"muralpay.account-type.checking": {
"message": "Расчётный"
},
@@ -3311,117 +3320,6 @@
"organization.projects.none-with-create-prompt": {
"message": "У этой организации ещё нет проектов. Хотите <create-link>создать новый</create-link>?"
},
"profile.bio.fallback.creator": {
"message": "Автор на Modrinth."
},
"profile.bio.fallback.user": {
"message": "Пользователь Modrinth."
},
"profile.button.analytics": {
"message": "Посмотреть аналитику"
},
"profile.button.billing": {
"message": "Управление платежами"
},
"profile.button.edit-role": {
"message": "Изменить роль"
},
"profile.button.info": {
"message": "Посмотреть подробности"
},
"profile.button.manage-projects": {
"message": "Управление проектами"
},
"profile.button.remove-affiliate": {
"message": "Убрать из партнёров"
},
"profile.button.set-affiliate": {
"message": "Сделать партнёром"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# проект} few {# проекта} other {# проектов}}"
},
"profile.details.label.auth-providers": {
"message": "Сервисы входа"
},
"profile.details.label.email": {
"message": "Почта"
},
"profile.details.label.email-verified": {
"message": "Почта подтверждена"
},
"profile.details.label.has-password": {
"message": "Есть пароль"
},
"profile.details.label.has-totp": {
"message": "Есть TOTP"
},
"profile.details.label.payment-methods": {
"message": "Способы оплаты"
},
"profile.details.tooltip.email-not-verified": {
"message": "Почта не подтверждена"
},
"profile.details.tooltip.email-verified": {
"message": "Почта подтверждена"
},
"profile.error.not-found": {
"message": "Пользователь не найден"
},
"profile.label.affiliate": {
"message": "Партнёр"
},
"profile.label.badges": {
"message": "Значки"
},
"profile.label.collection": {
"message": "Коллекция"
},
"profile.label.download-count": {
"message": "{count, plural, one {скачивание} few {скачивания} other {скачиваний}}"
},
"profile.label.joined": {
"message": "Регистрация:"
},
"profile.label.no-collections": {
"message": "У этого пользователя нет коллекций!"
},
"profile.label.no-collections-auth": {
"message": "У вас ещё нет коллекций.\nХотите <create-link>создать новую</create-link>?"
},
"profile.label.no-projects": {
"message": "У этого пользователя нет проектов!"
},
"profile.label.no-projects-auth": {
"message": "У вас ещё нет проектов.\nХотите <create-link>создать новый</create-link>?"
},
"profile.label.organizations": {
"message": "Организации"
},
"profile.label.project-count": {
"message": "{count, plural, one {проект} few {проекта} other {проектов}}"
},
"profile.label.saving": {
"message": "Сохранение..."
},
"profile.meta.description": {
"message": "Скачать проекты {username} на Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} — Скачать проекты {username} на Modrinth"
},
"profile.official-account": {
"message": "Официальный аккаунт Modrinth"
},
"profile.official-account.bio": {
"message": "Официальный аккаунт Modrinth. Связаться с поддержкой можно по ссылке <support-link></support-link> или по электронной почте: <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> подписчик} few {<stat>{count}</stat> подписчика} other {<stat>{count}</stat> подписчиков}} у проектов"
},
"profile.user-id": {
"message": "ID пользователя: {id}"
},
"project-member-header.error-decline": {
"message": "Не удалось отклонить приглашение в команду"
},
@@ -3546,7 +3444,7 @@
"message": "Больше не показывать"
},
"project.actions.edit-project": {
"message": "Изменить проект"
"message": "Настроить проект"
},
"project.actions.rescan-modpack": {
"message": "Пересканировать сборку"
@@ -3771,7 +3669,10 @@
"message": "Вы по-прежнему можете редактировать проект — это не повлияет на его положение в очереди."
},
"project.moderation.admonition.under-review.body.4": {
"message": "Мы стараемся проверять проекты в течение 24-48 часов, однако иногда возможны задержки. Это не означает, что с вашим проектом что-то не так."
"message": "Мы стараемся проверять проекты в течение 2448 часов, однако иногда возможны задержки. Это не означает, что с вашим проектом что-то не так."
},
"project.moderation.admonition.under-review.body.4.alt-week": {
"message": "Мы стараемся проверять проекты в течение недели, однако иногда возможны задержки. Это не означает, что с вашим проектом что-то не так."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>Мы ценим ваше терпение, пока модераторы усердно работают над поддержанием безопасности Modrinth, и с нетерпением ждём возможности помочь вам поделиться своим контентом! 💚</emphasis>"
@@ -3893,6 +3794,9 @@
"project.settings.permissions.delete-all-groups": {
"message": "Удалить все группы"
},
"project.settings.permissions.delete-all-groups-confirmation.description": {
"message": "Все {count, plural, one {# группу атрибуции} few {# группы атрибуции} other {# групп атрибуции}} для этого проекта и все находящиеся {count, plural, =1 {ней} other {них}} файлы будут удалены навсегда. Это действие необратимо."
},
"project.settings.permissions.delete-all-groups-confirmation.title": {
"message": "Удалить все группы атрибуции?"
},
@@ -4016,9 +3920,6 @@
"project.settings.tags.features-description": {
"message": "Выберите все особенности, которые использует ваш {type}"
},
"project.settings.tags.multiple-resolution-tags-warning": {
"message": "Вы выбрали {count} тегов разрешения ({tags}). Ресурс паки обычно должны иметь только один тег разрешения."
},
"project.settings.tags.performance-impact-description": {
"message": "Выберите реалистичное влияние на производительность вашего {type}. Выберите несколько, если {type} можно конфигурировать разными уровнями влияния на производительность."
},
@@ -4034,15 +3935,6 @@
"project.settings.tags.title": {
"message": "Теги"
},
"project.settings.tags.too-many-tags-project-warning": {
"message": "Вы выбрали {count} тегов. Подумайте уменьшать до 8 или меньше, чтобы держать ваш проект в фокусе и легче, чтобы его можно было найти."
},
"project.settings.tags.too-many-tags-server-hard-warning": {
"message": "Вы выбрали {count} тегов. Пожалуйста, уменьшите до 18 или меньше, чтобы держать ваш проект в фокусе и легче, чтобы его можно было найти."
},
"project.settings.tags.too-many-tags-server-soft-warning": {
"message": "Вы выбрали {count} тегов. Пожалуйста, уменьшите до 12 или меньше, чтобы держать ваш проект в фокусе и легче, чтобы его можно было найти."
},
"project.settings.tags.upload-version-first": {
"message": "Загрузите версию перед тем, как выбрать теги!"
},
@@ -4856,15 +4748,9 @@
"settings.authorizations.about-this-app": {
"message": "О приложении"
},
"settings.authorizations.by": {
"message": "от"
},
"settings.authorizations.description": {
"message": "Авторизованные приложения получают доступ к аккаунту Modrinth. Здесь можно просматривать и отзывать этот доступ."
},
"settings.authorizations.empty-state": {
"message": "Список приложений временно недоступен. Мы работаем над исправлением — загляните сюда позже."
},
"settings.authorizations.head-title": {
"message": "Авторизации"
},
@@ -5268,16 +5154,19 @@
"message": "Отображение"
},
"shared-instance.invite.accept": {
"message": "Принять"
"message": "Принять приглашение"
},
"shared-instance.invite.inviter.unknown": {
"message": "Пользователь Modrinth"
},
"shared-instance.invite.joined-count": {
"message": "{count, plural, one {# человек} few {# человека} other {# человек}} уже присоединились"
},
"shared-instance.invite.loading": {
"message": "Загрузка приглашения..."
},
"shared-instance.invite.title": {
"message": "{name} пригласил вас"
"message": "{name} приглашает сыграть"
},
"shared-instance.invite.trust.description": {
"message": "Это приглашение создано другим пользователем Modrinth. Принимайте приглашения только от тех, кому доверяете."
@@ -5286,7 +5175,7 @@
"message": "Вы знакомы с этим пользователем?"
},
"shared-instance.invite.unavailable.title": {
"message": "Это приглашение недоступно"
"message": "Приглашение недоступно"
},
"ui.latest-news-row.latest-news": {
"message": "Последние новости от Modrinth"
@@ -5307,7 +5196,7 @@
"message": "Все версии"
},
"version.confirm-delete.description": {
"message": "Эта версия будет удалена навсегда. Отменить это действие нельзя."
"message": "Эта версия будет удалена навсегда. Это действие необратимо."
},
"version.confirm-delete.proceed": {
"message": "Удалить версию"
@@ -1220,51 +1220,6 @@
"muralpay.field.phone-number": {
"message": "Broj telefona"
},
"profile.button.analytics": {
"message": "Pregled analitike korisnika"
},
"profile.button.billing": {
"message": "Upravljaj naplatom korisnika"
},
"profile.button.info": {
"message": "Prikaži podatke o korisniku"
},
"profile.button.manage-projects": {
"message": "Upravljaj projektima"
},
"profile.error.not-found": {
"message": "Korisnik nije pronađen"
},
"profile.label.badges": {
"message": "Bedževi"
},
"profile.label.no-collections": {
"message": "Ovaj korisnik nema kolekcija!"
},
"profile.label.no-collections-auth": {
"message": "Nemaš nijednu kolekciju.\nDa li želiš da <create-link>kreiraš jednu</create-link>?"
},
"profile.label.no-projects": {
"message": "Ovaj korisnik nema projekata!"
},
"profile.label.no-projects-auth": {
"message": "Nemaš nijedan projekat.\nDa li želiš da <create-link>kreiraš jedan</create-link>?"
},
"profile.label.organizations": {
"message": "Organizacije"
},
"profile.meta.description": {
"message": "Preuzmi projekte korisnika {username} na Modrinthu"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Preuzmi projekte korisnika {username} na Modrinthu"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> pratilac projekta} few {<stat>{count}</stat> pratioca projekta} other {<stat>{count}</stat> pratilaca projekta}}"
},
"profile.user-id": {
"message": "ID korisnika: {id}"
},
"project-member-header.error-decline": {
"message": "Neuspešno odbijanje poziva tima"
},
@@ -1724,9 +1679,6 @@
"settings.authorizations.about-this-app": {
"message": "O ovoj aplikaciji"
},
"settings.authorizations.by": {
"message": "od"
},
"settings.authorizations.revoke.action": {
"message": "Oduzmi"
},
+171 -99
View File
@@ -296,6 +296,9 @@
"analytics.project-event.version-released": {
"message": "{version} släpptes"
},
"analytics.project-event.version-uploaded": {
"message": "Version uppladdad"
},
"analytics.project-status.approved": {
"message": "Godkänd"
},
@@ -1031,9 +1034,36 @@
"create-project-version.create-modal.stage.add-files.metadata-tab": {
"message": "Metadata"
},
"create-project-version.create-modal.stage.add-files.primary-file-label": {
"message": "Primärfil"
},
"create-project-version.create-modal.stage.add-files.upload-file-aria-label": {
"message": "Ladda upp fil"
},
"create-project-version.create-modal.stage.details.details-tab": {
"message": "Detaljer"
},
"create-project-version.create-modal.stage.details.files-tab": {
"message": "Filer"
},
"create-project-version.create-modal.stage.details.metadata-tab": {
"message": "Metadata"
},
"create-project-version.create-modal.stage.details.version-number": {
"message": "Versionsnummer"
},
"create-project-version.create-modal.stage.details.version-number-description": {
"message": "Versionsnummret urskiljer denna specifika version från andra."
},
"create-project-version.create-modal.stage.details.version-number-placeholder": {
"message": "Ange versionsnummer, t.ex. 1.2.3-alfa.1"
},
"create-project-version.create-modal.stage.metadata.files-tab": {
"message": "Filer"
},
"create-project-version.create-modal.stage.metadata.metadata-tab": {
"message": "Metadata"
},
"create-project-version.create-modal.stage.metadata.suggested": {
"message": "Föreslagna"
},
@@ -1331,6 +1361,9 @@
"dashboard.creator-withdraw-modal.kyc.business-entity": {
"message": "Affärsenhet"
},
"dashboard.creator-withdraw-modal.kyc.date-of-birth-placeholder": {
"message": "Välj födelsedatum"
},
"dashboard.creator-withdraw-modal.kyc.entity-description": {
"message": "En affärsenhet är en registrerad organisation såsom ett aktiebolag, ett handelsbolag eller ett LLC-bolag."
},
@@ -1340,6 +1373,9 @@
"dashboard.creator-withdraw-modal.kyc.private-individual": {
"message": "Privat individ"
},
"dashboard.creator-withdraw-modal.kyc.search-countries-placeholder": {
"message": "Sök länder..."
},
"dashboard.creator-withdraw-modal.method-selection.country-placeholder": {
"message": "Välj ditt land"
},
@@ -1490,6 +1526,9 @@
"dashboard.creator-withdraw-modal.tremendous-details.search-amount-label": {
"message": "Sök antal"
},
"dashboard.creator-withdraw-modal.tremendous-details.search-category-placeholder": {
"message": "Sök {category}..."
},
"dashboard.creator-withdraw-modal.tremendous-details.select-category-placeholder": {
"message": "Välj {category}"
},
@@ -2303,6 +2342,9 @@
"layout.action.manage-affiliates": {
"message": "Hantera affiliatelänk"
},
"layout.action.manage-server-notices": {
"message": "Hantera servernotiser"
},
"layout.action.new-collection": {
"message": "Ny samling"
},
@@ -2402,6 +2444,9 @@
"layout.footer.about.status": {
"message": "Status"
},
"layout.footer.based-on-label": {
"message": "Baserat på"
},
"layout.footer.developer-mode-activated.text": {
"message": "Utvecklarläge har aktiverats"
},
@@ -2549,6 +2594,9 @@
"layout.nav.upgrade-to-modrinth-plus": {
"message": "Uppgradera till Modrinth+"
},
"layout.publish.email-verification-required.description": {
"message": "Du måste verifiera din e-post innan du publicerar på Modrinth."
},
"layout.publish.email-verification-required.title": {
"message": "E-post verifikation behövs"
},
@@ -2588,9 +2636,6 @@
"modpack-scan-modal.scan-all-files": {
"message": "Skanna alla filer"
},
"modpack-scan-modal.scan-error": {
"message": "Några filer kunde inte skannas: {error}"
},
"modpack-scan-modal.scanning": {
"message": "Skannar..."
},
@@ -2774,99 +2819,6 @@
"organization.project-transfer.type-column": {
"message": "Typ"
},
"profile.bio.fallback.creator": {
"message": "En Modrinth kreatör."
},
"profile.bio.fallback.user": {
"message": "En Modrinth användare."
},
"profile.button.analytics": {
"message": "Visa användarstatistik"
},
"profile.button.billing": {
"message": "Hantera användarfakturering"
},
"profile.button.edit-role": {
"message": "Redigera roll"
},
"profile.button.info": {
"message": "Visa användardetaljer"
},
"profile.button.manage-projects": {
"message": "Hantera projekt"
},
"profile.collection.projects-count": {
"message": "{count} projekt"
},
"profile.details.label.auth-providers": {
"message": "Autentiseringsleverantörer"
},
"profile.details.label.email": {
"message": "E-post"
},
"profile.details.label.email-verified": {
"message": "E-post verifierad"
},
"profile.details.label.has-password": {
"message": "Har lösenord"
},
"profile.details.label.has-totp": {
"message": "Har TOTP"
},
"profile.details.label.payment-methods": {
"message": "Betalningsmetoder"
},
"profile.details.tooltip.email-not-verified": {
"message": "E-post ej verifierad"
},
"profile.details.tooltip.email-verified": {
"message": "E-post verifierad"
},
"profile.error.not-found": {
"message": "Användare hittades inte"
},
"profile.label.affiliate": {
"message": "Affiliate"
},
"profile.label.badges": {
"message": "Märken"
},
"profile.label.collection": {
"message": "Samling"
},
"profile.label.joined": {
"message": "Gick med"
},
"profile.label.no-collections": {
"message": "Denna användare har inga samlingar!"
},
"profile.label.no-collections-auth": {
"message": "Du har inga samlingar.\nVill du <create-link>skapa en</create-link>?"
},
"profile.label.no-projects": {
"message": "Denna användare har inga projekt!"
},
"profile.label.no-projects-auth": {
"message": "Du har inga projekt.\nVill du <create-link>skapa ett</create-link>?"
},
"profile.label.organizations": {
"message": "Organisationer"
},
"profile.label.saving": {
"message": "Sparar..."
},
"profile.meta.description": {
"message": "Ladda ner {username}s projekt på Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Ladda ned {username}s projekt på Modrinth"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> följare} other {<stat>{count}</stat> följare}}"
},
"profile.user-id": {
"message": "Användar-ID: {id}"
},
"project-member-header.error-decline": {
"message": "Misslyckades att neka inbjudan"
},
@@ -3167,21 +3119,72 @@
"project.settings.permissions.attention-needed.title": {
"message": "Okänt externt innehåll"
},
"project.settings.permissions.delete-all-groups": {
"message": "Radera alla grupper"
},
"project.settings.permissions.learn-more": {
"message": "Läs mer"
},
"project.settings.permissions.no-results": {
"message": "Inga externa filer matchade din sökning."
},
"project.settings.permissions.search-placeholder": {
"message": "Sök projekt..."
},
"project.settings.permissions.sort.status": {
"message": "Status"
},
"project.settings.server.cannot-save-title": {
"message": "Kan inte spara"
},
"project.settings.server.details-heading": {
"message": "Serverdetaljer"
},
"project.settings.server.enter-address-placeholder": {
"message": "Ange adress"
},
"project.settings.server.java-address-label": {
"message": "Java-adress"
},
"project.settings.server.languages-label": {
"message": "Språk"
},
"project.settings.server.region-label": {
"message": "Region"
},
"project.settings.server.select-languages-placeholder": {
"message": "Välj språk"
},
"project.settings.server.select-region-placeholder": {
"message": "Välj region"
},
"project.settings.server.server-online": {
"message": "Servern är online!"
},
"project.settings.title": {
"message": "Inställningar"
},
"project.status.archived.message": {
"message": "{title} har arkiverats. {title} kommer inte få några ytterligare uppdateringar såvida inte författaren bestämmer sig för att avarkivera projektet."
},
"project.versions.copy-id-option": {
"message": "Kopiera ID"
},
"project.versions.copy-link-option": {
"message": "Kopiera länk"
},
"project.versions.edit-files-option": {
"message": "Redigera filer"
},
"project.versions.title": {
"message": "Versioner"
},
"project.versions.version-deleted-text": {
"message": "Versionen har raderats."
},
"project.versions.version-deleted-title": {
"message": "Version raderad"
},
"report.already-reported": {
"message": "Du har redan rapporterat {title}"
},
@@ -3515,6 +3518,9 @@
"servers.plan.small.description": {
"message": "Perfekt för 15 vänner med några få lätta moddar."
},
"servers.purchase.step.plan.most-popular": {
"message": "Populärast"
},
"settings.account.delete.confirm.proceed": {
"message": "Radera kontot"
},
@@ -3617,6 +3623,18 @@
"settings.account.security.email.title": {
"message": "E-post"
},
"settings.account.security.passkey.add-modal.name.label": {
"message": "Namn"
},
"settings.account.security.passkey.modal.added": {
"message": "Tillagd {ago}"
},
"settings.account.security.passkey.modal.last-used": {
"message": "Senast använd {ago}"
},
"settings.account.security.passkey.modal.never-used": {
"message": "Aldrig använd"
},
"settings.account.security.password.action.add": {
"message": "Lägg till lösenord"
},
@@ -3773,9 +3791,6 @@
"settings.authorizations.about-this-app": {
"message": "Om appen"
},
"settings.authorizations.by": {
"message": "av"
},
"settings.authorizations.head-title": {
"message": "Autentiseringar"
},
@@ -4160,6 +4175,24 @@
"settings.sidebar.label.display": {
"message": "Visning"
},
"shared-instance.invite.accept": {
"message": "Acceptera inbjudan"
},
"shared-instance.invite.inviter.unknown": {
"message": "En Modrinth-användare"
},
"shared-instance.invite.loading": {
"message": "Laddar inbjudan…"
},
"shared-instance.invite.title": {
"message": "{name} har bjudit in dig till att spela"
},
"shared-instance.invite.trust.description": {
"message": "Denna inbjudan skapades av en annan Modrinth-användare, inte Modrinth. Acceptera endast inbjudningar från personer du litar på."
},
"shared-instance.invite.trust.heading": {
"message": "Känner du denna användare?"
},
"ui.latest-news-row.latest-news": {
"message": "Senaste nytt från Modrinth"
},
@@ -4175,6 +4208,39 @@
"ui.newsletter-button.tooltip": {
"message": "Prenumerera på Modrinths nyhetsbrev"
},
"version.all-versions": {
"message": "Alla versioner"
},
"version.confirm-delete.description": {
"message": "Denna versionen kommer permanent raderas. Denna åtgärd kan inte ångras."
},
"version.confirm-delete.proceed": {
"message": "Radera version"
},
"version.dependency.view-project": {
"message": "Visa projekt"
},
"version.dependency.view-version": {
"message": "Visa version"
},
"version.download.download-dependency": {
"message": "Välj en version att ladda ner"
},
"version.download.version": {
"message": "Ladda ner {version} ({size})"
},
"version.edit.button": {
"message": "Ändra"
},
"version.edit.details": {
"message": "Ändra detaljer"
},
"version.edit.files": {
"message": "Redigera filer"
},
"version.edit.metadata": {
"message": "Ändra metadata"
},
"version.environment.none.description": {
"message": "Miljön för denna version har inte specificerats."
},
@@ -4186,5 +4252,11 @@
},
"version.environment.unknown.title": {
"message": "Okänd miljö"
},
"version.notification.deleted-text": {
"message": "Versionen har raderats."
},
"version.notification.deleted-title": {
"message": "Version raderad"
}
}
+6 -123
View File
@@ -3,7 +3,7 @@
"message": "İptal"
},
"action.continue": {
"message": "Devam"
"message": "Devam et"
},
"admin.billing.error.not-found": {
"message": "Kullanıcı bulunamadı"
@@ -12,7 +12,7 @@
"message": "Ekle"
},
"analytics.action.cancel": {
"message": "Vazgeç"
"message": "İptal"
},
"analytics.action.refresh": {
"message": "Yenile"
@@ -51,7 +51,7 @@
"message": "Üye"
},
"analytics.breakdown.monetization": {
"message": "Para Kazanma"
"message": "Monetizasyon"
},
"analytics.breakdown.none.selected": {
"message": "Analiz yok"
@@ -75,10 +75,10 @@
"message": "Sınırlı sayıda göster"
},
"analytics.chart.action.show-top-eight": {
"message": "Üst 8'i göster"
"message": "En yüksek 8'ini göster"
},
"analytics.chart.axis.playtime-hours": {
"message": "{hours} sa"
"message": "{hours} saat"
},
"analytics.chart.controls.active-count": {
"message": "{count} çevrimiçi"
@@ -87,7 +87,7 @@
"message": "Rahatsız ediciler"
},
"analytics.chart.controls.aria": {
"message": "Analitik grafik denetimleri: {activeCount}"
"message": "Analitik grafik kontrolleri: {activeCount}"
},
"analytics.chart.controls.button": {
"message": "Kontroller"
@@ -2723,9 +2723,6 @@
"modpack-scan-modal.scan-all-files": {
"message": "Tüm Dosyaları Tara"
},
"modpack-scan-modal.scan-error": {
"message": "Bazı dosyalar taranamadı:{error}"
},
"modpack-scan-modal.scanning": {
"message": "Taranıyor..."
},
@@ -2999,111 +2996,6 @@
"muralpay.warning.wallet-address": {
"message": "Cüzdan adresinizi iki kez kontrol edin. Yanlış adrese gönderilen fonlar kurtarılamaz."
},
"profile.bio.fallback.creator": {
"message": "Bir Modrinth içerik üreticisi."
},
"profile.bio.fallback.user": {
"message": "Bir Modrinth kullanıcısı."
},
"profile.button.analytics": {
"message": "Kullanıcı analizlerini görüntüle"
},
"profile.button.billing": {
"message": "Kullanıcı faturasını yönet"
},
"profile.button.edit-role": {
"message": "Rolü düzenle"
},
"profile.button.info": {
"message": "Kullanıcı ayrıntılarını görüntüle"
},
"profile.button.manage-projects": {
"message": "Projeleri yönet"
},
"profile.button.remove-affiliate": {
"message": "Ortaklıktan kaldır"
},
"profile.button.set-affiliate": {
"message": "Ortak olarak ayarla"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# project} other {# projects}}"
},
"profile.details.label.auth-providers": {
"message": "Kimlik doğrulama sağlayıcıları"
},
"profile.details.label.email": {
"message": "Eposta"
},
"profile.details.label.email-verified": {
"message": "E-posta doğrulandı"
},
"profile.details.label.has-password": {
"message": "Parola var"
},
"profile.details.label.has-totp": {
"message": "TOTP var"
},
"profile.details.label.payment-methods": {
"message": "Ödeme yöntemleri"
},
"profile.details.tooltip.email-not-verified": {
"message": "Eposta doğrulanmadı"
},
"profile.details.tooltip.email-verified": {
"message": "Eposta doğrulandı"
},
"profile.error.not-found": {
"message": "Kullanıcı bulunamadı"
},
"profile.label.affiliate": {
"message": "Ortak"
},
"profile.label.badges": {
"message": "Rozetler"
},
"profile.label.collection": {
"message": "Koleksiyon"
},
"profile.label.joined": {
"message": "Katılma:"
},
"profile.label.no-collections": {
"message": "Bu kullanıcının hiç koleksiyonu yok!"
},
"profile.label.no-collections-auth": {
"message": "Hiç koleksiyonun yok.\n<create-link>Oluşturmak</create-link> ister misin?"
},
"profile.label.no-projects": {
"message": "Bu kullanıcının hiç projesi yok!"
},
"profile.label.no-projects-auth": {
"message": "Hiç projen yok.\n<create-link>Oluşturmak</create-link> ister misin?"
},
"profile.label.organizations": {
"message": "Organizasyonlar"
},
"profile.label.saving": {
"message": "Kaydediliyor..."
},
"profile.meta.description": {
"message": "{username} kullanıcısının Modrinth'teki projelerini indir"
},
"profile.meta.description-with-bio": {
"message": "{bio} - {username} kullanıcısının Modrinth'teki projelerini indir"
},
"profile.official-account": {
"message": "Resmi Modrinth hesabı"
},
"profile.official-account.bio": {
"message": "Modrinth'in resmi kullanıcı hesabı Destek için<support-link></support-link> adresinden veya <email></email> e-posta adresinden iletişime geçebilirsiniz"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> proje takipçisi} other {<stat>{count}</stat> proje takipçisi}}"
},
"profile.user-id": {
"message": "Kullanıcı Kimliği: {id}"
},
"project-member-header.error-decline": {
"message": "Ekip daveti reddedilemedi"
},
@@ -3437,9 +3329,6 @@
"project.moderation.admonition.under-review.body.3": {
"message": "Projenizi değiştirmeye devam edebilirsiniz, bu kuyruktaki konumunuzu etkilemeyecektir."
},
"project.moderation.admonition.under-review.body.4": {
"message": "Gönderileri 24-48 saat içinde incelemeyi amaçlıyoruz, ancak bazı projelerde gecikmeler yaşanabilir. Bu durum gönderinizle ilgili bir sorun olduğu anlamına gelmez."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>Moderatörlerimiz Modrinth'i güvende tutmak için çok çalışırken gösterdiğiniz sabır için teşekkür ediyor ve içeriğinizi paylaşmanıza yardımcı olmayı dört gözle bekliyoruz! 💚</emphasis>"
},
@@ -4322,15 +4211,9 @@
"settings.authorizations.about-this-app": {
"message": "Bu uygulama hakkında"
},
"settings.authorizations.by": {
"message": "tarafından"
},
"settings.authorizations.description": {
"message": "Modrinth hesabınızla bir uygulamayı yetkilendirdiğinizde, ona hesabınıza erişim izni vermiş olursunuz. Hesabınıza verilen erişimi dilediğiniz zaman burada yönetebilir ve gözden geçirebilirsiniz."
},
"settings.authorizations.empty-state": {
"message": "Yetkilendirdiğiniz uygulamalar şu anda görüntülenemiyor, bunu düzeltmek için çalışıyoruz. Lütfen bu sayfayı daha sonra tekrar ziyaret edin."
},
"settings.authorizations.head-title": {
"message": "Yetkiler"
},
+19 -130
View File
@@ -1176,7 +1176,7 @@
"message": "Номер версії"
},
"create-project-version.create-modal.stage.details.version-number-description": {
"message": "Номер версії дозволяє відрізнити цю версію від інших."
"message": "Номер версії дає змогу відрізнити цю версію від інших."
},
"create-project-version.create-modal.stage.details.version-number-placeholder": {
"message": "Уведіть номер версії. Наприклад, 1.2.3-alpha.1"
@@ -2126,8 +2126,11 @@
"dashboard.withdraw.error.minimum-not-met.title": {
"message": "Замала сума"
},
"dashboard.withdraw.error.payout-method-disabled.title": {
"message": "Метод оплати недоступний"
},
"dashboard.withdraw.error.paypal-country-mismatch.text": {
"message": "Будь ласка, використовуйте правильний варіант переказу PayPal для вашого регіону (США або міжнародний)."
"message": "Будь ласка, скористуйтеся правильним варіантом переказу PayPal для вашого регіону (США або міжнародним)."
},
"dashboard.withdraw.error.paypal-country-mismatch.title": {
"message": "Невідповідний регіон PayPal"
@@ -2544,7 +2547,7 @@
"message": "Відстежуйте проєкти, які любите"
},
"landing.feature.launcher.description": {
"message": "Відкрите API Modrinth дозволяє запускачам реалізувати глибоку інтеграцію з Modrinth. Ви можете користуватися Modrinth у <link>нашому застосунку</link>, або через деякі найпопулярніші запускачі, наприклад, ATLauncher, MultiMC, або Prism Launcher."
"message": "Відкрите API Modrinth дає змогу запускачам реалізувати глибоку інтеграцію з Modrinth. Ви можете користуватися Modrinth у <link>нашому застосунку</link> або певних запускачах, як-от ATLauncher, MultiMC і Prism Launcher."
},
"landing.feature.launcher.heading": {
"message": "Грайте з вашим улюбленим запускачем"
@@ -2915,6 +2918,18 @@
"layout.publish.email-verification-required.title": {
"message": "Необхідно підтвердити електронну пошту"
},
"modal.shared-instance.open-in-app.benefit.join": {
"message": "Можна грати в те саме, що й ваші друзі"
},
"modal.shared-instance.open-in-app.get-app": {
"message": "Завантажити Modrinth App"
},
"modal.shared-instance.open-in-app.opening-automatically": {
"message": "Modrinth App відкриється автоматично…"
},
"modal.shared-instance.open-in-app.why-use": {
"message": "Навіщо використовувати Modrinth App"
},
"moderation.exclude-technical-review": {
"message": "Виключити технічні розгляди"
},
@@ -2936,9 +2951,6 @@
"moderation.page.technicalReview": {
"message": "Технічний огляд"
},
"modpack-scan-modal.clear-all-groups": {
"message": "Очистити всі групи"
},
"modpack-scan-modal.failed": {
"message": "Помилка"
},
@@ -2969,9 +2981,6 @@
"modpack-scan-modal.scan-all-files": {
"message": "Сканувати всі файли"
},
"modpack-scan-modal.scan-error": {
"message": "Деякі файли не вдалося просканувати: {error}"
},
"modpack-scan-modal.scanning": {
"message": "Скануємо…"
},
@@ -3290,117 +3299,6 @@
"organization.projects.none-with-create-prompt": {
"message": "Ця організація ще не має проєктів. Бажаєте <create-link>створити новий</create-link>?"
},
"profile.bio.fallback.creator": {
"message": "Творець Modrinth."
},
"profile.bio.fallback.user": {
"message": "Користувач Modrinth."
},
"profile.button.analytics": {
"message": "Переглянути аналітику користувача"
},
"profile.button.billing": {
"message": "Керувати розрахунками користувача"
},
"profile.button.edit-role": {
"message": "Редагувати роль"
},
"profile.button.info": {
"message": "Переглянути дані користувача"
},
"profile.button.manage-projects": {
"message": "Керувати проєктами"
},
"profile.button.remove-affiliate": {
"message": "Усунути як партнера"
},
"profile.button.set-affiliate": {
"message": "Установити як партнера"
},
"profile.collection.projects-count": {
"message": "{count, plural, one {# проєкт} few {# проєкти} many {# проєктів} other {# проєкту}}"
},
"profile.details.label.auth-providers": {
"message": "Провайдери автентифікації"
},
"profile.details.label.email": {
"message": "Електронна пошта"
},
"profile.details.label.email-verified": {
"message": "Електронна адреса підтверджена"
},
"profile.details.label.has-password": {
"message": "Має пароль"
},
"profile.details.label.has-totp": {
"message": "Має TOTP"
},
"profile.details.label.payment-methods": {
"message": "Способи оплати"
},
"profile.details.tooltip.email-not-verified": {
"message": "Електронна пошта не перевірена"
},
"profile.details.tooltip.email-verified": {
"message": "Електронна пошта перевірена"
},
"profile.error.not-found": {
"message": "Користувача не знайдено"
},
"profile.label.affiliate": {
"message": "Партнер"
},
"profile.label.badges": {
"message": "Значки"
},
"profile.label.collection": {
"message": "Добірка"
},
"profile.label.download-count": {
"message": "{count, plural, one {завантаження} few {завантаження} many {завантажень} other {завантаження}}"
},
"profile.label.joined": {
"message": "Приєднався"
},
"profile.label.no-collections": {
"message": "У цього користувача немає добірок!"
},
"profile.label.no-collections-auth": {
"message": "У вас немає жодної добірки.\nБажаєте <create-link>створити її</create-link>?"
},
"profile.label.no-projects": {
"message": "У цього користувача немає проєктів!"
},
"profile.label.no-projects-auth": {
"message": "У вас немає жодного проєкту.\nБажаєте <create-link>створити якийсь</create-link>?"
},
"profile.label.organizations": {
"message": "Організації"
},
"profile.label.project-count": {
"message": "{count, plural, one {проєкт} few {проєкти} many {проєктів} other {проєктів}}"
},
"profile.label.saving": {
"message": "Збереження…"
},
"profile.meta.description": {
"message": "Завантажте проєкти {username} на Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} — Завантажуйте проєкти {username} на Modrinth"
},
"profile.official-account": {
"message": "Офіційний обліковий запис Modrinth"
},
"profile.official-account.bio": {
"message": "Офіційний обліковий запис Modrinth. Зв'язатися з підтримкою можна за <support-link></support-link> або через електронну пошту за <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, one {<stat>{count}</stat> відстежує} few {<stat>{count}</stat> відстежує} other {<stat>{count}</stat> відстежують}}"
},
"profile.user-id": {
"message": "ID користувача: {id}"
},
"project-member-header.error-decline": {
"message": "Не вдалося відхилити запрошення до команди"
},
@@ -3746,9 +3644,6 @@
"project.moderation.admonition.under-review.body.3": {
"message": "Ви все ще можете змінити свій проєкт, це не вплине на вашу позицію в черзі."
},
"project.moderation.admonition.under-review.body.4": {
"message": "Ми прагнемо розглядати подання протягом 24–48 годин, але деякі проєкти можуть затримуватися. Це не свідчить про проблему з вашим поданням."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>Ми цінуємо ваше терпіння, поки наші модератори наполегливо працюють над безпекою Modrinth, і сподіваємося допомогти вам поділитися своїм умістом! 💚</emphasis>"
},
@@ -3939,7 +3834,7 @@
"message": "Затримка: {latency}мс"
},
"project.settings.server.optional-label": {
"message": "необов'язково"
"message": "необовязково"
},
"project.settings.server.ping-failed-message": {
"message": "Ми не змогли зв'язатися із цим сервером. Його міг заблокувати ваш гост, тому спробуйте перезавантажити його кілька разів. Якщо це не працює, <support-link>зв'яжіться з підтримкою</support-link>."
@@ -4829,15 +4724,9 @@
"settings.authorizations.about-this-app": {
"message": "Про застосунок"
},
"settings.authorizations.by": {
"message": "від"
},
"settings.authorizations.description": {
"message": "Коли ви авторизуєтеся у застосунку за допомогою Modrinth, ви надаєте йому доступ до вашого облікового запису. Ви завжди можете переглядати й керувати доступом до свого облікового запису тут."
},
"settings.authorizations.empty-state": {
"message": "Наразі ми не можемо показати ваші авторизовані застосунки, але ми працюємо, щоб виправити це. Будь ласка, завітайте на цю сторінку пізніше!"
},
"settings.authorizations.head-title": {
"message": "Авторизації"
},
+51 -114
View File
@@ -8,6 +8,21 @@
"admin.billing.error.not-found": {
"message": "Không tìm thấy người dùng"
},
"ads-consent.accept": {
"message": "Chấp nhận tất cả"
},
"ads-consent.body": {
"message": "Quảng cáo giúp Modrinth hoạt động và tài trợ cho việc thanh toán cho người sáng tạo nội dung. Các đối tác của chúng tôi có thể lưu trữ hoặc truy cập cookie trong ứng dụng để cá nhân hóa quảng cáo và đo lường hiệu suất."
},
"ads-consent.manage": {
"message": "Quản lý tuỳ chọn"
},
"ads-consent.reject": {
"message": "Từ chối tất cả"
},
"ads-consent.title": {
"message": "Quyền riêng tư của bạn và cách quảng cáo hỗ trợ Modrinth"
},
"analytics.action.add": {
"message": "Thêm"
},
@@ -23,6 +38,12 @@
"analytics.breakdown.country": {
"message": "Quốc gia"
},
"analytics.breakdown.dependent-project-download": {
"message": "Dự án phụ thuộc"
},
"analytics.breakdown.dependent-project-type": {
"message": "Loại dự án phụ thuộc"
},
"analytics.breakdown.download-reason": {
"message": "Lý do tải"
},
@@ -38,6 +59,9 @@
"analytics.breakdown.loader": {
"message": "Loader"
},
"analytics.breakdown.members": {
"message": "Thành viên"
},
"analytics.breakdown.monetization": {
"message": "Lợi nhuận"
},
@@ -140,6 +164,18 @@
"analytics.chart.table-selection.count": {
"message": "Đang hiện {count} {itemType, select, project {{count, plural, other {dự án}}} country {{count, plural, other {quốc gia}}} monetization {{count, plural, other {giá trị doanh thu}}} downloadSource {{count, plural, other {nguồn tải}}} downloadReason {{count, plural, other {lý do tải}}} member {{count, plural, other {thành viên}}} projectVersion {{count, plural, other {phiên bản dự án}}} loader {{count, plural, other {mod loader}}} gameVersion {{count, plural, other {phiên bản trò chơi}}} other {{count, plural, other {vật phẩm}}}} từ bảng"
},
"analytics.chart.table-selection.limited": {
"message": "Đang hiện {limit} {itemType, select, project {{limit, plural, one {dự án} other {dự án}}} country {{limit, plural, one {quốc gia} other {quốc gia}}} monetization {{limit, plural, one {doanh thu} other {doanh thu}}} downloadSource {{limit, plural, one {nguồn tải} other {nguồn tải}}} downloadReason {{limit, plural, one {lý do tải} other {lý do tải}}} member {{limit, plural, one {thành viên} other {thành viên}}} projectVersion {{limit, plural, one {phiên bản dự án} other {phiên bản dự án}}} loader {{limit, plural, one {trình chạy} other {trình chạy}}} gameVersion {{limit, plural, one {phiên bản game} other {phiên bản game}}} other {{limit, plural, one {mục} other {mục}}}} từ bảng"
},
"analytics.chart.table-selection.top": {
"message": "Đang hiện top {count} {itemType, select, project {{count, plural, one {dự án} other {dự án}}} country {{count, plural, one {quốc gia} other {quốc gia}}} monetization {{count, plural, one {doanh thu} other {doanh thu}}} downloadSource {{count, plural, one {nguồn tải} other {nguồn tải}}} downloadReason {{count, plural, one {lý do tải} other {lý do tải}}} member {{count, plural, one {thành viên} other {thành viên}}} projectVersion {{count, plural, one {phiên bản dự án} other {phiên bản dự án}}} loader {{count, plural, one {trình chạy} other {trình chạy}}} gameVersion {{count, plural, one {phiên bản game} other {phiên bản game}}} other {{count, plural, one {mục} other {mục}}}} từ bảng"
},
"analytics.chart.tooltip.dependent-on-project": {
"message": "Phụ thuộc vào {project}"
},
"analytics.chart.tooltip.dependent-project-version": {
"message": "{dependentProject} phụ thuộc vào {dependencyProject}, {version}"
},
"analytics.chart.tooltip.duration.days": {
"message": "{count, plural, other {# ngày}}"
},
@@ -212,6 +248,9 @@
"analytics.empty.select-project": {
"message": "Sử dụng ít nhất một dự án để xem dữ liệu"
},
"analytics.filter.dependent-project-search-failed-title": {
"message": "Không thể tải dự án phụ thuộc"
},
"analytics.filter.game-version-type": {
"message": "Loại phiên bản game"
},
@@ -224,9 +263,15 @@
"analytics.filter.search.countries": {
"message": "Tìm quốc gia..."
},
"analytics.filter.search.dependent-projects": {
"message": "Tìm dự án..."
},
"analytics.filter.search.download-sources": {
"message": "Tìm nguồn tải..."
},
"analytics.filter.search.members": {
"message": "Tìm thành viên..."
},
"analytics.filter.search.project-versions": {
"message": "Tìm phiên bản dự án..."
},
@@ -473,6 +518,12 @@
"analytics.value.monetized": {
"message": "Kiếm tiền"
},
"analytics.value.no-dependent": {
"message": "Không có"
},
"analytics.value.no-dependent-tooltip": {
"message": "Lượt tải xuống cho những lý do khác ngoài phụ thuộc"
},
"analytics.value.none": {
"message": "Không có"
},
@@ -2792,111 +2843,6 @@
"muralpay.warning.wallet-address": {
"message": "Hãy kiểm tra kỹ địa chỉ ví. Số tiền gửi đến địa chỉ không chính xác sẽ không thể khôi phục."
},
"profile.bio.fallback.creator": {
"message": "Một nhà sáng tạo trên Modrinth."
},
"profile.bio.fallback.user": {
"message": "Một người dùng Modrinth."
},
"profile.button.analytics": {
"message": "Xem phân tích người dùng"
},
"profile.button.billing": {
"message": "Quản lý thanh toán người dùng"
},
"profile.button.edit-role": {
"message": "Chỉnh sửa vai trò"
},
"profile.button.info": {
"message": "Xem chi tiết người dùng"
},
"profile.button.manage-projects": {
"message": "Quản lý dự án"
},
"profile.button.remove-affiliate": {
"message": "Xóa affiliate"
},
"profile.button.set-affiliate": {
"message": "Đặt làm affiliate"
},
"profile.collection.projects-count": {
"message": "{count, plural, other {# dự án}}"
},
"profile.details.label.auth-providers": {
"message": "Nhà cung cấp xác thực"
},
"profile.details.label.email": {
"message": "Email"
},
"profile.details.label.email-verified": {
"message": "Email đã được xác minh"
},
"profile.details.label.has-password": {
"message": "Có mật khẩu"
},
"profile.details.label.has-totp": {
"message": "Có TOTP"
},
"profile.details.label.payment-methods": {
"message": "Phương thức thanh toán"
},
"profile.details.tooltip.email-not-verified": {
"message": "Email chưa được xác minh"
},
"profile.details.tooltip.email-verified": {
"message": "Email đã được xác minh"
},
"profile.error.not-found": {
"message": "Không tìm thấy người dùng"
},
"profile.label.affiliate": {
"message": "Affiliate"
},
"profile.label.badges": {
"message": "Huy hiệu"
},
"profile.label.collection": {
"message": "Bộ sưu tập"
},
"profile.label.joined": {
"message": "Đã tham gia"
},
"profile.label.no-collections": {
"message": "Người dùng này chưa có bộ sưu tập nào!"
},
"profile.label.no-collections-auth": {
"message": "Bạn chưa có bộ sưu tập nào.\nBạn có muốn <create-link>tạo một bộ sưu tập</create-link> không?"
},
"profile.label.no-projects": {
"message": "Người dùng này chưa có dự án nào!"
},
"profile.label.no-projects-auth": {
"message": "Bạn chưa có dự án nào.\nBạn có muốn <create-link>tạo một dự án</create-link> không?"
},
"profile.label.organizations": {
"message": "Tổ chức"
},
"profile.label.saving": {
"message": "Đang lưu..."
},
"profile.meta.description": {
"message": "Tải xuống các dự án của {username} trên Modrinth"
},
"profile.meta.description-with-bio": {
"message": "{bio} - Tải xuống các dự án của {username} trên Modrinth"
},
"profile.official-account": {
"message": "Tài khoản chính thúc bởi Modrinth"
},
"profile.official-account.bio": {
"message": "Tài khoản chính thức của Modrinth. Nhận hỗ trợ từ <support-link></support-link> hoặc qua email tại <email></email>"
},
"profile.stats.projects-followers": {
"message": "{count, plural, other {<stat>{count}</stat> người theo dõi dự án}}"
},
"profile.user-id": {
"message": "ID người dùng: {id}"
},
"project-member-header.error-decline": {
"message": "Không thể từ chối lời mời vào nhóm"
},
@@ -3134,9 +3080,6 @@
"project.moderation.admonition.under-review.body.3": {
"message": "Bạn có thể thay đổi dự án mà không làm ảnh hưởng đến thứ tự trong hàng của bạn."
},
"project.moderation.admonition.under-review.body.4": {
"message": "Chúng tôi hướng tới việc kiểm duyệt trong vòng 24-48 giờ, nhưng một số dự án có thể bị trì hoãn. Điều này không có nghĩa là có vấn đề trong dự án bạn gửi."
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>Chúng tôi rất cảm ơn sự kiên nhẫn của bạn trong khi đội ngũ kiểm duyệt chúng tôi đang nỗ lực giữ cho Modrinth an toàn, và mong được hỗ trợ bạn để chia sẻ nội dung của mình!💚</emphasis>"
},
@@ -3968,15 +3911,9 @@
"settings.authorizations.about-this-app": {
"message": "Về ứng dụng này"
},
"settings.authorizations.by": {
"message": "bởi"
},
"settings.authorizations.description": {
"message": "Khi bạn ủy quyền cho một ứng dụng bằng tài khoản Modrinth của mình, bạn đã cấp cho ứng dụng đó quyền truy cập vào tài khoản của bạn. Bạn có thể quản lý và xem lại quyền truy cập vào tài khoản của mình tại đây bất cứ lúc nào."
},
"settings.authorizations.empty-state": {
"message": "Hiện tại chúng tôi không thể hiển thị các ứng dụng đã ủy quyền của bạn, chúng tôi đang nỗ lực khắc phục sự cố này. Vui lòng quay lại trang này sau!"
},
"settings.authorizations.head-title": {
"message": "Quyền hạn"
},
+69 -159
View File
@@ -264,22 +264,22 @@
"message": "正式版"
},
"analytics.filter.search.countries": {
"message": "搜索国家/地区…"
"message": "搜索国家地区…"
},
"analytics.filter.search.dependent-projects": {
"message": "搜索项目……"
},
"analytics.filter.search.download-sources": {
"message": "搜索下载源…"
"message": "搜索下载源…"
},
"analytics.filter.search.members": {
"message": "搜索成员……"
},
"analytics.filter.search.project-versions": {
"message": "搜索项目版本…"
"message": "搜索项目版本…"
},
"analytics.filter.search.versions": {
"message": "搜索版本…"
"message": "搜索版本…"
},
"analytics.graph.title.downloads": {
"message": "下载量趋势"
@@ -336,7 +336,7 @@
"message": "正在加载数据……"
},
"analytics.options.loading": {
"message": "加载中…"
"message": "加载中…"
},
"analytics.project-event.project-approved": {
"message": "项目批准"
@@ -353,6 +353,9 @@
"analytics.project-event.version-released": {
"message": "{version} 版本已发布"
},
"analytics.project-event.version-uploaded": {
"message": "版本已上传"
},
"analytics.project-status.approved": {
"message": "已批准"
},
@@ -399,7 +402,7 @@
"message": "添加过滤条件"
},
"analytics.query.label.breakdown": {
"message": "拆分维度"
"message": "分类:"
},
"analytics.query.label.grouped-by": {
"message": "分组依据"
@@ -408,7 +411,7 @@
"message": "项目:"
},
"analytics.query.label.timeframe": {
"message": "统计周期"
"message": "统计周期"
},
"analytics.stat.downloads": {
"message": "下载量"
@@ -432,7 +435,7 @@
"message": "相较上一统计周期"
},
"analytics.stat.previous-period-comparison-short": {
"message": "相较上期"
"message": "相较上期."
},
"analytics.stat.revenue": {
"message": "收益"
@@ -486,7 +489,7 @@
"message": "显示第{start}至{end}条,共{total}条"
},
"analytics.table.search.placeholder": {
"message": "搜索…"
"message": "搜索…"
},
"analytics.threshold.countries-above": {
"message": "上述所选国家"
@@ -771,19 +774,19 @@
"message": "完成注册"
},
"auth.create-account.date-of-birth.invalid.text": {
"message": "请输入一个出生日期,年份不能是0000。"
"message": "请输入一个有效的出生日期,年份不能是0000。"
},
"auth.create-account.date-of-birth.invalid.title": {
"message": "无效的出生日期"
},
"auth.create-account.date-of-birth.label": {
"message": "生日"
"message": "生日"
},
"auth.create-account.date-of-birth.placeholder": {
"message": "请填写你的生日"
"message": "请选择你的生日"
},
"auth.create-account.date-of-birth.required.text": {
"message": "请先输入您的生日。"
"message": "请先输入您的生日。"
},
"auth.create-account.date-of-birth.required.title": {
"message": "需提供出生日期"
@@ -855,7 +858,7 @@
"message": "双因素验证"
},
"auth.sign-in.2fa.placeholder": {
"message": "输入验证码…"
"message": "输入验证码…"
},
"auth.sign-in.continue-with-email": {
"message": "使用邮箱继续"
@@ -1083,10 +1086,10 @@
"message": "发送消息出错"
},
"conversation-thread.reply-editor.placeholder.reply": {
"message": "回复对话消息…"
"message": "回复对话消息…"
},
"conversation-thread.reply-editor.placeholder.send": {
"message": "发送消息…"
"message": "发送消息…"
},
"conversation-thread.reply-modal.confirmation.description": {
"message": "确认管理员不会主动审核此内容"
@@ -1320,7 +1323,7 @@
"message": "组织名称"
},
"create.organization.name-placeholder": {
"message": "输入组织名称…"
"message": "输入组织名称…"
},
"create.organization.ownership-info": {
"message": "你将成为这个组织的所有者,但你可以随时邀请其他成员并转让所有权。"
@@ -1428,7 +1431,7 @@
"message": "你确定要撤销你的 ''{title}'' 推广链接吗?"
},
"dashboard.affiliate-links.search": {
"message": "搜索推广链接…"
"message": "搜索推广链接…"
},
"dashboard.analytics.from-projects": {
"message": "来自 {count} {count, plural, other {个项目}}"
@@ -1782,7 +1785,7 @@
"message": "领取你的 Discord 身分组"
},
"dashboard.discord-roles.role.big-creator": {
"message": "破百万下载"
"message": "1OO万+ 下载"
},
"dashboard.discord-roles.role.creator": {
"message": "创作者"
@@ -1839,7 +1842,7 @@
"message": "历史通知"
},
"dashboard.overview.notifications.loading": {
"message": "加载通知…"
"message": "加载通知…"
},
"dashboard.projects.bulk-edit.server-disabled": {
"message": "服务器项目不支持批量编辑"
@@ -2925,13 +2928,13 @@
"message": "需要验证电子邮件"
},
"modal.shared-instance.open-in-app.benefit.install": {
"message": "自动安装所需的的游戏与模组加载器"
"message": "自动安装他们正在玩的所有游戏"
},
"modal.shared-instance.open-in-app.benefit.join": {
"message": "一键导入共享的游戏实例"
"message": "和好友畅玩同款内容"
},
"modal.shared-instance.open-in-app.benefit.update": {
"message": "当分享者更新游戏实例时,自动同步最新的内容"
"message": "共享内容实时同步更新"
},
"modal.shared-instance.open-in-app.get-app": {
"message": "获取 Modrinth App"
@@ -2969,8 +2972,23 @@
"moderation.page.technicalReview": {
"message": "技术审查"
},
"modpack-scan-modal.clear-all-groups": {
"message": "清除所有分组"
"modpack-scan-modal.batch.label": {
"message": "每批 {amount}"
},
"modpack-scan-modal.batch.placeholder": {
"message": "批量金额"
},
"modpack-scan-modal.delete-all-groups-confirmation.description": {
"message": "此操作将永久删除该项目的所有归属组及其内部的所有文件。此操作无法撤销。"
},
"modpack-scan-modal.delete-all-groups.error": {
"message": "未能清除所有组:{error}"
},
"modpack-scan-modal.delete-all-groups.proceed": {
"message": "清除"
},
"modpack-scan-modal.delete-all-groups.success": {
"message": "所有组均已成功清除。"
},
"modpack-scan-modal.failed": {
"message": "失败"
@@ -3003,11 +3021,14 @@
"message": "扫描所有文件"
},
"modpack-scan-modal.scan-error": {
"message": "些文件扫描失败{error}"
"message": "些文件扫描失败:\n\n{error}"
},
"modpack-scan-modal.scanning": {
"message": "扫描中……"
},
"modpack-scan-modal.success": {
"message": "成功"
},
"modpack-scan-modal.title": {
"message": "模组包扫描 ({scanned}/{total} 个文件)"
},
@@ -3222,13 +3243,13 @@
"message": "输入哥斯达黎加 IBAN"
},
"muralpay.placeholder.phone-cop": {
"message": "+57..."
"message": "+57……"
},
"muralpay.placeholder.pix-phone": {
"message": "+55..."
"message": "+55……"
},
"muralpay.placeholder.wallet-address-eth": {
"message": "0x..."
"message": "0x……"
},
"muralpay.rail.fiat-ars.name": {
"message": "银行转账(阿根廷比索)"
@@ -3323,114 +3344,6 @@
"organization.projects.none-with-create-prompt": {
"message": "该组织还没有项目。想要<create-link>创建一个</create-link>吗?"
},
"profile.bio.fallback.creator": {
"message": "一位 Modrinth 创作者。"
},
"profile.bio.fallback.user": {
"message": "一位 Modrinth 用户。"
},
"profile.button.analytics": {
"message": "查看用户分析"
},
"profile.button.billing": {
"message": "管理用户财务"
},
"profile.button.edit-role": {
"message": "编辑角色"
},
"profile.button.info": {
"message": "查看用户详情"
},
"profile.button.manage-projects": {
"message": "管理项目"
},
"profile.button.remove-affiliate": {
"message": "解除作为联盟伙伴"
},
"profile.button.set-affiliate": {
"message": "设置为联盟伙伴"
},
"profile.details.label.auth-providers": {
"message": "身份验证提供者"
},
"profile.details.label.email": {
"message": "电子邮箱"
},
"profile.details.label.email-verified": {
"message": "电子邮箱已验证"
},
"profile.details.label.has-password": {
"message": "已设置密码"
},
"profile.details.label.has-totp": {
"message": "已设置动态令牌"
},
"profile.details.label.payment-methods": {
"message": "支付方式"
},
"profile.details.tooltip.email-not-verified": {
"message": "电子邮箱未验证"
},
"profile.details.tooltip.email-verified": {
"message": "电子邮箱验证成功"
},
"profile.error.not-found": {
"message": "未找到用户"
},
"profile.label.affiliate": {
"message": "联盟"
},
"profile.label.badges": {
"message": "徽章"
},
"profile.label.collection": {
"message": "收藏夹"
},
"profile.label.download-count": {
"message": "{count, plural, other {下载量}}"
},
"profile.label.joined": {
"message": "加入于"
},
"profile.label.no-collections": {
"message": "该用户没有收藏夹!"
},
"profile.label.no-collections-auth": {
"message": "你还没有收藏夹。\n想要<create-link>创建一个</create-link>吗?"
},
"profile.label.no-projects": {
"message": "该用户没有项目!"
},
"profile.label.no-projects-auth": {
"message": "你还没有项目。\n想要<create-link>创建一个</create-link>吗?"
},
"profile.label.organizations": {
"message": "组织"
},
"profile.label.project-count": {
"message": "{count, plural, other {项目}}"
},
"profile.label.saving": {
"message": "正在保存…"
},
"profile.meta.description": {
"message": "前往 Modrinth 下载 {username} 的项目"
},
"profile.meta.description-with-bio": {
"message": "{bio} - 前往 Modrinth 下载 {username} 的项目"
},
"profile.official-account": {
"message": "Modrinth 官方账户"
},
"profile.official-account.bio": {
"message": "Modrinth的官方用户账号。在<support-link></support-link>处获取支持或通过电子邮件<email></email>获取支持。"
},
"profile.stats.projects-followers": {
"message": "{count, plural, other {<stat>{count}</stat>项目关注者}}"
},
"profile.user-id": {
"message": "用户ID{id}"
},
"project-member-header.error-decline": {
"message": "拒绝团队邀请时失败"
},
@@ -3750,7 +3663,7 @@
"message": "您可以在项目的<visibility-settings-link>可见性设置</visibility-settings-link>中更改项目的可见性。"
},
"project.moderation.admonition.approved.header": {
"message": "已批准项目"
"message": "项目已被批准"
},
"project.moderation.admonition.draft.body": {
"message": "这是一个草稿项目,在提交审核并获得 Modrinth 管理团队批准之前,其他人无法查看。"
@@ -3782,6 +3695,9 @@
"project.moderation.admonition.under-review.body.4": {
"message": "我们计划在24-48小时内审查提交内容,但某些项目可能会有延迟。这并不意味着你的提交有问题。"
},
"project.moderation.admonition.under-review.body.4.alt-week": {
"message": "我们计划在一周内审查提交内容,但某些项目可能会有延迟。这并不意味着你的提交有问题。"
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>我们感谢您的耐心等待,同时我们的管理员正在努力保持 Modrinth 的安全,并期待帮助您分享内容!💚</emphasis>"
},
@@ -3789,7 +3705,7 @@
"message": "在审项目"
},
"project.moderation.admonition.withheld.body": {
"message": "你的项目不会公开显示,只能通过直链访问。{requestedStatus, select, unlisted {由于你在<visibility-settings-link>可见性设置</visibility-settings-link>作出了设置,无需处理。} other {在重新提交项目前,解决所有审核关切和下方列出的问题。}}"
"message": "你的项目不会公开显示,只能通过直链访问。{requestedStatus, select, unlisted { 根据你选择的 <visibility-settings-link>可见性设置</visibility-settings-link>,很可能无需操作。} other {在重新提交项目前,解决所有审核关切,包括下方消息中列出的任何问题。}}"
},
"project.moderation.admonition.withheld.header": {
"message": "由管理员下架"
@@ -3918,7 +3834,7 @@
"message": "你的所有版本都不包含外部内容,因此无需担心存在权限问题。"
},
"project.settings.permissions.empty-state.heading": {
"message": "搞定啦!"
"message": "搞定啦🎉"
},
"project.settings.permissions.expand-all": {
"message": "展开全部"
@@ -4035,7 +3951,7 @@
"message": "选择你{type}的真实性能影响。如果{type}有多种性能等级可以配置,可选择多项。"
},
"project.settings.tags.resolutions-description": {
"message": "选择你的{type}中纹理的分辨率。"
"message": "选择你的{type}中(多个)纹理的分辨率。"
},
"project.settings.tags.select-at-least-one-category": {
"message": "请先至少选择一个分类,再设置精选分类。"
@@ -4080,7 +3996,7 @@
"message": "删除"
},
"project.versions.delete-confirm.description": {
"message": "此操作将永久移除此版本(真的永久)。"
"message": "此操作将永久移除此版本(真的很久!)。"
},
"project.versions.delete-confirm.title": {
"message": "你确定要删除此版本吗?"
@@ -4134,7 +4050,7 @@
"message": "请提供关于你所举报情况的更多上下文信息"
},
"report.checking": {
"message": "核对{item}......"
"message": "核对 {item}……"
},
"report.could-not-find": {
"message": "无法找到 {item}"
@@ -4332,7 +4248,7 @@
"message": "提款"
},
"scopes.payoutsWrite.label": {
"message": "写入提款"
"message": "写入支出"
},
"scopes.performAnalytics.description": {
"message": "进行分析操作"
@@ -4737,25 +4653,25 @@
"message": "账户安全"
},
"settings.account.security.two-factor.action.remove": {
"message": "移除双因素验证"
"message": "移除2次验证"
},
"settings.account.security.two-factor.action.setup": {
"message": "设置双因素验证"
"message": "设置2次验证"
},
"settings.account.security.two-factor.description": {
"message": "在登录时为你的账户增加一层额外的安全保障。"
},
"settings.account.security.two-factor.modal.remove.header": {
"message": "移除双因素验证"
"message": "移除2次验证"
},
"settings.account.security.two-factor.modal.setup.header": {
"message": "设置双因素验证"
"message": "设置2次验证"
},
"settings.account.security.two-factor.title": {
"message": "双因素验证"
},
"settings.account.two-factor.backup.intro": {
"message": "下载这些备用码,然后将其保存在安全的地方。如果你无法访问设备,就可以用备用码代替双因素验证码!务必像保护密码一样保护备用码。"
"message": "下载这些备用码,然后将其保存在安全的地方。如果你无法访问设备,就可以用备用码代替2次验证验证码!请你务必像保护密码一样保护备用码。"
},
"settings.account.two-factor.backup.single-use": {
"message": "备用码只能使用一次。"
@@ -4770,7 +4686,7 @@
"message": "输入双因素验证码"
},
"settings.account.two-factor.field.code.placeholder": {
"message": "输入验证码…"
"message": "输入验证码…"
},
"settings.account.two-factor.setup.intro": {
"message": "双因素验证需要访问另一部设备才能登录,从而保护你的账户安全。"
@@ -4779,7 +4695,7 @@
"message": "如果二维码无法扫描,你可以手动输入密码:"
},
"settings.account.two-factor.setup.scan": {
"message": "使用 <authy-link>Authy</authy-link>、<microsoft-authenticator-link>Microsoft Authenticator</microsoft-authenticator-link> 等双因素验证应用,扫描二维码即可开始。"
"message": "使用 <authy-link>Authy</authy-link>、<microsoft-authenticator-link>Microsoft Authenticator</microsoft-authenticator-link> 等2次验证应用,扫描二维码即可开始。"
},
"settings.account.two-factor.verify.description": {
"message": "输入验证器提供的一次性验证码以验证访问权限。"
@@ -4842,7 +4758,7 @@
"message": "描述"
},
"settings.applications.field.description.placeholder": {
"message": "输入应用程序的描述…"
"message": "输入应用程序的描述…"
},
"settings.applications.field.icon": {
"message": "图标"
@@ -4886,15 +4802,9 @@
"settings.authorizations.about-this-app": {
"message": "关于此应用"
},
"settings.authorizations.by": {
"message": "by"
},
"settings.authorizations.description": {
"message": "当您使用 Modrinth 账户授权某个应用程序时,即表示您授予其访问您账户的权限。您可以随时在此处管理和审查对您账户的访问权限。"
},
"settings.authorizations.empty-state": {
"message": "我们目前无法显示您授权的应用程序,我们正在努力解决这个问题。请稍后再访问此页面!"
},
"settings.authorizations.head-title": {
"message": "授权"
},
@@ -5217,7 +5127,7 @@
"message": "名称"
},
"settings.pats.modal.create.name.placeholder": {
"message": "输入个人访问令牌的名称…"
"message": "输入个人访问令牌的名称…"
},
"settings.pats.modal.create.title": {
"message": "创建个人访问令牌"
+74 -125
View File
@@ -747,7 +747,7 @@
"message": "拒絕"
},
"auth.authorize.app-info": {
"message": "由 <creator-link>{creator}</creator-link> 開發的「<strong>{appName}</strong>」將可執行下列作:"
"message": "由 <creator-link>{creator}</creator-link> 開發的「<strong>{appName}</strong>」將可執行下列作:"
},
"auth.authorize.authorize-app-name": {
"message": "授權「{appName}」"
@@ -2132,6 +2132,12 @@
"dashboard.withdraw.error.minimum-not-met.title": {
"message": "金額過低"
},
"dashboard.withdraw.error.payout-method-disabled.text": {
"message": "這個付款方式已被付款服務提供商停用。請改用其他付款方式,或聯絡客服。"
},
"dashboard.withdraw.error.payout-method-disabled.title": {
"message": "無法使用付款方式"
},
"dashboard.withdraw.error.paypal-country-mismatch.text": {
"message": "請使用適合你所在地區的 PayPal 轉帳選項(美國或國際)。"
},
@@ -2769,13 +2775,13 @@
"message": "基於"
},
"layout.footer.developer-mode-activated.text": {
"message": "已啟用開發人員模式"
"message": "開發人員模式已被啟用"
},
"layout.footer.developer-mode-activated.title": {
"message": "開發人員模式已啟用"
},
"layout.footer.developer-mode-deactivated.text": {
"message": "已停用開發人員模式"
"message": "開發人員模式已被停用"
},
"layout.footer.developer-mode-deactivated.title": {
"message": "開發人員模式已停用"
@@ -2921,12 +2927,30 @@
"layout.publish.email-verification-required.title": {
"message": "需要驗證電子郵件地址"
},
"modal.shared-instance.open-in-app.benefit.install": {
"message": "自動安裝好友遊玩的所有內容"
},
"modal.shared-instance.open-in-app.benefit.join": {
"message": "與好友遊玩相同內容"
},
"modal.shared-instance.open-in-app.benefit.update": {
"message": "當共用內容變更時及時更新"
},
"modal.shared-instance.open-in-app.get-app": {
"message": "取得 Modrinth App"
},
"modal.shared-instance.open-in-app.managed-by": {
"message": "管理者:"
},
"modal.shared-instance.open-in-app.opening-automatically": {
"message": "Modrinth App 將自動開啟..."
},
"modal.shared-instance.open-in-app.title": {
"message": "正在開啟 Modrinth App"
},
"modal.shared-instance.open-in-app.why-use": {
"message": "為何使用 Modrinth App"
},
"moderation.exclude-technical-review": {
"message": "排除技術審查"
},
@@ -2948,8 +2972,23 @@
"moderation.page.technicalReview": {
"message": "技術審查"
},
"modpack-scan-modal.clear-all-groups": {
"message": "清除所有群組"
"modpack-scan-modal.batch.label": {
"message": "每批 {amount} 個"
},
"modpack-scan-modal.batch.placeholder": {
"message": "批量數量"
},
"modpack-scan-modal.delete-all-groups-confirmation.description": {
"message": "這會永久刪除這個專案的所有引用標註群組及其中的所有檔案,這項動作無法復原。"
},
"modpack-scan-modal.delete-all-groups.error": {
"message": "無法清除所有群組:{error}"
},
"modpack-scan-modal.delete-all-groups.proceed": {
"message": "清除"
},
"modpack-scan-modal.delete-all-groups.success": {
"message": "已成功清除所有群組。"
},
"modpack-scan-modal.failed": {
"message": "失敗"
@@ -2982,11 +3021,14 @@
"message": "掃描所有檔案"
},
"modpack-scan-modal.scan-error": {
"message": "無法掃描部分檔案:{error}"
"message": "無法掃描部分檔案:\n\n{error}"
},
"modpack-scan-modal.scanning": {
"message": "正在掃描..."
},
"modpack-scan-modal.success": {
"message": "成功"
},
"modpack-scan-modal.title": {
"message": "模組包掃描({scanned}/{total} 個檔案)"
},
@@ -3302,117 +3344,6 @@
"organization.projects.none-with-create-prompt": {
"message": "這個組織還沒有任何專案。你想要<create-link>建立一個</create-link>嗎?"
},
"profile.bio.fallback.creator": {
"message": "一位 Modrinth 創作者。"
},
"profile.bio.fallback.user": {
"message": "一位 Modrinth 使用者。"
},
"profile.button.analytics": {
"message": "檢視使用者數據分析"
},
"profile.button.billing": {
"message": "管理使用者帳務"
},
"profile.button.edit-role": {
"message": "編輯角色"
},
"profile.button.info": {
"message": "檢視使用者詳細資訊"
},
"profile.button.manage-projects": {
"message": "管理專案"
},
"profile.button.remove-affiliate": {
"message": "移除聯盟行銷夥伴資格"
},
"profile.button.set-affiliate": {
"message": "設為聯盟行銷夥伴"
},
"profile.collection.projects-count": {
"message": "{count, plural, other {# 個專案}}"
},
"profile.details.label.auth-providers": {
"message": "驗證提供者"
},
"profile.details.label.email": {
"message": "電子郵件"
},
"profile.details.label.email-verified": {
"message": "電子郵件已驗證"
},
"profile.details.label.has-password": {
"message": "是否有密碼"
},
"profile.details.label.has-totp": {
"message": "是否有 TOTP"
},
"profile.details.label.payment-methods": {
"message": "付款方式"
},
"profile.details.tooltip.email-not-verified": {
"message": "電子郵件尚未驗證"
},
"profile.details.tooltip.email-verified": {
"message": "電子郵件已驗證"
},
"profile.error.not-found": {
"message": "找不到使用者"
},
"profile.label.affiliate": {
"message": "聯盟行銷"
},
"profile.label.badges": {
"message": "徽章"
},
"profile.label.collection": {
"message": "收藏"
},
"profile.label.download-count": {
"message": "{count, plural, other {次下載}}"
},
"profile.label.joined": {
"message": "加入時間:"
},
"profile.label.no-collections": {
"message": "這個使用者沒有任何收藏!"
},
"profile.label.no-collections-auth": {
"message": "你還沒有任何收藏。\n你想要<create-link>建立一個</create-link>嗎?"
},
"profile.label.no-projects": {
"message": "這個使用者沒有任何專案!"
},
"profile.label.no-projects-auth": {
"message": "你還沒有任何專案。\n你想要<create-link>建立一個</create-link>嗎?"
},
"profile.label.organizations": {
"message": "組織"
},
"profile.label.project-count": {
"message": "{count, plural, other {個專案}}"
},
"profile.label.saving": {
"message": "儲存中..."
},
"profile.meta.description": {
"message": "前往 Modrinth 下載 {username} 的專案"
},
"profile.meta.description-with-bio": {
"message": "{bio} — 前往 Modrinth 下載 {username} 的專案"
},
"profile.official-account": {
"message": "Modrinth 官方帳號"
},
"profile.official-account.bio": {
"message": "Modrinth 的官方使用者帳號。請至 <support-link></support-link> 取得支援,或透過電子郵件 <email></email> 聯絡客服團隊"
},
"profile.stats.projects-followers": {
"message": "{count, plural, other {<stat>{count}</stat> 位專案追蹤者}}"
},
"profile.user-id": {
"message": "使用者 ID{id}"
},
"project-member-header.error-decline": {
"message": "拒絕團隊邀請失敗"
},
@@ -3764,6 +3695,9 @@
"project.moderation.admonition.under-review.body.4": {
"message": "我們的目標是在 24 至 48 小時內審查你提交的專案。部分專案可能需要較長時間,但這不代表你的專案有問題。"
},
"project.moderation.admonition.under-review.body.4.alt-week": {
"message": "我們的目標是在一週內審查你提交的專案。部分專案可能需要較長時間,但這不代表你的專案有問題。"
},
"project.moderation.admonition.under-review.body.5": {
"message": "<emphasis>感謝你的耐心等候,我們的管理員正努力維護 Modrinth 的安全,我們期待能協助你分享你的內容!💚</emphasis>"
},
@@ -4868,15 +4802,9 @@
"settings.authorizations.about-this-app": {
"message": "關於這個應用程式"
},
"settings.authorizations.by": {
"message": "作者"
},
"settings.authorizations.description": {
"message": "當你使用 Modrinth 帳號授權應用程式時,即代表你授予該應用程式存取你帳戶的權限。你可以隨時在這裡管理並審查帳號的存取權。"
},
"settings.authorizations.empty-state": {
"message": "目前無法顯示你已授權的應用程式,我們正在努力修正這個問題。請稍後再回來查看!"
},
"settings.authorizations.head-title": {
"message": "授權"
},
@@ -5100,7 +5028,7 @@
"message": "開發者模式已被停用"
},
"settings.display.notification.developer-mode-deactivated.title": {
"message": "開發模式已停用"
"message": "開發人員模式已停用"
},
"settings.display.project-list-layouts.datapack": {
"message": "資料包頁面"
@@ -5288,9 +5216,30 @@
"shared-instance.invite.accept": {
"message": "接受邀請"
},
"shared-instance.invite.inviter.unknown": {
"message": "一位 Modrinth 使用者"
},
"shared-instance.invite.joined-count": {
"message": "已有 {count, plural, other {# 人}}加入"
},
"shared-instance.invite.loading": {
"message": "正在載入邀請資訊..."
},
"shared-instance.invite.title": {
"message": "{name} 邀請你一起遊玩"
},
"shared-instance.invite.trust.description": {
"message": "這份邀請是由另一位 Modrinth 使用者建立,並非由 Modrinth 官方建立。請僅接受來自你信任的人的邀請。"
},
"shared-instance.invite.trust.heading": {
"message": "你認識這位使用者嗎?"
},
"shared-instance.invite.unavailable.description": {
"message": "邀請可能已過期、達到使用次數上限,或是已被共用者撤銷。"
},
"shared-instance.invite.unavailable.title": {
"message": "這個邀請無法使用"
},
"ui.latest-news-row.latest-news": {
"message": "Modrinth 的最新消息"
},
@@ -5310,7 +5259,7 @@
"message": "所有版本"
},
"version.confirm-delete.description": {
"message": "這個版本將永久刪除。這個操作無法復原。"
"message": "這個版本將永久刪除,這項動作無法復原。"
},
"version.confirm-delete.proceed": {
"message": "刪除版本"
@@ -72,7 +72,7 @@
<h2 id="messages" class="m-0 text-xl font-semibold text-contrast">
{{ formatMessage(messages.threadSectionTitle) }}
</h2>
<div v-if="isStaff(currentMember?.user)" class="flex items-center gap-2">
<div v-if="staff" class="flex items-center gap-2">
<Toggle id="moderator-see-user-ui-toggle" v-model="moderatorSeeUserUi" small />
<label for="moderator-see-user-ui-toggle"> Show member UI </label>
</div>
@@ -218,7 +218,10 @@ const {
} = injectProjectPageContext()
const canAccess = computed(() => !!currentMember.value)
const userFacingUiVisible = computed(() => !!currentMember.value && moderatorSeeUserUi.value)
const staff = computed(() => isStaff(currentMember.value?.user))
const userFacingUiVisible = computed(
() => !!currentMember.value && (!staff.value || moderatorSeeUserUi.value),
)
const approvedAdmonitionMessage = computed<MessageDescriptor | null>(() => {
switch (project.value?.status) {
@@ -330,10 +333,11 @@ const moderationAdmonition = computed<{
defaultMessage:
"You can still modify your project, it won't affect your position in the queue.",
}),
// temp moved 24-48 hr below to keep old translation for future
defineMessage({
id: 'project.moderation.admonition.under-review.body.4',
id: 'project.moderation.admonition.under-review.body.4.alt-week',
defaultMessage:
'We aim to review submissions in 24-48 hours, but some projects may face delays. This does not reflect an issue with your submission.',
'We aim to review submissions within a week, but some projects may face delays. This does not reflect an issue with your submission.',
}),
],
},
@@ -400,6 +404,13 @@ const moderationAdmonition = computed<{
return null
})
// unused 24-48hr message still defined here for later
defineMessage({
id: 'project.moderation.admonition.under-review.body.4',
defaultMessage:
'We aim to review submissions in 2448 hours, but some projects may face delays. This does not reflect an issue with your submission.',
})
const moderatorSeeUserUi = computed<boolean>({
get() {
return flags.value.showModeratorProjectMemberUi
+17 -12
View File
@@ -1,10 +1,12 @@
<template>
<div>
<div class="normal-page no-sidebar">
<h1>{{ formatMessage(commonMessages.settingsLabel) }}</h1>
</div>
<div class="normal-page">
<div class="normal-page__sidebar">
<NormalPage sidebar="left">
<template #header>
<h1 class="m-0 text-3xl font-semibold">
{{ formatMessage(commonMessages.settingsLabel) }}
</h1>
</template>
<template #sidebar>
<NavStack
:items="
[
@@ -18,7 +20,6 @@
link: '/settings/language',
label: formatMessage(commonSettingsMessages.language),
icon: LanguagesIcon,
badge: `${formatMessage(commonMessages.beta)}`,
},
flags.developerMode
? {
@@ -81,11 +82,9 @@
].filter(Boolean)
"
/>
</div>
<div class="normal-page__content mt-3 lg:mt-0">
<NuxtPage :route="route" />
</div>
</div>
</template>
<NuxtPage :route="route" />
</NormalPage>
</div>
</template>
<script setup>
@@ -101,7 +100,13 @@ import {
ToggleRightIcon,
UserIcon,
} from '@modrinth/assets'
import { commonMessages, commonSettingsMessages, defineMessages, useVIntl } from '@modrinth/ui'
import {
commonMessages,
commonSettingsMessages,
defineMessages,
NormalPage,
useVIntl,
} from '@modrinth/ui'
import NavStack from '~/components/ui/NavStack.vue'
@@ -1,5 +1,5 @@
<template>
<div class="universal-card">
<div class="flex flex-col">
<ConfirmModal
ref="modal_confirm"
:title="formatMessage(messages.revokeConfirmTitle)"
@@ -7,101 +7,70 @@
:proceed-label="formatMessage(messages.revokeAction)"
@proceed="revokeApp(revokingId)"
/>
<h2 class="text-2xl">{{ formatMessage(commonSettingsMessages.authorizedApps) }}</h2>
<p>
<h2 class="m-0 text-2xl font-semibold">
{{ formatMessage(commonSettingsMessages.authorizedApps) }}
</h2>
<p class="mb-4 mt-2">
{{ formatMessage(messages.description) }}
</p>
<div v-if="appInfoLookup.length === 0" class="universal-card recessed">
{{ formatMessage(messages.emptyState) }}
</div>
<div
v-for="authorization in appInfoLookup"
:key="authorization.id"
class="universal-card recessed token mt-4"
>
<div class="token-content">
<div>
<div class="icon-name">
<Avatar :src="authorization.app.icon_url" />
<div>
<h2 class="token-title">
{{ authorization.app.name }}
</h2>
<div>
{{ formatMessage(messages.byLabel) }}
<nuxt-link class="text-link" :to="'/user/' + authorization.owner.id">{{
authorization.owner.username
}}</nuxt-link>
<template v-if="authorization.app.url">
<span> </span>
<nuxt-link class="text-link" :to="authorization.app.url">
{{ authorization.app.url }}
</nuxt-link>
</template>
</div>
<template v-if="isLoading">
<div class="flex flex-col gap-4">
<div
v-for="i in 2"
:key="`authorization-skeleton-${i}`"
class="overflow-hidden rounded-2xl border border-solid border-surface-4 bg-surface-3"
>
<div class="flex items-center gap-3 border-0 border-b border-solid border-surface-4 p-4">
<div class="size-12 shrink-0 animate-pulse rounded-xl bg-surface-4" />
<div class="flex flex-1 flex-col gap-2">
<div class="h-4 w-36 animate-pulse rounded-lg bg-surface-4" />
<div class="h-3 w-48 animate-pulse rounded-lg bg-surface-4" />
</div>
<div class="h-9 w-24 animate-pulse rounded-xl bg-surface-4" />
</div>
</div>
<div>
<template v-if="authorization.app.description">
<label for="app-description">
<span class="label__title">{{ formatMessage(messages.aboutThisAppLabel) }}</span>
</label>
<div id="app-description">{{ authorization.app.description }}</div>
</template>
<label for="app-scope-list">
<span class="label__title">{{ formatMessage(commonMessages.scopesLabel) }}</span>
</label>
<div class="scope-list">
<div
v-for="scope in scopesToDefinitions(authorization.scopes)"
:key="scope"
class="scope-list-item"
>
<div class="scope-list-item-icon">
<CheckIcon />
</div>
{{ scope }}
<div class="bg-surface-2 p-4">
<div class="mb-3 h-3 w-28 animate-pulse rounded-lg bg-surface-3" />
<div class="grid gap-2 sm:grid-cols-2">
<div
v-for="j in 4"
:key="`authorization-skeleton-${i}-scope-${j}`"
class="h-4 w-full animate-pulse rounded-lg bg-surface-3"
/>
</div>
</div>
</div>
</div>
<div class="input-group">
<ButtonStyled color="red">
<button
@click="
() => {
revokingId = authorization.app_id
$refs.modal_confirm.show()
}
"
>
<TrashIcon />
{{ formatMessage(messages.revokeAction) }}
</button>
</ButtonStyled>
</div>
</template>
<EmptyState
v-else-if="showEmptyState"
type="done"
:heading="formatMessage(messages.emptyStateHeading)"
:description="formatMessage(messages.emptyStateDescription)"
/>
<div v-else class="flex flex-col gap-4">
<AuthorizationCard
v-for="authorization in appInfoLookup"
:key="authorization.id"
:authorization="authorization"
@revoke="onRevoke"
/>
</div>
</div>
</template>
<script setup>
import { CheckIcon, TrashIcon } from '@modrinth/assets'
import {
Avatar,
ButtonStyled,
commonMessages,
commonSettingsMessages,
ConfirmModal,
defineMessages,
EmptyState,
injectModrinthClient,
injectNotificationManager,
useVIntl,
} from '@modrinth/ui'
import { useQuery } from '@tanstack/vue-query'
import { useScopes } from '~/composables/auth/scopes.ts'
import AuthorizationCard from '~/components/ui/AuthorizationCard.vue'
const client = injectModrinthClient()
const { addNotification } = injectNotificationManager()
@@ -117,10 +86,13 @@ const messages = defineMessages({
defaultMessage:
'When you authorize an application with your Modrinth account, you grant it access to your account. You can manage and review access to your account here at any time.',
},
emptyState: {
id: 'settings.authorizations.empty-state',
defaultMessage:
"We currently can't display your authorized apps, we're working to fix this. Please visit this page at a later date!",
emptyStateHeading: {
id: 'settings.authorizations.empty-state.heading',
defaultMessage: 'No authorized apps',
},
emptyStateDescription: {
id: 'settings.authorizations.empty-state.description',
defaultMessage: 'Applications you authorize will appear here.',
},
revokeConfirmTitle: {
id: 'settings.authorizations.revoke.confirm.title',
@@ -135,19 +107,10 @@ const messages = defineMessages({
id: 'settings.authorizations.revoke.action',
defaultMessage: 'Revoke',
},
byLabel: {
id: 'settings.authorizations.by',
defaultMessage: 'by',
},
aboutThisAppLabel: {
id: 'settings.authorizations.about-this-app',
defaultMessage: 'About this app',
},
})
const { scopesToDefinitions } = useScopes()
const revokingId = ref(null)
const modal_confirm = ref()
definePageMeta({
middleware: 'auth',
@@ -176,20 +139,58 @@ const { data: appCreatorsInformation } = useQuery({
})
const appInfoLookup = computed(() => {
if (!usersApps.value || !appInformation.value || !appCreatorsInformation.value) {
if (!usersApps.value || !appInformation.value) {
return []
}
return usersApps.value.map((app) => {
const info = appInformation.value.find((c) => c.id === app.app_id)
const owner = appCreatorsInformation.value.find((c) => c.id === info?.created_by)
return {
...app,
app: info || null,
owner: owner || null,
}
})
if (appInformation.value.length === 0) {
return []
}
if (!appCreatorsInformation.value) {
return []
}
return usersApps.value
.map((app) => {
const info = appInformation.value.find((c) => c.id === app.app_id)
const owner = appCreatorsInformation.value.find((c) => c.id === info?.created_by)
if (!info || !owner) {
return null
}
return {
...app,
app: info,
owner,
}
})
.filter(Boolean)
})
const showEmptyState = computed(() => {
if (!usersApps.value) {
return false
}
if (usersApps.value.length === 0) {
return true
}
if (!appInformation.value) {
return false
}
if (appInformation.value.length === 0) {
return true
}
if (!appCreatorsInformation.value) {
return false
}
return appInfoLookup.value.length === 0
})
const isLoading = computed(() => !showEmptyState.value && appInfoLookup.value.length === 0)
function onRevoke(appId) {
revokingId.value = appId
modal_confirm.value.show()
}
async function revokeApp(id) {
try {
await client.labrinth.oauth_internal.revokeAuthorization(id)
@@ -204,73 +205,3 @@ async function revokeApp(id) {
}
}
</script>
<style lang="scss" scoped>
.input-group {
// Overrides for omorphia compat
> * {
padding: var(--gap-sm) var(--gap-lg) !important;
}
}
.scope-list {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
gap: var(--gap-sm);
.scope-list-item {
display: flex;
align-items: center;
gap: 0.5rem;
border-radius: 0.25rem;
background-color: var(--color-gray-200);
color: var(--color-gray-700);
font-size: 0.875rem;
font-weight: 500;
line-height: 1.25rem;
// avoid breaking text or overflowing
white-space: nowrap;
overflow: hidden;
}
.scope-list-item-icon {
width: 1.25rem;
height: 1.25rem;
flex: 0 0 auto;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
background-color: var(--color-green);
color: var(--color-raised-bg);
}
}
.icon-name {
display: flex;
align-items: flex-start;
gap: var(--gap-lg);
padding-bottom: var(--gap-sm);
}
.token-content {
width: 100%;
.token-title {
margin-bottom: var(--spacing-card-xs);
}
}
.token {
display: flex;
flex-direction: column;
gap: 0.5rem;
@media screen and (min-width: 800px) {
flex-direction: row;
align-items: flex-start;
}
}
</style>
@@ -62,6 +62,14 @@
</span>
</label>
<StyledInput id="username-field" v-model="current.username" />
<div
v-if="current.username.length >= 30"
id="bio-character-limit"
class="inline-block pl-2"
:class="{ 'text-red': current.username.length > 39 }"
>
{{ current.username.length }}/{{ 39 }}
</div>
<label for="bio-field">
<span class="label__title">{{ formatMessage(messages.bioTitle) }}</span>
<span class="label__description">
@@ -69,6 +77,9 @@
</span>
</label>
<StyledInput id="bio-field" v-model="current.bio" multiline />
<div id="bio-character-limit" class="pt-2" :class="{ 'text-red': current.bio.length > 160 }">
{{ current.bio.length }}/{{ 160 }}
</div>
<div class="input-group mt-4">
<ButtonStyled>
<NuxtLink :to="`/user/${auth.user.username}`">
+76 -809
View File
@@ -1,838 +1,105 @@
<template>
<div v-if="user">
<ModalCreation ref="modal_creation" />
<CollectionCreateModal ref="modal_collection_creation" />
<NewModal ref="editRoleModal" header="Edit role">
<div class="flex w-80 flex-col gap-4">
<div class="flex flex-col gap-2">
<Combobox v-model="selectedRole" :options="roleOptions" placeholder="Select a role" />
</div>
<div class="flex justify-end gap-2">
<ButtonStyled>
<button @click="cancelRoleEdit">
<XIcon />
{{ formatMessage(commonMessages.cancelButton) }}
</button>
</ButtonStyled>
<ButtonStyled color="brand">
<button
:disabled="!selectedRole || selectedRole === user.role || isSavingRole"
@click="saveRoleEdit"
>
<template v-if="isSavingRole">
<SpinnerIcon class="animate-spin" /> {{ formatMessage(messages.savingLabel) }}
</template>
<template v-else>
<SaveIcon /> {{ formatMessage(commonMessages.saveChangesButton) }}
</template>
</button>
</ButtonStyled>
</div>
</div>
</NewModal>
<NewModal v-if="auth.user && isStaff(auth.user)" ref="userDetailsModal" header="User details">
<div class="flex flex-col gap-3">
<div v-if="isAdmin(auth.user)" class="flex flex-col gap-1">
<span class="text-lg font-bold text-primary">{{
formatMessage(commonMessages.emailLabel)
}}</span>
<div>
<span
v-tooltip="
user.email_verified
? formatMessage(messages.emailVerifiedTooltip)
: formatMessage(messages.emailNotVerifiedTooltip)
"
class="flex w-fit items-center gap-1"
>
<span>{{ user.email }}</span>
<CheckIcon v-if="user.email_verified" class="h-4 w-4 text-brand" />
<XIcon v-else class="h-4 w-4 text-red" />
</span>
</div>
</div>
<div v-if="!isAdmin(auth.user)" class="flex flex-col gap-1">
<span class="text-lg font-bold text-primary">{{
formatMessage(messages.emailVerifiedLabel)
}}</span>
<span class="flex w-fit items-center gap-1">
<CheckIcon v-if="user.email_verified" class="h-4 w-4 text-brand" />
<XIcon v-else class="h-4 w-4 text-red" />
{{
user.email_verified
? formatMessage(commonMessages.yesLabel)
: formatMessage(commonMessages.noLabel)
}}
</span>
</div>
<div v-if="isAdmin(auth.user)" class="flex flex-col gap-1">
<span class="text-lg font-bold text-primary">{{
formatMessage(messages.authProvidersLabel)
}}</span>
<span>{{ user.auth_providers.join(', ') }}</span>
</div>
<div v-if="isAdmin(auth.user)" class="flex flex-col gap-1">
<span class="text-lg font-bold text-primary">{{
formatMessage(messages.paymentMethodsLabel)
}}</span>
<span>
<template v-if="user.payout_data?.paypal_address">
Paypal ({{ user.payout_data.paypal_address }} - {{ user.payout_data.paypal_country }})
</template>
<template v-if="user.payout_data?.paypal_address && user.payout_data?.venmo_address">
,
</template>
<template v-if="user.payout_data?.venmo_address">
Venmo ({{ user.payout_data.venmo_address }})
</template>
</span>
</div>
<div class="flex flex-col gap-1">
<span class="text-lg font-bold text-primary">{{
formatMessage(messages.hasPasswordLabel)
}}</span>
<span>
{{
user.has_password
? formatMessage(commonMessages.yesLabel)
: formatMessage(commonMessages.noLabel)
}}
</span>
</div>
<div class="flex flex-col gap-1">
<span class="text-lg font-bold text-primary">{{
formatMessage(messages.hasTotpLabel)
}}</span>
<span>
{{
user.has_totp
? formatMessage(commonMessages.yesLabel)
: formatMessage(commonMessages.noLabel)
}}
</span>
</div>
</div>
</NewModal>
<div class="new-page sidebar" :class="{ 'alt-layout': cosmetics.leftContentLayout }">
<div class="normal-page__header py-4">
<UserPageHeader
:user="user"
:summary="isModrinthUser ? null : profileHeaderSummary"
:auth-user="auth.user"
:is-modrinth-user="isModrinthUser"
:is-official-account="isOfficialAccount"
:show-affiliate-badge="isAdminViewing && !!isAffiliate"
:is-affiliate="!!isAffiliate"
:is-self="auth.user?.id === user.id"
:is-admin="isAdminViewing"
:is-staff="!!(auth.user && isStaff(auth.user))"
:projects-count="projects?.length || 0"
:downloads="sumDownloads"
@manage-projects="navigateTo('/dashboard/projects')"
@report="reportProfileFromHeader"
@copy-id="copyId"
@copy-permalink="copyPermalink"
@open-billing="navigateTo(`/admin/billing/${user.id}`)"
@toggle-affiliate="toggleAffiliate(user.id)"
@open-info="userDetailsModal?.show()"
@open-analytics="
navigateTo({
path: '/dashboard/analytics',
query: { user: user.username || user.id },
})
"
@edit-role="openRoleEditModal"
>
<template v-if="isModrinthUser" #summary>
<IntlFormatted :message-id="messages.officialAccountBio">
<template #support-link>
<a
href="https://support.modrinth.com"
class="text-link"
target="_blank"
rel="noopener noreferrer"
>
https://support.modrinth.com
</a>
</template>
<template #email>
<a
href="mailto:support@modrinth.com"
class="text-link"
target="_blank"
rel="noopener noreferrer"
>
support@modrinth.com
</a>
</template>
</IntlFormatted>
</template>
</UserPageHeader>
</div>
<div class="normal-page__content">
<div v-if="navLinks.length > 2" class="mb-4 max-w-full overflow-x-auto">
<NavTabs :links="navLinks" replace />
</div>
<div v-if="projects?.length > 0">
<ProjectCardList
v-if="route.params.projectType !== 'collections'"
:layout="cosmetics.searchDisplayMode.user"
>
<ProjectCard
v-for="project in (route.params.projectType !== undefined
? projects.filter(
(x) =>
x.project_type ===
route.params.projectType.substr(0, route.params.projectType.length - 1),
)
: projects
)
.slice()
.sort(projectUserSorting)"
:key="project.id"
:link="`/${project.project_type ?? 'project'}/${project.slug ? project.slug : project.id}`"
:title="project.title"
:icon-url="project.icon_url"
:date-updated="project.updated"
:downloads="project.downloads"
:summary="project.description"
:tags="[...project.categories]"
:all-tags="[
...project.categories,
...project.loaders,
...project.additional_categories,
]"
:followers="project.followers"
:banner="project.gallery.find((element) => element.featured)?.url"
:color="project.color ?? undefined"
:environment="{
clientSide: project.client_side,
serverSide: project.server_side,
}"
:layout="
cosmetics.searchDisplayMode.user === 'grid' ||
cosmetics.searchDisplayMode.user === 'gallery'
? 'grid'
: 'list'
"
:status="project.status"
/>
</ProjectCardList>
</div>
<div
v-else-if="
(route.params.projectType && route.params.projectType !== 'collections') ||
(!route.params.projectType && collections?.length === 0)
"
class="error"
>
<UpToDate class="icon" />
<br />
<span v-if="auth.user && auth.user.id === user.id" class="preserve-lines text">
<IntlFormatted :message-id="messages.profileNoProjectsAuthLabel">
<template #create-link="{ children }">
<a class="link" @click.prevent="$refs.modal_creation.show()">
<component :is="() => children" />
</a>
</template>
</IntlFormatted>
</span>
<span v-else class="text">{{ formatMessage(messages.profileNoProjectsLabel) }}</span>
</div>
<div
v-if="!route.params.projectType || route.params.projectType === 'collections'"
class="collections-grid"
:class="{ 'mt-3': projects?.length > 0 }"
>
<nuxt-link
v-for="collection in sortedCollections"
:key="collection.id"
:to="`/collection/${collection.id}`"
class="card collection-item"
>
<div class="collection">
<Avatar :src="collection.icon_url" size="64px" />
<div class="details">
<h2 class="title">{{ collection.name }}</h2>
<div class="stats">
<LibraryIcon aria-hidden="true" />
{{ formatMessage(messages.collectionLabel) }}
</div>
</div>
</div>
<div class="description">
{{ collection.description }}
</div>
<div class="stat-bar">
<div class="stats">
<BoxIcon />
{{
formatMessage(messages.collectionProjectsCount, {
count: collection.projects?.length || 0,
})
}}
</div>
<div class="stats">
<template v-if="collection.status === 'listed'">
<GlobeIcon />
<span> {{ formatMessage(commonMessages.publicLabel) }} </span>
</template>
<template v-else-if="collection.status === 'unlisted'">
<LinkIcon />
<span> {{ formatMessage(commonMessages.unlistedLabel) }} </span>
</template>
<template v-else-if="collection.status === 'private'">
<LockIcon />
<span> {{ formatMessage(commonMessages.privateLabel) }} </span>
</template>
<template v-else-if="collection.status === 'rejected'">
<XIcon />
<span> {{ formatMessage(commonMessages.rejectedLabel) }} </span>
</template>
</div>
</div>
</nuxt-link>
</div>
<div
v-if="route.params.projectType === 'collections' && collections?.length === 0"
class="error"
>
<UpToDate class="icon" />
<br />
<span v-if="auth.user && auth.user.id === user.id" class="preserve-lines text">
<IntlFormatted :message-id="messages.profileNoCollectionsAuthLabel">
<template #create-link="{ children }">
<a
class="link"
@click.prevent="(event) => $refs.modal_collection_creation.show(event)"
>
<component :is="() => children" />
</a>
</template>
</IntlFormatted>
</span>
<span v-else class="text">{{ formatMessage(messages.profileNoCollectionsLabel) }}</span>
</div>
</div>
<div class="normal-page__sidebar">
<div
v-if="organizations?.length > 0"
class="mb-4 rounded-2xl border border-solid border-surface-4 bg-surface-3 p-4 pt-3"
>
<h2 class="m-0 mb-2 text-lg font-semibold text-contrast">
{{ formatMessage(messages.profileOrganizations) }}
</h2>
<div class="flex flex-wrap gap-2">
<nuxt-link
v-for="org in sortedOrgs"
:key="org.id"
v-tooltip="org.name"
class="organization"
:to="`/organization/${org.slug}`"
>
<Avatar :src="org.icon_url" :alt="'Icon for ' + org.name" size="3rem" />
</nuxt-link>
</div>
</div>
<UserBadges
:downloads="sumDownloads"
:join-date="joinDate"
:role="user.role"
:badges="user.badges"
:has-midas="hasActiveMidas(user)"
:has-pride="hasPride26Badge(user)"
:earliest-project-by-type="earliestProjectByType"
class="mb-4 rounded-2xl border border-solid border-surface-4 bg-surface-3 p-4 pt-3"
/>
<AdPlaceholder v-if="!auth.user" />
</div>
</div>
</div>
<ProjectCreateModal ref="projectCreateModal" />
<CollectionCreateModal ref="collectionCreateModal" />
<UserProfilePageLayout
:user-id="userId"
:project-type="projectType"
:display-mode="cosmetics.searchDisplayMode.user"
:sidebar-position="cosmetics.leftContentLayout ? 'left' : 'right'"
:site-url="config.public.siteUrl"
:on-create-project="openProjectCreateModal"
:on-create-collection="openCollectionCreateModal"
>
<template #sidebar>
<AdPlaceholder v-if="!auth.user" />
</template>
</UserProfilePageLayout>
</template>
<script setup>
import {
BoxIcon,
CheckIcon,
GlobeIcon,
LibraryIcon,
LinkIcon,
LockIcon,
SaveIcon,
SpinnerIcon,
XIcon,
} from '@modrinth/assets'
import {
Avatar,
ButtonStyled,
Combobox,
commonMessages,
defineMessages,
injectModrinthClient,
injectNotificationManager,
IntlFormatted,
NavTabs,
NewModal,
ProjectCard,
ProjectCardList,
UserBadges,
useVIntl,
} from '@modrinth/ui'
import { isAdmin, isStaff, UserBadge } from '@modrinth/utils'
import { useQuery, useQueryClient } from '@tanstack/vue-query'
import { onServerPrefetch } from 'vue'
import UpToDate from '~/assets/images/illustrations/up_to_date.svg?component'
<script setup lang="ts">
import type { Labrinth } from '@modrinth/api-client'
import { injectModrinthClient, provideUserProfile, UserProfilePageLayout } from '@modrinth/ui'
import { useQueryClient } from '@tanstack/vue-query'
import AdPlaceholder from '~/components/ui/AdPlaceholder.vue'
import CollectionCreateModal from '~/components/ui/create/CollectionCreateModal.vue'
import ModalCreation from '~/components/ui/create/ProjectCreateModal.vue'
import UserPageHeader from '~/components/ui/UserPageHeader.vue'
import { getSignInRouteObj } from '~/composables/auth.ts'
import { projectUserSorting } from '~/utils/projects.ts'
import { reportUser } from '~/utils/report-helpers.ts'
import { hasActiveMidas, hasPride26Badge } from '~/utils/user-membership.ts'
import ProjectCreateModal from '~/components/ui/create/ProjectCreateModal.vue'
const data = useNuxtApp()
const route = useNativeRoute()
const client = injectModrinthClient()
const queryClient = useQueryClient()
const userProfile = provideUserProfile({
getUser: (userId) => client.labrinth.users_v3.get(userId),
getProjects: (userId) => client.labrinth.users_v2.getProjects(userId),
getOrganizations: (userId) => client.labrinth.users_v2.getOrganizations(userId),
getCollections: (userId) => client.labrinth.users_v2.getCollections(userId),
patchUser: (userId, patch) => client.labrinth.users_v2.patch(userId, patch),
})
const auth = await useAuth()
const cosmetics = useCosmetics()
const tags = useGeneratedState()
const config = useRuntimeConfig()
const queryClient = useQueryClient()
const { formatMessage } = useVIntl()
const { addNotification } = injectNotificationManager()
const messages = defineMessages({
collectionProjectsCount: {
id: 'profile.collection.projects-count',
defaultMessage: '{count, plural, one {# project} other {# projects}}',
},
savingLabel: {
id: 'profile.label.saving',
defaultMessage: 'Saving...',
},
emailLabel: {
id: 'profile.details.label.email',
defaultMessage: 'Email',
},
emailVerifiedLabel: {
id: 'profile.details.label.email-verified',
defaultMessage: 'Email verified',
},
emailVerifiedTooltip: {
id: 'profile.details.tooltip.email-verified',
defaultMessage: 'Email verified',
},
emailNotVerifiedTooltip: {
id: 'profile.details.tooltip.email-not-verified',
defaultMessage: 'Email not verified',
},
authProvidersLabel: {
id: 'profile.details.label.auth-providers',
defaultMessage: 'Auth providers',
},
paymentMethodsLabel: {
id: 'profile.details.label.payment-methods',
defaultMessage: 'Payment methods',
},
hasPasswordLabel: {
id: 'profile.details.label.has-password',
defaultMessage: 'Has password',
},
hasTotpLabel: {
id: 'profile.details.label.has-totp',
defaultMessage: 'Has TOTP',
},
bioFallbackUser: {
id: 'profile.bio.fallback.user',
defaultMessage: 'A Modrinth user.',
},
bioFallbackCreator: {
id: 'profile.bio.fallback.creator',
defaultMessage: 'A Modrinth creator.',
},
collectionLabel: {
id: 'profile.label.collection',
defaultMessage: 'Collection',
},
profileProjectsFollowersStats: {
id: 'profile.stats.projects-followers',
defaultMessage:
'{count, plural, one {<stat>{count}</stat> project follower} other {<stat>{count}</stat> project followers}}',
},
profileUserId: {
id: 'profile.user-id',
defaultMessage: 'User ID: {id}',
},
profileOrganizations: {
id: 'profile.label.organizations',
defaultMessage: 'Organizations',
},
profileBadges: {
id: 'profile.label.badges',
defaultMessage: 'Badges',
},
profileMetaDescription: {
id: 'profile.meta.description',
defaultMessage: "Download {username}'s projects on Modrinth",
},
profileMetaDescriptionWithBio: {
id: 'profile.meta.description-with-bio',
defaultMessage: "{bio} - Download {username}'s projects on Modrinth",
},
profileNoProjectsLabel: {
id: 'profile.label.no-projects',
defaultMessage: 'This user has no projects!',
},
profileNoProjectsAuthLabel: {
id: 'profile.label.no-projects-auth',
defaultMessage:
"You don't have any projects.\nWould you like to <create-link>create one</create-link>?",
},
profileNoCollectionsLabel: {
id: 'profile.label.no-collections',
defaultMessage: 'This user has no collections!',
},
profileNoCollectionsAuthLabel: {
id: 'profile.label.no-collections-auth',
defaultMessage:
"You don't have any collections.\nWould you like to <create-link>create one</create-link>?",
},
userNotFoundError: {
id: 'profile.error.not-found',
defaultMessage: 'User not found',
},
officialAccountBio: {
id: 'profile.official-account.bio',
defaultMessage:
'The official user account of Modrinth. Get support at <support-link></support-link> or via email at <email></email>',
},
const userId = computed(() => String(route.params.user))
const projectType = computed(() => {
const value = route.params.projectType
return Array.isArray(value) ? value[0] : value
})
const client = injectModrinthClient()
const userId = useRouteId('user')
const {
data: user,
error: userError,
suspense: userSuspense,
} = useQuery({
queryKey: computed(() => ['user', userId]),
queryFn: () => client.labrinth.users_v3.get(userId),
})
watch(
userError,
(error) => {
if (error) {
const status = error.statusCode ?? error.status ?? 404
showError({
fatal: true,
statusCode: status,
message: formatMessage(messages.userNotFoundError),
})
}
},
{ immediate: true },
)
const { data: projects, suspense: projectsSuspense } = useQuery({
queryKey: computed(() => ['user', userId, 'projects']),
queryFn: async () => {
const projects = await client.labrinth.users_v2.getProjects(userId)
for (const project of projects) {
project.categories = project.categories.concat(project.loaders)
project.project_type = data.$getProjectTypeForUrl(
project.project_type,
project.categories,
tags.value,
)
}
return projects
},
})
const { data: organizations, suspense: orgsSuspense } = useQuery({
queryKey: computed(() => ['user', userId, 'organizations']),
queryFn: () => client.labrinth.users_v2.getOrganizations(userId),
})
const { data: collections, suspense: collectionsSuspense } = useQuery({
queryKey: computed(() => ['user', userId, 'collections']),
queryFn: () => client.labrinth.users_v2.getCollections(userId),
})
onServerPrefetch(async () => {
await Promise.allSettled([
userSuspense(),
projectsSuspense(),
orgsSuspense(),
collectionsSuspense(),
])
})
const sortedOrgs = computed(() =>
organizations.value ? [...organizations.value].sort((a, b) => a.name.localeCompare(b.name)) : [],
)
const isModrinthUser = computed(() => user.value?.id === '2REoufqX')
const isAutoMod = computed(() => user.value?.id === '')
const isOfficialAccount = computed(
() => isModrinthUser.value || isAutoMod.value || user.value?.id === 'GVFjtWTf',
)
const sortedCollections = computed(() => {
const list = collections.value
if (!list?.length) return []
return [...list].sort((a, b) => {
const updatedB = new Date(b.updated).getTime()
const updatedA = new Date(a.updated).getTime()
if (updatedB !== updatedA) return updatedB - updatedA
return new Date(b.created).getTime() - new Date(a.created).getTime()
let prefetchedUser: Labrinth.Users.v3.User | undefined
try {
prefetchedUser = await queryClient.ensureQueryData({
queryKey: ['user', userId.value],
queryFn: () => userProfile.getUser(userId.value),
staleTime: 30_000,
})
})
} catch {
// Let the mounted layout's useQuery surface errors; do not fail route setup.
}
const title = computed(() => (user.value ? `${user.value.username} - Modrinth` : 'Modrinth'))
const description = computed(() =>
user.value?.bio
? formatMessage(messages.profileMetaDescriptionWithBio, {
bio: user.value.bio,
username: user.value.username,
})
: user.value
? formatMessage(messages.profileMetaDescription, { username: user.value.username })
: '',
await Promise.allSettled([
queryClient.ensureQueryData({
queryKey: ['user', userId.value, 'projects'],
queryFn: () => userProfile.getProjects(userId.value),
staleTime: 30_000,
}),
queryClient.ensureQueryData({
queryKey: ['user', userId.value, 'organizations'],
queryFn: () => userProfile.getOrganizations(userId.value),
staleTime: 30_000,
}),
queryClient.ensureQueryData({
queryKey: ['user', userId.value, 'collections'],
queryFn: () => userProfile.getCollections(userId.value),
staleTime: 30_000,
}),
])
const title = computed(() =>
prefetchedUser ? `${prefetchedUser.username} - Modrinth` : 'Modrinth',
)
const description = computed(() => {
if (!prefetchedUser) return ''
return prefetchedUser.bio
? `${prefetchedUser.bio} - Download ${prefetchedUser.username}'s projects on Modrinth`
: `Download ${prefetchedUser.username}'s projects on Modrinth`
})
useSeoMeta({
title: () => title.value,
description: () => description.value,
ogTitle: () => title.value,
ogDescription: () => description.value,
ogImage: () => user.value?.avatar_url ?? 'https://cdn.modrinth.com/placeholder.png',
ogImage: () => prefetchedUser?.avatar_url ?? 'https://cdn.modrinth.com/placeholder.png',
})
const projectTypes = computed(() => {
const obj = {}
const projectCreateModal = ref<InstanceType<typeof ProjectCreateModal> | null>(null)
const collectionCreateModal = ref<InstanceType<typeof CollectionCreateModal> | null>(null)
if (collections.value?.length > 0) {
obj.collection = true
}
for (const project of projects.value ?? []) {
obj[project.project_type] = true
}
delete obj.project
return Object.keys(obj)
})
const sumDownloads = computed(() => {
let sum = 0
for (const project of projects.value ?? []) {
sum += project.downloads
}
return sum
})
const joinDate = computed(() => new Date(user.value.created))
async function copyId() {
await navigator.clipboard.writeText(user.value.id)
function openProjectCreateModal(event?: MouseEvent) {
projectCreateModal.value?.show(event)
}
const earliestProjectByType = computed(() => {
const obj = {}
for (const project of projects.value ?? []) {
obj[project.project_type] = new Date(project.published)
}
return obj
})
async function copyPermalink() {
await navigator.clipboard.writeText(`${config.public.siteUrl}/user/${user.value.id}`)
}
function reportProfileFromHeader() {
if (!user.value) return
if (auth.value.user) {
reportUser(user.value.id)
} else {
navigateTo(getSignInRouteObj(route))
}
}
const isAffiliate = computed(() => user.value?.badges & UserBadge.AFFILIATE)
const isAdminViewing = computed(() => isAdmin(auth.value.user))
const userDetailsModal = useTemplateRef('userDetailsModal')
async function toggleAffiliate(id) {
await client.labrinth.users_v2.patch(id, { badges: user.value.badges ^ (1 << 7) })
queryClient.invalidateQueries({ queryKey: ['user', userId] })
}
const profileHeaderSummary = computed(() =>
user.value?.bio
? user.value.bio
: (projects.value?.length ?? 0) === 0
? formatMessage(messages.bioFallbackUser)
: formatMessage(messages.bioFallbackCreator),
)
const navLinks = computed(() => [
{
label: formatMessage(commonMessages.allProjectType),
href: `/user/${user.value.username}`,
},
...projectTypes.value
.map((x) => {
return {
label: formatMessage(getProjectTypeMessage(x, true)),
href: `/user/${user.value.username}/${x}s`,
}
})
.slice()
.sort((a, b) => a.label.localeCompare(b.label)),
])
const selectedRole = ref(user.value?.role)
const isSavingRole = ref(false)
const roleOptions = [
{ value: 'developer', label: 'Developer' },
{ value: 'moderator', label: 'Moderator' },
{ value: 'admin', label: 'Admin' },
]
const editRoleModal = useTemplateRef('editRoleModal')
const openRoleEditModal = () => {
selectedRole.value = user.value.role
editRoleModal.value?.show()
}
const cancelRoleEdit = () => {
selectedRole.value = user.value.role
editRoleModal.value?.hide()
}
function saveRoleEdit() {
if (!selectedRole.value || selectedRole.value === user.value.role) {
return
}
isSavingRole.value = true
client.labrinth.users_v2
.patch(user.value.id, { role: selectedRole.value })
.then(() => {
user.value.role = selectedRole.value
editRoleModal.value?.hide()
})
.catch((error) => {
console.error('Failed to update user role:', error)
addNotification({
type: 'error',
title: 'Failed to update role',
message: 'An error occurred while updating the user role. Please try again.',
})
})
.finally(() => {
isSavingRole.value = false
})
function openCollectionCreateModal(event?: MouseEvent) {
collectionCreateModal.value?.show(event)
}
</script>
<script>
export default defineNuxtComponent({
methods: {},
})
</script>
<style lang="scss" scoped>
.collections-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
@media screen and (max-width: 800px) {
grid-template-columns: repeat(1, 1fr);
}
gap: var(--gap-md);
.collection-item {
display: flex;
flex-direction: column;
gap: var(--gap-md);
margin-bottom: 0px;
}
.description {
flex-grow: 1;
color: var(--color-text);
font-size: 16px;
}
.stat-bar {
display: flex;
align-items: center;
gap: var(--gap-md);
margin-top: auto;
}
.stats {
display: flex;
align-items: center;
gap: var(--gap-xs);
svg {
color: var(--color-secondary);
}
}
.collection {
display: grid;
grid-template-columns: auto 1fr;
gap: var(--gap-md);
.icon {
width: 100% !important;
height: 6rem !important;
max-width: unset !important;
max-height: unset !important;
aspect-ratio: 1 / 1;
object-fit: cover;
}
.details {
display: flex;
flex-direction: column;
gap: var(--gap-sm);
.title {
color: var(--color-contrast);
font-weight: 700;
font-size: var(--font-size-lg);
margin: 0;
}
}
}
}
.new-page {
column-gap: 1.5rem;
}
</style>
+13
View File
@@ -26,9 +26,22 @@ ELASTICSEARCH_INDEX_PREFIX=labrinth
ELASTICSEARCH_USERNAME=elastic
ELASTICSEARCH_PASSWORD=elastic
SEARCH_INDEX_CHUNK_SIZE=5000
SEARCH_INCREMENTAL_INDEX_BATCH_DELAY_SECONDS=5
SEARCH_INCREMENTAL_INDEX_BATCH_MAX_SIZE=1000
TYPESENSE_URL=http://localhost:8108
TYPESENSE_API_KEY=modrinth
TYPESENSE_INDEX_PREFIX=labrinth
TYPESENSE_IMPORT_BATCH_SIZE=5000
SEARCH_TYPESENSE_DEFAULT_QUERY_BY=name,indexed_name,slug,author,indexed_author,summary
SEARCH_TYPESENSE_DEFAULT_QUERY_BY_WEIGHTS=[15,15,10,3,3,1]
SEARCH_TYPESENSE_DEFAULT_PREFIX=[true,true,true,true,true,true]
SEARCH_TYPESENSE_DEFAULT_PRIORITIZE_EXACT_MATCH=true
SEARCH_TYPESENSE_DEFAULT_PRIORITIZE_NUM_MATCHING_FIELDS=false
SEARCH_TYPESENSE_DEFAULT_PRIORITIZE_TOKEN_POSITIONS=true
SEARCH_TYPESENSE_DEFAULT_DROP_TOKENS_THRESHOLD=0
SEARCH_TYPESENSE_DEFAULT_TEXT_MATCH_TYPE=max_weight
SEARCH_TYPESENSE_DEFAULT_BUCKETING='{"buckets":5}'
SEARCH_TYPESENSE_DEFAULT_MAX_CANDIDATES=24
REDIS_MODE=standalone
REDIS_CONNECTION_TYPE=pooled
+13
View File
@@ -44,9 +44,22 @@ ELASTICSEARCH_USERNAME=
ELASTICSEARCH_PASSWORD=
SEARCH_INDEX_CHUNK_SIZE=5000
SEARCH_INCREMENTAL_INDEX_BATCH_DELAY_SECONDS=5
SEARCH_INCREMENTAL_INDEX_BATCH_MAX_SIZE=1000
TYPESENSE_URL=http://localhost:8108
TYPESENSE_API_KEY=modrinth
TYPESENSE_INDEX_PREFIX=labrinth
TYPESENSE_IMPORT_BATCH_SIZE=5000
SEARCH_TYPESENSE_DEFAULT_QUERY_BY=name,indexed_name,slug,author,indexed_author,summary
SEARCH_TYPESENSE_DEFAULT_QUERY_BY_WEIGHTS=[15,15,10,3,3,1]
SEARCH_TYPESENSE_DEFAULT_PREFIX=[true,true,true,true,true,true]
SEARCH_TYPESENSE_DEFAULT_PRIORITIZE_EXACT_MATCH=true
SEARCH_TYPESENSE_DEFAULT_PRIORITIZE_NUM_MATCHING_FIELDS=false
SEARCH_TYPESENSE_DEFAULT_PRIORITIZE_TOKEN_POSITIONS=true
SEARCH_TYPESENSE_DEFAULT_DROP_TOKENS_THRESHOLD=0
SEARCH_TYPESENSE_DEFAULT_TEXT_MATCH_TYPE=max_weight
SEARCH_TYPESENSE_DEFAULT_BUCKETING='{"buckets":5}'
SEARCH_TYPESENSE_DEFAULT_MAX_CANDIDATES=24
REDIS_MODE=standalone
REDIS_CONNECTION_TYPE=pooled
@@ -0,0 +1,15 @@
{
"db_name": "PostgreSQL",
"query": "\n INSERT INTO blocked_users (user_id, blocked_id)\n VALUES ($1, $2)\n ON CONFLICT (user_id, blocked_id) DO NOTHING\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Int8"
]
},
"nullable": []
},
"hash": "57895dd22cb3f6d954ed742a730edece682a771d504ef209cbece81c46e07efb"
}
@@ -0,0 +1,15 @@
{
"db_name": "PostgreSQL",
"query": "\n DELETE FROM blocked_users\n WHERE user_id = $1 AND blocked_id = $2\n ",
"describe": {
"columns": [],
"parameters": {
"Left": [
"Int8",
"Int8"
]
},
"nullable": []
},
"hash": "c08a594796f4af4b7cc536c672731756440e8d1165e88dc644f898a9e40abc48"
}
@@ -0,0 +1,23 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT 1 FROM blocked_users\n WHERE user_id = $1 AND blocked_id = $2\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "?column?",
"type_info": "Int4"
}
],
"parameters": {
"Left": [
"Int8",
"Int8"
]
},
"nullable": [
null
]
},
"hash": "c88172a879d9c2e9cb7fa1480e274e650cd29bc04083708a5fc8580c25be7747"
}
@@ -0,0 +1,22 @@
{
"db_name": "PostgreSQL",
"query": "\n SELECT blocked_id FROM blocked_users\n WHERE user_id = $1\n ",
"describe": {
"columns": [
{
"ordinal": 0,
"name": "blocked_id",
"type_info": "Int8"
}
],
"parameters": {
"Left": [
"Int8"
]
},
"nullable": [
false
]
},
"hash": "d446d0fe439ea6d8ea7df14419955d93660afa7b634cb7b5edb77c277d89e986"
}
+2
View File
@@ -35,6 +35,7 @@ bitflags = { workspace = true }
bytes = { workspace = true }
censor = { workspace = true }
chrono = { workspace = true, features = ["serde"] }
chumsky = { workspace = true }
clap = { workspace = true, features = ["derive"] }
clickhouse = { workspace = true, features = ["time", "uuid"] }
color-eyre = { workspace = true }
@@ -114,6 +115,7 @@ serde_json = { workspace = true }
serde_with = { workspace = true }
sha1 = { workspace = true }
sha2 = { workspace = true }
smallvec = { workspace = true }
spdx = { workspace = true, features = ["text"] }
sqlx = { workspace = true, features = [
"chrono",
@@ -0,0 +1,5 @@
CREATE TABLE blocked_users (
user_id bigint NOT NULL REFERENCES users (id) ON DELETE CASCADE,
blocked_id bigint NOT NULL REFERENCES users (id) ON DELETE CASCADE,
PRIMARY KEY (user_id, blocked_id)
);
+3 -2
View File
@@ -18,7 +18,7 @@ use crate::util::anrok;
use actix_web::web;
use clap::ValueEnum;
use eyre::WrapErr;
use tracing::info;
use tracing::{info, instrument};
use xredis::RedisPool;
#[derive(ValueEnum, Debug, Copy, Clone, PartialEq, Eq)]
@@ -50,6 +50,7 @@ pub enum BackgroundTask {
impl BackgroundTask {
#[allow(clippy::too_many_arguments)]
#[instrument(skip_all, fields(background_task = ?self))]
pub async fn run(
self,
pool: PgPool,
@@ -176,7 +177,7 @@ pub async fn index_search(
search_backend: web::Data<dyn SearchBackend>,
) -> eyre::Result<()> {
info!("Indexing local database");
search_backend.index_projects(ro_pool, redis_pool).await
search_backend.rebuild_index(ro_pool, redis_pool).await
}
pub async fn release_scheduled(pool: PgPool) -> eyre::Result<()> {
@@ -0,0 +1,94 @@
use crate::database::models::DBUserId;
pub struct DBBlockedUser {
pub user_id: DBUserId,
pub blocked_id: DBUserId,
}
impl DBBlockedUser {
pub async fn insert<'a, E>(&self, exec: E) -> Result<(), sqlx::Error>
where
E: crate::database::Executor<'a, Database = sqlx::Postgres>,
{
sqlx::query!(
"
INSERT INTO blocked_users (user_id, blocked_id)
VALUES ($1, $2)
ON CONFLICT (user_id, blocked_id) DO NOTHING
",
self.user_id.0,
self.blocked_id.0,
)
.execute(exec)
.await?;
Ok(())
}
pub async fn is_blocked<'a, E>(
user_id: DBUserId,
blocked_id: DBUserId,
exec: E,
) -> Result<bool, sqlx::Error>
where
E: crate::database::Executor<'a, Database = sqlx::Postgres>,
{
let blocked = sqlx::query_scalar!(
"
SELECT 1 FROM blocked_users
WHERE user_id = $1 AND blocked_id = $2
",
user_id.0,
blocked_id.0,
)
.fetch_optional(exec)
.await?;
Ok(blocked.is_some())
}
pub async fn get_blocked_for_user<'a, E>(
user_id: DBUserId,
exec: E,
) -> Result<Vec<DBUserId>, sqlx::Error>
where
E: crate::database::Executor<'a, Database = sqlx::Postgres>,
{
let blocked = sqlx::query_scalar!(
"
SELECT blocked_id FROM blocked_users
WHERE user_id = $1
",
user_id.0,
)
.fetch_all(exec)
.await?
.into_iter()
.map(DBUserId)
.collect();
Ok(blocked)
}
pub async fn remove<'a, E>(
user_id: DBUserId,
blocked_id: DBUserId,
exec: E,
) -> Result<(), sqlx::Error>
where
E: crate::database::Executor<'a, Database = sqlx::Postgres>,
{
sqlx::query!(
"
DELETE FROM blocked_users
WHERE user_id = $1 AND blocked_id = $2
",
user_id.0,
blocked_id.0,
)
.execute(exec)
.await?;
Ok(())
}
}
+1
View File
@@ -2,6 +2,7 @@ use thiserror::Error;
pub mod affiliate_code_item;
pub mod analytics_event_item;
pub mod blocked_user_item;
pub mod categories;
pub mod charge_item;
pub mod collection_item;

Some files were not shown because too many files have changed in this diff Show More