Compare commits

...
Author SHA1 Message Date
aecsocket a3316ba5c1 update frontend to work with new versions list route 2026-01-13 12:44:14 +00:00
aecsocket ddbf3d2b74 reroute /v2/versions properly 2026-01-13 11:25:57 +00:00
aecsocket 4ee470bc43 Move version compatibility info to backend version list route 2026-01-13 00:37:04 +00:00
915d8c68bf Fix theme store race condition (#4885)
Co-authored-by: Calum H. <contact@cal.engineer>
2026-01-12 12:15:34 +00:00
ProspectorandGitHub 21045142cd Disallow all in robots.txt unless prod (#5078) 2026-01-12 11:54:21 +00:00
Modrinth BotandGitHub f171752109 New translations from Crowdin (main) (#5095) 2026-01-12 10:26:48 +00:00
Calum H.andGitHub 82f00f961e feat: switch to api-client to prevent rate limit errors on game-versions (#5089)
* feat: switch to api-client to prevent rate limit errors on game-versions

* feat: sentry temp

* Revert "feat: sentry temp"

This reverts commit aaa21a3f80.
2026-01-11 19:55:07 +00:00
Calum H.andGitHub b55b7fdc1c feat: enable async context + patch i18n to be more resilient (#5084)
* feat: enable async context

* feat: improve handling of $i18n defining (patch)
2026-01-10 17:43:21 +00:00
Michael H.andGitHub 0b60060f65 fix: vite dev server cf workers compatibility (#5080) 2026-01-10 14:11:00 +00:00
Calum H.andGitHub b0f1266a8b feat: normalize paths + add share for crash reports (#5071) 2026-01-09 17:02:42 +00:00
Prospector 863ff2e228 fix date 2026-01-08 14:27:58 -08:00
Prospector 579aa5967f app changelog 2026-01-08 14:26:56 -08:00
François-Xavier TalbotandGitHub 3bf5a6ebec Allow projects in tech review to still show up in moderation queue (#5068)
* Don't prevent projects from appearing in moderation queue if there are pending delphi reports

* Update query cache
2026-01-08 20:47:32 +01:00
François-Xavier TalbotandGitHub ff222aa168 PG/RedisPool configuration/o11y improvements (#5032)
* Don't retain Redis connections while doing database queries

* Optional REDIS_WAIT_TIMEOUT_MS

* Attach more data to CacheTimeout errrors

* Fix locks_released

* Fmt

* Set default REDIS_WAIT_TIMEOUT_MS to 15s

* Fix lint

* Close Redis connections idle for > 5 minutes

* Exponential backoff on cache spin lock
2026-01-08 20:47:13 +01:00
Michael H. ea17534f77 deploy(frontend): reduce sampling rate 2026-01-08 20:07:58 +01:00
Michael H. b91d581928 deploy(frontend): add production route 2026-01-08 19:55:52 +01:00
Michael H. 4f6cb7f26c deploy(frontend): don't wrap quotes around value 2026-01-08 18:37:49 +01:00
Michael H. c1da3e7e95 deploy(frontend): actions is stupid 2026-01-08 18:35:18 +01:00
Michael H. 040c568fdb deploy(frontend): debug variables 2026-01-08 18:31:54 +01:00
Michael H. 7a78565c97 deploy(frontend): merge variable injection & build step 2026-01-08 18:14:04 +01:00
62e56eb27e Worker migration (#5072)
* Worker migration

* Deploy on pnpm changes

* Specify package manager

* Manually bump Wrangler to 4.54

* Get rid of useless Wranglers worker

* I take it back

* Set account ID

* Fix preview alias

* feat: use workers api key

* feat: try fix

* fix: missing imports

* fix: again

* fix: only run push workflow on main or prod

* feat: remove store id?

* Populate secret store IDs

* Use correct key name

* Fix setting PREVIEW variable

* Inject variables from wrangler into shell

* Inject variables from wrangler into shell

* Add git- prefix to preview-alias

* No need to use environments now

* fix: remove test as it's covered by staging deploy

---------

Co-authored-by: Michael H. <michael@iptables.sh>
2026-01-08 16:25:45 +00:00
ProspectorandGitHub 8175120c4c Add fallback for checkbox aria-labels if description is not provided (#5066) 2026-01-08 15:47:32 +00:00
François-Xavier TalbotandGitHub 6221fe5e08 Fix build with updater feature (#5067) 2026-01-08 02:38:02 +00:00
François-Xavier TalbotandGitHub 4a8f882063 Fix underflow in QuickPlay compat check (#5065) 2026-01-08 02:14:05 +00:00
François-Xavier TalbotandGitHub 17db55a0bc Include OS in theseus User-Agent (#5046) 2026-01-08 02:11:18 +00:00
François-Xavier TalbotandGitHub a1d9268d00 Fix daedalus (#5064)
* Support default-user-jvm arguments type

* Use this branch's container

* Allow no rules in Ruled argument variant

* Run main
2026-01-08 01:43:47 +00:00
François-Xavier TalbotandGitHub 14d227a1a3 Revert "Use backup physical_id for progress updates matching" (#5060)
* Revert "Use backup physical_id for progress updates matching"

This reverts commit de2f6275b9.

* Fix page crash on backups page reload
2026-01-07 22:28:57 +00:00
François-Xavier TalbotandGitHub 3fd6ce1b6d Use fill v3 API for fetching paper build versions (#5063) 2026-01-07 22:27:46 +00:00
François-Xavier TalbotandGitHub 7eb1b38cc7 Support updated servers backup route schema, remove backup locking (#5053)
* Use backup physical_id for progress updates matching

* Remove locking

* Fmt
2026-01-06 01:03:46 +00:00
Prospector 2e9730ea1f changelog 2026-01-05 16:58:15 -08:00
a6cd4dfc0f feat: improve error handling for withdraw modal (#5054)
* feat: improve error handling for withdraw modal

* fix: add headers to error info

* prepr

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2026-01-06 00:46:34 +00:00
Modrinth BotandGitHub 0cf28c6392 New translations from Crowdin (main) (#5048) 2026-01-06 00:44:05 +00:00
Calum H.andGitHub 7c2327ce16 fix: broken analytics pages (#5052) 2026-01-06 00:42:13 +00:00
099011a177 feat: modrinth hosting - files tab refactor (#4912)
* feat: api-client module for content v0

* feat: delete unused components + modules + setting

* feat: xhr uploading

* feat: fs module -> api-client

* feat: migrate files.vue to use tanstack

* fix: mem leak + other issues

* fix: build

* feat: switch to monaco

* fix: go back to using ace, but improve preloading + theme

* fix: styling + dead attrs

* feat: match figma

* fix: padding

* feat: files-new for ui page structure

* feat: finalize files.vue

* fix: lint

* fix: qa

* fix: dep

* fix: lint

* fix: lockfile merge

* feat: icons on navtab

* fix: surface alternating on table

* fix: hover surface color

---------

Signed-off-by: Calum H. <contact@cal.engineer>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2026-01-06 00:35:51 +00:00
Calum H.andGitHub 61d4a34f0f devex: skip services + env + db steps in CI if not needed (#4965) 2026-01-06 00:23:22 +00:00
ProspectorandGitHub 5b890dcd8a This fixes it and i don't know why because it still redirects O_O (#5051) 2026-01-05 14:16:00 -08:00
Prospector c2bd88377b changelog 2026-01-05 12:27:14 -08:00
Truman GaoandGitHub efcc0d87b5 fix server upgrade button open modal (#5043) 2026-01-04 21:25:40 +00:00
ProspectorandGitHub f3033956cf Clean up licensing ambiguities (#4979) 2026-01-03 15:16:17 -08:00
ProspectorandGitHub e26291943c fix hydration error in moderation queue (#5038)
* fix hydration error in moderation queue

* disabled moderation button when no projects

* fix circular prop type issue

* Make moderation checklist clientonly
2026-01-03 12:49:32 -08:00
Truman GaoandGitHub 3fc18feacf fix: markdown editor scroll issues with max-height (#5031)
* add markdown editor stories to show scrolling bug

* add story

* update story content

* fix markdown editor scroll

* fix space

* lint
2026-01-03 03:33:20 +00:00
Truman GaoandGitHub 09a0b34df3 link with slug if exists (#5029) 2026-01-02 22:14:53 +00:00
Prospector 937be840c4 changelog 2026-01-01 17:20:58 -08:00
fef6df1321 fix: throw error on fail so it doesnt cache (#5023)
* fix: throw error on fail so it doesnt cache

* lint

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2026-01-02 00:39:13 +00:00
daf804947c devex: storybook for UI Package (#4984)
* add storybook

* clean up stories

* small fix

* add stories for all components

* add vintl

* default to dark mode

* fix  teleport

* add theme addon

* add new modal story

* delete broken stories

* move all stories to central stories folder

* fix paths

* add pnpm run storybook

* remove chromatic

* add add-stories.md

* fix types

* fix unncessary args field

* cover more addordion states

* pt2

* remove old vintl

* fix: missing style + ctx

---------

Co-authored-by: Calum H. (IMB11) <contact@cal.engineer>
2026-01-02 00:32:58 +00:00
Truman GaoandGitHub 477d77cdc1 fix: balance displaying NaN (#5024)
* convert string to num

* another potentional string addition

* remove return statement

* fix formatting
2026-01-02 00:27:53 +00:00
Calum H.andGitHub 9bb012a439 fix: direct page visit breaking when labrinth goes down (#5022) 2026-01-01 21:21:39 +01:00
Calum H.andGitHub d1650bb3c4 fix: fouc (#5012)
* fix: fouc

* feat: lazy load locales

* switch test to use build
2026-01-01 14:08:05 +00:00
ProspectorandGitHub 2ce22c18bf Simplify default layout template by moving banners to components (#5010) 2026-01-01 02:28:10 +00:00
Truman GaoandGitHub b48443c65b fix: not checking file extension in loader detection (#5013) 2026-01-01 02:27:28 +00:00
b7e7e5e603 Change input mode for sign-in form (#5000)
* Change input mode and types and modes for sign-in form

-Added the inputmode of "email" to tell mobile browsers to change to the email keyboard for username/email input

-Added the inputmode of "numeric" to tell mobile browsers to change to the numeric keyboard for 2fa input (https://www.w3schools.com/TAgs/att_inputmode.asp)

-Changed two-factor code input type to "numeric" to provide a greater hint to autofill that this is where they should fill in 2fa codes

Signed-off-by: MIfoodie <94649676+MIfoodie@users.noreply.github.com>

* Clean up whitespace in sign-in.vue that I accidently added :)

Removed extra whitespace before the Google authentication link.

Signed-off-by: MIfoodie <94649676+MIfoodie@users.noreply.github.com>

* Change input type from 'number' to 'text'

Signed-off-by: MIfoodie <94649676+MIfoodie@users.noreply.github.com>

---------

Signed-off-by: MIfoodie <94649676+MIfoodie@users.noreply.github.com>
Co-authored-by: Calum H. <contact@cal.engineer>
2025-12-31 17:54:19 +00:00
Prospector fca5b7b544 unparsable 2025-12-31 10:27:07 -08:00
Prospector 3a40ee8713 changelog 2025-12-31 10:17:55 -08:00
Calum H.andGitHub 9e4317a262 fix: use ast not regex (#5007)
* fix: use ast not regex

* packages/ui incl
2025-12-31 17:48:27 +00:00
Truman GaoandGitHub 7fb6401613 fix: server ping spam (#4983)
* add a throttle on populate jump back in list

* Revert "add a throttle on populate jump back in list"

This reverts commit b3e7f51b34.

* only allow populate jump back in list to run 3x on linux

* add temp debug logs

* Revert "add temp debug logs"

This reverts commit 8c5ec42fa3.

* only allow 3x refresh limit for worlds list as well
2025-12-31 11:04:14 +00:00
Truman GaoandGitHub d332032e53 fix large projects list query with fetch segmented (#5004) 2025-12-31 11:03:40 +00:00
Calum H.andGitHub 560f21c0fe fix: various fixes (#4998)
* feat: check imports using ast

* fix: lint

* fix: loadericon

* fix: lint

* feat: remove usd warning

* fix: error.vue

* fix: lint
2025-12-30 21:47:11 +00:00
Calum H.andGitHub 2f99628d94 fix: downgrade to rolldown-vite 7.2.11 (#4999) 2025-12-30 20:53:36 +00:00
aecsocketandGitHub ad3edf541b Replace MaxMind with CloudFlare headers (#4934)
* Replace MaxMind with CloudFlare headers

* Remove MaxMind env vars

* Fix test harness
2025-12-30 16:49:49 +00:00
Calum H.andGitHub b07a1659b4 chore: update to nuxt 3.20 (#4992)
* feat: nuxt 3.14 → 3.15.4

* feat: nuxt 3.15.4 → 3.16.2 (vite 6)

* feat: bump nuxt-i18n

* feat: nuxt 3.20

* fix: lint

* feat: use rolldown-vite

* fix: shut the fuck up

* fix: silence for app as well

* fix: vue-router mismatch

---------

Signed-off-by: Calum H. <contact@cal.engineer>
2025-12-30 15:06:52 +00:00
Calum H.andGitHub 1a16d61511 fix: rev page broken (#4994)
* fix: i18n

* fix: lint
2025-12-30 00:40:56 +01:00
Prospector 366a0a6366 changelog 2025-12-29 14:33:57 -08:00
91b08e7380 Versions environments updates (#4949)
* add environment to version page metadata card

* remove environment migration warnings

* show settings/environments in nav only for staff

* use v2 versions route due to regressions

* add modpack incorrect loaders migration

* remove modpack migration step

* remove unused var

* run pnpm intl:extract

* componentize environment migration page

* rename environment selector

* rename environment selector pt2

* add migration modal to admonition

* hide environments in settings and show message

* show environment in project versions table

* pnpm fix

* pnpm fix on ui package

* intl:extract

* fix: .value

* lower case file

* add icon to environment tags and use i18n

* Update apps/frontend/src/pages/[type]/[id].vue

Co-authored-by: Calum H. <contact@cal.engineer>
Signed-off-by: Truman Gao <106889354+tdgao@users.noreply.github.com>

* open migration modal from warning icon in project dashboard

* fix settings side nav icon

* use useRoute composable

* pnpm fix

* intl:extract

* fix import

* fix import again

* run pnpm prepr

* fix designMessage import

* fix environment fetch

* fix environment fetch properly without key conflict

* fix environment refetching

* fix not using current versions in table to check different environments

* fix download tooltip

---------

Signed-off-by: Truman Gao <106889354+tdgao@users.noreply.github.com>
Co-authored-by: Calum H. (IMB11) <contact@cal.engineer>
2025-12-29 21:58:17 +00:00
François-Xavier TalbotandGitHub 9924faab84 Fix tech rev rejection query (#4963) 2025-12-29 21:06:47 +00:00
Calum H.andGitHub 9f356beec3 feat: bank acct owner (#4993) 2025-12-29 20:44:18 +00:00
Calum H.andGitHub afe5f773e0 devex: i18n coverage (#4991)
* devex: i18n coverage

* feat: chalk usage

* feat: exclude legal
2025-12-29 20:41:40 +00:00
Calum H.andGitHub 3e246f12de fix: scopes i18n + authorization page temp warning (#4989) 2025-12-29 19:49:54 +00:00
Calum H.andGitHub 042451bad6 feat: i18n switcher in app-frontend (#4990)
* feat: app i18n stuff

* feat: locale switching on load

* feat: db migration

* feat: polish + fade indicator impl onto TabbedModal

* fix: prepr checks

* fix: remove staging lock for language switching

* fix: lint
2025-12-29 19:41:39 +00:00
30106d5f82 Provide more specific payout method names on frontend (#4977)
* Provide more specific payout method names on frontend

Been getting a lot of confused tickets recently of people withdrawing to PayPal but then not recognizing what "Tremendous" means. This should clarify things.

* feat: improve icons + names for withdrawals

* Update apps/frontend/src/components/ui/dashboard/RevenueTransaction.vue

Co-authored-by: Emma Alexia <emma@modrinth.com>
Signed-off-by: Calum H. <hendersoncal117@gmail.com>

* fix: icons

* fix: object cover

* feat: icons for crypto + bank

* fix: remove empty null

* fix: qa

---------

Signed-off-by: Calum H. <hendersoncal117@gmail.com>
Co-authored-by: Calum H. <contact@cal.engineer>
2025-12-29 13:08:33 +00:00
Modrinth BotandGitHub e0d159c010 New translations from Crowdin (main) (#4910) 2025-12-29 12:59:14 +00:00
ProspectorandGitHub 061c52c274 Updated DMCA agent info (#4981) 2025-12-28 00:17:55 +00:00
1bbb01bd42 devex: migrate to vue-i18n (#4966)
* sample languages refactor

* feat: consistency + dedupe impl of i18n

* fix: broken imports

* fix: intl formatted component

* fix: use relative imports

* fix: imports

* fix: comment out incomplete locales + fix imports

* feat: cleanup

* fix: ui imports

* fix: lint

* fix: admonition import

* make footer a component, fix language reactivity

* make copyright notice untranslatable

---------

Co-authored-by: Calum H. <contact@cal.engineer>
2025-12-27 21:37:37 +00:00
Calum H.andGitHub 3cabc3b967 fix: make icons + blog generators not break with eslint (presort) (#4980) 2025-12-27 20:50:08 +00:00
Calum H.andGitHub 7de4e55bad feat: fix report msgs not showing (#4974) 2025-12-27 00:24:08 +00:00
Calum H.andGitHub 1f21d66140 devex: add icon cmd (#4958)
* feat: icons add cmd

* fix: dep

* Update packages/assets/build/add-icons.ts

Signed-off-by: Calum H. <hendersoncal117@gmail.com>

* fix: lint

---------

Signed-off-by: Calum H. <hendersoncal117@gmail.com>
Signed-off-by: Calum H. <contact@cal.engineer>
2025-12-24 22:30:46 +00:00
Calum H.andGitHub 3adee66899 devex: prepr:web and app with proper caching (#4957)
* devex: prepr:web and app with proper caching

* fix: add tooling config to turbo global deps

* fix: exclude turbo + node modules for tooling-config

* feat: prepr:frontend

* fix: ci issue
2025-12-24 21:39:59 +00:00
Truman GaoandGitHub 67a6cd24cc devex: use tailwind preset for website, app, and ui package (#4964)
* use tailwind preset for website, app, and ui package

* fix preset import
2025-12-24 21:24:05 +00:00
Michael H. a952318c77 Revert "feat: downtime banner (#4955)"
This reverts commit 336832ec40.
2025-12-23 16:55:47 +01:00
Calum H.andGitHub 336832ec40 feat: downtime banner (#4955) 2025-12-23 16:40:42 +01:00
543bd5acf7 Coolbot/moderation updates for versions changes (#4942)
* update reports message to the correct support bubble color

* update checklist to direct to new settings pages and use v3 env info

* fix: project v2 + v3 in moderation checklist funcs

* Split environment stage if project uses mixed environments.

---------

Co-authored-by: Calum H. (IMB11) <contact@cal.engineer>
2025-12-22 23:37:44 +00:00
Calum H.andGitHub 6a0bf5858e fix: panel breaking with advancedDebugInfo (#4952) 2025-12-22 22:45:13 +00:00
Prospector 11a75e7657 changelog 2025-12-22 14:15:25 -08:00
Calum H.andGitHub 88635d8da8 fix: auto-icon utility import (#4950) 2025-12-22 22:03:44 +00:00
Prospector 934936eba8 changelog 2025-12-22 12:48:17 -08:00
Truman GaoandGitHub 53ec2c5306 Handle project type on per version basis for multi-type projects (#4945)
* infer project type by draft version loader

* fix detecting modpack project type when editing

* fix no loaders check

* pnpm run fix
2025-12-21 22:13:41 +01:00
aecsocketandGitHub cace1a54cd Fix tech review query routes (#4946) 2025-12-21 09:23:21 +00:00
803c17de31 Fix modpack exports in the app being broken due to new file types (#4944)
* Fix modpack exports in the app being broken due to new file types

* pnpm fix to fix CI

---------

Co-authored-by: aecsocket <aecsocket@tutanota.com>
2025-12-21 08:49:53 +00:00
Calum H.andGitHub 537eadef0c fix: issues with files tab + tech rev cards (#4941) 2025-12-20 22:58:14 +01:00
39f2b0ecb6 Technical review queue (#4775)
* chore: fix typo in status message

* feat(labrinth): overhaul malware scanner report storage and routes

* chore: address some review comments

* feat: add Delphi to Docker Compose `with-delphi` profile

* chore: fix unused import Clippy lint

* feat(labrinth/delphi): use PAT token authorization with project read scopes

* chore: expose file IDs in version queries

* fix: accept null decompiled source payloads from Delphi

* tweak(labrinth): expose base62 file IDs more consistently for Delphi

* feat(labrinth/delphi): support new Delphi report severity field

* chore(labrinth): run `cargo sqlx prepare` to fix Docker build errors

* tweak: add route for fetching Delphi issue type schema, abstract Labrinth away from issue types

* chore: run `cargo sqlx prepare`

* chore: fix typo on frontend generated state file message

* feat: update to use new Delphi issue schema

* wip: tech review endpoints

* wip: add ToSchema for dependent types

* wip: report issues return

* wip

* wip: returning more data

* wip

* Fix up db query

* Delphi configuration to talk to Labrinth

* Get Delphi working with Labrinth

* Add Delphi dummy fixture

* Better Delphi logging

* Improve utoipa for tech review routes

* Add more sorting options for tech review queue

* Oops join

* New routes for fetching issues and reports

* Fix which kind of ID is returned in tech review endpoints

* Deduplicate tech review report rows

* Reduce info sent for projects

* Fetch more thread info

* Address PR comments

* fix ci

* fix postgres version mismatch

* fix version creation

* Implement routes

* fix up tech review

* Allow adding a moderation comment to Delphi rejections

* fix up rebase

* exclude rejected projects from tech review

* add status change msg to tech review thread

* cargo sqlx prepare

* also ignore withheld projects

* More filtering on issue search

* wip: report routes

* Fix up for build

* cargo sqlx prepare

* fix thread message privacy

* New tech review search route

* submit route

* details have statuses now

* add default to drid status

* dedup issue details

* fix sqlx query on empty files

* fixes

* Dedupe issue detail statuses and message on entering tech rev

* Fix qa issues

* Fix qa issues

* fix review comments

* typos

* fix ci

* feat: tech review frontend (#4781)

* chore: fix typo in status message

* feat(labrinth): overhaul malware scanner report storage and routes

* chore: address some review comments

* feat: add Delphi to Docker Compose `with-delphi` profile

* chore: fix unused import Clippy lint

* feat(labrinth/delphi): use PAT token authorization with project read scopes

* chore: expose file IDs in version queries

* fix: accept null decompiled source payloads from Delphi

* tweak(labrinth): expose base62 file IDs more consistently for Delphi

* feat(labrinth/delphi): support new Delphi report severity field

* chore(labrinth): run `cargo sqlx prepare` to fix Docker build errors

* tweak: add route for fetching Delphi issue type schema, abstract Labrinth away from issue types

* chore: run `cargo sqlx prepare`

* chore: fix typo on frontend generated state file message

* feat: update to use new Delphi issue schema

* wip: tech review endpoints

* wip: add ToSchema for dependent types

* wip: report issues return

* wip

* wip: returning more data

* wip

* Fix up db query

* Delphi configuration to talk to Labrinth

* Get Delphi working with Labrinth

* Add Delphi dummy fixture

* Better Delphi logging

* Improve utoipa for tech review routes

* Add more sorting options for tech review queue

* Oops join

* New routes for fetching issues and reports

* Fix which kind of ID is returned in tech review endpoints

* Deduplicate tech review report rows

* Reduce info sent for projects

* Fetch more thread info

* Address PR comments

* fix ci

* fix ci

* fix postgres version mismatch

* fix version creation

* Implement routes

* feat: batch scan alert

* feat: layout

* feat: introduce surface variables

* fix: theme selector

* feat: rough draft of tech review card

* feat: tab switcher

* feat: batch scan btn

* feat: api-client module for tech review

* draft: impl

* feat: auto icons

* fix: layout issues

* feat: fixes to code blocks + flag labels

* feat: temp remove mock data

* fix: search sort types

* fix: intl & lint

* chore: re-enable mock data

* fix: flag badges + auto open first issue in file tab

* feat: update for new routes

* fix: more qa issues

* feat: lazy load sources

* fix: re-enable auth middleware

* feat: impl threads

* fix: lint & severity

* feat: download btn + switch to using NavTabs with new local mode option

* feat: re-add toplevel btns

* feat: reports page consistency

* fix: consistency on project queue

* fix: icons + sizing

* fix: colors and gaps

* fix: impl endpoints

* feat: load all flags on file tab

* feat: thread generics changes

* feat: more qa

* feat: fix collapse

* fix: qa

* feat: msg modal

* fix: ISO import

* feat: qa fixes

* fix: empty state basic

* fix: collapsible region

* fix: collapse thread by default

* feat: rough draft of new process/flow

* fix labrinth build

* fix thread message privacy

* New tech review search route

* feat: qa fixes

* feat: QA changes

* fix: verdict on detail not whole issue

* fix: lint + intl

* fix: lint

* fix: thread message for tech rev verdict

* feat: use anim frames

* fix: exports + typecheck

* polish: qa changes

* feat: qa

* feat: qa polish

* feat: fix malic modal

* fix: lint

* fix: qa + lint

* fix: pagination

* fix: lint

* fix: qa

* intl extract

* fix ci

---------

Signed-off-by: Calum H. <contact@cal.engineer>
Co-authored-by: Alejandro González <me@alegon.dev>
Co-authored-by: aecsocket <aecsocket@tutanota.com>

---------

Signed-off-by: Calum H. <contact@cal.engineer>
Co-authored-by: Alejandro González <me@alegon.dev>
Co-authored-by: Calum H. <contact@cal.engineer>
2025-12-20 11:43:04 +00:00
Truman GaoandGitHub 1e9e13aebb Proper handling of modpack loaders (#4940)
* fix handling modpack loader

* fix order

* increase timeout

* fix search erroring on non alphanumeric input for searching project id
2025-12-19 23:24:40 +00:00
Prospector 67835b04a8 changelog 2025-12-19 13:40:32 -08:00
Truman GaoandGitHub 3f93041ca2 Improve editing project versions (#4933)
* add edit versions dropdown menu

* implement improved edit version with individual edit stages

* make changelog bigger

* update button styles

* remove hover button when hover on row

* bring editing versions back to project settings

* bring back gallery edit and upload in project page

* fix progress value

* fix admonition import

* fix v3 upload for modpacks

* fix modpack loader display for editing version and better open edit/create modal handling

* fix currentMember prop

* fix modpack loader displaying incorrectly

* fix max length

* fix version url after making an edit to version and fix delete

* small max height fix

* hide edit dependencies for modpack

* pnpm run fix

* fix import

* add tooltip

* update icons

* update copy and create version button style
2025-12-19 21:24:14 +00:00
Julian VennenandGitHub 0663b8adb0 Add missing file type enum values to openapi spec (#4936) 2025-12-19 21:11:47 +00:00
Truman GaoandGitHub 1f48f5b5af Fix project dependencies search (#4932)
* add search on all project types except mod packs

* add search by ID

* fix placeholder

* rename to dependency select
2025-12-19 20:27:17 +00:00
Truman GaoandGitHub 0268600044 Provide default when modpack doesn't specify loader (#4930)
* fix no modpack loader, default to minecraft loader

* use v2 create then modify with v3 for environment
2025-12-19 00:54:00 +01:00
François-Xavier TalbotandGitHub 8fb38ba0f2 Remove tag="type" on PaymentRequestMetadata (#4931)
This would conflict with the flattened kind: PaymentRequestMetadataKind
enum, which itself is internally tagged with "type", leading to two
"type" fields being serialized, confusing the deserializer.

Deserialization would fail, be silenced in the stripe webhook and lead
to the incorrect region being assigned to a server.
2025-12-19 00:52:43 +01:00
Prospector 85c65e697d changelog 2025-12-18 13:37:51 -08:00
Truman GaoandGitHub 563997e060 Project versions hot fixes (#4928)
* Fix everyone seeing managing gallery/version has moved alert

* fix loader picker disappear
2025-12-18 13:35:57 -08:00
Calum H.andGitHub 2d5568ecec polish: qa changes for non-usd cards (#4926)
* polish: qa changes for non-usd cards

* fix: always show worth

* fix: padding
2025-12-18 21:29:32 +00:00
Prospector a64c4201bb changelog 2025-12-18 12:41:08 -08:00
ProspectorandGitHub 51d5ed771c Add new versions blog post (#4925) 2025-12-18 12:39:18 -08:00
Prospector 539132a527 changelog 2025-12-18 12:24:35 -08:00
9958600121 feat: managing project versions (#4811)
* start modal, working show modal

* add stages and implement MultiModalStage component

* add project versions context and add file button

* implement add files stage

* export interfaces

* move MultiStageModal to /base

* small update to file input

* add version types to api-client

* wrap version namespace under v3

* implement add details stage fields and loaders component

* start create MC versions stage

* implement changelog stage and bring width into a per stage concern

* implement loader picker with grouping

* improve grouping and sorting for loader picker

* use chips component

* small updaets

* fix loader icon color

* componentize mc version picker

* initial version of shift click to select range

* use newModal for markdown editor

* start add dependencies stage with search

* implement showing mod options in search

* componentize modselect and add version/dependency relation select

* hide version and dependency relation when no project selected

* fix project facet search

* implement api-client versions requests

* fix search api request facet type to be string

* fix new modal outer container scroll

* implement add dependency stage

* fix parse error

* add placeholders

* fix types

* update dependency row styles

* small change

* fix the types on manage versions to be correct with labrinth request bodies

* fix create version file parts

* use draft version ref in flow and implement proper file handlling

* use draft version ref for mc versions select

* implement reactive modal state and conditionally disabled next buttons

* ensure all data is using draftVersion ref

* remove shift click to select range since it sucks

* fix up add dependencies stage state/types

* small fixes

* implement adding dependencies connected to api calls and make adding dependencies work

* add final create version button config

* start create version backend call and bring versions table to project settings

* set add files stage width

* remove version file upload in project page

* small fix

* fix create version api call

* implement error handling

* implement mc versions search

* implement showing all mc versions

* small fix

* implement prefill data

* add success notification

* add cancel button

* add new dropzone file input

* run pnpm run fix

* add tailwind preset in ui package

* polish file version row

* fix modal widths

* hide added versions when no versions added

* implement add loaders stage

* implement small chips and small fixes

* implement grouping for all releases

* implement new all releases grouping

* implement better shift click for version select

* small fixes

* fix search input style

* delete versions provider and start project type inferring

* implement getting project type

* add versions empty state, add folder up icon and pnpm run fix

* implement create version in project versions table

* update side nav

* implement dynamic create version flow depending on project type and detected data

* add id to stages and fix calling setStage not working

* move added loaded out of loader picker

* remove selected and detected MC versions

* add loading message to dependency search and fix dependency type always being "required"

* fix components in ref

* fix width on dropdown

* implement toggle all mc versions based on state of last in range

* fix mc version text colour

* do proper clean up

* update loaders to use tag item

* update UI to use TagItem and better match styles

* handle detected data when setting primary file

* add progress bar

* hide progress bar for non-progress stage

* add loading state on submit

* properly cache dependencies projects/versions

* pnpm run fix

* add dragover show purple border on dropzone file input

* better handle added dependencies

* move versions in side nav

* implement adding file type

* fix api body format for file type

* implement working edit existing version
- working add/remove file
- working edit version details

* a step towards proper versions refresh

* add gallery to project settings

* actually figured out refresh versions

* move checklist into settings page

* remove editing version from version page and add button to versions table in project settings

* remove edit and delete buttons from gallery in project page

* add empty state messages for project page

* add default scroll bar styles

* implement support for new file types

* remove edit from dropdown in project page versions table

* redirect to settings page

* move changelog to row with actions

* fix overflow on added dependencies

* fix redirect

* update scroll styles

* implement add environment stage (create and modify version not persisting environment to backend)

* small style fixes

* small spacing fix

* small style fixes

* add a flag for loading dependency projects

* address PR comments

* fix modrinth ui imports

* use magic keys instead of window.addeventlistener

* add spacing in bottom of settings page

* useDebounceFn from vue

* fix inconsistent stroke

* persist scroll through

* fix remove button

* fix api fields

* fix version file dropdown: hide primary option in edit mode and fix setting initial value

* fix links in nags

* implement skipped field for skipping steps instead of mutating stages array's elements

* implement suggested dependencies components

* implement suggested dependencies api call

* refactor cached get project and get version calls

* always hide environments

* update links

* set scroll in 10ms

* update links

* fix links pt2

* fix shadow

* fix progress bar

* dont include mc versions in suggested versions finder

* fix text overflow styles

* use tooltip

* fix change version name api

* implement set environment api call

* delete unused vue pages

* implement detected environment, edit environment step, and fix showing loaders in details for no loader projects

* small fix

* no loaders project wrong check

* fix not having 'minecraft' loader for resource pack

* implement updating existing files file type

* move add minecraft loader outside try catch

* add datapack to have environment

* fix being able to select duplicate MC versions

* remove datapack project from environment

* fix version fetch

* fix having detected environment not properly skipping step

* only add detected data when primary file changes

* fix unknown environemtn

* implement gallery and versions have moved admonition

* update project page for creator view

* small copy update

* merge fixes

* pnpm run fix

* fix checkmark squished

* fix version type can be deselected

* refactor: DI context + better typed MultistageModal

* fix type import

* Misc QA fixes

* fix allowed file types with no project type

* implement new add files stage

* fix versiosn header with new pagination

* hide buttons when no files for add file stage

* use prettier formatter

* allow signature file types

* add detecting primary file

* fix progress bar in firefox

* fix environment not correctly being hidden/shown

* remove environment missing nag

* temp bring back environment page

* remove delete version action from project page

* replace "continue" next button label with actual next step

* fix types

* pnpm run fix

* move supplementary files alert up and update border radius style on dropzone

* copy updates

* small update on version num placeholder

* update placeholder

* make timeout on upload routes 2 minutes

* fix lint issues

* run pnpm intl:extract

---------

Co-authored-by: Calum H. (IMB11) <contact@cal.engineer>
2025-12-18 19:56:15 +00:00
aecsocketandGitHub 9ad01723a2 Fix optional file type upload validation (#4924) 2025-12-18 19:18:05 +00:00
Prospector 8448bacae7 Update changelog 2025-12-18 11:16:36 -08:00
Prospector c21e98a2a8 Update changelog 2025-12-18 11:15:06 -08:00
ProspectorandGitHub 5bbc3872f3 Revert "Use alt CDN URL when request header is passed (#4921)" (#4923)
This reverts commit 609e3896eb.
2025-12-18 18:40:27 +00:00
aecsocketandGitHub 8d894541e8 Add affiliate code revenue analytics (#4883)
* Add affiliate code revenue analytics

* clean up some error handling

* Add conversions to affiliate code analytics

* Only include affiliate subscriptions which have an associated successful charge

* wip: affiliate code clicks

* affiliate code click ingest route

* Add affiliate code clicks to analytics

* add new cols
2025-12-18 18:02:49 +00:00
dc16a65b62 Improve support for non-USD Tremendous gift cards (#4887)
* Improve support for non-USD Tremendous gift cards

* add forex info to tremendous payout methods

* fix: partially fix DEV-535

* feat: wip

* eur/usd to usd/eur

* feat: better denom picking

* feat: qa changes

* fix: intl

---------

Co-authored-by: Calum H. (IMB11) <contact@cal.engineer>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-12-18 18:02:29 +00:00
Calum H.andGitHub 514c6f6e34 fix: muralpay iso mismatch (#4871)
* fix: deduplicate and use full code

* fix: subdivisions match muralpay
2025-12-18 02:08:47 +00:00
aecsocketandGitHub 609e3896eb Use alt CDN URL when request header is passed (#4921)
* Use alt CDN URL when request header is passed

* Modify version routes to use alt CDN
2025-12-17 18:12:29 +00:00
Prospector fd08dff1e7 Update changelog 2025-12-16 12:59:17 -08:00
Prospector 6425ab8c57 Add Java 25 setting 2025-12-16 12:47:05 -08:00
aecsocketandGitHub e123e51c66 Fix how processor arguments are generated in app (#4919) 2025-12-16 20:03:37 +00:00
ProspectorandGitHub 21fad12a21 Fix collection pages requiring auth (#4915) 2025-12-16 14:14:52 +00:00
Calum H.andGitHub 924a77eb3f fix: temporarily disable vintl for all langs apart from en-US (#4911)
* fix: temporarily disable vintl apart from en_us

* fix: lint
2025-12-15 19:04:19 +00:00
aecsocketandGitHub 7aaf99a0c8 Split logging utils into its own crate (#4852)
* Split logging utils into its own crate

* fix review comments

* remove anyhow from root

* make meilisearch less verbose
2025-12-12 02:09:57 +00:00
Prospector 91accd5578 Update app changelog + fix accordion issue 2025-12-11 16:19:51 -08:00
Prospector 147f19f11e lint 2025-12-11 16:09:20 -08:00
Prospector 73ff6df73c update changelog 2025-12-11 16:08:35 -08:00
ProspectorandGitHub 0de780b7c9 Make game versions update every 10 minutes via server-side route (#4892) 2025-12-11 16:05:31 -08:00
ProspectorandGitHub f49f889536 Fix news row width (#4894)
* fix news row width

* lint
2025-12-11 16:05:19 -08:00
ProspectorandGitHub b3f598aa1d Fix server content search (#4891)
* fix server content search

* wtf
2025-12-11 16:04:54 -08:00
Prospector cd1b5dcd3d update changelog 2025-12-11 16:00:12 -08:00
ProspectorandGitHub 79b7d269b0 Throttle search to not spam requests (#4893)
* Throttle search to not spam requests

* lint
2025-12-11 21:03:10 +00:00
ProspectorandGitHub 40ac726930 Exclude node_modules from tailwind pattern to improve build time (#4890) 2025-12-11 19:04:28 +00:00
aecsocketandGitHub ddcc14d99f Add details to Mural API errors (#4886) 2025-12-11 12:49:59 +00:00
Prospector 3dd2de5f18 changelog 2025-12-09 18:18:26 -08:00
ProspectorandGitHub 0a8f489234 NormalPage component w/ Collections refactor (#4873)
* Refactor search page, migrate to /discover/

* Add NormalPage component for common layouts, refactor Collections page as an example, misc ui pkg cleanup

* intl:extract

* lint

* lint

* remove old components

* Refactor search page, migrate to /discover/

* Add NormalPage component for common layouts, refactor Collections page as an example, misc ui pkg cleanup

* intl:extract

* lint

* lint

* remove old components
2025-12-09 22:44:10 +00:00
ProspectorandGitHub 1d64b2e22a Refactor search page, migrate to /discover/ (#4862) 2025-12-09 14:25:45 -08:00
Calum H.andGitHub 251e89fe5a fix: notice btns not matching colour of notice + gap issue (#4823)
* feat: improve notices

* fix: bottom gap for notices

* fix: lint

* fix: lint
2025-12-09 09:14:59 +00:00
Calum H.andGitHub 4fbbc2b1cf feat: use utc during balance bar calcs (#4875) 2025-12-09 08:44:04 +00:00
Calum H.andGitHub d5b7ac3542 fix: setting states not persisting (#4872)
Closes: 4867
2025-12-08 23:29:52 +00:00
ProspectorandGitHub fec395a4cf Revert "New translations from Crowdin (main) (#4815)" (#4878)
This reverts commit 16c0dadc4a.
2025-12-08 15:29:05 -08:00
Modrinth BotandGitHub 16c0dadc4a New translations from Crowdin (main) (#4815) 2025-12-08 21:53:44 +00:00
Calum H.andGitHub 779092c0b7 feat: user details modal for moderators (#4764)
* feat: user details modal for moderators

* fix: casing
2025-12-08 21:50:38 +00:00
aecsocketandGitHub 9aa06fbc26 Fix Mural payout status syncing (#4853)
* Fix Mural payout status syncing

* Make Mural payout code more resilient

* prepare sqlx

* fix test
2025-12-08 20:34:41 +00:00
Calum H.andGitHub cfd2977c21 feat: stable key for mods list (#4876) 2025-12-08 18:50:55 +00:00
Prospector 27fc0796a4 changelog 2025-12-08 10:24:47 -08:00
Calum H.andGitHub b1438bd460 fix: blocking await for jump back in (#4870)
* fix: loading state for jump back in

* fix: lint
2025-12-08 18:03:08 +00:00
Calum H.andGitHub 267e0cb636 fix: license url not being removed when saving (#4874)
Closes: #4848
2025-12-08 17:55:29 +00:00
coolbotandGitHub d471ef6763 Update support contact bubble color in utils.ts (#4868)
Signed-off-by: coolbot <76798835+coolbot100s@users.noreply.github.com>
2025-12-08 06:51:11 +00:00
cea5cfa4ab Add new optional file types (#4854)
* Add new optional file types

* Fix build

* Add signature file type

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-12-06 23:45:10 +00:00
Prospector 56356e8260 changelog 2025-12-05 11:56:19 -08:00
41e4086973 feat: qa improvements for backups page (#4857)
* feat: fix backup action disabling logic

* feat: allow actions when backup is being created

* feat: qa fixes

* feat: backups empty state

* fix: lint

* intl:extract

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-12-05 01:48:34 +00:00
Calum H.andGitHub 0f1f27d450 feat: dev-541 (#4858) 2025-12-05 01:34:05 +00:00
Calum H.andGitHub a558064f9d fix: add x-panel-version header (#4855) 2025-12-04 15:15:03 +01:00
Prospector c421249767 changelog 2025-12-03 18:32:43 -08:00
8eff939039 feat: ws client & new backups frontend (#4813)
* feat: ws client

* feat: v1 backups endpoints

* feat: migrate backups page to api-client and new DI ctx

* feat: switch to ws client via api-client

* fix: disgust

* fix: stats

* fix: console

* feat: v0 backups api

* feat: migrate backups.vue to page system w/ components to ui pkgs

* feat: polish backups frontend

* feat: pending refactor for ws handling of backups

* fix: vue shit

* fix: cancel logic fix

* fix: qa issues

* fix: alignment issues for backups page

* fix: bar positioning

* feat: finish QA

* fix: icons

* fix: lint & i18n

* fix: clear comment

* lint

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-12-03 18:32:03 -08:00
Prospector e3444a3456 changelog 2025-12-03 14:39:02 -08:00
ProspectorandGitHub 16a6f7b352 Modrinth Hosting rebrand (#4846)
* Modrinth Hosting rebranding

* fix capitalization issue

* fix issues
2025-12-03 22:15:36 +00:00
aecsocketandGitHub 79c2633011 Fix slug/project ID collisions (#4844)
* wip: tool to create project with id

* fix

* fix id/slug collision for orgs
2025-12-03 00:30:18 +00:00
aecsocketandGitHub 783aaa6553 Add revenue split to affiliate codes v2 (#4672)
* wip: affiliate payouts again

* Implement affiliate payout queue

* Deactivate subscription affiliations on cancellation

* Remove a test that never compiled in the first place

* Update sqlx cache

* address some PR comments

* more comments

* wip: handle refund charges

* cargo sqlx prepare

* Address PR comments

* cargo sqlx prepare
2025-12-02 00:01:24 +00:00
Prospector 60e0953616 stringify errors 2025-11-28 12:11:39 -08:00
Prospector f7c86f9fc9 update changelog 2025-11-28 11:39:32 -08:00
aecsocketandGitHub fe684ab903 Change auth servers reachable check URL (#4830) 2025-11-27 19:38:26 +00:00
Calum H.andGitHub 8592761493 fix: stale modpack permissions data on re-review (#4822) 2025-11-27 17:15:10 +00:00
aecsocketandGitHub dfe087df20 Enforce 2dp on payout withdrawals (#4829)
* fix mural withdraw amount

* Enforce 2dp on all payout logic
2025-11-27 10:03:34 +00:00
aecsocketandGitHub be3208c5a1 Fix Docker Compose to match staging/prod environments (#4828) 2025-11-26 23:54:03 +00:00
Calum H.andGitHub b56f39ce07 fix: edit server icon issues (#4821) 2025-11-26 23:29:29 +00:00
aecsocketandGitHub 0178fddc38 Install mod update dependencies automatically (#4800)
* Redownload version dependencies when updating a mod

* Fix update all button as well
2025-11-24 13:35:14 +00:00
aecsocketandGitHub 31417a2aa1 more logging on sync payouts task (#4814) 2025-11-23 21:48:15 +01:00
f333a75221 fix empty state for projects in "All" tab (#4801)
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-11-23 02:38:13 +00:00
aecsocketandGitHub bcf14a4c51 Fix downloading libraries for Forge 1.7.2 (#4808)
* wip: fix Forge 1.7.2 downloads

* Bump recursion limit
2025-11-21 22:45:34 +00:00
aecsocketandGitHub 130c2863ab Fix exposing Docker Compose ports to broadcast addr (#4805) 2025-11-21 11:13:11 +00:00
Prospector e59664426b changelog 2025-11-19 15:17:01 -08:00
aecsocketandGitHub 2f0ef07944 Add logging and change limit of Mural payouts task (#4798) 2025-11-19 12:38:30 +00:00
Truman GaoandGitHub 9af19d01e5 Fix modrinth+ firing ad requests on load (#4792) 2025-11-18 18:05:24 +00:00
François-Xavier TalbotandGitHub e837d9fa30 Add route to reprocess a refund charge's tax record (#4791) 2025-11-18 11:36:55 +00:00
93b79759c7 Add auth servers unreachable warning to app (#4774)
* Add auth servers unreachable warning to app

* Check auth status every 5 minutes

* Use admonition in auth server warning

* feat: tanstack

* Fix auth server reachability query

* Format

* intl extract

---------

Co-authored-by: Calum H. (IMB11) <contact@cal.engineer>
2025-11-17 18:41:52 +00:00
Modrinth BotandGitHub 4becb2a822 New translations from Crowdin (main) (#4787) 2025-11-17 07:45:40 +00:00
Calum H.andGitHub 134a621d0d fix: use ref rather than direct val (#4785) 2025-11-16 22:36:11 +00:00
aecsocketandGitHub 089cca60ce Fix PayPal SSO OAuth callback (#4758)
* Maybe fix PayPal SSO

* cargo sqlx prepare

* maybe works

* Attempt 2 of fixing

* Fix vue

* Try adding more logging to flow
2025-11-16 21:49:48 +00:00
Prospector 20484ed7aa fix timezone 2025-11-14 12:10:58 -08:00
Prospector 763a38812f changelog 2025-11-14 11:58:48 -08:00
7ccc32675b feat: start of cross platform page system (#4731)
* feat: abstract api-client DI into ui package

* feat: cross platform page system

* feat: tanstack as cross platform useAsyncData

* feat: archon servers routes + labrinth billing routes

* fix: dont use partial

* feat: migrate server list page to tanstack + api-client + re-enabled broken features!

* feat: migrate servers manage page to api-client before page system

* feat: migrate manage page to page system

* fix: type issues

* fix: upgrade wrapper bugs

* refactor: move state types into api-client

* feat: disable financial stuff on app frontend

* feat: finalize cross platform page system for now

* fix: lint

* fix: build issues

* feat: remove papaparse

* fix: lint

* fix: interface error

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-11-14 17:15:09 +00:00
26feaf753a Fixes #4348 (#4773)
* also fixes spacing issue in collections card small width

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-11-13 23:51:08 +00:00
ProspectorandGitHub 94c0003c19 Fix a number of light mode issues and get rid of scrollbar jumping on menus (#4760)
* Fix DEV-466, Fixes #4692 as well as a bunch of other poor contrast and inconsistency issues in light mode. Adds shadows to buttons and makes scrollbar gutter stable.

* lintttt & only do scrollbar gutter on website

* try to fix following hydration issue

* try another clientonly approach

* fix home page link animation

* lint

* remove dropdown style from checkbox & improve shadow consistency

* liiiint
2025-11-13 23:21:43 +00:00
aecsocketandGitHub c27f787c91 Task to retroactively update Mural statuses (#4769)
* Task to retroactively update Mural statuses

* cargo sqlx prepare

* wip: add tests

* Prepare

* Fix up test

* start on muralpay mock

* Move mocking to muralpay crate
2025-11-13 18:16:41 +00:00
70e2138248 feat: base api-client impl (#4694)
* feat: base api-client impl

* fix: doc

* feat: start work on module stuff

* feat: migrate v2/v3 projects into module system

* fix: lint & README.md contributing

* refactor: remove utils old api client prototype

* fix: lint

* fix: api url issues

* fix: baseurl in error.vue

* fix: readme

* fix typo in readme

* Update apps/frontend/src/providers/api-client.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Calum H. <hendersoncal117@gmail.com>

* Update packages/api-client/src/features/verbose-logging.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Calum H. <hendersoncal117@gmail.com>

* Update packages/api-client/src/features/retry.ts

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Calum H. <hendersoncal117@gmail.com>

---------

Signed-off-by: Calum H. <hendersoncal117@gmail.com>
Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-11-12 20:29:12 +00:00
Calum H.andGitHub 590ba3ce55 fix: original startup settings values not being updated with new state we send to server (#4761) 2025-11-12 19:45:51 +00:00
29671347a0 fix: correct parameter name for create function in profile helper (#4744)
Co-authored-by: Panyu <48863527+PanyuDev@users.noreply.github.com>
2025-11-12 05:43:10 +00:00
Calum H.andGitHub 386e6e50da refactor: move batch credit modal into default layout (#4767)
* refactor: move batch credit modal into default layout

* fix: spacing + spans rather than p
2025-11-12 04:14:11 +00:00
Calum H.andGitHub 880ed21bcd fix: incorrect autocomplete for pardon_ip and ban_ip (#4763) 2025-11-12 04:01:25 +00:00
bbc31ef077 fix: z index issues for mobile nav (#4766)
* fix: z index issues for mobile nav

Closes: #4722

* fix: below modals

---------

Co-authored-by: Prospector <6166773+Prospector@users.noreply.github.com>
2025-11-12 04:00:46 +00:00
Calum H.andGitHub 9a13e977a0 fix: crash on charges.vue (#4765) 2025-11-12 04:00:39 +00:00
Modrinth BotandGitHub a5602ff18c New translations from Crowdin (main) (#4749) 2025-11-11 23:11:36 +00:00
Prospector 5901c5a535 update changelog 2025-11-11 12:28:24 -08:00
997 changed files with 92082 additions and 29168 deletions
@@ -2,7 +2,7 @@
applyTo: '**/*.vue'
---
You are given a Nuxt/Vue single-file component (.vue). Your task is to convert every hard-coded natural-language string in the <template> into our localization system using @vintl/vintl-nuxt (which wraps FormatJS).
You are given a Nuxt/Vue single-file component (.vue). Your task is to convert every hard-coded natural-language string in the <template> into our localization system using vue-i18n with utilities from `@modrinth/ui`.
Please follow these rules precisely:
@@ -13,40 +13,53 @@ Please follow these rules precisely:
2. Create message definitions
- In the <script setup> block, import `defineMessage` or `defineMessages` from `@vintl/vintl`.
- In the <script setup> block, import `defineMessage` or `defineMessages` from `@modrinth/ui`.
- For each extracted string, define a message with a unique `id` (use a descriptive prefix based on the component path, e.g. `auth.welcome.long-title`) and a `defaultMessage` equal to the original English string.
Example:
const messages = defineMessages({
welcomeTitle: { id: 'auth.welcome.title', defaultMessage: 'Welcome' },
welcomeDescription: { id: 'auth.welcome.description', defaultMessage: 'Youre now part of the community…' },
welcomeDescription: { id: 'auth.welcome.description', defaultMessage: 'You're now part of the community…' },
})
3. Handle variables and ICU formats
- Replace dynamic parts with ICU placeholders: "Hello, ${user.name}!" → `{name}` and defaultMessage: 'Hello, {name}!'
- For numbers/dates/times, use ICU/FormatJS options (e.g., currency): `{price, number, ::currency/USD}`
- For numbers/dates/times, use ICU options (e.g., currency): `{price, number, ::currency/USD}`
- For plurals/selects, use ICU: `'{count, plural, one {# message} other {# messages}}'`
4. Rich-text messages (links/markup)
- In `defaultMessage`, wrap link/markup ranges with tags, e.g.:
"By creating an account, you agree to our <terms-link>Terms</terms-link> and <privacy-link>Privacy Policy</privacy-link>."
- Render rich-text messages with `<IntlFormatted>` from `@vintl/vintl/components` and map tags via `values`:
<IntlFormatted
:message="messages.tosLabel"
:values="{
'terms-link': (chunks) => <NuxtLink to='/terms'>{chunks}</NuxtLink>,
'privacy-link': (chunks) => <NuxtLink to='/privacy'>{chunks}</NuxtLink>,
}"
/>
- For simple emphasis: `'Welcome to <strong>Modrinth</strong>!'` and map `'strong': (c) => <strong>{c}</strong>`
- Render rich-text messages with `<IntlFormatted>` from `@modrinth/ui` using named slots:
<IntlFormatted :message-id="messages.tosLabel">
<template #terms-link="{ children }">
<NuxtLink to="/terms">
<component :is="() => children" />
</NuxtLink>
</template>
<template #privacy-link="{ children }">
<NuxtLink to="/privacy">
<component :is="() => children" />
</NuxtLink>
</template>
</IntlFormatted>
- For simple emphasis: `'Welcome to <strong>Modrinth</strong>!'` with a slot:
<template #strong="{ children }">
<strong><component :is="() => children" /></strong>
</template>
- For more complex child handling, use `normalizeChildren` from `@modrinth/ui`:
<template #bold="{ children }">
<strong><component :is="() => normalizeChildren(children)" /></strong>
</template>
5. Formatting in templates
- Import and use `useVIntl()`; prefer `formatMessage` for simple strings:
- Import and use `useVIntl()` from `@modrinth/ui`; prefer `formatMessage` for simple strings:
`const { formatMessage } = useVIntl()`
`<button>{{ formatMessage(messages.welcomeTitle) }}</button>`
- Vue methods like `$formatMessage`, `$formatNumber`, `$formatDate` are also available if needed.
- Pass variables as a second argument:
`{{ formatMessage(messages.greeting, { name: user.name }) }}`
6. Naming conventions and id stability
@@ -58,7 +71,8 @@ Please follow these rules precisely:
8. Update imports and remove literals
- Ensure imports for `defineMessage`/`defineMessages`, `useVIntl`, and `<IntlFormatted>` are present. Replace all hard-coded strings with `formatMessage(...)` or `<IntlFormatted>` and remove the literals.
- Ensure imports from `@modrinth/ui` are present: `defineMessage`/`defineMessages`, `useVIntl`, `IntlFormatted`, and optionally `normalizeChildren`.
- Replace all hard-coded strings with `formatMessage(...)` or `<IntlFormatted>` and remove the literals.
9. Preserve functionality
+3
View File
@@ -0,0 +1,3 @@
# Copying
Modrinth's Github workflows are licensed under the MIT License, which is provided in the file [LICENSE](./LICENSE).
+7
View File
@@ -0,0 +1,7 @@
Copyright 2025 Rinth, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+99
View File
@@ -0,0 +1,99 @@
name: Deploy frontend
on:
push:
branches:
- main
- prod
paths:
- 'apps/frontend/**/*'
- 'packages/ui/**/*'
- 'packages/utils/**/*'
- 'packages/assets/**/*'
- '**/wrangler.jsonc'
- '**/pnpm-*.yaml'
- '.github/workflows/frontend-deploy.yml'
pull_request:
workflow_dispatch:
jobs:
deploy:
if: github.repository_owner == 'modrinth'
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 2
- name: Configure environment
id: meta
run: |
echo "cmd=deploy" >> $GITHUB_OUTPUT
if [ "${{ github.ref }}" == "refs/heads/main" ]; then
echo "env=staging" >> $GITHUB_OUTPUT
echo "url=https://staging.modrinth.com" >> $GITHUB_OUTPUT
elif [ "${{ github.ref }}" != "refs/heads/prod" ] && [ "${{ github.ref }}" != "refs/heads/main" ]; then
echo "env=staging" >> $GITHUB_OUTPUT
echo "url=https://git-${GITHUB_SHA::8}-frontend-staging.modrinth.workers.dev" >> $GITHUB_OUTPUT
echo "cmd=versions upload --preview-alias git-${GITHUB_SHA::8} --var PREVIEW:true" >> $GITHUB_OUTPUT
else
# Production env should be empty
echo "url=https://modrinth.com" >> $GITHUB_OUTPUT
fi
- name: Setup pnpm
uses: pnpm/action-setup@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version-file: .nvmrc
cache: pnpm
- name: Inject build variables
working-directory: ./apps/frontend
run: |
if [ "${{ steps.meta.outputs.env }}" == "staging" ]; then
echo "Injecting staging variables from wrangler.jsonc..."
jq -r '.env.staging.vars | to_entries[] | "\(.key)=\(.value)"' wrangler.jsonc >> $GITHUB_ENV
else
echo "Injecting production variables from wrangler.jsonc..."
jq -r '.vars | to_entries[] | "\(.key)=\(.value)"' wrangler.jsonc >> $GITHUB_ENV
fi
- name: Install dependencies
working-directory: ./apps/frontend
run: pnpm install
- name: Build frontend
working-directory: ./apps/frontend
run: pnpm build
env:
CF_PAGES_BRANCH: ${{ github.ref_name }}
CF_PAGES_COMMIT_SHA: ${{ github.sha }}
CF_PAGES_URL: ${{ steps.meta.outputs.url }}
- name: Deploy Cloudflare Worker
id: wrangler
uses: cloudflare/wrangler-action@v3
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
accountId: ${{ secrets.CF_ACCOUNT_ID }}
environment: ${{ steps.meta.outputs.env }}
workingDirectory: ./apps/frontend
packageManager: pnpm
wranglerVersion: '4.54.0'
command: ${{ steps.meta.outputs.cmd }}
- name: Purge cache
if: github.ref == 'refs/heads/prod'
run: |
curl -X POST \
-H "Authorization: Bearer ${{ secrets.CF_API_TOKEN }}" \
-H "Content-Type: application/json" \
--data '{"hosts": ["modrinth.com", "www.modrinth.com", "staging.modrinth.com"]}' \
https://api.cloudflare.com/client/v4/zones/e39df17b9c4ef44cbce2646346ee6d33/purge_cache
-30
View File
@@ -1,30 +0,0 @@
name: Clear pages cache
on:
push:
branches:
- prod
jobs:
wait:
if: github.repository_owner == 'modrinth'
runs-on: ubuntu-latest
permissions:
contents: read
deployments: write
steps:
- name: Cloudflare Pages deployment
uses: WalshyDev/cf-pages-await@v1
with:
apiToken: ${{ secrets.CF_API_TOKEN }}
accountId: '9ddae624c98677d68d93df6e524a6061'
project: 'frontend'
commitHash: ${{ steps.push-changes.outputs.commit-hash }}
- name: Purge cache
if: github.ref == 'refs/heads/prod'
run: |
curl -X POST \
-H "Authorization: Bearer ${{ secrets.CF_API_TOKEN }}" \
-H "Content-Type: application/json" \
--data '{"hosts": ["modrinth.com", "www.modrinth.com"]}' \
https://api.cloudflare.com/client/v4/zones/e39df17b9c4ef44cbce2646346ee6d33/purge_cache
+19 -5
View File
@@ -70,23 +70,37 @@ jobs:
- name: 🧰 Install dependencies
run: pnpm install
- name: ⚙️ Set app environment
working-directory: packages/app-lib
run: cp .env.staging .env
# check if labrinth tests will actually run (cache miss)
- name: 🔍 Check if labrinth tests need to run
id: check-labrinth
run: |
LABRINTH_TEST_STATUS=$(pnpm turbo run test --filter=@modrinth/labrinth --dry-run=json | jq -r '.tasks[] | select(.task == "test") | .cache.status')
echo "Labrinth test cache status: $LABRINTH_TEST_STATUS"
if [ "$LABRINTH_TEST_STATUS" = "HIT" ]; then
echo "needs_services=false" >> $GITHUB_OUTPUT
else
echo "needs_services=true" >> $GITHUB_OUTPUT
fi
- name: ⚙️ Start services
if: steps.check-labrinth.outputs.needs_services == 'true'
run: docker compose up --wait
- name: ⚙️ Setup labrinth environment and database
if: steps.check-labrinth.outputs.needs_services == 'true'
working-directory: apps/labrinth
run: |
cp .env.local .env
sqlx database setup
- name: ⚙️ Set app environment
working-directory: packages/app-lib
run: cp .env.staging .env
- name: 🔍 Lint and test
run: pnpm run ci
- name: 🔍 Verify intl:extract has been run
run: |
pnpm intl:extract
pnpm turbo run intl:extract --force
git diff --exit-code --color */*/src/locales/en-US/index.json
+5
View File
@@ -68,3 +68,8 @@ app-playground-data/*
# labrinth demo fixtures
apps/labrinth/fixtures/demo
*storybook.log
storybook-static
.wrangler/
+6 -6
View File
@@ -11,21 +11,21 @@
"source.fixAll.eslint": "explicit",
"source.organizeImports": "always"
},
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint",
"[vue]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
},
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
},
"[scss]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
},
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
},
"[rust]": {
"editor.defaultFormatter": "rust-lang.rust-analyzer"
+3 -3
View File
@@ -16,13 +16,13 @@ Both have access to our dependency injection framework, examples as seen in `pac
### Website (apps/frontend)
Before a pull request can be opened for the website, `pnpm web:fix` and `pnpm web:intl:extract` must be run, otherwise CI will fail.
Before a pull request can be opened for the website, run `pnpm prepr:frontend:web` from the root folder, otherwise CI will fail.
To run a development version of the frontend, you must first copy over the relevant `.env` template file (prod, staging or local, usually prod) within the `apps/frontend` folder into `apps/frontend/.env`. Then you can run the frontend by running `pnpm web:dev` in the root folder.
### App Frontend (apps/app-frontend)
Before a pull request can be opened for the website, you must CD into the `app-frontend` folder; `pnpm fix` and `pnpm intl:extract` must be run, otherwise CI will fail.
Before a pull request can be opened for the app frontend, run `pnpm prepr:frontend:app` from the root folder, otherwise CI will fail.
To run a development version of the app frontend, you must first copy over the relevant `.env` template file (prod, staging or local, usually prod) within `packages/app-lib` into `packages/app-lib/.env`. Then you must run the app itself by running `pnpm app:dev` in the root folder.
@@ -56,7 +56,7 @@ Use `docker exec labrinth-clickhouse clickhouse-client` to access the Clickhouse
### Postgres
Use `docker exec labrinth-postgres psql -U postgres` to access the PostgreSQL instance.
Use `docker exec labrinth-postgres psql -U labrinth -d labrinth -c "SELECT 1"` to access the PostgreSQL instance, replacing the `SELECT 1` with your query.
# Guidelines
+5 -1
View File
@@ -8,10 +8,14 @@ For detailed information, consult each package's COPYING.md, LICENSE.txt, or LIC
The use of Modrinth branding elements, including but not limited to the wrench-in-labyrinth logo, the landing image, and any variations thereof, is strictly prohibited without explicit written permission from Rinth, Inc. This includes trademarks, logos, or other branding elements.
> All rights reserved. © 2020-2024 Rinth, Inc.
> All rights reserved. © 2020-2025 Rinth, Inc.
This includes, but may not be limited to, the following files:
- .idea/icon.svg
- .github/api_cover.png
- .github/app_cover.png
- .github/monorepo_cover.png
- .github/web_cover.png
If you fork this repository, you must remove all Modrinth branding assets from your fork.
Generated
+17 -10
View File
@@ -4541,7 +4541,6 @@ dependencies = [
"labrinth",
"lettre",
"meilisearch-sdk",
"modrinth-maxmind",
"modrinth-util",
"muralpay",
"murmur2",
@@ -5056,6 +5055,17 @@ dependencies = [
"windows-sys 0.59.0",
]
[[package]]
name = "modrinth-log"
version = "0.0.0"
dependencies = [
"dotenvy",
"eyre",
"tracing",
"tracing-ecs",
"tracing-subscriber",
]
[[package]]
name = "modrinth-maxmind"
version = "0.0.0"
@@ -5082,10 +5092,11 @@ dependencies = [
"derive_more 2.0.1",
"dotenvy",
"eyre",
"modrinth-log",
"rust_decimal",
"serde",
"tracing",
"tracing-ecs",
"tracing-subscriber",
"serde_json",
"utoipa",
]
[[package]]
@@ -5141,13 +5152,10 @@ dependencies = [
name = "muralpay"
version = "0.1.0"
dependencies = [
"arc-swap",
"bytes",
"chrono",
"clap",
"color-eyre",
"derive_more 2.0.1",
"dotenvy",
"eyre",
"reqwest",
"rust_decimal",
"rust_iso3166",
@@ -5156,8 +5164,6 @@ dependencies = [
"serde_json",
"serde_with",
"strum",
"tokio",
"tracing-subscriber",
"utoipa",
"uuid 1.18.1",
]
@@ -10342,6 +10348,7 @@ dependencies = [
"quote",
"regex",
"syn 2.0.106",
"url",
"uuid 1.18.1",
]
+2 -1
View File
@@ -8,6 +8,7 @@ members = [
"packages/app-lib",
"packages/ariadne",
"packages/daedalus",
"packages/modrinth-log",
"packages/modrinth-maxmind",
"packages/modrinth-util",
"packages/path-util",
@@ -107,7 +108,7 @@ lettre = { version = "0.11.19", default-features = false, features = [
] }
maxminddb = "0.26.0"
meilisearch-sdk = { version = "0.30.0", default-features = false }
modrinth-maxmind = { path = "packages/modrinth-maxmind" }
modrinth-log = { path = "packages/modrinth-log" }
modrinth-util = { path = "packages/modrinth-util" }
muralpay = { path = "packages/muralpay" }
murmur2 = "0.1.0"
+2 -6
View File
@@ -1,13 +1,9 @@
# Copying
The source code of the theseus repository is licensed under the GNU General Public License, Version 3 only, which is provided in the file [LICENSE](./LICENSE). However, some files listed below are licensed under a different license.
The source code of Modrinth App's frontend is licensed under the GNU General Public License, Version 3 only, which is provided in the file [LICENSE](./LICENSE). However, some files listed below are licensed under a different license.
## Modrinth logo
The use of Modrinth branding elements, including but not limited to the wrench-in-labyrinth logo, the landing image, and any variations thereof, is strictly prohibited without explicit written permission from Rinth, Inc. This includes trademarks, logos, or other branding elements.
> All rights reserved. © 2020-2023 Rinth, Inc.
This includes, but may not be limited to, the following files:
- theseus_gui/src-tauri/icons/\*
> All rights reserved. © 2020-2025 Rinth, Inc.
+11 -7
View File
@@ -13,11 +13,13 @@
"test": "vue-tsc --noEmit"
},
"dependencies": {
"@sfirew/minecraft-motd-parser": "^1.1.6",
"@modrinth/api-client": "workspace:^",
"@modrinth/assets": "workspace:*",
"@modrinth/ui": "workspace:*",
"@modrinth/utils": "workspace:*",
"@sentry/vue": "^8.27.0",
"@sfirew/minecraft-motd-parser": "^1.1.6",
"@tanstack/vue-query": "^5.90.7",
"@tauri-apps/api": "^2.5.0",
"@tauri-apps/plugin-dialog": "^2.2.1",
"@tauri-apps/plugin-http": "^2.5.0",
@@ -26,27 +28,28 @@
"@tauri-apps/plugin-updater": "^2.7.1",
"@tauri-apps/plugin-window-state": "^2.2.2",
"@types/three": "^0.172.0",
"@vintl/vintl": "^4.4.1",
"intl-messageformat": "^10.7.7",
"vue-i18n": "^10.0.0",
"@vueuse/core": "^11.1.0",
"dayjs": "^1.11.10",
"floating-vue": "^5.2.2",
"ofetch": "^1.3.4",
"pinia": "^2.1.7",
"pinia": "^3.0.0",
"posthog-js": "^1.158.2",
"three": "^0.172.0",
"vite-svg-loader": "^5.1.0",
"vue": "^3.5.13",
"vue-multiselect": "3.0.0",
"vue-router": "4.3.0",
"vue-router": "^4.6.0",
"vue-virtual-scroller": "v2.0.0-beta.8"
},
"devDependencies": {
"@modrinth/tooling-config": "workspace:*",
"@eslint/compat": "^1.1.1",
"@formatjs/cli": "^6.2.12",
"@modrinth/tooling-config": "workspace:*",
"@nuxt/eslint-config": "^0.5.6",
"@taijased/vue-render-tracker": "^1.0.7",
"@vitejs/plugin-vue": "^5.0.4",
"@vitejs/plugin-vue": "^6.0.3",
"autoprefixer": "^10.4.19",
"eslint": "^9.9.1",
"eslint-plugin-turbo": "^2.5.4",
@@ -55,7 +58,8 @@
"sass": "^1.74.1",
"tailwindcss": "^3.4.4",
"typescript": "^5.5.4",
"vite": "^5.4.6",
"vite": "^6.0.0",
"vue-component-type-helpers": "^3.1.8",
"vue-tsc": "^2.1.6"
},
"packageManager": "pnpm@9.4.0",
+99 -21
View File
@@ -1,4 +1,5 @@
<script setup>
import { AuthFeature, PanelVersionFeature, TauriModrinthClient } from '@modrinth/api-client'
import {
ArrowBigUpDashIcon,
ChangeSkinIcon,
@@ -18,30 +19,37 @@ import {
RefreshCwIcon,
RestoreIcon,
RightArrowIcon,
ServerIcon,
SettingsIcon,
UserIcon,
WorldIcon,
XIcon,
} from '@modrinth/assets'
import {
Admonition,
Avatar,
Button,
ButtonStyled,
commonMessages,
defineMessages,
NewsArticleCard,
NotificationPanel,
OverflowMenu,
ProgressSpinner,
provideModrinthClient,
provideNotificationManager,
providePageContext,
useDebugLogger,
useVIntl,
} from '@modrinth/ui'
import { renderString } from '@modrinth/utils'
import { useQuery } from '@tanstack/vue-query'
import { getVersion } from '@tauri-apps/api/app'
import { invoke } from '@tauri-apps/api/core'
import { getCurrentWindow } from '@tauri-apps/api/window'
import { openUrl } from '@tauri-apps/plugin-opener'
import { type } from '@tauri-apps/plugin-os'
import { saveWindowState, StateFlags } from '@tauri-apps/plugin-window-state'
import { defineMessages, useVIntl } from '@vintl/vintl'
import { $fetch } from 'ofetch'
import { computed, onMounted, onUnmounted, provide, ref, watch } from 'vue'
import { RouterView, useRoute, useRouter } from 'vue-router'
@@ -68,6 +76,7 @@ import URLConfirmModal from '@/components/ui/URLConfirmModal.vue'
import { useCheckDisableMouseover } from '@/composables/macCssFix.js'
import { hide_ads_window, init_ads_window, show_ads_window } from '@/helpers/ads.js'
import { debugAnalytics, initAnalytics, optOutAnalytics, trackEvent } from '@/helpers/analytics'
import { check_reachable } from '@/helpers/auth.js'
import { get_user } from '@/helpers/cache.js'
import { command_listener, warning_listener } from '@/helpers/events.js'
import { useFetch } from '@/helpers/fetch.js'
@@ -83,6 +92,7 @@ import {
isDev,
isNetworkMetered,
} from '@/helpers/utils.js'
import i18n from '@/i18n.config'
import {
provideAppUpdateDownloadProgress,
subscribeToDownloadProgress,
@@ -102,6 +112,20 @@ const notificationManager = new AppNotificationManager()
provideNotificationManager(notificationManager)
const { handleError, addNotification } = notificationManager
const tauriApiClient = new TauriModrinthClient({
userAgent: `modrinth/theseus/${getVersion()} (support@modrinth.com)`,
features: [
new AuthFeature({
token: async () => (await getCreds()).session,
}),
new PanelVersionFeature(),
],
})
provideModrinthClient(tauriApiClient)
providePageContext({
hierarchicalSidebarAvailable: ref(true),
showAds: ref(false),
})
const news = ref([])
const availableSurvey = ref(false)
@@ -126,6 +150,27 @@ const criticalErrorMessage = ref()
const isMaximized = ref(false)
const authUnreachableDebug = useDebugLogger('AuthReachableChecker')
const authServerQuery = useQuery({
queryKey: ['authServerReachability'],
queryFn: async () => {
await check_reachable()
authUnreachableDebug('Auth servers are reachable')
return true
},
refetchInterval: 5 * 60 * 1000, // 5 minutes
retry: false,
refetchOnWindowFocus: false,
})
const authUnreachable = computed(() => {
if (authServerQuery.isError.value && !authServerQuery.isLoading.value) {
console.warn('Failed to reach auth servers', authServerQuery.error.value)
return true
}
return false
})
onMounted(async () => {
await useCheckDisableMouseover()
@@ -164,13 +209,22 @@ const messages = defineMessages({
id: 'app.update.downloading-update',
defaultMessage: 'Downloading update ({percent}%)',
},
authUnreachableHeader: {
id: 'app.auth-servers.unreachable.header',
defaultMessage: 'Cannot reach authentication servers',
},
authUnreachableBody: {
id: 'app.auth-servers.unreachable.body',
defaultMessage:
'Minecraft authentication servers may be down right now. Check your internet connection and try again later.',
},
})
async function setupApp() {
stateInitialized.value = true
const {
native_decorations,
theme,
locale,
telemetry,
collapsed_navigation,
advanced_rendering,
@@ -182,6 +236,11 @@ async function setupApp() {
pending_update_toast_for_version,
} = await getSettings()
// Initialize locale from saved settings
if (locale) {
i18n.global.locale.value = locale
}
if (default_page === 'Library') {
await router.push('/library')
}
@@ -200,6 +259,7 @@ async function setupApp() {
themeStore.toggleSidebar = toggle_sidebar
themeStore.devMode = developer_mode
themeStore.featureFlags = feature_flags
stateInitialized.value = true
isMaximized.value = await getCurrentWindow().isMaximized()
@@ -312,7 +372,11 @@ const handleClose = async () => {
const router = useRouter()
router.afterEach((to, from, failure) => {
trackEvent('PageView', { path: to.path, fromPath: from.path, failed: failure })
trackEvent('PageView', {
path: to.path,
fromPath: from.path,
failed: failure,
})
})
const route = useRoute()
@@ -336,7 +400,7 @@ async function fetchCredentials() {
if (creds && creds.user_id) {
creds.user = await get_user(creds.user_id).catch(handleError)
}
credentials.value = creds
credentials.value = creds ?? null
}
async function signIn() {
@@ -383,20 +447,18 @@ const forceSidebar = computed(
() => route.path.startsWith('/browse') || route.path.startsWith('/project'),
)
const sidebarVisible = computed(() => sidebarToggled.value || forceSidebar.value)
const showAd = computed(() => !(!sidebarVisible.value || hasPlus.value))
watch(
showAd,
() => {
if (!showAd.value) {
hide_ads_window(true)
} else {
init_ads_window(true)
}
},
{ immediate: true },
const showAd = computed(
() => sidebarVisible.value && !hasPlus.value && credentials.value !== undefined,
)
watch(showAd, () => {
if (!showAd.value) {
hide_ads_window(true)
} else {
init_ads_window(true)
}
})
onMounted(() => {
invoke('show_window')
@@ -742,6 +804,13 @@ provideAppUpdateDownloadProgress(appUpdateDownload)
<NavButton v-if="themeStore.featureFlags.worlds_tab" v-tooltip.right="'Worlds'" to="/worlds">
<WorldIcon />
</NavButton>
<NavButton
v-if="themeStore.featureFlags.servers_in_app"
v-tooltip.right="'Servers'"
to="/hosting/manage"
>
<ServerIcon />
</NavButton>
<NavButton
v-tooltip.right="'Discover content'"
to="/browse/modpack"
@@ -765,7 +834,7 @@ provideAppUpdateDownloadProgress(appUpdateDownload)
>
<LibraryIcon />
</NavButton>
<div class="h-px w-6 mx-auto my-2 bg-button-bg"></div>
<div class="h-px w-6 mx-auto my-2 bg-surface-5"></div>
<suspense>
<QuickInstanceSwitcher />
</suspense>
@@ -969,16 +1038,25 @@ provideAppUpdateDownloadProgress(appUpdateDownload)
width: 'calc(100% - var(--right-bar-width))',
}"
></div>
<div
<Admonition
v-if="criticalErrorMessage"
class="m-6 mb-0 flex flex-col border-red bg-bg-red rounded-2xl border-2 border-solid p-4 gap-1 font-semibold text-contrast"
type="critical"
:header="criticalErrorMessage.header"
class="m-6 mb-0"
>
<h1 class="m-0 text-lg font-extrabold">{{ criticalErrorMessage.header }}</h1>
<div
class="markdown-body text-primary"
v-html="renderString(criticalErrorMessage.body ?? '')"
></div>
</div>
</Admonition>
<Admonition
v-if="authUnreachable"
type="warning"
:header="formatMessage(messages.authUnreachableHeader)"
class="m-6 mb-0"
>
{{ formatMessage(messages.authUnreachableBody) }}
</Admonition>
<RouterView v-slot="{ Component }">
<template v-if="Component">
<Suspense @pending="loading.startLoading()" @resolve="loading.stopLoading()">
@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg xmlns="http://www.w3.org/2000/svg" xmlns:serif="http://www.serif.com/" version="1.1" viewBox="0 0 1793 199">
<g>
<g id="Layer_1">
<g id="green" fill="var(--color-brand)">
<path d="M1184.1,166.6c-8,0-15.6-1-22.9-3.1s-13.1-4.6-17.4-7.6l8.5-16.9c4.3,2.7,9.4,5,15.3,6.8,5.9,1.8,11.9,2.7,17.8,2.7s12.1-.9,15.2-2.8c3.1-1.9,4.7-4.5,4.7-7.7s-1.1-4.6-3.2-6c-2.1-1.4-4.9-2.4-8.4-3.1-3.4-.7-7.3-1.4-11.5-2-4.2-.6-8.4-1.4-12.6-2.4-4.2-1-8-2.5-11.5-4.5-3.4-2-6.2-4.6-8.4-7.9-2.1-3.3-3.2-7.7-3.2-13.2s1.7-11.3,5.2-15.8c3.4-4.5,8.3-7.9,14.5-10.3,6.2-2.4,13.6-3.7,22.2-3.7s12.9.7,19.4,2.1c6.5,1.4,11.9,3.4,16.2,6.1l-8.5,16.9c-4.5-2.7-9.1-4.6-13.6-5.6-4.6-1-9.1-1.5-13.6-1.5-6.8,0-11.8,1-15,3-3.3,2-4.9,4.6-4.9,7.7s1.1,5,3.2,6.4c2.1,1.4,4.9,2.6,8.4,3.4,3.4.8,7.3,1.5,11.5,2,4.2.5,8.4,1.3,12.6,2.4,4.2,1.1,8,2.5,11.5,4.4,3.5,1.8,6.3,4.4,8.5,7.7,2.1,3.3,3.2,7.7,3.2,13s-1.8,11.1-5.3,15.5c-3.5,4.4-8.5,7.8-14.9,10.2-6.4,2.4-14.1,3.7-23,3.7Z"/>
<path d="M1291.1,166.6c-10.6,0-19.8-2.1-27.7-6.3-7.9-4.2-14-10-18.3-17.4-4.3-7.4-6.5-15.7-6.5-25.1s2.1-17.9,6.3-25.2c4.2-7.3,10-13,17.5-17.2,7.4-4.2,15.9-6.2,25.4-6.2s17.5,2,24.8,6.1c7.2,4,12.9,9.7,17.1,17.1,4.2,7.4,6.2,16,6.2,26s0,2,0,3.2c0,1.2-.2,2.3-.3,3.4h-79.3v-14.8h67.5l-8.7,4.6c.1-5.5-1-10.3-3.4-14.4-2.4-4.2-5.6-7.4-9.7-9.8-4.1-2.4-8.8-3.6-14.2-3.6s-10.2,1.2-14.3,3.6c-4.1,2.4-7.3,5.7-9.6,9.9-2.3,4.2-3.5,9.2-3.5,14.9v3.6c0,5.7,1.3,10.7,3.9,15.1,2.6,4.4,6.3,7.8,11,10.2,4.7,2.4,10.2,3.6,16.4,3.6s10.2-.8,14.4-2.5c4.3-1.7,8.1-4.3,11.4-7.8l11.9,13.7c-4.3,5-9.6,8.8-16.1,11.5-6.5,2.7-13.9,4-22.2,4Z"/>
<path d="M1357.2,165.3v-95.1h21.2v26.2l-2.5-7.7c2.8-6.4,7.3-11.3,13.4-14.6,6.1-3.3,13.7-5,22.9-5v21.2c-1-.2-1.8-.4-2.7-.4-.8,0-1.7,0-2.5,0-8.4,0-15.1,2.5-20.1,7.4-5,4.9-7.5,12.3-7.5,22v46.1h-22.3Z"/>
<path d="M1460,165.3l-40.8-95.1h23.2l35.1,83.9h-11.4l36.3-83.9h21.4l-40.8,95.1h-23Z"/>
<path d="M1579.6,166.6c-10.6,0-19.8-2.1-27.7-6.3-7.9-4.2-14-10-18.3-17.4-4.3-7.4-6.5-15.7-6.5-25.1s2.1-17.9,6.3-25.2c4.2-7.3,10-13,17.5-17.2,7.4-4.2,15.9-6.2,25.4-6.2s17.5,2,24.8,6.1c7.2,4,12.9,9.7,17.1,17.1,4.2,7.4,6.2,16,6.2,26s0,2,0,3.2c0,1.2-.2,2.3-.3,3.4h-79.3v-14.8h67.5l-8.7,4.6c.1-5.5-1-10.3-3.4-14.4-2.4-4.2-5.6-7.4-9.7-9.8-4.1-2.4-8.8-3.6-14.2-3.6s-10.2,1.2-14.3,3.6c-4.1,2.4-7.3,5.7-9.6,9.9-2.3,4.2-3.5,9.2-3.5,14.9v3.6c0,5.7,1.3,10.7,3.9,15.1,2.6,4.4,6.3,7.8,11,10.2,4.7,2.4,10.2,3.6,16.4,3.6s10.2-.8,14.4-2.5c4.3-1.7,8.1-4.3,11.4-7.8l11.9,13.7c-4.3,5-9.6,8.8-16.1,11.5-6.5,2.7-13.9,4-22.2,4Z"/>
<path d="M1645.7,165.3v-95.1h21.2v26.2l-2.5-7.7c2.8-6.4,7.3-11.3,13.4-14.6,6.1-3.3,13.7-5,22.9-5v21.2c-1-.2-1.8-.4-2.7-.4-.8,0-1.7,0-2.5,0-8.4,0-15.1,2.5-20.1,7.4-5,4.9-7.5,12.3-7.5,22v46.1h-22.3Z"/>
<path d="M1749.9,166.6c-8,0-15.6-1-22.9-3.1s-13.1-4.6-17.4-7.6l8.5-16.9c4.3,2.7,9.4,5,15.3,6.8,5.9,1.8,11.9,2.7,17.8,2.7s12.1-.9,15.2-2.8c3.1-1.9,4.7-4.5,4.7-7.7s-1.1-4.6-3.2-6c-2.1-1.4-4.9-2.4-8.4-3.1-3.4-.7-7.3-1.4-11.5-2-4.2-.6-8.4-1.4-12.6-2.4-4.2-1-8-2.5-11.5-4.5-3.4-2-6.2-4.6-8.4-7.9-2.1-3.3-3.2-7.7-3.2-13.2s1.7-11.3,5.2-15.8c3.4-4.5,8.3-7.9,14.5-10.3,6.2-2.4,13.6-3.7,22.2-3.7s12.9.7,19.4,2.1c6.5,1.4,11.9,3.4,16.2,6.1l-8.5,16.9c-4.5-2.7-9.1-4.6-13.6-5.6-4.6-1-9.1-1.5-13.6-1.5-6.8,0-11.8,1-15,3-3.3,2-4.9,4.6-4.9,7.7s1.1,5,3.2,6.4c2.1,1.4,4.9,2.6,8.4,3.4,3.4.8,7.3,1.5,11.5,2,4.2.5,8.4,1.3,12.6,2.4,4.2,1.1,8,2.5,11.5,4.4,3.5,1.8,6.3,4.4,8.5,7.7,2.1,3.3,3.2,7.7,3.2,13s-1.8,11.1-5.3,15.5c-3.5,4.4-8.5,7.8-14.9,10.2-6.4,2.4-14.1,3.7-23,3.7Z"/>
<g>
<path d="M9.8,143l63.4-38.1-5.8-15.3,18.1-18.6,22.9-4.9,6.6,8.2-10.6,10.7-9.2,2.9-6.6,6.8,3.2,9,6.5,6.9,9.2-2.5,6.6-7.2,14.3-4.5,4.3,9.6-14.8,18.1-24.8,7.8-11.1-12.4-63.6,38.2c-3-3.9-6.5-9.4-8.8-14.7ZM192.8,65.4l-50.4,13.6c2.8,7.4,3.7,11.7,4.5,16.5l50.3-13.6c-.8-5.4-2.2-10.8-4.4-16.5Z" fill-rule="evenodd"/>
<path d="M17.3,106.5c3.6,42.1,38.9,75.2,82,75.2s60.7-18.9,74-46.3l16.4,5.7c-15.8,34.1-50.3,57.9-90.4,57.9S3.6,158.2,0,106.5h17.3ZM.3,89.4C5.3,39.2,47.8,0,99.3,0s99.5,44.6,99.5,99.5-1.1,17.4-3.3,25.5l-16.3-5.7c1.6-6.5,2.4-13.1,2.4-19.8,0-45.4-36.9-82.3-82.3-82.3S22.6,48.7,17.6,89.4H.3Z" fill-rule="evenodd"/>
<path d="M99,51.6c-26.4,0-47.9,21.5-47.9,48s21.5,48,48,48,2.7,0,4-.2l4.8,16.8c-2.9.4-5.8.6-8.8.6-36,0-65.2-29.2-65.2-65.2S63.1,34.4,99,34.4s1.8,0,2.7,0l-2.7,17.1ZM118.6,37.4c26.4,8.3,45.6,33,45.6,62.2s-16.4,50.2-39.8,60l-4.8-16.7c16.2-7.7,27.4-24.2,27.4-43.3s-13-38.1-31.1-44.9l2.7-17.2Z" fill-rule="evenodd"/>
</g>
</g>
<g id="black" fill="currentColor">
<path d="M354.8,69.2c12,0,21.7,3.4,28.6,10.4,7,7.2,10.6,17.5,10.6,31.5v54.8h-22.4v-51.9c0-8.4-1.8-14.7-5.5-19-3.8-4.1-8.9-6.3-15.9-6.3s-13.6,2.5-18.1,7.3c-4.5,5-6.8,12.2-6.8,21.3v48.5h-22.4v-51.9c0-8.4-1.8-14.7-5.5-19-3.8-4.1-8.9-6.3-15.9-6.3s-13.6,2.5-18.1,7.3c-4.5,4.8-6.8,12-6.8,21.3v48.5h-22.4v-95.6h21.3v12.2c3.6-4.3,8.1-7.5,13.4-9.8,5.4-2.3,11.3-3.4,17.9-3.4s13.6,1.3,19.2,3.9c5.5,2.9,9.8,6.8,13.1,12,3.9-5,8.9-8.9,15.2-11.8,6.3-2.7,13.1-4.1,20.6-4.1ZM466,167.2c-9.7,0-18.4-2.1-26.1-6.3-7.6-4-13.8-10.1-18.1-17.5-4.5-7.3-6.6-15.7-6.6-25.2s2.1-17.9,6.6-25.2c4.3-7.4,10.6-13.4,18.1-17.4,7.7-4.1,16.5-6.3,26.1-6.3s18.6,2.1,26.3,6.3c7.7,4.1,13.8,10,18.3,17.4,4.3,7.3,6.4,15.7,6.4,25.2s-2.1,17.9-6.4,25.2c-4.5,7.5-10.6,13.4-18.3,17.5-7.7,4.1-16.5,6.3-26.3,6.3h0ZM466,148c8.2,0,15-2.7,20.4-8.2,5.4-5.5,8.1-12.7,8.1-21.7s-2.7-16.1-8.1-21.7c-5.4-5.5-12.2-8.2-20.4-8.2s-15,2.7-20.2,8.2c-5.4,5.5-8.1,12.7-8.1,21.7s2.7,16.1,8.1,21.7c5.2,5.5,12,8.2,20.2,8.2ZM631.5,33.1v132.8h-21.5v-12.3c-3.7,4.4-8.3,7.9-13.6,10.2-5.5,2.3-11.5,3.4-18.1,3.4s-17.4-2-24.7-6.1c-7.3-4.1-13.2-9.8-17.4-17.4-4.1-7.3-6.3-15.9-6.3-25.6s2.1-18.3,6.3-25.6c4.1-7.3,10-13.1,17.4-17.2,7.3-4.1,15.6-6.1,24.7-6.1s12.2,1.1,17.4,3.2c5.2,2.1,9.8,5.4,13.4,9.7v-49h22.4ZM581.1,148c5.4,0,10.2-1.3,14.5-3.8,4.3-2.3,7.7-5.9,10.2-10.4,2.5-4.5,3.8-9.8,3.8-15.7s-1.3-11.3-3.8-15.7c-2.5-4.5-5.9-8.1-10.2-10.6-4.3-2.3-9.1-3.6-14.5-3.6s-10.2,1.3-14.5,3.6c-4.3,2.5-7.7,6.1-10.2,10.6-2.5,4.5-3.8,9.8-3.8,15.7s1.3,11.3,3.8,15.7c2.5,4.5,5.9,8.1,10.2,10.4,4.3,2.5,9.1,3.8,14.5,3.8ZM681.6,84.3c6.4-10,17.7-15,34-15v21.3c-1.7-.3-3.4-.5-5.2-.5-8.8,0-15.6,2.5-20.4,7.5-4.8,5.2-7.3,12.5-7.3,22v46.4h-22.4v-95.6h21.3v14h0ZM734.1,70.3h22.4v95.6h-22.4v-95.6ZM745.4,54.6c-4.1,0-7.5-1.3-10.2-3.9-2.7-2.4-4.2-5.9-4.1-9.5,0-3.8,1.4-7,4.1-9.7,2.7-2.5,6.1-3.8,10.2-3.8s7.5,1.3,10.2,3.6c2.7,2.5,4.1,5.5,4.1,9.3s-1.3,7.2-3.9,9.8c-2.7,2.7-6.3,4.1-10.4,4.1ZM839.5,69.2c12,0,21.7,3.6,29,10.6,7.3,7,10.9,17.5,10.9,31.3v54.8h-22.4v-51.9c0-8.4-2-14.7-5.9-19-3.9-4.1-9.5-6.3-16.8-6.3s-14.7,2.5-19.5,7.3c-4.8,5-7.2,12.2-7.2,21.5v48.3h-22.4v-95.6h21.3v12.3c3.8-4.5,8.4-7.7,14-10,5.5-2.3,12-3.4,19-3.4ZM964.8,160.7c-2.8,2.2-6,3.9-9.5,4.8-3.9,1.1-7.9,1.6-12,1.6-10.6,0-18.6-2.7-24.3-8.2-5.7-5.5-8.6-13.4-8.6-24v-46h-15.7v-17.9h15.7v-21.8h22.4v21.8h25.6v17.9h-25.6v45.5c0,4.7,1.1,8.2,3.4,10.6,2.3,2.5,5.5,3.8,9.8,3.8s9.1-1.3,12.5-3.9l6.3,15.9ZM1036.9,69.2c12,0,21.7,3.6,29,10.6,7.3,7,10.9,17.5,10.9,31.3v54.8h-22.4v-51.9c0-8.4-2-14.7-5.9-19-3.9-4.1-9.5-6.3-16.8-6.3s-14.7,2.5-19.5,7.3c-4.8,5-7.2,12.2-7.2,21.5v48.3h-22.4V33.1h22.4v48.3c3.8-3.9,8.2-7,13.8-9.1,5.4-2,11.5-3,18.1-3Z"/>
</g>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 7.0 KiB

@@ -2,6 +2,8 @@
@tailwind components;
@tailwind utilities;
@import '@modrinth/ui/src/styles/tailwind-utilities.css';
@font-face {
font-family: 'bundled-minecraft-font-mrapp';
font-style: normal;
@@ -284,7 +284,7 @@ onUnmounted(() => {
z-index: 11;
gap: 0.5rem;
padding: 1rem;
border: 1px solid var(--color-button-bg);
border: 1px solid var(--color-divider);
width: max-content;
user-select: none;
-ms-user-select: none;
@@ -380,7 +380,7 @@ onUnmounted(() => {
text-align: left;
&.expanded {
border: 1px solid var(--color-button-bg);
border: 1px solid var(--color-divider);
padding: 1rem;
}
}
@@ -119,7 +119,7 @@ onBeforeUnmount(() => {
background-color: var(--color-raised-bg);
border-radius: var(--radius-md);
box-shadow: var(--shadow-floating);
border: 1px solid var(--color-button-bg);
border: 1px solid var(--color-divider);
margin: 0;
position: fixed;
z-index: 1000000;
@@ -163,7 +163,7 @@ onBeforeUnmount(() => {
}
.divider {
border: 1px solid var(--color-button-bg);
border: 1px solid var(--color-divider);
margin: var(--gap-sm);
pointer-events: none;
}
@@ -34,7 +34,7 @@
</div>
<div class="input-row">
<p class="input-label">Game version</p>
<div class="versions">
<div class="flex gap-4 items-center">
<multiselect
v-model="game_version"
class="selector"
@@ -45,7 +45,7 @@
open-direction="top"
:show-labels="false"
/>
<Checkbox v-model="showSnapshots" class="filter-checkbox" label="Show all versions" />
<Checkbox v-model="showSnapshots" class="shrink-0" label="Show all versions" />
</div>
</div>
<div v-if="loader !== 'vanilla'" class="input-row">
@@ -341,7 +341,7 @@ const create_instance = async () => {
creating.value = true
const loader_version_value =
loader_version.value === 'other' ? specified_loader_version.value : loader_version.value
const loaderVersion = loader.value === 'vanilla' ? null : loader_version_value ?? 'stable'
const loaderVersion = loader.value === 'vanilla' ? null : (loader_version_value ?? 'stable')
hide()
creating.value = false
@@ -350,7 +350,7 @@ const create_instance = async () => {
profile_name.value,
game_version.value,
loader.value,
loader.value === 'vanilla' ? null : loader_version_value ?? 'stable',
loader.value === 'vanilla' ? null : (loader_version_value ?? 'stable'),
icon.value,
).catch(handleError)
@@ -546,12 +546,6 @@ const next = async () => {
font-style: italic;
}
.versions {
display: flex;
flex-direction: row;
gap: 1rem;
}
:deep(button.checkbox) {
border: none;
}
@@ -63,7 +63,7 @@ const toTransparent = computed(() => {
<div
class="w-full aspect-[2/1] bg-cover bg-center bg-no-repeat"
:style="{
'background-color': project.featured_gallery ?? project.gallery[0] ? null : toColor,
'background-color': (project.featured_gallery ?? project.gallery[0]) ? null : toColor,
'background-image': `url(${
project.featured_gallery ??
project.gallery[0] ??
@@ -34,18 +34,18 @@ function updateAdPosition() {
<template>
<div ref="adsWrapper" class="ad-parent relative flex w-full justify-center cursor-pointer bg-bg">
<a
href="https://modrinth.gg/medal?from=app-placeholder"
href="https://modrinth.host/medal?from=app-placeholder"
target="_blank"
class="flex max-h-[250px] min-h-[250px] min-w-[300px] max-w-[300px] flex-col gap-4 rounded-[inherit]"
>
<img
src="https://cdn-raw.modrinth.com/medal-modrinth-servers-light-new.webp"
alt="Host your next server with Modrinth Servers"
src="https://cdn-raw.modrinth.com/modrinth-hosting-medal-light.webp"
alt="Host your next server with Modrinth Hosting"
class="hidden light-image rounded-[inherit]"
/>
<img
src="https://cdn-raw.modrinth.com/medal-modrinth-servers-dark-new.webp"
alt="Host your next server with Modrinth Servers"
src="https://cdn-raw.modrinth.com/modrinth-hosting-medal-dark.webp"
alt="Host your next server with Modrinth Hosting"
class="dark-image rounded-[inherit]"
/>
</a>
@@ -69,7 +69,7 @@ onUnmounted(() => {
<SpinnerIcon class="animate-spin w-4 h-4" />
</div>
</NavButton>
<div v-if="recentInstances.length > 0" class="h-px w-6 mx-auto my-2 bg-button-bg"></div>
<div v-if="recentInstances.length > 0" class="h-px w-6 mx-auto my-2 bg-divider"></div>
</template>
<style scoped lang="scss"></style>
@@ -293,7 +293,7 @@ onBeforeUnmount(() => {
align-items: center;
gap: 0.5rem;
border-radius: var(--radius-md);
border: 1px solid var(--color-button-bg);
border: 1px solid var(--color-divider);
padding: var(--gap-sm) var(--gap-lg);
}
@@ -356,7 +356,7 @@ onBeforeUnmount(() => {
gap: 1rem;
overflow: auto;
transition: all 0.2s ease-in-out;
border: 1px solid var(--color-button-bg);
border: 1px solid var(--color-divider);
&.hidden {
transform: translateY(-100%);
@@ -454,7 +454,7 @@ onBeforeUnmount(() => {
flex-direction: column;
overflow: auto;
transition: all 0.2s ease-in-out;
border: 1px solid var(--color-button-bg);
border: 1px solid var(--color-divider);
padding: var(--gap-md);
&.hidden {
@@ -191,7 +191,8 @@ const handleClose = async () => {
position: absolute;
height: 100vh;
width: 100vw;
background: linear-gradient(180deg, rgba(66, 131, 92, 0.275) 0%, rgba(17, 35, 43, 0.5) 97.29%),
background:
linear-gradient(180deg, rgba(66, 131, 92, 0.275) 0%, rgba(17, 35, 43, 0.5) 97.29%),
linear-gradient(0deg, rgba(22, 24, 28, 0.64), rgba(22, 24, 28, 0.64));
z-index: 9997;
}
@@ -1,8 +1,7 @@
<script setup lang="ts">
import { DownloadIcon, ExternalIcon, RefreshCwIcon, SpinnerIcon, XIcon } from '@modrinth/assets'
import { ButtonStyled, commonMessages, ProgressBar } from '@modrinth/ui'
import { ButtonStyled, commonMessages, defineMessages, ProgressBar, useVIntl } from '@modrinth/ui'
import { formatBytes } from '@modrinth/utils'
import { defineMessages, useVIntl } from '@vintl/vintl'
import { ref } from 'vue'
import { injectAppUpdateDownloadProgress } from '@/providers/download-progress.ts'
@@ -4,11 +4,12 @@ import {
Avatar,
ButtonStyled,
commonMessages,
defineMessages,
injectNotificationManager,
IntlFormatted,
useRelativeTime,
useVIntl,
} from '@modrinth/ui'
import { defineMessages, useVIntl } from '@vintl/vintl'
import { IntlFormatted } from '@vintl/vintl/components'
import { computed, onUnmounted, ref, watch } from 'vue'
import FriendsSection from '@/components/ui/friends/FriendsSection.vue'
@@ -1,8 +1,14 @@
<script setup lang="ts">
import { MoreVerticalIcon, TrashIcon, UserIcon, XIcon } from '@modrinth/assets'
import { Accordion, Avatar, ButtonStyled, OverflowMenu } from '@modrinth/ui'
import {
Accordion,
Avatar,
ButtonStyled,
defineMessages,
OverflowMenu,
useVIntl,
} from '@modrinth/ui'
import { openUrl } from '@tauri-apps/plugin-opener'
import { defineMessages, useVIntl } from '@vintl/vintl'
import { useTemplateRef } from 'vue'
import ContextMenu from '@/components/ui/ContextMenu.vue'
@@ -4,12 +4,13 @@ import {
Avatar,
ButtonStyled,
Checkbox,
defineMessages,
injectNotificationManager,
OverflowMenu,
useVIntl,
} from '@modrinth/ui'
import { convertFileSrc } from '@tauri-apps/api/core'
import { open } from '@tauri-apps/plugin-dialog'
import { defineMessages, useVIntl } from '@vintl/vintl'
import { computed, type Ref, ref, watch } from 'vue'
import { useRouter } from 'vue-router'
@@ -1,6 +1,5 @@
<script setup lang="ts">
import { Checkbox, injectNotificationManager } from '@modrinth/ui'
import { defineMessages, useVIntl } from '@vintl/vintl'
import { Checkbox, defineMessages, injectNotificationManager, useVIntl } from '@modrinth/ui'
import { computed, ref, watch } from 'vue'
import { edit } from '@/helpers/profile'
@@ -16,7 +16,9 @@ import {
Checkbox,
Chips,
Combobox,
defineMessages,
injectNotificationManager,
useVIntl,
} from '@modrinth/ui'
import {
formatCategory,
@@ -25,7 +27,6 @@ import {
type Project,
type Version,
} from '@modrinth/utils'
import { defineMessages, useVIntl } from '@vintl/vintl'
import dayjs from 'dayjs'
import { computed, type ComputedRef, type Ref, ref, shallowRef, watch } from 'vue'
@@ -1,7 +1,6 @@
<script setup lang="ts">
import { CheckCircleIcon, XCircleIcon } from '@modrinth/assets'
import { Checkbox, injectNotificationManager, Slider } from '@modrinth/ui'
import { defineMessages, useVIntl } from '@vintl/vintl'
import { Checkbox, defineMessages, injectNotificationManager, Slider, useVIntl } from '@modrinth/ui'
import { computed, readonly, ref, watch } from 'vue'
import JavaSelector from '@/components/ui/JavaSelector.vue'
@@ -9,7 +8,7 @@ import useMemorySlider from '@/composables/useMemorySlider'
import { edit, get_optimal_jre_key } from '@/helpers/profile'
import { get } from '@/helpers/settings.ts'
import type { AppSettings, InstanceSettingsTabProps, MemorySettings } from '../../../helpers/types'
import type { AppSettings, InstanceSettingsTabProps } from '../../../helpers/types'
const { handleError } = injectNotificationManager()
const { formatMessage } = useVIntl()
@@ -22,12 +21,12 @@ const overrideJavaInstall = ref(!!props.instance.java_path)
const optimalJava = readonly(await get_optimal_jre_key(props.instance.path).catch(handleError))
const javaInstall = ref({ path: optimalJava.path ?? props.instance.java_path })
const overrideJavaArgs = ref(props.instance.extra_launch_args?.length !== undefined)
const overrideJavaArgs = ref((props.instance.extra_launch_args?.length ?? 0) > 0)
const javaArgs = ref(
(props.instance.extra_launch_args ?? globalSettings.extra_launch_args).join(' '),
)
const overrideEnvVars = ref(props.instance.custom_env_vars?.length !== undefined)
const overrideEnvVars = ref((props.instance.custom_env_vars?.length ?? 0) > 0)
const envVars = ref(
(props.instance.custom_env_vars ?? globalSettings.custom_env_vars)
.map((x) => x.join('='))
@@ -42,36 +41,23 @@ const { maxMemory, snapPoints } = (await useMemorySlider().catch(handleError)) a
}
const editProfileObject = computed(() => {
const editProfile: {
java_path?: string
extra_launch_args?: string[]
custom_env_vars?: string[][]
memory?: MemorySettings
} = {}
if (overrideJavaInstall.value) {
if (javaInstall.value.path !== '') {
editProfile.java_path = javaInstall.value.path.replace('java.exe', 'javaw.exe')
}
return {
java_path:
overrideJavaInstall.value && javaInstall.value.path !== ''
? javaInstall.value.path.replace('java.exe', 'javaw.exe')
: null,
extra_launch_args: overrideJavaArgs.value
? javaArgs.value.trim().split(/\s+/).filter(Boolean)
: null,
custom_env_vars: overrideEnvVars.value
? envVars.value
.trim()
.split(/\s+/)
.filter(Boolean)
.map((x) => x.split('=').filter(Boolean))
: null,
memory: overrideMemorySettings.value ? memory.value : null,
}
if (overrideJavaArgs.value) {
editProfile.extra_launch_args = javaArgs.value.trim().split(/\s+/).filter(Boolean)
}
if (overrideEnvVars.value) {
editProfile.custom_env_vars = envVars.value
.trim()
.split(/\s+/)
.filter(Boolean)
.map((x) => x.split('=').filter(Boolean))
}
if (overrideMemorySettings.value) {
editProfile.memory = memory.value
}
return editProfile
})
watch(
@@ -1,6 +1,5 @@
<script setup lang="ts">
import { Checkbox, injectNotificationManager, Toggle } from '@modrinth/ui'
import { defineMessages, useVIntl } from '@vintl/vintl'
import { Checkbox, defineMessages, injectNotificationManager, Toggle, useVIntl } from '@modrinth/ui'
import { computed, type Ref, ref, watch } from 'vue'
import { edit } from '@/helpers/profile'
@@ -26,20 +25,16 @@ const fullscreenSetting: Ref<boolean> = ref(
)
const editProfileObject = computed(() => {
const editProfile: {
force_fullscreen?: boolean
game_resolution?: [number, number]
} = {}
if (overrideWindowSettings.value) {
editProfile.force_fullscreen = fullscreenSetting.value
if (!fullscreenSetting.value) {
editProfile.game_resolution = resolution.value
if (!overrideWindowSettings.value) {
return {
force_fullscreen: null,
game_resolution: null,
}
}
return editProfile
return {
force_fullscreen: fullscreenSetting.value,
game_resolution: fullscreenSetting.value ? null : resolution.value,
}
})
watch(
@@ -95,14 +90,6 @@ const messages = defineMessages({
<Checkbox
v-model="overrideWindowSettings"
:label="formatMessage(messages.customWindowSettings)"
@update:model-value="
(value) => {
if (!value) {
resolution = globalSettings.game_resolution
fullscreenSetting = globalSettings.force_fullscreen
}
}
"
/>
<div class="mt-2 flex items-center gap-4 justify-between">
<div>
@@ -3,16 +3,23 @@ import {
CoffeeIcon,
GameIcon,
GaugeIcon,
LanguagesIcon,
ModrinthIcon,
PaintbrushIcon,
ReportIcon,
SettingsIcon,
ShieldIcon,
} from '@modrinth/assets'
import { ProgressBar, TabbedModal } from '@modrinth/ui'
import {
commonMessages,
defineMessage,
defineMessages,
ProgressBar,
TabbedModal,
useVIntl,
} from '@modrinth/ui'
import { getVersion } from '@tauri-apps/api/app'
import { platform as getOsPlatform, version as getOsVersion } from '@tauri-apps/plugin-os'
import { defineMessage, defineMessages, useVIntl } from '@vintl/vintl'
import { computed, ref, watch } from 'vue'
import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue'
@@ -20,6 +27,7 @@ import AppearanceSettings from '@/components/ui/settings/AppearanceSettings.vue'
import DefaultInstanceSettings from '@/components/ui/settings/DefaultInstanceSettings.vue'
import FeatureFlagSettings from '@/components/ui/settings/FeatureFlagSettings.vue'
import JavaSettings from '@/components/ui/settings/JavaSettings.vue'
import LanguageSettings from '@/components/ui/settings/LanguageSettings.vue'
import PrivacySettings from '@/components/ui/settings/PrivacySettings.vue'
import ResourceManagementSettings from '@/components/ui/settings/ResourceManagementSettings.vue'
import { get, set } from '@/helpers/settings.ts'
@@ -46,6 +54,15 @@ const tabs = [
icon: PaintbrushIcon,
content: AppearanceSettings,
},
{
name: defineMessage({
id: 'app.settings.tabs.language',
defaultMessage: 'Language',
}),
icon: LanguagesIcon,
content: LanguageSettings,
badge: commonMessages.beta,
},
{
name: defineMessage({
id: 'app.settings.tabs.privacy',
@@ -7,9 +7,8 @@ import {
MonitorIcon,
WrenchIcon,
} from '@modrinth/assets'
import { Avatar, TabbedModal, type TabbedModalTab } from '@modrinth/ui'
import { Avatar, defineMessage, TabbedModal, type TabbedModalTab, useVIntl } from '@modrinth/ui'
import { convertFileSrc } from '@tauri-apps/api/core'
import { defineMessage, useVIntl } from '@vintl/vintl'
import { ref } from 'vue'
import GeneralSettings from '@/components/ui/instance_settings/GeneralSettings.vue'
@@ -21,7 +21,7 @@ async function updateJavaVersion(version) {
}
</script>
<template>
<div v-for="(javaVersion, index) in [21, 17, 8]" :key="`java-${javaVersion}`">
<div v-for="(javaVersion, index) in [25, 21, 17, 8]" :key="`java-${javaVersion}`">
<h2 class="m-0 text-lg font-extrabold text-contrast" :class="{ 'mt-4': index !== 0 }">
Java {{ javaVersion }} location
</h2>
@@ -0,0 +1,71 @@
<script setup lang="ts">
import {
Admonition,
AutoLink,
IntlFormatted,
LanguageSelector,
languageSelectorMessages,
LOCALES,
useVIntl,
} from '@modrinth/ui'
import { ref, watch } from 'vue'
import { get, set } from '@/helpers/settings.ts'
import i18n from '@/i18n.config'
const { formatMessage } = useVIntl()
const platform = formatMessage(languageSelectorMessages.platformApp)
const settings = ref(await get())
watch(
settings,
async () => {
await set(settings.value)
},
{ deep: true },
)
const $isChanging = ref(false)
async function onLocaleChange(newLocale: string) {
if (settings.value.locale === newLocale) return
$isChanging.value = true
try {
i18n.global.locale.value = newLocale
settings.value.locale = newLocale
} finally {
$isChanging.value = false
}
}
</script>
<template>
<h2 class="m-0 text-lg font-extrabold text-contrast">Language</h2>
<Admonition type="warning" class="mt-2 mb-4">
{{ formatMessage(languageSelectorMessages.languageWarning, { platform }) }}
</Admonition>
<p class="m-0 mb-4">
<IntlFormatted
:message-id="languageSelectorMessages.languagesDescription"
:values="{ platform }"
>
<template #~crowdin-link="{ children }">
<AutoLink to="https://translate.modrinth.com">
<component :is="() => children" />
</AutoLink>
</template>
</IntlFormatted>
</p>
<LanguageSelector
:current-locale="settings.locale"
:locales="LOCALES"
:on-locale-change="onLocaleChange"
:is-changing="$isChanging"
/>
</template>
@@ -15,10 +15,10 @@ import {
OverflowMenu,
SmartClickable,
useRelativeTime,
useVIntl,
} from '@modrinth/ui'
import { capitalizeString } from '@modrinth/utils'
import { convertFileSrc } from '@tauri-apps/api/core'
import { useVIntl } from '@vintl/vintl'
import type { Dayjs } from 'dayjs'
import dayjs from 'dayjs'
import { computed, nextTick, onMounted, onUnmounted, ref } from 'vue'
@@ -130,7 +130,7 @@ onUnmounted(() => {
/>
</template>
<div
class="grid grid-cols-[auto_minmax(0,3fr)_minmax(0,4fr)_auto] items-center gap-2 p-3 bg-bg-raised rounded-xl smart-clickable:highlight-on-hover"
class="grid grid-cols-[auto_minmax(0,3fr)_minmax(0,4fr)_auto] items-center gap-2 p-3 bg-bg-raised card-shadow rounded-xl smart-clickable:highlight-on-hover"
>
<Avatar
:src="instanceIcon ? convertFileSrc(instanceIcon) : undefined"
@@ -1,6 +1,8 @@
<script setup lang="ts">
import { LoaderCircleIcon } from '@modrinth/assets'
import type { GameVersion } from '@modrinth/ui'
import { GAME_MODES, HeadingLink, injectNotificationManager } from '@modrinth/ui'
import { platform } from '@tauri-apps/plugin-os'
import type { Dayjs } from 'dayjs'
import dayjs from 'dayjs'
import { computed, onMounted, onUnmounted, ref, watch } from 'vue'
@@ -39,6 +41,7 @@ const props = defineProps<{
const theme = useTheming()
const jumpBackInItems = ref<JumpBackInItem[]>([])
const loading = ref(true)
const serverData = ref<Record<string, ServerData>>({})
const protocolVersions = ref<Record<string, ProtocolVersion | null>>({})
const gameVersions = ref<GameVersion[]>(await get_game_versions().catch(() => []))
@@ -46,6 +49,11 @@ const gameVersions = ref<GameVersion[]>(await get_game_versions().catch(() => []
const MIN_JUMP_BACK_IN = 3
const MAX_JUMP_BACK_IN = 6
const TWO_WEEKS_AGO = dayjs().subtract(14, 'day')
const MAX_LINUX_POPULATES = 3
// Track populate calls on Linux to prevent server ping spam
const isLinux = platform() === 'linux'
const linuxPopulateCount = ref(0)
type BaseJumpBackInItem = {
last_played: Dayjs
@@ -71,11 +79,19 @@ watch([() => props.recentInstances, () => showWorlds.value], async () => {
})
})
await populateJumpBackIn().catch(() => {
console.error('Failed to populate jump back in')
})
populateJumpBackIn()
.catch(() => {
console.error('Failed to populate jump back in')
})
.finally(() => {
loading.value = false
})
async function populateJumpBackIn() {
// On Linux, limit automatic populates to prevent server ping spam
if (isLinux && linuxPopulateCount.value >= MAX_LINUX_POPULATES) return
if (isLinux) linuxPopulateCount.value++
console.info('Repopulating jump back in...')
const worldItems: WorldJumpBackInItem[] = []
@@ -224,6 +240,7 @@ const checkProcesses = async () => {
onMounted(() => {
checkProcesses()
linuxPopulateCount.value = 0
})
onUnmounted(() => {
@@ -233,7 +250,15 @@ onUnmounted(() => {
</script>
<template>
<div v-if="jumpBackInItems.length > 0" class="flex flex-col gap-2">
<div v-if="loading" class="flex flex-col gap-2">
<span class="flex mt-1 mb-3 leading-none items-center gap-1 text-primary text-lg font-bold">
Jump back in
</span>
<div class="text-center py-4">
<LoaderCircleIcon class="mx-auto size-8 animate-spin text-contrast" />
</div>
</div>
<div v-else-if="jumpBackInItems.length > 0" class="flex flex-col gap-2">
<HeadingLink v-if="theme.getFeatureFlag('worlds_tab')" to="/worlds" class="mt-1">
Jump back in
</HeadingLink>
@@ -17,18 +17,19 @@ import {
UserIcon,
XIcon,
} from '@modrinth/assets'
import type { MessageDescriptor } from '@modrinth/ui'
import {
Avatar,
ButtonStyled,
commonMessages,
defineMessages,
OverflowMenu,
SmartClickable,
useRelativeTime,
useVIntl,
} from '@modrinth/ui'
import { formatNumber, getPingLevel } from '@modrinth/utils'
import { convertFileSrc } from '@tauri-apps/api/core'
import type { MessageDescriptor } from '@vintl/vintl'
import { defineMessages, useVIntl } from '@vintl/vintl'
import dayjs from 'dayjs'
import { Tooltip } from 'floating-vue'
import type { Component } from 'vue'
@@ -181,14 +182,16 @@ const messages = defineMessages({
/>
</template>
<div
class="grid grid-cols-[auto_minmax(0,3fr)_minmax(0,4fr)_auto] items-center gap-2 p-3 bg-bg-raised smart-clickable:highlight-on-hover rounded-xl"
class="grid grid-cols-[auto_minmax(0,3fr)_minmax(0,4fr)_auto] items-center gap-2 p-3 bg-bg-raised card-shadow smart-clickable:highlight-on-hover rounded-xl"
:class="{
'world-item-highlighted': highlighted,
}"
>
<Avatar
:src="
world.type === 'server' && serverStatus ? serverStatus.favicon ?? world.icon : world.icon
world.type === 'server' && serverStatus
? (serverStatus.favicon ?? world.icon)
: world.icon
"
size="48px"
/>
@@ -1,7 +1,12 @@
<script setup lang="ts">
import { PlayIcon, PlusIcon, XIcon } from '@modrinth/assets'
import { ButtonStyled, commonMessages, injectNotificationManager } from '@modrinth/ui'
import { defineMessages, useVIntl } from '@vintl/vintl'
import {
ButtonStyled,
commonMessages,
defineMessages,
injectNotificationManager,
useVIntl,
} from '@modrinth/ui'
import { ref } from 'vue'
import InstanceModalTitlePrefix from '@/components/ui/modal/InstanceModalTitlePrefix.vue'
@@ -1,7 +1,12 @@
<script setup lang="ts">
import { SaveIcon, XIcon } from '@modrinth/assets'
import { ButtonStyled, commonMessages, injectNotificationManager } from '@modrinth/ui'
import { defineMessage, useVIntl } from '@vintl/vintl'
import {
ButtonStyled,
commonMessages,
defineMessage,
injectNotificationManager,
useVIntl,
} from '@modrinth/ui'
import { computed, ref } from 'vue'
import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue'
@@ -1,7 +1,13 @@
<script setup lang="ts">
import { ChevronRightIcon, SaveIcon, UndoIcon, XIcon } from '@modrinth/assets'
import { Avatar, ButtonStyled, commonMessages, injectNotificationManager } from '@modrinth/ui'
import { defineMessages, useVIntl } from '@vintl/vintl'
import {
Avatar,
ButtonStyled,
commonMessages,
defineMessages,
injectNotificationManager,
useVIntl,
} from '@modrinth/ui'
import { computed, ref } from 'vue'
import ModalWrapper from '@/components/ui/modal/ModalWrapper.vue'
@@ -1,6 +1,5 @@
<script setup lang="ts">
import { Checkbox } from '@modrinth/ui'
import { defineMessage, useVIntl } from '@vintl/vintl'
import { Checkbox, defineMessage, useVIntl } from '@modrinth/ui'
import { computed } from 'vue'
const { formatMessage } = useVIntl()
@@ -1,6 +1,5 @@
<script setup lang="ts">
import { Combobox } from '@modrinth/ui'
import { defineMessages, type MessageDescriptor, useVIntl } from '@vintl/vintl'
import { Combobox, defineMessages, type MessageDescriptor, useVIntl } from '@modrinth/ui'
import type { ServerPackStatus } from '@/helpers/worlds.ts'
+8
View File
@@ -13,6 +13,14 @@ import { invoke } from '@tauri-apps/api/core'
// await authenticate_await_completion()
// }
/**
* Check if the authentication servers are reachable, throwing an exception if
* not reachable.
*/
export async function check_reachable() {
await invoke('plugin:auth|check_reachable')
}
/**
* Authenticate a user with Hydra - part 1.
* This begins the authentication flow quasi-synchronously.
+2 -2
View File
@@ -18,7 +18,7 @@ import { install_to_existing_profile } from '@/helpers/pack.js'
- icon is a path to an image file, which will be copied into the profile directory
*/
export async function create(name, gameVersion, modloader, loaderVersion, iconPath, skipInstall) {
export async function create(name, gameVersion, modloader, loaderVersion, icon, skipInstall) {
//Trim string name to avoid "Unable to find directory"
name = name.trim()
return await invoke('plugin:profile-create|profile_create', {
@@ -26,7 +26,7 @@ export async function create(name, gameVersion, modloader, loaderVersion, iconPa
gameVersion,
modloader,
loaderVersion,
iconPath,
icon,
skipInstall,
})
}
@@ -36,6 +36,7 @@ export type AppSettings = {
max_concurrent_writes: number
theme: ColorTheme
locale: string
default_page: 'home' | 'library'
collapsed_navigation: boolean
hide_nametag_skins_page: boolean
+18
View File
@@ -0,0 +1,18 @@
import { buildLocaleMessages, createMessageCompiler, type CrowdinMessages } from '@modrinth/ui'
import { createI18n } from 'vue-i18n'
const localeModules = import.meta.glob<{ default: CrowdinMessages }>('./locales/*/index.json', {
eager: true,
})
const i18n = createI18n({
legacy: false,
locale: 'en-US',
fallbackLocale: 'en-US',
messageCompiler: createMessageCompiler(),
missingWarn: false,
fallbackWarn: false,
messages: buildLocaleMessages(localeModules),
})
export default i18n
+10 -1
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "قد تكون خوادم مصادقة ماينكرافت معطلة حاليًا. تحقق من اتصالك بالإنترنت وحاول مرة أخرى لاحقًا."
},
"app.auth-servers.unreachable.header": {
"message": "تعذر الوصول إلى خوادم المصادقة"
},
"app.settings.developer-mode-enabled": {
"message": "تم تفعيل وضع المطوّر."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "تثبيتات جافا"
},
"app.settings.tabs.language": {
"message": "اللغة"
},
"app.settings.tabs.privacy": {
"message": "الخصوصية"
},
@@ -24,7 +33,7 @@
"message": "إدارة الموارد"
},
"app.update-toast.body": {
"message": "تطبيق Modrinth الإصدار {version} جاهز للتثبيت!\nأعد التحميل لتحديث التطبيق الآن، أو سيتم التحديث تلقائيًا عند إغلاق تطبيق Modrinth."
"message": "تطبيق Modrinth الإصدار {version} جاهز للتثبيت! أعد التحميل لتحديث التطبيق الآن، أو سيتم التحديث تلقائيًا عند إغلاق تطبيق Modrinth."
},
"app.update-toast.body.download-complete": {
"message": "تطبيق Modrinth الإصدار {version} جاهز للتثبيت!\nأعد التحميل لتحديث التطبيق الآن، أو سيتم التحديث تلقائيًا عند إغلاق تطبيق Modrinth."
+147 -24
View File
@@ -1,6 +1,12 @@
{
"app.auth-servers.unreachable.body": {
"message": "Mahimong dili maabot karon ang mga Minecraft nga magsisilbi sa pagpamatuod. Susiha ang imong pagkakatay sa internet ug unya sulayi pag-usab."
},
"app.auth-servers.unreachable.header": {
"message": "Dili maabot ang mga magsisilbi sa pagpamatuod"
},
"app.settings.developer-mode-enabled": {
"message": "Gipaandar ang paagi sa tigpalambo."
"message": "Nagadagan ang paagi sa tigpalambo."
},
"app.settings.downloading": {
"message": "Gakarganug sa v{version}"
@@ -24,13 +30,13 @@
"message": "Pagdumala sa kahinguhaan"
},
"app.update-toast.body": {
"message": "Andam na mataud ang Modrinth App v{version}! Pagkarga kausab aron mapasibo, o kinaugalingon pagtak-op sa Modrinth App."
"message": "Andam na mataud ang Modrinth App v{version}! Sa pagpasibo karun pagkarga kausab, kun unya sa kinaugalingon kini sunod sa pagtak-op sa Modrinth App."
},
"app.update-toast.body.download-complete": {
"message": "Nahuman ang pagkarganug sa Modrinth App v{version}. Pagkarga kausab aron mapasibo, o kinaugalingon pagtak-op sa Modrinth App."
"message": "Nahuman ang pagkarganug sa Modrinth App v{version}. Sa pagpasibo karun pagkarga kausab, kun unya sa kinaugalingon kini sunod sa pagtak-op sa Modrinth App."
},
"app.update-toast.body.metered": {
"message": "Magamit na karon ang Modrinth App! Wala namo karganugi daan kay inihap man ang imong pum-ot."
"message": "Magamit na karon ang Modrinth App v{version}! Wala namo karganugi daan kay inihap man ang imong pum-ot."
},
"app.update-toast.changelog": {
"message": "Talaan sa Kausaban"
@@ -54,7 +60,7 @@
"message": "Panuplok diri aron malantaw ang talaan sa kausaban."
},
"app.update.complete-toast.title": {
"message": "Malampusong nataud ang bersiyon nga {version}!"
"message": "Malampusong nataud ang hubad nga {version}!"
},
"app.update.download-update": {
"message": "Karganugi ang kausaban"
@@ -125,6 +131,9 @@
"friends.section.heading": {
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Pag-sign-in sa Modrinth nga kaakohan</link> aron makadugang og mga higala ug mahibal-an ang ginadula nila!"
},
"instance.add-server.add-and-play": {
"message": "Idugang ug dulaa"
},
@@ -156,7 +165,7 @@
"message": "Minecraft nga Kalibutan"
},
"instance.edit-world.reset-icon": {
"message": "Walaa ang amoy"
"message": "Pag-usab sa amoy"
},
"instance.edit-world.title": {
"message": "Usba ang kalibutan"
@@ -204,7 +213,7 @@
"message": "Paghulad sa pananglitan"
},
"instance.settings.tabs.general.duplicate-instance.description": {
"message": "Buhatan og awat kining pananglitan, apil na ang imong mga kalibutan, paghan-ay, kausaban, ug uban pa."
"message": "Himoan og hulari kining pananglitan, apil na ang imong mga kalibutan, paghan-ay, kausaban, ug uban pa."
},
"instance.settings.tabs.general.edit-icon": {
"message": "Usba ang amoy"
@@ -222,7 +231,7 @@
"message": "Mga pundok sa librarya"
},
"instance.settings.tabs.general.library-groups.create": {
"message": "Pagbuhat og bag-o nga pundok"
"message": "Paghimo og bag-o nga pundok"
},
"instance.settings.tabs.general.library-groups.description": {
"message": "Gitugotan sa mga pundok sa librarya nga imong mahan-ay ang imong mga pananglitan sa nagkalain-lain nga bahin sa imong librarya."
@@ -276,13 +285,13 @@
"message": "Pagtaud"
},
"instance.settings.tabs.installation.change-version.already-installed.modded": {
"message": "Nataud naman ang {platform} {version} alang sa Minecraft {game_version}"
"message": "Nataud na man ang {platform} {version} alang sa Minecraft {game_version}"
},
"instance.settings.tabs.installation.change-version.already-installed.vanilla": {
"message": "Nataud naman ang Banilya nga {game_version}"
"message": "Nataud na man ang Banilya nga {game_version}"
},
"instance.settings.tabs.installation.change-version.button": {
"message": "Pulihan og bersiyon"
"message": "Pulihan og hubad"
},
"instance.settings.tabs.installation.change-version.button.install": {
"message": "Itaud"
@@ -291,10 +300,10 @@
"message": "Gataud"
},
"instance.settings.tabs.installation.change-version.cannot-while-fetching": {
"message": "Gapangita og mga bersiyon sa mga putos sa kausaban"
"message": "Gapangita og mga hubad sa putos sa kausaban"
},
"instance.settings.tabs.installation.change-version.in-progress": {
"message": "Gataud sa bag-o nga bersiyon"
"message": "Gataud sa bag-o nga hubad"
},
"instance.settings.tabs.installation.currently-installed": {
"message": "Pagkakarong taud"
@@ -302,29 +311,53 @@
"instance.settings.tabs.installation.debug-information": {
"message": "Kasayoran sa pagputli:"
},
"instance.settings.tabs.installation.fetching-modpack-details": {
"message": "Gapangita og mga kinuti sa putos sa kausaban"
},
"instance.settings.tabs.installation.game-version": {
"message": "Bersiyon sa dula"
"message": "Hubad sa dula"
},
"instance.settings.tabs.installation.install": {
"message": "Itaud"
},
"instance.settings.tabs.installation.install.in-progress": {
"message": "Nagtaud karon"
},
"instance.settings.tabs.installation.loader-version": {
"message": "Bersiyon sa {loader}"
"message": "Hubad sa {loader}"
},
"instance.settings.tabs.installation.minecraft-version": {
"message": "Minecraft {version}"
},
"instance.settings.tabs.installation.no-connection": {
"message": "Dili makapangita og mga kinuti sa nakagapos nga putos sa kausapan. Palihug sa pagsusi sa imong pagkakutay sa internet."
},
"instance.settings.tabs.installation.no-loader-versions": {
"message": "Dili magamit ang {loader} sa Minecraft {version}. Sulayi ang ubang tigkarga sa kausaban."
},
"instance.settings.tabs.installation.no-modpack-found": {
"message": "Nakakatay kining pananglitan sa usa ka putos sa kausaban, apan kining putos sa kausaban dili makita didto sa Modrinth."
},
"instance.settings.tabs.installation.platform": {
"message": "Pantawan"
},
"instance.settings.tabs.installation.reinstall.button": {
"message": "Itaud pag-usab ang putos sa kausaban"
},
"instance.settings.tabs.installation.reinstall.button.reinstalling": {
"message": "Nagtaud pag-usab sa putos sa kusaban"
},
"instance.settings.tabs.installation.reinstall.confirm.description": {
"message": "Mahimo nga mobalik sa sinugdan ang tanang gitaod o giusab nga sulod sa unsay ihatag sa putos sa kausaban, tangtangon ang mga kausaban o sulod nga imong gidugang apil na ang lintunganay nga putos sa kausaban. Mahimo nga maayo ang mga tuhaw nga batasan kon naay pagbag-o sa pananglitan, apan kon gasalig na ang imong kalibutan sa dinugang nga sulod, mahimo nga madaut ani ang daan nga mga kalibutan."
"message": "Mahimo nga mobalik sa sinugdan ang tanang gitaod ug giusab nga sulod sa unsay giandam sa putos sa kausaban, tangtangon ang mga kausaban ug sulod nga imong gidugang sa lintunganay nga putos sa kausaban. Mahimo nga maayo ang mga tuhaw nga batasan kon naay pagbag-o sa pananglitan, apan kon gasalig na ang imong kalibutan sa dinugang nga sulod, mahimo nga madaut ani ang daan nga mga kalibutan."
},
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "Segurado kang gusto nimong mataud pag-usab kining pananglitan?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "Ibalik ang mga sulod sa pananglitan sa unang kahimtang, tangtangon ang mga kausaban o sulod nga imong gidugang apil na ang lintunganay nga putos sa kausaban."
"message": "Mabalik ang mga sulod sa pananglitan sa sinugdang kahimtang, tangtangon ang mga kausaban ug sulod nga imong gidugang sa lintunganay nga putos sa kausaban."
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "Itaud pag-usab ang putos sa kausaban"
},
"instance.settings.tabs.installation.repair.button": {
"message": "Ayohon"
@@ -333,16 +366,22 @@
"message": "Gaayo"
},
"instance.settings.tabs.installation.repair.confirm.description": {
"message": "Sa pag-ayo, mataud pagbalik ang mga sinaligan sa Minecraft ug mangita og mga kadunot. Mahimo nga masulbad niini ang mga isyu kun dili malunsad ang dula tungod sa mga kasaypan matud sa tiglansad, apan dili ni masulbad ang mga isyu o pagdusmog matud sa mga gitaud nga kausaban."
"message": "Sa pag-ayo, mataud pagbalik ang mga sinaligan sa Minecraft ug mangita og mga kadunot. Mahimo nga masulbad niini ang mga isyu kun dili malunsad ang dula tungod sa mga kasaypan matud sa tiglunsad, apan dili ni masulbad ang mga isyu ug pagdusmog matud sa mga gitaud nga kausaban."
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "Ayohon ang pananglitan?"
},
"instance.settings.tabs.installation.repair.in-progress": {
"message": "Nag-ayo karon"
},
"instance.settings.tabs.installation.reset-selections": {
"message": "Sa kasamtang pag-usab "
},
"instance.settings.tabs.installation.show-all-versions": {
"message": "Ipakita ang tanang bersiyon"
"message": "Ipakita ang tanang hubad"
},
"instance.settings.tabs.installation.tooltip.action.change-version": {
"message": "pulihan og bersiyon"
"message": "pulihan og hubad"
},
"instance.settings.tabs.installation.tooltip.action.install": {
"message": "itaud"
@@ -363,40 +402,109 @@
"message": "Dili maka-{action} samtang nag-ayo"
},
"instance.settings.tabs.installation.unknown-version": {
"message": "(diinilang bersiyon)"
"message": "(diinilang hubad)"
},
"instance.settings.tabs.installation.unlink.button": {
"message": "Pagbugto sa pananglitan"
},
"instance.settings.tabs.installation.unlink.confirm.description": {
"message": "Kun imong ipadayon, dili na nimo makatay pagbalik nga wala mohimo og bag-o nga pananglitan. Dili na ka makadawat og pagpasibo sa putos sa kausaban ug mahimo kining naandan nga."
"message": "Kun imong ipadayon, dili na nimo makatay kini pagbalik nga wala mohimo og bag-o nga pananglitan. Dili na ka makadawat og pagpasibo sa putos sa kausaban ug mahimo kining naandan nga."
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "Segurado kang gusto nimong mabugto kining pananglitan?"
},
"instance.settings.tabs.installation.unlink.description": {
"message": "Nakakatay kining pananglitan sa usa ka putos sa kausaban, pasabot ani nga dili mapasibo ang mga kausaban og dili nimo mausab ang tigkarga sa kausaban o ang bersiyon sa Minecraft. Kanunay nga mabugto kining pananglitan og putos sa kausabon kun tangtangon ang katay."
"message": "Nakagapos kining pananglitan sa usa ka putos sa kausaban, pasabot ani nga dili mapasibo ang mga kausaban ug dili nimo mausab ang tigkarga sa kausaban ug ang hubad sa Minecraft. Kanunay nga mabugto kining pananglitan ug putos sa kausaban kon bugtohon."
},
"instance.settings.tabs.installation.unlink.title": {
"message": "Bugtoi sa putos sa kausaban"
},
"instance.settings.tabs.java": {
"message": "Java ug memorya"
},
"instance.settings.tabs.java.environment-variables": {
"message": "Mga lantugi sa kalikopan"
},
"instance.settings.tabs.java.hooks": {
"message": "Mga kaw-it"
},
"instance.settings.tabs.java.java-arguments": {
"message": "Mga lantugi sa java"
},
"instance.settings.tabs.java.java-installation": {
"message": "Pagtaud sa Java"
},
"instance.settings.tabs.java.java-memory": {
"message": "Memoryang gigahin"
},
"instance.settings.tabs.window": {
"message": "Tamboanan"
},
"instance.settings.tabs.window.custom-window-settings": {
"message": "Mga himutangan sa pinatuyo nga tamboanan"
},
"instance.settings.tabs.window.fullscreen": {
"message": "Punong-tabil"
},
"instance.settings.tabs.window.fullscreen.description": {
"message": "Himuon nga mosugad ang dula sa punong-tabil paglansad (gamit ang options.txt)."
},
"instance.settings.tabs.window.height": {
"message": "Gitas-on"
},
"instance.settings.tabs.window.height.description": {
"message": "Ang gitas-on sa tamboanan sa dula kon malansad."
},
"instance.settings.tabs.window.height.enter": {
"message": "Ibutang ang gitas-on..."
},
"instance.settings.tabs.window.width": {
"message": "Gilapdon"
},
"instance.settings.tabs.window.width.description": {
"message": "Ang gilapdon sa tamboanan sa dula kon malansad."
},
"instance.settings.tabs.window.width.enter": {
"message": "Ibutang ang gilapdon..."
},
"instance.settings.title": {
"message": "Mga Himutangan"
},
"instance.worlds.a_minecraft_server": {
"message": "Usa ka Minecraft nga Magsisilbi"
},
"instance.worlds.cant_connect": {
"message": "Dili makakutay sa magsisilbi"
},
"instance.worlds.copy_address": {
"message": "Awata ang padad-anan"
"message": "Hulari ang padad-anan"
},
"instance.worlds.dont_show_on_home": {
"message": "Ayaw pakit-a sa Puloy-anan"
},
"instance.worlds.filter.available": {
"message": "Magamit"
},
"instance.worlds.game_already_open": {
"message": "Bukas na man ang pananglitan"
},
"instance.worlds.hardcore": {
"message": "Mahanasnon nga paagi"
},
"instance.worlds.incompatible_server": {
"message": "Dili mobagay sa magsisilbi"
},
"instance.worlds.no_contact": {
"message": "Dili makahinabi sa magsisilbi"
},
"instance.worlds.no_server_quick_play": {
"message": "Dumalang makalukso ka lamang sa mga magsisilbing naa sa Minecraft Alpha 1.0.5+"
},
"instance.worlds.no_singleplayer_quick_play": {
"message": "Dumalang makalukso ka lamang sa mga inusarang dulang kalibutang naa sa Minecraft 1.20+"
},
"instance.worlds.play_instance": {
"message": "Dulai ang pananglitan"
},
"instance.worlds.type.server": {
"message": "Magsisilbi"
@@ -406,5 +514,20 @@
},
"instance.worlds.view_instance": {
"message": "Tan-awa ang pananglitan"
},
"instance.worlds.world_in_use": {
"message": "Gigamit ang kalibotan"
},
"search.filter.locked.instance": {
"message": "Inako na sa pananglitan"
},
"search.filter.locked.instance-game-version.title": {
"message": "Inako na sa pananglitan ang hubad sa dula"
},
"search.filter.locked.instance-loader.title": {
"message": "Inako na sa pananglitan ang tigkarga sa laro"
},
"search.filter.locked.instance.sync": {
"message": "Pagdungan sa pananglitan"
}
}
+106 -37
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Autořizační servery Minecraftu aktuálně nejsou k dispozici. Zkontrolujte si své připojení k internetu a zkuste to znovu později."
},
"app.auth-servers.unreachable.header": {
"message": "Připojení k autorizačním serverům se nezdařilo"
},
"app.settings.developer-mode-enabled": {
"message": "Vývojářský režim povolen."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Instalace Javy"
},
"app.settings.tabs.language": {
"message": "Jazyk"
},
"app.settings.tabs.privacy": {
"message": "Soukromí"
},
@@ -24,19 +33,19 @@
"message": "Správa zdrojů"
},
"app.update-toast.body": {
"message": "Modrinth App v{version} je připravena k instalaci! Znovu načtěte aktualizaci nyní nebo automaticky po zavření aplikace Modrinth."
"message": "Aplikace Modrinth v{version} je připravena k instalaci! Naninstalujte aktualizaci nyní nebo automaticky po zavření aplikace Modrinth."
},
"app.update-toast.body.download-complete": {
"message": "Modrinth App v{version} byla dokončena ke stažení. Znovu načtěte aktualizaci nyní nebo automaticky po zavření aplikace Modrinth."
"message": "Stahování aplikace Modrinth v{version} bylo dokončeno. Naninstalujte aktualizaci nyní nebo automaticky po zavření aplikace Modrinth."
},
"app.update-toast.body.metered": {
"message": "Modrinth App v{version} je nyní k dispozici! Protože jste v síti s měřením, nebyla stažena automaticky."
"message": "Aplikace Modrinth v{version} je nyní k dispozici! Protože jste v měřené síti, nebyla stažena automaticky."
},
"app.update-toast.changelog": {
"message": "Seznam změn"
},
"app.update-toast.download": {
"message": "Stáhnout ({size})"
"message": "Stahování ({size})"
},
"app.update-toast.downloading": {
"message": "Stahování..."
@@ -45,10 +54,10 @@
"message": "Načíst znovu"
},
"app.update-toast.title": {
"message": "K dispozici je aktualizace"
"message": "Aktualizace je k dispozici"
},
"app.update-toast.title.download-complete": {
"message": "Stahování dokončeno"
"message": "Stahování bylo dokončeno"
},
"app.update.complete-toast.text": {
"message": "Kliknutím sem zobrazíte seznam změn."
@@ -63,7 +72,67 @@
"message": "Stahování aktualizace ({percent}%)"
},
"app.update.reload-to-update": {
"message": "Znovu načíst pro nainstalování aktualizace"
"message": "Restartovat aplikaci pro nainstalování aktualizace"
},
"friends.action.add-friend": {
"message": "Přidat přítele"
},
"friends.add-friend.submit": {
"message": "Poslat žádost o přátelství"
},
"friends.add-friend.title": {
"message": "Přidávání kamaráda"
},
"friends.add-friend.username.description": {
"message": "Může být jiné než jejich Minecraft jméno!"
},
"friends.add-friend.username.placeholder": {
"message": "Zadejte uživatelské jméno Modrinth..."
},
"friends.add-friend.username.title": {
"message": "Jak se váš kamarád jmenuje na Modrinthu?"
},
"friends.add-friends-to-share": {
"message": "<link>Přidejte si přátelé</link> a podívejte se, co hrají!"
},
"friends.friend.cancel-request": {
"message": "Zrušit žádost"
},
"friends.friend.remove-friend": {
"message": "Odebrat přítele"
},
"friends.friend.request-sent": {
"message": "Žádost o přátelství odeslána"
},
"friends.friend.view-profile": {
"message": "Zobrazit profil"
},
"friends.heading": {
"message": "Kamarádi"
},
"friends.heading.active": {
"message": "Aktivní"
},
"friends.heading.offline": {
"message": "Offline"
},
"friends.heading.online": {
"message": "Online"
},
"friends.heading.pending": {
"message": "Čeká na vyřízení"
},
"friends.no-friends-match": {
"message": "Žádní přátelé neodpovídají '{query}''"
},
"friends.search-friends-placeholder": {
"message": "Hledat přátele..."
},
"friends.section.heading": {
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Přihlašte se ke svému Modrinth účtu</link>, abyste jsi přidali přátele a uviděli co hrají!"
},
"instance.add-server.add-and-play": {
"message": "Přidat a hrát"
@@ -78,7 +147,7 @@
"message": "Zapnuto"
},
"instance.add-server.resource-pack.prompt": {
"message": "Na dotaz"
"message": "Ptát se"
},
"instance.add-server.title": {
"message": "Přidat server"
@@ -87,7 +156,7 @@
"message": "Upravit server"
},
"instance.edit-world.hide-from-home": {
"message": "Schovat z domovské stránky"
"message": "Skrýt z domovské obrazovky"
},
"instance.edit-world.name": {
"message": "Název"
@@ -96,16 +165,16 @@
"message": "Minecraft svět"
},
"instance.edit-world.reset-icon": {
"message": "Reset ikony"
"message": "Resetovat ikonu"
},
"instance.edit-world.title": {
"message": "Upravit svět"
},
"instance.filter.disabled": {
"message": "Vypnout projekty"
"message": "Vypnuté projekty"
},
"instance.filter.updates-available": {
"message": "Aktualizace jsou dostupné"
"message": "K dispozice jsou aktualizace"
},
"instance.server-modal.address": {
"message": "Adresa"
@@ -117,19 +186,19 @@
"message": "Minecraft Server"
},
"instance.server-modal.resource-pack": {
"message": "Balíček textur"
"message": "Balíčky textur"
},
"instance.settings.tabs.general": {
"message": "Obecné"
},
"instance.settings.tabs.general.delete": {
"message": "Smazat instanci"
"message": "Odstranit instalaci"
},
"instance.settings.tabs.general.delete.button": {
"message": "Smazat instanci"
"message": "Odstranit instalaci"
},
"instance.settings.tabs.general.delete.description": {
"message": "Trvale smaže instanci z vašeho zařízení, včetně vašich světů, konfigurací a veškerého nainstalovaného obsahu. Buďte opatrní, protože jakmile instanci smažete, ne možné ji obnovit."
"message": "Trvale smaže instalaci z vašeho zařízení, včetně vašich světů, konfigurací a veškerého nainstalovaného obsahu. Buďte opatrní, protože jakmile instalaci smažete, nebude možné ji obnovit."
},
"instance.settings.tabs.general.deleting.button": {
"message": "Mazání..."
@@ -141,34 +210,34 @@
"message": "Nelze duplikovat při instalaci."
},
"instance.settings.tabs.general.duplicate-instance": {
"message": "Duplikovat instanci"
"message": "Duplikovat instalaci"
},
"instance.settings.tabs.general.duplicate-instance.description": {
"message": "Vytvoří kopii této instance, včetně světů, konfigurací, modů atd."
"message": "Vytvoří kopii této instalace, včetně světů, konfigurací, modů atd."
},
"instance.settings.tabs.general.edit-icon": {
"message": "Upravit ikonu"
},
"instance.settings.tabs.general.edit-icon.remove": {
"message": "Icona odstranit"
"message": "Odstranit ikonu"
},
"instance.settings.tabs.general.edit-icon.replace": {
"message": "Ikona replikace"
"message": "Změnit ikonu"
},
"instance.settings.tabs.general.edit-icon.select": {
"message": "Výber ikona"
"message": "Vybrat ikonu"
},
"instance.settings.tabs.general.library-groups": {
"message": "Skupina knihoven"
},
"instance.settings.tabs.general.library-groups.create": {
"message": "Vytvoří novou skupinu"
"message": "Vytvořit novou skupinu"
},
"instance.settings.tabs.general.library-groups.description": {
"message": "Skupiny knihoven vám umožňují uspořádat instance do různých sekcí v knihovně."
"message": "Skupiny knihoven vám umožňují uspořádat instalace do různých sekcí."
},
"instance.settings.tabs.general.library-groups.enter-name": {
"message": "Zadej název skupiny"
"message": "Zadejte název skupiny"
},
"instance.settings.tabs.general.name": {
"message": "Název"
@@ -195,7 +264,7 @@
"message": "Před spuštěním"
},
"instance.settings.tabs.hooks.pre-launch.description": {
"message": "Spouštějí se před spuštěním instance."
"message": "Spouštějí se před spuštěním instalace."
},
"instance.settings.tabs.hooks.pre-launch.enter": {
"message": "Zadejte příkaz k provedení před spuštěním..."
@@ -216,28 +285,28 @@
"message": "Instalace"
},
"instance.settings.tabs.installation.change-version.already-installed.modded": {
"message": "{platform} {version} pro Minecraft {game_version} již nainstalována"
"message": "{platform} {version} pro Minecraft {game_version} již je nainstalována"
},
"instance.settings.tabs.installation.change-version.already-installed.vanilla": {
"message": "Vanilla {game_version} již nainstalována"
"message": "Vanilla {game_version} již je nainstalována"
},
"instance.settings.tabs.installation.change-version.button": {
"message": "Změnit instalaci"
"message": "Změnit verzi"
},
"instance.settings.tabs.installation.change-version.button.install": {
"message": "Instalovat"
},
"instance.settings.tabs.installation.change-version.button.installing": {
"message": "Instalace"
"message": "Instalování"
},
"instance.settings.tabs.installation.change-version.cannot-while-fetching": {
"message": "Načítání verzí modpacku"
},
"instance.settings.tabs.installation.change-version.in-progress": {
"message": "Instalace nových verzí"
"message": "Instalace nové verze"
},
"instance.settings.tabs.installation.currently-installed": {
"message": "Aktuální instalace"
"message": "Aktuálně nainstalováno"
},
"instance.settings.tabs.installation.debug-information": {
"message": "Debugové informace:"
@@ -252,7 +321,7 @@
"message": "Instalovat"
},
"instance.settings.tabs.installation.install.in-progress": {
"message": "Probíhající instalace"
"message": "Probíhá instalace"
},
"instance.settings.tabs.installation.loader-version": {
"message": "{loader} verze"
@@ -261,13 +330,13 @@
"message": "Minecraft {version}"
},
"instance.settings.tabs.installation.no-connection": {
"message": "Nelze načíst podrobnosti o modpacku. Zkontrolujte připojení k internetu."
"message": "Nelze načíst podrobnosti o modpacku. Prosím, zkontrolujte své připojení k internetu."
},
"instance.settings.tabs.installation.no-loader-versions": {
"message": "{loader} není dostupný pro Minecraft {version}. Zkuste jiný mod loader."
},
"instance.settings.tabs.installation.no-modpack-found": {
"message": "Tato instalace je připojená k modpacku, ale modpack nebyl najit na Modrinthu."
"message": "Tato instalace je připojená k modpacku, který ake nebyl najit na Modrinthu."
},
"instance.settings.tabs.installation.platform": {
"message": "Platforma"
@@ -279,7 +348,7 @@
"message": "Přeinstalovávání modpacku"
},
"instance.settings.tabs.installation.reinstall.confirm.description": {
"message": "Přeinstalace resetuje veškerý nainstalovaný nebo upravený obsah na to, co poskytuje modpack, a odstraní všechny mody nebo obsah, které jste přidali do původní instalaci. To může opravit neočekávané chyby, ale pokud vaše světy závisejí na nově instalovaném obsahu, možná budou poškozeny."
"message": "Přeinstalace resetuje veškerý nainstalovaný nebo upravený obsah kromě toho, co poskytuje modpack, a odstraní všechny módy nebo obsah, které jste přidali do původní instalace. To může opravit neočekávané chyby, ale pokud vaše světy závisejí na doinstalovaném obsahu, možná budou poškozeny."
},
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "Opravdu si přejete přeinstalovat tuto instalaci?"
@@ -312,7 +381,7 @@
"message": "Ukázat všechny verze"
},
"instance.settings.tabs.installation.tooltip.action.change-version": {
"message": "Změnit verzi"
"message": "změnit verzi"
},
"instance.settings.tabs.installation.tooltip.action.install": {
"message": "Instalovat"
@@ -432,7 +501,7 @@
"message": "Můžeš rovnou skočit na server pouze v Minecraftu Alpha 1.0.5+"
},
"instance.worlds.no_singleplayer_quick_play": {
"message": "Můžeš rovnou skočit do světa jednoho hráče pouze v Minecraftu 1.20+"
"message": "Můžeš se rovnou připojit do světa jednoho hráče pouze v Minecraftu 1.20+"
},
"instance.worlds.play_instance": {
"message": "Hrát instanci"
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Minecraft autentificeringsservere kan måske være nede lige nu. Tjek din internet forbindelse og prøv igen senere."
},
"app.auth-servers.unreachable.header": {
"message": "Kan ikke nå autentificeringsservere"
},
"app.settings.developer-mode-enabled": {
"message": "Udvikler-tilstand aktiveret."
},
@@ -32,6 +38,102 @@
"app.update-toast.body.metered": {
"message": "Modrinth App v{version} er nu tilgængelig! Siden du er på et begrænset netværk, vi downloadede den ikke automatisk."
},
"app.update-toast.changelog": {
"message": "Ændringslog"
},
"app.update-toast.download": {
"message": "Download ({size})"
},
"app.update-toast.downloading": {
"message": "Downloader..."
},
"app.update-toast.reload": {
"message": "Geninlæs"
},
"app.update-toast.title": {
"message": "Opdatering tilgængelig"
},
"app.update-toast.title.download-complete": {
"message": "Download færdiggjort"
},
"app.update.complete-toast.text": {
"message": "Klik her for at vise ændringslog."
},
"app.update.complete-toast.title": {
"message": "Version {version} var installeret med succes!"
},
"app.update.download-update": {
"message": "Download opdatering"
},
"app.update.downloading-update": {
"message": "Downloader opdatering ({percent}%)"
},
"app.update.reload-to-update": {
"message": "Genindlæs for at installere opdatering"
},
"friends.action.add-friend": {
"message": "Tilføj en ven"
},
"friends.action.view-friend-requests": {
"message": "{count} venne{count, plural, one {anmodning} other {anmodninger}}"
},
"friends.add-friend.submit": {
"message": "Send en venneanmodning"
},
"friends.add-friend.title": {
"message": "Tilføjer en ven"
},
"friends.add-friend.username.description": {
"message": "Det er muligvis anderledes end deres Minecraft brugernavn!"
},
"friends.add-friend.username.placeholder": {
"message": "Indskriv Modrinth brugernavn..."
},
"friends.add-friend.username.title": {
"message": "Hvad er din vens Modrinth brugernavn?"
},
"friends.add-friends-to-share": {
"message": "<link>Tilføj venner</link> for at se hvad de spiller!"
},
"friends.friend.cancel-request": {
"message": "Annuller anmodning"
},
"friends.friend.remove-friend": {
"message": "Fjern ven"
},
"friends.friend.request-sent": {
"message": "Venneanmodning sendt"
},
"friends.friend.view-profile": {
"message": "Vis profil"
},
"friends.heading": {
"message": "Venner"
},
"friends.heading.active": {
"message": "Aktiv"
},
"friends.heading.offline": {
"message": "Offline"
},
"friends.heading.online": {
"message": "Online"
},
"friends.heading.pending": {
"message": "Afventer"
},
"friends.no-friends-match": {
"message": "Ingen venner som matcher \"{query}\""
},
"friends.search-friends-placeholder": {
"message": "Søg venner..."
},
"friends.section.heading": {
"message": "{title} - {count}"
},
"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.add-server.add-and-play": {
"message": "Tilføj og spil"
},
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Die Authentifizierungsserver von Minecraft sind eventuell momentan nicht erreichbar. Überprüfe deine Internetverbindung und versuche es später erneut."
},
"app.auth-servers.unreachable.header": {
"message": "Authentifizierungsserver sind nicht erreichbar"
},
"app.settings.developer-mode-enabled": {
"message": "Entwicklermodus aktiviert."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Java Installationen"
},
"app.settings.tabs.language": {
"message": "Sprache"
},
"app.settings.tabs.privacy": {
"message": "Datenschutz"
},
+51 -36
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Die Authentifizierungsserver von Minecraft sind eventuell momentan nicht erreichbar. Überprüfe deine Internetverbindung und versuche es später erneut."
},
"app.auth-servers.unreachable.header": {
"message": "Authentifizierungsserver sind nicht erreichbar"
},
"app.settings.developer-mode-enabled": {
"message": "Entwicklermodus aktiviert."
},
@@ -15,7 +21,10 @@
"message": "Funktionsflaggen"
},
"app.settings.tabs.java-installations": {
"message": "Java Installationen"
"message": "Java-Installationen"
},
"app.settings.tabs.language": {
"message": "Sprache"
},
"app.settings.tabs.privacy": {
"message": "Datenschutz"
@@ -24,13 +33,13 @@
"message": "Ressourcenmanagement"
},
"app.update-toast.body": {
"message": "Modrinth App v{version} ist bereit zum Installieren! Lade neu um es jetzt zu updaten, oder automatisch wenn du die Modrinth App schließt."
"message": "Modrinth App v{version} ist bereit zur Installation! Jetzt neu laden, um zu aktualisieren, oder automatisch beim Schließen der Modrinth App."
},
"app.update-toast.body.download-complete": {
"message": "Modrinth App v{version} ist heruntergeladen. Lade neu um es jetzt zu updaten, oder wenn du die Modrinth App schließt."
"message": "Modrinth App v{version} ist bereit zur Installation! Jetzt neu laden, um zu aktualisieren, oder automatisch beim Schließen der Modrinth App."
},
"app.update-toast.body.metered": {
"message": "Die Modrinth App v{version} ist jetzt verfügbar! Da Sie sich in einem getakteten Netzwerk befinden, haben wir es nicht automatisch heruntergeladen."
"message": "Modrinth App v{version} ist jetzt verfügbar! Da du ein getaktetes Netzwerk nutzt, haben wir den Download nicht automatisch gestartet."
},
"app.update-toast.changelog": {
"message": "Änderungsverlauf"
@@ -51,16 +60,16 @@
"message": "Download abgeschlossen"
},
"app.update.complete-toast.text": {
"message": "Drücke hier, um den Änderungsverlauf zu sehen."
"message": "Hier klicken, um das Änderungsprotokoll anzuzeigen."
},
"app.update.complete-toast.title": {
"message": "Version {version} wurde erfolgreich installiert!"
},
"app.update.download-update": {
"message": "Lade Update herunter"
"message": "Update herunterladen"
},
"app.update.downloading-update": {
"message": "Lade Update Herunter ({percent}%)"
"message": "Update wird heruntergeladen ({percent}%)"
},
"app.update.reload-to-update": {
"message": "Neu laden um Update zu installieren"
@@ -72,19 +81,22 @@
"message": "{count} {count, plural, one {Freundesanfrage} other {Freundesanfragen}}"
},
"friends.add-friend.submit": {
"message": "Sende Freundesanfrage"
"message": "Freundschaftsanfrage senden"
},
"friends.add-friend.title": {
"message": "Einen Freund hinzufügen"
},
"friends.add-friend.username.description": {
"message": "Es kann vom Minecraft Nutzernamen abweichen!"
"message": "Er kann vom Minecraft-Nutzernamen abweichen!"
},
"friends.add-friend.username.placeholder": {
"message": "Gebe den Modrinth Nutzername ein..."
"message": "Modrinth-Benutzernamen eingeben..."
},
"friends.add-friend.username.title": {
"message": "Was ist der Modrinth Nutzername deines Freundes?"
"message": "Wie lautet der Modrinth-Benutzername deines Freundes?"
},
"friends.add-friends-to-share": {
"message": "<link>Freunde hinzufügen</link>, um zu sehen, was sie spielen!"
},
"friends.friend.cancel-request": {
"message": "Anfrage abbrechen"
@@ -117,11 +129,14 @@
"message": "Keine Freunde die \"{query}\" entsprechen"
},
"friends.search-friends-placeholder": {
"message": "Suche nach Freunden..."
"message": "Freunde durchsuchen..."
},
"friends.section.heading": {
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Melde dich bei einem Modrinth-Konto an</link>, um Freunde hinzuzufügen und zu sehen, was sie gerade spielen!"
},
"instance.add-server.add-and-play": {
"message": "Hinzufügen und spielen"
},
@@ -144,13 +159,13 @@
"message": "Server bearbeiten"
},
"instance.edit-world.hide-from-home": {
"message": "Von Startseite verbergen"
"message": "Von der Startseite verbergen"
},
"instance.edit-world.name": {
"message": "Name"
},
"instance.edit-world.placeholder-name": {
"message": "Minecraft Welt"
"message": "Minecraft-Welt"
},
"instance.edit-world.reset-icon": {
"message": "Icon zurücksetzen"
@@ -171,7 +186,7 @@
"message": "Name"
},
"instance.server-modal.placeholder-name": {
"message": "Minecraft Server"
"message": "Minecraft-Server"
},
"instance.server-modal.resource-pack": {
"message": "Ressourcenpaket"
@@ -192,7 +207,7 @@
"message": "Wird gelöscht..."
},
"instance.settings.tabs.general.duplicate-button": {
"message": "Duplizieren"
"message": "Kopieren"
},
"instance.settings.tabs.general.duplicate-button.tooltip.installing": {
"message": "Kann während der Installation nicht dupliziert werden."
@@ -201,7 +216,7 @@
"message": "Instanz duplizieren"
},
"instance.settings.tabs.general.duplicate-instance.description": {
"message": "Erstellt eine Kopie dieser Instanz, inklusive aller Welten, Einstellungen, Modifikationen, usw."
"message": "Erstellt eine Kopie dieser Instanz, inklusive aller Welten, Einstellungen, Mods, usw."
},
"instance.settings.tabs.general.edit-icon": {
"message": "Icon bearbeiten"
@@ -222,7 +237,7 @@
"message": "Neue Gruppe erstellen"
},
"instance.settings.tabs.general.library-groups.description": {
"message": "Bibliotheksgruppen ermöglichen es dir, deine Instanzen in verschiedene Abteile deiner Bibliothek einzuteilen."
"message": "Bibliotheksgruppen ermöglichen es dir, deine Instanzen in verschiedene Abschnitte deiner Bibliothek zu organisieren."
},
"instance.settings.tabs.general.library-groups.enter-name": {
"message": "Gruppenname eingeben"
@@ -231,34 +246,34 @@
"message": "Name"
},
"instance.settings.tabs.hooks": {
"message": "Start Hooks"
"message": "Startargumente"
},
"instance.settings.tabs.hooks.custom-hooks": {
"message": "Benutzerdefinierte Start Hooks"
"message": "Benutzerdefinierte Startargumente"
},
"instance.settings.tabs.hooks.description": {
"message": "Hooks ermöglichen es fortgeschrittenen Benutzern, bestimmte Systembefehle vor und nach dem Spielstart auszuführen."
},
"instance.settings.tabs.hooks.post-exit": {
"message": "Nach dem Schließen des Spiels"
"message": "Nach dem Beenden"
},
"instance.settings.tabs.hooks.post-exit.description": {
"message": "Wird ausgeführt nach dem Beenden des Spiels."
"message": "Wird nach dem Beenden des Spiels ausgeführt."
},
"instance.settings.tabs.hooks.post-exit.enter": {
"message": "Nach Spielbeendigung auszuführender Befehl eingeben..."
},
"instance.settings.tabs.hooks.pre-launch": {
"message": "Vor dem Starten des Spiels"
"message": "Vor dem Start"
},
"instance.settings.tabs.hooks.pre-launch.description": {
"message": "Wird vor dem Starten des Spiels ausgeführt."
"message": "Wird vor dem Starten der Instanz ausgeführt."
},
"instance.settings.tabs.hooks.pre-launch.enter": {
"message": "Vor Spielstart auszuführender Befehl eingeben..."
},
"instance.settings.tabs.hooks.title": {
"message": "Start Hooks"
"message": "Start-Hooks"
},
"instance.settings.tabs.hooks.wrapper": {
"message": "Wrapper"
@@ -309,7 +324,7 @@
"message": "Installieren"
},
"instance.settings.tabs.installation.install.in-progress": {
"message": "Wird installiert"
"message": "Installation im Gange"
},
"instance.settings.tabs.installation.loader-version": {
"message": "{loader} Version"
@@ -336,13 +351,13 @@
"message": "Modpack wird neu installiert"
},
"instance.settings.tabs.installation.reinstall.confirm.description": {
"message": "Durch die Neuinstallation werden alle installierten oder geänderten Inhalte auf die vom Modpack bereitgestellten Inhalte zurückgesetzt, wobei alle Mods oder Inhalte entfernt werden, die zusätzlich zur ursprünglichen Installation hinzugefügt wurden. Dies kann unerwartetes Verhalten beheben, wenn Änderungen an der Instanz vorgenommen wurden. Wenn Ihre Welten jedoch von zusätzlich installierten Inhalten abhängig sind, kann dies zu Fehlern in bestehenden Welten führen."
"message": "Eine Neuinstallation setzt alle installierten oder geänderten Inhalte auf den Zustand zurück, der vom Modpack bereitgestellt wird, und entfernt alle Mods oder Inhalte, die du zusätzlich zur ursprünglichen Installation hinzugefügt hast.\nDies kann unerwartetes Verhalten beheben, falls Änderungen an der Instanz vorgenommen wurden. Wenn deine Welten jedoch von zusätzlich installierten Inhalten abhängen, kann dies bestehende Welten beschädigen."
},
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "Bist du dir sicher, dass du diese Instanz neu installieren willst?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "Setzt den Inhalt der Instanz auf seinen ursprünglichen Zustand zurück und entfernt alle Mods oder Inhalte, die zusätzlich zum ursprünglichen Modpack hinzugefügt wurden."
"message": "Setzt den Inhalt der Instanz auf den ursprünglichen Zustand zurück und entfernt alle Mods oder Inhalte, die du zusätzlich zum ursprünglichen Modpack hinzugefügt hast."
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "Modpack neu installieren"
@@ -363,7 +378,7 @@
"message": "Reparatur im Gange"
},
"instance.settings.tabs.installation.reset-selections": {
"message": "Auf aktuellen Wert zurücksetzen"
"message": "Auf aktuellen Stand zurücksetzen"
},
"instance.settings.tabs.installation.show-all-versions": {
"message": "Alle Versionen anzeigen"
@@ -396,7 +411,7 @@
"message": "Verknüpfung der Instanz trennen"
},
"instance.settings.tabs.installation.unlink.confirm.description": {
"message": "Wenn du fortfährst, kann die Instanz nicht erneut verknüpft werden, ohne eine völlig neue Instanz zu erstellen. Du erhältst keine Modpack-Updates mehr und es wird zu einer normalen Instanz."
"message": "Wenn du fortfährst, kannst du sie nicht erneut verknüpfen, ohne eine völlig neue Instanz zu erstellen. Du wirst keine Modpack-Updates mehr erhalten, und sie wird zu einer normalen Instanz."
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "Möchtest du die Verknüpfungen dieser Instanz wirklich trennen?"
@@ -426,10 +441,10 @@
"message": "Zugewiesener Arbeitsspeicher"
},
"instance.settings.tabs.window": {
"message": "Spielfenster"
"message": "Fenster"
},
"instance.settings.tabs.window.custom-window-settings": {
"message": "Benutzerdefinierte Spielfenstereinstellungen"
"message": "Benutzerdefinierte Fenstereinstellungen"
},
"instance.settings.tabs.window.fullscreen": {
"message": "Vollbild"
@@ -501,19 +516,19 @@
"message": "Einzelspieler"
},
"instance.worlds.view_instance": {
"message": "Instanzen anzeigen"
"message": "Instanz anzeigen"
},
"instance.worlds.world_in_use": {
"message": "Welt ist aktuell in Benutzung"
"message": "Welt wird aktuell benutzt"
},
"search.filter.locked.instance": {
"message": "Von der Instanz bereitgestellt"
"message": "Von der Instanz vorgegeben"
},
"search.filter.locked.instance-game-version.title": {
"message": "Spielversion ist von der Instanz vorgegeben"
},
"search.filter.locked.instance-loader.title": {
"message": "Der Loader wird von der Instanz bereitgestellt"
"message": "Der Loader ist von der Instanz vorgegeben"
},
"search.filter.locked.instance.sync": {
"message": "Mit Instanz synchronisieren"
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Minecraft authentication servers may be down right now. Check your internet connection and try again later."
},
"app.auth-servers.unreachable.header": {
"message": "Cannot reach authentication servers"
},
"app.settings.developer-mode-enabled": {
"message": "Developer mode enabled."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Java installations"
},
"app.settings.tabs.language": {
"message": "Language"
},
"app.settings.tabs.privacy": {
"message": "Privacy"
},
+53 -38
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Los servidores de autenticación de Minecraft pueden no estar funcionando en este momento. Verifica tu conexión a internet e inténtalo de nuevo más tarde."
},
"app.auth-servers.unreachable.header": {
"message": "No se puede acceder a los servidores de autenticación"
},
"app.settings.developer-mode-enabled": {
"message": "Modo desarrollador activado."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Instalaciones de Java"
},
"app.settings.tabs.language": {
"message": "Idioma"
},
"app.settings.tabs.privacy": {
"message": "Privacidad"
},
@@ -24,13 +33,13 @@
"message": "Gestión de recursos"
},
"app.update-toast.body": {
"message": La aplicación Modrinth v{version} está lista para instalarse! Actualiza ahora o automáticamente al cerrar la aplicación Modrinth."
"message": "¡Modrinth App v{version} lista para instalar! Actualiza ahora o automáticamente al cerrar la aplicación."
},
"app.update-toast.body.download-complete": {
"message": "La descarga de la aplicación Modrinth v{version} ha finalizado. Actualice ahora o automáticamente al cerrar la aplicación Modrinth."
"message": "La descarga de la Modrinth App v{version} ha finalizado. Actualiza ahora o automáticamente al cerrar la aplicación Modrinth."
},
"app.update-toast.body.metered": {
"message": La aplicación Modrinth v{version} ya está disponible! Como estás conectado a una red con límite de datos, no la hemos descargado automáticamente."
"message": "¡Modrinth App v{version} ya está disponible! Como estás en una red con límite de datos, no se descargó automáticamente."
},
"app.update-toast.changelog": {
"message": "Registro de cambios"
@@ -51,7 +60,7 @@
"message": "Descarga completada"
},
"app.update.complete-toast.text": {
"message": "Haga clic aquí para ver el registro de cambios."
"message": "Haz clic aquí para ver el registro de cambios."
},
"app.update.complete-toast.title": {
"message": "¡La versión {version} se ha instalado correctamente!"
@@ -66,34 +75,37 @@
"message": "Recarga para instalar la actualización"
},
"friends.action.add-friend": {
"message": "Agrega a un amigo"
"message": "Añadir un amigo"
},
"friends.action.view-friend-requests": {
"message": "{count} {count, plural, one {petición} other {peticiones}} de amistad"
"message": "{count} {count, plural, one {solicitud} other {solicitudes}} de amistad"
},
"friends.add-friend.submit": {
"message": "Envía una petición de amistad"
"message": "Enviar solicitud de amistad"
},
"friends.add-friend.title": {
"message": "Agrega a un amigo"
"message": "Añadiendo un amigo"
},
"friends.add-friend.username.description": {
"message": "¡Puede ser diferente de su apodo en Minecraft!"
"message": "¡Podría ser distinto a su nombre de usuario de Minecraft!"
},
"friends.add-friend.username.placeholder": {
"message": "Escribe su apodo en Modrinth..."
"message": "Ingresa tu nombre de usuario de Modrinth..."
},
"friends.add-friend.username.title": {
"message": "¿Cuál es el apodo de tu amigo en Modrinth?"
"message": "¿Cuál es el nombre de usuario de Modrinth de tu amigo?"
},
"friends.add-friends-to-share": {
"message": "<link>¡Añade amigos</link> para ver qué están jugando!"
},
"friends.friend.cancel-request": {
"message": "Cancelar petición"
"message": "Cancelar solicitud"
},
"friends.friend.remove-friend": {
"message": "Eliminar amigo"
},
"friends.friend.request-sent": {
"message": "Petición de amistad enviada"
"message": "Solicitud de amistad enviada"
},
"friends.friend.view-profile": {
"message": "Ver perfil"
@@ -111,16 +123,19 @@
"message": "Conectados"
},
"friends.heading.pending": {
"message": "Pendientes"
"message": "Pendiente"
},
"friends.no-friends-match": {
"message": "Ningún apodo concuerda con ''{query}''"
"message": "Ningún amigo coincide con \"{query}\""
},
"friends.search-friends-placeholder": {
"message": "Buscando amigos..."
"message": "Buscar amigos..."
},
"friends.section.heading": {
"message": "{title}: {count}"
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>¡Inicia sesión en una cuenta de Modrinth</link> para añadir amigos y ver qué están jugando!"
},
"instance.add-server.add-and-play": {
"message": "Añadir y jugar"
@@ -153,7 +168,7 @@
"message": "Mundo de Minecraft"
},
"instance.edit-world.reset-icon": {
"message": "Resetear ícono"
"message": "Restablecer ícono"
},
"instance.edit-world.title": {
"message": "Editar mundo"
@@ -174,7 +189,7 @@
"message": "Servidor de Minecraft"
},
"instance.server-modal.resource-pack": {
"message": "Paquete de recursos"
"message": "Resource pack"
},
"instance.settings.tabs.general": {
"message": "General"
@@ -186,7 +201,7 @@
"message": "Eliminar instancia"
},
"instance.settings.tabs.general.delete.description": {
"message": "Elimina permanentemente una instancia de tu dispositivo, incluyendo tus mundos, configuraciones y todo el contenido instalado. Ten cuidado, ya que una vez que elimines una instancia no hay forma de recuperarla."
"message": "Elimina permanentemente una instancia de tu dispositivo, incluidos tus mundos, configuraciones y todo el contenido instalado. Ten cuidado, una vez eliminada, no hay forma de recuperarla."
},
"instance.settings.tabs.general.deleting.button": {
"message": "Eliminando..."
@@ -207,7 +222,7 @@
"message": "Editar ícono"
},
"instance.settings.tabs.general.edit-icon.remove": {
"message": "Remover ícono"
"message": "Eliminar ícono"
},
"instance.settings.tabs.general.edit-icon.replace": {
"message": "Reemplazar ícono"
@@ -225,16 +240,16 @@
"message": "Los grupos de la librería te ayudan a organizar tus instancias en diferentes secciones en tu librería."
},
"instance.settings.tabs.general.library-groups.enter-name": {
"message": "Escribe el nombre del grupo"
"message": "Ingresa el nombre del grupo"
},
"instance.settings.tabs.general.name": {
"message": "Nombre"
},
"instance.settings.tabs.hooks": {
"message": "Lanzar hooks"
"message": "Hooks de inicio"
},
"instance.settings.tabs.hooks.custom-hooks": {
"message": "Hooks personalizados"
"message": "Hooks de inicio personalizados"
},
"instance.settings.tabs.hooks.description": {
"message": "Los hooks permiten que usuarios avanzados ejecuten comandos del sistema antes y despues de lanzar el juego."
@@ -243,7 +258,7 @@
"message": "Post-cierre"
},
"instance.settings.tabs.hooks.post-exit.description": {
"message": "Ejecutados luego de que el juego se cierra."
"message": "Ejecutados después de que el juego se cierre."
},
"instance.settings.tabs.hooks.post-exit.enter": {
"message": "Introduce el comando post-cierre..."
@@ -255,19 +270,19 @@
"message": "Ejecutados antes de que la instancia inicie."
},
"instance.settings.tabs.hooks.pre-launch.enter": {
"message": "Introducir comando pre-inicio..."
"message": "Introduce el comando pre-inicio..."
},
"instance.settings.tabs.hooks.title": {
"message": "Hooks de inicio de juego"
"message": "Hooks de inicio del juego"
},
"instance.settings.tabs.hooks.wrapper": {
"message": "Wrapper"
},
"instance.settings.tabs.hooks.wrapper.description": {
"message": "Comando de capa para lanzar Minecraft."
"message": "Comando Wrapper para iniciar Minecraft."
},
"instance.settings.tabs.hooks.wrapper.enter": {
"message": "Introduce el comando capa..."
"message": "Introduce el comando Wrapper..."
},
"instance.settings.tabs.installation": {
"message": "Instalación"
@@ -276,7 +291,7 @@
"message": "{platform} {version} ya está instalado para Minecraft {game_version}"
},
"instance.settings.tabs.installation.change-version.already-installed.vanilla": {
"message": "{game_version} vanilla ya está instalado"
"message": "Vanilla {game_version} ya está instalada"
},
"instance.settings.tabs.installation.change-version.button": {
"message": "Cambiar versión"
@@ -321,7 +336,7 @@
"message": "No se pueden obtener los detalles del modpack vinculado. Por favor, verifica tu conexión a internet."
},
"instance.settings.tabs.installation.no-loader-versions": {
"message": "{loader} no esta disponible para Minecraft {version}. Prueba con otro mod loader."
"message": "{loader} no está disponible para Minecraft {version}. Prueba con otro mod loader."
},
"instance.settings.tabs.installation.no-modpack-found": {
"message": "Esta instancia está vinculada a un modpack, pero no se pudo encontrar el modpack en Modrinth."
@@ -336,13 +351,13 @@
"message": "Reinstalando modpack"
},
"instance.settings.tabs.installation.reinstall.confirm.description": {
"message": "Reinstalar restablecerá todo el contenido instalado o modificado a lo que proporciona el modpack, eliminando cualquier mod o contenido que hayas agregado encima de la instalación original. Esto puede solucionar comportamientos inesperados si se han hecho cambios en la instancia, pero si tus mundos dependen de contenido adicional instalado, podría afectar los mundos existentes."
"message": "La reinstalación restablecerá todo el contenido instalado o modificado a lo que proporciona el modpack, eliminando cualquier mod o contenido que hayas agregado sobre la instalación original. Esto puede solucionar comportamientos inesperados si se han hecho cambios en la instancia, pero si tus mundos dependen de contenido adicional instalado, podría romper los mundos existentes."
},
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "¿Estás seguro de que quieres reinstalar esta instancia?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "Restablece el contenido de la instancia a su estado original, eliminando cualquier mod o contenido que hayas agregado encima del modpack original."
"message": "Restablece el contenido de la instancia a su estado original, eliminando cualquier mod o contenido que hayas agregado sobre el modpack original."
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "Reinstalar modpack"
@@ -354,7 +369,7 @@
"message": "Reparando"
},
"instance.settings.tabs.installation.repair.confirm.description": {
"message": "Reparar reinstala las dependencias de Minecraft y verifica si hay archivos dañados. Esto puede solucionar problemas si tu juego no se inicia por errores relacionados con el launcher, pero no resolverá problemas causados por mods instalados."
"message": "Reparar reinstala las dependencias de Minecraft y verifica la integridad de los archivos. Esto puede solucionar problemas si tu juego no se inicia por errores relacionados con el launcher, pero no resolverá problemas debidos a mods instalados."
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "¿Reparar instancia?"
@@ -396,13 +411,13 @@
"message": "Desvincular instancia"
},
"instance.settings.tabs.installation.unlink.confirm.description": {
"message": "Si continúas, no podrás volver a vincularla sin crear una instancia completamente nueva. Ya no recibirás actualizaciones del modpack y se convertirá en una instancia normal."
"message": "Si continúas, no podrás volver a vincularla sin crear una nueva instancia. Ya no recibirás actualizaciones del modpack y pasará a ser una instancia normal."
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "¿Estás seguro de que quieres desvincular esta instancia?"
},
"instance.settings.tabs.installation.unlink.description": {
"message": "Esta instancia está vinculada a un modpack, lo que significa que los mods no se pueden actualizar y no puedes cambiar el mod loader ni la versión de Minecraft. Desvincularla desconectará permanentemente esta instancia del modpack."
"message": "Esta instancia está vinculada a un modpack, lo que significa que los mods no pueden actualizarse y no puedes cambiar el mod loader ni la versión de Minecraft. Desvincularla la desconectará permanentemente del modpack."
},
"instance.settings.tabs.installation.unlink.title": {
"message": "Desvincular del modpack"
@@ -429,13 +444,13 @@
"message": "Ventana"
},
"instance.settings.tabs.window.custom-window-settings": {
"message": "Opciones personalizadas de ventana"
"message": "Configuración de ventana personalizada"
},
"instance.settings.tabs.window.fullscreen": {
"message": "Pantalla completa"
},
"instance.settings.tabs.window.fullscreen.description": {
"message": "Inicia el juego en pantalla completa al ejecutarlo (usando options.txt)."
"message": "Inicia el juego en pantalla completa al iniciarlo (usando options.txt)."
},
"instance.settings.tabs.window.height": {
"message": "Altura"
+13 -4
View File
@@ -17,6 +17,9 @@
"app.settings.tabs.java-installations": {
"message": "Instalaciones de Java"
},
"app.settings.tabs.language": {
"message": "Lenguaje"
},
"app.settings.tabs.privacy": {
"message": "Privacidad"
},
@@ -30,7 +33,7 @@
"message": "La descarga de la versión v{version} de Modrinth ha finalizado. Actualice ahora o automáticamente al cerrar la aplicación."
},
"app.update-toast.body.metered": {
"message": "¡La versión v{version} de Modrinth ya está disponible! Como estás conectado a una red con límite de datos, no la hemos descargado automáticamente."
"message": "¡La versión v{version} de Modrinth App ya está disponible! Como estás conectado a una red con límite de datos, no la hemos descargado automáticamente."
},
"app.update-toast.changelog": {
"message": "Registro de cambios"
@@ -86,6 +89,9 @@
"friends.add-friend.username.title": {
"message": "¿Cuál es el apodo de tu amigo en Modrinth?"
},
"friends.add-friends-to-share": {
"message": "<link>Añade amigos</link> para ver a qué están jugando!"
},
"friends.friend.cancel-request": {
"message": "Cancelar petición"
},
@@ -122,6 +128,9 @@
"friends.section.heading": {
"message": "{title}: {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Inicia sesión en una cuenta Modrinth</link> para añadir amigos y ver a qué están jugando!"
},
"instance.add-server.add-and-play": {
"message": "Añadir y jugar"
},
@@ -198,7 +207,7 @@
"message": "No puedes duplicar mientras se instala."
},
"instance.settings.tabs.general.duplicate-instance": {
"message": "Duplicar instancia."
"message": "Duplicar instancia"
},
"instance.settings.tabs.general.duplicate-instance.description": {
"message": "Crea una copia de esta instancia, incluyendo mundos, configuraciones, mods, etc."
@@ -264,7 +273,7 @@
"message": "Wrapper"
},
"instance.settings.tabs.hooks.wrapper.description": {
"message": ".."
"message": "comando Wrapper para lanzar Minecraft."
},
"instance.settings.tabs.hooks.wrapper.enter": {
"message": "Introducir comando para el wrapper..."
@@ -273,7 +282,7 @@
"message": "Instancia"
},
"instance.settings.tabs.installation.change-version.already-installed.modded": {
"message": "{platform} {version} para Minecraft {game_version} ya esta instalada"
"message": "{platform} {version} para Minecraft {game_version} ya está instalada"
},
"instance.settings.tabs.installation.change-version.already-installed.vanilla": {
"message": "La versión vanilla {game_version} ya está instalada"
@@ -1,4 +1,7 @@
{
"app.auth-servers.unreachable.body": {
"message": "Minecrafti autentimiserverid võivad praegu all olla. Kontrolli oma internetiühendust ja proovi hiljem uuesti."
},
"app.settings.developer-mode-enabled": {
"message": "Arendajarežiim sisse lülitatud."
},
@@ -20,6 +23,9 @@
"app.settings.tabs.resource-management": {
"message": "Ressursside haldus"
},
"app.update-toast.body": {
"message": "Modrinth App v{version} on valmis installimiseks! Uuendamiseks taaskäivitage kohe või automaatselt, kui sulgeted Modritnth App."
},
"instance.add-server.add-and-play": {
"message": "Lisa ja mängi"
},
+79 -1
View File
@@ -2,11 +2,14 @@
"app.settings.developer-mode-enabled": {
"message": "حالت برنامه‌نویس روشن شد."
},
"app.settings.downloading": {
"message": "درحال دانلود v{version}"
},
"app.settings.tabs.appearance": {
"message": "ظاهر"
},
"app.settings.tabs.default-instance-options": {
"message": "گزینه‌های پیش‌فرض اینستنس (نسخهٔ جدا)"
"message": "گزینه‌های پیش‌فرض اینستنس نسخهٔ جدا"
},
"app.settings.tabs.feature-flags": {
"message": "سوییچ قابلیت‌ها"
@@ -20,6 +23,81 @@
"app.settings.tabs.resource-management": {
"message": "مدیریت منابع"
},
"app.update-toast.changelog": {
"message": "تغییرات"
},
"app.update-toast.reload": {
"message": "بارگذاری دوباره"
},
"app.update-toast.title": {
"message": "بروزرسانی دردسترس"
},
"app.update-toast.title.download-complete": {
"message": "دانلود کامل شد"
},
"app.update.complete-toast.text": {
"message": "کلیک کنین تا تغییرات رو ببینید."
},
"app.update.download-update": {
"message": "دانلود بروزرسانی"
},
"app.update.downloading-update": {
"message": "درحال دانلود آپدیت ({percent}%)"
},
"friends.action.add-friend": {
"message": "افزودن یک دوست"
},
"friends.action.view-friend-requests": {
"message": "{count} دوست {count, plural, one {request} other {requests}}"
},
"friends.add-friend.submit": {
"message": "ارسال درخواست دوستی"
},
"friends.add-friend.title": {
"message": "افزودن دوست"
},
"friends.add-friend.username.description": {
"message": "این ممکنه با یوزرنیم ماینکرافتش متفاوت باشه!"
},
"friends.add-friend.username.placeholder": {
"message": "وارد کردن یوزرنیم مودرینث..."
},
"friends.add-friend.username.title": {
"message": "یوزرنیم مودرینث دوست شما چیست؟"
},
"friends.add-friends-to-share": {
"message": "<link>افزودن دوستان</link> تا ببینید دارن چی بازی میکنن!"
},
"friends.friend.cancel-request": {
"message": "لغو درخواست"
},
"friends.friend.remove-friend": {
"message": "حذف دوست"
},
"friends.friend.request-sent": {
"message": "درخواست دوستی ارسال شد"
},
"friends.friend.view-profile": {
"message": "مشاهده پروفایل"
},
"friends.heading": {
"message": "دوستان"
},
"friends.heading.active": {
"message": "فعال"
},
"friends.heading.offline": {
"message": "آفلاین"
},
"friends.heading.online": {
"message": "آنلاین"
},
"friends.search-friends-placeholder": {
"message": "جست‌وجو دوستان..."
},
"friends.section.heading": {
"message": "{title} - {count}"
},
"instance.add-server.add-and-play": {
"message": "اضافه کردن و پلی دادن"
},
+115 -1
View File
@@ -1,7 +1,16 @@
{
"app.auth-servers.unreachable.body": {
"message": "Minecraftin todennuspalvelimet eivät ehkä ole tällä hetkellä tavoitettavissa. Tarkista internetyhteytesi ja yritä myöhemmin uudelleen."
},
"app.auth-servers.unreachable.header": {
"message": "Todennuspalvelimiin ei saada yhteyttä"
},
"app.settings.developer-mode-enabled": {
"message": "Kehittäjätila käytössä."
},
"app.settings.downloading": {
"message": "Ladataan v{version}"
},
"app.settings.tabs.appearance": {
"message": "Ulkonäkö"
},
@@ -20,6 +29,111 @@
"app.settings.tabs.resource-management": {
"message": "Resurssien hallinta"
},
"app.update-toast.body": {
"message": "Modrinth-sovellus v{version} on valmis asennettavaksi! Lataa sovellus uudelleen päivittääksesi sen nyt tai automaattisesti, kun suljet Modrinth-sovelluksen."
},
"app.update-toast.body.download-complete": {
"message": "Modrinth-sovellus v{version} on ladattu. Lataa sovellus uudelleen päivittääksesi sen nyt tai automaattisesti, kun suljet Modrinth-sovelluksen."
},
"app.update-toast.body.metered": {
"message": "Modrinth-sovellus v{version} on nyt saatavilla! Koska käytät käyttömaksullista verkkoa, emme ladanneet sitä automaattisesti."
},
"app.update-toast.changelog": {
"message": "Muutosloki"
},
"app.update-toast.download": {
"message": "Lataa ({size})"
},
"app.update-toast.downloading": {
"message": "Ladataan..."
},
"app.update-toast.reload": {
"message": "Lataa uudelleen"
},
"app.update-toast.title": {
"message": "Päivitys saatavilla"
},
"app.update-toast.title.download-complete": {
"message": "Lataus valmis"
},
"app.update.complete-toast.text": {
"message": "Klikkaa tästä nähdäksesi muutoslokin."
},
"app.update.complete-toast.title": {
"message": "Versio {version} asennettiin onnistuneesti!"
},
"app.update.download-update": {
"message": "Lataa päivitys"
},
"app.update.downloading-update": {
"message": "Ladataan päivitystä ({percent}%)"
},
"app.update.reload-to-update": {
"message": "Lataa uudelleen asentaaksesi päivityksen"
},
"friends.action.add-friend": {
"message": "Lisää ystävä"
},
"friends.action.view-friend-requests": {
"message": "{count} ystävä{count, plural, one {pyyntö} other {pyyntöä}}"
},
"friends.add-friend.submit": {
"message": "Lähetä ystäväpyyntö"
},
"friends.add-friend.title": {
"message": "Lisätään ystävää"
},
"friends.add-friend.username.description": {
"message": "Se voi olla eri kuin heidän Minecraft-käyttäjänimensä!"
},
"friends.add-friend.username.placeholder": {
"message": "Syötä Modrinth-käyttäjätunnus..."
},
"friends.add-friend.username.title": {
"message": "Mikä on ystäväsi Modrinth-käyttäjänimi?"
},
"friends.add-friends-to-share": {
"message": "<link>Lisää kavereita</link> nähdäksesi mitä he pelaavat!"
},
"friends.friend.cancel-request": {
"message": "Peruuta pyyntö"
},
"friends.friend.remove-friend": {
"message": "Poista ystävä"
},
"friends.friend.request-sent": {
"message": "Ystäväpyyntö lähetetty"
},
"friends.friend.view-profile": {
"message": "Näytä profiili"
},
"friends.heading": {
"message": "Ystävät"
},
"friends.heading.active": {
"message": "Aktiiviset"
},
"friends.heading.offline": {
"message": "Offline-tilassa"
},
"friends.heading.online": {
"message": "Online-tilassa"
},
"friends.heading.pending": {
"message": "Odotetaan"
},
"friends.no-friends-match": {
"message": "Ei ystäviä, jotka vastaavat ''{query}''"
},
"friends.search-friends-placeholder": {
"message": "Hae ystäviä..."
},
"friends.section.heading": {
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Kirjaudu Modrinth-tilille</link> lisätäksesi ystäviä ja nähdäksesi mitä he pelaavat!"
},
"instance.add-server.add-and-play": {
"message": "Lisää ja pelaa"
},
@@ -30,7 +144,7 @@
"message": "Poistettu käytöstä"
},
"instance.add-server.resource-pack.enabled": {
"message": "Päällä"
"message": "Käytössä"
},
"instance.add-server.resource-pack.prompt": {
"message": "Kehote"
+142 -16
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Maaaring hindi maaabot ang mga authentication server ng Minecraft sa ngayon. Tingnan mo ang iyong internet connection at muling subukan mamaya."
},
"app.auth-servers.unreachable.header": {
"message": "Hindi maabot ang mga authentication server"
},
"app.settings.developer-mode-enabled": {
"message": "Nakabukas ang moda ng nagdidibelop."
},
@@ -12,22 +18,25 @@
"message": "Mga pagpipilian sa default na instansiya"
},
"app.settings.tabs.feature-flags": {
"message": "Mga feature flag"
"message": "Mga hudyat ng tampok"
},
"app.settings.tabs.java-installations": {
"message": "Mga instalasyon ng Java"
},
"app.settings.tabs.language": {
"message": "Wika"
},
"app.settings.tabs.privacy": {
"message": "Pribasiya"
},
"app.settings.tabs.resource-management": {
"message": "Pamamahala ng resource"
"message": "Pamamahala ng paglalaan"
},
"app.update-toast.body": {
"message": "Ang Modrinth App v{version} ay handa nang ma-install. Mag-reload upang ma-update ngayon, o awtomatiko pagsara ng Modrinth App."
"message": "Ang Modrinth App v{version} ay handa nang ma-install. Mag-reload upang ma-update ngayon, o awtomatiko sa pagsara ng Modrinth App."
},
"app.update-toast.body.download-complete": {
"message": "Tapos nang ma-download ang Modrinth App v{version}. Mag-reload upang ma-update ngayon, o awtomatiko pagsara ng Modrinth App."
"message": "Tapos nang ma-download ang Modrinth App v{version}. Mag-reload upang ma-update ngayon, o awtomatiko sa pagsara ng Modrinth App."
},
"app.update-toast.body.metered": {
"message": "Magagamit na ngayon ang Modrinth App v{version}! Hindi namin dinanload kaagad dahil naka-metro ang inyong network."
@@ -51,7 +60,7 @@
"message": "Nakumpleto ang pagdownload"
},
"app.update.complete-toast.text": {
"message": "Magpindot rito upang matingnan ang changelog."
"message": "Dito pumindot upang matingnan ang changelog."
},
"app.update.complete-toast.title": {
"message": "Tagumpay na na-install ang bersiyong {version}!"
@@ -125,6 +134,9 @@
"friends.section.heading": {
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Mag-sign in sa Modrinth account</link> upang maidagdag ang mga kaibigan at malaman ang kanilang nilalaro!"
},
"instance.add-server.add-and-play": {
"message": "Idagdag at laruin"
},
@@ -156,7 +168,7 @@
"message": "Minecraft na Mundo"
},
"instance.edit-world.reset-icon": {
"message": "Walain ang ikono"
"message": "I-reset ang ikono"
},
"instance.edit-world.title": {
"message": "Baguhin ang mundo"
@@ -183,13 +195,13 @@
"message": "General"
},
"instance.settings.tabs.general.delete": {
"message": "I-delete ang instansiya"
"message": "Tanggalin ang instansiya"
},
"instance.settings.tabs.general.delete.button": {
"message": "I-delete ang instansiya"
"message": "Tanggalin ang instansiya"
},
"instance.settings.tabs.general.delete.description": {
"message": "Permanenteng matatanggal ang instansiya sa iyong device, kasali na ang iyong mga mundo, konpigurasyon, at lahat ng nakainstall na kontento. Mag-ingat, kapag magtanggal ka ng instansiya ay hindi na ito mababawi."
"message": "Habambuhay na matatanggal ang instansiya sa iyong device, kasama ang iyong mga mundo, kompigurasyon, at lahat ng naka-install na kontento. Mag-ingat, kapag nagtanggal ka ng instansiya ay hindi na ito mababawi."
},
"instance.settings.tabs.general.deleting.button": {
"message": "Nagde-delete..."
@@ -204,7 +216,7 @@
"message": "I-duplicate ang instansiya"
},
"instance.settings.tabs.general.duplicate-instance.description": {
"message": "Gagawan ng kopya ng instansiyang ito, kasali na ang mga mundo, konpigurasyon, mods, at iba pa."
"message": "Lilikhaan ng kopya ang instansiyang ito, kasama ang mga mundo, kumpigurasyon, mod, at iba pa."
},
"instance.settings.tabs.general.edit-icon": {
"message": "Baguhin ang ikono"
@@ -222,7 +234,7 @@
"message": "Mga grupo ng librerya"
},
"instance.settings.tabs.general.library-groups.create": {
"message": "Gumawa ng bagong grupo"
"message": "Lumikha ng bagong grupo"
},
"instance.settings.tabs.general.library-groups.description": {
"message": "Binibigyan ng mga grupo ng librerya na iyong maayos ang iyong mga instansiya sa iba't-ibang pangkat in iyong librerya."
@@ -240,7 +252,7 @@
"message": "Mga custom na launch hook"
},
"instance.settings.tabs.hooks.description": {
"message": "Binibigyan-daan ng mga hook ang mga ekspertong user na makapagtakbo ng mga system command bago at pagkatapos ma-launch ang laro."
"message": "Binibigyan-daan ng mga hook ang mga ekspertong tagagamit na makapagtakbo ng mga system command bago at pagkatapos ma-launch ang laro."
},
"instance.settings.tabs.hooks.post-exit": {
"message": "Post-exist"
@@ -302,29 +314,53 @@
"instance.settings.tabs.installation.debug-information": {
"message": "Impormasyon sa pagdebug:"
},
"instance.settings.tabs.installation.fetching-modpack-details": {
"message": "Nagfe-fetch ng mga detalye ng modpack"
},
"instance.settings.tabs.installation.game-version": {
"message": "Bersiyon ng laro"
},
"instance.settings.tabs.installation.install": {
"message": "I-install"
},
"instance.settings.tabs.installation.install.in-progress": {
"message": "Nag-i-install ngayon"
},
"instance.settings.tabs.installation.loader-version": {
"message": "Bersiyon ng {loader}"
},
"instance.settings.tabs.installation.minecraft-version": {
"message": "Minecraft {version}"
},
"instance.settings.tabs.installation.no-connection": {
"message": "Hindi maka-fetch ng mga detalye ng linked modpack. Mangyaring tingnan ang iyong internet connection."
},
"instance.settings.tabs.installation.no-loader-versions": {
"message": "Hindi magagamit ang {loader} sa Minecraft {version}. Sumubok ng ibang mod loader."
},
"instance.settings.tabs.installation.no-modpack-found": {
"message": "Naka-link itong instansiya sa isang modpack, pero ang modpack na ito ay hindi makikita sa Modrinth."
},
"instance.settings.tabs.installation.platform": {
"message": "Plataporma"
},
"instance.settings.tabs.installation.reinstall.button": {
"message": "I-reinstall ang modpack"
},
"instance.settings.tabs.installation.reinstall.button.reinstalling": {
"message": "Ini-re-reinstall ang modpack"
},
"instance.settings.tabs.installation.reinstall.confirm.description": {
"message": "Ang pagrere-install ay maaaring mare-reset ang lahat ng na-install o binago na kontento sa kung anong ibibigay ng modpack, tatanggalin ang mga mods o kontentong idinagdag mo lalo na ang mga orihinal na modpack. Maaari nitong masiayos ang mga hindi inaasahang pag-uugali kung may pagbabagong naganap sa instansiya, ngunit kung dumedepende na ang iyong mundo sa karagdagang kontento, maaari nitong masira ang mga umiiral na mundo."
"message": "Ang pagrere-install ay maaaring ma-reset ang lahat ng na-install at binago na kontento sa kung anong hinahandog ng modpack, tatanggalin ang mga mods at kontentong idinagdag mo sa orihinal na modpack. Maaari nitong masiayos ang mga hindi inaasahang pag-uugali kung may pagbabagong naganap sa instansiya, ngunit kung dumedepende na ang iyong mundo sa karagdagang kontento, maaari nitong masira ang mga umiiral na mundo."
},
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "Sigurado ka bang gusto mong i-reinstall ang instansiyang ito?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "I-reset ang mga kontento ng instansiya sa orihinal niyang estado, tatanggalin ang mga mods o kontentong idinagdag mo lalo na ang mga orihinal na modpack."
"message": "Mare-reset ang mga kontento ng instansiya sa orihinal niyang estado, tatanggalin ang mga mods at kontentong idinagdag mo sa orihinal na modpack."
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "I-reinstall ang modpack"
},
"instance.settings.tabs.installation.repair.button": {
"message": "Ayusin"
@@ -333,11 +369,17 @@
"message": "Inaayos"
},
"instance.settings.tabs.installation.repair.confirm.description": {
"message": "Sa pagre-repair, mare-reinstall ang mga dependency ng Minecraft at maghahanap ng mga kurapsiyon. Maaaring maresolbe nito ang mga isyu kung hindi malu-launch ang laro dahil sa mga launcher-related error, ngunit hindi nito mareresolbe ang mga isyu o pag-crash na dulot nga mga na-install na mod."
"message": "Sa pagre-repair, mare-reinstall ang mga dependency ng Minecraft at maghahanap ng mga kurapsiyon. Maaaring maresolbe nito ang mga isyu kung hindi malu-launch ang laro dahil sa mga launcher-related error, ngunit hindi nito mareresolbe ang mga isyu at pag-crash na dulot ng mga na-install na mod."
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "Ayusin ang instansiya?"
},
"instance.settings.tabs.installation.repair.in-progress": {
"message": "Inaayos ngayon"
},
"instance.settings.tabs.installation.reset-selections": {
"message": "Sa kasalukuyan i-reset"
},
"instance.settings.tabs.installation.show-all-versions": {
"message": "Ipakita ang lahat ng bersiyon"
},
@@ -365,39 +407,108 @@
"instance.settings.tabs.installation.unknown-version": {
"message": "(hindi kilalang bersiyon)"
},
"instance.settings.tabs.installation.unlink.button": {
"message": "I-unlink sa instansiya"
},
"instance.settings.tabs.installation.unlink.confirm.description": {
"message": "Kapag ipagpatuloy mo, hindi mo na itong mai-link muli ng hindi gagawa ng bagong instansiya. Hindi ka makakatanggap ng mga update ng modpack at magiging normal na itong."
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "Sigurado ka bang gusto mong i-unlik ang instansiyang ito?"
},
"instance.settings.tabs.installation.unlink.description": {
"message": "Ang instansiyang ito ay naka-link sa isang modpack, ibig sabihin ang mga mod ay hindi mai-update at hindi mo mapapalitan ang mod loader o ang bersiyon ng Minecraft."
"message": "Ang instansiyang ito ay naka-link sa isang modpack, ibig sabihin ang mga mod ay hindi mai-update at hindi mo mapapalitan ang mod loader at ang bersiyon ng Minecraft. Permanenteng madi-diskonekta ang instansiyang ito sa modpack kung mag-unlink."
},
"instance.settings.tabs.installation.unlink.title": {
"message": "I-unlink sa modpack"
},
"instance.settings.tabs.java": {
"message": "Java at memorya"
},
"instance.settings.tabs.java.environment-variables": {
"message": "Environment variables"
},
"instance.settings.tabs.java.hooks": {
"message": "Mga hook"
},
"instance.settings.tabs.java.java-arguments": {
"message": "Mga java argument"
},
"instance.settings.tabs.java.java-installation": {
"message": "Instalasyon ng Java"
},
"instance.settings.tabs.java.java-memory": {
"message": "Memoryang inilaan"
},
"instance.settings.tabs.window": {
"message": "Window"
},
"instance.settings.tabs.window.custom-window-settings": {
"message": "Mga setting sa custom na window"
},
"instance.settings.tabs.window.fullscreen": {
"message": "Fullscreen"
},
"instance.settings.tabs.window.fullscreen.description": {
"message": "Gagawing magsisimulang naka-fullscreen ang laro pag-launch (gamit ang options.txt)."
},
"instance.settings.tabs.window.height": {
"message": "Taas"
},
"instance.settings.tabs.window.height.description": {
"message": "Ang taas ng game window kung na-launch."
},
"instance.settings.tabs.window.height.enter": {
"message": "Ilagay ang taas..."
},
"instance.settings.tabs.window.width": {
"message": "Lapad"
},
"instance.settings.tabs.window.width.description": {
"message": "Ang lapad ng game window kung na-launch."
},
"instance.settings.tabs.window.width.enter": {
"message": "Ilagay ang lapad..."
},
"instance.settings.title": {
"message": "Mga Setting"
},
"instance.worlds.a_minecraft_server": {
"message": "Isang Minecraft Server"
},
"instance.worlds.cant_connect": {
"message": "Hndi makakonekta sa server"
},
"instance.worlds.copy_address": {
"message": "Kopyahin ang adres"
},
"instance.worlds.dont_show_on_home": {
"message": "Huwag ipakita sa Home"
},
"instance.worlds.filter.available": {
"message": "Magagamit"
},
"instance.worlds.game_already_open": {
"message": "Bukas naman ang instansiya"
},
"instance.worlds.hardcore": {
"message": "Modong eksperto"
},
"instance.worlds.incompatible_server": {
"message": "Hindi magkatugma sa server"
},
"instance.worlds.no_contact": {
"message": "Hindi makontak ang server"
},
"instance.worlds.no_server_quick_play": {
"message": "Deretso kang makakalukso lamang sa mga server na nasa Minecraft Alpha 1.0.5+"
},
"instance.worlds.no_singleplayer_quick_play": {
"message": "Deretso kang makakalukso lamang sa mga pang-isahang larong mundo na nasa Minecraft 1.20+"
},
"instance.worlds.play_instance": {
"message": "Laruin ang instansiya"
},
"instance.worlds.type.server": {
"message": "Server"
},
@@ -406,5 +517,20 @@
},
"instance.worlds.view_instance": {
"message": "Tingnan ang instansiya"
},
"instance.worlds.world_in_use": {
"message": "Ginagamit ang mundo"
},
"search.filter.locked.instance": {
"message": "Sagot na ng instansiya"
},
"search.filter.locked.instance-game-version.title": {
"message": "Sagot na ng instansiya ang bersiyon ng laro"
},
"search.filter.locked.instance-loader.title": {
"message": "Sagot na ng instansiya ang loader ng laro"
},
"search.filter.locked.instance.sync": {
"message": "Maki-sync sa instansiya"
}
}
+15 -6
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Les serveurs d'authentification de Minecraft sont peut-être actuellement hors ligne. Vérifiez votre connexion Internet et essayez à nouveau dans quelques instants."
},
"app.auth-servers.unreachable.header": {
"message": "Impossible de contacter les serveurs d'authentification"
},
"app.settings.developer-mode-enabled": {
"message": "Mode développeur activé."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Installations de Java"
},
"app.settings.tabs.language": {
"message": "Langue"
},
"app.settings.tabs.privacy": {
"message": "Confidentialité"
},
@@ -24,16 +33,16 @@
"message": "Gestion des ressources"
},
"app.update-toast.body": {
"message": "L'application Modrinth v{version} est prêtes à être installé ! Relancez l'application pour faire la mise à jour maintenant ou la mise à jour se fera automatiquement lorsque vous fermerez l'application Modrinth."
"message": "L'application Modrinth v{version} est prête à être installée ! Relancez l'application pour faire la mise à jour maintenant, ou automatiquement à la fermeture de l'application Modrinth."
},
"app.update-toast.body.download-complete": {
"message": "L'application Modrinth v{version} a finis d'être téléchargé ! Relancez l'application pour faire la mise à jour maintenant ou la mise à jour se fera automatiquement lorsque vous fermerez l'application Modrinth."
"message": "Le téléchargement de l'application Modrinth v{version} est terminé ! Relancez l'application pour faire la mise à jour maintenant, ou automatiquement à la fermeture de l'application Modrinth."
},
"app.update-toast.body.metered": {
"message": "L'application Modrinth v{version} est disponible dès maintenant ! Lorsque vous êtes sur un réseau limité ou en donnée mobile, nous ne téléchargerons pas les mises à jour automatiquement."
"message": "L'application Modrinth v{version} est disponible dès maintenant ! Lorsque vous êtes sur un réseau limité ou en données mobiles, nous ne téléchargerons pas les mises à jour automatiquement."
},
"app.update-toast.changelog": {
"message": "Notes de changement"
"message": "Journal des modifications"
},
"app.update-toast.download": {
"message": "Télécharger ({size})"
@@ -42,7 +51,7 @@
"message": "Téléchargement..."
},
"app.update-toast.reload": {
"message": "Rechargement"
"message": "Recharger"
},
"app.update-toast.title": {
"message": "Mise à jour disponible"
@@ -375,7 +384,7 @@
"message": "Voir toutes les versions"
},
"instance.settings.tabs.installation.tooltip.action.change-version": {
"message": "changer la version"
"message": "Changer la version"
},
"instance.settings.tabs.installation.tooltip.action.install": {
"message": "installer"
+55 -1
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "ייתכן ששרתי האימות של Minecraft מושבתים כרגע. בדוק את חיבור האינטרנט שלך ונסה שוב מאוחר יותר."
},
"app.auth-servers.unreachable.header": {
"message": "לא ניתן לגשת לשרתי האימות"
},
"app.settings.developer-mode-enabled": {
"message": "מצב מפתח מופעל."
},
@@ -65,15 +71,63 @@
"app.update.reload-to-update": {
"message": "רענן בכדי להתקין את העדכונים"
},
"friends.action.add-friend": {
"message": "להוסיף חבר"
},
"friends.add-friend.submit": {
"message": "שלח בקשת חברות"
},
"friends.add-friend.title": {
"message": "מוסיף חבר"
},
"friends.add-friend.username.placeholder": {
"message": "הכנס שם משתמש של Modrinth..."
},
"friends.add-friend.username.title": {
"message": "מה השם משתמש של החבר שלך בModrinth"
},
"friends.add-friends-to-share": {
"message": "<link>הוסף חברים</link> כדי לראות במה הם משחקים!"
},
"friends.friend.cancel-request": {
"message": "בטל בקשה"
},
"friends.friend.remove-friend": {
"message": "הסר חבר"
},
"friends.friend.request-sent": {
"message": "בקשת חברות נשלחה"
},
"friends.friend.view-profile": {
"message": "הצג פרופיל"
},
"friends.heading": {
"message": "חברים"
},
"friends.heading.active": {
"message": "פעיל"
},
"friends.heading.offline": {
"message": "לא מקוון"
},
"friends.heading.online": {
"message": "מחובר"
},
"friends.heading.pending": {
"message": "ממתין"
},
"friends.no-friends-match": {
"message": "אין חברים התואמים ל \"{query}\""
},
"friends.search-friends-placeholder": {
"message": "חפש חברים..."
},
"friends.section.heading": {
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>התחבר לחשבון Modrinth </link> כדי להוסיף חברים ולראות מה הם משחקים!"
},
"instance.add-server.add-and-play": {
"message": "הוסף ושחק"
},
@@ -309,7 +363,7 @@
"message": "התיקון מתקין מחדש את התלויות של מיינקראפט ובודק דברים מקולקלים. פעולה זו עשויה לפתור בעיות שמונעות את הפעלת המשחק עקב שגיאות הקשורות למשגר, אך לא תפתור בעיות או קריסות הקשורות למודים המותקנים."
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "תקן"
"message": "לתקן את המכונה?"
},
"instance.settings.tabs.installation.repair.in-progress": {
"message": "תיקון בתהליך"
+55 -46
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "A Minecraft hitelesítő szerverek lehet, hogy nem üzemelnek. Bizonyosodj meg róla, hogy van internetkapcsolatod és próbáld meg újra."
},
"app.auth-servers.unreachable.header": {
"message": "Nem lehet elérni a hitelesítési kiszolgálókat"
},
"app.settings.developer-mode-enabled": {
"message": "Fejlesztői mód bekapcsolva."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Telepített Java példányok"
},
"app.settings.tabs.language": {
"message": "Nyelv"
},
"app.settings.tabs.privacy": {
"message": "Adatvédelem"
},
@@ -126,10 +135,10 @@
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Lépj be Modrinth fiókba</link>, hogy felvehess barátokat és lásd mivel játszanak!"
"message": "<link>Lépj be Modrinth fiókodba</link>, hogy felvehess barátokat és lásd mivel játszanak!"
},
"instance.add-server.add-and-play": {
"message": "Hozzáadás és játék"
"message": "Hozzáadás és csatlakozás"
},
"instance.add-server.add-server": {
"message": "Szerver hozzáadása"
@@ -141,7 +150,7 @@
"message": "Engedélyezve"
},
"instance.add-server.resource-pack.prompt": {
"message": "Kérdezzen"
"message": "Mindig kérdezzen"
},
"instance.add-server.title": {
"message": "Adjon hozzá egy szervert"
@@ -186,13 +195,13 @@
"message": "Általános"
},
"instance.settings.tabs.general.delete": {
"message": "Példány törlése"
"message": "Profil törlése"
},
"instance.settings.tabs.general.delete.button": {
"message": "Példány törlése"
"message": "Profil törlése"
},
"instance.settings.tabs.general.delete.description": {
"message": "Örökké eltávolít egy példányt az eszközről, beleértve a világait, beállításait és minden telepített tartalmat. Legyen óvatos, mert ha egyszer kitöröl egy példányt azt többé nem lehet visszaállítani."
"message": "Örökké eltávolít egy profilt az eszközről, beleértve a világait, beállításait és minden telepített tartalmat. Legyen óvatos, mert ha egyszer kitöröl egy profilt, azt többé nem lehet visszaállítani."
},
"instance.settings.tabs.general.deleting.button": {
"message": "Törlés..."
@@ -204,10 +213,10 @@
"message": "Telepítés közben nem lehet duplikálni."
},
"instance.settings.tabs.general.duplicate-instance": {
"message": "Példány duplikálása"
"message": "Profil duplikálása"
},
"instance.settings.tabs.general.duplicate-instance.description": {
"message": "Készít egy másolatot erről a példányról, beleértve a világokat, beállításokat, modokat, stb."
"message": "Készít egy másolatot erről a profilról, beleértve a világokat, beállításokat, modokat, stb."
},
"instance.settings.tabs.general.edit-icon": {
"message": "Ikon szerkesztése"
@@ -225,13 +234,13 @@
"message": "Könyvtár gyűjtemények"
},
"instance.settings.tabs.general.library-groups.create": {
"message": "Új gyűjtemény létrehozása"
"message": "Új csoport létrehozása"
},
"instance.settings.tabs.general.library-groups.description": {
"message": "A könyvtár gyűjtemények segítenek külön kategóriákba rendszerezni a profiljait."
"message": "A könyvtárgyűjtemények segítenek külön kategóriákba rendszerezni a profiljaidat."
},
"instance.settings.tabs.general.library-groups.enter-name": {
"message": "Adja meg a gyűjtemény nevét"
"message": "Add meg a gyűjtemény nevét"
},
"instance.settings.tabs.general.name": {
"message": "Név"
@@ -249,7 +258,7 @@
"message": "Kilépés után"
},
"instance.settings.tabs.hooks.post-exit.description": {
"message": "Játék bezárása után fut."
"message": "A játék bezárása után fut."
},
"instance.settings.tabs.hooks.post-exit.enter": {
"message": "Írjon be kilépés utáni parancsokat..."
@@ -258,7 +267,7 @@
"message": "Indítás előtt"
},
"instance.settings.tabs.hooks.pre-launch.description": {
"message": "Futtatás a példány futtatása előtt."
"message": "Futtatás a profil futtatása előtt."
},
"instance.settings.tabs.hooks.pre-launch.enter": {
"message": "Írjon be indítás előtti parancsokat..."
@@ -270,16 +279,16 @@
"message": "Indítóparancs"
},
"instance.settings.tabs.hooks.wrapper.description": {
"message": "Wrapper kommand a Minecraft elindításához."
"message": "Indítóparancs a Minecraft elindításához."
},
"instance.settings.tabs.hooks.wrapper.enter": {
"message": "Írd ide a wrapper kommandot..."
"message": "Írjon ide indítóparancsot..."
},
"instance.settings.tabs.installation": {
"message": "Telepítés"
},
"instance.settings.tabs.installation.change-version.already-installed.modded": {
"message": "{platform} {version} a Minecraft-hoz {game_version} már telepítve van"
"message": "{platform} {version} már telepítve van ehhez: Minecraft {game_version}"
},
"instance.settings.tabs.installation.change-version.already-installed.vanilla": {
"message": "A vanilla {game_version} már telepítve van"
@@ -315,7 +324,7 @@
"message": "Telepítés"
},
"instance.settings.tabs.installation.install.in-progress": {
"message": "A telepítés folyamatban"
"message": "Telepítés folyamatban"
},
"instance.settings.tabs.installation.loader-version": {
"message": "{loader} verzió"
@@ -324,34 +333,34 @@
"message": "Minecraft {version}"
},
"instance.settings.tabs.installation.no-connection": {
"message": "Nem lehetséges a csatolt modpack részleteit lekérdezni. Kérlek nézd meg az internetkapcsolatod."
"message": "Nem lehetséges a csatolt modcsomag részleteit lekérdezni. Kérlek nézd meg az internetkapcsolatod."
},
"instance.settings.tabs.installation.no-loader-versions": {
"message": "{loader} nem elérhető a Minecraft {version} verziójához. Próbálj meg egy másik loader-t."
"message": "{loader} nem elérhető a Minecraft {version} verziójához. Próbálj meg egy másik modbetöltőt."
},
"instance.settings.tabs.installation.no-modpack-found": {
"message": "A \"Példányod\" linkelve van egy Modrinth modpack-hoz, de a modpack nem található online."
"message": "A profilod linkelve van egy Modrinth modcsomaghoz, de a modcsomag nem található online."
},
"instance.settings.tabs.installation.platform": {
"message": "Platform"
},
"instance.settings.tabs.installation.reinstall.button": {
"message": "Modpack újratelepítése"
"message": "Modcsomag újratelepítése"
},
"instance.settings.tabs.installation.reinstall.button.reinstalling": {
"message": "Modpack újratelepítése"
"message": "Modcsomag újratelepítése"
},
"instance.settings.tabs.installation.reinstall.confirm.description": {
"message": "Az újratelepítés visszaállítja az összes telepített vagy módosított tartalmat a modpack által biztosított állapotra, eltávolítva az eredeti telepítéshez hozzáadott modokat vagy tartalmakat. Ez megoldhatja a váratlan hibákat, de fontos tudni hogyha használsz világokat amelyekben utólagosan hozzáadott tartalom van, azok a világok korruptálódhatnak."
"message": "Az újratelepítés visszaállítja az összes telepített vagy módosított tartalmat a modcsomag által biztosított állapotra, eltávolítva az eredeti telepítéshez hozzáadott modokat vagy tartalmakat. Ez megoldhatja a váratlan hibákat, de fontos tudni hogyha használsz világokat amelyekben utólagosan hozzáadott tartalom van, azok a világok korruptálódhatnak."
},
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "Biztosan szeretnéd újratelepíteni ezt a példányt?"
"message": "Biztosan szeretnéd újratelepíteni ezt a profilt?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "Visszaállítja a Példányod tartalmát az eredeti állapotába, eltávolítva az eredeti modpackhoz hozzáadott összes modot és tartalmat."
"message": "Visszaállítja a profilod tartalmát az eredeti állapotába, eltávolítva az eredeti modcsomaghoz hozzáadott összes modot és tartalmat."
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "Modpack újratelepítése"
"message": "Modcsomag újratelepítése"
},
"instance.settings.tabs.installation.repair.button": {
"message": "Javítás"
@@ -360,10 +369,10 @@
"message": "Javítás"
},
"instance.settings.tabs.installation.repair.confirm.description": {
"message": "A javítás újratelepíti a Minecraft alapját és ellenőrzi, hogy nincs-e sérülés. Ez megoldhatja a problémákat, ha a játék nem launcherrel kapcsolatos hibák miatt nem indul el, de nem oldja meg a telepített modokkal kapcsolatos problémákat vagy összeomlásokat."
"message": "A javítás újratelepíti a Minecraft alapját és ellenőrzi, hogy nincs-e sérülés. Ez megoldhatja a problémákat, ha a játék nem az indítóval kapcsolatos hibák miatt nem indul el, de nem oldja meg a telepített modokkal kapcsolatos problémákat vagy összeomlásokat."
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "Példány javítása?"
"message": "Profil javítása?"
},
"instance.settings.tabs.installation.repair.in-progress": {
"message": "Javítás folyamatban"
@@ -399,19 +408,19 @@
"message": "(ismeretlen verzió)"
},
"instance.settings.tabs.installation.unlink.button": {
"message": "Példány leválasztása"
"message": "Profil leválasztása"
},
"instance.settings.tabs.installation.unlink.confirm.description": {
"message": ""
"message": "Ha folytatod, akkor nem tudod újra összekapcsolni anélkül, hogy egy teljesen új profilt hoznál létre. Többé nem fogja megkapni a modcsomag frissítéseit, és normál állapotba kerül."
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "Biztosan szeretné ezt az példányt leválasztani?"
"message": "Biztosan le szeretnéd választani ezt a profilt?"
},
"instance.settings.tabs.installation.unlink.description": {
"message": "Ez az példány egy modpackhoz van kapcsolva, ami azt jelenti, hogy a modok nem frissíthetőek, és nem lehet megváltoztatni a mod betöltőt vagy a Minecraft verziót. A kapcsolódás megszüntetése véglegesen leválasztja ezt a példányt a modpackről."
"message": "Ez az profil egy modcsomaghoz van kapcsolva, ami azt jelenti, hogy a modok nem frissíthetőek, és nem lehet megváltoztatni a modbetöltőt vagy a Minecraft verziót. A kapcsolódás megszüntetése véglegesen leválasztja ezt a profilt a modcsomagról."
},
"instance.settings.tabs.installation.unlink.title": {
"message": "Modpack-ről való leválasztás"
"message": "Modcsomagról való leválasztás"
},
"instance.settings.tabs.java": {
"message": "Java és memória"
@@ -420,7 +429,7 @@
"message": "Környezeti változók"
},
"instance.settings.tabs.java.hooks": {
"message": "Hookok"
"message": "Horgok"
},
"instance.settings.tabs.java.java-arguments": {
"message": "Java argumentumok"
@@ -438,7 +447,7 @@
"message": "Egyedi ablak beállítások"
},
"instance.settings.tabs.window.fullscreen": {
"message": "Teljesképernyő"
"message": "Teljes képernyő"
},
"instance.settings.tabs.window.fullscreen.description": {
"message": "A játék indításakor teljes képernyős módban indítsa el (az options.txt fájl segítségével)."
@@ -450,7 +459,7 @@
"message": "A játék ablakának magassága indításkor."
},
"instance.settings.tabs.window.height.enter": {
"message": "Magaság megadása..."
"message": "Magasság megadása..."
},
"instance.settings.tabs.window.width": {
"message": "Szélesség"
@@ -459,7 +468,7 @@
"message": "A játék ablakának szélessége indításkor."
},
"instance.settings.tabs.window.width.enter": {
"message": "Hosszúság megadása..."
"message": "Szélesség megadása..."
},
"instance.settings.title": {
"message": "Beállítások"
@@ -480,7 +489,7 @@
"message": "Elérhető"
},
"instance.worlds.game_already_open": {
"message": "Példány már megnyitva"
"message": "A profil már meg van nyitva"
},
"instance.worlds.hardcore": {
"message": "Hardcore mód"
@@ -489,16 +498,16 @@
"message": "A Szerver nem kompatibilis"
},
"instance.worlds.no_contact": {
"message": "A szerverrel nem lehet kapcsolatott létesíteni"
"message": "Nem lehet kapcsolatot létesíteni a szerverrel"
},
"instance.worlds.no_server_quick_play": {
"message": "Csak Minecraft Alpha 1.0.5+ tól tudsz egyből szerverhez csatlakozni"
"message": "Csak Minecraft Alpha 1.0.5+-tól tudsz egyből szerverhez csatlakozni"
},
"instance.worlds.no_singleplayer_quick_play": {
"message": "Csak Minecraft 1.20+ tól tudsz egyből egyjátékos világba belépni"
"message": "Csak Minecraft 1.20+-tól tudsz egyből egyjátékos világba belépni"
},
"instance.worlds.play_instance": {
"message": "Példány "
"message": "Játék a profillal"
},
"instance.worlds.type.server": {
"message": "Szerver"
@@ -513,15 +522,15 @@
"message": "A világ használatban van"
},
"search.filter.locked.instance": {
"message": "Profil által van megadva"
"message": "A profil által van megadva"
},
"search.filter.locked.instance-game-version.title": {
"message": "A játék verzió a profil által van megadva"
"message": "A játékverzió a profil által van megadva"
},
"search.filter.locked.instance-loader.title": {
"message": "A betöltő a profil által van megadva"
"message": "A modbetöltő a profil által van megadva"
},
"search.filter.locked.instance.sync": {
"message": "Profil Szinkronizálása"
"message": "Profil szinkronizálása"
}
}
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Peladen autentikasi Minecraft mungkin sedang tidak tersedia saat ini. Periksa koneksi internet Anda dan coba lagi nanti."
},
"app.auth-servers.unreachable.header": {
"message": "Tidak dapat terhubung ke peladen autentikasi"
},
"app.settings.developer-mode-enabled": {
"message": "Mode pengembang dihidupkan."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Pemasangan Java"
},
"app.settings.tabs.language": {
"message": "Bahasa"
},
"app.settings.tabs.privacy": {
"message": "Privasi"
},
+62 -53
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "I server di autenticazione di Minecraft stanno riscontrando problemi. Controlla la tua connessione a Internet e riprova più tardi."
},
"app.auth-servers.unreachable.header": {
"message": "Impossibile raggiungere i server di autenticazione"
},
"app.settings.developer-mode-enabled": {
"message": "Modalità sviluppatore attiva."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Installazioni Java"
},
"app.settings.tabs.language": {
"message": "Lingua"
},
"app.settings.tabs.privacy": {
"message": "Privacy"
},
@@ -24,13 +33,13 @@
"message": "Gestione risorse"
},
"app.update-toast.body": {
"message": "Modrinth App v{version} è pronta per essere installata! Ricarica per aggiornare ora, altrimenti ciò avverrà in automatico alla chiusura di Modrinth App."
"message": "Modrinth App v{version} è pronta per essere installata! Ricarica per aggiornare ora, o avverrà in automatico alla chiusura di Modrinth App."
},
"app.update-toast.body.download-complete": {
"message": "Modrinth App v{version} è stata scaricata. Ricarica per aggiornare ora, altrimenti ciò avverrà in automatico alla chiusura di Modrinth App."
"message": "Modrinth App v{version} è stata scaricata. Ricarica per aggiornare ora, o avverrà in automatico alla chiusura di Modrinth App."
},
"app.update-toast.body.metered": {
"message": "Modrinth App v{version} è ora disponibile! Poiché sei su una rete a consumo, non l'abbiamo scaricata automaticamente."
"message": "Modrinth App v{version} è ora disponibile! Poiché sei su una rete a consumo, non l''abbiamo scaricata automaticamente."
},
"app.update-toast.changelog": {
"message": "Changelog"
@@ -63,19 +72,19 @@
"message": "Scaricando aggiornamento ({percent}%)"
},
"app.update.reload-to-update": {
"message": "Ricarica per installare aggiornamento"
"message": "Ricarica per installare l''aggiornamento"
},
"friends.action.add-friend": {
"message": "Stringi un'amicizia"
"message": "Stringi un''amicizia"
},
"friends.action.view-friend-requests": {
"message": "{count} {count, plural, one {richiesta} other {richieste}} d'amicizia"
"message": "{count} {count, plural, one {richiesta} other {richieste}} d''amicizia"
},
"friends.add-friend.submit": {
"message": "Invia richiesta d'amicizia"
"message": "Invia richiesta d''amicizia"
},
"friends.add-friend.title": {
"message": "Stringendo l'amicizia"
"message": "Stringendo l''amicizia"
},
"friends.add-friend.username.description": {
"message": "Potrebbe essere diverso dal nome utente di Minecraft!"
@@ -84,10 +93,10 @@
"message": "Inserisci il nome utente Modrinth..."
},
"friends.add-friend.username.title": {
"message": "Con quale utente Modrinth vuoi stringere l'amicizia?"
"message": "Con quale utente Modrinth vuoi stringere l''amicizia?"
},
"friends.add-friends-to-share": {
"message": "<link>Stringi un'amicizia</link> per sapere a cosa stanno giocando!"
"message": "<link>Stringi un''amicizia</link> per sapere a cosa stanno giocando!"
},
"friends.friend.cancel-request": {
"message": "Annulla richiesta"
@@ -96,7 +105,7 @@
"message": "Annulla amicizia"
},
"friends.friend.request-sent": {
"message": "Richiesta d'amicizia inviata"
"message": "Richiesta d''amicizia inviata"
},
"friends.friend.view-profile": {
"message": "Visita profilo"
@@ -105,7 +114,7 @@
"message": "Amicizie"
},
"friends.heading.active": {
"message": "Attivo"
"message": "Presente"
},
"friends.heading.offline": {
"message": "Offline"
@@ -117,7 +126,7 @@
"message": "In sospeso"
},
"friends.no-friends-match": {
"message": "Nessuna amicizia pertinente a ''{query}''"
"message": "Nessuna amicizia corrisponde a ''{query}''"
},
"friends.search-friends-placeholder": {
"message": "Cerca amicizie..."
@@ -126,7 +135,7 @@
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Accedi all'account Modrinth</link> per stringere amicizie e sapere a cosa stanno giocando!"
"message": "<link>Accedi all''account Modrinth</link> per stringere amicizie e sapere a cosa stanno giocando!"
},
"instance.add-server.add-and-play": {
"message": "Aggiungi e gioca"
@@ -150,7 +159,7 @@
"message": "Modifica server"
},
"instance.edit-world.hide-from-home": {
"message": "Nascondi dalla pagina Home"
"message": "Nascondi dalla pagina home"
},
"instance.edit-world.name": {
"message": "Nome"
@@ -180,7 +189,7 @@
"message": "Server di Minecraft"
},
"instance.server-modal.resource-pack": {
"message": "Pacchetto risorse"
"message": "Pacchetto di risorse"
},
"instance.settings.tabs.general": {
"message": "Generale"
@@ -192,7 +201,7 @@
"message": "Elimina istanza"
},
"instance.settings.tabs.general.delete.description": {
"message": "Elimina permanentemente un'istanza dal tuo dispositivo, compresi i tuoi mondi, file di configurazione, e tutto il contenuto installato. Fai attenzione: eliminata un'istanza non c'è modo di recuperarla."
"message": "Elimina permanentemente un''istanza dal tuo dispositivo, compresi i tuoi mondi, file di configurazione e tutto il contenuto installato. Fai attenzione: eliminata un''istanza non c'è modo di recuperarla."
},
"instance.settings.tabs.general.deleting.button": {
"message": "Eliminando..."
@@ -201,7 +210,7 @@
"message": "Duplica"
},
"instance.settings.tabs.general.duplicate-button.tooltip.installing": {
"message": "Impossibile duplicare durante l'installazione."
"message": "Impossibile duplicare durante l''installazione."
},
"instance.settings.tabs.general.duplicate-instance": {
"message": "Duplica istanza"
@@ -237,13 +246,13 @@
"message": "Nome"
},
"instance.settings.tabs.hooks": {
"message": "Appigli di lancio"
"message": "Hook di avvio"
},
"instance.settings.tabs.hooks.custom-hooks": {
"message": "Appigli di lancio personalizzati"
"message": "Hook di avvio personalizzati"
},
"instance.settings.tabs.hooks.description": {
"message": "Gli appigli, o hook, permettono a utenti avanzati di eseguire comandi di sistema prima e dopo il lancio del gioco."
"message": "I hook permettono a utenti avanzati di eseguire comandi di sistema prima e dopo l''avvio del gioco."
},
"instance.settings.tabs.hooks.post-exit": {
"message": "Post-uscita"
@@ -258,13 +267,13 @@
"message": "Pre-lancio"
},
"instance.settings.tabs.hooks.pre-launch.description": {
"message": "Eseguito prima dell'avvio dell'istanza."
"message": "Eseguito prima dell''avvio dell''istanza."
},
"instance.settings.tabs.hooks.pre-launch.enter": {
"message": "Inserisci comando pre-lancio..."
"message": "Inserisci comando pre-avvio..."
},
"instance.settings.tabs.hooks.title": {
"message": "Appigli all'avvio del gioco"
"message": "Hook all''avvio del gioco"
},
"instance.settings.tabs.hooks.wrapper": {
"message": "Wrapper"
@@ -294,19 +303,19 @@
"message": "Installando"
},
"instance.settings.tabs.installation.change-version.cannot-while-fetching": {
"message": "Ottenendo versioni del modpack"
"message": "Ottenendo versioni del pacchetto di mod"
},
"instance.settings.tabs.installation.change-version.in-progress": {
"message": "Installando nuova versione"
},
"instance.settings.tabs.installation.currently-installed": {
"message": "Già installato"
"message": "Installazione corrente"
},
"instance.settings.tabs.installation.debug-information": {
"message": "Informazioni per il debug:"
},
"instance.settings.tabs.installation.fetching-modpack-details": {
"message": "Ottenendo dettagli del modpack"
"message": "Ottenendo dettagli del pacchetto di mod"
},
"instance.settings.tabs.installation.game-version": {
"message": "Versione del gioco"
@@ -324,34 +333,34 @@
"message": "Minecraft {version}"
},
"instance.settings.tabs.installation.no-connection": {
"message": "Non è stato possibile ottenere i dettagli del modpack collegato. Si prega di verificare la connessione a internet."
"message": "Impossibile ottenere i dettagli del pacchetto di mod collegato. Si prega di controllare la connessione a Internet."
},
"instance.settings.tabs.installation.no-loader-versions": {
"message": "{loader} non è disponibile per Minecraft {version}. Prova un altro loader."
},
"instance.settings.tabs.installation.no-modpack-found": {
"message": "L'istanza è collegata a un modpack, ma non è stato possibile trovarlo su Modrinth."
"message": "L''istanza è collegata a un pacchetto di mod, ma non è stato possibile trovarlo su Modrinth."
},
"instance.settings.tabs.installation.platform": {
"message": "Piattaforma"
},
"instance.settings.tabs.installation.reinstall.button": {
"message": "Reinstalla modpack"
"message": "Reinstalla pacchetto di mod"
},
"instance.settings.tabs.installation.reinstall.button.reinstalling": {
"message": "Reinstallando modpack"
"message": "Reinstallando pacchetto di mod"
},
"instance.settings.tabs.installation.reinstall.confirm.description": {
"message": "La reinstallazione resetterà tutto il contenuto installato o modificato a ciò che è fornito dal modpack, rimuovendo ogni mod o contenuto che tu abbia aggiunto all'installazione originale. Questo potrebbe risolvere comportamenti inaspettati se ci sono state modifiche all'istanza, ma se ora i tuoi mondi dipendessero da contenuto aggiuntivo installato, essi verrebbero corrotti."
"message": "La reinstallazione resetterà tutto il contenuto installato o modificato a ciò che è fornito dal pacchetto di mod, rimuovendo ogni mod o contenuto che tu abbia aggiunto all''installazione originale. Questo potrebbe risolvere comportamenti inaspettati se ci sono state modifiche all''istanza, ma se ora i tuoi mondi dipendessero da contenuto aggiuntivo installato, essi verrebbero corrotti."
},
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "Vuoi davvero reinstallare questa istanza?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "Resetta il contenuto dell'istanza al suo stato originale, rimuovendo ogni mod o contenuto che tu abbia aggiunto al modpack originale."
"message": "Resetta il contenuto dell''istanza al suo stato originale, rimuovendo ogni mod o contenuto che tu abbia aggiunto al pacchetto di mod originale."
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "Reinstalla modpack"
"message": "Reinstalla pacchetto di mod"
},
"instance.settings.tabs.installation.repair.button": {
"message": "Ripara"
@@ -363,13 +372,13 @@
"message": "La riparazione reinstalla le dipendenze di Minecraft e verifica eventuali corruzioni. Questo potrebbe risolvere problemi di avvio del gioco se dovuti a errori legati al launcher, ma non risolverà problemi o crash legati alle mod installate."
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "Riparare l'istanza?"
"message": "Riparare l''istanza?"
},
"instance.settings.tabs.installation.repair.in-progress": {
"message": "Riparazione in corso"
},
"instance.settings.tabs.installation.reset-selections": {
"message": "Resetta a corrente"
"message": "Resetta ad attuale"
},
"instance.settings.tabs.installation.show-all-versions": {
"message": "Mostra tutte le versioni"
@@ -387,7 +396,7 @@
"message": "ripara"
},
"instance.settings.tabs.installation.tooltip.cannot-while-installing": {
"message": "Impossibile {action} durante l'installazione"
"message": "Impossibile {action} durante l''installazione"
},
"instance.settings.tabs.installation.tooltip.cannot-while-offline": {
"message": "Impossibile {action} senza connessione"
@@ -402,25 +411,25 @@
"message": "Scollega istanza"
},
"instance.settings.tabs.installation.unlink.confirm.description": {
"message": "Se procedi, non potrai ricollegarla senza creare una nuova istanza da zero. Non riceverai più aggiornamenti dal modpack e diventerà una normale installazione."
"message": "Procedendo non potrai più ricollegarla se non creando una nuova istanza da zero. Diventerà una normale installazione, per cui non riceverai più aggiornamenti dal pacchetto di mod."
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "Vuoi davvero scollegare questa istanza?"
},
"instance.settings.tabs.installation.unlink.description": {
"message": "Questa istanza è collegata a un modpack, cioè le mod non possono essere aggiornate manualmente, e non puoi cambiare loader di mod né versione di Minecraft. Lo scollegamento disconnetterà definitivamente questa istanza dal modpack."
"message": "Questa istanza è collegata a un pacchetto di mod, cioè le mod non possono essere aggiornate manualmente, e non puoi cambiare loader di mod né versione di Minecraft. Lo scollegamento disconnetterà definitivamente questa istanza dal pacchetto di mod."
},
"instance.settings.tabs.installation.unlink.title": {
"message": "Scollega dal modpack"
"message": "Scollega dal pacchetto di mod"
},
"instance.settings.tabs.java": {
"message": "Java e memoria"
},
"instance.settings.tabs.java.environment-variables": {
"message": "Variabili d'ambiente"
"message": "Variabili d''ambiente"
},
"instance.settings.tabs.java.hooks": {
"message": "Appigli"
"message": "Hook"
},
"instance.settings.tabs.java.java-arguments": {
"message": "Argomenti Java"
@@ -447,7 +456,7 @@
"message": "Altezza"
},
"instance.settings.tabs.window.height.description": {
"message": "L'altezza della finestra del gioco all'avvio."
"message": "L''altezza della finestra del gioco all''avvio."
},
"instance.settings.tabs.window.height.enter": {
"message": "Inserisci altezza..."
@@ -456,7 +465,7 @@
"message": "Larghezza"
},
"instance.settings.tabs.window.width.description": {
"message": "La larghezza della finestra del gioco all'avvio."
"message": "La larghezza della finestra del gioco all''avvio."
},
"instance.settings.tabs.window.width.enter": {
"message": "Inserisci larghezza..."
@@ -465,7 +474,7 @@
"message": "Impostazioni"
},
"instance.worlds.a_minecraft_server": {
"message": "Un Server Minecraft"
"message": "Un server Minecraft"
},
"instance.worlds.cant_connect": {
"message": "Impossibile connettersi al server"
@@ -474,7 +483,7 @@
"message": "Copia indirizzo"
},
"instance.worlds.dont_show_on_home": {
"message": "Non mostrare nella Home"
"message": "Non mostrare nella home"
},
"instance.worlds.filter.available": {
"message": "Disponibile"
@@ -492,10 +501,10 @@
"message": "Impossibile contattare il server"
},
"instance.worlds.no_server_quick_play": {
"message": "È possibile avviare direttamente un server solo su Minecraft Alpha 1.0.5+"
"message": "È possibile avviare un server direttamente solo su Minecraft Alpha 1.0.5+"
},
"instance.worlds.no_singleplayer_quick_play": {
"message": "È possibile avviare direttamente un mondo in Giocatore Singolo solo su Minecraft 1.20+"
"message": "È possibile avviare direttamente un mondo in giocatore singolo solo su Minecraft 1.20+"
},
"instance.worlds.play_instance": {
"message": "Gioca istanza"
@@ -504,7 +513,7 @@
"message": "Server"
},
"instance.worlds.type.singleplayer": {
"message": "Giocatore Singolo"
"message": "Giocatore singolo"
},
"instance.worlds.view_instance": {
"message": "Mostra istanza"
@@ -513,15 +522,15 @@
"message": "Mondo già in uso"
},
"search.filter.locked.instance": {
"message": "Fornito dall'istanza"
"message": "Fornito dall''istanza"
},
"search.filter.locked.instance-game-version.title": {
"message": "La versione del gioco è fornita dall'istanza"
"message": "La versione del gioco è fornita dall''istanza"
},
"search.filter.locked.instance-loader.title": {
"message": "Il loader è fornito dall'istanza"
"message": "Il loader è fornito dall''istanza"
},
"search.filter.locked.instance.sync": {
"message": "Sincronizza con l'istanza"
"message": "Sincronizza con l''istanza"
}
}
+15 -3
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Minecraft の認証サーバーは現在停止している可能性があります。インターネット接続を確認し、しばらくしてからもう一度お試しください。"
},
"app.auth-servers.unreachable.header": {
"message": "認証サーバーにアクセスできません"
},
"app.settings.developer-mode-enabled": {
"message": "開発者モードがオンになっています。"
},
@@ -6,7 +12,7 @@
"message": "v{version}をダウンロード中"
},
"app.settings.tabs.appearance": {
"message": "表示設定"
"message": "外観"
},
"app.settings.tabs.default-instance-options": {
"message": "インスタンスの基本設定"
@@ -15,10 +21,13 @@
"message": "機能設定"
},
"app.settings.tabs.java-installations": {
"message": "Javaのインストール設定"
"message": "Javaのインストール"
},
"app.settings.tabs.language": {
"message": "言語"
},
"app.settings.tabs.privacy": {
"message": "プライバシー設定"
"message": "プライバシー"
},
"app.settings.tabs.resource-management": {
"message": "リソース管理"
@@ -68,6 +77,9 @@
"friends.action.add-friend": {
"message": "フレンドを追加"
},
"friends.action.view-friend-requests": {
"message": "{count}件の友達リクエスト"
},
"friends.add-friend.submit": {
"message": "フレンド申請を送信"
},
+107 -5
View File
@@ -1,6 +1,12 @@
{
"app.auth-servers.unreachable.body": {
"message": "Minecraft 인증 서버가 현재 다운되었을 수 있습니다. 인터넷 연결을 확인한 후 나중에 다시 시도하세요."
},
"app.auth-servers.unreachable.header": {
"message": "인증 서버에 연결할 수 없습니다"
},
"app.settings.developer-mode-enabled": {
"message": "개발자 모드가 활성화되어 있습니다."
"message": "개발자 모드가 활성화되습니다."
},
"app.settings.downloading": {
"message": "v{version} 다운로드 중"
@@ -17,26 +23,122 @@
"app.settings.tabs.java-installations": {
"message": "Java 설치"
},
"app.settings.tabs.language": {
"message": "언어"
},
"app.settings.tabs.privacy": {
"message": "개인정보 보호"
},
"app.settings.tabs.resource-management": {
"message": "리소스 관리"
},
"app.update-toast.body": {
"message": "Modrinth App v{version}을 설치할 준비가 완료되었습니다! 새로고침하거나 Modrinth App을 종료하면 자동으로 업데이트합니다."
},
"app.update-toast.body.download-complete": {
"message": "Modrinth App v{version} 다운로드가 완료되었습니다. 새로고침하거나 Modrinth App을 종료하면 자동으로 업데이트합니다."
},
"app.update-toast.body.metered": {
"message": "Modrinth App v{version}이 지금 이용 가능합니다! 종량제 네트워크에 있기 때문에, 자동으로 다운로드하지 않았습니다."
},
"app.update-toast.changelog": {
"message": "변경사항"
"message": "변경 내역"
},
"app.update-toast.download": {
"message": "다운로드 ({size})"
"message": "({size}) 다운로드"
},
"app.update-toast.downloading": {
"message": "다운로드 중..."
},
"app.update-toast.reload": {
"message": "리로드"
"message": "새로고침"
},
"app.update-toast.title": {
"message": "업데이트 가능"
},
"app.update-toast.title.download-complete": {
"message": "다운로드 완료"
},
"app.update.complete-toast.text": {
"message": "변경 내역을 보려면 클릭하세요."
},
"app.update.complete-toast.title": {
"message": "{version} 버전이 성공적으로 설치되었습니다!"
},
"app.update.download-update": {
"message": "업데이트 다운로드"
},
"app.update.downloading-update": {
"message": "업데이트 다운로드 중 ({percent}%)"
},
"app.update.reload-to-update": {
"message": "새로고침하여 업데이트 설치"
},
"friends.action.add-friend": {
"message": "친구 추가"
},
"friends.action.view-friend-requests": {
"message": "{count} 친구 요청 {count, plural, one {건의} other {건의}}"
},
"friends.add-friend.submit": {
"message": "친구 요청 보내기"
},
"friends.add-friend.title": {
"message": "친구 추가 중"
},
"friends.add-friend.username.description": {
"message": "마인크래프트 사용자명과 다를 수 있습니다!"
},
"friends.add-friend.username.placeholder": {
"message": "Modrinth 사용자명 입력..."
},
"friends.add-friend.username.title": {
"message": "친구의 Modrinth 사용자명이 무엇인가요?"
},
"friends.add-friends-to-share": {
"message": "친구들이 무엇을 하는지 보려면 <link>친구 추가</link>를 하세요!"
},
"friends.friend.cancel-request": {
"message": "요청 취소"
},
"friends.friend.remove-friend": {
"message": "친구 삭제"
},
"friends.friend.request-sent": {
"message": "이미 친구 요청을 보냈습니다"
},
"friends.friend.view-profile": {
"message": "프로필 보기"
},
"friends.heading": {
"message": "친구"
},
"friends.heading.active": {
"message": "활동 중"
},
"friends.heading.offline": {
"message": "오프라인"
},
"friends.heading.online": {
"message": "온라인"
},
"friends.heading.pending": {
"message": "대기 중"
},
"friends.no-friends-match": {
"message": "\"{query}\"와 일치하는 친구가 없습니다"
},
"friends.search-friends-placeholder": {
"message": "친구 검색 중..."
},
"friends.section.heading": {
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "친구를 추가하고 무엇을 하는지 보려면 <link>Modrinth 계정에 로그인</link>하세요!"
},
"instance.add-server.add-and-play": {
"message": "추가하고 플레이"
"message": "추가 플레이"
},
"instance.add-server.add-server": {
"message": "서버 추가"
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Pelayan pengesahan Minecraft mungkin sedang tergendala sekarang. Periksa sambungan internet anda dan cuba lagi nanti."
},
"app.auth-servers.unreachable.header": {
"message": "Tidak dapat mencapai pelayan pengesahan"
},
"app.settings.developer-mode-enabled": {
"message": "مود ڤمباڠون دداياکن."
},
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Pelayan pengesahan Minecraft mungkin sedang tergendala sekarang. Periksa sambungan internet anda dan cuba lagi nanti."
},
"app.auth-servers.unreachable.header": {
"message": "Tidak dapat mencapai pelayan pengesahan"
},
"app.settings.developer-mode-enabled": {
"message": "Mod pembangun didayakan."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Pemasangan Java"
},
"app.settings.tabs.language": {
"message": "Bahasa"
},
"app.settings.tabs.privacy": {
"message": "Privasi"
},
+73 -1
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Minecraft verificatie servers zijn misschien offline. Check je internetverbinding en probeer opnieuw later."
},
"app.auth-servers.unreachable.header": {
"message": "Authenticatieservers kunnen niet worden bereikt"
},
"app.settings.developer-mode-enabled": {
"message": "Ontwikkelaarsmodus ingeschakeld."
},
@@ -12,11 +18,14 @@
"message": "Standaardopties voor instantie"
},
"app.settings.tabs.feature-flags": {
"message": "Functie vlaggen"
"message": "Feature flags"
},
"app.settings.tabs.java-installations": {
"message": "Java installaties"
},
"app.settings.tabs.language": {
"message": "Taal"
},
"app.settings.tabs.privacy": {
"message": "Privacy"
},
@@ -65,6 +74,69 @@
"app.update.reload-to-update": {
"message": "Herlaad om de update te installeren"
},
"friends.action.add-friend": {
"message": "Voeg een vriend toe"
},
"friends.action.view-friend-requests": {
"message": "{count} vriend {count, plural,one {verzoek} other {verzoeken}}"
},
"friends.add-friend.submit": {
"message": "Stuur een vriendschapsverzoek"
},
"friends.add-friend.title": {
"message": "Een vriend toevoegen"
},
"friends.add-friend.username.description": {
"message": "Het kan verschillen van hun Minecraft gebruikersnaam!"
},
"friends.add-friend.username.placeholder": {
"message": "Voer Modrinth gebruikersnaam in..."
},
"friends.add-friend.username.title": {
"message": "Wat is de Modrinth gebruikersnaam van jouw vriend?"
},
"friends.add-friends-to-share": {
"message": "<link>Voeg vrienden toe</link> om te zien wat zij spelen!"
},
"friends.friend.cancel-request": {
"message": "Annuleer verzoek"
},
"friends.friend.remove-friend": {
"message": "Verwijder vriend"
},
"friends.friend.request-sent": {
"message": "Vriendschapsverzoek gestuurd"
},
"friends.friend.view-profile": {
"message": "Bekijk profiel"
},
"friends.heading": {
"message": "Vrienden"
},
"friends.heading.active": {
"message": "Actief"
},
"friends.heading.offline": {
"message": "Offline"
},
"friends.heading.online": {
"message": "Online"
},
"friends.heading.pending": {
"message": "In behandeling"
},
"friends.no-friends-match": {
"message": "Geen vrienden die overeenkomen met \"{query}\""
},
"friends.search-friends-placeholder": {
"message": "Zoek vrienden..."
},
"friends.section.heading": {
"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!"
},
"instance.add-server.add-and-play": {
"message": "Toevoegen en spelen"
},
+191 -2
View File
@@ -1,9 +1,15 @@
{
"app.auth-servers.unreachable.body": {
"message": "Minecraft-autentiseringsservere kan være nede for øyeblikket. Kontroller internettforbindelsen din og prøv igjen senere."
},
"app.auth-servers.unreachable.header": {
"message": "Kan ikke nå autentiseringsservere"
},
"app.settings.developer-mode-enabled": {
"message": "Utviklermodus aktivert."
},
"app.settings.downloading": {
"message": "Nedlaster v{version}"
"message": "Laster ned v{version}"
},
"app.settings.tabs.appearance": {
"message": "Utseende"
@@ -17,17 +23,32 @@
"app.settings.tabs.java-installations": {
"message": "Java installasjoner"
},
"app.settings.tabs.language": {
"message": "Språk"
},
"app.settings.tabs.privacy": {
"message": "Personvern"
},
"app.settings.tabs.resource-management": {
"message": "Ressursforvaltning"
},
"app.update-toast.body": {
"message": "Modrinth App v{version} er klar for installering! Last inn på nytt for å oppdatere nå, eller automatisk når du lukker Modrinth App."
},
"app.update-toast.body.download-complete": {
"message": "Modrinth App v{version} er ferdig lastet ned. Last in på nytt for å oppdatere nå, eller automatisk når du lukker Modrinth App."
},
"app.update-toast.body.metered": {
"message": "Modrinth App v{version} er tilgjengelig nå! Siden du er på en forbruksmålt tilkobling, lastet vi den ikke ned automatisk."
},
"app.update-toast.changelog": {
"message": "Endringslogg"
},
"app.update-toast.download": {
"message": "Nedlast ({size})"
"message": "Last ned ({size})"
},
"app.update-toast.downloading": {
"message": "Laster ned..."
},
"app.update-toast.reload": {
"message": "Last inn på nytt"
@@ -35,15 +56,87 @@
"app.update-toast.title": {
"message": "Oppdatering tilgjengelig"
},
"app.update-toast.title.download-complete": {
"message": "Ferdig lastet ned"
},
"app.update.complete-toast.text": {
"message": "Klikk her for å se endringsloggen."
},
"app.update.complete-toast.title": {
"message": "Versjon {version} ble installert!"
},
"app.update.download-update": {
"message": "Last ned oppdatering"
},
"app.update.downloading-update": {
"message": "Laster ned oppdatering ({percent}%)"
},
"app.update.reload-to-update": {
"message": "Last inn på nytt for å installere oppdateringen"
},
"friends.action.add-friend": {
"message": "Legg til en venn"
},
"friends.action.view-friend-requests": {
"message": "{count} venne{count, plural,one {forespørsel} other {forespørsler}}"
},
"friends.add-friend.submit": {
"message": "Send venneforespørsel"
},
"friends.add-friend.title": {
"message": "Legger til en venn"
},
"friends.add-friend.username.description": {
"message": "Det kan være annerledes enn Minecraft-brukernavnet deres!"
},
"friends.add-friend.username.placeholder": {
"message": "Fyll ut Modrinth-brukernavn..."
},
"friends.add-friend.username.title": {
"message": "Hva er Modrinth-brukernavnet til vennen din?"
},
"friends.add-friends-to-share": {
"message": "<link>Legg til venner</link> for å se hva de spiller!"
},
"friends.friend.cancel-request": {
"message": "Avbryt forespørsel"
},
"friends.friend.remove-friend": {
"message": "Fjern venn"
},
"friends.friend.request-sent": {
"message": "Venneforespørsel sent"
},
"friends.friend.view-profile": {
"message": "Vis profil"
},
"friends.heading": {
"message": "Venner"
},
"friends.heading.active": {
"message": "Aktiv"
},
"friends.heading.offline": {
"message": "Offline"
},
"friends.heading.online": {
"message": "Online"
},
"friends.heading.pending": {
"message": "Ventende"
},
"friends.no-friends-match": {
"message": "Ingen venner som samsvarer \"{query}\""
},
"friends.search-friends-placeholder": {
"message": "Søk venner..."
},
"friends.section.heading": {
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Logg inn til en Modrinth-bruker</link> for å legge til venner og se hva de spiller!"
},
"instance.add-server.add-and-play": {
"message": "Legg til og spill"
},
@@ -167,21 +260,39 @@
"instance.settings.tabs.hooks.post-exit.description": {
"message": "Kørt etter spillet lukkes."
},
"instance.settings.tabs.hooks.post-exit.enter": {
"message": "Skriv inn kommando etter avslutning..."
},
"instance.settings.tabs.hooks.pre-launch": {
"message": "Før oppstart"
},
"instance.settings.tabs.hooks.pre-launch.description": {
"message": "Kørt før instansen startes."
},
"instance.settings.tabs.hooks.pre-launch.enter": {
"message": "Skriv inn kommando før start..."
},
"instance.settings.tabs.hooks.title": {
"message": "Spillstartkroker"
},
"instance.settings.tabs.hooks.wrapper": {
"message": "Wrapper"
},
"instance.settings.tabs.hooks.wrapper.description": {
"message": "Wrapper-kommando for å starte Minecraft."
},
"instance.settings.tabs.hooks.wrapper.enter": {
"message": "Skriv inn wrapper-kommando..."
},
"instance.settings.tabs.installation": {
"message": "Installasjon"
},
"instance.settings.tabs.installation.change-version.already-installed.modded": {
"message": "{platform} {version} for Minecraft {game_version} er allerede installert"
},
"instance.settings.tabs.installation.change-version.already-installed.vanilla": {
"message": "Vanilla {game_version} er allerede installert"
},
"instance.settings.tabs.installation.change-version.button": {
"message": "Endre versjon"
},
@@ -191,6 +302,9 @@
"instance.settings.tabs.installation.change-version.button.installing": {
"message": "Installerer"
},
"instance.settings.tabs.installation.change-version.cannot-while-fetching": {
"message": "Henter modpakkeversjoner"
},
"instance.settings.tabs.installation.change-version.in-progress": {
"message": "Installerer ny versjon"
},
@@ -200,6 +314,9 @@
"instance.settings.tabs.installation.debug-information": {
"message": "Feilsøkingsinformasjon:"
},
"instance.settings.tabs.installation.fetching-modpack-details": {
"message": "Henter modpakkedetaljer"
},
"instance.settings.tabs.installation.game-version": {
"message": "Spillversjon"
},
@@ -215,9 +332,15 @@
"instance.settings.tabs.installation.minecraft-version": {
"message": "Minecraft {version}"
},
"instance.settings.tabs.installation.no-connection": {
"message": "Kan ikke hente detaljer for tilknyttet modpakke."
},
"instance.settings.tabs.installation.no-loader-versions": {
"message": "{loader} er ikke tilgjengelig for Minecraft {version}. Prøv en annen mod laster."
},
"instance.settings.tabs.installation.no-modpack-found": {
"message": "Denne instansen er tilknyttet til en modpakke, men modpakken er ikke funnet på Modrinth."
},
"instance.settings.tabs.installation.platform": {
"message": "Platform"
},
@@ -233,42 +356,81 @@
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "Er du sikker på at du vil reinstallere denne instansen?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "Resetter innholdet til instansen til sin opprinnelige tilstand, som fjerner alle mods eller innhold som du har lagd til på toppen av originalpakken."
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "Reinstaller modpakke"
},
"instance.settings.tabs.installation.repair.button": {
"message": "Reparer"
},
"instance.settings.tabs.installation.repair.button.repairing": {
"message": "Reparerer"
},
"instance.settings.tabs.installation.repair.confirm.description": {
"message": "Reparasjon reinstallerer Minecraft-avhengigheter og sjekker for korrupsjon. Dette kan fikse problemer hvis spillet ikke starter grunnet launcher-relaterte feil, men vil ikke løse problemer eller krasj relatert til installerte mods."
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "Reparer instanse?"
},
"instance.settings.tabs.installation.repair.in-progress": {
"message": "Reparasjon pågår"
},
"instance.settings.tabs.installation.reset-selections": {
"message": "Reset til nåværende"
},
"instance.settings.tabs.installation.show-all-versions": {
"message": "Vis alle versjoner"
},
"instance.settings.tabs.installation.tooltip.action.change-version": {
"message": "endre versjon"
},
"instance.settings.tabs.installation.tooltip.action.install": {
"message": "installer"
},
"instance.settings.tabs.installation.tooltip.action.reinstall": {
"message": "reinstaller"
},
"instance.settings.tabs.installation.tooltip.action.repair": {
"message": "reparer"
},
"instance.settings.tabs.installation.tooltip.cannot-while-installing": {
"message": "Kan ikke {action} mens en installasjon pågår"
},
"instance.settings.tabs.installation.tooltip.cannot-while-offline": {
"message": "Kan ikke {action} når man er offline"
},
"instance.settings.tabs.installation.tooltip.cannot-while-repairing": {
"message": "Kan ikke {action} mens en reparasjon pågår"
},
"instance.settings.tabs.installation.unknown-version": {
"message": "(ukjent versjon)"
},
"instance.settings.tabs.installation.unlink.button": {
"message": "Koble fra instanse"
},
"instance.settings.tabs.installation.unlink.confirm.description": {
"message": "Hvis du fortsetter, vil du ikke kunne koble det på nytt uten å lage en helt ny instans. Du vil ikke kunne få oppdateringer for modpakker lenger og det vil bli til en normal instans."
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "Er du sikker på at du vil koble fra denne instansen?"
},
"instance.settings.tabs.installation.unlink.description": {
"message": "Denne instansen er koblet til en modpakke, som betyr at mods ikke kan bli oppdatert og at du ikke kan endre modloaderen eller Minecraft-versjonen. Å avlenke vil permanent koble fra instansen fra modpakken."
},
"instance.settings.tabs.installation.unlink.title": {
"message": "Koble fra modpakke"
},
"instance.settings.tabs.java": {
"message": "Java og minne"
},
"instance.settings.tabs.java.environment-variables": {
"message": "Miljøvariabler"
},
"instance.settings.tabs.java.hooks": {
"message": "Hooker"
},
"instance.settings.tabs.java.java-arguments": {
"message": "Java argumenter"
},
@@ -281,9 +443,15 @@
"instance.settings.tabs.window": {
"message": "Vindu"
},
"instance.settings.tabs.window.custom-window-settings": {
"message": "Tilpasset vindusinstillinger"
},
"instance.settings.tabs.window.fullscreen": {
"message": "Fullskjerm"
},
"instance.settings.tabs.window.fullscreen.description": {
"message": "Få spillet til å starte i fullskjerm når det starter opp (ved å bruke options.txt)."
},
"instance.settings.tabs.window.height": {
"message": "Høyde"
},
@@ -314,6 +482,9 @@
"instance.worlds.copy_address": {
"message": "Kopier addresse"
},
"instance.worlds.dont_show_on_home": {
"message": "Ikke vis på Hjem"
},
"instance.worlds.filter.available": {
"message": "Tilgjengelig"
},
@@ -329,6 +500,12 @@
"instance.worlds.no_contact": {
"message": "Server kunne ikke kontaktes"
},
"instance.worlds.no_server_quick_play": {
"message": "Du kan bare hoppe rett inn i servere på Minecraft Alpha 1.0.5+"
},
"instance.worlds.no_singleplayer_quick_play": {
"message": "Du kan bare hoppe rett inn i enkeltspiller-verdener på Minecraft 1.20+"
},
"instance.worlds.play_instance": {
"message": "Spill instans"
},
@@ -343,5 +520,17 @@
},
"instance.worlds.world_in_use": {
"message": "Verdenen er i bruk"
},
"search.filter.locked.instance": {
"message": "Levert av instansen"
},
"search.filter.locked.instance-game-version.title": {
"message": "Spillversjon er levert av instansen"
},
"search.filter.locked.instance-loader.title": {
"message": "Oppstarter er levert av instansen"
},
"search.filter.locked.instance.sync": {
"message": "Synkroniser med instans"
}
}
+19 -10
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Serwery uwierzytelniania Minecraft mogą aktualnie nie działać. Sprawdź swoje połączenie z internetem i spróbuj ponownie później."
},
"app.auth-servers.unreachable.header": {
"message": "Nie udało się połączyć się z serwerami uwierzytelniania"
},
"app.settings.developer-mode-enabled": {
"message": "Tryb dewelopera włączony."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Instalacje Java"
},
"app.settings.tabs.language": {
"message": "Język"
},
"app.settings.tabs.privacy": {
"message": "Prywatność"
},
@@ -60,7 +69,7 @@
"message": "Pobierz aktualizację"
},
"app.update.downloading-update": {
"message": "Instalacja aktualizacji ({percent}%)"
"message": "Pobieranie aktualizacji ({percent}%)"
},
"app.update.reload-to-update": {
"message": "Załaduj ponownie, aby zainstalować aktualizację"
@@ -81,7 +90,7 @@
"message": "Może różnić się od nazwy użytkownika Minecraft!"
},
"friends.add-friend.username.placeholder": {
"message": "Wpisz nazwę użytkownika Modrinth..."
"message": "Wprowadź nazwę użytkownika Modrinth..."
},
"friends.add-friend.username.title": {
"message": "Jaka jest nazwa użytkownika Twojego znajomego?"
@@ -93,7 +102,7 @@
"message": "Anuluj zaproszenie"
},
"friends.friend.remove-friend": {
"message": "Usuń z znajomych"
"message": "Usuń znajomego"
},
"friends.friend.request-sent": {
"message": "Wysłano zaproszenie"
@@ -207,7 +216,7 @@
"message": "Duplikuj instancję"
},
"instance.settings.tabs.general.duplicate-instance.description": {
"message": "Tworzy kopie tej instancji, w tym światy, konfiguracje, mody, itp."
"message": "Tworzy kopię tej instancji, w tym światy, konfiguracje, mody, itp."
},
"instance.settings.tabs.general.edit-icon": {
"message": "Edytuj ikonę"
@@ -228,7 +237,7 @@
"message": "Utwórz nową grupę"
},
"instance.settings.tabs.general.library-groups.description": {
"message": "Grupowanie bibliotek pozwala ci na rozdzielenie instalacji na kilka różnych sekcji w twojej bibliotece."
"message": "Grupy bibliotek pozwala ci organizować twoje instancje w różne sekcje w twojej bibliotece."
},
"instance.settings.tabs.general.library-groups.enter-name": {
"message": "Wpisz nazwę grupy"
@@ -252,7 +261,7 @@
"message": "Aktywowane po zamknięciu gry."
},
"instance.settings.tabs.hooks.post-exit.enter": {
"message": "Wpisz komendę po zamknięciu..."
"message": "Wprowadź komendę po zamknięciu..."
},
"instance.settings.tabs.hooks.pre-launch": {
"message": "Przed uruchomieniem"
@@ -348,7 +357,7 @@
"message": "Czy jesteś pewien, że chcesz ponownie zainstalować tę instancję?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "Resetuje zawartość instancji do jej oryginalnego stanu, usuwając jakiekolwiek modyfikacje lub zawartość, którą dodano do paczki modów."
"message": "Resetuje zawartość instancji do jej oryginalnego stanu, usuwając jakiekolwiek modyfikacje lub zawartość którą dodano do paczki modów."
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "Ponownie zainstaluj paczkę modów"
@@ -360,7 +369,7 @@
"message": "Naprawianie"
},
"instance.settings.tabs.installation.repair.confirm.description": {
"message": "Naprawa ponownej instalacji zależności Minecraft i kontroli korupcji. Może to rozwiązać problemy, jeśli gra nie uruchomi się z powodu błędów związanych z uruchamianiem, ale nie rozwiąże problemów ani awarii związanych z zainstalowanymi modami."
"message": "Naprawa ponownie instaluje zależności Minecraft i sprawdza, czy nie są one uszkodzone. Może to rozwiązać problemy, jeśli gra nie uruchomi się z powodu błędów związanych z launcherem, ale nie rozwiąże problemów związanych z zainstalowanymi modami."
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "Naprawić instancję?"
@@ -420,7 +429,7 @@
"message": "Zmienne środowiskowe"
},
"instance.settings.tabs.java.hooks": {
"message": "Haczyki"
"message": "Hooki"
},
"instance.settings.tabs.java.java-arguments": {
"message": "Argumenty Javy"
@@ -516,7 +525,7 @@
"message": "Podane przez instancję"
},
"search.filter.locked.instance-game-version.title": {
"message": "Wersja gry jest dostarczana przez instancję"
"message": "Wersja gry jest dostarczona przez instancję"
},
"search.filter.locked.instance-loader.title": {
"message": "Loader jest dostarczony przez instancję"
+11 -2
View File
@@ -1,6 +1,12 @@
{
"app.auth-servers.unreachable.body": {
"message": "Os servidores de autenticação do Minecraft podem estar indisponíveis no momento. Verifique sua conexão com a internet e tente novamente mais tarde."
},
"app.auth-servers.unreachable.header": {
"message": "Não foi possível acessar os servidores de autenticação"
},
"app.settings.developer-mode-enabled": {
"message": "Modo desenvolvedor."
"message": "Modo de desenvolvedor ativado."
},
"app.settings.downloading": {
"message": "Baixando v{version}"
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Instalações do Java"
},
"app.settings.tabs.language": {
"message": "Idioma"
},
"app.settings.tabs.privacy": {
"message": "Privacidade"
},
@@ -69,7 +78,7 @@
"message": "Adicionar um amigo"
},
"friends.action.view-friend-requests": {
"message": "{count, plural, =0 {Nenhuma solicitação de amizade} one {{count} solicitação de amizade} other {{count} solicitações de amizade}}"
"message": "{count, plural, =0 {{count} solicitações de amizade} one {{count} solicitação de amizade} other {{count} solicitações de amizade}}"
},
"friends.add-friend.submit": {
"message": "Enviar amizade"
@@ -1,7 +1,16 @@
{
"app.auth-servers.unreachable.body": {
"message": "Os servidores de autenticação do Minecraft poderão estar em baixo de momento. Verifica a tua ligação à internet e tenta novamente mais tarde."
},
"app.auth-servers.unreachable.header": {
"message": "Não foi possível aceder aos servidores de autenticação"
},
"app.settings.developer-mode-enabled": {
"message": "Modo de desenvolvedor ativado."
},
"app.settings.downloading": {
"message": "A transferir v{version}"
},
"app.settings.tabs.appearance": {
"message": "Aparência"
},
@@ -14,12 +23,120 @@
"app.settings.tabs.java-installations": {
"message": "Instalações Java"
},
"app.settings.tabs.language": {
"message": "Linguagem"
},
"app.settings.tabs.privacy": {
"message": "Privacidade"
},
"app.settings.tabs.resource-management": {
"message": "Gestão de recursos"
},
"app.update-toast.body": {
"message": "Modrinth App v{version} está pronta para ser instalada! Recarrega para atualizar agora, ou automaticamente quando fechares a Modrinth App."
},
"app.update-toast.body.download-complete": {
"message": "Modrinth App v{version} acabou de ser transferida. Recarrega para atualizar agora, ou automaticamente quando fechares a Modrinth App."
},
"app.update-toast.body.metered": {
"message": "Modrinth App v{version} está disponível! Como estás numa rede com tráfego limitado, não a transferimos automaticamente."
},
"app.update-toast.changelog": {
"message": "Lista de alterações"
},
"app.update-toast.download": {
"message": "Transferir ({size})"
},
"app.update-toast.downloading": {
"message": "A transferir..."
},
"app.update-toast.reload": {
"message": "Recarregar"
},
"app.update-toast.title": {
"message": "Atualização disponível"
},
"app.update-toast.title.download-complete": {
"message": "Transferência concluída"
},
"app.update.complete-toast.text": {
"message": "Clica aqui para ver a lista de alterações."
},
"app.update.complete-toast.title": {
"message": "Versão {version} foi instalada com sucesso!"
},
"app.update.download-update": {
"message": "Transferir atualização"
},
"app.update.downloading-update": {
"message": "A transferir atualização ({percent}%)"
},
"app.update.reload-to-update": {
"message": "Recarrega para instalar a atualização"
},
"friends.action.add-friend": {
"message": "Adicionar um amigo"
},
"friends.action.view-friend-requests": {
"message": "{count} {count, plural,one {pedido} other {pedidos}} de amizade"
},
"friends.add-friend.submit": {
"message": "Enviar pedido de amizade"
},
"friends.add-friend.title": {
"message": "Adicionar um amigo"
},
"friends.add-friend.username.description": {
"message": "Pode ser diferente do nome no Minecraft!"
},
"friends.add-friend.username.placeholder": {
"message": "Insere o nome do utilizador no Modrinth..."
},
"friends.add-friend.username.title": {
"message": "Qual é o nome de utilizador do teu amigo no Modrinth?"
},
"friends.add-friends-to-share": {
"message": "<link>Adiciona amigos</link> para ver o que estão a jogar!"
},
"friends.friend.cancel-request": {
"message": "Cancelar pedido"
},
"friends.friend.remove-friend": {
"message": "Remover amigo"
},
"friends.friend.request-sent": {
"message": "Pedido de amizade enviado"
},
"friends.friend.view-profile": {
"message": "Ver perfil"
},
"friends.heading": {
"message": "Amigos"
},
"friends.heading.active": {
"message": "Ativo"
},
"friends.heading.offline": {
"message": "Offline"
},
"friends.heading.online": {
"message": "Online"
},
"friends.heading.pending": {
"message": "Pendente"
},
"friends.no-friends-match": {
"message": "Nenhum amigo corresponde a \"{query}\""
},
"friends.search-friends-placeholder": {
"message": "Procurar amigos..."
},
"friends.section.heading": {
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Inicia a sessão com uma conta Modrinth</link> para adicionar amigos e ver o que estão a jogar!"
},
"instance.add-server.add-and-play": {
"message": "Adicionar e jogar"
},
+59 -50
View File
@@ -1,9 +1,15 @@
{
"app.auth-servers.unreachable.body": {
"message": "Серверы аутентификации Minecraft сейчас могут быть недоступны. Проверьте подключение к интернету и повторите попытку позже."
},
"app.auth-servers.unreachable.header": {
"message": "Нет связи с серверами аутентификации"
},
"app.settings.developer-mode-enabled": {
"message": "Режим разработчика включён."
},
"app.settings.downloading": {
"message": "Скачивание v{version}"
"message": "Скачивание версии {version}"
},
"app.settings.tabs.appearance": {
"message": "Внешний вид"
@@ -17,20 +23,23 @@
"app.settings.tabs.java-installations": {
"message": "Установки Java"
},
"app.settings.tabs.language": {
"message": "Язык"
},
"app.settings.tabs.privacy": {
"message": "Конфиденциальность"
},
"app.settings.tabs.resource-management": {
"message": "Управление данными"
"message": "Управление ресурсами"
},
"app.update-toast.body": {
"message": "Modrinth App v{version} готово к установке! Перезапустите приложение, чтобы обновить его, или оно обновится автоматически при закрытии."
"message": "Версия Modrinth App {version} готова к установке! Перезапустите приложение, чтобы обновить его, или оно обновится автоматически после закрытия."
},
"app.update-toast.body.download-complete": {
"message": "Скачивание Modrinth App v{version} завершено. Перезапустите приложение, чтобы обновить его, или оно обновится автоматически при закрытии."
"message": "Скачивание версии Modrinth App {version} завершено. Перезапустите приложение, чтобы обновить его, или оно обновится автоматически после закрытия."
},
"app.update-toast.body.metered": {
"message": "Modrinth App v{version} доступно для скачивания! Используется лимитное подключение, поэтому скачивание не началось автоматически."
"message": "Версия Modrinth App {version} доступна для скачивания! Используется сеть с лимитным тарифным планом, поэтому скачивание не началось автоматически."
},
"app.update-toast.changelog": {
"message": "Список изменений"
@@ -66,34 +75,34 @@
"message": "Перезапустить и обновить"
},
"friends.action.add-friend": {
"message": "Добавить в друзья"
"message": "Добавить в друзья"
},
"friends.action.view-friend-requests": {
"message": "{count} {count, plural, one {запрос} few {запроса} many {запросов} other {запроса}} дружбы"
"message": "{count} {count, plural, one {запрос} few {запроса} many {запросов} other {запроса}} дружбы"
},
"friends.add-friend.submit": {
"message": "Отправить запрос дружбы"
},
"friends.add-friend.title": {
"message": "Добавление в друзья"
"message": "Добавление в друзья"
},
"friends.add-friend.username.description": {
"message": "Оно может быть не таким, как в Minecraft!"
"message": "Оно может быть не таким, как в Minecraft!"
},
"friends.add-friend.username.placeholder": {
"message": "Введите имя на Modrinth..."
},
"friends.add-friend.username.title": {
"message": "Какое имя у друга на Modrinth?"
"message": "Какое имя у друга на Modrinth?"
},
"friends.add-friends-to-share": {
"message": "<link>Добавьте друзей</link>, чтобы знать, во что они играют!"
"message": "<link>Добавьте друзей</link>, чтобы видеть их статус игры!"
},
"friends.friend.cancel-request": {
"message": "Отменить запрос"
},
"friends.friend.remove-friend": {
"message": "Удалить из друзей"
"message": "Удалить из друзей"
},
"friends.friend.request-sent": {
"message": "Отправлен запрос дружбы"
@@ -105,7 +114,7 @@
"message": "Друзья"
},
"friends.heading.active": {
"message": "В игре"
"message": "Активно"
},
"friends.heading.offline": {
"message": "Не в сети"
@@ -117,10 +126,10 @@
"message": "В ожидании"
},
"friends.no-friends-match": {
"message": "Нет друзей по запросу «{query}»"
"message": "Нет друзей по запросу «{query}»"
},
"friends.search-friends-placeholder": {
"message": "Поиск по друзьям..."
"message": "Поиск по друзьям..."
},
"friends.section.heading": {
"message": "{title} — {count}"
@@ -129,7 +138,7 @@
"message": "<link>Войдите в Modrinth</link>, чтобы добавлять друзей и знать, во что они играют!"
},
"instance.add-server.add-and-play": {
"message": "Добавить и играть"
"message": "Добавить и играть"
},
"instance.add-server.add-server": {
"message": "Добавить сервер"
@@ -162,10 +171,10 @@
"message": "Сбросить иконку"
},
"instance.edit-world.title": {
"message": "Изменение мира"
"message": "Настройка мира"
},
"instance.filter.disabled": {
"message": "Отключённые"
"message": "Отключённые проекты"
},
"instance.filter.updates-available": {
"message": "Доступны обновления"
@@ -180,7 +189,7 @@
"message": "Сервер Minecraft"
},
"instance.server-modal.resource-pack": {
"message": "Наборы ресурсов"
"message": "Набор ресурсов"
},
"instance.settings.tabs.general": {
"message": "Основные"
@@ -192,7 +201,7 @@
"message": "Удалить сборку"
},
"instance.settings.tabs.general.delete.description": {
"message": "Навсегда удаляет сборку с устройства, включая миры, настройки и весь установленный контент. Учтите, что после удаления сборки восстановить её невозможно."
"message": "Навсегда удаляет сборку с вашего устройства, включая миры, настройки и весь установленный контент. Учтите, что после удаления сборки восстановить её будет невозможно."
},
"instance.settings.tabs.general.deleting.button": {
"message": "Удаление..."
@@ -201,13 +210,13 @@
"message": "Создать копию"
},
"instance.settings.tabs.general.duplicate-button.tooltip.installing": {
"message": "Копирование невозможно в процессе установки."
"message": "Создание копии невозможно во время установки."
},
"instance.settings.tabs.general.duplicate-instance": {
"message": "Создание копии сборки"
},
"instance.settings.tabs.general.duplicate-instance.description": {
"message": "Создаёт копию сборки, включая миры, настройки, моды и т. д."
"message": "Создаёт копию сборки, включая миры, настройки, моды и т.д."
},
"instance.settings.tabs.general.edit-icon": {
"message": "Изменить значок"
@@ -225,10 +234,10 @@
"message": "Группировка"
},
"instance.settings.tabs.general.library-groups.create": {
"message": "Создать группу"
"message": "Создать новую группу"
},
"instance.settings.tabs.general.library-groups.description": {
"message": "Разделение по группам позволяет организовать сборки по разным разделам в библиотеке."
"message": "Разделение по группам позволяет организовать сборки по разным разделам в библиотеке."
},
"instance.settings.tabs.general.library-groups.enter-name": {
"message": "Введите название группы"
@@ -258,7 +267,7 @@
"message": "Перед запуском"
},
"instance.settings.tabs.hooks.pre-launch.description": {
"message": "Выполняется перед запуском игры."
"message": "Выполняется перед запуском сборки."
},
"instance.settings.tabs.hooks.pre-launch.enter": {
"message": "Введите команду перед запуском..."
@@ -270,16 +279,16 @@
"message": "Обёртка"
},
"instance.settings.tabs.hooks.wrapper.description": {
"message": "Команда-обёртка для запуска Minecraft."
"message": "Команда-обёртка для запуска Minecraft."
},
"instance.settings.tabs.hooks.wrapper.enter": {
"message": "Команда обёртки..."
"message": "Введите команду-обёртку..."
},
"instance.settings.tabs.installation": {
"message": "Установка"
},
"instance.settings.tabs.installation.change-version.already-installed.modded": {
"message": "{platform} {version} для Minecraft {game_version} уже установлен"
"message": "{platform} {version} для Minecraft {game_version} уже установлен"
},
"instance.settings.tabs.installation.change-version.already-installed.vanilla": {
"message": "Ванильный Minecraft {game_version} уже установлен"
@@ -306,7 +315,7 @@
"message": "Отладочная информация:"
},
"instance.settings.tabs.installation.fetching-modpack-details": {
"message": "Получение данных о сборке"
"message": "Получение сведений о сборке"
},
"instance.settings.tabs.installation.game-version": {
"message": "Версия игры"
@@ -324,13 +333,13 @@
"message": "Minecraft {version}"
},
"instance.settings.tabs.installation.no-connection": {
"message": "Не удалось получить данные о сборке. Проверьте соединение с интернетом."
"message": "Не удалось получить сведения о сборке. Проверьте подключение к интернету."
},
"instance.settings.tabs.installation.no-loader-versions": {
"message": "{loader} недоступен для Minecraft {version}. Выберите другой загрузчик."
"message": "{loader} недоступен для Minecraft {version}. Выберите другой загрузчик."
},
"instance.settings.tabs.installation.no-modpack-found": {
"message": "Не удалось найти сборку на Modrinth, с которой связано установленное содержимое."
"message": "Не удалось найти сборку на Modrinth, с которой связано установленное содержимое."
},
"instance.settings.tabs.installation.platform": {
"message": "Платформа"
@@ -342,7 +351,7 @@
"message": "Переустановка сборки"
},
"instance.settings.tabs.installation.reinstall.confirm.description": {
"message": "При переустановке всё установленное содержимое будет сброшено к исходному состоянию сборки, а внесённые в её состав изменения удалены. Это может исправить проблемы с игрой, вызванные изменениями, однако есть риск повреждения миров, зависящих от них."
"message": "Установленное содержимое будет сброшено к исходному состоянию сборки, а внесённые в её состав изменения будут удалены. Это может исправить возникшие после изменений проблемы с игрой, но зависящие от добавленного содержимого миры могут перестать корректно работать."
},
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "Вы действительно хотите переустановить сборку?"
@@ -360,10 +369,10 @@
"message": "Исправление"
},
"instance.settings.tabs.installation.repair.confirm.description": {
"message": "Будут переустановлены зависимости Minecraft, а также определены и восстановлены повреждённые файлы. Это может помочь с проблемами запуска игры на стороне лаунчера, но не исправит проблемы и вылеты из-за ошибок в имеющихся модах."
"message": "Будут переустановлены зависимости Minecraft, а также определены и восстановлены повреждённые файлы. Это может помочь с проблемами запуска игры на стороне лаунчера, но не исправит проблемы и вылеты из-за ошибок в имеющихся модах."
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "Восстановить сборку?"
"message": "Исправить сборку?"
},
"instance.settings.tabs.installation.repair.in-progress": {
"message": "Выполняется исправление"
@@ -372,10 +381,10 @@
"message": "Сбросить выбор"
},
"instance.settings.tabs.installation.show-all-versions": {
"message": "Показать все версии"
"message": "Показывать все версии"
},
"instance.settings.tabs.installation.tooltip.action.change-version": {
"message": "изменить версию"
"message": "сменить версию"
},
"instance.settings.tabs.installation.tooltip.action.install": {
"message": "установить"
@@ -384,16 +393,16 @@
"message": "переустановить"
},
"instance.settings.tabs.installation.tooltip.action.repair": {
"message": "восстановить"
"message": "исправить"
},
"instance.settings.tabs.installation.tooltip.cannot-while-installing": {
"message": "Невозможно {action} во время установки"
"message": "Невозможно {action} во время установки"
},
"instance.settings.tabs.installation.tooltip.cannot-while-offline": {
"message": "Невозможно {action} без подключения к сети"
"message": "Невозможно {action} без подключения к сети"
},
"instance.settings.tabs.installation.tooltip.cannot-while-repairing": {
"message": "Невозможно {action} во время восстановления"
"message": "Невозможно {action} во время исправления"
},
"instance.settings.tabs.installation.unknown-version": {
"message": "(неизвестная версия)"
@@ -405,7 +414,7 @@
"message": "Если продолжить, восстановить связь будет невозможно без создания новой сборки. Сборка утратит возможность получать обновления и станет локальной."
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "Вы уверены, что хотите отвязать сборку?"
"message": "Вы действительно хотите отвязать сборку?"
},
"instance.settings.tabs.installation.unlink.description": {
"message": "Установленное содержимое связано со сборкой на Modrinth, что блокирует возможность менять версии игры, модов или загрузчик. Нажатие на кнопку ниже необратимо разрушит эту связь."
@@ -429,7 +438,7 @@
"message": "Расположение Java"
},
"instance.settings.tabs.java.java-memory": {
"message": "Выделение памяти"
"message": "Выделенная память"
},
"instance.settings.tabs.window": {
"message": "Окно"
@@ -441,13 +450,13 @@
"message": "Полноэкранный режим"
},
"instance.settings.tabs.window.fullscreen.description": {
"message": "Запускать игру в полноэкранном режиме (используя options.txt)."
"message": "Запускать игру в полноэкранном режиме (через options.txt)."
},
"instance.settings.tabs.window.height": {
"message": "Высота"
},
"instance.settings.tabs.window.height.description": {
"message": "Высота окна игры при запуске."
"message": "Высота окна игры при запуске."
},
"instance.settings.tabs.window.height.enter": {
"message": "Введите высоту..."
@@ -456,7 +465,7 @@
"message": "Ширина"
},
"instance.settings.tabs.window.width.description": {
"message": "Ширина окна игры при запуске."
"message": "Ширина окна игры при запуске."
},
"instance.settings.tabs.window.width.enter": {
"message": "Введите ширину..."
@@ -468,7 +477,7 @@
"message": "Сервер Minecraft"
},
"instance.worlds.cant_connect": {
"message": "Невозможно подключиться к серверу"
"message": "Невозможно подключиться к серверу"
},
"instance.worlds.copy_address": {
"message": "Копировать адрес"
@@ -477,7 +486,7 @@
"message": "Не показывать на главной"
},
"instance.worlds.filter.available": {
"message": "Доступны"
"message": "Доступно"
},
"instance.worlds.game_already_open": {
"message": "Сборка уже запущена"
@@ -492,10 +501,10 @@
"message": "Не удалось связаться с сервером"
},
"instance.worlds.no_server_quick_play": {
"message": "Подключиться напрямую можно только к серверам Minecraft Alpha 1.0.5 и выше"
"message": "Подключаться к серверам напрямую можно только в Minecraft Alpha 1.0.5 и выше"
},
"instance.worlds.no_singleplayer_quick_play": {
"message": "Открывать миры напрямую можно только в Minecraft 1.20 и выше"
"message": "Открывать миры напрямую можно только в Minecraft 1.20 и выше"
},
"instance.worlds.play_instance": {
"message": "Запустить сборку"
+118 -1
View File
@@ -1,7 +1,16 @@
{
"app.auth-servers.unreachable.body": {
"message": "Minecrafts autentiseringsservrar kan vara nere just nu. Kontrollera din internetanslutning och försök igen senare."
},
"app.auth-servers.unreachable.header": {
"message": "Kan ej nå autentiseringsservrarna"
},
"app.settings.developer-mode-enabled": {
"message": "Utvecklarläge aktiverat."
},
"app.settings.downloading": {
"message": "Ladda ner v{version}"
},
"app.settings.tabs.appearance": {
"message": "Utseende"
},
@@ -14,12 +23,120 @@
"app.settings.tabs.java-installations": {
"message": "Java installationer"
},
"app.settings.tabs.language": {
"message": "Språk"
},
"app.settings.tabs.privacy": {
"message": "Integritet"
},
"app.settings.tabs.resource-management": {
"message": "Resurshantering"
},
"app.update-toast.body": {
"message": "Modrinth App v{version} är redo att laddas ner! Ladda om för att uppdatera nu, eller automatiskt när du stänger Modrinth App."
},
"app.update-toast.body.download-complete": {
"message": "Modrinth App v{version} har laddats ner. Ladda om för att uppdatera nu, eller automatiskt när du stänger Modrinth App."
},
"app.update-toast.body.metered": {
"message": "Modrinth App v{version} är nu tillgänglig! Eftersom du använder ett nätverk med datatrafikbegränsningar har vi inte laddat ner det automatiskt."
},
"app.update-toast.changelog": {
"message": "Ändringslogg"
},
"app.update-toast.download": {
"message": "Ladda ner ({size})"
},
"app.update-toast.downloading": {
"message": "Laddar ner..."
},
"app.update-toast.reload": {
"message": "Ladda om"
},
"app.update-toast.title": {
"message": "Uppdatering tillgänglig"
},
"app.update-toast.title.download-complete": {
"message": "Nedladdning slutförd"
},
"app.update.complete-toast.text": {
"message": "Tryck här för att visa ändringsloggen."
},
"app.update.complete-toast.title": {
"message": "Version {version} har installerats!"
},
"app.update.download-update": {
"message": "Ladda ner uppdatering"
},
"app.update.downloading-update": {
"message": "Laddar ner uppdatering ({percent}%)"
},
"app.update.reload-to-update": {
"message": "Ladda om för att installera uppdatering"
},
"friends.action.add-friend": {
"message": "Lägg till en vän"
},
"friends.action.view-friend-requests": {
"message": "{count} vän{count, plural, one {förfrågan} other {förfrågningar}}"
},
"friends.add-friend.submit": {
"message": "Skicka vänförfrågan"
},
"friends.add-friend.title": {
"message": "Lägga till en vän"
},
"friends.add-friend.username.description": {
"message": "Det kan vara annorlunda från deras Minecraft-användarnamn!"
},
"friends.add-friend.username.placeholder": {
"message": "Ange Modrinth-användarnamn..."
},
"friends.add-friend.username.title": {
"message": "Vad är din väns Modrinth-användarnamn?"
},
"friends.add-friends-to-share": {
"message": "<link>Lägg till vänner</link> för att se vad de spelar!"
},
"friends.friend.cancel-request": {
"message": "Avbryt förfrågan"
},
"friends.friend.remove-friend": {
"message": "Ta bort vän"
},
"friends.friend.request-sent": {
"message": "Vänförfrågan skickad"
},
"friends.friend.view-profile": {
"message": "Visa profil"
},
"friends.heading": {
"message": "Vänner"
},
"friends.heading.active": {
"message": "Aktiva"
},
"friends.heading.offline": {
"message": "Offline"
},
"friends.heading.online": {
"message": "Online"
},
"friends.heading.pending": {
"message": "Väntar"
},
"friends.no-friends-match": {
"message": "Inga vänner matchar ''{query}''"
},
"friends.search-friends-placeholder": {
"message": "Sök efter vänner..."
},
"friends.section.heading": {
"message": "{title}: {count}"
},
"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!"
},
"instance.add-server.add-and-play": {
"message": "Lägg till och spela"
},
@@ -156,7 +273,7 @@
"message": "Ange kommando före start..."
},
"instance.settings.tabs.hooks.title": {
"message": "Startkrokar för spelet"
"message": "Hooks för spelstart"
},
"instance.settings.tabs.hooks.wrapper": {
"message": "Omslag"
@@ -17,6 +17,9 @@
"app.settings.tabs.java-installations": {
"message": "การจัดการ Java ที่ติดตั้ง"
},
"app.settings.tabs.language": {
"message": "ภาษา"
},
"app.settings.tabs.privacy": {
"message": "ความเป็นส่วนตัว"
},
@@ -65,6 +68,48 @@
"app.update.reload-to-update": {
"message": "รีโหลดเพื่อติดตั้งอัพเดต"
},
"friends.action.add-friend": {
"message": "เพิ่มเพื่อน"
},
"friends.add-friend.submit": {
"message": "ส่งคำขอเป็นเพื่อน"
},
"friends.add-friend.username.description": {
"message": "อาจจะแตกต่างกับชื่อใน Minecraft"
},
"friends.add-friend.username.placeholder": {
"message": "ใส่ชื่อบน Modrinth"
},
"friends.add-friend.username.title": {
"message": "เพื่อนของคุณมีชื่อบน Modrinth ว่าอะไร"
},
"friends.friend.cancel-request": {
"message": "ยกเลิกคำขอ"
},
"friends.friend.remove-friend": {
"message": "ลบเพื่อน"
},
"friends.friend.request-sent": {
"message": "ส่งคำขอเป็นเพื่อนแล้ว"
},
"friends.friend.view-profile": {
"message": "ดูโปรไฟล์"
},
"friends.heading": {
"message": "เพื่อน"
},
"friends.heading.offline": {
"message": "ออฟไลน์"
},
"friends.no-friends-match": {
"message": "ไม่มีเพื่อนชื่อว่า \"{query}\""
},
"friends.search-friends-placeholder": {
"message": "ค้นหาเพื่อน"
},
"friends.section.heading": {
"message": "{title} - {count}"
},
"instance.add-server.add-and-play": {
"message": "เพิ่มและเล่นทันที"
},
+140 -17
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Maaaring hindi maaabot ang mga Minecraft na pansilbi sa pagpapatunay sa ngayon. Tingnan mo ang hugpong mo sa internet at muling subukan mamaya."
},
"app.auth-servers.unreachable.header": {
"message": "Hindi maabot ang mga pansilbi sa pagpapatunay"
},
"app.settings.developer-mode-enabled": {
"message": "Nakabukas ang paraan ng tagapagsulong."
},
@@ -24,10 +30,10 @@
"message": "Pamamahala ng mapagkukunan"
},
"app.update-toast.body": {
"message": "Handa nang maikabit ang Modrinth App v{version}. Muling dalhin upang maisapanahon, o pagkusaan pagpinid ng Modrinth App."
"message": "Handa nang maikabit ang Modrinth App v{version}. Muling dalhin upang maisapanahon, o pagkusaan sa pagpinid ng Modrinth App."
},
"app.update-toast.body.download-complete": {
"message": "Tapos nang maidalamba ang Modrinth App v{version}. Muling dalhin upang maisapanahon, o pagkusaan pagpinid ng Modrinth App."
"message": "Tapos nang maidalamba ang Modrinth App v{version}. Muling dalhin upang maisapanahon, o pagkusaan sa pagpinid ng Modrinth App."
},
"app.update-toast.body.metered": {
"message": "Magagamit na ngayon ang Modrinth App v{version}! Hindi namin dinalamba kaagad dahil bilang ang inyong kabalagan."
@@ -125,11 +131,14 @@
"friends.section.heading": {
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Mag-sign-in sa Modrinth na panagutan</link> upang maidagdag ang mga kaibigan at malaman ang kanilang nilalaro!"
},
"instance.add-server.add-and-play": {
"message": "Idagdag at laruin"
},
"instance.add-server.add-server": {
"message": "Idagdag ang tagapagsilbi"
"message": "Idagdag ang pansilbi"
},
"instance.add-server.resource-pack.disabled": {
"message": "Hindi pinahihintulotan"
@@ -141,10 +150,10 @@
"message": "Magpahintulot"
},
"instance.add-server.title": {
"message": "Magdagdag ng tagapagsilbi"
"message": "Magdagdag ng pansilbi"
},
"instance.edit-server.title": {
"message": "Baguhin ang tagapagsilbi"
"message": "Baguhin ang pansilbi"
},
"instance.edit-world.hide-from-home": {
"message": "Huwag ipakita sa panig ng Bahay"
@@ -156,7 +165,7 @@
"message": "Minecraft na Daigdig"
},
"instance.edit-world.reset-icon": {
"message": "Walain ang lambana"
"message": "Isauli ang lambana"
},
"instance.edit-world.title": {
"message": "Baguhin ang daigdig"
@@ -168,13 +177,13 @@
"message": "May mga bagong pagbabago"
},
"instance.server-modal.address": {
"message": "Tinitirhan"
"message": "Padalahan"
},
"instance.server-modal.name": {
"message": "Pangalan"
},
"instance.server-modal.placeholder-name": {
"message": "Minecraft na Tagapagsilbi"
"message": "Minecraft na Pansilbi"
},
"instance.server-modal.resource-pack": {
"message": "Balot ng mapagkukunan"
@@ -291,7 +300,7 @@
"message": "Kinakabit"
},
"instance.settings.tabs.installation.change-version.cannot-while-fetching": {
"message": "Naghahanap ng mga bersiyon ng mga balot ng pambago"
"message": "Naghahanap ng mga bersiyon ng balot ng pambago"
},
"instance.settings.tabs.installation.change-version.in-progress": {
"message": "Kinakabit ang bagong bersiyon"
@@ -302,29 +311,53 @@
"instance.settings.tabs.installation.debug-information": {
"message": "Kaalaman sa pagdalisay:"
},
"instance.settings.tabs.installation.fetching-modpack-details": {
"message": "Naghahanap ng mga kuntil-butil ng balot ng pambago"
},
"instance.settings.tabs.installation.game-version": {
"message": "Bersiyon ng laro"
},
"instance.settings.tabs.installation.install": {
"message": "Ikabit"
},
"instance.settings.tabs.installation.install.in-progress": {
"message": "Nagkakabit ngayon"
},
"instance.settings.tabs.installation.loader-version": {
"message": "Bersiyon ng {loader}"
},
"instance.settings.tabs.installation.minecraft-version": {
"message": "Minecraft {version}"
},
"instance.settings.tabs.installation.no-connection": {
"message": "Hindi makapaghanap ng mga kuntil-butil ng nakakawing na balot ng pambago. Mangyaring pakitingnan ang hugpong sa internet mo."
},
"instance.settings.tabs.installation.no-loader-versions": {
"message": "Hindi magagamit ang {loader} sa Minecraft {version}. Sumubok ng ibang tagapagtala ng pambago."
"message": "Hindi magagamit ang {loader} sa Minecraft {version}. Sumubok ng ibang pandala ng pambago."
},
"instance.settings.tabs.installation.no-modpack-found": {
"message": "Nakakawing itong tularan sa isang balot ng pambago, ngunit hindi makikita ang balot ng pambago na ito sa Modrinth."
},
"instance.settings.tabs.installation.platform": {
"message": "Batyawan"
},
"instance.settings.tabs.installation.reinstall.button": {
"message": "Ikabit muli ang balot ng pambago"
},
"instance.settings.tabs.installation.reinstall.button.reinstalling": {
"message": "Kinakabit muli ang balot ng pambago"
},
"instance.settings.tabs.installation.reinstall.confirm.description": {
"message": "Maaaring mababalik sa dati ang lahat ng kinabit o binago na nilalaman sa kung anong ibibigay ng balot ng pambago, tatanggalin ang mga pambago o nilalamang idinagdag mo lalo na ang nangunang balot ng pambago. Maaari nitong masiayos ang mga hindi inaasahang pag-uugali kung may pagbabagong naganap sa tularan, ngunit kung nakabatay na ang iyong daigdig sa karagdagang nilalaman, maaari nitong masira ang mga umiiral na daigdig."
"message": "Maaaring mababalik sa dati ang lahat ng kinabit at binago na nilalaman sa kung anong hinahandog ng balot ng pambago, tatanggalin ang mga pambago at nilalamang idinagdag mo sa nangunang balot ng pambago. Maaari nitong masiayos ang mga hindi inaasahang pag-uugali kung may pagbabagong naganap sa tularan, ngunit kung nakabatay na ang iyong daigdig sa karagdagang nilalaman, maaari nitong masira ang mga umiiral na daigdig."
},
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "Tiyak bang nais mong ikabit muli ang tularang ito?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "Ibalik ang mga nilalaman ng tularan sa pangunahing kalagayan, tatanggalin ang mga pambago o nilalamang idinagdag mo lalo na ang nangunang balot ng pambago."
"message": "Mababalik ang mga nilalaman ng tularan sa pangunahing kalagayan, tatanggalin ang mga pambago at nilalamang idinagdag mo sa nangunang balot ng pambago."
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "Ikabit muli ang balot ng pambago"
},
"instance.settings.tabs.installation.repair.button": {
"message": "Kumpunihin"
@@ -333,11 +366,17 @@
"message": "Kinukumpuni"
},
"instance.settings.tabs.installation.repair.confirm.description": {
"message": "Sa pag-aayos, magkakabit muli ng mga sandalan ng Minecraft at maghahanap ng mga katiwalian. Maaaring malutas nito ang mga isyu kung hindi malulunsad ang laro dahil sa mga kamalian sa tagapaglunsad, ngunit hindi nito malulutas ang mga isyu o pagbagsak na dulot nga mga pambagong nakakabit."
"message": "Sa pagkukumpuni, magkakabit muli ng mga sandalan ng Minecraft at maghahanap ng mga katiwalian. Maaaring malutas nito ang mga isyu kung hindi malulunsad ang laro dahil sa mga kamalian sa tagapaglunsad, ngunit hindi nito malulutas ang mga isyu at pagbagsak na dulot ng mga pambagong nakakabit."
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "Kumpunihin ang tularan?"
},
"instance.settings.tabs.installation.repair.in-progress": {
"message": "Kinukumpuni ngayon"
},
"instance.settings.tabs.installation.reset-selections": {
"message": "Sa kasalukuyan isauli"
},
"instance.settings.tabs.installation.show-all-versions": {
"message": "Ipakita ang lahat ng bersiyon"
},
@@ -365,46 +404,130 @@
"instance.settings.tabs.installation.unknown-version": {
"message": "(hindi kilalang bersiyon)"
},
"instance.settings.tabs.installation.unlink.button": {
"message": "Paghiwalayin sa tularan"
},
"instance.settings.tabs.installation.unlink.confirm.description": {
"message": "Kung ipapatuloy mo, hindi mo na itong maaaring maikawing muli ng hindi lilikha ng panibagong tularan. Hindi ka makatatanggap ng mga pagsasapanahon ng pambalot ng pambago at magiging pangkaraniwan na itong."
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "Tiyak bang nais mong tanggalin ang tularang ito?"
},
"instance.settings.tabs.installation.unlink.description": {
"message": "Nakakawing ang tularang ito sa isang pambalot ng pambago, ibig sabihin hindi maisapanahon ang mga pambago at hindi mo mapapalitan ang tagapagdala ng pambago o ang bersiyon ng Minecraft."
"message": "Nakakawing ang tularang ito sa isang balot ng pambago, ibig sabihin hindi maisapanahon ang mga pambago at hindi mo mapapalitan ang pandala ng pambago at ang bersiyon ng Minecraft. Mananatiling patid ang tularang ito sa balot ng pambago kung hihiwalayin."
},
"instance.settings.tabs.installation.unlink.title": {
"message": "Paghiwalayin sa balot ng pambago"
},
"instance.settings.tabs.java": {
"message": "Java at memorya"
},
"instance.settings.tabs.java.environment-variables": {
"message": "Mga kapaligirang aligin"
},
"instance.settings.tabs.java.hooks": {
"message": "Mga kawit"
},
"instance.settings.tabs.java.java-arguments": {
"message": "Mga sadyansukat ng java"
},
"instance.settings.tabs.java.java-installation": {
"message": "Kabit ng Java"
},
"instance.settings.tabs.java.java-memory": {
"message": "Memoryang inilaan"
},
"instance.settings.tabs.window": {
"message": "Durungawan"
},
"instance.settings.tabs.window.custom-window-settings": {
"message": "Mga kagustuhan sa pasadyang durungawan"
},
"instance.settings.tabs.window.fullscreen": {
"message": "Buong-tabing"
},
"instance.settings.tabs.window.fullscreen.description": {
"message": "Gagawing magsisimulang nakabuong-tabing ang laro paglunsad (gamit ang options.txt)."
},
"instance.settings.tabs.window.height": {
"message": "Tayog"
},
"instance.settings.tabs.window.height.description": {
"message": "Ang tayog ng durungawan ng laro kung nalunsad."
},
"instance.settings.tabs.window.height.enter": {
"message": "Ilagay ang tayog..."
},
"instance.settings.tabs.window.width": {
"message": "Lapad"
},
"instance.settings.tabs.window.width.description": {
"message": "Ang lapad ng durungawan ng laro kung nalunsad."
},
"instance.settings.tabs.window.width.enter": {
"message": "Ilagay ang lapad..."
},
"instance.settings.title": {
"message": "Mga Kagustuhan"
},
"instance.worlds.a_minecraft_server": {
"message": "Isang Minecraft na Tagapagsilbi"
"message": "Isang Minecraft na Pansilbi"
},
"instance.worlds.cant_connect": {
"message": "Hindi makahugpong sa pansilbi"
},
"instance.worlds.copy_address": {
"message": "Sipiin ang tinitirhan"
"message": "Sipiin ang padalahan"
},
"instance.worlds.dont_show_on_home": {
"message": "Huwag ipakita sa Tirahan"
},
"instance.worlds.filter.available": {
"message": "Magagamit"
},
"instance.worlds.game_already_open": {
"message": "Bukas namang ang "
},
"instance.worlds.hardcore": {
"message": "Paraang pangdalubhasan"
},
"instance.worlds.incompatible_server": {
"message": "Hindi magkatugma sa pansilbi"
},
"instance.worlds.no_contact": {
"message": "Hindi makapag-ugnay sa pansilbi"
},
"instance.worlds.no_server_quick_play": {
"message": "Tuwiran kang makakalukso lamang sa mga server na nasa Minecraft Alpha 1.0.5+"
},
"instance.worlds.no_singleplayer_quick_play": {
"message": "Tuwiran kang makakalukso lamang sa mga pang-isahang larong daigdig na nasa Minecraft 1.20+"
},
"instance.worlds.play_instance": {
"message": "Laruin ang tularan"
},
"instance.worlds.type.server": {
"message": "Tagapagsilbi"
"message": "Pansilbi"
},
"instance.worlds.type.singleplayer": {
"message": "Pang-isahang laro"
},
"instance.worlds.view_instance": {
"message": "Tingnan ang tularan"
},
"instance.worlds.world_in_use": {
"message": "Ginagamit ang daigdig"
},
"search.filter.locked.instance": {
"message": "Sagot na ng tularan"
},
"search.filter.locked.instance-game-version.title": {
"message": "Sagot na ng tularan ang bersiyon ng laro"
},
"search.filter.locked.instance-loader.title": {
"message": "Sagot na ng tularan ang pandala ng laro"
},
"search.filter.locked.instance.sync": {
"message": "Makipagsabayan sa tularan"
}
}
+33 -24
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Minecraft doğrulama sunucuları çökmüş olabilir. İnternet bağlantını kontrol et ve daha sonra tekrar dene."
},
"app.auth-servers.unreachable.header": {
"message": "Doğrulama sunucularına erişilemedi"
},
"app.settings.developer-mode-enabled": {
"message": "Geliştirici modu açıldı."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Java kurulumları"
},
"app.settings.tabs.language": {
"message": "Dil"
},
"app.settings.tabs.privacy": {
"message": "Gizlilik"
},
@@ -24,10 +33,10 @@
"message": "Kaynak yönetimi"
},
"app.update-toast.body": {
"message": "Modrinth App v{version} yüklemeye hazır! Şimdi güncellemek için uygulamayı yeniden başlat ya da sen Modrinth App'ı kapatınca otomatik olarak güncellensin."
"message": "Modrinth App v{version} kurulmaya hazır! Şimdi güncellemek için uygulamayı yeniden yükle ya da sen Modrinth App'i kapatınca otomatik olarak güncellensin."
},
"app.update-toast.body.download-complete": {
"message": "Modrinth App v{version} indirmeyi bitirdi. Şimdi güncellemek için uygulamayı yeniden başlat ya da sen Modrinth App'ı kapatınca otomatik olarak güncellensin."
"message": "Modrinth App v{version} indirildi. Şimdi güncellemek için uygulamayı yeniden yükle ya da Modrinth App'i kapatınca otomatik olarak güncellensin."
},
"app.update-toast.body.metered": {
"message": "Modrinth App v{version} artık mevcut! Ölçülü ağda olduğunuzdan otomatik olarak indirmedik."
@@ -54,22 +63,22 @@
"message": "Değişiklikleri görüntülemek için buraya tıklayın."
},
"app.update.complete-toast.title": {
"message": "Sürüm {version} başarıyla indirildi!"
"message": "{version} sürümü başarıyla kuruldu!"
},
"app.update.download-update": {
"message": "Güncellemeyi indir"
},
"app.update.downloading-update": {
"message": "Güncelleme indiriliyor({percent}%)"
"message": "Güncelleme indiriliyor (%{percent})"
},
"app.update.reload-to-update": {
"message": "Güncellemeyi yüklemek için yeniden yükleyin"
"message": "Güncellemeyi kurmak için yeniden yükleyin"
},
"friends.action.add-friend": {
"message": "Bir arkadaş ekle"
},
"friends.action.view-friend-requests": {
"message": "{count} Arkadaşlık {count, plural,one {isteği} other {istekleri}}"
"message": "{count} arkadaşlık isteği"
},
"friends.add-friend.submit": {
"message": "Arkadaşlık isteği gönder"
@@ -78,7 +87,7 @@
"message": "Bir arkadaş ekleme"
},
"friends.add-friend.username.description": {
"message": "Minecraft kullanıcı adlarından farklı olabilir!"
"message": "Onun Minecraft kullanıcı adından farklı olabilir!"
},
"friends.add-friend.username.placeholder": {
"message": "Modrinth kullanıcı adını girin..."
@@ -87,7 +96,7 @@
"message": "Arkadaşının Modrinth kullanıcı adı nedir?"
},
"friends.add-friends-to-share": {
"message": "Arkadaşlarının ne oynadığını görmek için <link>onları ekle</link>!"
"message": "<link>Arkadaş ekleyerek</link> ne oynadıklarını gör!"
},
"friends.friend.cancel-request": {
"message": "İsteği iptal et"
@@ -108,10 +117,10 @@
"message": "Aktif"
},
"friends.heading.offline": {
"message": "Deaktif"
"message": "Çevrim dışı"
},
"friends.heading.online": {
"message": "Çevrimiçi"
"message": "Çevrim içi"
},
"friends.heading.pending": {
"message": "Bekleniyor"
@@ -126,7 +135,7 @@
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "Arkadaş eklemek ve ne oynadıklarını görmek için bir <link>Modrinth hesabına giriş yap</link>!"
"message": "<link>Modrinth hesabına giriş yaparak</link> arkadaş ekle ve ne oynadıklarını gör!"
},
"instance.add-server.add-and-play": {
"message": "Ekle ve oyna"
@@ -294,7 +303,7 @@
"message": "Kuruluyor"
},
"instance.settings.tabs.installation.change-version.cannot-while-fetching": {
"message": "Mod paket sürümleri çekiliyor"
"message": "Mod paketi sürümleri çekiliyor"
},
"instance.settings.tabs.installation.change-version.in-progress": {
"message": "Yeni sürüm kuruluyor"
@@ -306,7 +315,7 @@
"message": "Ayıklama bilgisi:"
},
"instance.settings.tabs.installation.fetching-modpack-details": {
"message": "Mod paketi detayları alınıyor"
"message": "Mod paketi detayları çekiliyor"
},
"instance.settings.tabs.installation.game-version": {
"message": "Oyun sürümü"
@@ -324,7 +333,7 @@
"message": "Minecraft {version}"
},
"instance.settings.tabs.installation.no-connection": {
"message": "Bağlı modpaketi detayları alınamıyor. Lütfen internet bağlantınızı kontrol edin."
"message": "Bağlı mod paketi detayları çekilemiyor. Lütfen internet bağlantınızı kontrol edin."
},
"instance.settings.tabs.installation.no-loader-versions": {
"message": "{loader}, Minecraft {version} için mevcut değil. Başka bir mod yükleyici deneyin."
@@ -336,22 +345,22 @@
"message": "Platform"
},
"instance.settings.tabs.installation.reinstall.button": {
"message": "Mod paketini tekrar indir"
"message": "Mod paketini yeniden kur"
},
"instance.settings.tabs.installation.reinstall.button.reinstalling": {
"message": "Mod paketi tekrar kuruluyor"
"message": "Mod paketi yeniden kuruluyor"
},
"instance.settings.tabs.installation.reinstall.confirm.description": {
"message": "Tekrar indirmek modpack'teki indirilmiş veya değişmiş her şeyi sıfırlar ve senin modpack'in üstüne eklediğin herhangi bir modu veya içeriği siler. Eğer kurulumu değiştirdi isen bu bazı şeyleri düzeltebilir, fakat ekstra indirdiğin modları kullanan dünyalar varsa bozulabilirler."
"message": "Yeniden kurmak mod paketindeki indirilmiş veya değiştirilmiş her şeyi mod paketinin sağladıklarına sıfırlar, senin mod paketinin üstüne eklediğin modları ve içerikleri siler. Bu değişiklik kaynaklı beklenmedik durumları düzeltebilir, ama dünyaların ek kurulmuş içeriğe bağımlıysa o dünyaları bozabilir."
},
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "Bu kurulumu tekrar indirmek istediğine emin misin?"
"message": "Bu kurulumu tekrar kurmak istediğine emin misin?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "Orijinal modpack'in üstüne eklediğin herşeyi silip kurulumun içeriğini eski haline döndürür."
"message": "Kurulumun içeriğini ilk hâline geri döndürür, orijinal mod paketinin üstüne eklediğin modları ve içerikleri siler."
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "Modpack'i Tekrar İndir"
"message": "Mod paketini yeniden kur"
},
"instance.settings.tabs.installation.repair.button": {
"message": "Tamir Et"
@@ -381,7 +390,7 @@
"message": "indirilemez"
},
"instance.settings.tabs.installation.tooltip.action.reinstall": {
"message": "tekrar indirilemez"
"message": "yeniden kur"
},
"instance.settings.tabs.installation.tooltip.action.repair": {
"message": "tamir edilemez"
@@ -402,16 +411,16 @@
"message": "Kurulum bağını koparr"
},
"instance.settings.tabs.installation.unlink.confirm.description": {
"message": "Eğer devam edersen, yeni bir kurulum oluşturmadan geri bağlayamayacaksın. Modpack güncellemeleri almayacaksın ve bu kurulum normal kuruluma dönüşecek."
"message": "Devam edersen bu kurulumu geri bağlayamazsın. Mod paketi güncellemeleri almazsın ve bu kurulum normal kuruluma dönüşür."
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "Bu kurulumun bağını koparmak istediğine eminmisin?"
},
"instance.settings.tabs.installation.unlink.description": {
"message": "Bu kurulum bir modpack'e bağlı, bu nedenle modlar güncellenemez ve mod yükleyicisini veya Minecraft sürümünü değiştiremezsin."
"message": "Bu kurulum bir mod paketine bağlı, bu nedenle modlar güncellenemez ve mod yükleyicisini veya Minecraft sürümünü değiştiremezsin. Kurulumdan mod paketini koparmak kalıcıdır."
},
"instance.settings.tabs.installation.unlink.title": {
"message": "Modpack bağını kopar"
"message": "Mod paketi bağını kopar"
},
"instance.settings.tabs.java": {
"message": "Java ve bellek"
+28 -19
View File
@@ -1,4 +1,10 @@
{
"app.auth-servers.unreachable.body": {
"message": "Сервери автентифікації Minecraft можливо зараз не працюють. Перевірте з’єднання з Інтернетом та спробуйте пізніше."
},
"app.auth-servers.unreachable.header": {
"message": "Не вдається зв’язатися зі серверами автентифікації"
},
"app.settings.developer-mode-enabled": {
"message": "Увімкнено режим розробника."
},
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Інсталяції Java"
},
"app.settings.tabs.language": {
"message": "Мова"
},
"app.settings.tabs.privacy": {
"message": "Конфіденційність"
},
@@ -312,7 +321,7 @@
"message": "Версія гри"
},
"instance.settings.tabs.installation.install": {
"message": "Встановити"
"message": "Установити"
},
"instance.settings.tabs.installation.install.in-progress": {
"message": "Відбувається встановлення"
@@ -324,13 +333,13 @@
"message": "Minecraft {version}"
},
"instance.settings.tabs.installation.no-connection": {
"message": "Неможливо отримати деталі пов'язаної збірки. Будь ласка, перевірте ваше з'єднання з інтернетом."
"message": "Не вдається отримати деталі повязаної збірки. Будь ласка, перевірте ваше зєднання з інтернетом."
},
"instance.settings.tabs.installation.no-loader-versions": {
"message": "{loader} недоступний для Minecraft {version}. Спробуйте інший завантажувач модів."
},
"instance.settings.tabs.installation.no-modpack-found": {
"message": я інсталяція пов'язана зі збіркою, проте саму збірку не вдалося знайти на Modrinth."
"message": ей екземпляр повязана з пакетом модів, проте сам пакет модів не вдалося знайти на Modrinth."
},
"instance.settings.tabs.installation.platform": {
"message": "Платформа"
@@ -342,13 +351,13 @@
"message": "Перевстановлення збірки"
},
"instance.settings.tabs.installation.reinstall.confirm.description": {
"message": "Перевстановлення скине увесь доданий або модифікований вміст до наданого збіркою, прибираючи будь-які, додатково встановлені вами модифікації чи вміст.\nЯкщо ви змінювали інсталяцію, це може виправити непередбачувану поведінку, однак, якщо ваші світи залежать від додаткового вмісту, це може зламати ці світи."
"message": "Перевстановлення скине увесь доданий або модифікований уміст до наданого пакета модів, прибираючи будь-які, додатково встановлені вами моди чи вміст.\nЯкщо ви змінювали екземпляр, це може виправити непередбачувану поведінку, однак, якщо ваші світи залежать від додаткового вмісту, це може зламати ці світи."
},
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "Ви впевнені, що хочете перевстановити цей профіль?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "Скидає вміст інсталяції до початкового стану, прибираючи будь-які модифікації чи вміст, що було додано поверх оригінальної збірки."
"message": "Скидає вміст інсталяції до початкового стану, прибираючи будь-які моди чи вміст, що було додано поверх оригінального пакета модів."
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "Перевстановити збірку"
@@ -360,7 +369,7 @@
"message": "Лагодження"
},
"instance.settings.tabs.installation.repair.confirm.description": {
"message": "Відновлення перевстановлює залежності Minecraft та перевіряє їх на наявність пошкоджень. Це може розв'язати проблеми, якщо ваша гра не запускається через помилки завантажувача, але не розв'яже проблеми або збої, пов'язані зі встановленими модифікаціями."
"message": "Відновлення перевстановлює залежності Minecraft та перевіряє їх на наявність пошкоджень. Це може розвязати проблеми, якщо ваша гра не запускається через помилки запускача, але не розвяже проблеми або збої, повязані зі встановленими модифікаціями."
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "Відновити профіль?"
@@ -387,34 +396,34 @@
"message": "полагодити"
},
"instance.settings.tabs.installation.tooltip.cannot-while-installing": {
"message": "Неможливо {action} під час встановлення"
"message": "Неможливо {action} під час установлення"
},
"instance.settings.tabs.installation.tooltip.cannot-while-offline": {
"message": "Неможливо {action} без підключення до інтернету"
"message": "Неможливо {action} без з’єднання з Інтернетом"
},
"instance.settings.tabs.installation.tooltip.cannot-while-repairing": {
"message": "Неможливо {action} під час виправлення"
"message": "Неможливо {action} під час лагодження"
},
"instance.settings.tabs.installation.unknown-version": {
"message": "(невідома версія)"
},
"instance.settings.tabs.installation.unlink.button": {
"message": "Відв'язати профіль"
"message": "Відвязати профіль"
},
"instance.settings.tabs.installation.unlink.confirm.description": {
"message": "Якщо ви продовжите, ви не зможете повторно підв'язати його без створення повністю нової інсталяції. Ви більше не будете отримувати оновлення збірки та вона стане звичайною."
"message": "Якщо ви продовжите, ви не зможете повторно підвязати його без створення повністю нової інсталяції. Ви більше не будете отримувати оновлення пакета модів та вона стане звичайною."
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "Ви впевнені, що хочете відв'язати цю інсталяцію?"
"message": "Ви впевнені, що хочете відвязати цей екземпляр?"
},
"instance.settings.tabs.installation.unlink.description": {
"message": "Цей профіль пов'язаний зі збіркою, тобто, не можна оновлювати модифікації та не можна змінювати завантажувач чи версію Minecraft. Відв'язання призведе до остаточного відключення цієї інсталяції від збірки."
"message": "Цей профіль повязаний з пакетом модів, тобто, не можна оновлювати моди та не можна змінювати завантажувач чи версію Minecraft. Відвязання призведе до остаточного від’єднання цієї інсталяції від пакета модів."
},
"instance.settings.tabs.installation.unlink.title": {
"message": "Відв'язати від збірки"
"message": "Відвязати від збірки"
},
"instance.settings.tabs.java": {
"message": "Java та пам'ять"
"message": "Java та память"
},
"instance.settings.tabs.java.environment-variables": {
"message": "Змінні середовища"
@@ -426,10 +435,10 @@
"message": "Аргументи Java"
},
"instance.settings.tabs.java.java-installation": {
"message": "Інсталяції Java"
"message": "Установлення Java"
},
"instance.settings.tabs.java.java-memory": {
"message": "Виділена пам'ять"
"message": "Виділена память"
},
"instance.settings.tabs.window": {
"message": "Вікно"
@@ -468,7 +477,7 @@
"message": "Сервер Minecraft"
},
"instance.worlds.cant_connect": {
"message": "Неможливо під'єднатися до сервера"
"message": "Неможливо підєднатися до сервера"
},
"instance.worlds.copy_address": {
"message": "Скопіювати адресу"
@@ -489,7 +498,7 @@
"message": "Несумісний сервер"
},
"instance.worlds.no_contact": {
"message": "Не вдалося зв'язатися з сервером"
"message": "Не вдалося звязатися з сервером"
},
"instance.worlds.no_server_quick_play": {
"message": "Запускатися у сервери напряму можливо лише починаючи з версії Minecraft Alpha 1.0.5"
+197 -2
View File
@@ -1,9 +1,21 @@
{
"app.auth-servers.unreachable.body": {
"message": "Máy chủ xác thực của Minecraft có thể đang bị sập. Hãy kiểm tra kết nối Internet của bạn và thử lại sau."
},
"app.auth-servers.unreachable.header": {
"message": "Không thể kết nối đến máy chủ xác thực"
},
"app.settings.developer-mode-enabled": {
"message": "Chế độ nhà phát triển đã được bật."
},
"app.settings.downloading": {
"message": "Đang tải về v{version}"
},
"app.settings.tabs.appearance": {
"message": "Diện mạo"
"message": "Giao diện"
},
"app.settings.tabs.default-instance-options": {
"message": "Tuỳ chọn bản hiện thể mặc định"
},
"app.settings.tabs.feature-flags": {
"message": "Các cờ tính năng"
@@ -11,12 +23,120 @@
"app.settings.tabs.java-installations": {
"message": "Các bản cài Java"
},
"app.settings.tabs.language": {
"message": "Ngôn ngữ"
},
"app.settings.tabs.privacy": {
"message": "Quyền riêng tư"
},
"app.settings.tabs.resource-management": {
"message": "Quản lý tài nguyên"
},
"app.update-toast.body": {
"message": "Modrinth phiên bản v{version} đã sẵn sằng! Chạy lại để cập nhật ngay bây giờ, hoặc cập nhật tự động khi bạn đóng Modrinth."
},
"app.update-toast.body.download-complete": {
"message": "Modrinth phiên bản v{version} đã tải xuống hoàn tất. Chạy lại để cập nhật ngay bây giờ, hoặc tự động cập nhật khi bạn thoát Modrinth."
},
"app.update-toast.body.metered": {
"message": "Modrinth phiên bản v{version} đang có sẵn! Do mạng của bạn đang tính phí theo dung lượng và có định mức, chúng tôi không tải phiên bản này tự động."
},
"app.update-toast.changelog": {
"message": "Nhật ký thay đổi"
},
"app.update-toast.download": {
"message": "Tải xuống ({size})"
},
"app.update-toast.downloading": {
"message": "Đang tải xuống..."
},
"app.update-toast.reload": {
"message": "Tải lại"
},
"app.update-toast.title": {
"message": "Có bản cập nhật mới"
},
"app.update-toast.title.download-complete": {
"message": "Đã tải xuống xong"
},
"app.update.complete-toast.text": {
"message": "Nháy vào đây để xem nhật kí thay đổi."
},
"app.update.complete-toast.title": {
"message": "Phiên bản {version} đã được cài đặt thành công!"
},
"app.update.download-update": {
"message": "Tải về bản cập nhật"
},
"app.update.downloading-update": {
"message": "Đang tải xuống bản cập nhật ({percent}%)"
},
"app.update.reload-to-update": {
"message": "Hãy tải lại để cài đặt bản cập nhật"
},
"friends.action.add-friend": {
"message": "Thêm một người bạn"
},
"friends.action.view-friend-requests": {
"message": "{count} yêu cầu kết bạn"
},
"friends.add-friend.submit": {
"message": "Gửi yêu cầu kết bạn"
},
"friends.add-friend.title": {
"message": "Thêm một người bạn"
},
"friends.add-friend.username.description": {
"message": "Nó có thể khác với tên người dùng Minecraft của họ!"
},
"friends.add-friend.username.placeholder": {
"message": "Nhập tên người dùng Modrinth..."
},
"friends.add-friend.username.title": {
"message": "Tên người dùng Modrinth của bạn của bạn là gì?"
},
"friends.add-friends-to-share": {
"message": "Hãy <link>Thêm bạn bè</link> để biết họ đang chơi gì!"
},
"friends.friend.cancel-request": {
"message": "Huỷ yêu cầu"
},
"friends.friend.remove-friend": {
"message": "Loại bỏ bạn bè"
},
"friends.friend.request-sent": {
"message": "Đã gửi yêu cầu kết bạn"
},
"friends.friend.view-profile": {
"message": "Xem hồ sơ"
},
"friends.heading": {
"message": "Bạn bè"
},
"friends.heading.active": {
"message": "Đang hoạt động"
},
"friends.heading.offline": {
"message": "Ngoại tuyến"
},
"friends.heading.online": {
"message": "Trực tuyến"
},
"friends.heading.pending": {
"message": "Đang chờ"
},
"friends.no-friends-match": {
"message": "Không có người bạn nào phù hợp với ''{query}''"
},
"friends.search-friends-placeholder": {
"message": "Tìm kiếm bạn bè..."
},
"friends.section.heading": {
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "<link>Đăng nhập bằng tài khoản Modrinth</link> để kết bạn và xem họ đang chơi gì!"
},
"instance.add-server.add-and-play": {
"message": "Thêm và chơi"
},
@@ -30,7 +150,7 @@
"message": "Bật"
},
"instance.add-server.resource-pack.prompt": {
"message": "Hỏi trước"
"message": "Nhắc nhở"
},
"instance.add-server.title": {
"message": "Thêm máy chủ"
@@ -74,6 +194,15 @@
"instance.settings.tabs.general": {
"message": "Tổng quát"
},
"instance.settings.tabs.general.delete": {
"message": "Xoá hiện thể"
},
"instance.settings.tabs.general.delete.button": {
"message": "Xoá hiện thể"
},
"instance.settings.tabs.general.delete.description": {
"message": "Xoá vĩnh viễn bản này khỏi thiết bị, bao gồm thế giới, cài đặt, và các nội dung được cài đặt khác. Hãy cân nhắc vì bạn không thể khôi phục sau khi xoá."
},
"instance.settings.tabs.general.deleting.button": {
"message": "Đang xoá..."
},
@@ -83,6 +212,12 @@
"instance.settings.tabs.general.duplicate-button.tooltip.installing": {
"message": "Không thể nhân đôi trong khi đang cài đặt."
},
"instance.settings.tabs.general.duplicate-instance": {
"message": "Sao đôi hiện thể"
},
"instance.settings.tabs.general.duplicate-instance.description": {
"message": "Tạo ra một bản sao của hiện thể này, bao gồm các thế giới, cấu hình, mod, v.v.."
},
"instance.settings.tabs.general.edit-icon": {
"message": "Sửa biểu tượng"
},
@@ -110,6 +245,15 @@
"instance.settings.tabs.general.name": {
"message": "Tên"
},
"instance.settings.tabs.hooks": {
"message": "Khởi chạy Hooks"
},
"instance.settings.tabs.hooks.custom-hooks": {
"message": "Hooks khởi chạy tuỳ biến"
},
"instance.settings.tabs.hooks.description": {
"message": "Hooks cho phép người dùng nâng cao chạy câu lệnh hệ thống trước và sau khi chạy game."
},
"instance.settings.tabs.hooks.post-exit": {
"message": "Sau khi thoát"
},
@@ -122,6 +266,24 @@
"instance.settings.tabs.hooks.pre-launch": {
"message": "Trước khi chạy"
},
"instance.settings.tabs.hooks.pre-launch.description": {
"message": "Chạy trước khi hiện thể được khởi chạy."
},
"instance.settings.tabs.hooks.pre-launch.enter": {
"message": "Nhập câu lệnh trước khi chạy..."
},
"instance.settings.tabs.hooks.title": {
"message": "Hooks để chạy game"
},
"instance.settings.tabs.hooks.wrapper": {
"message": "Lệnh bao bọc (Wrapper)"
},
"instance.settings.tabs.hooks.wrapper.description": {
"message": "Lệnh bao bọc (Wrapper) để khởi chạy Minecraft."
},
"instance.settings.tabs.hooks.wrapper.enter": {
"message": "Nhập lệnh bao bọc..."
},
"instance.settings.tabs.installation": {
"message": "Cài đặt"
},
@@ -140,6 +302,21 @@
"instance.settings.tabs.installation.change-version.button.installing": {
"message": "Đang cài đặt"
},
"instance.settings.tabs.installation.change-version.cannot-while-fetching": {
"message": "Đang tìm phiên bản modpack"
},
"instance.settings.tabs.installation.change-version.in-progress": {
"message": "Cài đặt phiên bản mới"
},
"instance.settings.tabs.installation.currently-installed": {
"message": "Đã cài đặt"
},
"instance.settings.tabs.installation.debug-information": {
"message": "Thông tin gỡ lỗi:"
},
"instance.settings.tabs.installation.fetching-modpack-details": {
"message": "Đang tìm chi tiết của modpack"
},
"instance.settings.tabs.installation.game-version": {
"message": "Phiên bản trò chơi"
},
@@ -179,6 +356,9 @@
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "Bạn có chắc là bạn muốn tải lại phiên bản này không?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "Đặt lại bản cài đặt này về phiên bản ban đầu, xoá các mod và nội dung bạn đã cài đặt đè lên modpack gốc."
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "Cài lại gói mod"
},
@@ -188,6 +368,9 @@
"instance.settings.tabs.installation.repair.button.repairing": {
"message": "Đang sửa chữa"
},
"instance.settings.tabs.installation.repair.confirm.description": {
"message": "Trình Sửa lỗi sẽ cài đặt lại các tệp phụ thuộc của Minecraft và kiểm tra các lỗi hư hại dữ liệu. Hành động này có thể khắc phục sự cố nếu trò chơi không khởi chạy được do lỗi trình khởi động, nhưng sẽ không giải quyết được các vấn đề hoặc sự cố sập game liên quan đến các bản mod đã cài đặt."
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "Sửa chữa phiên bản?"
},
@@ -227,6 +410,9 @@
"instance.settings.tabs.installation.unlink.button": {
"message": "Xóa liên kết phiên bản"
},
"instance.settings.tabs.installation.unlink.confirm.description": {
"message": "Nếu tiếp tục, bạn sẽ không thể liên kết nó lại mà phải tạo một bản mới. Bạn sẽ không nhận được các bản cập nhật của modpack và nó sẽ trở lại bình thường."
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "Bạn có chắc là bạn muốn xóa liên kết phiên bản này không?"
},
@@ -296,9 +482,15 @@
"instance.worlds.copy_address": {
"message": "Sao chép địa chỉ"
},
"instance.worlds.dont_show_on_home": {
"message": "Không hiện ở Trang chủ"
},
"instance.worlds.filter.available": {
"message": "Có sẵn"
},
"instance.worlds.game_already_open": {
"message": "Bản này đã mở sẵn"
},
"instance.worlds.hardcore": {
"message": "Chế độ siêu khó"
},
@@ -326,6 +518,9 @@
"instance.worlds.view_instance": {
"message": "Xem phiên bản"
},
"instance.worlds.world_in_use": {
"message": "Thế giới đang mở"
},
"search.filter.locked.instance": {
"message": "Được cung cấp bởi phiên bản"
},
+79 -67
View File
@@ -1,9 +1,15 @@
{
"app.auth-servers.unreachable.body": {
"message": "Minecraft 认证服务器现在可能无法使用。请检查你的网络连接,并稍后再试。"
},
"app.auth-servers.unreachable.header": {
"message": "无法连接到认证服务器"
},
"app.settings.developer-mode-enabled": {
"message": "开发者模式已启用。"
},
"app.settings.downloading": {
"message": "下载{version}"
"message": "正在下载 v{version}"
},
"app.settings.tabs.appearance": {
"message": "外观"
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Java 管理"
},
"app.settings.tabs.language": {
"message": "语言"
},
"app.settings.tabs.privacy": {
"message": "隐私"
},
@@ -24,67 +33,70 @@
"message": "资源管理"
},
"app.update-toast.body": {
"message": "Modrinth App v{version} 准备好更新。现在重新启动以更新,或在您关闭Modrinth App时自动更新。"
"message": "Modrinth App v{version} 更新已就绪!立即重启更新,或退出时自动安装。"
},
"app.update-toast.body.download-complete": {
"message": "Modrinth App v{version} 已经完成下载好。现在重新启动以更新,或在您关闭Modrinth App时自动更新。"
"message": "Modrinth App v{version} 下载完成。立即重启更新,或退出时自动安装。"
},
"app.update-toast.body.metered": {
"message": "Modrinth App v{version} 现在可用。自从您处在按流量计费的网络环境,我们没有自动下载更新。"
"message": "Modrinth App v{version} 现已发布!由于你正在使用按流量计费的网络,该更新未自动下载。"
},
"app.update-toast.changelog": {
"message": "更日志"
"message": "更日志"
},
"app.update-toast.download": {
"message": "下载({size}"
},
"app.update-toast.downloading": {
"message": "下载中... ..."
"message": "下载中"
},
"app.update-toast.reload": {
"message": "重新启动"
"message": "重启应用"
},
"app.update-toast.title": {
"message": "更新可用"
"message": "有可用更新"
},
"app.update-toast.title.download-complete": {
"message": "下载完成"
},
"app.update.complete-toast.text": {
"message": "点击此处查看更日志。"
"message": "点击此处查看更日志。"
},
"app.update.complete-toast.title": {
"message": "版本{version}已成功安装!"
"message": "版本{version} 已成功安装!"
},
"app.update.download-update": {
"message": "下载完成"
"message": "下载更新"
},
"app.update.downloading-update": {
"message": "更新下载中({percent}%)"
"message": "下载更新中({percent}%"
},
"app.update.reload-to-update": {
"message": "重新启动以安装更新"
"message": "立即重启以安装更新"
},
"friends.action.add-friend": {
"message": "加好友"
"message": "加好友"
},
"friends.action.view-friend-requests": {
"message": "{count}好友请求"
"message": "{count}好友请求"
},
"friends.add-friend.submit": {
"message": "发送好友请求"
},
"friends.add-friend.title": {
"message": "添加好友"
},
"friends.add-friend.username.description": {
"message": "可能和他们的 Minecraft 用户名不一样"
"message": "可能与对方的 Minecraft 用户名不"
},
"friends.add-friend.username.placeholder": {
"message": "输入Modrinth用户名……"
"message": "输入 Modrinth 用户名……"
},
"friends.add-friend.username.title": {
"message": "你朋友的 Modrinth 用户名是什么?"
"message": "友的 Modrinth 用户名是什么?"
},
"friends.add-friends-to-share": {
"message": "<link>添加好友</link>看他们在玩什么!"
"message": "<link>添加好友</link>,看看他们在玩什么!"
},
"friends.friend.cancel-request": {
"message": "取消请求"
@@ -102,7 +114,7 @@
"message": "好友"
},
"friends.heading.active": {
"message": "活跃"
"message": "活跃"
},
"friends.heading.offline": {
"message": "离线"
@@ -114,16 +126,16 @@
"message": "待确认"
},
"friends.no-friends-match": {
"message": "没有匹配“{query}”的友"
"message": "没有对应名字“{query}”的友"
},
"friends.search-friends-placeholder": {
"message": "搜索好友…"
"message": "搜索好友…"
},
"friends.section.heading": {
"message": "{title} - {count}"
},
"friends.sign-in-to-add-friends": {
"message": "登录你的 <link>Modrinth账号</link> 添加好友并查看他们在玩什么!"
"message": "登录你的 <link>Modrinth 账号</link>添加好友,看看他们在玩什么!"
},
"instance.add-server.add-and-play": {
"message": "添加并游玩"
@@ -138,7 +150,7 @@
"message": "启用"
},
"instance.add-server.resource-pack.prompt": {
"message": "提示"
"message": "询问"
},
"instance.add-server.title": {
"message": "添加服务器"
@@ -153,19 +165,19 @@
"message": "名称"
},
"instance.edit-world.placeholder-name": {
"message": "Minecraft 世界"
"message": "Minecraft 存档"
},
"instance.edit-world.reset-icon": {
"message": "重置图标"
},
"instance.edit-world.title": {
"message": "编辑世界"
"message": "编辑存档"
},
"instance.filter.disabled": {
"message": "已禁用的项目"
},
"instance.filter.updates-available": {
"message": "有更新"
"message": "有可用更新"
},
"instance.server-modal.address": {
"message": "地址"
@@ -183,13 +195,13 @@
"message": "通用"
},
"instance.settings.tabs.general.delete": {
"message": "删除实例"
"message": "删除实例"
},
"instance.settings.tabs.general.delete.button": {
"message": "删除实例"
"message": "删除实例"
},
"instance.settings.tabs.general.delete.description": {
"message": "从你的设备永久删除实例,包括你的世界,配置和所有已安装内容。注意:你无法恢复被删除的实例。"
"message": "从设备永久删除实例,包括所有存档、配置文件及已安装内容。此操作不可撤销,请谨慎操作。"
},
"instance.settings.tabs.general.deleting.button": {
"message": "删除中……"
@@ -219,13 +231,13 @@
"message": "选择图标"
},
"instance.settings.tabs.general.library-groups": {
"message": "分组"
"message": "实例分组"
},
"instance.settings.tabs.general.library-groups.create": {
"message": "创建新的分组"
},
"instance.settings.tabs.general.library-groups.description": {
"message": "库分组功能可以让你将实例整理到库中的不同部分。"
"message": "实例分组可将你的实例整理到实例库的不同版块中。"
},
"instance.settings.tabs.general.library-groups.enter-name": {
"message": "输入分组名称"
@@ -240,16 +252,16 @@
"message": "自定义启动钩子"
},
"instance.settings.tabs.hooks.description": {
"message": "启动钩子允许高级用户在游戏启动前后运行特定的系统命令。"
"message": "钩子允许高级用户在启动游戏前后运行特定的系统命令。"
},
"instance.settings.tabs.hooks.post-exit": {
"message": "退出后运行"
"message": "退出后"
},
"instance.settings.tabs.hooks.post-exit.description": {
"message": "在游戏关闭后运行。"
},
"instance.settings.tabs.hooks.post-exit.enter": {
"message": "输入退出后运行的命令…"
"message": "输入退出后运行的命令…"
},
"instance.settings.tabs.hooks.pre-launch": {
"message": "启动前"
@@ -258,25 +270,25 @@
"message": "在实例启动前运行。"
},
"instance.settings.tabs.hooks.pre-launch.enter": {
"message": "输入启动前命令……"
"message": "输入启动前命令..."
},
"instance.settings.tabs.hooks.title": {
"message": "游戏启动钩子"
},
"instance.settings.tabs.hooks.wrapper": {
"message": "封装器"
"message": "包装命令"
},
"instance.settings.tabs.hooks.wrapper.description": {
"message": "用于启动 Minecraft 的封装器命令。"
"message": "用于启动 Minecraft 的包装命令。"
},
"instance.settings.tabs.hooks.wrapper.enter": {
"message": "输入封装器命令……"
"message": "输入包装命令……"
},
"instance.settings.tabs.installation": {
"message": "安装"
},
"instance.settings.tabs.installation.change-version.already-installed.modded": {
"message": "适用于 Minecraft {game_version} 的{platform} {version}已安装"
"message": "适用于 Minecraft {game_version} 的 {platform} {version} 已安装"
},
"instance.settings.tabs.installation.change-version.already-installed.vanilla": {
"message": "原版 {game_version} 已安装"
@@ -297,7 +309,7 @@
"message": "正在安装新版本"
},
"instance.settings.tabs.installation.currently-installed": {
"message": "当前安装"
"message": "当前安装"
},
"instance.settings.tabs.installation.debug-information": {
"message": "调试信息:"
@@ -312,19 +324,19 @@
"message": "安装"
},
"instance.settings.tabs.installation.install.in-progress": {
"message": "安装"
"message": "正在安装"
},
"instance.settings.tabs.installation.loader-version": {
"message": "{loader}版本"
"message": "{loader} 版本"
},
"instance.settings.tabs.installation.minecraft-version": {
"message": "Minecraft {version}"
},
"instance.settings.tabs.installation.no-connection": {
"message": "获取整合包详细信息失败。请检查你的网络连接。"
"message": "无法获取整合包详细信息。请检查网络连接。"
},
"instance.settings.tabs.installation.no-loader-versions": {
"message": "{loader}不适用于Minecraft {version}。试试换一个模组加载器。"
"message": "{loader} 不支持 Minecraft {version}。请尝试其他模组加载器。"
},
"instance.settings.tabs.installation.no-modpack-found": {
"message": "此实例与一个整合包相关联,但在 Modrinth 上无法找到该整合包。"
@@ -339,13 +351,13 @@
"message": "正在重新安装整合包"
},
"instance.settings.tabs.installation.reinstall.confirm.description": {
"message": "重新安装将会把所有已安装或修改的内容重置为整合包提供的状态,移除在原始安装基础上添加的任何模组或内容。可能修复因实例更改导致的异常行为,但如果你的世界依赖额外安装的内容,则可能会坏现有世界。"
"message": "重新安装实例将并重置所有已安装或修改的内容,恢复到整合包的初始状态,移除在原来的安装内容上另加的所有模组或内容。该操作有可能修复因实例更改导致的异常,但若你的世界目前依赖额外安装的内容的操作,此举可能会坏现有世界。"
},
"instance.settings.tabs.installation.reinstall.confirm.title": {
"message": "你确定要重新安装该实例吗?"
},
"instance.settings.tabs.installation.reinstall.description": {
"message": "将实例的内容重置为原始状态,移除你在原整合包基础上添加的任何模组或内容。"
"message": "重置实例至原始状态,移除你在原整合包上添加的所有模组及其数据。"
},
"instance.settings.tabs.installation.reinstall.title": {
"message": "重新安装整合包"
@@ -357,16 +369,16 @@
"message": "修复中"
},
"instance.settings.tabs.installation.repair.confirm.description": {
"message": "修复重新安装 Minecraft 依赖并检查是否损坏。这可能解决因启动器相关错误导致游戏无法启动的问题,但不解决由已安装模组引的问题崩溃。"
"message": "修复实例时,会将重新安装 Minecraft 依赖并检查文件完整性。该操作可能解决因启动器错误导致的启动失败问题,但不解决由模组引的问题崩溃。"
},
"instance.settings.tabs.installation.repair.confirm.title": {
"message": "确定修复该实例吗?"
},
"instance.settings.tabs.installation.repair.in-progress": {
"message": "修复进行中"
"message": "修复中,请闭目养神,少安毋躁"
},
"instance.settings.tabs.installation.reset-selections": {
"message": "重置为当前"
"message": "重置为当前版本"
},
"instance.settings.tabs.installation.show-all-versions": {
"message": "列出所有版本"
@@ -393,25 +405,25 @@
"message": "修复时无法{action}"
},
"instance.settings.tabs.installation.unknown-version": {
"message": "(未知版本)"
"message": "嗯?未知版本)"
},
"instance.settings.tabs.installation.unlink.button": {
"message": "解除关联实例"
},
"instance.settings.tabs.installation.unlink.confirm.description": {
"message": "如果继续操作,你将无法在不创建全新实例的情况下重新关联它。你也将不再接收整合包更新,该实例变为普通实例。"
"message": "继续操作,该实例将无法重新关联至原整合包,除非创建全新实例。此后,不再接收整合包的任何更新,该实例变为普通实例。"
},
"instance.settings.tabs.installation.unlink.confirm.title": {
"message": "你确定要解除关联实例吗?"
},
"instance.settings.tabs.installation.unlink.description": {
"message": "该实例已与一整合包相关联,这意味着你无法更新模组,且不能更改模组加载器Minecraft版本。解除关联将永久断开此实例与整合包的连接。"
"message": "该实例已关联至整合包,因此无法单独更新模组,也无法更改模组加载器Minecraft 版本。解除关联后,该实例将无法重新关联至整合包。"
},
"instance.settings.tabs.installation.unlink.title": {
"message": "断开与整合包关联"
"message": "解除整合包关联"
},
"instance.settings.tabs.java": {
"message": "Java及内存"
"message": "Java 及内存"
},
"instance.settings.tabs.java.environment-variables": {
"message": "环境变量"
@@ -420,10 +432,10 @@
"message": "钩子"
},
"instance.settings.tabs.java.java-arguments": {
"message": "Java参数"
"message": "Java 参数"
},
"instance.settings.tabs.java.java-installation": {
"message": "Java安装路径"
"message": "Java 安装路径"
},
"instance.settings.tabs.java.java-memory": {
"message": "分配内存"
@@ -447,7 +459,7 @@
"message": "游戏启动时的窗口高度。"
},
"instance.settings.tabs.window.height.enter": {
"message": "输入高度…"
"message": "输入高度…"
},
"instance.settings.tabs.window.width": {
"message": "宽度"
@@ -456,13 +468,13 @@
"message": "游戏启动时的窗口宽度。"
},
"instance.settings.tabs.window.width.enter": {
"message": "输入宽度…"
"message": "输入宽度…"
},
"instance.settings.title": {
"message": "设置"
},
"instance.worlds.a_minecraft_server": {
"message": "一个Minecraft服务器"
"message": "Minecraft 服务器"
},
"instance.worlds.cant_connect": {
"message": "无法连接至服务器"
@@ -477,7 +489,7 @@
"message": "可用"
},
"instance.worlds.game_already_open": {
"message": "实例已打开"
"message": "实例已启动"
},
"instance.worlds.hardcore": {
"message": "极限模式"
@@ -486,28 +498,28 @@
"message": "服务器不兼容"
},
"instance.worlds.no_contact": {
"message": "无法联系服务器"
"message": "无法连接服务器"
},
"instance.worlds.no_server_quick_play": {
"message": "只能在 Minecraft Alpha 1.0.5 及以版本中直接进入服务器"
"message": "只能在 Minecraft Alpha 1.0.5 及以后的版本中快速进入服务器"
},
"instance.worlds.no_singleplayer_quick_play": {
"message": "只能在 Minecraft 1.20 及以版本中直接进入单人世界"
"message": "只能在 Minecraft 1.20 及以后的版本中快速进入单人游戏世界"
},
"instance.worlds.play_instance": {
"message": "游玩实例"
},
"instance.worlds.type.server": {
"message": "服务"
"message": "服务"
},
"instance.worlds.type.singleplayer": {
"message": "单人游戏"
},
"instance.worlds.view_instance": {
"message": "预览实例"
"message": "查看实例"
},
"instance.worlds.world_in_use": {
"message": "世界正在使用中"
"message": "世界用中"
},
"search.filter.locked.instance": {
"message": "由该实例提供"
+16 -7
View File
@@ -1,9 +1,15 @@
{
"app.auth-servers.unreachable.body": {
"message": "Minecraft 驗證伺服器現在可能無法使用。請檢查你的網路連線,並稍後再試。"
},
"app.auth-servers.unreachable.header": {
"message": "無法連線到驗證伺服器"
},
"app.settings.developer-mode-enabled": {
"message": "開發人員模式已啟用。"
},
"app.settings.downloading": {
"message": "下載 v{version}"
"message": "正在下載 v{version}"
},
"app.settings.tabs.appearance": {
"message": "外觀"
@@ -17,6 +23,9 @@
"app.settings.tabs.java-installations": {
"message": "Java 安裝"
},
"app.settings.tabs.language": {
"message": "語言"
},
"app.settings.tabs.privacy": {
"message": "隱私"
},
@@ -87,7 +96,7 @@
"message": "你好友的 Modrinth 使用者名稱是什麼?"
},
"friends.add-friends-to-share": {
"message": "<link>新增好友</link>即可查看對方正在玩什麼!"
"message": "<link>新增好友</link>即可查看他們正在玩什麼!"
},
"friends.friend.cancel-request": {
"message": "取消請求"
@@ -96,7 +105,7 @@
"message": "移除好友"
},
"friends.friend.request-sent": {
"message": "好友請求已送出"
"message": "已送出好友請求"
},
"friends.friend.view-profile": {
"message": "查看個人檔案"
@@ -222,13 +231,13 @@
"message": "選擇圖示"
},
"instance.settings.tabs.general.library-groups": {
"message": "遊戲庫群組"
"message": "實例庫群組"
},
"instance.settings.tabs.general.library-groups.create": {
"message": "建立新的群組"
},
"instance.settings.tabs.general.library-groups.description": {
"message": "遊戲庫群組讓你可以將實例整理到遊戲庫中的不同分類。"
"message": "實例庫群組讓你可以將實例整理到實例庫中的不同分類。"
},
"instance.settings.tabs.general.library-groups.enter-name": {
"message": "輸入群組名稱"
@@ -369,7 +378,7 @@
"message": "修復進行中"
},
"instance.settings.tabs.installation.reset-selections": {
"message": "重設為目前"
"message": "重設為目前版本"
},
"instance.settings.tabs.installation.show-all-versions": {
"message": "顯示所有版本"
@@ -495,7 +504,7 @@
"message": "你只能在 Minecraft Alpha 1.0.5 以上版本直接加入伺服器"
},
"instance.worlds.no_singleplayer_quick_play": {
"message": "你只能在 Minecraft 1.20 以上版本直接加入伺服器"
"message": "你只能在 Minecraft 1.20 以上版本直接進入單人遊戲世界"
},
"instance.worlds.play_instance": {
"message": "遊戲實例"
+4 -19
View File
@@ -2,31 +2,15 @@ import 'floating-vue/dist/style.css'
import * as Sentry from '@sentry/vue'
import { VueScanPlugin } from '@taijased/vue-render-tracker'
import { createPlugin } from '@vintl/vintl/plugin'
import { VueQueryPlugin } from '@tanstack/vue-query'
import FloatingVue from 'floating-vue'
import { createPinia } from 'pinia'
import { createApp } from 'vue'
import App from '@/App.vue'
import i18n from '@/i18n.config'
import router from '@/routes'
const VIntlPlugin = createPlugin({
controllerOpts: {
defaultLocale: 'en-US',
locale: 'en-US',
locales: [
{
tag: 'en-US',
meta: {
displayName: 'American English',
},
},
],
},
globalMixin: true,
injectInto: [],
})
const vueScan = new VueScanPlugin({
enabled: false, // Enable or disable the tracker
showOverlay: true, // Show overlay to visualize renders
@@ -45,6 +29,7 @@ Sentry.init({
tracesSampleRate: 0.1,
})
app.use(VueQueryPlugin)
app.use(vueScan)
app.use(router)
app.use(pinia)
@@ -58,6 +43,6 @@ app.use(FloatingVue, {
},
},
})
app.use(VIntlPlugin)
app.use(i18n)
app.mount('#app')
+2 -1
View File
@@ -4,6 +4,7 @@ import type { Category, GameVersion, Platform, ProjectType, SortType, Tags } fro
import {
Button,
Checkbox,
defineMessages,
DropdownSelect,
injectNotificationManager,
LoadingIndicator,
@@ -11,9 +12,9 @@ import {
SearchFilterControl,
SearchSidebarFilter,
useSearch,
useVIntl,
} from '@modrinth/ui'
import { openUrl } from '@tauri-apps/plugin-opener'
import { defineMessages, useVIntl } from '@vintl/vintl'
import type { Ref } from 'vue'
import { computed, nextTick, ref, shallowRef, watch } from 'vue'
import type { LocationQuery } from 'vue-router'
+1 -1
View File
@@ -427,7 +427,7 @@ await Promise.all([loadCapes(), loadSkins(), loadCurrentUser()])
<div v-else class="flex items-center justify-center min-h-[50vh] pt-[25%]">
<div
class="bg-bg-raised rounded-lg p-7 flex flex-col gap-5 shadow-md relative max-w-xl w-full mx-auto"
class="bg-bg-raised card-shadow rounded-lg p-7 flex flex-col gap-5 shadow-md relative max-w-xl w-full mx-auto"
>
<img
:src="ExcitedRinthbot"
+38 -1
View File
@@ -274,17 +274,18 @@ import {
Button,
ButtonStyled,
ContentListPanel,
defineMessages,
injectNotificationManager,
OverflowMenu,
Pagination,
RadialHeader,
Toggle,
useVIntl,
} from '@modrinth/ui'
import type { ContentItem } from '@modrinth/ui/src/components/content/ContentListItem.vue'
import type { Organization, Project, TeamMember, Version } from '@modrinth/utils'
import { formatProjectType } from '@modrinth/utils'
import { getCurrentWebview } from '@tauri-apps/api/webview'
import { defineMessages, useVIntl } from '@vintl/vintl'
import { useStorage } from '@vueuse/core'
import dayjs from 'dayjs'
import type { ComputedRef } from 'vue'
@@ -301,11 +302,13 @@ import {
get_organization_many,
get_project_many,
get_team_many,
get_version,
get_version_many,
} from '@/helpers/cache.js'
import { profile_listener } from '@/helpers/events.js'
import {
add_project_from_path,
get,
get_projects,
remove_project,
toggle_disable_project,
@@ -314,6 +317,7 @@ import {
} from '@/helpers/profile.js'
import type { CacheBehaviour, ContentFile, GameInstance } from '@/helpers/types'
import { highlightModInProfile } from '@/helpers/utils.js'
import { installVersionDependencies } from '@/store/install'
const { handleError } = injectNotificationManager()
@@ -627,10 +631,15 @@ const sortProjects = (filter: string) => {
const updateAll = async () => {
const setProjects = []
const outdatedProjects = []
for (const [i, project] of projects.value.entries()) {
if (project.outdated) {
project.updating = true
setProjects.push(i)
if (project.updateVersion) {
outdatedProjects.push(project.updateVersion)
}
}
}
@@ -646,6 +655,21 @@ const updateAll = async () => {
projects.value[index].updateVersion = undefined
}
}
if (outdatedProjects.length > 0) {
const profile = await get(props.instance.path).catch(handleError)
if (profile) {
for (const versionId of outdatedProjects) {
const versionData = await get_version(versionId, 'must_revalidate').catch(handleError)
if (versionData) {
await installVersionDependencies(profile, versionData).catch(handleError)
}
}
}
}
for (const project of setProjects) {
projects.value[project].updating = false
}
@@ -662,6 +686,19 @@ const updateProject = async (mod: ProjectListEntry) => {
mod.updating = true
await new Promise((resolve) => setTimeout(resolve, 0))
mod.path = await update_project(props.instance.path, mod.path).catch(handleError)
if (mod.updateVersion) {
const versionData = await get_version(mod.updateVersion, 'must_revalidate').catch(handleError)
if (versionData) {
const profile = await get(props.instance.path).catch(handleError)
if (profile) {
await installVersionDependencies(profile, versionData).catch(handleError)
}
}
}
mod.updating = false
mod.outdated = false
@@ -125,6 +125,7 @@ import { PlusIcon, SearchIcon, SpinnerIcon, UpdatedIcon, XIcon } from '@modrinth
import {
Button,
ButtonStyled,
defineMessages,
FilterBar,
type FilterBarOption,
GAME_MODES,
@@ -133,7 +134,7 @@ import {
RadialHeader,
} from '@modrinth/ui'
import type { Version } from '@modrinth/utils'
import { defineMessages } from '@vintl/vintl'
import { platform } from '@tauri-apps/plugin-os'
import { computed, onUnmounted, ref, watch } from 'vue'
import { useRoute } from 'vue-router'
@@ -214,6 +215,11 @@ const worldPlaying = ref<World>()
const worlds = ref<World[]>([])
const serverData = ref<Record<string, ServerData>>({})
// Track servers_updated calls on Linux to prevent server ping spam
const MAX_LINUX_REFRESHES = 3
const isLinux = platform() === 'linux'
const linuxRefreshCount = ref(0)
const protocolVersion = ref<ProtocolVersion | null>(
await get_profile_protocol_version(instance.value.path),
)
@@ -224,6 +230,9 @@ const unlistenProfile = await profile_listener(async (e: ProfileEvent) => {
console.info(`Handling profile event '${e.event}' for profile: ${e.profile_path_id}`)
if (e.event === 'servers_updated') {
if (isLinux && linuxRefreshCount.value >= MAX_LINUX_REFRESHES) return
if (isLinux) linuxRefreshCount.value++
await refreshAllWorlds()
}
+9
View File
@@ -1,3 +1,4 @@
import { ServersManagePageIndex } from '@modrinth/ui'
import { createRouter, createWebHistory } from 'vue-router'
import * as Pages from '@/pages'
@@ -27,6 +28,14 @@ export default new createRouter({
breadcrumb: [{ name: 'Worlds' }],
},
},
{
path: '/hosting/manage/',
name: 'Servers',
component: ServersManagePageIndex,
meta: {
breadcrumb: [{ name: 'Servers' }],
},
},
{
path: '/browse/:projectType',
name: 'Discover content',
+1
View File
@@ -5,6 +5,7 @@ export const DEFAULT_FEATURE_FLAGS = {
page_path: false,
worlds_tab: false,
worlds_in_home: true,
servers_in_app: false,
}
export const THEME_OPTIONS = ['dark', 'light', 'oled', 'system'] as const
+3 -239
View File
@@ -1,3 +1,4 @@
import preset from '@modrinth/tooling-config/tailwind/tailwind-preset.ts'
import type { Config } from 'tailwindcss'
const config: Config = {
@@ -10,246 +11,9 @@ const config: Config = {
'./src/error.vue',
// monorepo - TODO: migrate this to its own package
'../../packages/**/*.{js,vue,ts}',
'!../../packages/**/node_modules/**',
],
theme: {
extend: {
colors: {
surface: {
1: 'var(--surface-1)',
2: 'var(--surface-2)',
3: 'var(--surface-3)',
4: 'var(--surface-4)',
5: 'var(--surface-5)',
},
/// TODO: Clean up these aliases within codebase to use default, primary, tertiary.
// text-default
primary: 'var(--color-text-default)',
// text-primary
contrast: 'var(--color-text-primary)',
// text-tertiary
secondary: 'var(--color-text-tertiary)',
red: {
DEFAULT: 'var(--color-red)',
50: 'var(--color-red-50)',
100: 'var(--color-red-100)',
200: 'var(--color-red-200)',
300: 'var(--color-red-300)',
400: 'var(--color-red-400)',
500: 'var(--color-red-500)',
600: 'var(--color-red-600)',
700: 'var(--color-red-700)',
800: 'var(--color-red-800)',
900: 'var(--color-red-900)',
950: 'var(--color-red-950)',
},
orange: {
DEFAULT: 'var(--color-orange)',
50: 'var(--color-orange-50)',
100: 'var(--color-orange-100)',
200: 'var(--color-orange-200)',
300: 'var(--color-orange-300)',
400: 'var(--color-orange-400)',
500: 'var(--color-orange-500)',
600: 'var(--color-orange-600)',
700: 'var(--color-orange-700)',
800: 'var(--color-orange-800)',
900: 'var(--color-orange-900)',
950: 'var(--color-orange-950)',
},
green: {
DEFAULT: 'var(--color-green)',
50: 'var(--color-green-50)',
100: 'var(--color-green-100)',
200: 'var(--color-green-200)',
300: 'var(--color-green-300)',
400: 'var(--color-green-400)',
500: 'var(--color-green-500)',
600: 'var(--color-green-600)',
700: 'var(--color-green-700)',
800: 'var(--color-green-800)',
900: 'var(--color-green-900)',
950: 'var(--color-green-950)',
},
blue: {
DEFAULT: 'var(--color-blue)',
50: 'var(--color-blue-50)',
100: 'var(--color-blue-100)',
200: 'var(--color-blue-200)',
300: 'var(--color-blue-300)',
400: 'var(--color-blue-400)',
500: 'var(--color-blue-500)',
600: 'var(--color-blue-600)',
700: 'var(--color-blue-700)',
800: 'var(--color-blue-800)',
900: 'var(--color-blue-900)',
950: 'var(--color-blue-950)',
},
purple: {
DEFAULT: 'var(--color-purple)',
50: 'var(--color-purple-50)',
100: 'var(--color-purple-100)',
200: 'var(--color-purple-200)',
300: 'var(--color-purple-300)',
400: 'var(--color-purple-400)',
500: 'var(--color-purple-500)',
600: 'var(--color-purple-600)',
700: 'var(--color-purple-700)',
800: 'var(--color-purple-800)',
900: 'var(--color-purple-900)',
950: 'var(--color-purple-950)',
},
gray: {
DEFAULT: 'var(--color-gray)',
50: 'var(--color-gray-50)',
100: 'var(--color-gray-100)',
200: 'var(--color-gray-200)',
300: 'var(--color-gray-300)',
400: 'var(--color-gray-400)',
500: 'var(--color-gray-500)',
600: 'var(--color-gray-600)',
700: 'var(--color-gray-700)',
800: 'var(--color-gray-800)',
900: 'var(--color-gray-900)',
950: 'var(--color-gray-950)',
},
/// === LEGACY ===
icon: 'var(--color-base)',
// Text
inactive: 'var(--color-text-inactive)',
dark: 'var(--color-text-dark)',
inverted: 'var(--color-text-inverted)',
heading: 'var(--color-heading)',
bg: {
DEFAULT: 'var(--color-bg)',
red: 'var(--color-red-bg)',
orange: 'var(--color-orange-bg)',
green: 'var(--color-green-bg)',
blue: 'var(--color-blue-bg)',
purple: 'var(--color-purple-bg)',
raised: 'var(--color-raised-bg)',
},
highlight: {
DEFAULT: 'var(--color-brand-highlight)',
red: 'var(--color-red-highlight)',
orange: 'var(--color-orange-highlight)',
green: 'var(--color-green-highlight)',
blue: 'var(--color-blue-highlight)',
purple: 'var(--color-purple-highlight)',
gray: 'var(--color-gray-highlight)',
},
divider: {
DEFAULT: 'var(--color-divider)',
dark: 'var(--color-divider-dark)',
},
brand: {
DEFAULT: 'var(--color-brand)',
red: 'var(--color-red)',
orange: 'var(--color-orange)',
green: 'var(--color-green)',
blue: 'var(--color-blue)',
purple: 'var(--color-purple)',
highlight: 'var(--color-brand-highlight)',
shadow: 'var(--color-brand-shadow)',
inverted: 'var(--color-accent-contrast)',
},
tabUnderlineHovered: 'var(--tab-underline-hovered)',
button: {
bg: 'var(--color-button-bg)',
text: 'var(--color-button-text)',
bgHover: 'var(--color-button-bg-hover)',
textHover: 'var(--color-button-text-hover)',
bgActive: 'var(--color-button-bg-active)',
textActive: 'var(--color-button-text-active)',
border: 'var(--color-button-border)',
bgSelected: 'var(--color-button-bg-selected)',
textSelected: 'var(--color-button-text-selected)',
},
toggleHandle: 'var(--color-toggle-handle)',
dropdown: {
bg: 'var(--color-dropdown-bg)',
text: 'var(--color-dropdown-text)',
},
tooltip: {
bg: 'var(--color-tooltip-bg)',
text: 'var(--color-tooltip-text)',
},
code: {
bg: 'var(--color-code-bg)',
text: 'var(--color-code-text)',
},
kbdShadow: 'var(--color-kbd-shadow)',
ad: {
DEFAULT: 'var(--color-ad)',
raised: 'var(--color-ad-raised)',
contrast: 'var(--color-ad-contrast)',
highlight: 'var(--color-ad-highlight)',
},
greyLink: {
DEFAULT: 'var(--color-grey-link)',
hover: 'var(--color-grey-link-hover)',
active: 'var(--color-grey-link-active)',
},
link: {
DEFAULT: 'var(--color-link)',
hover: 'var(--color-link-hover)',
active: 'var(--color-link-active)',
},
warning: {
bg: 'var(--color-warning-bg)',
text: 'var(--color-warning-text)',
banner: {
text: 'var(--color-warning-banner-text)',
bg: 'var(--color-warning-banner-bg)',
side: 'var(--color-warning-banner-side)',
},
},
infoBanner: {
text: 'var(--color-info-banner-text)',
bg: 'var(--color-info-banner-bg)',
side: 'var(--color-info-banner-side)',
},
blockQuote: 'var(--color-block-quote)',
headerUnderline: 'var(--color-header-underline)',
hr: 'var(--color-hr)',
table: {
border: 'var(--color-table-border)',
alternateRow: ' var(--color-table-alternate-row)',
},
},
backgroundImage: {
mazeBg: 'var(--landing-maze-bg)',
mazeGradientBg: 'var(--landing-maze-gradient-bg)',
// @ts-ignore
landing: {
mazeOuterBg: 'var(--landing-maze-outer-bg)',
colorHeading: 'var(--landing-color-heading)',
colorSubheading: 'var(--landing-color-subheading)',
transitionGradientStart: 'var(--landing-transition-gradient-start)',
transitionGradientEnd: 'var(--landing-transition-gradient-end)',
hoverCardGradient: 'var(--landing-hover-card-gradient)',
borderGradient: 'var(--landing-border-gradient)',
borderColor: 'var(--landing-border-color)',
creatorGradient: 'var(--landing-creator-gradient)',
blobGradient: 'var(--landing-blob-gradient)',
cardBg: 'var(--landing-card-bg)',
blueLabel: 'var(--landing-blue-label)',
blueLabelBg: 'var(--landing-blue-label-bg)',
greenLabel: 'var(--landing-green-label)',
greenLabelBg: 'var(--landing-green-label-bg)',
rawBg: 'var(--landing-raw-bg)',
},
},
},
},
plugins: [],
corePlugins: {
preflight: false,
},
presets: [preset],
}
export default config
+8
View File
@@ -9,6 +9,14 @@ const projectRootDir = resolve(__dirname)
// https://vitejs.dev/config/
export default defineConfig({
css: {
preprocessorOptions: {
scss: {
// TODO: dont forget about this
silenceDeprecations: ['import'],
},
},
},
resolve: {
alias: [
{
+9
View File
@@ -0,0 +1,9 @@
# Copying
The source code of Modrinth App is licensed under the GNU General Public License, Version 3 only, which is provided in the file [LICENSE](./LICENSE). However, some files listed below are licensed under a different license.
## Modrinth logo
The use of Modrinth branding elements, including but not limited to the wrench-in-labyrinth logo, the landing image, and any variations thereof, is strictly prohibited without explicit written permission from Rinth, Inc. This includes trademarks, logos, or other branding elements.
> All rights reserved. © 2020-2025 Rinth, Inc.
+1
View File
@@ -12,6 +12,7 @@ fn main() {
"auth",
InlinedPlugin::new()
.commands(&[
"check_reachable",
"login",
"remove_user",
"get_default_user",
+8
View File
@@ -7,6 +7,7 @@ use theseus::prelude::*;
pub fn init<R: Runtime>() -> TauriPlugin<R> {
tauri::plugin::Builder::<R>::new("auth")
.invoke_handler(tauri::generate_handler![
check_reachable,
login,
remove_user,
get_default_user,
@@ -16,6 +17,13 @@ pub fn init<R: Runtime>() -> TauriPlugin<R> {
.build()
}
/// Checks if the authentication servers are reachable.
#[tauri::command]
pub async fn check_reachable() -> Result<()> {
minecraft_auth::check_reachable().await?;
Ok(())
}
/// Authenticate a user with Hydra - part 1
/// This begins the authentication flow quasi-synchronously, returning a URL to visit (that the user will sign in at)
#[tauri::command]
+3 -2
View File
@@ -2,6 +2,7 @@
all(not(debug_assertions), target_os = "windows"),
windows_subsystem = "windows"
)]
#![recursion_limit = "256"]
use native_dialog::{DialogBuilder, MessageLevel};
use std::env;
@@ -118,12 +119,12 @@ fn main() {
#[cfg(feature = "updater")]
{
use tauri_plugin_http::reqwest::header::{HeaderValue, USER_AGENT};
use theseus::LAUNCHER_USER_AGENT;
use theseus::launcher_user_agent;
builder = builder.plugin(
tauri_plugin_updater::Builder::new()
.header(
USER_AGENT,
HeaderValue::from_str(LAUNCHER_USER_AGENT).unwrap(),
HeaderValue::from_str(&launcher_user_agent()).unwrap(),
)
.unwrap()
.build(),
+2 -2
View File
@@ -8,7 +8,7 @@ use tauri_plugin_http::reqwest::ClientBuilder;
use tauri_plugin_updater::Error;
use tauri_plugin_updater::Update;
use theseus::{
LAUNCHER_USER_AGENT, LoadingBarType, emit_loading, init_loading,
LoadingBarType, emit_loading, init_loading, launcher_user_agent,
};
use tokio::time::Instant;
@@ -31,7 +31,7 @@ pub async fn get_update_size<R: Runtime>(
);
}
let mut request = ClientBuilder::new().user_agent(LAUNCHER_USER_AGENT);
let mut request = ClientBuilder::new().user_agent(launcher_user_agent());
if let Some(timeout) = update.timeout {
request = request.timeout(timeout);
}
+15
View File
@@ -0,0 +1,15 @@
# Copying
The source code of Modrinth's web frontend is licensed under the Creative Commons CC0 License, which is provided in the file [LICENSE](./LICENSE). However, some files listed below are licensed under a different license.
## Modrinth logo
The use of Modrinth branding elements, including but not limited to the wrench-in-labyrinth logo, the landing image, and any variations thereof, is strictly prohibited without explicit written permission from Rinth, Inc. This includes trademarks, logos, or other branding elements.
> All rights reserved. © 2020-2025 Rinth, Inc.
This includes, but may not be limited to, the following files:
- src/assets/dark-logo.svg
- src/assets/light-logo.svg
- src/public/favicon.ico

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