From 6fd95ec682d129759c74020568ea4c5139737526 Mon Sep 17 00:00:00 2001 From: Oscar Hudson Date: Wed, 26 Jul 2023 00:48:06 +0100 Subject: [PATCH 001/214] remove discriminator for pomelo usernames --- views/account/account.handlebars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/account/account.handlebars b/views/account/account.handlebars index f8bdf71..fe6783b 100644 --- a/views/account/account.handlebars +++ b/views/account/account.handlebars @@ -145,7 +145,7 @@

{{ locale.account.settings.settingCards.discord }}

{{#if discordUser}} -

{{ locale.account.settings.settingCards.connectedToDiscord }} {{ discordUser.username }}#{{ discordUser.discriminator }}

+

{{ locale.account.settings.settingCards.connectedToDiscord }} {{ discordUser.username }}{{#ifCond discordUser.discriminator '#0'}}{{else}}#{{ discordUser.discriminator }}{{/ifCond}}

From bbb5e34dfb91853ea0413a34b4fe025fdd921c3f Mon Sep 17 00:00:00 2001 From: Oscar Hudson Date: Wed, 26 Jul 2023 03:35:54 +0100 Subject: [PATCH 002/214] fix --- views/account/account.handlebars | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/views/account/account.handlebars b/views/account/account.handlebars index fe6783b..b8af508 100644 --- a/views/account/account.handlebars +++ b/views/account/account.handlebars @@ -145,7 +145,10 @@

{{ locale.account.settings.settingCards.discord }}

{{#if discordUser}} -

{{ locale.account.settings.settingCards.connectedToDiscord }} {{ discordUser.username }}{{#ifCond discordUser.discriminator '#0'}}{{else}}#{{ discordUser.discriminator }}{{/ifCond}}

+

{{ locale.account.settings.settingCards.connectedToDiscord }} {{ discordUser.username }} + {{#if discordUser.discriminator}} +  #{{ discordUser.discriminator }} + {{/if}}

From 5356bda5a9c4649015934cd670a5d8453f7b910a Mon Sep 17 00:00:00 2001 From: Arian Kordi Date: Thu, 19 Sep 2024 20:43:04 -0400 Subject: [PATCH 003/214] Defer loading the Mii save previews --- public/assets/js/miieditor.js | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/public/assets/js/miieditor.js b/public/assets/js/miieditor.js index d44c7c8..e7bce79 100644 --- a/public/assets/js/miieditor.js +++ b/public/assets/js/miieditor.js @@ -69,8 +69,8 @@ function initializeMiiData(encodedUserMiiData) { bgColor: '13173300', expression: 'sorrow', }); - document.querySelector('.mii-comparison img.old-mii').src = miiStudioNeutralUrl; - document.querySelector('.mii-comparison.confirmed img.old-mii').src = miiStudioSorrowUrl; + document.querySelector('.mii-comparison img.old-mii').setAttribute('data-src', miiStudioNeutralUrl); + document.querySelector('.mii-comparison.confirmed img.old-mii').setAttribute('data-src', miiStudioSorrowUrl); console.log('initialization complete'); console.groupEnd(); return true; @@ -184,8 +184,8 @@ function renderMii(heightOverride, buildOverride) { }); // sets the new mii in the save tab to the new mii - document.querySelector('.mii-comparison img.new-mii').src = faceMiiStudioUrl; - document.querySelector('.mii-comparison.confirmed img.new-mii').src = faceMiiStudioSmileUrl; + document.querySelector('.mii-comparison img.new-mii').setAttribute('data-src', faceMiiStudioUrl); + document.querySelector('.mii-comparison.confirmed img.new-mii').setAttribute('data-src', faceMiiStudioSmileUrl); } } @@ -372,6 +372,18 @@ function openTab(e, tabType) { .replace('Button', buttonReplacement); document.querySelector(`#${selectedID}`).classList.add('active'); + // if you selected the save tab... + if (selectedID === 'saveTab') { + // set data-src on images that have it to src + // effectively loading them right now (lazy load) + document + .querySelectorAll('#saveTab img[data-src]') + .forEach(e => { + if (e.getAttribute('data-src') !== e.src) + e.setAttribute('src', e.getAttribute('data-src')); + }); + } + if (tabType === 'tab') { // Click the first subtab button, if there is one document.querySelector(`#${selectedID} .subtabbtn`)?.click(); From 0fa3fe543917e41cf7f1e0f23f43465d347d1dee Mon Sep 17 00:00:00 2001 From: Arian Kordi Date: Thu, 19 Sep 2024 20:43:22 -0400 Subject: [PATCH 004/214] Draw Mii face with split depth rather than with bald head Requesting a split depth render results in getting two renders in one image, the top half having the back half of the Mii head (usually the hair) and then the bottom half having the front half. This is needed for the Mii editor because it's drawing the body manually, and you want some elements of the head (hair) to be behind the body and the rest to be in front. Previously, it solved this problem by loading a copy of the Mii head that's bald, but this along with other stuff added up to four Mii Studio requests on every render - now it's just one. NOTE!!!!: This actually doesn't handle importing mii-js from the new TypeScript project, so as of this commit it WILL NOT work - installing the new repo, which this doesn't even reference, doesn't produce compiled JS from the TS source, so it will simply not import. --- public/assets/js/miieditor.js | 44 ++++++++++++++++++----------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/public/assets/js/miieditor.js b/public/assets/js/miieditor.js index e7bce79..8d2de5a 100644 --- a/public/assets/js/miieditor.js +++ b/public/assets/js/miieditor.js @@ -5,7 +5,7 @@ * * browserify is needed for the use of require() in the browser */ -const Mii = require('mii-js'); +const Mii = require('@pretendonetwork/mii-js').default; const newMiiData = 'AwAAQOlVognnx0GC2qjhdwOzuI0n2QAAAGBzAHQAZQB2AGUAAAAAAAAAAAAAAEBAAAAhAQJoRBgmNEYUgRIXaA0AACkAUkhQAAAAAAAAAAAAAAAAAAAAAAAAAAAAANeC'; // Prevent the user from reloading or leaving the page @@ -93,7 +93,6 @@ if (!validMiiData) { // we keeep the images here so we can cache them when we need to change the build/height const miiFaceImg = new Image(); -const baldMiiFaceImg = new Image(); const miiBodyImg = new Image(); // Initial mii render @@ -106,24 +105,15 @@ function renderMii(heightOverride, buildOverride) { const build = buildOverride || mii.build; // if there isn't an override or the images haven't been cached, we load the images - if ((!heightOverride && !buildOverride) || !miiFaceImg.src || !baldMiiFaceImg.src || !miiBodyImg.src) { + if ((!heightOverride && !buildOverride) || !miiFaceImg.src || !miiBodyImg.src) { canvas.style.filter = 'blur(4px) brightness(70%)'; - // we create a copy of the mii and make it bald - const baldMii = Object.create( - Object.getPrototypeOf(mii), - Object.getOwnPropertyDescriptors(mii) - ); - baldMii.hairType = 30; - baldMiiFaceImg.src = baldMii.studioUrl({ - width: 512, - bgColor: '13173300', - type: 'face_only', - }); + // request a face only render with split depth miiFaceImg.src = mii.studioUrl({ width: 512, bgColor: '13173300', type: 'face_only', + splitMode: 'both', // this will be twice the height }); miiBodyImg.src = mii.studioAssetUrlBody(); } @@ -153,21 +143,33 @@ function renderMii(heightOverride, buildOverride) { } } function onBodyImgLoad() { - if (baldMiiFaceImg.complete) { - onBaldMiiFaceImgLoad(); + if (miiFaceImg.complete) { + onMiiFaceImgLoad(); } else { - baldMiiFaceImg.onload = () => { - onBaldMiiFaceImgLoad(); + miiFaceImg.onload = () => { + onMiiFaceImgLoad(); }; } } - function onBaldMiiFaceImgLoad() { + function onMiiFaceImgLoad() { ctx.clearRect(0, 0, canvas.width, canvas.height); - ctx.drawImage(miiFaceImg, 0, headYPos); + + // in mii studio split depth mode, the back half is on the top + // and the front half is on the bottom + // the back half needs to be drawn, then the body, then the front + const halfHeight = miiFaceImg.height / 2; + // top half of the image / back half of the head + ctx.drawImage(miiFaceImg, 0, 0, miiFaceImg.width, halfHeight, 0, headYPos, miiFaceImg.width, halfHeight); + + // draw body on top ctx.drawImage(miiBodyImg, bodyXPos, bodyYPos, bodyWidth, bodyHeight); // we draw a portion of the bald mii on top of the normal mii to hide the mii's neck (see https://i.imgur.com/U0fpkwi.png) - ctx.drawImage(baldMiiFaceImg, 186, 384, 140, 120, 186, headYPos + 384, 140, 120); + //ctx.drawImage(baldMiiFaceImg, 186, 384, 140, 120, 186, headYPos + 384, 140, 120); + + // draw bottom half of the image / front half of the head + ctx.drawImage(miiFaceImg, 0, halfHeight, miiFaceImg.width, halfHeight, 0, headYPos, miiFaceImg.width, halfHeight); + canvas.style.filter = ''; } From d7f02414b919778f6f3a6a20e02b76c290d65076 Mon Sep 17 00:00:00 2001 From: Arian Kordi Date: Fri, 27 Dec 2024 16:51:41 -0500 Subject: [PATCH 005/214] Revert change to mii-js include --- public/assets/js/miieditor.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/assets/js/miieditor.js b/public/assets/js/miieditor.js index 8d2de5a..f6df59b 100644 --- a/public/assets/js/miieditor.js +++ b/public/assets/js/miieditor.js @@ -5,7 +5,7 @@ * * browserify is needed for the use of require() in the browser */ -const Mii = require('@pretendonetwork/mii-js').default; +const Mii = require('mii-js'); const newMiiData = 'AwAAQOlVognnx0GC2qjhdwOzuI0n2QAAAGBzAHQAZQB2AGUAAAAAAAAAAAAAAEBAAAAhAQJoRBgmNEYUgRIXaA0AACkAUkhQAAAAAAAAAAAAAAAAAAAAAAAAAAAAANeC'; // Prevent the user from reloading or leaving the page From 0fceac9dbbdc4e8fbae2f2531a77265d326b64fe Mon Sep 17 00:00:00 2001 From: Arian Kordi Date: Tue, 28 Jan 2025 12:54:38 -0500 Subject: [PATCH 006/214] Address @stylistic/spaced-comment, @stylistic/arrow-parens, no-redeclare --- public/assets/js/miieditor.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/public/assets/js/miieditor.js b/public/assets/js/miieditor.js index c4c290e..2d31eaa 100644 --- a/public/assets/js/miieditor.js +++ b/public/assets/js/miieditor.js @@ -133,7 +133,7 @@ function renderMii(heightOverride, buildOverride) { onMiiFaceImgLoad(); }; } - function onMiiFaceImgLoad() { + function onMiiFaceImgLoad_() { if (miiBodyImg.complete) { onBodyImgLoad(); } else { @@ -144,10 +144,10 @@ function renderMii(heightOverride, buildOverride) { } function onBodyImgLoad() { if (miiFaceImg.complete) { - onMiiFaceImgLoad(); + onMiiFaceImgLoad_(); } else { miiFaceImg.onload = () => { - onMiiFaceImgLoad(); + onMiiFaceImgLoad_(); }; } } @@ -165,7 +165,7 @@ function renderMii(heightOverride, buildOverride) { ctx.drawImage(miiBodyImg, bodyXPos, bodyYPos, bodyWidth, bodyHeight); // we draw a portion of the bald mii on top of the normal mii to hide the mii's neck (see https://i.imgur.com/U0fpkwi.png) - //ctx.drawImage(baldMiiFaceImg, 186, 384, 140, 120, 186, headYPos + 384, 140, 120); + // ctx.drawImage(baldMiiFaceImg, 186, 384, 140, 120, 186, headYPos + 384, 140, 120); // draw bottom half of the image / front half of the head ctx.drawImage(miiFaceImg, 0, halfHeight, miiFaceImg.width, halfHeight, 0, headYPos, miiFaceImg.width, halfHeight); @@ -380,7 +380,7 @@ function openTab(e, tabType) { // effectively loading them right now (lazy load) document .querySelectorAll('#saveTab img[data-src]') - .forEach(e => { + .forEach((e) => { if (e.getAttribute('data-src') !== e.src) e.setAttribute('src', e.getAttribute('data-src')); }); From d510baa4197948be5adcdfac09e422588570b25e Mon Sep 17 00:00:00 2001 From: piplupness Date: Mon, 24 Feb 2025 00:35:01 +0100 Subject: [PATCH 007/214] Added a NNID warnings and removed outdated info on Juxt --- docs/en_US/install/3ds.md | 5 +++++ docs/en_US/install/juxt.md | 7 ------- docs/en_US/install/wiiu.md | 5 +++++ 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/docs/en_US/install/3ds.md b/docs/en_US/install/3ds.md index ce5a6d6..649b0be 100644 --- a/docs/en_US/install/3ds.md +++ b/docs/en_US/install/3ds.md @@ -1,5 +1,10 @@ # 3DS/2DS Family +
+ !!! DISCLAIMER !!! + DON'T REMOVE THE NNID TO SET UP PRETENDO NETWORK, IT'S NOT NECESSARY AND BY DOING SO YOU WILL LOSE BADGES, REDOWNLOADABLE GAMES, THEMES AND POKÉMON BANK DATA! +
+
CAUTION: SYSTEM TRANSFERS ARE NOT CURRENTLY SUPPORTED BY OUR SERVERS. ATTEMPTING TO PERFORM A SYSTEM TRANSFER MAY PREVENT YOU FROM BEING ABLE TO GO ONLINE IN THE FUTURE. SUPPORT FOR SYSTEM TRANSFERS IS IN DEVELOPMENT. diff --git a/docs/en_US/install/juxt.md b/docs/en_US/install/juxt.md index b226345..26c8d49 100644 --- a/docs/en_US/install/juxt.md +++ b/docs/en_US/install/juxt.md @@ -4,9 +4,6 @@ ℹ️ This guide assumes that you have a Homebrewed System, and have already connected to Pretendo. If you have not yet set up your Pretendo Network ID, follow this guide to get started.
-
- ℹ️ Pretendo Network is currently in a closed beta. Not all features, including game servers and Miiverse, are open to the public. -
Juxtaposition is the Pretendo Network replacement for the now defunct Miiverse service @@ -24,10 +21,6 @@ Juxtaposition is the Pretendo Network replacement for the now defunct Miiverse s # 3DS -
- ⚠️ Nimbus will overwrite existing patches for services such as Rverse. As such, use with caution -
-
ℹ️ Nimbus already handles all the required patches for the Miiverse applet. If you do not have Nimbus installed, follow this guide to get started.
diff --git a/docs/en_US/install/wiiu.md b/docs/en_US/install/wiiu.md index dcd9221..d8b2066 100644 --- a/docs/en_US/install/wiiu.md +++ b/docs/en_US/install/wiiu.md @@ -1,5 +1,10 @@ # Wii U +
+ !!! DISCLAIMER !!! + DON'T REMOVE THE NNID TO SET UP PRETENDO NETWORK, IT'S NOT NECESSARY AND BY DOING SO YOU WILL LOSE ALL YOUR PREVIOUSLY PURCHASED GAMES AND UNABLE TO UPDATE THEM! +
+ You can connect your Wii U to Pretendo using one of 2 methods. Inkay is recommended unless you have some reason to avoid modding your console (e.g. you live in Japan where is is legally gray). - [Inkay (homebrew - recommended)](#inkay) From 8ff35f62e850d122c5bcb36d6219087033594559 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Thu, 29 May 2025 11:51:43 +0200 Subject: [PATCH 008/214] Update docs/en_US/install/wiiu.md --- docs/en_US/install/wiiu.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en_US/install/wiiu.md b/docs/en_US/install/wiiu.md index d8b2066..606e027 100644 --- a/docs/en_US/install/wiiu.md +++ b/docs/en_US/install/wiiu.md @@ -1,8 +1,8 @@ # Wii U
- !!! DISCLAIMER !!! - DON'T REMOVE THE NNID TO SET UP PRETENDO NETWORK, IT'S NOT NECESSARY AND BY DOING SO YOU WILL LOSE ALL YOUR PREVIOUSLY PURCHASED GAMES AND UNABLE TO UPDATE THEM! + CAUTION: + DON'T REMOVE YOUR NNID TO SET UP PRETENDO NETWORK, IT'S NOT NECESSARY AND BY DOING SO YOU WILL LOSE ALL YOUR PREVIOUSLY PURCHASED GAMES AND WILL BE UNABLE TO UPDATE THEM!
You can connect your Wii U to Pretendo using one of 2 methods. Inkay is recommended unless you have some reason to avoid modding your console (e.g. you live in Japan where is is legally gray). From 59a5dfe61e283318cd4376f9af9c97345feaea8e Mon Sep 17 00:00:00 2001 From: mrjvs Date: Thu, 29 May 2025 11:51:48 +0200 Subject: [PATCH 009/214] Update docs/en_US/install/3ds.md --- docs/en_US/install/3ds.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/en_US/install/3ds.md b/docs/en_US/install/3ds.md index 649b0be..f4cf747 100644 --- a/docs/en_US/install/3ds.md +++ b/docs/en_US/install/3ds.md @@ -1,8 +1,8 @@ # 3DS/2DS Family
- !!! DISCLAIMER !!! - DON'T REMOVE THE NNID TO SET UP PRETENDO NETWORK, IT'S NOT NECESSARY AND BY DOING SO YOU WILL LOSE BADGES, REDOWNLOADABLE GAMES, THEMES AND POKÉMON BANK DATA! + CAUTION: + DON'T REMOVE YOUR NNID TO SET UP PRETENDO NETWORK, IT'S NOT NECESSARY AND BY DOING SO YOU WILL LOSE BADGES, REDOWNLOADABLE GAMES, THEMES AND POKÉMON BANK DATA!
From 35b45762a7f3462e54c2213763cf83ade51ff86f Mon Sep 17 00:00:00 2001 From: Jonathan Barrow Date: Mon, 2 Jun 2025 19:21:51 -0400 Subject: [PATCH 010/214] feat: may progress update --- blogposts/6-2-25.md | 79 ++++++++++++++++++++++ public/assets/images/blogposts/6-2-25.jpg | Bin 0 -> 118535 bytes 2 files changed, 79 insertions(+) create mode 100644 blogposts/6-2-25.md create mode 100644 public/assets/images/blogposts/6-2-25.jpg diff --git a/blogposts/6-2-25.md b/blogposts/6-2-25.md new file mode 100644 index 0000000..1f39df5 --- /dev/null +++ b/blogposts/6-2-25.md @@ -0,0 +1,79 @@ +--- +title: "May Progress Update" +author: "Jon" +author_image: "https://www.github.com/jonbarrow.png" +date: "June 2, 2025" +caption: "Updates covering the first half of the year" +cover_image: "/assets/images/blogposts/6-2-25.jpg" +--- + +Hey all, Jon here! We know it's been quite a while since our last blog post. We planned to get these out more often, but alas more important issues and updates came first. We apologize for the lack of blog posts, and promise to get them out as often as we can. With that, halfway into the year seems like as good a time as any to summarize what we've been up to! + +(Note: This blog post will not cover *all* changes made since the last post, as there are far too many to list. We will be highlighting the more relevant/larger ones here) + +# Technical Updates + +Many of you voted to have more technical updates in blog posts from now on, and today marks the first time we do! + +## Splatoon Database Performance +Around May 26th, 2025 we noticed random instability in Splatoon. The game would work for a while, allowing players to create new, and join existing, matches, before seemingly randomly locking up. This locking up would cause subsequent requests to never get a response from the server, resulting in failed connections. Developers [shutterbug](https://github.com/shutterbug2000) and [quarky](https://github.com/ashquarky) quickly began investigating. We were unsure where the issue was at, but we had a pretty good idea of where to look. The locks could be happening in 2 places: + +1. The application layer. A few examples being: + 1. A locked [mutex](https://en.wikipedia.org/wiki/Lock_(computer_science)) which never releases. Our servers are written in [Go](https://go.dev/), and make use of [goroutines](https://go.dev/doc/effective_go#goroutines) for concurrency. Primitive Go types such as [slices](https://go.dev/doc/effective_go#slices) and [maps](https://go.dev/doc/effective_go#maps) can only be accessed by one goroutine at a time. To ensure this, a mutex is used to lock access when a goroutine needs the data, and is released when it's done with it. If a goroutine were to lock up and never release the mutex, then future goroutines will never be able to access it, and also be locked up waiting for the mutex to release. + 2. A poorly structured SQL query could lock up the database connection at the application layer, causing future requests to no longer be able to access the database. +2. The database layer. A few examples being: + 1. Database corruption could lead to queries failing or getting stuck, locking up the connection. + 2. Poor indexing causing full table scans on massive tables, locking up the connection. + 3. Bad queries causing the table to infinitely loop and lookup in itself, locking up the connection. + +Shutter began by checking the code for locked mutexes and the server logs for any abnormalities. Our game server libraries are split into 3 separate modules, one of which we colloquially refer to as ["common"](https://github.com/PretendoNetwork/nex-protocols-common-go). This module holds all the "common" default implementations of features used by many games. Quarky began by investigating the database itself. Together, they were able to narrow down the problem areas to 2 functions. Lockups would happen in the [`MatchmakeExtension::AutoMatchmake_Postpone`](https://github.com/PretendoNetwork/nex-protocols-common-go/blob/50586821d228cdc2bae728797febdae51e67fe5b/matchmake-extension/auto_matchmake_postpone.go) and [`MatchMaking::UnregisterGathering`](https://github.com/PretendoNetwork/nex-protocols-common-go/blob/50586821d228cdc2bae728797febdae51e67fe5b/match-making/unregister_gathering.go) functions. These functions are responsible for creating/joining multiplayer sessions, and for deleting them when the game is over. + +There did not appear to be any areas where a mutex would not release, so we switched our attention back to the database itself. We had noticed some wonky behavior from the database earlier as well, later fixed by [Will](https://github.com/binaryoverload), and I had a hunch that this is where the issue would lie as well. Upon investigation, we found several instances of poor database performance, such as a lack of indexes on some "hot spots" resulting in slower queries. Most notably, we found 2 queries that had become locked, running over 7 and 9 hours respectively. These queries are what was causing the database to lock up, and requests to not get responses. But we still didn't quite know WHY they were locking. It was not initially clear if the issue was due to a looping query, poor indexes, or database corruption. The database in question only held ephemeral data about temporary matches, however, so we opted to just rebuild the database and add in the missing indexes at the same time. Doing so would cover both possibilities of database corruption and missing queries causing the locks, and so far things have once again become stable. + +During the investigation I also noticed a lack of a proper timeout mechanism in the Go functions that made the database queries. Regardless of the reason for *why* the queries locked up, having a timeout would prevent things from looping *forever*. + +This investigation has highlighted some key areas of improvement in regards to our database performance, and we have already begun investigating using even better indexes (currently being tested in Minecraft) and will begin to implement proper query timeouts. So while it is unfortunate that Splatoon was down, in the end this will result in even better performance moving forward. + +## `DataStore` Protocol Rework +As mentioned above, many games share a "common" implementation of certain features. This allows us to define this functionality once and simply tell a server to use it. In the past, our philosophy was to be as unopinionated as possible in this regard, only implementing basic boilerplate for the functions and providing developers a series of configurations and hooks to use. The actual *logic* of the functions was still up to the developers to set. This was done so that developers outside of our team could more easily integrate our code into their systems, by just hooking up whatever stack they already use. + +We have recognized the limitations of this approach however, and have decided to become more opinionated. This first took place in the matchmaking code, made by [Dani](https://github.com/DaniElectra), making it so that all the logic for matchmaking now lives in our "common" module. This now allows our code to be more "plug-and-play", simply telling servers to use matchmaking and letting our logic do the rest. + +Another protocol which used this unopinionated philosophy was our [`DataStore`](https://nintendo-wiki.pretendo.network/docs/nex/protocols/datastore) implementation. `DataStore` is a protocol developed by Nintendo allowing for "object" (file) storage in games, essentially acting as a frontend for [S3](https://en.wikipedia.org/wiki/Amazon_S3). This protocol is what powers games like Super Mario Maker (courses are "objects"), Animal Crossing: New Leaf (dreams are "objects"), Mario vs. Donkey Kong: Tipping Stars (levels are "objects"), and more. + +We have now begun the process of moving our `DataStore` implementation into a more opinionated implementation, allowing for the same sort of "plug-and-play" nature as seen in the matchmaking changes. Progress can be seen [here](https://github.com/PretendoNetwork/nex-protocols-common-go/pull/53). Once finished, this will be our first *fully complete* protocol implementation, allowing for MANY games to get their "object" features working without any extra work. This is also why Mario vs. Donkey Kong: Tipping Stars is still offline, it is so old that it needs to be rewritten from the ground up and is mostly just `DataStore`, making it the perfect candidate to test these new changes against. + +Eventually we hope to do this with *all* protocols in the future. + +# New Games/Updates + +Several new games have joined us since our last blog post! Both existing games coming out of beta, and entirely new games! + +Also a big thank you to everyone outside of our team as well for helping debug and suggest changes! + +## Splatoon +As a belated celebration for Splatoon's 10th anniversary (we deeply apologize that the stability issues mentioned above prevented us from doing anything on time), for the next round of rotations (starting June 7th) our rotations will feature previously banned stages! Allowing banned stages has been a highly requested feature for a long time, so we felt this was a good time to try it out! + +## Animal Crossing: New Leaf +Thanks to the work by [shoginyan](https://github.com/shoginyan) and [shutterbug](https://github.com/shutterbug2000), Animal Crossing: New Leaf has officially left beta testing and is available to everyone! Note that Dream Suite is not yet implemented (see [`DataStore` Protocol Rework](#datastore-protocol-rework)), but multiplayer is supported! We've also identified an issue regarding best-friend messages, of which a fix is being actively tested. + +## Mario Kart 7 Communities +Mario Kart 7 now has partial support for communities! Leaderboards are not currently implemented, as Mario Kart 7 uses a version of the [`Ranking`](https://nintendo-wiki.pretendo.network/docs/nex/protocols/ranking/legacy) that is very different to the one used by modern games. + +## Yo-kai Watch 2 and Yo-kai Watch Blasters +[shoginyan](https://github.com/shoginyan) has also kick-started Yo-kai Watch 2 and Yo-kai Watch Blasters both into development! Yo-kai Watch 2 has left beta and is available to everyone, while Yo-kai Watch Blasters (and variants) is currently in beta testing. + +## Monster Hunter 4 Ultimate +Monster Hunter 4 Ultimate has officially left beta testing! We have also removed the region lock, allowing for experimental crossplay between MH4U and MH4G players! You may encounter technical difficulties when playing across regions due to this experimentation, so please report any issues you encounter to [the game's issue tracker](https://github.com/PretendoNetwork/monster-hunter-4-ultimate/issues/new/choose). + +## Swapdoodle +Swapdoodle was one of the first titles Dani wanted to work on, prior to him joining our core dev team. After joining, focus was shifted elsewhere and work stopped on Swapdoodle fairly early. However thanks to the work by outside contributors [Silver-Volt4](https://github.com/Silver-Volt4) and [CenTdemeern1](https://github.com/CenTdemeern1), work on Swapdoodle has once again picked up! They took it upon themselves to implement the server entirely, with promising results! For more information, see: + +- https://forum.pretendo.network/t/we-implemented-swapdoodle-and-would-like-to-contribute-it/16204 +- https://github.com/PretendoNetwork/swapdoodle/pull/1 + +## Dr. Luigi and Dr. Mario: Miracle Cure +Both Dr. Luigi and Dr. Mario: Miracle Cure have officially left beta testing! Both titles are now available to the public! + +## The Legend of Zelda: Tri Force Heroes +After several months of downtime, The Legend of Zelda: Tri Force Heroes is officially back online! This was one of our legacy games requiring upgrades to our latest libraries, and has finally had its issues ironed out. Due to some recent changes to our general matchmaking code, the games multiplayer region lock was unintentionally returned. This is being looked into and should be fixed in due time. diff --git a/public/assets/images/blogposts/6-2-25.jpg b/public/assets/images/blogposts/6-2-25.jpg new file mode 100644 index 0000000000000000000000000000000000000000..cfb4f175efd23e8ebb0d4a4b9b6c672f0e603311 GIT binary patch literal 118535 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%0DbY-e!oA%F{eM)28V-Nh8SK>$YOg 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 Date: Wed, 18 Jun 2025 15:16:48 +0200 Subject: [PATCH 011/214] locales(update): Updated French locale Co-authored-by: Robin Nunes --- locales/fr_FR.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/fr_FR.json b/locales/fr_FR.json index 2f3213b..870259a 100644 --- a/locales/fr_FR.json +++ b/locales/fr_FR.json @@ -283,14 +283,14 @@ } }, "footer": { - "socials": "Liens Sociaux", + "socials": "Réseaux sociaux", "usefulLinks": "Liens utiles", "widget": { "captions": [ "Vous voulez rester à jour ?", "Rejoignez notre serveur Discord !" ], - "button": "Rejoignez maintenant !" + "button": "Rejoignez-nous maintenant !" }, "bandwidthRaccoonQuotes": [ "Je suis Bandwidth le Raton Laveur, un vrai glouton. Mon péché mignon ? Les câbles des serveurs Pretendo, pardi !... Miam !", From 01b7d40dcd74e6834be1ba8de1042170618e9a25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Noah=20Zimmerl=C3=A9?= Date: Wed, 18 Jun 2025 15:16:48 +0200 Subject: [PATCH 012/214] locales(update): Updated French locale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Noah Zimmerlé --- locales/fr_FR.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/fr_FR.json b/locales/fr_FR.json index 870259a..488d135 100644 --- a/locales/fr_FR.json +++ b/locales/fr_FR.json @@ -231,7 +231,7 @@ "caption": "Recherches consoles et serveurs de jeu" }, { - "caption": "Développement de patch Wii U", + "caption": "Développement de patch pour la Wii U", "picture": "https://github.com/GaryOderNichts.png", "github": "https://github.com/GaryOderNichts", "name": "GaryOderNichts" From 183773163e15de20b908be9836e79fdbf39d6706 Mon Sep 17 00:00:00 2001 From: Max Date: Wed, 18 Jun 2025 15:16:48 +0200 Subject: [PATCH 013/214] locales(update): Updated French locale Co-authored-by: Max --- locales/fr_FR.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/fr_FR.json b/locales/fr_FR.json index 488d135..6d879fb 100644 --- a/locales/fr_FR.json +++ b/locales/fr_FR.json @@ -184,7 +184,7 @@ ] }, "specialThanks": { - "title": "Remerciements spéciaux", + "title": "Sincères remerciements", "text": "Sans eux, Pretendo ne serait pas ce qu'il est aujourd'hui.", "people": [ { @@ -216,7 +216,7 @@ "github": "https://github.com/Kinnay", "name": "Kinnay", "caption": "Recherche sur les structures de données Nintendo", - "special": "Remerciements spéciaux" + "special": "Sincères remerciements" }, { "caption": "Icônes pour l'éditeur Mii et les réactions Juxt", From cd53cc964209a1253b8990c9b5032b19e8d9c01c Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 18 Jun 2025 15:16:49 +0200 Subject: [PATCH 014/214] locales(update): Updated Italian locale locales(update): Updated Italian locale locales(update): Updated Italian locale locales(update): Updated Italian locale Co-authored-by: Christian --- locales/it_IT.json | 49 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 45 insertions(+), 4 deletions(-) diff --git a/locales/it_IT.json b/locales/it_IT.json index 53d99f2..a292667 100644 --- a/locales/it_IT.json +++ b/locales/it_IT.json @@ -34,7 +34,7 @@ "title": "Informazioni", "paragraphs": [ "Pretendo è un progetto open source con l'obiettivo di ricreare Nintendo Network per 3DS e Wii U utilizzando ingegneria inversa clean-room.", - "Visto che i nostri server saranno gratuiti e open source, essi potranno esistere anche dopo l'inevitabile chiusura di Nintendo Network." + "Visto che i nostri server saranno gratuiti e open source, essi potranno esistere per molto tempo nel futuro." ] }, "progress": { @@ -55,14 +55,14 @@ }, { "question": "Come si usa Pretendo?", - "answer": "Pretendo non è ancora in uno stato tale da poter essere usata dal pubblico. Tuttavia, quando lo sarà potrai usare Pretendo semplicemente eseguendo il nostro patcher homebrew sulla tua console." + "answer": "Per iniziare con Pretendo Network su 3DS, Wii U o emulatori, vedi le nostre istruzioni di configurazione!" }, { "question": "Sapete quando una determinata funzionalità/servizio sarà pronta/o?", "answer": "No. Molte delle funzionalità/servizi di Pretendo sono sviluppate indipendentemente (per esempio, uno sviluppatore potrebbe lavorare su Miiverse mentre un altro sta lavorando su Account e Amici) e per questo non possiamo fornire una stima del tempo mancante al completamento." }, { - "question": "Pretendo funziona su Cemu/emulatori?", + "question": "Quando saranno aggiunti più giochi?", "answer": "Pretendo supporta qualsiasi client in grado di connettersi a Nintendo Network. Al momento l'unico emulatore con questa capacità è Cemu. Cemu 2.0 supporta ufficialmente Pretendo nelle opzioni dell'account di rete dell'emulatore. Per informazioni su come impostare Pretendo su Cemu, visita la documentazione.
    Citra non supporta le funzionalità di gioco online reali, quindi non funziona con Pretendo; inoltre, non mostra segni di poter funzionare in futuro. Mikage, un emulatore di 3DS per dispositivi mobili, potrebbe fornire supporto in futuro, ma questo è tutt'altro che certo." }, { @@ -106,7 +106,48 @@ }, "credits": { "title": "Il team", - "text": "Incontra il team dietro al progetto" + "text": "Incontra il team dietro al progetto", + "people": [ + { + "name": "Jonathan Barrow (jonbarrow)", + "github": "https://github.com/jonbarrow", + "picture": "https://github.com/jonbarrow.png" + }, + { + "name": "Jemma (CaramelKat)", + "picture": "https://github.com/caramelkat.png", + "github": "https://github.com/CaramelKat" + }, + { + "picture": "https://github.com/ashquarky.png", + "github": "https://github.com/ashquarky", + "name": "quarky" + }, + { + "name": "SuperMarioDaBom", + "github": "https://github.com/SuperMarioDaBom", + "picture": "https://github.com/supermariodabom.png" + }, + { + "caption": "Sviluppo web", + "github": "https://github.com/gitlimes", + "name": "pinklimes", + "picture": "https://github.com/gitlimes.png" + }, + { + "name": "Shutterbug2000", + "picture": "https://cdn.discordapp.com/avatars/191370953807233024/0311b61e2009c1576828dd2e9a59d72e.png?size=128", + "github": "https://github.com/shutterbug2000" + }, + { + "picture": "https://github.com/InternalLoss.png", + "name": "Billy", + "github": "https://github.com/InternalLoss" + }, + { + "name": "DaniElectra" + } + ] }, "specialThanks": { "title": "Ringraziamenti speciali", From ff7b3bab2d7c63d6b03a8221732a5ff8b495db1b Mon Sep 17 00:00:00 2001 From: silver_volt4 Date: Wed, 18 Jun 2025 15:16:49 +0200 Subject: [PATCH 015/214] locales(update): Updated Czech locale locales(update): Updated Czech locale Co-authored-by: silver_volt4 --- locales/cs_CZ.json | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/locales/cs_CZ.json b/locales/cs_CZ.json index 4c0e663..b0e12a0 100644 --- a/locales/cs_CZ.json +++ b/locales/cs_CZ.json @@ -228,9 +228,13 @@ "question": "Kdy přidáte další hry?", "answer": "Na nových hrách pracujeme, jakmile máme pocit, že na to jsou naše backendové knihovny dostatečně připraveny, a některý z vývojářů má čas se této hře věnovat. Mnoho naší práce připadá na stabilizaci a dokončování našich existujících her - chceme v nich nabídnout co nejlepší zážitek, než se přesuneme na nové tituly. Protože se nová práce objevuje neustále, nemůžeme poskytnout odhad, kdy se to stane." }, + { + "question": "Bude mi na používání služeb Pretenda stačit emulátor?", + "answer": "Ne. Pokud si přejete používat emulátor, budete potřebovat opravdovou konzoli. Tím můžeme zajistit zvýšenou bezpečnost a efektivnější vynucování pravidel, které jsou klíčové pro poskytování bezpečných a příjemných služeb." + }, { "question": "Funguje Pretendo na Cemu/emulátorech?", - "answer": "Cemu 2.1 oficiálně podporuje Pretendo v nastavení účtu. Pro informace jak začít s Cemu navštivte dokumentaci.
    Některé 3DS emulátory můžou nabízet podporu, ale v současnosti nemáme oficiální doporučení ani návod k nastavení. Citra ve své poslední vydané verzi Pretendo nepodporuje." + "answer": "Cemu 2.1 oficiálně podporuje Pretendo v nastavení účtu. Pro informace jak začít s Cemu navštivte dokumentaci.
    Některé 3DS emulátory mohou nabízet podporu, ale v současnosti nemáme oficiální doporučení ani návod k nastavení. Citra ve své poslední vydané verzi Pretendo nepodporuje." }, { "question": "Bude Pretendo podporovat Wii/Switch?", @@ -238,15 +242,15 @@ }, { "question": "Budu pro připojení potřebovat modifikovanou konzoli?", - "answer": "Pro nejlepší výsledek budete svou konzoli muset modifikovat; s Aroma na Wii U a Luma3DS na 3DS. Nicméně, na Wii U je dostupná metoda SSSL, která, byť s omezenou funkcionalitou, nabízí připojení bez modifikací. Pro podrobnosti navštivte návod k nastavení." + "answer": "Pro nejlepší výsledek budete svou konzoli muset modifikovat - přesněji pomocí Aroma na Wii U a Luma3DS na 3DS. Nicméně, na Wii U je dostupná metoda SSSL, která, byť s omezenou funkcionalitou, nabízí připojení bez modifikací. Pro podrobnosti navštivte návod k nastavení." }, { "question": "Pokud jsem zabanován(a) na Nintendo Network, přenese se můj ban do Pretenda?", - "answer": "Nemáme přístup k banům na Nintendo Network a tito uživatelé na naší službě zabanováni nebudou. Máme však vlastní pravidla pro používání naší služby, jejichž porušení by mohlo vyústit v ban na Pretendu." + "answer": "Nemáme přístup k seznamu banů na Nintendo Network, takže nikdo z uživatelů Nintendo Network ban na Pretendu nemá. Máme však vlastní zásady pro používání naší služby, jejichž porušení by mohlo vyústit v ban na Pretendu." }, { "question": "Můžu na Pretendu používat mody a cheaty?", - "answer": "Pouze v soukromých zápasech - narušování online her lidem, kteří s tím nesouhlasili (tedy veřejné zápasy) je proti zásadám. Bany konzolím a účtům udělujeme pravidelně. Pretendo dále používá dodatečná bezpečnostní opatření, která brání v obcházení banů např. změnou sériového čísla." + "answer": "Pouze v soukromých zápasech - narušování online her lidem, kteří s tím nesouhlasili (tedy ve veřejných zápasech) je proti zásadám. Bany konzolím a účtům udělujeme pravidelně. Pretendo dále používá dodatečná bezpečnostní opatření, která brání v obcházení banů např. změnou sériového čísla." } ], "text": "Zde je pár častých otázek, které často slyšíme, abyste byli v obraze.", @@ -306,7 +310,7 @@ "hasAccessPrompt": "Váš aktuální tier Vám dává přístup k beta serverům. Super!", "passwordResetNotice": "Po změně hesla budete odhlášen(a) ze všech zařízení.", "otherSettings": "Ostatní nastavení", - "no_edit_from_dashboard": "Úprava PNID nastavení z uživatelského panelu není aktuálně dostupné. Změňte prosím Vaše uživatelské nastavení z připojené herní konzole." + "no_edit_from_dashboard": "Úprava PNID nastavení z uživatelského panelu není aktuálně dostupná. Změňte prosím Vaše uživatelské nastavení z připojené herní konzole." }, "unavailable": "Nedostupné", "upgrade": "Upgradovat účet" @@ -355,7 +359,7 @@ "unsubConfirm": "Zrušit předplatné", "tierSelectPrompt": "Vyberte si tier", "changeTierPrompt": "Jste si jisti, že chcete zrušit předplatné oldtiername a předplácet newtiername?", - "unsubPrompt": "Jste si jisti, že chcete zrušit předplatné tiername? Přijdete o všechny výhody spojené s tímto tierem.", + "unsubPrompt": "Jste si jisti, že chcete zrušit předplatné tiername? S okamžitou platností přijdete o všechny výhody spojené s tímto tierem.", "title": "Upgradovat", "description": "Dosažení měsíčního cíle udělá z Pretenda plnohodnotné zaměstnání a umožní nám poskytovat kvalitnější aktualizace v rychlejším tempu." }, From 1789719787b8906a7bcb4c801b76b00aa19d69b0 Mon Sep 17 00:00:00 2001 From: A Dev Date: Wed, 18 Jun 2025 15:16:49 +0200 Subject: [PATCH 016/214] locales(update): Updated Korean locale locales(update): Updated Korean locale locales(update): Updated Korean locale Co-authored-by: A Dev --- locales/ko_KR.json | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/locales/ko_KR.json b/locales/ko_KR.json index 5b89f4b..0fd672e 100644 --- a/locales/ko_KR.json +++ b/locales/ko_KR.json @@ -55,27 +55,38 @@ }, { "question": "Pretendo는 어떻게 접속하나요?", - "answer": "Pretendo는 아직 공용으로 사용할 수 없습니다. 그러나, 사용이 가능해지면 콘솔에서 홈브루 패쳐를 작동시키면 접속할 수 있게 될 것입니다." + "answer": "Pretendo 네트워크를 3DS에서나 Wii U, 혹은 에뮬레이터에서 접속하려면, 먼저 설치 방법을 확인 해 주세요!" }, { - "question": "기능/서비스가 언제 준비될지 알고 싶나요?", + "question": "어떤 기능/서비스가 언제 준비되나요?", "answer": "아니요. 대부분의 Pretendo 기능/서비스는 독립적으로 개발되고 있기 때문에 (예를 들어, 한 개발자가 Miiverse의 작업을 하고 있을 때 계정과 친구 서비스는 다른 개발자가 작업함), 예상 시간은 말씀드릴 수 없습니다." }, { - "question": "Pretendo가 Cemu/에뮬레이터에서 작동하나요?", - "answer": "Pretendo는 Wii U와 3DS 하드웨어만을 대상으로 제작하고 있습니다. 현재까지 닌텐도 네트워크 지원이 되는 에뮬레이터는 Cemu 뿐이나, Cemu는 공식적으로 커스텀 서버를 지원하지 않습니다. 그러나 Cemu에서도 Pretendo를 이용할 수 있게 될 것입니다. Pretendo는 아직 Cemu를 지원하지 않습니다." + "question": "게임들이 언제 더 추가되나요?", + "answer": "저희는 저희 백엔드 서비스들이 (기반 서비스)들의 지원이 뒷받혀주고 어떤 개발자의 시간이 비었을때 새로운 게임의 서비스를 개발합니다. 대부분 저희가 일하는 것은 현재 지원하는 게임들의 서비스를 완벽하게 만들고 최적화하는데 집중하는데, 그 이유는 먼저 시작한 서비스를 완벽하게 하고 싶기 때문이죠. 버그나 오류가 계속 나오니, 언제부터 새 게임의 서비스를 개발할지는 저희도 모릅니다." }, { "question": "제가 닌텐도 네트워크에서 영구 정지가 되어 있다면 Pretendo Network에서도 영구 정지된 상태일까요?", - "answer": "저희는 닌텐도 네트워크의 영구 정지 리스트에 대한 권한이 없기 때문에, 저희 서비스를 사용할 때 정지가 되지는 않을 겁니다. 그러나, 저희는 저희만의 운영원칙이 있을 것이며, 그에 따르지 않는 것은 결국 영구 정지에 이어질 것입니다." + "answer": "아니요. 서비스의 보안과 검열을 위해서, 에뮬레이터를 사용하시더라도 실제로 게임기를 소유하셔야 합니다. 이렇게 함으로써 더 강화된 보안과 더 즐거운 서비스를 저희가 제공할 수 있습니다." }, { - "question": "Pretendo가 Wii/스위치를 지원하나요?", + "question": "Pretendo가 Cemu나 다른 에뮬레이터에서 작동하나요?", "answer": "Wii의 서비스는 이미 Wiimmfi가 제공하고 있습니다. 스위치의 Nintendo Switch Online은 유료이며 닌텐도 네트워크와 전혀 다르기 때문에, 현재로서도 지원할 계획은 없습니다." }, { "question": "연결하려면 해킹이 필요한가요?", "answer": "네, 연결하기 위해 콘솔 해킹은 필요할 것입니다. 다만, Wii U에서는 홈브루 런처의 접근 권한만 있으면 됩니다 (예. Haxchi, Coldboot Haxchi, 웹 브라우저 취약점). 3DS에서의 연결 방법은 추후에 공개될 것입니다." + }, + { + "answer": "최고의 경험을 위해서는, 게임기를 해킹하셔야 합니다. 특히 Wii U의 Aroma와 3DS의 Luma3DS로요. 그런데, Wii U에서는, 기능은 제한되있지만 해킹 없이 사용할 수 있는 SSSL 방식도 사용 하실 수 있습니다. 더 많은 정보는 이 문서를 참고하세요." + }, + { + "answer": "저희는 닌텐도 네트워크의 밴 기록을 알 수 없기 때문에, 닌텐도 네트워크에서의 밴이 그대로 이어지지 않습니다. 다만, 저희도 저희만의 규칙이 있기 때문에, 저희의 규칙을 따르지 않으신다면 밴을 당하실 수 있습니다.", + "question": "제가 닌텐도 네트워크에서 밴을 당했었다면, Pretendo에서도 밴이 그대로 유지될까요?" + }, + { + "answer": "비공개 매치에서만 가능합니다. 공개 매치에서 다른 사람들의 게임 경험을 망치는 것은 충분히 밴의 이유가 될 수 있습니다. 저희는 꾸준하게 Wii U 및 3DS 기기들을 밴하고, 또한 Pretendo에서는 닌텐도 네트워크에서 가능했던 시리얼 번호를 바꾸는 등의 방법으로 '밴 해제'를 막는 추가 보안이 적용되어 있습니다.", + "question": "치트나 모드를 Pretendo에서 사용해도 되냐요?" } ] }, @@ -101,7 +112,9 @@ "title": "개발 팀", "text": "이 프로젝트 뒤에 있는 팀을 만나보세요", "people": [ - {}, + { + "caption": "프로젝트 제작자이자 프로젝트를 이끄는 개발자" + }, { "caption": "Miiverse 연구와 개발" }, From 4bab2208fcd88e5e10a3946a2bcd72799b5eb3a1 Mon Sep 17 00:00:00 2001 From: Antonio Carter Date: Wed, 18 Jun 2025 15:16:49 +0200 Subject: [PATCH 017/214] locales(update): Updated Greek locale Co-authored-by: Antonio Carter --- locales/el_GR.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/locales/el_GR.json b/locales/el_GR.json index b90dc42..92d9545 100644 --- a/locales/el_GR.json +++ b/locales/el_GR.json @@ -157,7 +157,12 @@ }, "credits": { "text": "Γνώρισε την ομάδα που αναπτύσσει το project", - "title": "Η ομάδα" + "title": "Η ομάδα", + "people": [ + { + "caption": "Ιδιοκτήτης του έργου και κύριος προγραμματιστής" + } + ] }, "discordJoin": { "text": "Μπές στον Discord server μας για να λαμβάνεις τις νεότερες ενημερώσεις μας πάνω στο project.", From ffdf68b9da4b46a5ebd378c14693a4b58bd5626a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Arnau=20B=C3=A0rcia?= Date: Wed, 18 Jun 2025 15:16:49 +0200 Subject: [PATCH 018/214] locales(update): Updated Spanish locale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Arnau Bàrcia --- locales/es_ES.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index 9d6a675..edc5d60 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -70,11 +70,11 @@ "answer": "Cemu 2.1 soporta oficialmente Pretendo bajo las opciones de su cuenta de red en el emulador. Para obtener información sobre cómo empezar con Cemu, consulte la documentación.
    Algunos emuladores o bifurcaciones de 3DS podrían ser compatibles con nosotros, pero no tenemos ninguna recomendación oficial ni instrucciones de configuración en este momento. Las compilaciones finales de Citra no soportan Pretendo." }, { - "question": "¿Pretendo será compatible con la Wii/Switch?", + "question": "¿Pretendo funciona en Cemu/emuladores?", "answer": "La Wii ya tiene servidores en línea personalizados por parte de Wiimmfi. No tenemos planeado trabajar con la Switch ya que sus servicios son de pago y completamente diferentes a los de Nintendo Network." }, { - "question": "¿Necesitaré modificar mi consola para conectarme?", + "question": "¿Pretendo será compatible con la Wii/Switch?", "answer": "Para obtener la mejor experiencia en consolas necesitarás modificar tu sistema, especificamente Aroma en Wii U y Luma3DS en 3DS. No obstante, en Wii U, el metodo sin modificación SSSL también está disponible con funcionalidad limitada. Consulte nuestras instrucciones de instalación para más detalles." }, { From e19f22f38cfbfc04d1cdf4b81847479e164c1ab8 Mon Sep 17 00:00:00 2001 From: gallegonovato Date: Wed, 18 Jun 2025 15:16:49 +0200 Subject: [PATCH 019/214] locales(update): Updated Spanish locale Co-authored-by: gallegonovato --- locales/es_ES.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index edc5d60..736c1f1 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -78,7 +78,7 @@ "answer": "Para obtener la mejor experiencia en consolas necesitarás modificar tu sistema, especificamente Aroma en Wii U y Luma3DS en 3DS. No obstante, en Wii U, el metodo sin modificación SSSL también está disponible con funcionalidad limitada. Consulte nuestras instrucciones de instalación para más detalles." }, { - "question": "Si estoy baneado en Nintendo Network, ¿seguiré baneado al usar Pretendo?" + "question": "Si me expulsan en Nintendo Network, ¿seguiré expulsado cuando use Pretendo?" }, { "question": "¿Puedo usar trucos o mods en línea con Pretendo?", From bca1bd64fdbabe139345bc75aecd1e13ce93e6bb Mon Sep 17 00:00:00 2001 From: Pablo Villagra Date: Wed, 18 Jun 2025 15:16:49 +0200 Subject: [PATCH 020/214] locales(update): Updated Spanish locale Co-authored-by: Pablo Villagra --- locales/es_ES.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index 736c1f1..f25d0d1 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -66,7 +66,7 @@ "answer": "Trabajamos en nuevos juegos una vez que sentimos que nuestras bibliotecas de backend están listas para soportarlo, y hay tiempo disponible para mantenerlo. Gran parte de nuestro trabajo se dedica a estabilizar y completar nuestros juegos existentes - queremos obtener la mejor experiencia posible en los mismos antes de pasar a nuevos títulos. Dado que se presentan nuevos trabajos todo el tiempo, no podemos hacer ninguna estimación de cuándo sería esto." }, { - "question": "¿Pretendo funciona en Cemu/emuladores?", + "question": "¿Pretendo funciona en Cemu/emuladores? ¿Si uso un emulador, será eso suficiente para usar Pretendo?", "answer": "Cemu 2.1 soporta oficialmente Pretendo bajo las opciones de su cuenta de red en el emulador. Para obtener información sobre cómo empezar con Cemu, consulte la documentación.
    Algunos emuladores o bifurcaciones de 3DS podrían ser compatibles con nosotros, pero no tenemos ninguna recomendación oficial ni instrucciones de configuración en este momento. Las compilaciones finales de Citra no soportan Pretendo." }, { From a85e7a0aa6d4fc008ac9e74cf4be8f20185a37c8 Mon Sep 17 00:00:00 2001 From: himaisogin Date: Wed, 18 Jun 2025 15:16:50 +0200 Subject: [PATCH 021/214] locales(update): Updated Japanese locale locales(update): Updated Japanese locale Co-authored-by: himaisogin --- locales/ja_JP.json | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/locales/ja_JP.json b/locales/ja_JP.json index b81e939..6a32b41 100644 --- a/locales/ja_JP.json +++ b/locales/ja_JP.json @@ -34,7 +34,7 @@ "title": "Pretendo について", "paragraphs": [ "Pretendoは、公式のものに代わって3DSとWii Uのニンテンドーネットワークをつくることを目的としたオープンソースのプロジェクトです。", - "Pretendo のサービスは無料のオープンソースであり、ニンテンドーネットワークが終了してからも継続して利用することができます。" + "Pretendo のサービスは無料、そしてオープンソースであり、ニンテンドーネットワークが終了してからも継続して利用することができます。" ] }, "progress": { @@ -111,6 +111,18 @@ {}, { "caption": "Webの開発" + }, + {}, + {}, + { + "caption": "システムの研究とサーバーの開発" + }, + { + "caption": "Webとサーバーの開発" + }, + {}, + { + "caption": "サーバーの開発と最適化" } ] }, @@ -127,14 +139,17 @@ }, {}, {}, - {}, + { + "caption": "Wii Uパッチの開発" + }, {}, {}, {}, {}, {}, { - "caption": "翻訳とその他の貢献" + "caption": "翻訳とその他の貢献", + "name": "GitHubの貢献者" } ] }, From b64456ad772cd147a246b46b36058a123191b2b0 Mon Sep 17 00:00:00 2001 From: Dimitri A Date: Wed, 18 Jun 2025 15:16:50 +0200 Subject: [PATCH 022/214] locales(update): Updated Japanese locale Co-authored-by: Dimitri A --- locales/ja_JP.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/ja_JP.json b/locales/ja_JP.json index 6a32b41..8b1cc25 100644 --- a/locales/ja_JP.json +++ b/locales/ja_JP.json @@ -62,7 +62,7 @@ "answer": "正確にはわかりません。Pretendoの機能は各々で開発が進んでいます。例として、ある人がMiiverseを開発しているとき、並行して別の開発者がアカウント/フレンド機能を開発しています。そのため、全体の完成予定時間の予測は困難です。" }, { - "question": "Cemuなどのエミュレーターでもつかえる?", + "question": "さらに多くのゲームのサポートはいつ追加されますか?", "answer": "Pretendoはニンテンドーネットワークに接続できるすべてのクライアントに対応しています。現在正式に対応しているエミュレーターはCemu 2.0です。ネットワークアカウント設定からPretendoを設定することができます。Cemuでの使用方法については このドキュメント を確認してください。
    Citraにはニンテンドーネットワークへの接続機能がないため、Pretendoにアクセスすることもできません(Citraが今後対応することもありません)。3DSのモバイル向けエミュレーターであるMikageは、対応する可能性がありますがいまのところ予定はありません。" }, { From 800f6770268d8cccd185d0672b5a2de0d25227b0 Mon Sep 17 00:00:00 2001 From: "T. Kawakami" Date: Wed, 18 Jun 2025 15:16:50 +0200 Subject: [PATCH 023/214] locales(update): Updated Japanese locale locales(update): Updated Japanese locale Co-authored-by: T. Kawakami --- locales/ja_JP.json | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/locales/ja_JP.json b/locales/ja_JP.json index 8b1cc25..77cb015 100644 --- a/locales/ja_JP.json +++ b/locales/ja_JP.json @@ -63,11 +63,15 @@ }, { "question": "さらに多くのゲームのサポートはいつ追加されますか?", - "answer": "Pretendoはニンテンドーネットワークに接続できるすべてのクライアントに対応しています。現在正式に対応しているエミュレーターはCemu 2.0です。ネットワークアカウント設定からPretendoを設定することができます。Cemuでの使用方法については このドキュメント を確認してください。
    Citraにはニンテンドーネットワークへの接続機能がないため、Pretendoにアクセスすることもできません(Citraが今後対応することもありません)。3DSのモバイル向けエミュレーターであるMikageは、対応する可能性がありますがいまのところ予定はありません。" + "answer": "私たちはバックエンドが新しいゲームをサポートするのに十分で、なおかつ新しいゲームを管理するのに十分な時間のある開発者がいると感じたときのみ新しいゲームのサポートに動きます。ほとんどの労力は既存のゲームのサポートを安定させ、完成させることに行きます。私たちはできるだけ既存のゲームのサポートを良くしてから新しいゲームのサポートを始めます。仕事は常に増えていくので、それがいつになるのかはわかりません。" }, { "question": "ニンテンドーネットワークでBANされたら、PretendoでもBANされるの?", - "answer": "PretendoはニンテンドーネットワークのBAN情報にアクセスすることができないため、PretendoへBANが引き継がれることはありません。ただし、Pretendoの定めたルールに違反するとBANされることがあります。" + "answer": "いいえ。セキュリティーと管理のために、エミュレーターがあっても、ゲーム機本体が必要です。これによって、セキュリティーが強化され、安全で楽しめる体験のためのルールの適用などが効果的になります。" + }, + { + "question": "Cemuやその他のエミュレーターでも接続できる?", + "answer": "WiiにはWiimmfiという代替サーバーがあります。Switchのネットワーク機能は有料であること、またニンテンドーネットワークとは全く異なることから、対応することはありません。" }, { "question": "WiiやNintendo Switchでもつかえる?", @@ -75,7 +79,14 @@ }, { "question": "つなげるには改造が必要?", - "answer": "はい、接続するにはゲーム機を改造する必要があります。Wii U では Homebrew Launcher へアクセスするだけで接続できます(Haxchi、Coldboot Haxchi、または Web ブラウザーのエクスプロイトなど)。3DS で接続する方法については後日公開します。" + "answer": "最適な環境でプレイするなら、ゲーム機を改造する必要があります。Wii UではAromaを、3DSではLuma3DSをです。しかしWii Uでは、改造しなくても機能が限られたSSSLで接続できます。詳しくは、セットアップガイドをご覧ください。" + }, + { + "question": "ニンテンドーネットワークでBANされていたら、PretendoでもBANされるの?", + "answer": "PretendoはニンテンドーネットワークのBAN情報にアクセスすることができないため、PretendoへBANが引き継がれることはありません。ただし、Pretendoの定めたルールに違反するとBANされることがあります。" + }, + { + "question": "Pretendoに接続中に、チートやモッドを使えますか?" } ] }, From c3a79676e960ff0cdf5e1f17f61a680427377e17 Mon Sep 17 00:00:00 2001 From: Ash Logan Date: Wed, 18 Jun 2025 15:16:50 +0200 Subject: [PATCH 024/214] locales(update): Updated English (United Kingdom) locale Co-authored-by: Ash Logan Co-authored-by: Ash Tails --- locales/en_GB.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/locales/en_GB.json b/locales/en_GB.json index 53ea294..1d5b901 100644 --- a/locales/en_GB.json +++ b/locales/en_GB.json @@ -84,6 +84,9 @@ { "question": "Can I use cheats or mods online with Pretendo?", "answer": "Only in private matches - gaining an unfair advantage or disrupting the online experience with people who didn't consent (as in public matches) is a bannable offence. We regularly apply account and console bans to both Wii U and 3DS systems. Pretendo uses extra security measures that make traditional 'unban' methods like changing your serial number ineffective." + }, + { + "question": "Can I use cheats or mods online with Pretendo?" } ] }, From 023a2ab7122474fca7b97aba4dceac98f02ab36f Mon Sep 17 00:00:00 2001 From: PoorPockets McNewHold Date: Wed, 18 Jun 2025 15:16:50 +0200 Subject: [PATCH 025/214] locales(update): Updated French locale Co-authored-by: PoorPockets McNewHold --- locales/fr_FR.json | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/locales/fr_FR.json b/locales/fr_FR.json index 6d879fb..731df0e 100644 --- a/locales/fr_FR.json +++ b/locales/fr_FR.json @@ -66,24 +66,27 @@ "answer": "Nous travaillons sur de nouveaux jeux une fois que nous estimons que nos bibliothèques internes sont prêtes à les prendre en charge et que du temps de développement est disponible pour les maintenir. Une grande partie de notre travail consiste à stabiliser et finaliser nos jeux existants – nous voulons offrir la meilleure expérience possible avant de passer à de nouveaux titres. Comme de nouvelles tâches surgissent constamment, nous ne pouvons pas estimer quand cela se produira." }, { - "question": "Pretendo fonctionne-t-il sur Cemu / émulateur ?", - "answer": "La version 2.1 de Cemu prend Pretendo en charge, via les paramètres de connexion de l'émulateur. Pour plus d'information sur comment s'y prendre, référez-vous à la documentation.
    Certains émulateurs 3DS prennent charge Pretendo, nous n'avons pas de recommandations officielle ou de procédures d'installation pour l'instant. Le build le plus récent de Citra ne prend pas en charge Pretendo." + "question": "Si j'utilise un émulateur, sera-t-il suffisant pour utiliser Pretendo ?", + "answer": "Non. Pour des raisons de sécurité et de modération, si vous utilisez un émulateur, vous aurez toujours besoin d'une vraie console. Cela permet une meilleure sécurité et une modération plus efficace pour permettre de créer une expérience sûre et satisfaisante de notre service." }, { - "question": "Est-ce que Pretendo sera compatible avec la Wii/Switch ?", - "answer": "La Wii dispose déjà de serveurs personnalisés fournis par Wiimmfi. Concernant la Switch, nous ne souhaitons actuellement pas la cibler car ses services sont payants et complètement différents du Nintendo Network." + "question": "Est-ce que Pretendo fonctionne sur Cemu/émulateurs ?", + "answer": "La version 2.1 de Cemu prend Pretendo en charge, via les paramètres de connexion de l'émulateur. Pour plus d'informations sur comment s'y prendre, référez-vous à la documentation.
    Certains émulateurs 3DS prennent charge Pretendo, nous n'avons pas de recommandations officielles ou de procédures d'installation pour l'instant. La version la plus récente de Citra ne prend pas en charge Pretendo." }, { - "question": "Aurais-je besoin de modifier ma console pour me connecter ?", - "answer": "Pour la meilleure expérience possible sur console, Vous aurez besoin de modifier le système de celle-ci — par exemple, grâce à Aroma pour la Wii U ou Luma3DS pour la 3DS. Cependant, avec la Wii U, il est possible d'accéder à Pretendo sans modification, mais avec des fonctionnalités limitées. Voir la documentation pour plus de détails." + "question": "Est-ce que Pretendo sera compatible avec la Wii/Switch ?", + "answer": "La Wii dispose déjà de serveurs personnalisés fournis par Wiimmfi. Concernant la Switch, nous ne souhaitons actuellement pas la cibler, car ses services sont payants et complètement différents du Nintendo Network." }, { - "answer": "Nous n'avons pas accès à la liste des bannissements du Nintendo Network, ce ne sera donc pas le cas. Il est cependant obligatoire de suivre les règles en vigueur sur notre réseau, sous peine de ban.", - "question": "Si je suis banni du Nintendo Network, est-ce que ce sera le cas avec Pretendo ?" + "answer": "Pour la meilleure expérience possible sur console, vous aurez besoin de modifier le système de celle-ci — par exemple, grâce à Aroma pour la Wii U ou Luma3DS pour la 3DS. Cependant, avec la Wii U, il est possible d'accéder à Pretendo sans modification, mais avec des fonctionnalités limitées. Voir la documentation pour plus de détails.", + "question": "Aurais-je besoin de modifier ma console pour me connecter ?" }, { - "question": "Puis-je utiliser des cheats ou des mods en ligne avec Pretendo ?", - "answer": "Uniquement lors de parties privées. L'utilisation de triches en public afin d'obtenir (ou de conférer) un avantage déloyal ou de nuire à l'expérience de jeu des autres joueurs, sans leur consentement, est interdite sous peine de bannissement. Nous bannissons régulièrement certains comptes et consoles parmi les utilisateurs Wii U et 3DS. Pretendo emploie de nouvelles mesures de sécurité, de sorte à rendre inefficaces les tentatives d'évasion de ban par changement de numéro de série (ou par d'autres méthodes traditionnelles)." + "question": "Si je suis banni du Nintendo Network, est-ce que ce sera le cas avec Pretendo ?", + "answer": "Nous n'avons pas accès à la liste des bannissements du Nintendo Network, ce ne sera donc pas le cas. Il est cependant obligatoire de suivre les règles en vigueur sur notre réseau, sous peine de ban." + }, + { + "answer": "Uniquement lors de parties privées. L'utilisation de triches en public afin d'obtenir (ou de conférer) un avantage déloyal ou de nuire à l'expérience de jeu d'autres joueurs, sans leur consentement, est interdite sous peine de bannissement. Nous bannissons régulièrement certains comptes et consoles parmi les utilisateurs Wii U et 3DS. Pretendo emploie de nouvelles mesures de sécurité, de sorte à rendre inefficaces les tentatives d'évasion de ban par changement de numéro de série (ou par d'autres méthodes traditionnelles)." } ] }, From 23d0a591b236fbda8f08613d210d47033d0479e3 Mon Sep 17 00:00:00 2001 From: Maxime Tourneur Date: Wed, 18 Jun 2025 15:16:50 +0200 Subject: [PATCH 026/214] locales(update): Updated French locale Co-authored-by: Maxime Tourneur --- locales/fr_FR.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/fr_FR.json b/locales/fr_FR.json index 731df0e..00fb1c5 100644 --- a/locales/fr_FR.json +++ b/locales/fr_FR.json @@ -54,7 +54,7 @@ "answer": "Malheureusement, non. Les identifiants existants ne seront pas conservés, et Nintendo restera le seul détenteur de vos données personnelles. Bien qu'une extraction des informations soit théoriquement possible, cela reviendrait à récupérer des milliers de données sensibles : chose que nous désapprouvons." }, { - "question": "Comment puis-je utiliser Pretendo ?", + "question": "Comment utiliser Pretendo ?", "answer": "Afin de commencer le paramétrage de Pretendo sur 3DS, Wii U ou un émulateur, veuillez consulter notre guide d'installation !" }, { From da4b1d50812b1de1eaea38ef237f0bbad65e72a2 Mon Sep 17 00:00:00 2001 From: Dimitri A Date: Wed, 18 Jun 2025 15:16:50 +0200 Subject: [PATCH 027/214] locales(update): Updated Finnish locale locales(update): Updated Korean locale locales(update): Updated French locale Co-authored-by: Dimitri A --- locales/fi_FI.json | 7 ++++++- locales/fr_FR.json | 3 ++- locales/ko_KR.json | 4 +++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/locales/fi_FI.json b/locales/fi_FI.json index c413800..1a8feb6 100644 --- a/locales/fi_FI.json +++ b/locales/fi_FI.json @@ -99,7 +99,12 @@ }, "credits": { "title": "Tiimi", - "text": "Tutustu tiimiin projektin takana" + "text": "Tutustu tiimiin projektin takana", + "people": [ + { + "caption": "Projektin omistaja ja johtava kehittäjä" + } + ] }, "specialThanks": { "title": "Erityiskiitokset", diff --git a/locales/fr_FR.json b/locales/fr_FR.json index 00fb1c5..9c5e12d 100644 --- a/locales/fr_FR.json +++ b/locales/fr_FR.json @@ -86,7 +86,8 @@ "answer": "Nous n'avons pas accès à la liste des bannissements du Nintendo Network, ce ne sera donc pas le cas. Il est cependant obligatoire de suivre les règles en vigueur sur notre réseau, sous peine de ban." }, { - "answer": "Uniquement lors de parties privées. L'utilisation de triches en public afin d'obtenir (ou de conférer) un avantage déloyal ou de nuire à l'expérience de jeu d'autres joueurs, sans leur consentement, est interdite sous peine de bannissement. Nous bannissons régulièrement certains comptes et consoles parmi les utilisateurs Wii U et 3DS. Pretendo emploie de nouvelles mesures de sécurité, de sorte à rendre inefficaces les tentatives d'évasion de ban par changement de numéro de série (ou par d'autres méthodes traditionnelles)." + "answer": "Uniquement lors de parties privées. L'utilisation de triches en public afin d'obtenir (ou de conférer) un avantage déloyal ou de nuire à l'expérience de jeu d'autres joueurs, sans leur consentement, est interdite sous peine de bannissement. Nous bannissons régulièrement certains comptes et consoles parmi les utilisateurs Wii U et 3DS. Pretendo emploie de nouvelles mesures de sécurité, de sorte à rendre inefficaces les tentatives d'évasion de ban par changement de numéro de série (ou par d'autres méthodes traditionnelles).", + "question": "Autorisez-vous la triche ou l'utilisation de mods en ligne sur Pretendo ?" } ] }, diff --git a/locales/ko_KR.json b/locales/ko_KR.json index 0fd672e..14c4b04 100644 --- a/locales/ko_KR.json +++ b/locales/ko_KR.json @@ -131,7 +131,9 @@ {}, {}, {}, - {}, + { + "caption": "닌텐도 자료구조 연구" + }, {}, { "caption": "게임기 연구 및 게임 서버" From 1be8eb00aa9d5f3c13ab614e94329c4c9c53ab8d Mon Sep 17 00:00:00 2001 From: Eduardo Toebe Date: Wed, 18 Jun 2025 15:16:51 +0200 Subject: [PATCH 028/214] locales(update): Updated Portuguese (Brazil) locale Co-authored-by: Eduardo Toebe --- locales/pt_BR.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/pt_BR.json b/locales/pt_BR.json index af538c6..eb49dfe 100644 --- a/locales/pt_BR.json +++ b/locales/pt_BR.json @@ -62,7 +62,7 @@ "answer": "Não. Muitos dos recursos e serviços da Pretendo são desenvolvidos de forma independente (por exemplo, o Miiverse pode ser trabalhado por um desenvolvedor enquanto as contas e lista de amigos são trabalhados por outro) e, portanto, não podemos estimar quanto tempo isso pode levar." }, { - "question": "A Pretendo funciona em emuladores?", + "question": "Quando vocês irão adicionar mais jogos?", "answer": "Pretendo suporta qualquer cliente que possa interagir com a Nintendo Network. No momento, o único emulador para um desses consoles com suporte a Nintendo Network é o Cemu. O Cemu 2.0 oficialmente suporta a Pretendo nas configurações de conta do emulador. Para mais informações em como usar a Pretendo no Cemu, por favor visite a documentação.
    Citra não suporta o modo online de verdade, e não funciona com a Pretendo, e também não demonstra nenhum sinal de suportar um modo online no futuro. Mikage, um outro emulador de 3DS para celulares, talvez haverá uma maneira de se conectar online no futuro." }, { From 1350021fd395399f38f90aadf492ac905ab493c3 Mon Sep 17 00:00:00 2001 From: "Kevin.MX" Date: Wed, 18 Jun 2025 15:16:51 +0200 Subject: [PATCH 029/214] locales(update): Updated Chinese (Simplified Han script) locale Co-authored-by: Kevin.MX --- locales/zh_CN.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/zh_CN.json b/locales/zh_CN.json index 9fc13a6..ff0a31b 100644 --- a/locales/zh_CN.json +++ b/locales/zh_CN.json @@ -55,7 +55,7 @@ }, { "question": "如何使用 Pretendo?", - "answer": "Pretendo 目前尚未处于可供公众使用的状态。但是,一旦完成,您只需在系统上运行我们的自制补丁程序即可使用 Pretendo。" + "answer": "Pretendo 目前尚未准备好供公众使用。一旦我们准备就绪,您只需在机器上运行我们提供的自制补丁,即可开始使用。" }, { "question": "什么时候某某功能/服务能完成?", From c5112b4828f72e8a378af7caafffe833385bec45 Mon Sep 17 00:00:00 2001 From: XiaoYee Date: Wed, 18 Jun 2025 15:16:51 +0200 Subject: [PATCH 030/214] locales(update): Updated Chinese (Simplified Han script) locale Co-authored-by: XiaoYee --- locales/zh_CN.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/zh_CN.json b/locales/zh_CN.json index ff0a31b..778f90d 100644 --- a/locales/zh_CN.json +++ b/locales/zh_CN.json @@ -34,7 +34,7 @@ "title": "关于我们", "paragraphs": [ "Pretendo 是一个开源项目,旨在使用逆向工程为 3DS 和 Wii U 重新创建 Nintendo Network。", - "我们的服务将是免费和开源的,它们可以在 Nintendo Network 不可避免的关闭之后还存在。" + "此服务免费且开源,即使任天堂官方停服后也仍然可用。" ] }, "progress": { From cd51c61f7205319b6b3230d1d6ba8355d1c6e1a1 Mon Sep 17 00:00:00 2001 From: Irham Mustofa Date: Wed, 18 Jun 2025 15:16:51 +0200 Subject: [PATCH 031/214] locales(update): Updated Indonesian locale Co-authored-by: Irham Mustofa --- locales/id_ID.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/locales/id_ID.json b/locales/id_ID.json index 6c1eb65..1acf8c7 100644 --- a/locales/id_ID.json +++ b/locales/id_ID.json @@ -14,7 +14,9 @@ "credits": "Berkenalan dengan Tim", "progress": "Lihat kemajuan dan tujuan proyek" } - } + }, + "faq": "FAQ", + "blog": "Blog" }, "hero": { "title": "Dibuat ulang", @@ -34,5 +36,13 @@ "progress": { "title": "Perkembangan", "githubRepo": "Repositori Github" + }, + "faq": { + "text": "Berikut adalah beberapa pertanyaan umum yang sering diajukan kepada kami untuk mendapatkan informasi yang mudah.", + "QAs": [ + { + "question": "Apa itu Pretendo?" + } + ] } } From 44cef12fff60975c3a4ad8e3fdf833a9f6c20619 Mon Sep 17 00:00:00 2001 From: GreatHornedOwl Date: Wed, 18 Jun 2025 15:16:51 +0200 Subject: [PATCH 032/214] locales(update): Updated Indonesian locale locales(update): Updated Indonesian locale Co-authored-by: GreatHornedOwl --- locales/id_ID.json | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/locales/id_ID.json b/locales/id_ID.json index 1acf8c7..27da46f 100644 --- a/locales/id_ID.json +++ b/locales/id_ID.json @@ -42,7 +42,35 @@ "QAs": [ { "question": "Apa itu Pretendo?" + }, + { + "answer": "Sayangnya, tidak. NNIDs yang sudah ada tidak bisa digunakan di Pretendo, karena hanya Nintendo memegang data user mu; sedangkan migrasi dari NNID-ke-PNID secara teori memungkinkan, itu bisa berisiko dan membutuhkan data user sensitif yang kami tidak ingin memiliki.", + "question": "Apakah NNID yang ada bekerja di Pretendo?" + }, + { + "question": "Bagaimana saya mengunakan Pretendo?", + "answer": "Untuk memulai dengan Jaringan Pretendo di 3DS, Wii U atau emulator, mohon melihat instruksi setup kami!" + }, + {}, + { + "question": "Kapan akan kamu tambahkan lebih banyak game?" + }, + { + "question": "Jika aku menggunakan emulator, apakah itu cukup untuk menggunakan Pretendo?" + }, + {}, + { + "question": "Akankah Pretendo mendukung Wii/Switch?" + }, + {}, + { + "question": "Jika aku di-banned di Jaringan Nintendo, Apakah aku tetap ter-banned saat menggunakan Pretendo?" } - ] + ], + "title": "Pertanyaan Umum" + }, + "modals": { + "close": "Tutup", + "cancel": "Batal" } } From e1f4674d9a42cde3ed4691e7f2bd9a9fba7f3a3e Mon Sep 17 00:00:00 2001 From: Evan Lie Date: Wed, 18 Jun 2025 15:16:51 +0200 Subject: [PATCH 033/214] locales(update): Updated Indonesian locale locales(update): Updated Indonesian locale Co-authored-by: Evan Lie --- locales/id_ID.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/locales/id_ID.json b/locales/id_ID.json index 27da46f..f36e746 100644 --- a/locales/id_ID.json +++ b/locales/id_ID.json @@ -12,11 +12,12 @@ "dropdown": { "captions": { "credits": "Berkenalan dengan Tim", - "progress": "Lihat kemajuan dan tujuan proyek" + "progress": "Lihat kemajuan dan tujuan proyek", + "faq": "Pertanyaan Umum" } }, - "faq": "FAQ", - "blog": "Blog" + "faq": "Pertanyaan Umum", + "blog": "Berita" }, "hero": { "title": "Dibuat ulang", From 2d068d09fa4379a165700689e148b70a71e49bc8 Mon Sep 17 00:00:00 2001 From: Irham Mustofa Date: Wed, 18 Jun 2025 15:16:51 +0200 Subject: [PATCH 034/214] locales(update): Updated Indonesian locale locales(update): Updated Indonesian locale locales(update): Updated Indonesian locale Co-authored-by: Irham Mustofa --- locales/id_ID.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/locales/id_ID.json b/locales/id_ID.json index f36e746..a098614 100644 --- a/locales/id_ID.json +++ b/locales/id_ID.json @@ -13,11 +13,14 @@ "captions": { "credits": "Berkenalan dengan Tim", "progress": "Lihat kemajuan dan tujuan proyek", - "faq": "Pertanyaan Umum" + "faq": "Pertanyaan yang sering diajukan", + "about": "Tentang projek", + "blog": "Update terbaru kami, secara singkat" } }, "faq": "Pertanyaan Umum", - "blog": "Berita" + "blog": "Berita", + "donate": "Donasi" }, "hero": { "title": "Dibuat ulang", @@ -68,7 +71,7 @@ "question": "Jika aku di-banned di Jaringan Nintendo, Apakah aku tetap ter-banned saat menggunakan Pretendo?" } ], - "title": "Pertanyaan Umum" + "title": "Pertanyaan yang sering diajukan" }, "modals": { "close": "Tutup", From 3a253332b50a7c251785399e67149f01666856df Mon Sep 17 00:00:00 2001 From: skybird23333 <2603003199a@gmail.com> Date: Wed, 18 Jun 2025 15:16:52 +0200 Subject: [PATCH 035/214] locales(update): Updated Chinese (Simplified Han script) locale locales(update): Updated Chinese (Simplified Han script) locale Co-authored-by: skybird23333 <2603003199a@gmail.com> --- locales/zh_CN.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/zh_CN.json b/locales/zh_CN.json index 778f90d..ee18917 100644 --- a/locales/zh_CN.json +++ b/locales/zh_CN.json @@ -62,11 +62,11 @@ "answer": "不可以。许多 Pretendo 的功能/服务是独立开发的(例如,Miiverse 可能由一位开发人员构建,而 Accounts 和 Friends 正在由另一位开发人员构建),因此我们无法给出这需要多长时间的总体预计到达时间。" }, { - "question": "Pretendo 是否适用于 Cemu/模拟器?", + "question": "什么时候会添加更多游戏?", "answer": "Pretendo 支持任何可以与任天堂网络交互的客户端。目前唯一具有此功能的模拟器是 Cemu。 Cemu 2.0 在模拟器中的网络帐户选项下已正式支持了 Pretendo。有关开始使用 Cemu 的信息,请查阅文档
    Citra 不支持真正意义上的在线多人联机,因此 Pretendo 在 Citra 上不可用,并且完全没有在未来支持在线多人联机的迹象。Mikage,一款用于移动设备的 3DS 模拟器,可能会在未来支持在线多人联机,尽管这尚不确定。" }, { - "question": "如果我在 Nintendo Network 上被封账号,我在使用 Pretendo 时还会被禁吗?", + "question": "我只有模拟器,可以使用Pretendo吗?", "answer": "我们无法访问 Nintendo Network 的用户黑名单,因此不会禁止任何用户使用我们的服务。但是,使用本服务时也需要遵守规则,否则可能会导致被禁。" }, { From b8c5639fae693637c490318a418fd73e30656563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=B6mer=20kaya?= Date: Wed, 18 Jun 2025 15:16:52 +0200 Subject: [PATCH 036/214] locales(update): Updated Turkish locale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: ömer kaya --- locales/tr_TR.json | 207 +++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 192 insertions(+), 15 deletions(-) diff --git a/locales/tr_TR.json b/locales/tr_TR.json index 703cf9d..e63ab9b 100644 --- a/locales/tr_TR.json +++ b/locales/tr_TR.json @@ -34,7 +34,7 @@ "title": "Hakkımızda", "paragraphs": [ "Pretendo, tersine mühendislik kullanarak 3DS ve Wii U için Nintendo Network'ü yeniden oluşturmayı amaçlayan açık kaynaklı bir projedir.", - "Hizmetlerimiz hem ücretsiz hem de açık kaynak olacağından, Nintendo Network'ün kaçınılmaz olarak kapanışından çok daha sonra var olabilirler." + "Hizmetlerimiz ücretsiz ve açık kaynak kodlu olduğu için yıllarca varlığını sürdürecektir." ] }, "progress": { @@ -54,27 +54,39 @@ }, { "question": "Pretendo'yu nasıl kullanırım?", - "answer": "Pretendo şuanda genel kullanım için hazır değil. Fakat hazır olduğunda Pretendo'yu konsolunuzda bir homebrew yamalayıcısı çalıştırarak kullanabileceksiniz." + "answer": "Pretendo Network'ü 3DS, Wii U veya emülatörlerde kullanmaya başlamak için lütfen kurulum talimatlarımıza bakın!" }, { "question": "Servis ya da bir özelliğin ne zaman hazır olacağını biliyor musunuz?", "answer": "Hayır. Pretendo'nun birçok özelliği/hizmeti bağımsız olarak geliştirilmektedir (örneğin, Hesaplar ve Arkadaşlar üzerinde başka bir geliştirici çalışırken Miiverse üzerinde başka bir geliştirici çalışır.) ve bu nedenle, bunun ne kadar süreceği konusunda genel bir tahmini süre veremiyoruz." }, { - "question": "Pretendo Cemu/emülatörlerde çalışır mı?", - "answer": "Pretendo, Nintendo Network ile etkileşebilen herhangi bir istemciyi destekler. Şu anda bu tür işlevselliğe sahip tek emülatör Cemu'dur. Cemu 2.0, emülator ağ hesabı seçenekleri altında Pretendo'yu resmi olarak destekler. Cemu ile nasıl başlayacağınızla ilgili bilgi için dökümanlara bakın.
    Citra gerçek çevrimiçi oyun oynamayı desteklemiyor ve bu nedenle Pretendo ile çalışmaz ve destekleyeceğine dair hiçbir işarette göstermiyor. Mobil cihazlar için bir 3DS emülatörü olan Mikage, kesin olmamakla birlikte gelecekte destek sağlayabilir." + "question": "Daha fazla oyunu ne zaman ekleyeceksiniz?", + "answer": "Backend kütüphanelerimizin desteklemeye hazır olduğunu hissettiğimizde ve geliştiricilerin bunu sürdürmek için zamanı olduğunda yeni oyunlar üzerinde çalışıyoruz. Çalışmalarımızın çoğu mevcut oyunlarımızı stabilize etmeye ve tamamlamaya yöneliktir - yeni oyunlara geçmeden önce bu oyunlarda mümkün olan en iyi deneyimi elde etmek istiyoruz. Her zaman yeni işler ortaya çıktığı için bunun ne zaman olacağına dair bir tahminde bulunamıyoruz." }, { - "question": "Nintendo Network'te yasaklandıysam, Pretendo kullanırken yasaklı kalacak mıyım?", - "answer": "Nintendo Network'ün yasaklarına erişimimiz yok ve tüm kullanıcılar hizmetimizde yasaklı olmayacak. Ancak, hizmeti kullanırken uymanız gereken kurallarımız olacaktır ve bu kurallara uyulmaması yasaklama ile sonuçlanabilir." + "question": "Eğer herhangi bir emülatör kullanırsam, bu Pretendo servislerini kullanmak için yeterli olacak mı?", + "answer": "Hayır. Güvenlik ve denetim amacıyla, bir emülatör kullanıyorsanız, yine de gerçek bir konsola ihtiyacınız vardır. Bu, hizmetimizle güvenli ve keyifli bir deneyim sağlamak için gelişmiş güvenlik ve kuralların daha etkili bir şekilde uygulanmasına olanak tanır." }, { - "question": "Pretendo Wii/Switch'i destekleyecek mi?", - "answer": "Wii'nin zaten Wiimmfi tarafından sağlanan özel sunucuları var. Şu anda Switch'i hem ücretli hem de Nintendo Network'ten tamamen farklı olduğu için hedeflemek istemiyoruz." + "question": "Pretendo servisleri Cemu yada benzeri emülatörlerde çalışıyor mu?", + "answer": "Cemu 2.1 sürümünde, emülatördeki ağ hesabı seçenekleriniz altında Pretendo'yu resmi olarak desteklemektedir. Cemu'ya nasıl başlayacağınız hakkında bilgi içindocumentation.
    , Bazı 3DS emülatörleri veya forkları bizi destekleyebilir, ancak şu anda herhangi bir resmi öneri veya kurulum talimatımız yok. Citra'nın son sürümleri Pretendo'yu desteklememektedir." }, { - "question": "Bağlanmak için hacklere ihtiyacım olacak mı?", - "answer": "Evet, bağlanmak için cihazınızı hacklemeniz gerekecek; ancak Wii U'da yalnızca Homebrew Launcher'a (yani Haxchi, Coldboot Haxchi ve hatta web tarayıcısı açıklarından yararlanma) erişmeniz gerekir ve 3DS'nin nasıl bağlanacağı hakkında daha sonra bilgi verilecektir." + "question": "Pretendo Wii/Switch'i de destekleyecek mi?", + "answer": "Wii'de zaten Wiimmfi tarafından sağlanan özel sunuculara ve lobilere sahiptir. Hem ücretli hem de Nintendo Network'ten tamamen farklı olduğu için şu anda Switch'i hedeflemek istemiyoruz." + }, + { + "question": "Pretendo servislerine bağlanmak için hacklere ihtiyacım olacak mı?", + "answer": "Konsollarda en iyi deneyimi elde etmek için konsolunuzu hacklemeniz gerekecek; özellikle Wii U için Aroma ve 3DS için Luma3DS. Ancak Wii U'da hackless SSSL yöntemi de sınırlı işlevsellikle mevcuttur. Ayrıntılı bilgi için setup instructions bakınız." + }, + { + "question": "Nintendo Network'te banlıysam, Pretendo'da banlı olucakmıyım?", + "answer": "Nintendo Network'ün ban listesine erişimimiz yok, bu nedenle tüm Nintendo Network kullanıcıları banlanmadı. Ancak, hizmeti kullanırken uymamız gereken kurallar vardır ve bu kurallara uyulmaması yasaklanmaya neden olabilir." + }, + { + "question": "Pretendo ile online oyunlarda hileler veya modlar kullanabilir miyim?", + "answer": "Sadece private maçlarda - haksız avantaj elde etmek veya rızası olmayan kişilerle çevrimiçi deneyimi bozmak (herkese açık maçlarda olduğu gibi) banlanmanız olasıdır. Hem Wii U hem de 3DS sistemlerine düzenli olarak hesap ve konsol banı uyguluyoruz. Pretendo, seri numaranızı değiştirmek gibi geleneksel 'ban kaldırma' yöntemlerini etkisiz hale getiren ekstra güvenlik sistemimiz bile vardır." } ], "text": "Burada, bize kolay bilgi için sorulan bazı genel sorular yer almaktadır." @@ -99,7 +111,81 @@ }, "credits": { "title": "Takımımız", - "text": "Projenin arkasındaki ekip ile tanışın" + "text": "Projenin arkasındaki ekip ile tanışın", + "people": [ + { + "name": "Jonathan Barrow (jonbarrow)", + "caption": "Proje lideri ve baş geliştirici", + "picture": "https://github.com/jonbarrow.png", + "github": "https://github.com/jonbarrow" + }, + { + "picture": "https://github.com/caramelkat.png", + "name": "Jemma (CaramelKat)", + "caption": "Miiverse için araştırma ve geliştirme", + "github": "https://github.com/CaramelKat" + }, + { + "caption": "Wii U için araştırma ve yama geliştirme", + "name": "quarky", + "picture": "https://github.com/ashquarky.png", + "github": "https://github.com/ashquarky" + }, + { + "github": "https://github.com/SuperMarioDaBom", + "name": "SuperMarioDaBom", + "picture": "https://github.com/supermariodabom.png", + "caption": "Sistem araştırmaları ve sunucu mimarisi" + }, + { + "picture": "https://github.com/gitlimes.png", + "caption": "Web geliştirme", + "github": "https://github.com/gitlimes", + "name": "pinklimes" + }, + { + "caption": "Sistem araştırması ve sunucu geliştirme", + "name": "Shutterbug2000", + "picture": "https://cdn.discordapp.com/avatars/191370953807233024/0311b61e2009c1576828dd2e9a59d72e.png?size=128", + "github": "https://github.com/shutterbug2000" + }, + { + "github": "https://github.com/InternalLoss", + "name": "Billy", + "picture": "https://github.com/InternalLoss.png", + "caption": "Koruma uzmanı ve sunucu mimarisi" + }, + { + "name": "DaniElectra", + "caption": "Sistem araştırmaları ve sunucu geliştirme", + "github": "https://github.com/DaniElectra", + "picture": "https://github.com/danielectra.png" + }, + { + "name": "niko", + "caption": "Web ve sunucu geliştirme", + "picture": "https://github.com/hauntii.png", + "github": "https://github.com/hauntii" + }, + { + "picture": "https://github.com/MatthewL246.png", + "name": "MatthewL246", + "caption": "DevOps ve topluluk çalışması", + "github": "https://github.com/MatthewL246" + }, + { + "name": "wolfendale", + "caption": "Sunucu geliştirme ve optimizasyon", + "picture": "https://github.com/wolfendale.png", + "github": "https://github.com/wolfendale" + }, + { + "name": "TraceEntertains", + "caption": "3DS yaması geliştirme ve araştırma", + "picture": "https://github.com/TraceEntertains.png", + "github": "https://github.com/TraceEntertains" + } + ] }, "account": { "settings": { @@ -183,7 +269,8 @@ "Super Mario World 2 - Yoshi's Island'ın ana teması tam bir klasik ve beni başka türlü ikna etmenin bir yolu yok.", "En sevdiğim Nintendo Switch oyunları Nintendo Switch Online + Genişletme Paketi, Nintendo Switch Online + Rumble Pak, Nintendo Switch Online + Çevrimdışı Oynama Paketi, Nintendo Switch Online + Bir Port daha Paketi ve Nintendo Switch Online + Dr. Kawashima's Brain Training / Brain Age \"Nintendo Wii U Sanal Konsol Oyunlarını Gerçekten Sevdiniz, Bu yüzden Geri Getiriyoruz\" Paketi. Nintendo'nun umursadığını gerçekten söyleyebilirsin.", "\"Ash'i biliyorsun, kalbini korusun, o bütün gün UwUlar\" gibi, \"Ash her zaman uwular ve bu gerçekten garip ve aptalca ve keşke yapmasalar\" demenin güneydeki güzel yolu", - "Kanalımdaki ilk videom!! bn uzun zamandır video yapmak istiyordum ama dizüstü bilgisayarım oldukça kötü çalıştı ve fraps, skype ve minecraft'ı aynı anda çalıştıramadım. ama artık bitti! BT öğretmenimin biraz yardımıyla dizüstü bilgisayarım çok daha iyi çalışıyor ve şimdi kayıt yapabiliyorum! umarım eğlenirsiniz ve beğendiyseniz lütfen beğenip abone olun!!!" + "Kanalımdaki ilk videom!! bn uzun zamandır video yapmak istiyordum ama dizüstü bilgisayarım oldukça kötü çalıştı ve fraps, skype ve minecraft'ı aynı anda çalıştıramadım. ama artık bitti! BT öğretmenimin biraz yardımıyla dizüstü bilgisayarım çok daha iyi çalışıyor ve şimdi kayıt yapabiliyorum! umarım eğlenirsiniz ve beğendiyseniz lütfen beğenip abone olun!!!", + "Bana Güzel Görünüyor" ], "widget": { "button": "Şimdi katıl!", @@ -243,7 +330,94 @@ }, "specialThanks": { "text": "Onlar olmasaydı, Pretendo bugün olduğu yerde olamazdı.", - "title": "Ayrıca teşekkürler" + "title": "Ayrıca teşekkürler", + "people": [ + { + "caption": "Yerelleştirme ve diğer katkılar", + "name": "GitHub katılımcıları", + "github": "https://github.com/PretendoNetwork", + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png" + }, + { + "caption": "crunch kütüphanesi̇ geli̇şti̇rme", + "name": "superwhiskers", + "picture": "https://github.com/superwhiskers.png", + "github": "https://github.com/superwhiskers" + }, + { + "github": "https://github.com/Stary2001", + "picture": "https://github.com/Stary2001.png", + "caption": "3DS geliştirme ve NEX dissektörü", + "name": "Stary" + }, + { + "caption": "Miiverse bilgi paylaşımı", + "github": "https://twitter.com/rverseClub", + "picture": "https://github.com/rverseTeam.png", + "name": "rverse" + }, + { + "github": "https://github.com/Kinnay", + "special": "Özel teşekkürler", + "name": "Kinnay", + "caption": "Nintendo veri yapıları üzerine araştırmalar", + "picture": "https://cdn.discordapp.com/avatars/186572995848830987/b55c0d4e7bfd792edf0689f83a25d8ea.png?size=128" + }, + { + "picture": "https://github.com/ninstar.png", + "caption": "Mii Editor ve Juxt reactions için ikonlar", + "name": "NinStar", + "github": "https://github.com/ninstar" + }, + { + "picture": "https://github.com/EpicUsername12.png", + "name": "Rambo6Glaz", + "caption": "Konsol araştırmaları ve oyun sunucuları", + "github": "https://github.com/EpicUsername12" + }, + { + "name": "GaryOderNichts", + "caption": "Wii U yaması geliştirme", + "picture": "https://github.com/GaryOderNichts.png", + "github": "https://github.com/GaryOderNichts" + }, + { + "name": "zaksabeast", + "caption": "3DS yama yaratıcısı", + "picture": "https://cdn.discordapp.com/avatars/219324395707957248/c62573fbd4d26c8b4724f54413df6960.png?size=128", + "github": "https://github.com/zaksabeast" + }, + { + "caption": "Sunucu mimarisi", + "name": "mrjvs", + "picture": "https://github.com/mrjvs.png", + "github": "https://github.com/mrjvs" + }, + { + "name": "binaryoverload", + "picture": "https://github.com/binaryoverload.png", + "github": "https://github.com/binaryoverload", + "caption": "Sunucu mimarisi" + }, + { + "caption": "Splatoon rotasyonları ve araştırması", + "name": "Simonx22", + "picture": "https://github.com/Simonx22.png", + "github": "https://github.com/Simonx22" + }, + { + "github": "https://github.com/OatmealDome", + "caption": "Splatoon rotasyonları ve araştırması", + "name": "OatmealDome", + "picture": "https://github.com/OatmealDome.png" + }, + { + "name": "GitHub katılımcıları", + "caption": "Yerelleştirme ve diğer katkılar", + "github": "https://github.com/PretendoNetwork", + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png" + } + ] }, "donation": { "upgradePush": "Abone olmak ve harika avantajlara erişmek için yükseltme sayfasını ziyaret edin.", @@ -252,7 +426,7 @@ "blogPage": { "published": "Tarafından yayınlandı", "title": "Blog", - "description": "", + "description": "Yoğunlaştırılmış parçalar halinde en son güncellemeler. Güncellemeleri daha sık görmek istiyorsanız supporting us.", "publishedOn": "şu tarihte" }, "upgrade": { @@ -261,7 +435,7 @@ "month": "ay", "description": "Aylık hedefe ulaşmak, Pretendo'yu tam zamanlı bir iş haline getirecek ve daha hızlı bir oranda daha kaliteli güncellemeler sağlayacaktır.", "title": "Yükselt", - "unsubPrompt": "tiername aboneliğinden çıkmak istediğinizden emin misiniz? Bu seviye ile ilişkili ayrıcalıklara erişiminizi kaybedeceksiniz.", + "unsubPrompt": "tiername Aboneliğinizi iptal etmek istediğinizden emin misiniz? Bu katmandaki avantajları immediately erişiminizi kaybedeceksiniz.", "unsub": "Abonelikten çık", "unsubConfirm": "Abonelikten çık", "changeTier": "Seviye değiştir", @@ -276,5 +450,8 @@ "close": "Kapat", "confirm": "Onayla", "cancel": "İptal" + }, + "notfound": { + "description": "Woops! Bu sayfayı bulamadık." } } From 3ae0f4202c58b83f8522c4dddc092993ed07c810 Mon Sep 17 00:00:00 2001 From: Deko Kiyo Date: Wed, 18 Jun 2025 15:16:52 +0200 Subject: [PATCH 037/214] locales(update): Updated Japanese locale Co-authored-by: Deko Kiyo --- locales/ja_JP.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/locales/ja_JP.json b/locales/ja_JP.json index 77cb015..1e6823c 100644 --- a/locales/ja_JP.json +++ b/locales/ja_JP.json @@ -115,7 +115,9 @@ { "caption": "プロジェクトオーナーおよび主な開発者" }, - {}, + { + "caption": "Miiverseの研究と開発" + }, { "caption": "Wii Uの研究、パッチの開発" }, From 049c50e4bea66661a66756d5b1bb217531146aa0 Mon Sep 17 00:00:00 2001 From: Nervi05 Date: Wed, 18 Jun 2025 15:16:52 +0200 Subject: [PATCH 038/214] locales(update): Updated German locale Co-authored-by: Nervi05 --- locales/de_DE.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/locales/de_DE.json b/locales/de_DE.json index 8f8d941..67de16c 100644 --- a/locales/de_DE.json +++ b/locales/de_DE.json @@ -201,7 +201,8 @@ { "name": "Stary", "github": "https://github.com/Stary2001", - "picture": "https://github.com/Stary2001.png" + "picture": "https://github.com/Stary2001.png", + "caption": "3DS Entwicklung und NEX Dissector" }, { "caption": "Miiverse-Informationsaustausch", From 31f6fa28c1d3e1847fcc0026144cd1de9545f130 Mon Sep 17 00:00:00 2001 From: Ellie Rosa Maiella Date: Wed, 18 Jun 2025 15:16:53 +0200 Subject: [PATCH 039/214] locales(update): Updated Italian locale locales(update): Updated Italian locale Co-authored-by: Ellie Rosa Maiella --- locales/it_IT.json | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/locales/it_IT.json b/locales/it_IT.json index a292667..3908cd4 100644 --- a/locales/it_IT.json +++ b/locales/it_IT.json @@ -83,6 +83,9 @@ { "answer": "Solo in partite private - ottenere vantaggi sleali o compromettere l'esperienza di gioco online senza il permesso dei partecipanti (e in partite pubbliche) è sanzionabile con un ban. Banniamo regolarmente account e console su entrambe le piattaforme Wii U e 3DS. Pretendo usa misure di sicurezza aggiuntive con lo scopo di rendere i tradizionali metodi 'unban' inefficaci, ad esempio cambiando il codice seriale della console.", "question": "Posso usare trucchi o mods online con Pretendo?" + }, + { + "question": "Posso usare cheat o mod online con Pretendo?" } ] }, @@ -111,7 +114,8 @@ { "name": "Jonathan Barrow (jonbarrow)", "github": "https://github.com/jonbarrow", - "picture": "https://github.com/jonbarrow.png" + "picture": "https://github.com/jonbarrow.png", + "caption": "Proprietario del progetto e sviluppatore principale" }, { "name": "Jemma (CaramelKat)", @@ -121,12 +125,14 @@ { "picture": "https://github.com/ashquarky.png", "github": "https://github.com/ashquarky", - "name": "quarky" + "name": "quarky", + "caption": "Ricerca e sviluppo di patch della Wii U" }, { "name": "SuperMarioDaBom", "github": "https://github.com/SuperMarioDaBom", - "picture": "https://github.com/supermariodabom.png" + "picture": "https://github.com/supermariodabom.png", + "caption": "Ricerca di sistemi e architettura dei server" }, { "caption": "Sviluppo web", @@ -142,7 +148,8 @@ { "picture": "https://github.com/InternalLoss.png", "name": "Billy", - "github": "https://github.com/InternalLoss" + "github": "https://github.com/InternalLoss", + "caption": "Preservazionista e architettura server" }, { "name": "DaniElectra" From 0a43abeaad489d6e15968094ed1b0409c67313fc Mon Sep 17 00:00:00 2001 From: Aaron Dewes Date: Wed, 18 Jun 2025 15:16:53 +0200 Subject: [PATCH 040/214] locales(update): Updated German locale Co-authored-by: Aaron Dewes --- locales/de_DE.json | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/locales/de_DE.json b/locales/de_DE.json index 67de16c..023cc25 100644 --- a/locales/de_DE.json +++ b/locales/de_DE.json @@ -67,14 +67,14 @@ }, { "question": "Funktioniert Pretendo auch auf Cemu oder anderen Emulatoren?", - "answer": "Cemu 2.1 ist von Pretendo unterstützt. Dies kann man unter den Netztwerk/Account Einstellungen in Cemu 2.1 einstellen. Für mehr Informationen, wie man Cemu mit Pretendo Network nutzt, schauen sie sich den Guidean.
    Manche 3DS Emulatoren oder \"Forks\" unterstützen vielleicht Pretendo, es gibt aber momentan keine offiziellen Empfehlungen oder Setup Guides. Die finalen Builds von Citra werden nicht unterstützt." + "answer": "Nein. Aus Sicherheits- und Moderationsgründen musst du, auch wenn du einen Emulator benutzt, trotzdem eine echte Konsole besitzen. Das ermöglicht erhöhte Sicherheit und ein einfacheres Umsetzen der Regeln, um ein sicheres und angenehmes Erlebnis mit unseren Diensten zu bieten." + }, + { + "question": "Funktioniert Pretendo auf Cemu/Emulatoren?", + "answer": "Cemu 2.1 unterstützt offiziell Pretendo unter den Netzwerk-Account-Optionen im Emulator. Für mehr Informationen, wie du mit Cemu loslegen kannst, beachte bitte die Dokumentationbr> Einige 3DS-Emulatoren oder Forks könnten uns unterstützen, aber wir haben zu dieser Zeit keine offizielle Empfehlung oder Setup-Anleitung. Die letzten Builds von Citra unterstützen Pretendo nicht." }, { "question": "Wird Pretendo die Wii/Switch unterstützen?", - "answer": "Für die Wii gibt es bereits eigene Server von Wiimmfi. Aktuell möchten wir die Switch auch nicht als Ziel festlegen, da der Online-Service der Switch kostenpflichtig ist und sich stark vom Nintendo Network unterscheidet." - }, - { - "question": "Benötige ich einen Hack um Pretendo zu verwenden?", "answer": "Ja, du musst deine Konsole hacken, allerdings reicht auf der Wii U den Zugriff zum Homebrew-Launcher (z.B. über Haxchi, CBHC, oder den Browser-Exploit). Informationen, wie der 3DS verbunden wird, werden später noch veröffentlicht." }, { @@ -83,6 +83,9 @@ { "question": "Kann ich Cheats oder Mods online mit Pretendo verwenden?", "answer": "Nur in privaten Matches – sich einen unfairen Vorteil zu verschaffen oder das Online-Erlebnis von Personen zu stören, die nicht zugestimmt haben (wie beispielsweise in öffentlichen Matches), ist ein bannbarer Verstoß. Wir verhängen regelmäßig Konto- und Konsolensperren sowohl für Wii U- als auch für 3DS-Systeme. Pretendo verwendet zusätzliche Sicherheitsmaßnahmen, die traditionelle ‘Entbannungs’-Methoden wie das Ändern der Seriennummer unwirksam machen." + }, + { + "question": "Kann ich Cheats oder Mods online mit Pretendo verwenden?" } ] }, From 22e1e0c9d0d5b95e06673b4eba897c90cbedbab9 Mon Sep 17 00:00:00 2001 From: "Re*Index. (ot_inc)" Date: Wed, 18 Jun 2025 15:16:53 +0200 Subject: [PATCH 041/214] locales(update): Updated Japanese locale locales(update): Updated Japanese locale locales(update): Updated Japanese locale locales(update): Updated Japanese locale Co-authored-by: Re*Index. (ot_inc) --- locales/ja_JP.json | 171 ++++++++++++++++++++++++++++++++++++--------- 1 file changed, 139 insertions(+), 32 deletions(-) diff --git a/locales/ja_JP.json b/locales/ja_JP.json index 1e6823c..53fad33 100644 --- a/locales/ja_JP.json +++ b/locales/ja_JP.json @@ -55,7 +55,7 @@ }, { "question": "Pretendoの使い方は?", - "answer": "Pretendoはまだ開発中です。将来的には、ゲーム機上で専用のhomebrewアプリを用いるだけでPretendoをつかえるようにする予定です。" + "answer": "3DS、Wii U、エミュレーターでPretendo Networkを使うには、セットアップの手順をご覧ください!" }, { "question": "機能やサービスが完成するのはいつ?", @@ -71,7 +71,7 @@ }, { "question": "Cemuやその他のエミュレーターでも接続できる?", - "answer": "WiiにはWiimmfiという代替サーバーがあります。Switchのネットワーク機能は有料であること、またニンテンドーネットワークとは全く異なることから、対応することはありません。" + "answer": "Cemu 2.1は、エミュレーターでのネットワークアカウントのオプションでPretendoを公式にサポートしています。Cemuでの使用を開始する方法については、ドキュメントをご覧ください。
    一部の3DSエミュレーターまたは、フォークはサポートをしている可能性がありますが、現時点では公式の推奨事項やセットアップ手順はありません。なお、Citraの最終ビルドはPretendoをサポートしていません。" }, { "question": "WiiやNintendo Switchでもつかえる?", @@ -113,29 +113,75 @@ "text": "プロジェクトを支えるチームの紹介", "people": [ { - "caption": "プロジェクトオーナーおよび主な開発者" + "caption": "プロジェクトオーナーおよび主な開発者", + "picture": "https://github.com/jonbarrow.png", + "github": "https://github.com/jonbarrow", + "name": "Jonathan Barrow (jonbarrow)" }, { - "caption": "Miiverseの研究と開発" + "caption": "Miiverseの研究と開発", + "name": "Jemma (CaramelKat)", + "github": "https://github.com/CaramelKat", + "picture": "https://github.com/caramelkat.png" }, { - "caption": "Wii Uの研究、パッチの開発" - }, - {}, - { - "caption": "Webの開発" - }, - {}, - {}, - { - "caption": "システムの研究とサーバーの開発" + "caption": "Wii Uの研究、パッチの開発", + "picture": "https://github.com/ashquarky.png", + "github": "https://github.com/ashquarky", + "name": "quarky" }, { - "caption": "Webとサーバーの開発" + "name": "SuperMarioDaBom", + "caption": "システムの研究とサーバーアーキテクチャ", + "picture": "https://github.com/supermariodabom.png", + "github": "https://github.com/SuperMarioDaBom" }, - {}, { - "caption": "サーバーの開発と最適化" + "caption": "Webの開発", + "github": "https://github.com/gitlimes", + "name": "pinklimes", + "picture": "https://github.com/gitlimes.png" + }, + { + "name": "Shutterbug2000", + "picture": "https://cdn.discordapp.com/avatars/191370953807233024/0311b61e2009c1576828dd2e9a59d72e.png?size=128", + "caption": "システムの研究とサーバーの開発", + "github": "https://github.com/shutterbug2000" + }, + { + "github": "https://github.com/InternalLoss", + "caption": "プリザベーションとサーバーアーキテクチャ", + "picture": "https://github.com/InternalLoss.png", + "name": "Billy" + }, + { + "caption": "システムの研究とサーバーの開発", + "github": "https://github.com/DaniElectra", + "picture": "https://github.com/danielectra.png", + "name": "DaniElectra" + }, + { + "caption": "Webとサーバーの開発", + "picture": "https://github.com/hauntii.png", + "github": "https://github.com/hauntii", + "name": "niko" + }, + { + "caption": "DevOpsとコミュニティの活動", + "picture": "https://github.com/MatthewL246.png", + "name": "MatthewL246", + "github": "https://github.com/MatthewL246" + }, + { + "caption": "サーバーの開発と最適化", + "name": "wolfendale", + "picture": "https://github.com/wolfendale.png", + "github": "https://github.com/wolfendale" + }, + { + "name": "TraceEntertains", + "picture": "https://github.com/TraceEntertains.png", + "github": "https://github.com/TraceEntertains" } ] }, @@ -143,26 +189,86 @@ "title": "スペシャルサンクス", "text": "Pretendoのいまの姿を作り上げた方たちです。", "people": [ - {}, - {}, - {}, - {}, { - "special": "スペシャルサンクス" + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", + "github": "https://github.com/PretendoNetwork" }, - {}, - {}, { - "caption": "Wii Uパッチの開発" + "name": "superwhiskers", + "picture": "https://github.com/superwhiskers.png", + "github": "https://github.com/superwhiskers" + }, + { + "name": "Stary", + "picture": "https://github.com/Stary2001.png", + "caption": "3DSの開発とNEXディセクター", + "github": "https://github.com/Stary2001" + }, + { + "name": "rverse", + "picture": "https://github.com/rverseTeam.png", + "github": "https://twitter.com/rverseClub" + }, + { + "special": "スペシャルサンクス", + "name": "Kinnay", + "picture": "https://cdn.discordapp.com/avatars/186572995848830987/b55c0d4e7bfd792edf0689f83a25d8ea.png?size=128", + "caption": "Nintendoのデータ構造に関する研究", + "github": "https://github.com/Kinnay" + }, + { + "caption": "アイコンの制作(MiiエディターとJuxtのリアクション)", + "name": "NinStar", + "picture": "https://github.com/ninstar.png", + "github": "https://github.com/ninstar" + }, + { + "caption": "コンソールの研究とゲームサーバー", + "name": "Rambo6Glaz", + "picture": "https://github.com/EpicUsername12.png", + "github": "https://github.com/EpicUsername12" + }, + { + "caption": "Wii Uパッチの開発", + "github": "https://github.com/GaryOderNichts", + "name": "GaryOderNichts", + "picture": "https://github.com/GaryOderNichts.png" + }, + { + "caption": "3DSパッチの作者", + "picture": "https://cdn.discordapp.com/avatars/219324395707957248/c62573fbd4d26c8b4724f54413df6960.png?size=128", + "name": "zaksabeast", + "github": "https://github.com/zaksabeast" + }, + { + "caption": "サーバーアーキテクチャ", + "name": "mrjvs", + "picture": "https://github.com/mrjvs.png", + "github": "https://github.com/mrjvs" + }, + { + "caption": "サーバーアーキテクチャ", + "name": "binaryoverload", + "picture": "https://github.com/binaryoverload.png", + "github": "https://github.com/binaryoverload" + }, + { + "caption": "Splatoon のローテーションと研究", + "name": "Simonx22", + "picture": "https://github.com/Simonx22.png", + "github": "https://github.com/Simonx22" + }, + { + "name": "OatmealDome", + "caption": "Splatoon ローテーションと研究", + "picture": "https://github.com/OatmealDome.png", + "github": "https://github.com/OatmealDome" }, - {}, - {}, - {}, - {}, - {}, { "caption": "翻訳とその他の貢献", - "name": "GitHubの貢献者" + "name": "GitHubの貢献者", + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", + "github": "https://github.com/PretendoNetwork" } ] }, @@ -193,7 +299,8 @@ "スーパーマリオ ヨッシーアイランドのメイン テーマはいい曲だよね~!", "ボクのお気に入りのNintendo Switchの作品は、Nintendo Switch Online + 追加パック、Nintendo Switch Online + 振動パック、Nintendo Switch Online + Offlineパック、Nintendo Switch Online + 非公式ポートパック、Nintendo Switch Online + 脳を鍛える大人のトレーニング ~Wii Uバーチャルコンソールが本当に人気なので、復活させます~ パック。任天堂はよくわかってるよね~。", "「あなたはアッシュを知っている、彼女の心を祝福しなさい、彼女は一日中UwUの」というように、南部の素敵な言い方です \"Ash uwusはいつも、それは本当に奇妙で愚かで、私は彼らがそうしなかったらいいのに\"", - "ボクのチャンネルで最初の動画を公開したよ!!前から動画を作りたいと思っていたけど、ボクのノートパソコンの調子が悪くってね、Fraps とか Skype とか Minecraft を同時に起動できなかったんだよね~。でも、もうだいじょうぶ!IT の先生に聞いてみたら、ノートパソコンの動作が良くなって、録音もできるようになったんだ!よかったら高評価とチャンネル登録してね!" + "ボクのチャンネルで最初の動画を公開したよ!!前から動画を作りたいと思っていたけど、ボクのノートパソコンの調子が悪くってね、Fraps とか Skype とか Minecraft を同時に起動できなかったんだよね~。でも、もうだいじょうぶ!IT の先生に聞いてみたら、ノートパソコンの動作が良くなって、録音もできるようになったんだ!よかったら高評価とチャンネル登録してね!", + "僕には良い感じに見えるね" ] }, "progressPage": { From 1a0c5853fca41cf4265d8da3ca41ec93095ec400 Mon Sep 17 00:00:00 2001 From: AlgerianGerman Date: Wed, 18 Jun 2025 15:16:53 +0200 Subject: [PATCH 042/214] locales(update): Updated French (Canada) locale locales(update): Updated French (Canada) locale Co-authored-by: AlgerianGerman --- locales/fr_CA.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/locales/fr_CA.json b/locales/fr_CA.json index 88192df..1086836 100644 --- a/locales/fr_CA.json +++ b/locales/fr_CA.json @@ -1,11 +1,12 @@ { "nav": { "faq": "FAQ", - "about": "À propos", + "about": "À Propos", "account": "Compte", "blog": "Blogue", "accountWidget": { "settings": "Paramètres" - } + }, + "docs": "Documentation" } } From 4978bbc3e617a5bb49a536cc7afcc4f47733232d Mon Sep 17 00:00:00 2001 From: Mateusz pasieka Date: Wed, 18 Jun 2025 15:16:53 +0200 Subject: [PATCH 043/214] locales(update): Updated Polish locale locales(update): Updated Polish locale Co-authored-by: Mateusz pasieka --- locales/pl_PL.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/pl_PL.json b/locales/pl_PL.json index ff494d8..1452474 100644 --- a/locales/pl_PL.json +++ b/locales/pl_PL.json @@ -1,6 +1,6 @@ { "nav": { - "about": "Informacje", + "about": "O Nas", "faq": "Często zadawane pytania", "docs": "Dokumentacja", "credits": "Podziękowania", @@ -63,7 +63,7 @@ }, { "question": "Czy Pretendo działa na Cemu/emulatorach?", - "answer": "Pretendo wspiera wszystko co interaktuje z Nintendo Network, Jedyny emulator który wspiera taką funkcjonalnośc jest Cemu. Cemu 2.0 oficjalnie wspiera Pretendo pod twoimi ustawieniami konta w emulatorze. Dla informacji jak zacząć z Cemu, zapoznaj się z documentation.
    Citra nie wspiera prawdziwej gry online, więc dlatego nie działa z Pretendo, i w ogóle nie pokazuje żadnych znaków wspierania prawdziwej gry online. Mikage, emulator 3DS na telefonach może zacząć wspierać tą funkcjonalność w przyszłości, lecz jest to daleko od pewności." + "answer": "Pretendo wspiera wszystko co łączy się z Nintendo Network, Jedyny emulator który wspiera taką funkcjonalnośc jest Cemu. Cemu 2.0 oficjalnie wspiera Pretendo pod twoimi ustawieniami konta w emulatorze. Dla informacji jak zacząć z Cemu, zapoznaj się z dokumentacją.Citra nie wspiera prawdziwej gry online, więc dlatego nie działa z Pretendo, i w ogóle nie pokazuje żadnych znaków wspierania prawdziwej gry online. Mikage, emulator 3DS na telefonach może zacząć wspierać tą funkcjonalność w przyszłości, lecz jest to daleko od pewności." }, { "question": "Jeśli jestem zbanowany na Nintendo Network, czy będę również zbanowany na Pretendo?", From e6f77fad6217d8dd87f207598ef3619bd651be18 Mon Sep 17 00:00:00 2001 From: Deleted User Date: Wed, 18 Jun 2025 15:16:53 +0200 Subject: [PATCH 044/214] locales(update): Updated Spanish locale Co-authored-by: Deleted User --- locales/es_ES.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index f25d0d1..49cc72f 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -195,7 +195,8 @@ { "picture": "https://github.com/superwhiskers.png", "name": "superwhiskers", - "github": "https://github.com/superwhiskers" + "github": "https://github.com/superwhiskers", + "caption": "desarrollo de la biblioteca de crunch" }, { "github": "https://github.com/Stary2001", From 534c596cfc0e35c65976ae986dd89ef28d33341f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E0=AE=A4=E0=AE=AE=E0=AE=BF=E0=AE=B4=E0=AF=8D=E0=AE=A8?= =?UTF-8?q?=E0=AF=87=E0=AE=B0=E0=AE=AE=E0=AF=8D?= Date: Wed, 18 Jun 2025 15:16:53 +0200 Subject: [PATCH 045/214] locales(add): Added Tamil locale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: தமிழ்நேரம் --- locales/ta_IN.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 locales/ta_IN.json diff --git a/locales/ta_IN.json b/locales/ta_IN.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/locales/ta_IN.json @@ -0,0 +1 @@ +{} From 0e8f2f46823440b641dd7a588607de4452f56967 Mon Sep 17 00:00:00 2001 From: crinelam Date: Wed, 18 Jun 2025 15:16:54 +0200 Subject: [PATCH 046/214] locales(update): Updated Spanish locale locales(update): Updated Spanish locale Co-authored-by: crinelam --- locales/es_ES.json | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index 49cc72f..3e1a90d 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -244,7 +244,8 @@ { "name": "mrjvs", "picture": "https://github.com/mrjvs.png", - "github": "https://github.com/mrjvs" + "github": "https://github.com/mrjvs", + "caption": "Arquitectura de servidor" }, { "picture": "https://github.com/binaryoverload.png", @@ -253,16 +254,19 @@ { "picture": "https://github.com/Simonx22.png", "github": "https://github.com/Simonx22", - "name": "Simonx22" + "name": "Simonx22", + "caption": "Rotaciones de Splatoon e investigación" }, { "name": "OatmealDome", "picture": "https://github.com/OatmealDome.png", - "github": "https://github.com/OatmealDome" + "github": "https://github.com/OatmealDome", + "caption": "Rotaciones de Splatoon e investigación" }, { "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", - "github": "https://github.com/PretendoNetwork" + "github": "https://github.com/PretendoNetwork", + "caption": "Traducciones y otras contribuciones" } ] }, From e4f2c5e8bf4a93e0ad3ec9f11f2227e1a587b85d Mon Sep 17 00:00:00 2001 From: Alice Randles Date: Wed, 18 Jun 2025 15:16:54 +0200 Subject: [PATCH 047/214] locales(update): Updated Spanish locale Co-authored-by: Alice Randles --- locales/es_ES.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index 3e1a90d..d58009a 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -67,7 +67,7 @@ }, { "question": "¿Pretendo funciona en Cemu/emuladores? ¿Si uso un emulador, será eso suficiente para usar Pretendo?", - "answer": "Cemu 2.1 soporta oficialmente Pretendo bajo las opciones de su cuenta de red en el emulador. Para obtener información sobre cómo empezar con Cemu, consulte la documentación.
    Algunos emuladores o bifurcaciones de 3DS podrían ser compatibles con nosotros, pero no tenemos ninguna recomendación oficial ni instrucciones de configuración en este momento. Las compilaciones finales de Citra no soportan Pretendo." + "answer": "No. Para efectos de seguridad y moderación, si usas un emulador, aún necesitas una consola real. Esto permite una mejor seguridad y aplicación más efectiva de reglas, para poder brindar una experiencia segura y placentera con nuestro servicio." }, { "question": "¿Pretendo funciona en Cemu/emuladores?", From 071e74b563faa01ed718a1d8ea8de774cbde72e1 Mon Sep 17 00:00:00 2001 From: Deleted User Date: Wed, 18 Jun 2025 15:16:54 +0200 Subject: [PATCH 048/214] locales(update): Updated Spanish locale locales(update): Updated Spanish locale Co-authored-by: Deleted User --- locales/es_ES.json | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index d58009a..545b0df 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -34,7 +34,7 @@ "title": "Sobre nosotros", "paragraphs": [ "Pretendo es un proyecto de código abierto que busca recrear Nintendo Network para 3DS y Wii U aplicando ingeniería inversa con un diseño en sala limpia.", - "Como nuestros servicios serán gratuitos y de código abierto, podrán existir tras el inevitable cierre de Nintendo Network." + "Como nuestros servicios serán gratuitos y de código abierto, existirán durante mucho tiempo." ] }, "progress": { @@ -245,7 +245,7 @@ "name": "mrjvs", "picture": "https://github.com/mrjvs.png", "github": "https://github.com/mrjvs", - "caption": "Arquitectura de servidor" + "caption": "Arquitectura del servidor" }, { "picture": "https://github.com/binaryoverload.png", @@ -297,7 +297,8 @@ "Super Mario World 2 - El tema principal de Yoshi's Island es absolutamente genial y no hay forma de que me convenzas de lo contrario.", "Mis lanzamientos favoritos de Nintendo Switch han sido Nintendo Switch Online + Expansion Pack, Nintendo Switch Online + Rumble Pak, Nintendo Switch Online + Offline Play Pack, Nintendo Switch Online + Yet Another Port Pack y Nintendo Switch Online + Dr. Kawashima's Brain Training / Brain Pack \"Te gustó mucho el título de la consola virtual de Nintendo Wii U, así que lo traeremos de vuelta\". Realmente puedes decir que a Nintendo le importa.", "Decir “Conoces a Ash, bendice su corazón, hace UwU todo el día “ es la manera del sur de decir “Ash hace uwu todo el tiempo y es bastante raro y idiota y desearía que no lo hiciera”", - "Mi primer video en mi canal!! Llevaba mucho tiempo queriendo hacer videos, pero mi computadora portátil funcionaba bastante mal y no podía ejecutar Fraps, Skype y Minecraft al mismo tiempo. ¡pero ahora eso se acabó! ¡con la ayuda de mi profesor de TI, mi computadora portátil funciona mucho mejor y puedo grabar ahora! Espero que les guste y si es así dale me gusta y suscríbete!!!" + "Mi primer video en mi canal!! Llevaba mucho tiempo queriendo hacer videos, pero mi computadora portátil funcionaba bastante mal y no podía ejecutar Fraps, Skype y Minecraft al mismo tiempo. ¡pero ahora eso se acabó! ¡con la ayuda de mi profesor de TI, mi computadora portátil funciona mucho mejor y puedo grabar ahora! Espero que les guste y si es así dale me gusta y suscríbete!!!", + "Me parece bien" ] }, "progressPage": { From 2cc2c0a832149a9b67831a4a3e63bbf43f1e3f68 Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Wed, 18 Jun 2025 15:16:54 +0200 Subject: [PATCH 049/214] locales(update): Updated Russian locale Co-authored-by: Vitaly Novichkov --- locales/ru_RU.json | 27 ++++++++++++++++++++------- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/locales/ru_RU.json b/locales/ru_RU.json index 1bcfb54..21db0b9 100644 --- a/locales/ru_RU.json +++ b/locales/ru_RU.json @@ -55,33 +55,46 @@ }, { "question": "Как мне подключиться к Pretendo?", - "answer": "На данный момент Pretendo ещё не готово для нормального использования. Однако, когда мы закончим разработку базовых функций, вы сможете подключиться к Pretendo просто запуская наше homebrew-приложение на вашей консоли." + "answer": "Чтобы начать использовать Pretendo Network на 3DS, Wii U или эмуляторах, просмотрите наши инструкции по установке!" }, { "question": "Знаете ли вы, когда что-либо из функций и сервисов будет сделано?", "answer": "Нет. Большинство сервисов Pretendo разрабатываются разными разработчиками (Например, над Miiverse может работать один из разработчиков, а над профилями и друзьями может работать совсем другой разработчик) и в целом мы не можем сказать сколько времени займёт разработка, так как сами этого не знаем." }, { - "question": "Работает ли Pretendo на эмуляторах/Cemu?", + "question": "Когда Вы добавите больше игр?", "answer": "Pretendo сделано специально для оборудования Wii U и 3DS; на данный момент единственный эмулятор с поддержкой Nintendo Network является Cemu. Cemu официально не поддерживает неофициальные сервера, однако Pretendo может работать и на Cemu.Pretendo на данный момент не поддерживает Cemu." }, { - "question": "Если я забанен в Nintendo Network, буду ли я забанен в Pretendo?", - "answer": "Нет. Все пользователи, которые имеют бан в официальном Nintendo Network, смогут пользоваться Pretendo. Однако, у нас есть правила использования и при их нарушении вы можете получить бан." + "question": "Если у меня эмулятор, хватит ли этого, чтобы использовать Pretendo?", + "answer": "Нет. В целях безопасности и модерации, если вы используете эмулятор, вам всё равно нужна настоящая консоль. Это позволит улучшить безопасность и усилить эффективность применения правил в целях обеспечения безопасной и приятной атмосферы на наших сервисах." }, { - "question": "Будет ли Pretendo поддерживать Wii/Switch?", + "question": "Работает ли Pretendo на Cemu/эмуляторах?", "answer": "У Wii уже есть неофициальные сервера, под названием Wiimmfi. На данный момент мы не собираемся работать с онлайном Switch, так как сервис платный и кардинально отличается от Nintendo Network." }, { - "question": "Нужно ли мне прошивать консоль?", + "question": "Будет ли Pretendo поддерживать WIi/Switch?", "answer": "Да, вам понадобится прошить консоль, чтобы подключиться. Однако, на Wii U вам понадобится только доступ к Homebrew Launcher (т.е. Haxchi, Coldboot Haxchi, или web browser exploit). Информация о подключении с 3DS будет опубликована позже." + }, + {}, + { + "question": "Если я забанен на Nintendo Network, буду ли я забанен и на Pretendo тоже?", + "answer": "Нет. Все пользователи, которые имеют бан в официальном Nintendo Network, смогут пользоваться Pretendo. Однако, у нас есть свои правила использования, и при их нарушении вы можете получить бан уже на Pretendo." + }, + { + "question": "Можно ли использовать читы или моды в сетевых играх на Pretendo?" } ] }, "credits": { "title": "Наша команда", - "text": "Ознакомьтесь с командой, которая работает над разработкой Pretendo" + "text": "Ознакомьтесь с командой, которая работает над разработкой Pretendo", + "people": [ + { + "caption": "Владелец проекта и ведущий разработчик" + } + ] }, "specialThanks": { "title": "Особая благодарность", From ae15bcc0aff5bfaa22bcba454f6e49e23fb8c851 Mon Sep 17 00:00:00 2001 From: UKRMate Date: Wed, 18 Jun 2025 15:16:54 +0200 Subject: [PATCH 050/214] locales(update): Updated Ukrainian locale Co-authored-by: UKRMate --- locales/uk_UA.json | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/locales/uk_UA.json b/locales/uk_UA.json index e67094d..c0cd9e3 100644 --- a/locales/uk_UA.json +++ b/locales/uk_UA.json @@ -25,7 +25,7 @@ "question": "Ви знаєте, коли функція/служба буде готова?" }, { - "answer": "Pretendo підтримує будь-який емулятор, який може взаємодіяти з Nintendo Network. Наразі єдиним емулятором із такою функціональністю є Cemu. Cemu 2.0 офіційно підтримує Pretendo в параметрах вашого мережевого облікового запису в емуляторі. Щоб отримати інформацію про те, як розпочати роботу з Cemu, перегляньте документацію.
    Citra не підтримує звичайну онлайн-гру та тому не працює з Pretendo і взагалі не підтримує звичайну онлайн-гру. Mikage, емулятор 3DS для мобільних пристроїв, мабуть ми зробимо підтримку в майбутньому, але це не точно.", + "answer": "Pretendo підтримує будь-який емулятор, який може взаємодіяти з Nintendo Network. Наразі єдиним емулятором із такою функціональністю є Cemu. Cemu 2.0 офіційно підтримує Pretendo в параметрах вашого мережевого облікового запису в емуляторі. Щоб отримати інформацію про те, як розпочати роботу з Cemu, перегляньте документацію.Citra не підтримує звичайну онлайн-гру та тому не працює з Pretendo і взагалі не підтримує звичайну онлайн-гру. Mikage, емулятор 3DS для мобільних пристроїв, можливо, надасть підтримку в майбутньому, хоча це ще не факт.", "question": "Чи працює Pretendo на Cemu/емуляторах?" }, { @@ -42,7 +42,7 @@ } ], "title": "Часті Запитання", - "text": "Ось кілька поширених запитань, які нам задають, щоб отримати легку інформацію." + "text": "Ось кілька поширених запитань, які нам задають, щоб отримати інформацію." }, "showcase": { "cards": [ @@ -77,23 +77,23 @@ "logout": "Вийти" }, "docs": "Документи", - "account": "Обликовий запис", + "account": "Обліковий запис", "donate": "Пожертвувати", "dropdown": { "captions": { "credits": "Зустрічайте команду", "blog": "Наші останні оновлення, скорочено", - "progress": "Проверіти прогресс проекту, та ціли", - "about": "Про проект", - "faq": "Найчастіше задаваїми питання" + "progress": "Проверіти прогресс проєкту та цілі", + "about": "Про проєкт", + "faq": "Часті питання" } } }, "hero": { "subtitle": "Ігрові сервери", - "title": "Відтворени", + "title": "Відтворені", "buttons": { - "readMore": "Читати далі" + "readMore": "Читати більше" }, "text": "Pretendo — це безкоштовна заміна серверів Nintendo з відкритим вихідним кодом як для 3DS, так і для Wii U, що дозволяє всім підключатися до Інтернету навіть після припинення роботи оригінальних серверів" }, From 5ed867635cf8f3890298b95ea870b99beca7ca35 Mon Sep 17 00:00:00 2001 From: Svyatoslav Date: Wed, 18 Jun 2025 15:16:54 +0200 Subject: [PATCH 051/214] locales(update): Updated Ukrainian locale Co-authored-by: Svyatoslav --- locales/uk_UA.json | 212 ++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 191 insertions(+), 21 deletions(-) diff --git a/locales/uk_UA.json b/locales/uk_UA.json index c0cd9e3..dc82481 100644 --- a/locales/uk_UA.json +++ b/locales/uk_UA.json @@ -17,7 +17,7 @@ "question": "Чи працюватимуть мої наявні NNID на Pretendo?" }, { - "question": "Як використовувати Pretendo?", + "question": "Як користуватися Pretendo?", "answer": "Pretendo наразі не готовий для загального використання. Однак, як тільки це станеться, ви зможете використовувати Pretendo, просто запустивши наш homebrew patcher на вашій консолі." }, { @@ -29,16 +29,27 @@ "question": "Чи працює Pretendo на Cemu/емуляторах?" }, { - "answer": "Ми не маємо доступу до блокувань Nintendo Network, і всі користувачі не будуть заблоковані в нашому сервісі. Однак у нас будуть правила, яких слід дотримуватися під час користування сервісом, і недотримання цих правил може призвести до блокування.", + "answer": "Ні. З метою безпеки та модерації, якщо ви використовуєте емулятор, вам все одно потрібна справжня консоль. Це дозволяє підвищити рівень безпеки та ефективніше застосовувати правила, щоб забезпечити безпечне та приємне користування нашим сервісом.", "question": "Якщо мене забанять у Nintendo Network, чи залишиться бан під час використання Pretendo?" }, { "question": "Чи підтримуватиме Pretendo Wii/Switch?", - "answer": "Wii уже має спеціальні сервери, надані Wiimmfi. Наразі ми не хочемо орієнтуватися на Switch, оскільки він платний і повністю відрізняється від Nintendo Network." + "answer": "Cemu 2.1 офіційно підтримує Pretendo у параметрах вашого мережевого облікового запису в емуляторі. Щоб дізнатися, як розпочати роботу з Cemu, зверніться до документації.
    . Деякі емулятори або форки емулятора 3DS можуть підтримувати нас, але наразі ми не маємо жодних офіційних рекомендацій чи інструкцій з налаштування. Фінальні збірки Citra не підтримують Pretendo." }, { "question": "Чи знадобляться мені хаки для підключення?", - "answer": "Так, вам потрібно буде хакнути пристрій, щоб підключитися; однак на Wii U вам потрібен буде лише доступ до Homebrew Launcher (тобто Haxchi, Coldboot Haxchi або навіть експлойт веб-браузера), а інформація про те, як 3DS підключатиметься, буде надана пізніше." + "answer": "Для Wii вже є власні сервери, надані Wiimmfi. Наразі ми не хочемо орієнтуватися на Switch, оскільки вона є платною і повністю відрізняється від Nintendo Network." + }, + { + "answer": "Для найкращого досвіду на консолях вам потрібно буде хакнути вашу систему - зокрема, Aroma для Wii U та Luma3DS для 3DS. Однак на Wii U також доступний метод SSSL без злому з обмеженою функціональністю. Дивіться наші інструкції з налаштування для отримання детальної інформації." + }, + { + "question": "Якщо мене заблоковано в Nintendo Network, чи буду я заблокований під час використання Pretendo?", + "answer": "Ми не маємо доступу до блокувань Nintendo Network, тому всі користувачі Nintendo Network не заблоковані. Однак у нас є правила, яких слід дотримуватися при використанні сервісу, і їх недотримання може призвести до блокування." + }, + { + "answer": "Тільки в приватних матчах - отримання несправедливої переваги або порушення взаємодії з людьми, які не давали на це згоди (як і в публічних матчах), є забороненим порушенням. Ми регулярно застосовуємо блокування акаунтів і консолей як для Wii U, так і для 3DS. Pretendo використовує додаткові заходи безпеки, які роблять традиційні методи зняття блокування, такі як зміна серійного номера, неефективними.", + "question": "Чи можу я використовувати чити або модифікації з Pretendo?" } ], "title": "Часті Запитання", @@ -64,7 +75,79 @@ }, "credits": { "title": "Команда", - "text": "Познайомтеся з командою проекту" + "text": "Познайомтеся з командою проекту", + "people": [ + { + "picture": "https://github.com/jonbarrow.png", + "name": "Jonathan Barrow (jonbarrow)", + "github": "https://github.com/jonbarrow" + }, + { + "name": "Jemma (CaramelKat)", + "picture": "https://github.com/caramelkat.png", + "github": "https://github.com/CaramelKat" + }, + { + "caption": "Дослідження та розробка патчів для Wii U", + "picture": "https://github.com/ashquarky.png", + "github": "https://github.com/ashquarky", + "name": "quarky" + }, + { + "picture": "https://github.com/supermariodabom.png", + "github": "https://github.com/SuperMarioDaBom", + "caption": "Системні дослідження та архітектура серверів", + "name": "SuperMarioDaBom" + }, + { + "name": "pinklimes", + "caption": "Веб-розробка", + "github": "https://github.com/gitlimes.png", + "picture": "https://github.com/gitlimes.png" + }, + { + "name": "Shutterbug2000", + "caption": "Системні дослідження та розробка серверів", + "picture": "https://cdn.discordapp.com/avatars/191370953807233024/0311b61e2009c1576828dd2e9a59d72e.png?size=128", + "github": "https://github.com/shutterbug2000" + }, + { + "name": "Billy", + "picture": "https://github.com/InternalLoss.png", + "caption": "Збереження та серверна архітектура", + "github": "https://github.com/InternalLoss" + }, + { + "picture": "https://github.com/danielectra.png", + "github": "https://github.com/DaniElectra", + "name": "DaniElectra", + "caption": "Системні дослідження та розробка серверів" + }, + { + "caption": "Веб та серверна розробка", + "picture": "https://github.com/hauntii.png", + "name": "niko", + "github": "https://github.com/hauntii" + }, + { + "caption": "DevOps та робота з спільнотою", + "name": "MatthewL246", + "picture": "https://github.com/MatthewL246.png", + "github": "https://github.com/MatthewL246" + }, + { + "name": "wolfendale", + "picture": "https://github.com/wolfendale.png", + "caption": "Розробка та оптимізація серверів", + "github": "https://github.com/wolfendale" + }, + { + "name": "TraceEntertains", + "caption": "Розробка та дослідження патчів для 3DS", + "picture": "https://github.com/TraceEntertains.png", + "github": "https://github.com/TraceEntertains" + } + ] }, "nav": { "credits": "Титри", @@ -103,11 +186,97 @@ }, "specialThanks": { "title": "Особлива подяка", - "text": "Без них Pretendo не було б таким, яким воно є сьогодні." + "text": "Без них Pretendo не було б таким, яким воно є сьогодні.", + "people": [ + { + "name": "Користувачі GitHub", + "caption": "Локалізації та інші внески", + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", + "github": "https://github.com/PretendoNetwork" + }, + { + "name": "superwhiskers", + "picture": "https://github.com/superwhiskers.png", + "github": "https://github.com/superwhiskers", + "caption": "Розробка кранч-бібліотек" + }, + { + "name": "Stary", + "picture": "https://github.com/Stary2001.png", + "github": "https://github.com/Stary2001", + "caption": "Розробка 3DS та дисектор NEX" + }, + { + "name": "rverse", + "picture": "https://github.com/rverseTeam.png", + "github": "https://twitter.com/rverseClub", + "caption": "Поширення інформації про Miiverse" + }, + { + "caption": "Дослідження структур даних Nintendo", + "name": "Kinnay", + "picture": "https://cdn.discordapp.com/avatars/186572995848830987/b55c0d4e7bfd792edf0689f83a25d8ea.png?size=128", + "special": "Особлива подяка", + "github": "https://github.com/Kinnay" + }, + { + "name": "NinStar", + "caption": "Іконки для Mii Editor та реакцій Juxt", + "picture": "https://github.com/ninstar.png", + "github": "https://github.com/ninstar" + }, + { + "caption": "Дослідження консолей та ігрових серверів", + "picture": "https://github.com/EpicUsername12.png", + "github": "https://github.com/EpicUsername12", + "name": "Rambo6Glaz" + }, + { + "name": "GaryOderNichts", + "github": "https://github.com/GaryOderNichts", + "picture": "https://github.com/GaryOderNichts.png" + }, + { + "picture": "https://cdn.discordapp.com/avatars/219324395707957248/c62573fbd4d26c8b4724f54413df6960.png?size=128", + "name": "zaksabeast", + "caption": "Розробник патчів для 3DS", + "github": "https://github.com/zaksabeast" + }, + { + "name": "mrjvs", + "caption": "Архітектура сервера", + "picture": "https://github.com/mrjvs.png", + "github": "https://github.com/mrjvs" + }, + { + "caption": "Архітектура сервера", + "github": "https://github.com/binaryoverload", + "picture": "https://github.com/binaryoverload.png", + "name": "binaryoverload" + }, + { + "name": "Simonx22", + "caption": "Ротації та дослідження Splatoon", + "picture": "https://github.com/Simonx22.png", + "github": "https://github.com/Simonx22" + }, + { + "github": "https://github.com/OatmealDome", + "name": "OatmealDome", + "caption": "Ротації та дослідження Splatoon", + "picture": "https://github.com/OatmealDome.png" + }, + { + "caption": "Локалізації та інші внески", + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", + "name": "Користувачі GitHub", + "github": "https://github.com/PretendoNetwork" + } + ] }, "discordJoin": { "title": "Будьте в курсі подій", - "text": "Приєднуйтесь до нашого сервера Discord, щоб отримувати останні оновлення про проект.", + "text": "Приєднуйтесь до нашого сервера Discord, щоб отримувати останні оновлення про проєкт.", "widget": { "button": "Приєднатися до серверу", "text": "Отримуйте оновлення в реальному часі про наш прогрес" @@ -130,9 +299,10 @@ "Я не можу дочекатися поки часи перейдуть відмітку 03:14:08 по UTC дев'ятнадцятого січеня 2038 року!", "Wii U це недо оцінена консоль : Комерчіска реклама була дуже погана, але консоль дуже гарна. Зачекайте, я не дуже впевнений, чому мій контролер не приеднуется до Wii.", "Super Mario World 2 - Головна тема острова Йоші - абсолютний боп (стиль жанру джаза), та ви не зможете переконати мене у зворотному.", - "Мої улюблені Nintendo Switch релізи це Nintendo Switch Online + Expansion Pack, Nintendo Switch Online + Rumble Pak, Nintendo Switch Online + Offline Play Pack, Nintendo Switch Online + Yet Another Port Pack, and Nintendo Switch Online + Dr. Kawashima's Brain Training / Brain Age \"Вам дуже сподобається Nintendo Wii U Virtual Console ігри, так що ми їх повертаемо обратно\" Пак. Вы можете серйозно сказати що Nintendo не байдуже.", + "Моїми улюбленими релізами для Nintendo Switch були Nintendo Switch Online + розширення, Nintendo Switch Online + Rumble Pack, Nintendo Switch Online + офлайн-пакет, Nintendo Switch Online + ще один порт-пакет і Nintendo Switch Online + Dr. Kawashima's Brain Training / Brain Age \"Вам дуже сподобалася гра для віртуальної консолі Nintendo Wii U, тому ми повертаємо її назад\". Можна сказати, що Nintendo дійсно дбає про нас.", "Наприклад, \"Ти знаєш, Еш, благослови її серце, вона весь день Увукала\" - це південний приємний спосіб сказати: \"Еш увукала весь час, і це дійсно дивно і тупо, і я хотів би, щоб вони цього не зробили\"", - "Моє перше відео на моєму каналі!! Я вже давно хотів знімати відео, але мій ноутбук працював досить погано, і я не міг запускати Fraps, Skype і Minecraft одночасно. Але зараз на цьому все закінчиться! За допомогою мого ІТ-викладача мій ноутбук працює набагато краще, і я можу записувати зараз! Сподіваюся, вам усім сподобається, і якщо це так, будь ласка, поставте лайк і підпишіться!!!" + "Моє перше відео на моєму каналі!! Я вже давно хотів знімати відео, але мій ноутбук працював досить погано, і я не міг запускати Fraps, Skype і Minecraft одночасно. Але зараз на цьому все закінчиться! За допомогою мого ІТ-викладача мій ноутбук працює набагато краще, і я можу записувати зараз! Сподіваюся, вам усім сподобається, і якщо це так, будь ласка, поставте лайк і підпишіться!!!", + "Як на мене, виглядає непогано." ] }, "blogPage": { @@ -143,7 +313,7 @@ }, "account": { "loginForm": { - "login": "Логін", + "login": "Лоґін", "register": "Зареєструватися", "username": "Ім'я користувача", "password": "Пароль", @@ -156,7 +326,7 @@ "forgotPassword": "Забули пароль?" }, "settings": { - "upgrade": "Прокачати аккаунт", + "upgrade": "Прокачати акаунт", "settingCards": { "profile": "Профіль", "nickname": "Нікнейм", @@ -172,24 +342,24 @@ "otherSettings": "Інші налаштування", "discord": "Discord", "connectedToDiscord": "Підключений до Discord як", - "removeDiscord": "Вийти з аккаунту Discord", - "noDiscordLinked": "Аккаунт Discord не пов’язано.", + "removeDiscord": "Вийти з акаунту Discord", + "noDiscordLinked": "Акаунт Discord не пов’язано.", "passwordPrompt": "Введіть свій пароль PNID, щоб завантажити файли Cemu", "serverEnv": "Серверне середовище", "hasAccessPrompt": "Ваш поточний рівень надає вам доступ до бета-сервера. Круто!", "gender": "Стать", "beta": "Бета", - "upgradePrompt": "Бета-сервери призначені виключно для бета-тестерів.
    Щоб стати бета-тестером, прокачайте аккаунт до вищого рівня.", + "upgradePrompt": "Бета-сервери призначені виключно для бета-тестерів.
    Щоб стати бета-тестером, прокачайте акаунт до вищого рівня.", "fullSignInHistory": "Переглянути повну історію входів", - "linkDiscord": "Прив'язати аккаунт Discord", + "linkDiscord": "Прив'язати акаунт Discord", "newsletter": "Розсилка новин", "newsletterPrompt": "Отримувати оновлення проекту електронною поштою (ви можете відмовитися в будь-який час)", "no_newsletter_notice": "Новини зараз не доступні. Спробуйте пізніше", - "userSettings": "Налаштування Користувача", + "userSettings": "Налаштування користувача", "no_signins_notice": "Вхідна історія зараз не відстежується. Спробуйте пізніше!", "no_edit_from_dashboard": "Редагування налаштувань PNID з інформаційної панелі користувача зараз не доступна. Будь ласка, оновіть налаштування користувача з прив'язаної ігрової консолі" }, - "unavailable": "Не Доступно" + "unavailable": "Не доступно" }, "accountLevel": [ "Стандартний", @@ -197,7 +367,7 @@ "Модератор", "Розробник" ], - "banned": "Заблокован", + "banned": "Заблокований", "account": "Обліковий Запис", "forgotPassword": { "header": "Забув пароль", @@ -252,11 +422,11 @@ } ] }, - "missingInLocale": "Ця сторінка недоступна у вашому регіоні. Будь ласка, перевірте англійську версію нижче.", + "missingInLocale": "Ця сторінка недоступна на вашій мові. Будь ласка, перевірте англійську версію нижче.", "sidebar": { "welcome": "Ласкаво просимо", - "juxt_err": "Коди помилки - Juxt", - "getting_started": "Починаемо", + "juxt_err": "Коди помилок - Juxt", + "getting_started": "Починаємо", "install_extended": "Встановити Pretendo", "install": "Встановити", "search": "Знайти" From 28ae6b77a6be2e13ac77cb1aea0655491456f0c4 Mon Sep 17 00:00:00 2001 From: UKRMate Date: Wed, 18 Jun 2025 15:16:54 +0200 Subject: [PATCH 052/214] locales(update): Updated Ukrainian locale locales(update): Updated Ukrainian locale Co-authored-by: UKRMate --- locales/uk_UA.json | 61 ++++++++++++++++++++++++++-------------------- 1 file changed, 34 insertions(+), 27 deletions(-) diff --git a/locales/uk_UA.json b/locales/uk_UA.json index dc82481..8ac6773 100644 --- a/locales/uk_UA.json +++ b/locales/uk_UA.json @@ -2,7 +2,7 @@ "aboutUs": { "paragraphs": [ "Pretendo — це проект із відкритим вихідним кодом, метою якого є відтворення мережі Nintendo для 3DS і Wii U за допомогою зворотного проектування чистих приміщень.", - "Оскільки наші служби будуть безкоштовними та відкритими, вони можуть існувати ще довго після неминучого закриття Nintendo Network." + "Оскільки наші служби є безкоштовними та відкритими, вони будуть існувати ще довгий час" ], "title": "Про нас" }, @@ -18,7 +18,7 @@ }, { "question": "Як користуватися Pretendo?", - "answer": "Pretendo наразі не готовий для загального використання. Однак, як тільки це станеться, ви зможете використовувати Pretendo, просто запустивши наш homebrew patcher на вашій консолі." + "answer": "Щоб почати використовувати Pretendo Network на 3DS, Wii U чи емуляторах, відвідайте інструкції для підключення!" }, { "answer": "Ні. Багато функцій/сервісів Pretendo розроблено незалежно (наприклад, над Miiverse може працювати один розробник, а над обліковими записами та друзями — інший), тому ми не можемо вказати скільки часу це займе.", @@ -26,22 +26,23 @@ }, { "answer": "Pretendo підтримує будь-який емулятор, який може взаємодіяти з Nintendo Network. Наразі єдиним емулятором із такою функціональністю є Cemu. Cemu 2.0 офіційно підтримує Pretendo в параметрах вашого мережевого облікового запису в емуляторі. Щоб отримати інформацію про те, як розпочати роботу з Cemu, перегляньте документацію.Citra не підтримує звичайну онлайн-гру та тому не працює з Pretendo і взагалі не підтримує звичайну онлайн-гру. Mikage, емулятор 3DS для мобільних пристроїв, можливо, надасть підтримку в майбутньому, хоча це ще не факт.", - "question": "Чи працює Pretendo на Cemu/емуляторах?" + "question": "Коли ви додасте більше ігор?" }, { "answer": "Ні. З метою безпеки та модерації, якщо ви використовуєте емулятор, вам все одно потрібна справжня консоль. Це дозволяє підвищити рівень безпеки та ефективніше застосовувати правила, щоб забезпечити безпечне та приємне користування нашим сервісом.", - "question": "Якщо мене забанять у Nintendo Network, чи залишиться бан під час використання Pretendo?" + "question": "Якщо я буду використовувати емулятор, чи буде цього достатньо для використання Pretendo?" }, { - "question": "Чи підтримуватиме Pretendo Wii/Switch?", + "question": "Чи працює Pretendo на Cemu/емуляторах?", "answer": "Cemu 2.1 офіційно підтримує Pretendo у параметрах вашого мережевого облікового запису в емуляторі. Щоб дізнатися, як розпочати роботу з Cemu, зверніться до документації.
    . Деякі емулятори або форки емулятора 3DS можуть підтримувати нас, але наразі ми не маємо жодних офіційних рекомендацій чи інструкцій з налаштування. Фінальні збірки Citra не підтримують Pretendo." }, { - "question": "Чи знадобляться мені хаки для підключення?", + "question": "Чи буде Pretendo підтримувати Wii/Switch?", "answer": "Для Wii вже є власні сервери, надані Wiimmfi. Наразі ми не хочемо орієнтуватися на Switch, оскільки вона є платною і повністю відрізняється від Nintendo Network." }, { - "answer": "Для найкращого досвіду на консолях вам потрібно буде хакнути вашу систему - зокрема, Aroma для Wii U та Luma3DS для 3DS. Однак на Wii U також доступний метод SSSL без злому з обмеженою функціональністю. Дивіться наші інструкції з налаштування для отримання детальної інформації." + "answer": "Для найкращого досвіду на консолях вам потрібно буде хакнути вашу систему - зокрема, Aroma для Wii U та Luma3DS для 3DS. Однак на Wii U також доступний метод SSSL без злому з обмеженою функціональністю. Дивіться наші інструкції з налаштування для отримання детальної інформації.", + "question": "Чи потрібні хаки для підключення?" }, { "question": "Якщо мене заблоковано в Nintendo Network, чи буду я заблокований під час використання Pretendo?", @@ -63,7 +64,7 @@ }, { "title": "Juxtaposition", - "caption": "Повторне уявлення про Miiverse, ніби це було зроблено в сучасну епоху." + "caption": "Переосмислення Miiverse, так, ніби воно було зроблено в сучасну епоху." }, { "caption": "Грайте в улюблені ігри Wii U навіть без консолі!", @@ -80,12 +81,14 @@ { "picture": "https://github.com/jonbarrow.png", "name": "Jonathan Barrow (jonbarrow)", - "github": "https://github.com/jonbarrow" + "github": "https://github.com/jonbarrow", + "caption": "Власник проєкту та головний розробник" }, { "name": "Jemma (CaramelKat)", "picture": "https://github.com/caramelkat.png", - "github": "https://github.com/CaramelKat" + "github": "https://github.com/CaramelKat", + "caption": "Дослідження та розробка Miiverse" }, { "caption": "Дослідження та розробка патчів для Wii U", @@ -152,7 +155,7 @@ "nav": { "credits": "Титри", "progress": "Прогрес", - "blog": "Блог", + "blog": "Блоґ", "about": "Про", "faq": "ЧаПи", "accountWidget": { @@ -234,7 +237,8 @@ { "name": "GaryOderNichts", "github": "https://github.com/GaryOderNichts", - "picture": "https://github.com/GaryOderNichts.png" + "picture": "https://github.com/GaryOderNichts.png", + "caption": "Розробка патчів для Wii U" }, { "picture": "https://cdn.discordapp.com/avatars/219324395707957248/c62573fbd4d26c8b4724f54413df6960.png?size=128", @@ -283,30 +287,30 @@ } }, "footer": { - "socials": "Соціальні сеті", + "socials": "Соціальні мережі", "usefulLinks": "Корисні посилання", "widget": { "captions": [ - "Хочете бути в курсі?", + "Хочете бути в курсі подій?", "Приєднуйтесь до нашого сервера Discord!" ], "button": "Приєднуйся зараз!" }, "bandwidthRaccoonQuotes": [ - "Я Бандвих Єнот і мені подобається перекушувати кабелі до серверів Pretendo Network. Ням!", - "Багато людей питає нас : Чи будемо ми мати проблеми з Nintendo иза цого? Я дуже радий сказати, що моя тітка працуе в Nintendo, та вона ясказала що все добре.", - "Webkit версії 537 це найкраща версія Webkit для Wii U. Ні, ми не будемо портирувати Chrome на Wii U.", - "Я не можу дочекатися поки часи перейдуть відмітку 03:14:08 по UTC дев'ятнадцятого січеня 2038 року!", - "Wii U це недо оцінена консоль : Комерчіска реклама була дуже погана, але консоль дуже гарна. Зачекайте, я не дуже впевнений, чому мій контролер не приеднуется до Wii.", - "Super Mario World 2 - Головна тема острова Йоші - абсолютний боп (стиль жанру джаза), та ви не зможете переконати мене у зворотному.", + "Я єнот Бендвих, і я люблю гризти кабелі, що йдуть до серверів Pretendo Network. Ням!", + "Багато людей запитують нас, чи не виникнуть у нас юридичні проблеми з Nintendo через це; я радий повідомити, що моя тітка працює в Nintendo, і вона каже, що все в порядку.", + "Webkit v537 - найкраща версія Webkit для Wii U. Ні, ми не збираємося портувати Chrome на Wii U.", + "Не можу дочекатися, коли годинник досягне 03:14:08 UTC 19 січня 2038 року!", + "Wii U насправді недооцінена система: реклама була дуже поганою, але консоль чудова. Секундочку, не знаю чому, але мій геймпад не під'єднується до Wii.", + "Головна тема Super Mario World 2 - Yoshi's Island - це абсолютний боп, і ви ніяк не переконаєте мене в протилежному.", "Моїми улюбленими релізами для Nintendo Switch були Nintendo Switch Online + розширення, Nintendo Switch Online + Rumble Pack, Nintendo Switch Online + офлайн-пакет, Nintendo Switch Online + ще один порт-пакет і Nintendo Switch Online + Dr. Kawashima's Brain Training / Brain Age \"Вам дуже сподобалася гра для віртуальної консолі Nintendo Wii U, тому ми повертаємо її назад\". Можна сказати, що Nintendo дійсно дбає про нас.", - "Наприклад, \"Ти знаєш, Еш, благослови її серце, вона весь день Увукала\" - це південний приємний спосіб сказати: \"Еш увукала весь час, і це дійсно дивно і тупо, і я хотів би, щоб вони цього не зробили\"", - "Моє перше відео на моєму каналі!! Я вже давно хотів знімати відео, але мій ноутбук працював досить погано, і я не міг запускати Fraps, Skype і Minecraft одночасно. Але зараз на цьому все закінчиться! За допомогою мого ІТ-викладача мій ноутбук працює набагато краще, і я можу записувати зараз! Сподіваюся, вам усім сподобається, і якщо це так, будь ласка, поставте лайк і підпишіться!!!", + "Наприклад, \"Ти знаєш, Еш, благослови її серце, вона весь день УвУкає\" - це південний приємний спосіб сказати: \"Еш увукає весь час, і це дійсно дивно і безглуздо, і я хотів би, щоб вона цього не робила\"", + "Моє перше відео на моєму каналі! Я давно хотів знімати відео, але мій ноутбук працював досить погано, і я не міг запускати fraps, skype і minecraft одночасно. але тепер це закінчилося! з деякою допомогою мого вчителя інформатики мій ноутбук працює набагато краще, і я можу записувати зараз! я сподіваюся, що вам сподобається, і якщо вам сподобається, будь ласка, ставте лайк і підписуйтесь!!!", "Як на мене, виглядає непогано." ] }, "blogPage": { - "title": "Блог", + "title": "Блоґ", "publishedOn": "у", "published": "Опубліковано", "description": "Останні оновлення у стислому вигляді. Якщо ви хочете бачити частіші оновлення, підтримайте нас." @@ -320,8 +324,8 @@ "confirmPassword": "Підтвердьте пароль", "email": "Електронна пошта", "miiName": "Ім'я Mii", - "registerPrompt": "Немає аккаунту?", - "loginPrompt": "Вже є аккаунт?", + "registerPrompt": "Немає акаунту?", + "loginPrompt": "Вже є акаунт?", "detailsPrompt": "Введіть дані свого облікового запису нижче", "forgotPassword": "Забули пароль?" }, @@ -401,7 +405,7 @@ "upgradePush": "Щоб стати передплатником і отримати доступ до цікавих бонусів, відвідайте сторінку прокачки." }, "localizationPage": { - "title": "Локалізуємо", + "title": "Давайте локалізуємо", "instructions": "Переглянути інструкції з локалізації", "description": "Вставте посилання на загальнодоступну мову JSON, щоб протестувати її на веб-сайті", "fileInput": "Файл для тестування", @@ -422,7 +426,7 @@ } ] }, - "missingInLocale": "Ця сторінка недоступна на вашій мові. Будь ласка, перевірте англійську версію нижче.", + "missingInLocale": "Ця сторінка недоступна вашою мовою. Будь ласка, перевірте англійську версію нижче.", "sidebar": { "welcome": "Ласкаво просимо", "juxt_err": "Коди помилок - Juxt", @@ -446,5 +450,8 @@ "cancel": "Скасувати", "confirm": "Підтвердити", "close": "Закрити" + }, + "notfound": { + "description": "Упс! Сторінка не знайдена." } } From 39730fb1c32e94a237b5682d506f0f09754385a8 Mon Sep 17 00:00:00 2001 From: - Date: Wed, 18 Jun 2025 15:16:55 +0200 Subject: [PATCH 053/214] locales(update): Updated Finnish locale Co-authored-by: - --- locales/fi_FI.json | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/locales/fi_FI.json b/locales/fi_FI.json index 1a8feb6..806e24f 100644 --- a/locales/fi_FI.json +++ b/locales/fi_FI.json @@ -90,11 +90,11 @@ "caption": "Miiversen uudelleenluonti, kuten se olisi syntynyt tähän päivään." }, { - "title": "Cemu -tuki", + "title": "Cemu-tuki", "caption": "Pelaa Wii U suosikkipelejäsi jopa ilman konsolia!" } ], - "title": "Mitä kehitämme", + "title": "Mitä teemme", "text": "Projektissamme on useita komponentteja. Tässä on osa niistä." }, "credits": { @@ -120,7 +120,7 @@ }, "footer": { "socials": "Sosiaaliset", - "usefulLinks": "Tärkeitä linkkejä", + "usefulLinks": "Hyödyllisiä linkkejä", "widget": { "captions": [ "Haluatko pysyä ajan tasalla?", @@ -166,11 +166,11 @@ }, "settings": { "upgrade": "Nosta tililuokkaa", - "unavailable": "Ei saatavissa", + "unavailable": "Ei saatavilla", "settingCards": { "userSettings": "Käyttäjän asetukset", "profile": "Profiili", - "nickname": "Lempinimi", + "nickname": "Nimimerkki", "birthDate": "Syntymäpäivä", "gender": "Sukupuoli", "timezone": "Aikavyöhyke", @@ -180,20 +180,20 @@ "signInHistory": "Kirjautumishistoria", "fullSignInHistory": "Näytä koko kirjautumishistoria", "connectedToDiscord": "Littetty Discord -tiliin", - "removeDiscord": "Poista Discord -tili", - "noDiscordLinked": "Ei liitettyä Discord -tiliä.", + "removeDiscord": "Poista Discord-tili", + "noDiscordLinked": "Ei liitettyä Discord-tiliä.", "newsletter": "Uutiskirje", "passwordPrompt": "Anna PNID salasanasi ladataksesi Cemu -tiedostot", "password": "Salasana", "country": "Maa/alue", "upgradePrompt": "Betapalvelimet ovat van betatestaajille.
    Jos haluat mukaan betatestiin, nosta tililuokkaa.", "hasAccessPrompt": "Nykyinen tililuokituksesi antaa sinulle oikeudet betapalvelimille. Mahtavaa!", - "signInSecurity": "Kirjautuminen ja tietoturva", + "signInSecurity": "Kirjautuminen ja turvallisuus", "discord": "Discord", "otherSettings": "Muut asetukset", "email": "Sähköposti", - "passwordResetNotice": "Vaihdettuasi salasanan, sinut kirjataan ulos kaikilta laitteilta.", - "linkDiscord": "Liitä Discord -tili", + "passwordResetNotice": "Salasanan vaihtamisen jälkeen sinut kirjataan ulos kaikilta laitteilta.", + "linkDiscord": "Liitä Discord-tili", "newsletterPrompt": "Saa tietoja projektin etenemisestä sähköpostiisi (voit perua kirjeen milloin vain)", "no_newsletter_notice": "Uutiskirje ei ole tällä hetkellä saatavilla. Palaa asiaan myöhemmin", "no_signins_notice": "Kirjautumishistoriaa ei toistaiseksi seurata. Palaa asiaan myöhemmin!", From 0642fd526846ae4e9d51213ad9494d9483903155 Mon Sep 17 00:00:00 2001 From: I'am best Date: Wed, 18 Jun 2025 15:16:55 +0200 Subject: [PATCH 054/214] locales(update): Updated German locale locales(update): Updated German locale Co-authored-by: I'am best --- locales/de_DE.json | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/locales/de_DE.json b/locales/de_DE.json index 023cc25..a555aca 100644 --- a/locales/de_DE.json +++ b/locales/de_DE.json @@ -42,7 +42,7 @@ "githubRepo": "Github-Repository" }, "faq": { - "title": "Frequently Asked Questions (Häufig gestellte Fragen)", + "title": "Häufig gestellte Fragen", "text": "Hier sind einige Fragen, die wir häufiger gestellt bekommen, zur schnellen Informationsbeschaffung.", "QAs": [ { @@ -75,17 +75,19 @@ }, { "question": "Wird Pretendo die Wii/Switch unterstützen?", - "answer": "Ja, du musst deine Konsole hacken, allerdings reicht auf der Wii U den Zugriff zum Homebrew-Launcher (z.B. über Haxchi, CBHC, oder den Browser-Exploit). Informationen, wie der 3DS verbunden wird, werden später noch veröffentlicht." + "answer": "Die Wii hat bereits eigene Server von Wiimmfi. Die Switch ist derzeit nicht unser Ziel, da sie sowohl kostenpflichtig als auch völlig anders als das Nintendo Network ist.\"" }, { - "question": "Wenn ich auf dem Nintendo Network gebannt bin, heißt das auch das ich auf Pretendo gebannt bin?" + "question": "Wenn ich auf dem Nintendo Network gebannt bin, heißt das auch das ich auf Pretendo gebannt bin?", + "answer": "Für das beste Erlebnis auf Konsolen musst du dein System hacken – speziell Aroma für die Wii U und Luma3DS für den 3DS. Auf der Wii U ist jedoch auch die hackfreie SSSL-Methode mit eingeschränkter Funktionalität verfügbar. Sieh dir unsere Einrichtungsanleitung für Details an." }, { "question": "Kann ich Cheats oder Mods online mit Pretendo verwenden?", "answer": "Nur in privaten Matches – sich einen unfairen Vorteil zu verschaffen oder das Online-Erlebnis von Personen zu stören, die nicht zugestimmt haben (wie beispielsweise in öffentlichen Matches), ist ein bannbarer Verstoß. Wir verhängen regelmäßig Konto- und Konsolensperren sowohl für Wii U- als auch für 3DS-Systeme. Pretendo verwendet zusätzliche Sicherheitsmaßnahmen, die traditionelle ‘Entbannungs’-Methoden wie das Ändern der Seriennummer unwirksam machen." }, { - "question": "Kann ich Cheats oder Mods online mit Pretendo verwenden?" + "question": "Kann ich Cheats oder Mods online mit Pretendo verwenden?", + "answer": "Nur in privaten Matches – sich einen unfairen Vorteil zu verschaffen oder das Online-Erlebnis anderer ohne deren Zustimmung zu stören (z. B. in öffentlichen Matches), ist ein bannbarer Verstoß. Wir verhängen regelmäßig Account- und Konsolensperren für Wii U- und 3DS-Systeme. Pretendo nutzt zusätzliche Sicherheitsmaßnahmen, die herkömmliche 'Unban'-Methoden, wie das Ändern der Seriennummer, unwirksam machen." } ] }, From 5818eeae3183329def5d1004006dcf5c36223f47 Mon Sep 17 00:00:00 2001 From: Lacey Anaya Date: Wed, 18 Jun 2025 15:16:55 +0200 Subject: [PATCH 055/214] locales(update): Updated German locale locales(update): Updated German locale Co-authored-by: Lacey Anaya --- locales/de_DE.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/de_DE.json b/locales/de_DE.json index a555aca..becb598 100644 --- a/locales/de_DE.json +++ b/locales/de_DE.json @@ -66,7 +66,7 @@ "answer": "Wir arbeiten am Hinzufügen neuer Spiele, sobald unsere Backend-Libraries bereit dazu sind, diese zu unterstützen und sobald unsere Entwickler Zeit haben, diese instand zu halten. Eine Menge unserer Zeit fließt in die Stabilisierung und Abschließen der bereits existierenden Spiele. Wir möchten euch die besten Spielerfahrungen möglich machen, bevor wir uns neuen Spieltiteln widmen. Aufgrund von ständiger neu auftauchender Arbeit können wir keine Angaben machen, wann wir neue Spiele hinzufügen werden." }, { - "question": "Funktioniert Pretendo auch auf Cemu oder anderen Emulatoren?", + "question": "Reicht ein Emulator aus, um Pretendo zu nutzen?", "answer": "Nein. Aus Sicherheits- und Moderationsgründen musst du, auch wenn du einen Emulator benutzt, trotzdem eine echte Konsole besitzen. Das ermöglicht erhöhte Sicherheit und ein einfacheres Umsetzen der Regeln, um ein sicheres und angenehmes Erlebnis mit unseren Diensten zu bieten." }, { @@ -75,7 +75,7 @@ }, { "question": "Wird Pretendo die Wii/Switch unterstützen?", - "answer": "Die Wii hat bereits eigene Server von Wiimmfi. Die Switch ist derzeit nicht unser Ziel, da sie sowohl kostenpflichtig als auch völlig anders als das Nintendo Network ist.\"" + "answer": "Inoffizielle Wii-Server werden bereits von Wiimmfi bereitgestellt. Eine Unterstützung der Switch streben wir nicht an, da es sich um ein gebührenpflichtiges Netzwerk handelt, das sich fundamental vom Nintendo Network unterscheidet." }, { "question": "Wenn ich auf dem Nintendo Network gebannt bin, heißt das auch das ich auf Pretendo gebannt bin?", From 07694f3e74f98e8af24d37df182b684d5343b123 Mon Sep 17 00:00:00 2001 From: Everest Date: Wed, 18 Jun 2025 15:16:55 +0200 Subject: [PATCH 056/214] locales(update): Updated Hungarian locale Co-authored-by: Everest --- locales/hu_HU.json | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/locales/hu_HU.json b/locales/hu_HU.json index f5ae6ce..7459094 100644 --- a/locales/hu_HU.json +++ b/locales/hu_HU.json @@ -67,15 +67,15 @@ }, { "question": "Működik a Pretendo Cemu-n vagy emulátorokon?", - "answer": "Cemu 2.1 teljeskörűen támogatja a Pretendo-t a hálózati profil fül alatt az emulátorban. Több információért hogyan kezdj bele a Cemu-val, nézd meg a dokumentációt.
    Néhány 3DS emulátor vagy forkja is lehet hogy támogat minket, de nincs semmilyen hivatalos ajánlásunk vagy telepítési útmutatónk még. A Citra teljes verziója nem támogatja a Pretendo-t." + "answer": "Nem. A könnyebb moderáció és biztonság érdekében, az emulátor használatához szükséged lesz egy valódi konzolra is. Ez lehetővé tesz egy biztosabb rendszert és a szabályok hatékonyabb betartattatását, egy élvezetesebb és megbízhatóbb élmény érdekében." }, { - "answer": "A Wii-nek már vannak saját szerverei, amit a Wiimmfi biztosít. Jelenleg nem célozzuk meg a Switch-et, mivel fizetős és teljesen más, mint a Nintendo Network.", - "question": "Fogja a Pretendo támogatni a Wii-t/Switch-et?" + "answer": "Cemu 2.1 teljeskörűen támogatja a Pretendo-t a hálózati profil fül alatt az emulátorban. Több információért, hogy hogyan kezdj bele a Cemu-val való online játékba, nézd meg a dokumentációt.
    Néhány 3DS emulátor vagy annak forkjai lehet támogatnak minket, de egyenlőre nincs semmilyen hivatalos ajánlásunk vagy telepítési útmutatónk hozzájuk. A Citra legújabb verziója nem támogatja a Pretendo-t.", + "question": "Működik a Pretendo a Cemu emulátoron/más emulátorokon?" }, { "answer": "A legjobb élményért a konzolokon, kell hackelned kell a konzolt - pontosan Aromával a Wii U-hoz és Luma3DS-el a 3DS-hez, de a Wii U-hoz van hackelés nélküli SSSL megoldás de limitált hozzáféréssel. Nézd meg a telepítési lépéseket a leírásért.", - "question": "Szükségem van hack-re a csatlakozáshoz?" + "question": "Fogja a Pretendo támogatni a Wii-t/Switch-et?" }, { "answer": "Nincs hozzáférésünk a Nintendo hálózat ban listájához, szóval nem fogsz az maradni. De vannak szabályok amiket ha nem követsz akkor az bannolást okozhat.", From 62620911fcc1d3b421df15e4d0c683d59894ee28 Mon Sep 17 00:00:00 2001 From: Viktor Varga Date: Wed, 18 Jun 2025 15:16:55 +0200 Subject: [PATCH 057/214] locales(update): Updated Hungarian locale Co-authored-by: Viktor Varga --- locales/hu_HU.json | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/locales/hu_HU.json b/locales/hu_HU.json index 7459094..342c62d 100644 --- a/locales/hu_HU.json +++ b/locales/hu_HU.json @@ -66,7 +66,7 @@ "answer": "Akkor fogunk új játékokon dolgozni amikor azt érezzük hogy a backend könyvtárunk támogatja, és van egy fejlesztő aki karbantartja. Sok munka megy bele abba hogy stabilizáljuk és befejezzük a meglévő játékokat - Megakarjuk adni a legjobb élményt mielőtt egy új játékra megyünk. Mivel mindig jön új munka, ezért nem tudjuk megmondani mikor lesz ez." }, { - "question": "Működik a Pretendo Cemu-n vagy emulátorokon?", + "question": "Ha van egy emulátorom, az elég a Pretendo használatához?", "answer": "Nem. A könnyebb moderáció és biztonság érdekében, az emulátor használatához szükséged lesz egy valódi konzolra is. Ez lehetővé tesz egy biztosabb rendszert és a szabályok hatékonyabb betartattatását, egy élvezetesebb és megbízhatóbb élmény érdekében." }, { @@ -74,16 +74,20 @@ "question": "Működik a Pretendo a Cemu emulátoron/más emulátorokon?" }, { - "answer": "A legjobb élményért a konzolokon, kell hackelned kell a konzolt - pontosan Aromával a Wii U-hoz és Luma3DS-el a 3DS-hez, de a Wii U-hoz van hackelés nélküli SSSL megoldás de limitált hozzáféréssel. Nézd meg a telepítési lépéseket a leírásért.", + "answer": "A Wii-nek már vannak saját szerverei, amit a Wiimmfi biztosít. Jelenleg nem célozzuk meg a Switch-et, mivel fizetős és teljesen más, mint a Nintendo Network.", "question": "Fogja a Pretendo támogatni a Wii-t/Switch-et?" }, { - "answer": "Nincs hozzáférésünk a Nintendo hálózat ban listájához, szóval nem fogsz az maradni. De vannak szabályok amiket ha nem követsz akkor az bannolást okozhat.", - "question": "Ha bannolva vagyok a Nintendo hálózaton, ugyanúgy bannolva maradok Pretendón?" + "answer": "A legjobb élményért a konzolokon, hackelned kell a konzolod - pontosabban Aromával a Wii U-hoz és Luma3DS-el a 3DS-hez, de a Wii U-hoz van hackelés nélküli SSSL megoldás, de limitált hozzáféréssel. Nézd meg a telepítési lépéseket a leírásért.", + "question": "Szükségem van hackelésre a csatlakozáshoz?" }, { - "question": "Lehet-e csalásokat vagy mod-okat online használni a Pretendo-val?", - "answer": "Csak privát meccseken - a tisztességtelen előny megszerzése vagy az online élmény megzavarása olyan emberekkel, akik nem járultak hozzá (mint a nyilvános meccseken), tiltás alá esik. Rendszeresen alkalmazunk fiók- és konzoltiltiltásokat mind a Wii U, mind a 3DS rendszereken. A Pretendo olyan extra biztonsági intézkedéseket alkalmaz, amelyek hatástalanná teszik a hagyományos „unban” módszereket, mint például a sorozatszám megváltoztatása." + "question": "Ha bannolva vagyok a Nintendo hálózaton, ugyanúgy bannolva maradok Pretendón?", + "answer": "Nincs hozzáférésünk a Nintendo hálózat ban listájához, szóval nem fogsz az maradni. De vannak szabályok amiket ha nem követsz akkor az bannolást okozhat." + }, + { + "answer": "Csak privát meccseken - a tisztességtelen előny megszerzése vagy az online élmény megzavarása olyan emberekkel, akik nem járultak hozzá (mint a nyilvános meccseken), tiltás alá esik. Rendszeresen alkalmazunk fiók- és konzoltiltásokat mind a Wii U, mind a 3DS rendszereken. A Pretendo olyan extra biztonsági intézkedéseket alkalmaz, amelyek hatástalanná teszik a hagyományos „unban” módszereket, mint például a sorozatszám megváltoztatása.", + "question": "Lehet-e csalásokat vagy mod-okat online használni a Pretendo-val?" } ] }, @@ -251,7 +255,7 @@ "timezone": "Időzóna", "serverEnv": "Szerver környezet", "production": "Éles", - "hasAccessPrompt": "A jelenlegi csomag hozzáférést at a béta szerverekhez. Király!", + "hasAccessPrompt": "A jelenlegi csomag hozzáférést ad a béta szerverekhez. Király!", "signInSecurity": "Bejelentkezés és biztonság", "email": "Email", "password": "Jelszó", @@ -286,7 +290,7 @@ }, "upgrade": { "title": "Bővítés", - "unsubPrompt": "Biztos, hogy le szeretnél iratkozni a tiername csomagról? El fogod veszíteni a hozzáférést az ehhez a csomaghoz kapcsolódó cuccokhoz.", + "unsubPrompt": "Biztos, hogy le szeretnél iratkozni a tiername csomagról? Azonnal el fogod veszíteni a hozzáférést az ehhez a csomaghoz kapcsolódó cuccokhoz.", "changeTier": "Csomag módosítása", "description": "Ha havi cél elérése a Pretendo-t teljes munkaidős munkává teszi, ez jobb minőségű frissítéseket és nagyobb fejlesztési sebességet biztosít.", "month": "hónap", From 4561acbb50d0520f000aaadc9ab7136554b7ca2f Mon Sep 17 00:00:00 2001 From: Dynamic Error Date: Wed, 18 Jun 2025 15:16:55 +0200 Subject: [PATCH 058/214] locales(update): Updated Italian locale Co-authored-by: Dynamic Error --- locales/it_IT.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/it_IT.json b/locales/it_IT.json index 3908cd4..49ba587 100644 --- a/locales/it_IT.json +++ b/locales/it_IT.json @@ -18,7 +18,7 @@ "about": "Riguardo al progetto", "faq": "Domande frequenti", "blog": "I nostri ultimi aggiornamenti, sintetizzati", - "progress": "Controlla lo stato di avanzamento del progetto e gli obiettivi" + "progress": "Controlla lo stato del progetto e gli obiettivi" } } }, @@ -58,7 +58,7 @@ "answer": "Per iniziare con Pretendo Network su 3DS, Wii U o emulatori, vedi le nostre istruzioni di configurazione!" }, { - "question": "Sapete quando una determinata funzionalità/servizio sarà pronta/o?", + "question": "Sapete quando una/un determinata/o funzionalità/servizio sarà pronta/o?", "answer": "No. Molte delle funzionalità/servizi di Pretendo sono sviluppate indipendentemente (per esempio, uno sviluppatore potrebbe lavorare su Miiverse mentre un altro sta lavorando su Account e Amici) e per questo non possiamo fornire una stima del tempo mancante al completamento." }, { From dcbd30485288b8f872430f3fc8c60dd94cccd456 Mon Sep 17 00:00:00 2001 From: ash Date: Wed, 18 Jun 2025 15:16:56 +0200 Subject: [PATCH 059/214] locales(update): Updated Italian locale Co-authored-by: ash --- locales/it_IT.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/it_IT.json b/locales/it_IT.json index 49ba587..127d547 100644 --- a/locales/it_IT.json +++ b/locales/it_IT.json @@ -58,7 +58,7 @@ "answer": "Per iniziare con Pretendo Network su 3DS, Wii U o emulatori, vedi le nostre istruzioni di configurazione!" }, { - "question": "Sapete quando una/un determinata/o funzionalità/servizio sarà pronta/o?", + "question": "Tra quanto tempo sarà pronta questa funzionalità/servizio?", "answer": "No. Molte delle funzionalità/servizi di Pretendo sono sviluppate indipendentemente (per esempio, uno sviluppatore potrebbe lavorare su Miiverse mentre un altro sta lavorando su Account e Amici) e per questo non possiamo fornire una stima del tempo mancante al completamento." }, { @@ -67,7 +67,7 @@ }, { "question": "Se sono bannato su Nintendo Network, rimarrò bannato quando userò Pretendo?", - "answer": "Noi non avremo accesso alla lista degli utenti bannati da Nintendo Network, quindi quegli utenti non saranno bannati sul nostro servizio. Ci saranno comunque regole da seguire mentre si usa il servizio, e il mancato rispetto di queste regole potrebbe portare a un ban." + "answer": "No. Per scopi di sicurezza e moderazione, per usare un emulatore hai comunque bisogno di una console reale. Questo ci permette di migliorare la sicurezza e di applicare meglio le regole al fine di fornire un'esperienza sicura e piacevole con il nostro servizio." }, { "question": "Pretendo supporterà la Wii/Switch?", From 6201bd71d9e73c5c2f379eb1d33297165a15d942 Mon Sep 17 00:00:00 2001 From: Christian Date: Wed, 18 Jun 2025 15:16:56 +0200 Subject: [PATCH 060/214] locales(update): Updated Italian locale locales(update): Updated Italian locale Co-authored-by: Christian --- locales/it_IT.json | 122 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 117 insertions(+), 5 deletions(-) diff --git a/locales/it_IT.json b/locales/it_IT.json index 127d547..30c6101 100644 --- a/locales/it_IT.json +++ b/locales/it_IT.json @@ -66,7 +66,7 @@ "answer": "Pretendo supporta qualsiasi client in grado di connettersi a Nintendo Network. Al momento l'unico emulatore con questa capacità è Cemu. Cemu 2.0 supporta ufficialmente Pretendo nelle opzioni dell'account di rete dell'emulatore. Per informazioni su come impostare Pretendo su Cemu, visita la documentazione.
    Citra non supporta le funzionalità di gioco online reali, quindi non funziona con Pretendo; inoltre, non mostra segni di poter funzionare in futuro. Mikage, un emulatore di 3DS per dispositivi mobili, potrebbe fornire supporto in futuro, ma questo è tutt'altro che certo." }, { - "question": "Se sono bannato su Nintendo Network, rimarrò bannato quando userò Pretendo?", + "question": "Pretendo funziona su Cemu/emulatori?", "answer": "No. Per scopi di sicurezza e moderazione, per usare un emulatore hai comunque bisogno di una console reale. Questo ci permette di migliorare la sicurezza e di applicare meglio le regole al fine di fornire un'esperienza sicura e piacevole con il nostro servizio." }, { @@ -120,13 +120,14 @@ { "name": "Jemma (CaramelKat)", "picture": "https://github.com/caramelkat.png", - "github": "https://github.com/CaramelKat" + "github": "https://github.com/CaramelKat", + "caption": "Ricercatore e sviluppo di Miiverse" }, { "picture": "https://github.com/ashquarky.png", "github": "https://github.com/ashquarky", "name": "quarky", - "caption": "Ricerca e sviluppo di patch della Wii U" + "caption": "Ricercatore e sviluppo delle patch per Wii U" }, { "name": "SuperMarioDaBom", @@ -152,13 +153,121 @@ "caption": "Preservazionista e architettura server" }, { - "name": "DaniElectra" + "name": "DaniElectra", + "picture": "https://github.com/danielectra.png", + "github": "https://github.com/DaniElectra" + }, + { + "picture": "https://github.com/hauntii.png", + "name": "niko", + "caption": "Sviluppo dei server e web", + "github": "https://github.com/hauntii" + }, + { + "picture": "https://github.com/MatthewL246.png", + "github": "https://github.com/MatthewL246", + "name": "MatthewL246" + }, + { + "name": "wolfendale", + "picture": "https://github.com/wolfendale.png", + "github": "https://github.com/wolfendale" + }, + { + "github": "https://github.com/TraceEntertains", + "name": "TraceEntertains", + "caption": "Sviluppo patch 3DS e ricerca", + "picture": "https://github.com/TraceEntertains.png" } ] }, "specialThanks": { "title": "Ringraziamenti speciali", - "text": "Senza di loro, Pretendo non sarebbe dove è oggi." + "text": "Senza di loro, Pretendo non sarebbe dove è oggi.", + "people": [ + { + "caption": "Localizzazioni e altri contributi", + "name": "Contributori GitHub", + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", + "github": "https://github.com/PretendoNetwork" + }, + { + "github": "https://github.com/superwhiskers", + "name": "superwhiskers", + "caption": "Sviluppo libreria crunch", + "picture": "https://github.com/superwhiskers.png" + }, + { + "name": "Stary", + "picture": "https://github.com/Stary2001.png", + "github": "https://github.com/Stary2001" + }, + { + "picture": "https://github.com/rverseTeam.png", + "github": "https://twitter.com/rverseClub", + "name": "rverse" + }, + { + "picture": "https://cdn.discordapp.com/avatars/186572995848830987/b55c0d4e7bfd792edf0689f83a25d8ea.png?size=128", + "github": "https://github.com/Kinnay", + "special": "Ringraziamenti speciali", + "name": "Kinnay" + }, + { + "name": "NinStar", + "caption": "Icone per lo Studio Mii e reazioni Juxt", + "picture": "https://github.com/ninstar.png", + "github": "https://github.com/ninstar" + }, + { + "caption": "Ricerca console e server di gioco", + "picture": "https://github.com/EpicUsername12.png", + "github": "https://github.com/EpicUsername12", + "name": "Rambo6Glaz" + }, + { + "picture": "https://github.com/GaryOderNichts.png", + "github": "https://github.com/GaryOderNichts", + "name": "GaryOderNichts", + "caption": "Sviluppo patch Wii U" + }, + { + "name": "zaksabeast", + "caption": "Creatore patch 3DS", + "picture": "https://cdn.discordapp.com/avatars/219324395707957248/c62573fbd4d26c8b4724f54413df6960.png?size=128", + "github": "https://github.com/zaksabeast" + }, + { + "picture": "https://github.com/mrjvs.png", + "name": "mrjvs", + "caption": "Architettura server", + "github": "https://github.com/mrjvs" + }, + { + "picture": "https://github.com/binaryoverload.png", + "github": "https://github.com/binaryoverload", + "name": "binaryoverload", + "caption": "Architettura server" + }, + { + "name": "Simonx22", + "caption": "Rotazioni di Splatoon e ricerca", + "picture": "https://github.com/Simonx22.png", + "github": "https://github.com/Simonx22" + }, + { + "name": "OatmealDome", + "caption": "Rotazioni di Splatoon e ricerca", + "picture": "https://github.com/OatmealDome.png", + "github": "https://github.com/OatmealDome" + }, + { + "name": "Contributori GitHub", + "caption": "Localizzazioni e altri contributi", + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", + "github": "https://github.com/PretendoNetwork" + } + ] }, "discordJoin": { "title": "Tieniti aggiornato", @@ -331,5 +440,8 @@ "donation": { "progress": "$${totd} di $${goald}/mese, ${perc}% del goal mensile.", "upgradePush": "Per diventare un abbonato e accedere a ricompense speciali, visita la pagina per fare l'upgrade." + }, + "notfound": { + "description": "Oops! Non siamo riusciti a trovare questa pagina." } } From bba231b14875caa857e1dadeac6af91a32648e77 Mon Sep 17 00:00:00 2001 From: ash Date: Wed, 18 Jun 2025 15:16:56 +0200 Subject: [PATCH 061/214] locales(update): Updated Italian locale Co-authored-by: ash --- locales/it_IT.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/locales/it_IT.json b/locales/it_IT.json index 30c6101..fe69404 100644 --- a/locales/it_IT.json +++ b/locales/it_IT.json @@ -66,7 +66,7 @@ "answer": "Pretendo supporta qualsiasi client in grado di connettersi a Nintendo Network. Al momento l'unico emulatore con questa capacità è Cemu. Cemu 2.0 supporta ufficialmente Pretendo nelle opzioni dell'account di rete dell'emulatore. Per informazioni su come impostare Pretendo su Cemu, visita la documentazione.
    Citra non supporta le funzionalità di gioco online reali, quindi non funziona con Pretendo; inoltre, non mostra segni di poter funzionare in futuro. Mikage, un emulatore di 3DS per dispositivi mobili, potrebbe fornire supporto in futuro, ma questo è tutt'altro che certo." }, { - "question": "Pretendo funziona su Cemu/emulatori?", + "question": "Se utilizzo un emulatore, sarà sufficiente per utilizzare Pretendo?", "answer": "No. Per scopi di sicurezza e moderazione, per usare un emulatore hai comunque bisogno di una console reale. Questo ci permette di migliorare la sicurezza e di applicare meglio le regole al fine di fornire un'esperienza sicura e piacevole con il nostro servizio." }, { @@ -75,10 +75,10 @@ }, { "question": "Dovrò modificare la mia console per connettermi?", - "answer": "Sì, dovrai modificare il tuo dispositivo per connetterti; tuttavia, sulla Wii U è sufficiente poter accedere all'Homebrew Launcher (via Haxchi, Coldboot Haxchi, o anche solo l'exploit web per browser). Informazioni su come connettersi su 3DS saranno fornite in futuro." + "answer": "Esistono già server custom per la Wii, forniti da Wiimmfi. Per quanto riguarda la Switch, non rientra nei nostri piani attuali, poiché i suoi servizi sono a pagamento e completamente diversi da quelli del Nintendo Network." }, { - "question": "Se sono bannato su Nintendo Network, rimarrò bannato quando userò Pretendo?" + "question": "Dovrò moddare la console per connettermi?" }, { "answer": "Solo in partite private - ottenere vantaggi sleali o compromettere l'esperienza di gioco online senza il permesso dei partecipanti (e in partite pubbliche) è sanzionabile con un ban. Banniamo regolarmente account e console su entrambe le piattaforme Wii U e 3DS. Pretendo usa misure di sicurezza aggiuntive con lo scopo di rendere i tradizionali metodi 'unban' inefficaci, ad esempio cambiando il codice seriale della console.", From 86280be25e12961a32ea5510398597d4d9a15b67 Mon Sep 17 00:00:00 2001 From: almi05 Date: Wed, 18 Jun 2025 15:16:56 +0200 Subject: [PATCH 062/214] locales(update): Updated Italian locale locales(update): Updated Italian locale locales(update): Updated Italian locale Co-authored-by: almi05 --- locales/it_IT.json | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/locales/it_IT.json b/locales/it_IT.json index fe69404..ee49e8d 100644 --- a/locales/it_IT.json +++ b/locales/it_IT.json @@ -78,14 +78,16 @@ "answer": "Esistono già server custom per la Wii, forniti da Wiimmfi. Per quanto riguarda la Switch, non rientra nei nostri piani attuali, poiché i suoi servizi sono a pagamento e completamente diversi da quelli del Nintendo Network." }, { - "question": "Dovrò moddare la console per connettermi?" + "question": "Dovrò moddare la console per connettermi?", + "answer": "Per la migliore esperienza sulle console, dovrai installare un custom firmaware (CFW) - in particolare con Aroma su Wii U e Luma3DS su 3DS. Tuttavia, su Wii U, puoi utilizzare il metodo SSSL, senza modifiche ma con funzionalità limitate. Consulta la nostra guida all'installazione per maggiori dettagli." }, { "answer": "Solo in partite private - ottenere vantaggi sleali o compromettere l'esperienza di gioco online senza il permesso dei partecipanti (e in partite pubbliche) è sanzionabile con un ban. Banniamo regolarmente account e console su entrambe le piattaforme Wii U e 3DS. Pretendo usa misure di sicurezza aggiuntive con lo scopo di rendere i tradizionali metodi 'unban' inefficaci, ad esempio cambiando il codice seriale della console.", "question": "Posso usare trucchi o mods online con Pretendo?" }, { - "question": "Posso usare cheat o mod online con Pretendo?" + "question": "Posso usare cheat o mod online con Pretendo?", + "answer": "Soltanto nei match privati - ottenere un vantaggio ingiusto o rovinare l'esperienza online con persone che non sono d'accordo (ad esempio nei match pubblici) è un'infrazione punibile con un ban. Banniamo regolarmente account e console sia su Wii U che su 3DS. Pretendo usa misure di sicurezza aggiuntive che rendono inefficaci i metodi tradizionali di 'unban', come cambiare il proprio numero di serie." } ] }, @@ -144,7 +146,8 @@ { "name": "Shutterbug2000", "picture": "https://cdn.discordapp.com/avatars/191370953807233024/0311b61e2009c1576828dd2e9a59d72e.png?size=128", - "github": "https://github.com/shutterbug2000" + "github": "https://github.com/shutterbug2000", + "caption": "Ricerca dei sistemi e sviluppo del server" }, { "picture": "https://github.com/InternalLoss.png", From 6b839dc54db7f0bbe0708a637700ed92eca5f0ac Mon Sep 17 00:00:00 2001 From: ash Date: Wed, 18 Jun 2025 15:16:56 +0200 Subject: [PATCH 063/214] locales(update): Updated Italian locale Co-authored-by: ash --- locales/it_IT.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/it_IT.json b/locales/it_IT.json index ee49e8d..0165880 100644 --- a/locales/it_IT.json +++ b/locales/it_IT.json @@ -79,7 +79,7 @@ }, { "question": "Dovrò moddare la console per connettermi?", - "answer": "Per la migliore esperienza sulle console, dovrai installare un custom firmaware (CFW) - in particolare con Aroma su Wii U e Luma3DS su 3DS. Tuttavia, su Wii U, puoi utilizzare il metodo SSSL, senza modifiche ma con funzionalità limitate. Consulta la nostra guida all'installazione per maggiori dettagli." + "answer": "Per la migliore esperienza sulle console, dovrai installare un custom firmware (CFW) - in particolare con Aroma su Wii U e Luma3DS su 3DS. Tuttavia, su Wii U, puoi utilizzare il metodo SSSL, senza modifiche ma con funzionalità limitate. Consulta la nostra guida all'installazione per maggiori dettagli." }, { "answer": "Solo in partite private - ottenere vantaggi sleali o compromettere l'esperienza di gioco online senza il permesso dei partecipanti (e in partite pubbliche) è sanzionabile con un ban. Banniamo regolarmente account e console su entrambe le piattaforme Wii U e 3DS. Pretendo usa misure di sicurezza aggiuntive con lo scopo di rendere i tradizionali metodi 'unban' inefficaci, ad esempio cambiando il codice seriale della console.", From f183c0a9219b53b206910abdb0df9021cef2484e Mon Sep 17 00:00:00 2001 From: Fran Cesca Date: Wed, 18 Jun 2025 15:16:56 +0200 Subject: [PATCH 064/214] locales(update): Updated Italian locale Co-authored-by: Fran Cesca --- locales/it_IT.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/it_IT.json b/locales/it_IT.json index 0165880..a45bb38 100644 --- a/locales/it_IT.json +++ b/locales/it_IT.json @@ -83,7 +83,7 @@ }, { "answer": "Solo in partite private - ottenere vantaggi sleali o compromettere l'esperienza di gioco online senza il permesso dei partecipanti (e in partite pubbliche) è sanzionabile con un ban. Banniamo regolarmente account e console su entrambe le piattaforme Wii U e 3DS. Pretendo usa misure di sicurezza aggiuntive con lo scopo di rendere i tradizionali metodi 'unban' inefficaci, ad esempio cambiando il codice seriale della console.", - "question": "Posso usare trucchi o mods online con Pretendo?" + "question": "Se sono stato bannato sul Nintendo Network, rimarrò bannato anche da Pretendo?" }, { "question": "Posso usare cheat o mod online con Pretendo?", From 662ada89e9f9cbefb73b26dd482ec9b06ad0e8a3 Mon Sep 17 00:00:00 2001 From: ash Date: Wed, 18 Jun 2025 15:16:56 +0200 Subject: [PATCH 065/214] locales(update): Updated Italian locale Co-authored-by: ash --- locales/it_IT.json | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/locales/it_IT.json b/locales/it_IT.json index a45bb38..eeedff1 100644 --- a/locales/it_IT.json +++ b/locales/it_IT.json @@ -63,18 +63,18 @@ }, { "question": "Quando saranno aggiunti più giochi?", - "answer": "Pretendo supporta qualsiasi client in grado di connettersi a Nintendo Network. Al momento l'unico emulatore con questa capacità è Cemu. Cemu 2.0 supporta ufficialmente Pretendo nelle opzioni dell'account di rete dell'emulatore. Per informazioni su come impostare Pretendo su Cemu, visita la documentazione.
    Citra non supporta le funzionalità di gioco online reali, quindi non funziona con Pretendo; inoltre, non mostra segni di poter funzionare in futuro. Mikage, un emulatore di 3DS per dispositivi mobili, potrebbe fornire supporto in futuro, ma questo è tutt'altro che certo." + "answer": "Lavoriamo su giochi nuovi quando sentiamo che le nostre librerie backend siano pronte per supportarli e c'è tempo di sviluppo a disposizione per mantenerli. Gran parte del nostro lavoro consiste nel rendere stabili e completi i nostri giochi esistenti - vogliamo offrire la miglior esperienza possibile in quelli prima di passare a nuovi titoli. Poiché nuovi lavori sorgono costantemente, non possiamo fare alcuna stima di quando ciò potrebbe accadere." }, { "question": "Se utilizzo un emulatore, sarà sufficiente per utilizzare Pretendo?", "answer": "No. Per scopi di sicurezza e moderazione, per usare un emulatore hai comunque bisogno di una console reale. Questo ci permette di migliorare la sicurezza e di applicare meglio le regole al fine di fornire un'esperienza sicura e piacevole con il nostro servizio." }, { - "question": "Pretendo supporterà la Wii/Switch?", - "answer": "La Wii dispone già di server custom forniti da Wiimmfi. Al momento non abbiamo intenzione di supportare la Switch poiché il suo servizio online è a pagamento e completamente diverso da Nintendo Network." + "question": "Pretendo funziona su Cemu/emulatori?", + "answer": "Cemu 2.1 supporta ufficialmente Pretendo nelle opzioni del tuo account di rete nell'emulatore. Per ulteriori informazioni su Cemu, dai un'occhiata alla documentazione. Alcuni emulatori 3DS o loro fork potrebbero supportarci, ma non abbiamo nessuna raccomandazione ufficiale o istruzioni di configurazione in questo momento. Le ultime versioni di Citra non supportano pretendo." }, { - "question": "Dovrò modificare la mia console per connettermi?", + "question": "Pretendo supporterà la Wii/Switch?", "answer": "Esistono già server custom per la Wii, forniti da Wiimmfi. Per quanto riguarda la Switch, non rientra nei nostri piani attuali, poiché i suoi servizi sono a pagamento e completamente diversi da quelli del Nintendo Network." }, { @@ -82,12 +82,12 @@ "answer": "Per la migliore esperienza sulle console, dovrai installare un custom firmware (CFW) - in particolare con Aroma su Wii U e Luma3DS su 3DS. Tuttavia, su Wii U, puoi utilizzare il metodo SSSL, senza modifiche ma con funzionalità limitate. Consulta la nostra guida all'installazione per maggiori dettagli." }, { - "answer": "Solo in partite private - ottenere vantaggi sleali o compromettere l'esperienza di gioco online senza il permesso dei partecipanti (e in partite pubbliche) è sanzionabile con un ban. Banniamo regolarmente account e console su entrambe le piattaforme Wii U e 3DS. Pretendo usa misure di sicurezza aggiuntive con lo scopo di rendere i tradizionali metodi 'unban' inefficaci, ad esempio cambiando il codice seriale della console.", + "answer": "Non abbiamo accesso alla lista dei ban di Nintendo Network, quindi non sarai bannato automaticamente. Tuttavia, abbiamo regole da seguire per l'utilizzo del servizio e non rispettarle potrebbe comportare in un ban.", "question": "Se sono stato bannato sul Nintendo Network, rimarrò bannato anche da Pretendo?" }, { "question": "Posso usare cheat o mod online con Pretendo?", - "answer": "Soltanto nei match privati - ottenere un vantaggio ingiusto o rovinare l'esperienza online con persone che non sono d'accordo (ad esempio nei match pubblici) è un'infrazione punibile con un ban. Banniamo regolarmente account e console sia su Wii U che su 3DS. Pretendo usa misure di sicurezza aggiuntive che rendono inefficaci i metodi tradizionali di 'unban', come cambiare il proprio numero di serie." + "answer": "Soltanto nei match privati - ottenere un vantaggio ingiusto o rovinare l'esperienza online con persone che non hanno acconsentito (ad esempio nei match pubblici) è un'infrazione punibile con un ban. Banniamo regolarmente account e console sia su Wii U che su 3DS. Pretendo usa misure di sicurezza aggiuntive che rendono inefficaci i metodi tradizionali di evasione dei ban come cambiare il proprio numero di serie." } ] }, @@ -158,7 +158,8 @@ { "name": "DaniElectra", "picture": "https://github.com/danielectra.png", - "github": "https://github.com/DaniElectra" + "github": "https://github.com/DaniElectra", + "caption": "Ricerca sui sistemi e sviluppo server" }, { "picture": "https://github.com/hauntii.png", @@ -169,12 +170,14 @@ { "picture": "https://github.com/MatthewL246.png", "github": "https://github.com/MatthewL246", - "name": "MatthewL246" + "name": "MatthewL246", + "caption": "DevOps e lavoro nella community" }, { "name": "wolfendale", "picture": "https://github.com/wolfendale.png", - "github": "https://github.com/wolfendale" + "github": "https://github.com/wolfendale", + "caption": "Sviluppo e ottimizzazione dei server" }, { "github": "https://github.com/TraceEntertains", @@ -203,18 +206,21 @@ { "name": "Stary", "picture": "https://github.com/Stary2001.png", - "github": "https://github.com/Stary2001" + "github": "https://github.com/Stary2001", + "caption": "Sviluppo 3DS e del dissettore NEX" }, { "picture": "https://github.com/rverseTeam.png", "github": "https://twitter.com/rverseClub", - "name": "rverse" + "name": "rverse", + "caption": "Condivisione di informazioni riguardo Miiverse" }, { "picture": "https://cdn.discordapp.com/avatars/186572995848830987/b55c0d4e7bfd792edf0689f83a25d8ea.png?size=128", "github": "https://github.com/Kinnay", "special": "Ringraziamenti speciali", - "name": "Kinnay" + "name": "Kinnay", + "caption": "Ricerca sulle strutture dati Nintendo" }, { "name": "NinStar", @@ -299,7 +305,8 @@ "Il tema principale di Super Mario World 2 - Yoshi's Island è un bop assurdo e non riuscirai mai a convincermi del contrario.", "I miei titoli preferiti per Nintendo Switch sono Nintendo Switch Online + Pacchetto aggiuntivo, Nintendo Switch Online + Rumble Pak, Nintendo Switch Online + Pacchetto gioco offline, Nintendo Switch Online + Pacchetto l'ennesima port e Nintendo Switch Online + Pacchetto Brain Training del Dr. Kawashima: Quanti anni ha il tuo cervello? \"Il titolo Virtual Console per Wii U vi è piaciuto così tanto che abbiamo deciso di rimetterlo in vendita.", "Tipo \"Conosci Ash, Dio benedica la sua anima, dice UwU tutto il giorno\" è il modo del sud degli Stati Uniti per dire \"Ash dice uwu costantemente ed è molto strano e stupido e vorrei tanto che non lo facesse\"", - "Il mio primo video sul mio canale!! voglio fare video da un sacco di tempo ma il mio laptop era lento e non riuscivo a far andare fraps, skype e minecraft insieme. ma ora non più! il mio maestro di informatica mi ha aiutato e il mio laptop va molto più veloce e ora riesco a registrare! spero che vi piaccia e se si per favore mettete like e iscrivetevi!!!" + "Il mio primo video sul mio canale!! voglio fare video da un sacco di tempo ma il mio laptop era lento e non riuscivo a far andare fraps, skype e minecraft insieme. ma ora non più! il mio maestro di informatica mi ha aiutato e il mio laptop va molto più veloce e ora riesco a registrare! spero che vi piaccia e se si per favore mettete like e iscrivetevi!!!", + "Mi sembra a posto" ] }, "progressPage": { From 6399a358fc1f80e430646e507fb33682f9ee001e Mon Sep 17 00:00:00 2001 From: funta Date: Wed, 18 Jun 2025 15:16:57 +0200 Subject: [PATCH 066/214] locales(update): Updated Russian locale locales(update): Updated Russian locale Co-authored-by: funta --- locales/ru_RU.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/ru_RU.json b/locales/ru_RU.json index 21db0b9..c270c36 100644 --- a/locales/ru_RU.json +++ b/locales/ru_RU.json @@ -124,7 +124,7 @@ "Webkit v537 - лучшая версия Webkit для Wii U. Нет, мы не будет портировать Chrome на Wii U.", "Не могу дождаться пока на часах не будет 03:14:08 UTC , 19 января 2038 года!", "Wii U на самом деле - недооценённая система: рекламы были ужасными, но сама консоль - замечательная. Эм? Подождите секунду... Я не уверен почему мой геймпад не подключается к моей Wii.", - "Главная музыкальная тема Super Mario World 2 - Yoshi's Island , просто бомба! Ты не можешь доказать мне обратное.", + "Главная музыкальная тема Super Mario World 2 - Yoshi's Island , просто бомба! Смирись.", "Мои любимые релизы на Nintendo Switch были - Nintendo Switch Online + Expansion Pack, Nintendo Switch Online + Rumble Pak, Nintendo Switch Online + Offline Play Pack, Nintendo Switch Online + Еще Один Порт Игр Pack, and Nintendo Switch Online + Dr. Kawashima's Brain Training / Brain Age \"Вам Действительно Понравился Nintendo Wii U Virtual Console Игры, Так Что Мы Их возвращаем\" Pack. Ты с уверенностью можешь сказать что Nintendo точно заботится о нас.", "Например, \"Знаешь, Эш, благослови её сердце, она весь день занимается UwU\" - это южный приятный способ сказать \"Эш занимается UwU всё время, и это очень странно и глупо, и я бы хотел, чтобы они этого не делали\"", "Мой первый видеоролик на моём канале! Я хотел сделать видео уже очень давно, но мой ноутбук работал очень плохо и я не мог открыть фрапс , скайп и майнкрафт одновременно. Но теперь этому конец! Благодаря моему учителю по информатике мой ноутбук стал быстрым и теперь я могу снимать ролики! Я надеюсь вам понравится ставьте лайк и подписывайтесь на канал!" @@ -236,7 +236,7 @@ ] }, "search": { - "caption": "Введите его в графу чтобы получить больше информации об ошибке!", + "caption": "Введите код ошибки здесь, чтобы получить больше информации об ошибке!", "label": "Код ошибки", "no_match": "Ничего не найдено", "title": "Получили код ошибки?" From 5dc227bbfa44ef5c83272093baef1b3bd97553a7 Mon Sep 17 00:00:00 2001 From: Dimitri A Date: Wed, 18 Jun 2025 15:16:57 +0200 Subject: [PATCH 067/214] locales(update): Updated Russian locale Co-authored-by: Dimitri A --- locales/ru_RU.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/ru_RU.json b/locales/ru_RU.json index c270c36..a65edf2 100644 --- a/locales/ru_RU.json +++ b/locales/ru_RU.json @@ -92,7 +92,7 @@ "text": "Ознакомьтесь с командой, которая работает над разработкой Pretendo", "people": [ { - "caption": "Владелец проекта и ведущий разработчик" + "caption": "Руководитель проекта и гл. разработчик" } ] }, From be8568b0ba4109632370319c48405ed6e123e3ca Mon Sep 17 00:00:00 2001 From: Fermi Date: Wed, 18 Jun 2025 15:16:57 +0200 Subject: [PATCH 068/214] locales(update): Updated German locale Co-authored-by: Fermi --- locales/de_DE.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/de_DE.json b/locales/de_DE.json index becb598..183b617 100644 --- a/locales/de_DE.json +++ b/locales/de_DE.json @@ -189,7 +189,7 @@ }, "specialThanks": { "title": "Besonderer Dank", - "text": "Ohne sie wäre Pretendo nicht, wo es heute ist.", + "text": "Ohne sie wäre Pretendo nicht da, wo es heute ist.", "people": [ { "name": "GitHub-Mitwirkende", From 0e9e28f35c17d94390cd331e1d5f68ec9e338ef8 Mon Sep 17 00:00:00 2001 From: ErdbeerbaerLP Date: Wed, 18 Jun 2025 15:16:57 +0200 Subject: [PATCH 069/214] locales(update): Updated German locale Co-authored-by: ErdbeerbaerLP --- locales/de_DE.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/de_DE.json b/locales/de_DE.json index 183b617..b56d78e 100644 --- a/locales/de_DE.json +++ b/locales/de_DE.json @@ -79,7 +79,7 @@ }, { "question": "Wenn ich auf dem Nintendo Network gebannt bin, heißt das auch das ich auf Pretendo gebannt bin?", - "answer": "Für das beste Erlebnis auf Konsolen musst du dein System hacken – speziell Aroma für die Wii U und Luma3DS für den 3DS. Auf der Wii U ist jedoch auch die hackfreie SSSL-Methode mit eingeschränkter Funktionalität verfügbar. Sieh dir unsere Einrichtungsanleitung für Details an." + "answer": "Wir haben keinen Zugriff auf die Bannliste des Nintendo Network, daher sind keine Nintendo Network Nutzer gebannt. Allerdings haben wir Regeln, die bei der Nutzung des Dienstes befolgt werden müssen, und die Nichteinhaltung dieser Regeln kann zu einem Bann führen." }, { "question": "Kann ich Cheats oder Mods online mit Pretendo verwenden?", From 9c8a80c4ae7736d5c43e0fb8c4807a518bfc2632 Mon Sep 17 00:00:00 2001 From: Jan Klass Date: Wed, 18 Jun 2025 15:16:57 +0200 Subject: [PATCH 070/214] locales(update): Updated German locale Co-authored-by: Jan Klass --- locales/de_DE.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/de_DE.json b/locales/de_DE.json index b56d78e..4467105 100644 --- a/locales/de_DE.json +++ b/locales/de_DE.json @@ -117,7 +117,7 @@ "picture": "https://github.com/jonbarrow.png", "github": "https://github.com/jonbarrow", "name": "Jonathan Barrow (jonbarrow)", - "caption": "Projektleiter und leitender Entwickler" + "caption": "Projektinhaber und leitender Entwickler" }, { "name": "Jemma (CaramelKat)", From ee89368247794566b7094203812048b1a359dc03 Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Wed, 18 Jun 2025 15:16:57 +0200 Subject: [PATCH 071/214] locales(update): Updated Russian locale Co-authored-by: Vitaly Novichkov --- locales/ru_RU.json | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/locales/ru_RU.json b/locales/ru_RU.json index a65edf2..a6b48a6 100644 --- a/locales/ru_RU.json +++ b/locales/ru_RU.json @@ -93,6 +93,12 @@ "people": [ { "caption": "Руководитель проекта и гл. разработчик" + }, + {}, + {}, + {}, + { + "caption": "Веб-разработка" } ] }, From 3cc42bbc264a9a29b1dd259672595b1b9ea81f32 Mon Sep 17 00:00:00 2001 From: RISC-VLIW Date: Wed, 18 Jun 2025 15:16:57 +0200 Subject: [PATCH 072/214] locales(update): Updated French (Canada) locale Co-authored-by: RISC-VLIW --- locales/fr_CA.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/locales/fr_CA.json b/locales/fr_CA.json index 1086836..458fe87 100644 --- a/locales/fr_CA.json +++ b/locales/fr_CA.json @@ -5,8 +5,10 @@ "account": "Compte", "blog": "Blogue", "accountWidget": { - "settings": "Paramètres" + "settings": "Paramètres", + "logout": "Déconnexion" }, - "docs": "Documentation" + "docs": "Documentation", + "donate": "Faire un don" } } From b6c96bd1144ac75215b9c71b17b700081a1320c3 Mon Sep 17 00:00:00 2001 From: Sasha Girard-Houle Date: Wed, 18 Jun 2025 15:16:58 +0200 Subject: [PATCH 073/214] locales(update): Updated French (Canada) locale Co-authored-by: Sasha Girard-Houle --- locales/fr_CA.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/locales/fr_CA.json b/locales/fr_CA.json index 458fe87..c151495 100644 --- a/locales/fr_CA.json +++ b/locales/fr_CA.json @@ -9,6 +9,7 @@ "logout": "Déconnexion" }, "docs": "Documentation", - "donate": "Faire un don" + "donate": "Faire un don", + "progress": "Progression" } } From 181de218bb86ad6b8893c1d51a85d4c25defa38b Mon Sep 17 00:00:00 2001 From: Dimitri A Date: Wed, 18 Jun 2025 15:16:58 +0200 Subject: [PATCH 074/214] locales(update): Updated French (Canada) locale Co-authored-by: Dimitri A --- locales/fr_CA.json | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/locales/fr_CA.json b/locales/fr_CA.json index c151495..e4acdce 100644 --- a/locales/fr_CA.json +++ b/locales/fr_CA.json @@ -10,6 +10,12 @@ }, "docs": "Documentation", "donate": "Faire un don", - "progress": "Progression" + "progress": "Progression", + "credits": "L'équipe", + "dropdown": { + "captions": { + "about": "À propos du projet" + } + } } } From e9aa9d786143fdc07a443208ca0499cd49e4b468 Mon Sep 17 00:00:00 2001 From: RISC-VLIW Date: Wed, 18 Jun 2025 15:16:58 +0200 Subject: [PATCH 075/214] locales(update): Updated French (Canada) locale Co-authored-by: RISC-VLIW --- locales/fr_CA.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/locales/fr_CA.json b/locales/fr_CA.json index e4acdce..ceedc27 100644 --- a/locales/fr_CA.json +++ b/locales/fr_CA.json @@ -14,7 +14,8 @@ "credits": "L'équipe", "dropdown": { "captions": { - "about": "À propos du projet" + "about": "À propos du projet", + "credits": "Rencontrez l'équipe" } } } From 3a56b42568ab3b3bf405e7d77e9910a2724ebd25 Mon Sep 17 00:00:00 2001 From: Raptor06 Date: Wed, 18 Jun 2025 15:16:58 +0200 Subject: [PATCH 076/214] locales(update): Updated French (Canada) locale Co-authored-by: Raptor06 --- locales/fr_CA.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/locales/fr_CA.json b/locales/fr_CA.json index ceedc27..2b7ccb0 100644 --- a/locales/fr_CA.json +++ b/locales/fr_CA.json @@ -18,5 +18,8 @@ "credits": "Rencontrez l'équipe" } } + }, + "hero": { + "subtitle": "Serveurs de Jeux" } } From c4c1fced8a26ebb2b5a305466aac5bfc0f099346 Mon Sep 17 00:00:00 2001 From: Maksim Date: Wed, 18 Jun 2025 15:16:58 +0200 Subject: [PATCH 077/214] locales(update): Updated Russian locale Co-authored-by: Maksim --- locales/ru_RU.json | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/locales/ru_RU.json b/locales/ru_RU.json index a6b48a6..f6e71ec 100644 --- a/locales/ru_RU.json +++ b/locales/ru_RU.json @@ -96,9 +96,19 @@ }, {}, {}, - {}, + { + "picture": "https://github.com/supermariodabom.png", + "github": "https://github.com/SuperMarioDaBom" + }, { "caption": "Веб-разработка" + }, + { + "caption": "Исследование систем и разработка серверов" + }, + { + "picture": "https://github.com/InternalLoss.png", + "github": "https://github.com/InternalLoss" } ] }, From 8d7bc31d82d34443ee63692f75c85be8a046b37f Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Wed, 18 Jun 2025 15:16:58 +0200 Subject: [PATCH 078/214] locales(update): Updated Russian locale locales(update): Updated Russian locale locales(update): Updated Russian locale Co-authored-by: Vitaly Novichkov --- locales/ru_RU.json | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/locales/ru_RU.json b/locales/ru_RU.json index f6e71ec..94e661d 100644 --- a/locales/ru_RU.json +++ b/locales/ru_RU.json @@ -63,7 +63,7 @@ }, { "question": "Когда Вы добавите больше игр?", - "answer": "Pretendo сделано специально для оборудования Wii U и 3DS; на данный момент единственный эмулятор с поддержкой Nintendo Network является Cemu. Cemu официально не поддерживает неофициальные сервера, однако Pretendo может работать и на Cemu.Pretendo на данный момент не поддерживает Cemu." + "answer": "Мы работаем над новыми играми тогда, когда мы чувствуем, что наши серверные библиотеки достаточно готовы для реализации нужной поддержки, а также при наличии достаточного времени у разработчиков. Большая часть нашей работы приходится на стабилизацию и доработку уже имеющихся у нас игр: мы хотим добиться от них наилучшего результата, прежде чем переходить к следующим. Поскольку новые задачи появляются постоянно, мы не можем спрогнозировать, когда то или это будет сделано." }, { "question": "Если у меня эмулятор, хватит ли этого, чтобы использовать Pretendo?", @@ -71,13 +71,15 @@ }, { "question": "Работает ли Pretendo на Cemu/эмуляторах?", - "answer": "У Wii уже есть неофициальные сервера, под названием Wiimmfi. На данный момент мы не собираемся работать с онлайном Switch, так как сервис платный и кардинально отличается от Nintendo Network." + "answer": "Cemu 2.1 официально поддерживает Pretendo через настройки вашего сетевого профиля на эмуляторе. Чтобы получить информацию о том, как настроить Cemu, проверьте нашу документацию.
    Некоторые 3DS-эмуляторы или различные их ответвления могут поддерживать нас, однако у нас пока что нет никаких официальных рекомендаций или инструкций по настройке. Последние версии Citra не поддерживают Pretendo." }, { "question": "Будет ли Pretendo поддерживать WIi/Switch?", - "answer": "Да, вам понадобится прошить консоль, чтобы подключиться. Однако, на Wii U вам понадобится только доступ к Homebrew Launcher (т.е. Haxchi, Coldboot Haxchi, или web browser exploit). Информация о подключении с 3DS будет опубликована позже." + "answer": "У Wii уже есть неофициальные сервера, под названием Wiimmfi. На данный момент мы не собираемся работать с онлайном Switch, так как сервис платный и кардинально отличается от Nintendo Network." + }, + { + "question": "Нужно ли мне прошивать консоль?" }, - {}, { "question": "Если я забанен на Nintendo Network, буду ли я забанен и на Pretendo тоже?", "answer": "Нет. Все пользователи, которые имеют бан в официальном Nintendo Network, смогут пользоваться Pretendo. Однако, у нас есть свои правила использования, и при их нарушении вы можете получить бан уже на Pretendo." @@ -92,13 +94,19 @@ "text": "Ознакомьтесь с командой, которая работает над разработкой Pretendo", "people": [ { - "caption": "Руководитель проекта и гл. разработчик" + "caption": "Руководитель проекта и гл. разработчик", + "name": "Джонатан Барроу (jonbarrow)" + }, + { + "name": "Джемма (CaramelKat)" + }, + { + "caption": "Исследование Wii U и разработка патчей" }, - {}, - {}, { "picture": "https://github.com/supermariodabom.png", - "github": "https://github.com/SuperMarioDaBom" + "github": "https://github.com/SuperMarioDaBom", + "caption": "Серверная архитектура и исследование систем" }, { "caption": "Веб-разработка" From b170cd43e20bd61037ecc8f6e586d3f5ea432ac9 Mon Sep 17 00:00:00 2001 From: Konaru chan Date: Wed, 18 Jun 2025 15:16:59 +0200 Subject: [PATCH 079/214] locales(update): Updated Spanish locale Co-authored-by: Konaru chan --- locales/es_ES.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index 545b0df..a4b7d12 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -266,7 +266,8 @@ { "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", "github": "https://github.com/PretendoNetwork", - "caption": "Traducciones y otras contribuciones" + "caption": "Traducciones y otras contribuciones", + "name": "Contribuidores de GitHub" } ] }, From 599549a721c256ca741357a6441bb3abc8a1c019 Mon Sep 17 00:00:00 2001 From: Sasha Girard-Houle Date: Wed, 18 Jun 2025 15:16:59 +0200 Subject: [PATCH 080/214] locales(update): Updated French (Canada) locale Co-authored-by: Sasha Girard-Houle --- locales/fr_CA.json | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/locales/fr_CA.json b/locales/fr_CA.json index 2b7ccb0..3958e49 100644 --- a/locales/fr_CA.json +++ b/locales/fr_CA.json @@ -20,6 +20,10 @@ } }, "hero": { - "subtitle": "Serveurs de Jeux" + "subtitle": "Serveurs de Jeux", + "title": "Recréé" + }, + "aboutUs": { + "title": "À propos de nous" } } From ab53f2398b075e4d4cb2659554f786b3f91b12f0 Mon Sep 17 00:00:00 2001 From: Dimitri A Date: Wed, 18 Jun 2025 15:16:59 +0200 Subject: [PATCH 081/214] locales(update): Updated Japanese locale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit locales(update): Updated Norwegian Bokmål locale locales(update): Updated French (Canada) locale Co-authored-by: Dimitri A --- locales/fr_CA.json | 20 ++++++++++++++++++++ locales/ja_JP.json | 3 ++- locales/nb_NO.json | 7 ++++++- 3 files changed, 28 insertions(+), 2 deletions(-) diff --git a/locales/fr_CA.json b/locales/fr_CA.json index 3958e49..14fe5ed 100644 --- a/locales/fr_CA.json +++ b/locales/fr_CA.json @@ -25,5 +25,25 @@ }, "aboutUs": { "title": "À propos de nous" + }, + "blogPage": { + "publishedOn": "le" + }, + "faq": { + "QAs": [ + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + {}, + { + "question": "Puis-je tricher ou utiliser des mods (modifications de jeu) en ligne sur Pretendo?" + } + ] } } diff --git a/locales/ja_JP.json b/locales/ja_JP.json index 53fad33..f0d9833 100644 --- a/locales/ja_JP.json +++ b/locales/ja_JP.json @@ -86,7 +86,8 @@ "answer": "PretendoはニンテンドーネットワークのBAN情報にアクセスすることができないため、PretendoへBANが引き継がれることはありません。ただし、Pretendoの定めたルールに違反するとBANされることがあります。" }, { - "question": "Pretendoに接続中に、チートやモッドを使えますか?" + "question": "Pretendoに接続中に、チートやモッドを使えますか?", + "answer": "フレンドマッチ中なら許可されます。他のプレーヤーの同意なし(世界中の人とプレイ中など)に、不正な利益を得たりオンライン体験を妨害したりする行為は、禁止されており、BAN対象となる場合があります。3DSでもWii Uでもアカウントやゲーム機に対するBAN処分をよくします。Pretendoはシリアル番号の変更など、従来の「BAN」を無効にする改造に対する追加のセキュリティ対策を使用しています。" } ] }, diff --git a/locales/nb_NO.json b/locales/nb_NO.json index 54943b7..7d00030 100644 --- a/locales/nb_NO.json +++ b/locales/nb_NO.json @@ -96,7 +96,12 @@ }, "credits": { "title": "Laget", - "text": "Møt laget bak prosjektet" + "text": "Møt laget bak prosjektet", + "people": [ + { + "caption": "Prosjekteier og hovedutvikler" + } + ] }, "specialThanks": { "title": "Spesiell takk", From e268ab3cafb1348db11539e816aa579fce2d414e Mon Sep 17 00:00:00 2001 From: Antoine Rapin Date: Wed, 18 Jun 2025 15:16:59 +0200 Subject: [PATCH 082/214] locales(update): Updated French (Canada) locale locales(update): Updated French (Canada) locale locales(update): Updated French (Canada) locale Co-authored-by: Antoine Rapin --- locales/fr_CA.json | 69 ++++++++++++++++++++++++++++++++++++---------- 1 file changed, 55 insertions(+), 14 deletions(-) diff --git a/locales/fr_CA.json b/locales/fr_CA.json index 14fe5ed..e73c950 100644 --- a/locales/fr_CA.json +++ b/locales/fr_CA.json @@ -15,35 +15,76 @@ "dropdown": { "captions": { "about": "À propos du projet", - "credits": "Rencontrez l'équipe" + "credits": "Rencontrez l'équipe", + "blog": "Un résumé de nos mises à jour récentes", + "progress": "Vérifiez la progression et les objectifs du projet" } } }, "hero": { "subtitle": "Serveurs de Jeux", - "title": "Recréé" + "title": "Recréé", + "buttons": { + "readMore": "En savoir plus" + } }, "aboutUs": { - "title": "À propos de nous" + "title": "À propos de nous", + "paragraphs": [ + "Pretendo est un projet à code source ouvert qui vise à recréer le Nintendo Network pour la 3DS et la Wii U en utilisant la rétro-ingénierie.", + "Puisque nos services sont gratuits et à code source libre, ils vont exister longtemps." + ] }, "blogPage": { "publishedOn": "le" }, "faq": { "QAs": [ - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, - {}, + { + "question": "C'est quoi, Pretendo?", + "answer": "Pretendo est une alternative au Nintendo Network à code source libre qui vise à créer des serveurs personnalisés pour la famille de consoles Wii U et 3DS. Notre but est de préserver les fonctionnalités internet de ces consoles, afin de permettre aux joueurs de continuer de jouer à leurs jeux Wii U et 3DS préférés à leur plein potentiel." + }, + { + "question": "Est-ce que mon identifiant Nintendo Network fonctionnera avec Pretendo?", + "answer": "Malheureusement, non. Les identifiants du Nintendo Network ne fonctionneront pas avec Pretendo, puisque seul Nintendo détient vos données d'utilisateur. Bien qu'une extraction des données soit techniquement possible, ça serait risqué et nécessiterait des données personelles d'utilisateurs que nous ne voulons pas détenir." + }, + { + "answer": "Afin de commencer l'installation de Pretendo sur 3DS, Wii U ou un émulateur, veuillez consulter notre guide d'installation!" + }, + { + "question": "Savez-vous quand tel service ou telle fonctionnalité sera prêt(e)?", + "answer": "Non. La majorité des fonctionnalités et des services de Pretendo sont développés indépendament (par example, un développeur pourrait être en charge de Miiverse pendant qu'un autre est en charge des Comptes et Amis). Ainsi, nous ne pouvons pas donner une estimation du temps requis pour cela." + }, + { + "question": "Quand allez-vous ajouter d'autres jeux?" + }, + { + "question": "Si j'utilise un émulateur, sera-t-il suffisant pour utiliser Pretendo?" + }, + { + "question": "Est-ce que Pretendo fonctionne sur Cemu ou d'autres émulateurs?", + "answer": "La version 2.1 de Cemu supporte Pretendo sous les paramètres de connexion internet de l'émulateur. Afin d'avoir plus d'information sur l'utilisation de Pretendo avec Cemu, allez-voir la documentation.
    Certains émulateurs 3DS pourraient prendre en charge Pretendo, mais nous n'avons présentement pas de recommendation officielle ou de guides d'installation. La version la plus récente de Citra ne prend pas en charge Pretendo." + }, + { + "answer": "La Wii possède déja des serveurs personnalisés fournis par Wiimmfi. Nous ne voulons présentement pas cibler la Switch, car ses services sont payants et complètements différents du Nintendo Network." + }, + { + "answer": "Pour la meilleure expérience possible sur console, vous aurez besoin de pirater votre système - par exemple, avec Aroma pour la Wii U et Luma3DS pour la 3DS. Cependant, sur Wii U, la méthode sans piratage SSSL est également disponible, mais avec des fonctionnalités limitées. Regardez le guide d'installation pour plus de détails.", + "question": "Devrais-je pirater ma console pour me connecter?" + }, + { + "question": "Si je suis banni du Nintendo Network, vais-je également être banni sur Pretendo?", + "answer": "Nous n'avons pas accès aux bannissements du Nintendo Network, donc aucun utilisateur Nintendo Network sera banni dans Pretendo. Cependant, nous avons des règles à respecter lors de l'utilisation du service. L'infraction d'une règle pourrait mener à un bannissement sur Pretendo." + }, { "question": "Puis-je tricher ou utiliser des mods (modifications de jeu) en ligne sur Pretendo?" } - ] + ], + "title": "Foire Aux Questions", + "text": "Voici quelques questions fréquemment posées." + }, + "progress": { + "githubRepo": "Répertoire Github", + "title": "Progression" } } From cff9c97f6139d7f5fd208944526978b4133fa314 Mon Sep 17 00:00:00 2001 From: Maksim Date: Wed, 18 Jun 2025 15:16:59 +0200 Subject: [PATCH 083/214] locales(update): Updated Russian locale Co-authored-by: Maksim --- locales/ru_RU.json | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) diff --git a/locales/ru_RU.json b/locales/ru_RU.json index 94e661d..7b315da 100644 --- a/locales/ru_RU.json +++ b/locales/ru_RU.json @@ -98,25 +98,38 @@ "name": "Джонатан Барроу (jonbarrow)" }, { - "name": "Джемма (CaramelKat)" + "name": "Джемма (CaramelKat)", + "caption": "Исследование и разработка Miiverse", + "picture": "https://github.com/caramelkat.png", + "github": "https://github.com/CaramelKat" }, { - "caption": "Исследование Wii U и разработка патчей" + "caption": "Исследование Wii U и разработка патчей", + "github": "https://github.com/ashquarky", + "picture": "https://github.com/ashquarky.png" }, { "picture": "https://github.com/supermariodabom.png", "github": "https://github.com/SuperMarioDaBom", - "caption": "Серверная архитектура и исследование систем" + "caption": "Серверная архитектура и исследование систем", + "name": "SuperMarioDaBom" }, { - "caption": "Веб-разработка" + "caption": "Веб-разработка", + "picture": "https://github.com/gitlimes.png", + "github": "https://github.com/gitlimes", + "name": "pinklimes" }, { - "caption": "Исследование систем и разработка серверов" + "caption": "Исследование систем и разработка серверов", + "picture": "https://cdn.discordapp.com/avatars/191370953807233024/0311b61e2009c1576828dd2e9a59d72e.png?size=128", + "name": "Shutterbug2000", + "github": "https://github.com/shutterbug2000" }, { "picture": "https://github.com/InternalLoss.png", - "github": "https://github.com/InternalLoss" + "github": "https://github.com/InternalLoss", + "name": "Billy" } ] }, From f4d13a855401458162179596ad80df177ffeac20 Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 18 Jun 2025 15:16:59 +0200 Subject: [PATCH 084/214] locales(update): Updated Spanish locale Co-authored-by: Chris --- locales/es_ES.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index a4b7d12..007eb2b 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -249,7 +249,8 @@ }, { "picture": "https://github.com/binaryoverload.png", - "github": "https://github.com/binaryoverload" + "github": "https://github.com/binaryoverload", + "caption": "Arquitectura del servidor" }, { "picture": "https://github.com/Simonx22.png", From 5f35a676b05071a4634c99c95171d4d788e9a302 Mon Sep 17 00:00:00 2001 From: himaisogin Date: Wed, 18 Jun 2025 15:16:59 +0200 Subject: [PATCH 085/214] locales(update): Updated Japanese locale Co-authored-by: himaisogin --- locales/ja_JP.json | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/locales/ja_JP.json b/locales/ja_JP.json index f0d9833..92d0e11 100644 --- a/locales/ja_JP.json +++ b/locales/ja_JP.json @@ -182,7 +182,8 @@ { "name": "TraceEntertains", "picture": "https://github.com/TraceEntertains.png", - "github": "https://github.com/TraceEntertains" + "github": "https://github.com/TraceEntertains", + "caption": "3DSのパッチ開発と研究" } ] }, @@ -192,12 +193,15 @@ "people": [ { "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", - "github": "https://github.com/PretendoNetwork" + "github": "https://github.com/PretendoNetwork", + "name": "GitHubでの貢献者", + "caption": "翻訳とその他の貢献" }, { "name": "superwhiskers", "picture": "https://github.com/superwhiskers.png", - "github": "https://github.com/superwhiskers" + "github": "https://github.com/superwhiskers", + "caption": "Crunchのライブラリ開発" }, { "name": "Stary", @@ -208,7 +212,8 @@ { "name": "rverse", "picture": "https://github.com/rverseTeam.png", - "github": "https://twitter.com/rverseClub" + "github": "https://twitter.com/rverseClub", + "caption": "Miiverseの情報共有" }, { "special": "スペシャルサンクス", From e1a3fd7eb7a528101db8deeed4970989c841221a Mon Sep 17 00:00:00 2001 From: testl0 Date: Wed, 18 Jun 2025 15:16:59 +0200 Subject: [PATCH 086/214] locales(update): Updated Japanese locale Co-authored-by: testl0 --- locales/ja_JP.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/ja_JP.json b/locales/ja_JP.json index 92d0e11..5e64b1d 100644 --- a/locales/ja_JP.json +++ b/locales/ja_JP.json @@ -440,7 +440,7 @@ "unsub": "登録を解除", "unsubConfirm": "登録を解除", "tierSelectPrompt": "レベルを選択", - "unsubPrompt": "tiername から退会しますか?そのレベルの特典にアクセスできなくなります。" + "unsubPrompt": "tiername から退会しますか?そのレベルに関連付けられた特典にアクセスできなくなります。" }, "donation": { "progress": "$${totd}/$${goald}(寄付額/目標) ー 月間目標の ${perc}%の寄付を頂いています。", From 3a839ba2c1b1beda1b9ca8663b1d5a034aced593 Mon Sep 17 00:00:00 2001 From: Am Date: Wed, 18 Jun 2025 15:17:00 +0200 Subject: [PATCH 087/214] locales(update): Updated Japanese locale Co-authored-by: Am --- locales/ja_JP.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/ja_JP.json b/locales/ja_JP.json index 5e64b1d..5cccead 100644 --- a/locales/ja_JP.json +++ b/locales/ja_JP.json @@ -66,7 +66,7 @@ "answer": "私たちはバックエンドが新しいゲームをサポートするのに十分で、なおかつ新しいゲームを管理するのに十分な時間のある開発者がいると感じたときのみ新しいゲームのサポートに動きます。ほとんどの労力は既存のゲームのサポートを安定させ、完成させることに行きます。私たちはできるだけ既存のゲームのサポートを良くしてから新しいゲームのサポートを始めます。仕事は常に増えていくので、それがいつになるのかはわかりません。" }, { - "question": "ニンテンドーネットワークでBANされたら、PretendoでもBANされるの?", + "question": "Pretendoはエミュレーターでも使えるの?", "answer": "いいえ。セキュリティーと管理のために、エミュレーターがあっても、ゲーム機本体が必要です。これによって、セキュリティーが強化され、安全で楽しめる体験のためのルールの適用などが効果的になります。" }, { From 0f67b013c069590557df46a82e4fb7f7d12f26aa Mon Sep 17 00:00:00 2001 From: Yessin Iabkrimen Date: Wed, 18 Jun 2025 15:17:00 +0200 Subject: [PATCH 088/214] locales(update): Updated Dutch locale Co-authored-by: Yessin Iabkrimen --- locales/nl_NL.json | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/locales/nl_NL.json b/locales/nl_NL.json index 3a2fbab..a6f8ade 100644 --- a/locales/nl_NL.json +++ b/locales/nl_NL.json @@ -88,7 +88,12 @@ "text": "Ontmoet het team achter het project", "people": [ { - "caption": "Eigenaar en hoofdontwikkelaar" + "caption": "Eigenaar en hoofdontwikkelaar", + "name": "Jonathan Barrow (jonbarrow)" + }, + {}, + { + "caption": "Wii U onderzoek en patch ontwikkeling" } ] }, From 67f938e17c8e12c067575baabf646ff8ae899018 Mon Sep 17 00:00:00 2001 From: Alex Wang Date: Wed, 18 Jun 2025 15:17:00 +0200 Subject: [PATCH 089/214] locales(update): Updated Chinese (Simplified Han script) locale Co-authored-by: Alex Wang --- locales/zh_CN.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/zh_CN.json b/locales/zh_CN.json index ee18917..f65ba95 100644 --- a/locales/zh_CN.json +++ b/locales/zh_CN.json @@ -63,7 +63,7 @@ }, { "question": "什么时候会添加更多游戏?", - "answer": "Pretendo 支持任何可以与任天堂网络交互的客户端。目前唯一具有此功能的模拟器是 Cemu。 Cemu 2.0 在模拟器中的网络帐户选项下已正式支持了 Pretendo。有关开始使用 Cemu 的信息,请查阅文档
    Citra 不支持真正意义上的在线多人联机,因此 Pretendo 在 Citra 上不可用,并且完全没有在未来支持在线多人联机的迹象。Mikage,一款用于移动设备的 3DS 模拟器,可能会在未来支持在线多人联机,尽管这尚不确定。" + "answer": "Pretendo 支持任何可以与任天堂网络交互的客户端。目前唯一具有此功能的模拟器是 Cemu。 Cemu 2.0 在模拟器中的网络帐户选项下已正式支持了 Pretendo。有关开始使用 Cemu 的信息,请查阅文档。Citra 不支持真正意义上的在线多人联机,因此 Pretendo 在 Citra 上不可用,并且完全没有在未来支持在线多人联机的迹象。Mikage,一款用于移动设备的 3DS 模拟器,可能会在未来支持在线多人联机,尽管这尚不确定。" }, { "question": "我只有模拟器,可以使用Pretendo吗?", From a41c073937b25641fd6aa9e973717bd68076f55d Mon Sep 17 00:00:00 2001 From: Florian Gerling Date: Wed, 18 Jun 2025 15:17:00 +0200 Subject: [PATCH 090/214] locales(update): Updated German locale Co-authored-by: Florian Gerling --- locales/de_DE.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/de_DE.json b/locales/de_DE.json index 4467105..c492bc9 100644 --- a/locales/de_DE.json +++ b/locales/de_DE.json @@ -78,7 +78,7 @@ "answer": "Inoffizielle Wii-Server werden bereits von Wiimmfi bereitgestellt. Eine Unterstützung der Switch streben wir nicht an, da es sich um ein gebührenpflichtiges Netzwerk handelt, das sich fundamental vom Nintendo Network unterscheidet." }, { - "question": "Wenn ich auf dem Nintendo Network gebannt bin, heißt das auch das ich auf Pretendo gebannt bin?", + "question": "Werde ich meine Konsole modifizieren müssen, um mich verbinden zu können?", "answer": "Wir haben keinen Zugriff auf die Bannliste des Nintendo Network, daher sind keine Nintendo Network Nutzer gebannt. Allerdings haben wir Regeln, die bei der Nutzung des Dienstes befolgt werden müssen, und die Nichteinhaltung dieser Regeln kann zu einem Bann führen." }, { From 1a4f2d755a5b7d6b35a293f3015e6dab483850ea Mon Sep 17 00:00:00 2001 From: "Weblate (bot)" Date: Tue, 1 Jul 2025 05:45:54 +0200 Subject: [PATCH 091/214] Translations update from Hosted Weblate (#405) * locales(update): Updated English (en@uwu) locale Co-authored-by: Evan Lie * locales(update): Updated English (en@uwu) locale locales(update): Updated English (en@uwu) locale Co-authored-by: Ash Tails * locales(update): Updated English (United Kingdom) locale Co-authored-by: Andi Chandler --------- Co-authored-by: Evan Lie Co-authored-by: Ash Tails Co-authored-by: Andi Chandler --- locales/en@uwu.json | 142 ++++++++++++++++++++++++++++++++++---------- locales/en_GB.json | 9 +-- 2 files changed, 116 insertions(+), 35 deletions(-) diff --git a/locales/en@uwu.json b/locales/en@uwu.json index aae7742..437a1d2 100644 --- a/locales/en@uwu.json +++ b/locales/en@uwu.json @@ -64,25 +64,29 @@ "question": "eta wen 4 gaem??", "answer": "pretender workz on gaem when librari cn hold it, w_w dey maek gaem STABEL b4 addin new gaem! nuu ETA!!!!" }, + { + "question": "doez faek gaemr cod3 enough for pretender?", + "answer": "naaaaa! 4 da safe-t n secur1-t da emelater gamerz n33d da real gamerz system ;3 dis is to smack if no u foll0w DA RULEZ!" + }, { "question": "doez pretender work on me faek gaemr!?", - "answer": "yez! anythin that workz wif meanie netwrk workz wif pretender. only cemu haz it tho rite now!" + "answer": "da C-EMU workz wif da pretender in s-..\"settingz\"? dey have da l33t guide, go read dat~
    sum 3 dee ess gamurz might w3rk, but kitteh not suer!!! citra no worky :(" }, { "question": "can kitteh gaem on othr kitteh gaemin??", - "answer": "nonO!! kitteh can only gaem on teh wee yu an thre d s! wee has wiimmfi tho!!" + "answer": "nonO!! kitteh can only gaem on teh wee yu an thre d s! wee has wiimmfi tho!!" }, { "question": "doez kitteh need hax to gaem?!", - "answer": "yez!! kitteh needz hax to gaem, exept wiiu wen SSSL. mak sure kitteh press alt f4 4 epik gaemin!!" + "answer": "yez!! kitteh needz hax to gaem. mak sure kitteh press alt f4 4 epik gaemin!!" }, { "question": "if kitteh ban'd from teh meanie netwrk, iz still ban'd on pretender?", "answer": "no!! yu is not ban'd! ther is rulez tho, so yu can stil get bananad!!" }, { - "question": "wat if wamt to be meanie kitteh? haxx??", - "answer": "only wif ur friendzzz ^.^ kitteh in normal match nu wamt hax. u ban!!" + "question": "can kitteh beh meanie bye cheat in pretender gamez?", + "answer": "only wid friend, but cheat no fair for other kitteh, want ban?" } ], "text": "herez sum questionz yu lik 2 ask!!" @@ -110,40 +114,76 @@ "text": "see kittehz who maek pretender!!", "people": [ { - "caption": "da big cheez" + "caption": "da big cheez", + "name": "jon pretender", + "picture": "https://github.com/jonbarrow.png", + "github": "https://github.com/jonbarrow" }, { - "caption": "miiveres kitteh!" + "caption": "miiveres kitteh!", + "name": "jem :3", + "picture": "https://github.com/caramelkat.png", + "github": "https://github.com/CaramelKat" }, { - "caption": "wii u foxish!!!!!" + "caption": "wii u foxish!!!!!", + "name": "lucakitteh!! ^^", + "picture": "https://github.com/ashquarky.png", + "github": "https://github.com/ashquarky" }, { - "caption": "rezearch kitteh" + "caption": "rezearch kitteh", + "name": "supah marioh da vroom", + "picture": "https://github.com/supermariodabom.png", + "github": "https://github.com/SuperMarioDaBom" }, { - "caption": "onlien kitteh ^w^" + "caption": "onlien kitteh ^w^", + "name": "purple lemonzz :3", + "picture": "https://github.com/gitlimes.png", + "github": "https://github.com/gitlimes" }, { - "caption": "servah debeloper kitteh!!!" + "caption": "servah debeloper kitteh!!!", + "name": "camera creature 2k!!!!", + "picture": "https://cdn.discordapp.com/avatars/191370953807233024/0311b61e2009c1576828dd2e9a59d72e.png?size=128", + "github": "https://github.com/shutterbug2000" }, { - "caption": "gaem history saveh kiteh,," + "caption": "gaem history saveh kiteh,,", + "name": "billeh!", + "picture": "https://github.com/InternalLoss.png", + "github": "https://github.com/InternalLoss" }, { - "caption": "server dev kitteh o.o" + "caption": "server dev kitteh o.o", + "name": "daneh zappy...", + "picture": "https://github.com/danielectra.png", + "github": "https://github.com/DaniElectra" }, { - "caption": "website servah kitteh!! ^^" + "caption": "website servah kitteh!! ^^", + "name": "og kitteh!!!!", + "picture": "https://github.com/hauntii.png", + "github": "https://github.com/hauntii" }, { - "caption": "deb..ops..? kitteh!" + "caption": "deb..ops..? kitteh!", + "name": "matteh", + "picture": "https://github.com/MatthewL246.png", + "github": "https://github.com/MatthewL246" }, { - "caption": "servah kitteh n speedi kitteh!" + "caption": "servah kitteh n speedi kitteh!", + "name": "wolfiiii! ^^", + "picture": "https://github.com/wolfendale.png", + "github": "https://github.com/wolfendale" }, { - "caption": "duel screeh reseacha!!" + "caption": "duel screeh reseacha!!", + "name": "traceh bored >:(", + "picture": "https://github.com/TraceEntertains.png", + "github": "https://github.com/TraceEntertains" } ] }, @@ -153,48 +193,88 @@ "people": [ { "name": "geethub contrwibutahs!!!!! uwu", - "caption": "wocawizawitwions n moar!!!!" + "caption": "wocawizawitwions n moar!!!!", + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", + "github": "https://github.com/PretendoNetwork" }, { - "caption": "crunchii libwrary dev!!!" + "caption": "crunchii libwrary dev!!!", + "name": "uber whiskahs!!!!! (superwhiskers)", + "picture": "https://github.com/superwhiskers.png", + "github": "https://github.com/superwhiskers" }, { - "caption": "duel scweeen debeprobah and pachket takher-apahter!" + "caption": "duel scweeen debeprobah and pachket takher-apahter!", + "name": "staweh :3 (Stary)", + "picture": "https://github.com/Stary2001.png", + "github": "https://github.com/Stary2001" }, { - "caption": "we steal their code :3" + "caption": "we steal their code :3", + "name": "green juxt!", + "picture": "https://github.com/rverseTeam.png", + "github": "https://twitter.com/rverseClub" }, { "special": "speshul thx", - "caption": "gawd of meanine weseawch!!!!" + "caption": "gawd of meanine weseawch!!!!", + "name": "kinneh!", + "picture": "https://cdn.discordapp.com/avatars/186572995848830987/b55c0d4e7bfd792edf0689f83a25d8ea.png?size=128", + "github": "https://github.com/Kinnay" }, { - "caption": "icwn designah!!!!" + "caption": "icwn designah!!!!", + "name": "ninstah! ^w^", + "picture": "https://github.com/ninstar.png", + "github": "https://github.com/ninstar" }, { - "caption": "gaem reseawchhh n dev!" + "caption": "gaem reseawchhh n dev!", + "name": "rambeh >:3", + "picture": "https://github.com/EpicUsername12.png", + "github": "https://github.com/EpicUsername12" }, { - "caption": "wiiuu pwatchy hacky! ^w^" + "caption": "wiiuu pwatchy hacky! ^w^", + "name": "gary (cool one!)", + "picture": "https://github.com/GaryOderNichts.png", + "github": "https://github.com/GaryOderNichts" }, { - "caption": "duaaalsccween haxorz!!!! owo" + "caption": "duaaalsccween haxorz!!!! owo", + "name": "zak is da 3ds beast", + "picture": "https://cdn.discordapp.com/avatars/219324395707957248/c62573fbd4d26c8b4724f54413df6960.png?size=128", + "github": "https://github.com/zaksabeast" }, { - "caption": "servah maker!!! ^u^" + "caption": "servah maker!!! ^u^", + "name": "jvkitteh fr", + "picture": "https://github.com/mrjvs.png", + "github": "https://github.com/mrjvs" }, { - "caption": "g-gopah??? gopah??????" + "caption": "g-gopah??? gopah??????", + "name": "binareh mcbinareh ^w^", + "picture": "https://github.com/binaryoverload.png", + "github": "https://github.com/binaryoverload" }, { - "caption": "splooner!" + "caption": "splooner!", + "name": "slimon!!!", + "picture": "https://github.com/Simonx22.png", + "github": "https://github.com/Simonx22" }, { - "caption": "splooner,,," + "caption": "splooner,,,", + "name": "porridge creature :3", + "picture": "https://github.com/OatmealDome.png", + "github": "https://github.com/OatmealDome" }, { "name": "gwitwub fwends!!", - "caption": "dey maek langwage gud u.u" + "caption": "dey maek langwage gud u.u", + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", + "github": "https://github.com/PretendoNetwork" } ] }, diff --git a/locales/en_GB.json b/locales/en_GB.json index 1d5b901..04c6306 100644 --- a/locales/en_GB.json +++ b/locales/en_GB.json @@ -65,6 +65,10 @@ "question": "When will you add more games?", "answer": "We work on new games once we feel that our backend libraries are ready to support it, and there is developer time available to maintain it. A lot of our work goes into stabilising and completing our existing games - we want to get the best experience possible in those before we move on to new titles. Since new work comes up all the time, we cannot make any estimate of when that would be." }, + { + "question": "If I use an emulator, will that be enough to use Pretendo?", + "answer": "No. For purposes of security and moderation, if you are using an emulator, you still need a real console. This allows for improved security and more effective enforcement of rules in order to provide a safe and enjoyable experience with our service." + }, { "question": "Does Pretendo work on Cemu/emulators?", "answer": "Cemu 2.1 officially supports Pretendo under your network account options in the emulator. For information on how to get started with Cemu, check out the documentation.
    Some 3DS emulators or forks might support us, but we do not have any official recommendation or setup instructions at this time. The final builds of Citra do not support Pretendo." @@ -75,7 +79,7 @@ }, { "question": "Will I need hacks to connect?", - "answer": "For the best experience on consoles, you will need to hack your system - specifially Aroma for Wii U and Luma3DS for 3DS. However, on Wii U, the hackless SSSL method is also available with limited functionality. See our setup instructions for details." + "answer": "For the best experience on consoles, you will need to hack your system - specifically Aroma for Wii U and Luma3DS for 3DS. However, on Wii U, the hackless SSSL method is also available with limited functionality. See our setup instructions for details." }, { "question": "If I am banned on Nintendo Network, will I stay banned when using Pretendo?", @@ -84,9 +88,6 @@ { "question": "Can I use cheats or mods online with Pretendo?", "answer": "Only in private matches - gaining an unfair advantage or disrupting the online experience with people who didn't consent (as in public matches) is a bannable offence. We regularly apply account and console bans to both Wii U and 3DS systems. Pretendo uses extra security measures that make traditional 'unban' methods like changing your serial number ineffective." - }, - { - "question": "Can I use cheats or mods online with Pretendo?" } ] }, From 455fa2ddaac4ddfdb97ce83214a8c5d9a72ea7b6 Mon Sep 17 00:00:00 2001 From: Dimitri A Date: Thu, 24 Jul 2025 19:03:04 +0200 Subject: [PATCH 092/214] locales(update): Updated French locale Co-authored-by: Dimitri A --- locales/fr_FR.json | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/locales/fr_FR.json b/locales/fr_FR.json index 9c5e12d..2a90971 100644 --- a/locales/fr_FR.json +++ b/locales/fr_FR.json @@ -9,7 +9,7 @@ "account": "Compte", "accountWidget": { "logout": "Déconnexion", - "settings": "Réglages" + "settings": "Paramètres" }, "donate": "Faire un don", "dropdown": { @@ -33,7 +33,7 @@ "aboutUs": { "title": "À propos de nous", "paragraphs": [ - "Pretendo est un projet open source qui vise à recréer le Nintendo Network pour la 3DS et la Wii U en utilisant la rétro-ingénierie.", + "Pretendo est un projet open source qui vise à recréer le Nintendo Network pour la 3DS et la Wii U par le biais d'une rétro-ingénierie dite « propre ».", "Puisque nos services sont à la fois gratuits et open source, ils existeront longtemps." ] }, @@ -50,15 +50,15 @@ "answer": "Pretendo est une alternative open source du service Nintendo Network qui vise à créer des serveurs personnalisés pour la famille des consoles Wii U et 3DS. Notre objectif est de préserver les fonctionnalités en ligne de ces consoles, afin de permettre aux joueurs de continuer à jouer à leurs jeux Wii U et 3DS favoris à leur plein potentiel." }, { - "question": "Préserverai-je mon identifiant Nintendo Network ?", + "question": "Puis-je me connecter à Pretendo avec un identifiant Nintendo Network existant ?", "answer": "Malheureusement, non. Les identifiants existants ne seront pas conservés, et Nintendo restera le seul détenteur de vos données personnelles. Bien qu'une extraction des informations soit théoriquement possible, cela reviendrait à récupérer des milliers de données sensibles : chose que nous désapprouvons." }, { "question": "Comment utiliser Pretendo ?", - "answer": "Afin de commencer le paramétrage de Pretendo sur 3DS, Wii U ou un émulateur, veuillez consulter notre guide d'installation !" + "answer": "Pour commencer à utiliser Pretendo avec une 3DS, une Wii U ou un émulateur, veuillez consulter notre guide d'installation !" }, { - "question": "Savez-vous quand tel service/fonctionnalité sera prêt ?", + "question": "Savez-vous quand de nouvelles fonctionnalités ou services seront prêt(e)s ?", "answer": "Pas du tout ! Si les grands axes du projet ont été fixés en début de développement, beaucoup de sous-objectifs restent indéfinis temporellement et chronologiquement. Le développement des fonctionnalités étant assez libre, nous ne sommes pas en mesure d'estimer l'heure à laquelle le projet intégral aboutira." }, { @@ -70,7 +70,7 @@ "answer": "Non. Pour des raisons de sécurité et de modération, si vous utilisez un émulateur, vous aurez toujours besoin d'une vraie console. Cela permet une meilleure sécurité et une modération plus efficace pour permettre de créer une expérience sûre et satisfaisante de notre service." }, { - "question": "Est-ce que Pretendo fonctionne sur Cemu/émulateurs ?", + "question": "Pretendo fonctionne-t-il sur Cemu ou un autre émulateur ?", "answer": "La version 2.1 de Cemu prend Pretendo en charge, via les paramètres de connexion de l'émulateur. Pour plus d'informations sur comment s'y prendre, référez-vous à la documentation.
    Certains émulateurs 3DS prennent charge Pretendo, nous n'avons pas de recommandations officielles ou de procédures d'installation pour l'instant. La version la plus récente de Citra ne prend pas en charge Pretendo." }, { @@ -79,7 +79,7 @@ }, { "answer": "Pour la meilleure expérience possible sur console, vous aurez besoin de modifier le système de celle-ci — par exemple, grâce à Aroma pour la Wii U ou Luma3DS pour la 3DS. Cependant, avec la Wii U, il est possible d'accéder à Pretendo sans modification, mais avec des fonctionnalités limitées. Voir la documentation pour plus de détails.", - "question": "Aurais-je besoin de modifier ma console pour me connecter ?" + "question": "Dois-je modifier ma console pour me connecter ?" }, { "question": "Si je suis banni du Nintendo Network, est-ce que ce sera le cas avec Pretendo ?", From 6d59099eb8c5e8e3e247cb485f08fbeb7c567bd1 Mon Sep 17 00:00:00 2001 From: Evan Lie Date: Thu, 24 Jul 2025 19:03:06 +0200 Subject: [PATCH 093/214] locales(update): Updated English (en@uwu) locale Co-authored-by: Evan Lie --- locales/en@uwu.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/en@uwu.json b/locales/en@uwu.json index 437a1d2..7df6d8e 100644 --- a/locales/en@uwu.json +++ b/locales/en@uwu.json @@ -85,7 +85,7 @@ "answer": "no!! yu is not ban'd! ther is rulez tho, so yu can stil get bananad!!" }, { - "question": "can kitteh beh meanie bye cheat in pretender gamez?", + "question": "can kitteh cheat on pretender gamez?", "answer": "only wid friend, but cheat no fair for other kitteh, want ban?" } ], From 25bde21fe08ffe881a116d27f175273825bde8ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Campa=C3=B1a=20Sanz?= Date: Thu, 24 Jul 2025 19:03:07 +0200 Subject: [PATCH 094/214] locales(update): Updated Spanish locale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: David Campaña Sanz --- locales/es_ES.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index 007eb2b..e4e9e83 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -75,7 +75,7 @@ }, { "question": "¿Pretendo será compatible con la Wii/Switch?", - "answer": "Para obtener la mejor experiencia en consolas necesitarás modificar tu sistema, especificamente Aroma en Wii U y Luma3DS en 3DS. No obstante, en Wii U, el metodo sin modificación SSSL también está disponible con funcionalidad limitada. Consulte nuestras instrucciones de instalación para más detalles." + "answer": "La Wii ya tiene servidores en línea personalizados por parte de Wiimmfi. No tenemos planeado trabajar con la Switch ya que sus servicios son de pago y completamente diferentes a los de Nintendo Network." }, { "question": "Si me expulsan en Nintendo Network, ¿seguiré expulsado cuando use Pretendo?" From b6886ee1976dfd1a99c5667f05a9b1a0024ca464 Mon Sep 17 00:00:00 2001 From: Alex Wang Date: Thu, 24 Jul 2025 19:03:08 +0200 Subject: [PATCH 095/214] locales(update): Updated Chinese (Simplified Han script) locale Co-authored-by: Alex Wang --- locales/zh_CN.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/zh_CN.json b/locales/zh_CN.json index f65ba95..18f46ce 100644 --- a/locales/zh_CN.json +++ b/locales/zh_CN.json @@ -71,10 +71,10 @@ }, { "question": "Pretendo 会支持 Wii/Switch 吗?", - "answer": "Wii 已经有 Wiimmfi 提供的自定义服务器。我们目前不以 Switch 为目标,因为它不仅付费而且与 Nintendo Network 的构造完全不同。" + "answer": "Cemu 2.1 在模拟器的网络帐户选项下正式支持 Pretendo。有关如何开始设置 Cemu 的信息,请查看documentation.
    一些 3DS 模拟器或分支可能支持我们,但目前我们没有任何官方建议或设置说明。Citra 的最终版本目前不支持 Pretendo。" }, { - "question": "我需要一台破解过的机器才能连接吗?", + "question": "Pretendo会支持 Wii/Switch 吗?", "answer": "是的,您需要破解您的设备才能连接;但是,在 Wii U 上,您只需要访问 Homebrew Launcher(即 Haxchi、Coldboot Haxchi 甚至网络浏览器漏洞利用程序),稍后会提供有关 3DS 将如何连接的信息。" } ] From 98d1b63e6f864379cacbeb0edaa589c70f7ca918 Mon Sep 17 00:00:00 2001 From: phoenixofhp <2minesweeper2@gmail.com> Date: Thu, 24 Jul 2025 19:03:09 +0200 Subject: [PATCH 096/214] locales(update): Updated Russian locale Co-authored-by: phoenixofhp <2minesweeper2@gmail.com> --- locales/ru_RU.json | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/locales/ru_RU.json b/locales/ru_RU.json index 7b315da..8ef6a5e 100644 --- a/locales/ru_RU.json +++ b/locales/ru_RU.json @@ -78,14 +78,16 @@ "answer": "У Wii уже есть неофициальные сервера, под названием Wiimmfi. На данный момент мы не собираемся работать с онлайном Switch, так как сервис платный и кардинально отличается от Nintendo Network." }, { - "question": "Нужно ли мне прошивать консоль?" + "question": "Нужно ли мне прошивать консоль?", + "answer": "Для наилучшего опыта на консолях вам потребуется взломать систему — а именно установить Aroma для Wii U и Luma3DS для 3DS. Однако на Wii U также доступен безвзломный метод SSSL с ограниченной функциональностью. Подробности смотрите в наших инструкциях по установке." }, { "question": "Если я забанен на Nintendo Network, буду ли я забанен и на Pretendo тоже?", "answer": "Нет. Все пользователи, которые имеют бан в официальном Nintendo Network, смогут пользоваться Pretendo. Однако, у нас есть свои правила использования, и при их нарушении вы можете получить бан уже на Pretendo." }, { - "question": "Можно ли использовать читы или моды в сетевых играх на Pretendo?" + "question": "Можно ли использовать читы или моды в сетевых играх на Pretendo?", + "answer": "Только в частных матчах — получение нечестного преимущества или нарушение игрового процесса с участниками, которые не давали на это согласия (как в публичных матчах), является причиной для блокировки. Мы регулярно применяем баны аккаунтов и консолей как на Wii U, так и на 3DS. В Pretendo используются дополнительные меры безопасности, из-за которых традиционные методы обхода блокировок, такие как смена серийного номера, не работают." } ] }, @@ -95,7 +97,9 @@ "people": [ { "caption": "Руководитель проекта и гл. разработчик", - "name": "Джонатан Барроу (jonbarrow)" + "name": "Джонатан Барроу (jonbarrow)", + "picture": "https://github.com/jonbarrow.png", + "github": "https://github.com/jonbarrow" }, { "name": "Джемма (CaramelKat)", @@ -106,7 +110,8 @@ { "caption": "Исследование Wii U и разработка патчей", "github": "https://github.com/ashquarky", - "picture": "https://github.com/ashquarky.png" + "picture": "https://github.com/ashquarky.png", + "name": "quarky" }, { "picture": "https://github.com/supermariodabom.png", From a64cd89cd3743e3b9c7481b7ec7646d2b318cf99 Mon Sep 17 00:00:00 2001 From: Vitaly Novichkov Date: Thu, 24 Jul 2025 19:03:11 +0200 Subject: [PATCH 097/214] locales(update): Updated Russian locale Co-authored-by: Vitaly Novichkov --- locales/ru_RU.json | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/locales/ru_RU.json b/locales/ru_RU.json index 8ef6a5e..4cb2685 100644 --- a/locales/ru_RU.json +++ b/locales/ru_RU.json @@ -3,7 +3,7 @@ "about": "О нас", "faq": "ЧаВо", "docs": "Документы", - "credits": "Титры", + "credits": "О разработчиках", "progress": "Прогресс", "donate": "Пожертвование", "blog": "Блог", @@ -134,13 +134,23 @@ { "picture": "https://github.com/InternalLoss.png", "github": "https://github.com/InternalLoss", - "name": "Billy" + "name": "Billy", + "caption": "Серверная архитектура и архивариус" } ] }, "specialThanks": { "title": "Особая благодарность", - "text": "Без них, Pretendo не был бы таким какой он есть сегодня." + "text": "Без них, Pretendo не был бы таким какой он есть сегодня.", + "people": [ + { + "name": "Участники на GitHub" + }, + {}, + { + "caption": "Разработка 3DS и NEX-диссектора" + } + ] }, "discordJoin": { "title": "Будьте в курсе всех новостей", From 11c0ae479260c28eb7f48ffe500ab9fa7c718b8c Mon Sep 17 00:00:00 2001 From: Maksim Date: Thu, 24 Jul 2025 19:03:12 +0200 Subject: [PATCH 098/214] locales(update): Updated Russian locale Co-authored-by: Maksim --- locales/ru_RU.json | 45 ++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 42 insertions(+), 3 deletions(-) diff --git a/locales/ru_RU.json b/locales/ru_RU.json index 4cb2685..6956b91 100644 --- a/locales/ru_RU.json +++ b/locales/ru_RU.json @@ -136,6 +136,36 @@ "github": "https://github.com/InternalLoss", "name": "Billy", "caption": "Серверная архитектура и архивариус" + }, + { + "name": "DaniElectra", + "caption": "Исследование систем и разработка серверов", + "picture": "https://github.com/danielectra.png", + "github": "https://github.com/DaniElectra" + }, + { + "name": "niko", + "caption": "Веб и серверная разработка", + "picture": "https://github.com/hauntii.png", + "github": "https://github.com/hauntii" + }, + { + "name": "MatthewL246", + "caption": "DevOps и работа с сообществом", + "picture": "https://github.com/MatthewL246.png", + "github": "https://github.com/MatthewL246" + }, + { + "name": "wolfendale", + "caption": "Разработка и оптимизация серверов", + "picture": "https://github.com/wolfendale.png", + "github": "https://github.com/wolfendale" + }, + { + "name": "TraceEntertains", + "caption": "Исследования и разработка патчей для 3DS", + "picture": "https://github.com/TraceEntertains.png", + "github": "https://github.com/TraceEntertains" } ] }, @@ -144,11 +174,20 @@ "text": "Без них, Pretendo не был бы таким какой он есть сегодня.", "people": [ { - "name": "Участники на GitHub" + "name": "Участники на GitHub", + "caption": "Переводы и другая помощь", + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", + "github": "https://github.com/PretendoNetwork" }, - {}, { - "caption": "Разработка 3DS и NEX-диссектора" + "name": "superwhiskers", + "caption": "Разработка библиотеки Crunch", + "picture": "https://github.com/superwhiskers.png", + "github": "https://github.com/superwhiskers" + }, + { + "caption": "Разработка 3DS и NEX-диссектора", + "name": "Stary" } ] }, From 5f20b67263bc1a82dde630aca10543b7e7b01b1b Mon Sep 17 00:00:00 2001 From: Joshua8600 <105813016+Joshua8600@users.noreply.github.com> Date: Sat, 26 Jul 2025 21:31:52 -0700 Subject: [PATCH 099/214] Update wiiu.md --- docs/en_US/install/wiiu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en_US/install/wiiu.md b/docs/en_US/install/wiiu.md index 606e027..450b922 100644 --- a/docs/en_US/install/wiiu.md +++ b/docs/en_US/install/wiiu.md @@ -151,7 +151,7 @@ After installing Pretendo, you must register a Pretendo Network ID (PNID). There
    CAUTION: - A Pretendo Network ID may not use the same username as an account already linked to your Wii U! If you have any existing Nintendo Network IDs on your Wii U which share the username you wish to use, those accounts MUST be removed from your console first. + A Pretendo Network ID may not use the same username as an account already linked to your Wii U! Ensure that you have a choose a different name for your PNID than the name on your NNID.
    ### Website From 0a644edaf2d92995bb4951ed4fcb60c657f222cf Mon Sep 17 00:00:00 2001 From: Joshua8600 <105813016+Joshua8600@users.noreply.github.com> Date: Sat, 26 Jul 2025 21:32:45 -0700 Subject: [PATCH 100/214] Update wiiu.md --- docs/en_US/install/wiiu.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en_US/install/wiiu.md b/docs/en_US/install/wiiu.md index 450b922..29bcdfd 100644 --- a/docs/en_US/install/wiiu.md +++ b/docs/en_US/install/wiiu.md @@ -151,7 +151,7 @@ After installing Pretendo, you must register a Pretendo Network ID (PNID). There
    CAUTION: - A Pretendo Network ID may not use the same username as an account already linked to your Wii U! Ensure that you have a choose a different name for your PNID than the name on your NNID. + A Pretendo Network ID may not use the same username as an account already linked to your Wii U! Ensure that you have chosen a different name for your PNID than the name on your NNID.
    ### Website From 73617b04db21987a89a5622e74f9549859592b0a Mon Sep 17 00:00:00 2001 From: Joshua8600 <105813016+Joshua8600@users.noreply.github.com> Date: Sat, 26 Jul 2025 21:32:59 -0700 Subject: [PATCH 101/214] Update 3ds.md --- docs/en_US/install/3ds.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en_US/install/3ds.md b/docs/en_US/install/3ds.md index f4cf747..d386070 100644 --- a/docs/en_US/install/3ds.md +++ b/docs/en_US/install/3ds.md @@ -104,7 +104,7 @@ It is recommended to register the PNID on your device at this time, as registeri
    CAUTION: - A Pretendo Network ID may not use the same username as the account already linked to your 3DS! Ensure that you have a choose a different name for your PNID than the name on your NNID. + A Pretendo Network ID may not use the same username as the account already linked to your 3DS! Ensure that you have chosen a different name for your PNID than the name on your NNID.
    ## Other information From ae3f9b691003a9be6bb0314519885ec85aa47617 Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sun, 27 Jul 2025 16:49:47 +0200 Subject: [PATCH 102/214] chore: fix handlebars rendering for Discord discriminator --- views/account/account.handlebars | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/views/account/account.handlebars b/views/account/account.handlebars index b8af508..ef9d422 100644 --- a/views/account/account.handlebars +++ b/views/account/account.handlebars @@ -145,10 +145,7 @@

    {{ locale.account.settings.settingCards.discord }}

    {{#if discordUser}} -

    {{ locale.account.settings.settingCards.connectedToDiscord }} {{ discordUser.username }} - {{#if discordUser.discriminator}} -  #{{ discordUser.discriminator }} - {{/if}}

    +

    {{ locale.account.settings.settingCards.connectedToDiscord }} {{ discordUser.username }}{{#if discordUser.discriminator }}#{{ discordUser.discriminator }}{{/if}}

    From ac29ce9a44b29792e5d1e2fecb9ca6f03b4f13dc Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sun, 27 Jul 2025 16:56:33 +0200 Subject: [PATCH 103/214] fix: use string comparison for discriminator check --- views/account/account.handlebars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/account/account.handlebars b/views/account/account.handlebars index ef9d422..00ab735 100644 --- a/views/account/account.handlebars +++ b/views/account/account.handlebars @@ -145,7 +145,7 @@

    {{ locale.account.settings.settingCards.discord }}

    {{#if discordUser}} -

    {{ locale.account.settings.settingCards.connectedToDiscord }} {{ discordUser.username }}{{#if discordUser.discriminator }}#{{ discordUser.discriminator }}{{/if}}

    +

    {{ locale.account.settings.settingCards.connectedToDiscord }} {{ discordUser.username }}{{#if ( eq discordUser.discriminator '0' ) }}#{{ discordUser.discriminator }}{{/if}}

    From 11e230d4e5c0c4c8976f2fbee69f7bbc04354477 Mon Sep 17 00:00:00 2001 From: William Oldham Date: Sun, 27 Jul 2025 16:57:48 +0200 Subject: [PATCH 104/214] fix: use neq instead of eq for discriminator check --- views/account/account.handlebars | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/views/account/account.handlebars b/views/account/account.handlebars index ba0333a..d6dfcd4 100644 --- a/views/account/account.handlebars +++ b/views/account/account.handlebars @@ -148,7 +148,7 @@

    {{ locale.account.settings.settingCards.discord }}

    {{#if discordUser}} -

    {{ locale.account.settings.settingCards.connectedToDiscord }} {{ discordUser.username }}{{#if ( eq discordUser.discriminator '0' ) }}#{{ discordUser.discriminator }}{{/if}}

    +

    {{ locale.account.settings.settingCards.connectedToDiscord }} {{ discordUser.username }}{{#if ( neq discordUser.discriminator '0' ) }}#{{ discordUser.discriminator }}{{/if}}

    From 2bfc642bbb4dffc31f2a392248d33990675d7269 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Campa=C3=B1a=20Sanz?= Date: Mon, 18 Aug 2025 17:44:42 +0200 Subject: [PATCH 105/214] locales(update): Updated Spanish locale MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: David Campaña Sanz --- locales/es_ES.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index e4e9e83..df371d1 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -81,8 +81,11 @@ "question": "Si me expulsan en Nintendo Network, ¿seguiré expulsado cuando use Pretendo?" }, { - "question": "¿Puedo usar trucos o mods en línea con Pretendo?", + "question": "Si se me ha suspendido el acceso a Nintendo Network, ¿se mantendrá el suspenso en Pretendo?", "answer": "Solo en partidas privadas. Ganar una ventaja injusta o interrumpir la experiencia online de gente que no ha dado su consentimiento (como en partidas públicas) es una ofensa baneable. Aplicamos regularmente baneos tanto de cuentas como de consolas en Wii U y 3DS. Pretendo usa medidas de seguridad extra que hacen inefectivos los metodos tradicionales de esquivar el ban como cambiar tu número de serie." + }, + { + "question": "¿Puedo utilizar trucos o modificaciones con Pretendo?" } ] }, @@ -250,7 +253,8 @@ { "picture": "https://github.com/binaryoverload.png", "github": "https://github.com/binaryoverload", - "caption": "Arquitectura del servidor" + "caption": "Arquitectura del servidor", + "name": "sobrecargabinaria" }, { "picture": "https://github.com/Simonx22.png", From 3568fabb09069a52771a2ce1f7171d19678d6d97 Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 18 Aug 2025 17:44:43 +0200 Subject: [PATCH 106/214] locales(update): Updated Spanish locale Co-authored-by: Chris --- locales/es_ES.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index df371d1..a55720d 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -82,7 +82,7 @@ }, { "question": "Si se me ha suspendido el acceso a Nintendo Network, ¿se mantendrá el suspenso en Pretendo?", - "answer": "Solo en partidas privadas. Ganar una ventaja injusta o interrumpir la experiencia online de gente que no ha dado su consentimiento (como en partidas públicas) es una ofensa baneable. Aplicamos regularmente baneos tanto de cuentas como de consolas en Wii U y 3DS. Pretendo usa medidas de seguridad extra que hacen inefectivos los metodos tradicionales de esquivar el ban como cambiar tu número de serie." + "answer": "No tenemos acceso a las suspensiones de cuenta de Nintendo Network, entonces todos los usuarios de Nintendo Network no están baneados. Sin embargo, tenemos reglas a seguir al usar el servicio y el incumplimiento de estas reglas puede resultar en una suspensión." }, { "question": "¿Puedo utilizar trucos o modificaciones con Pretendo?" From d9d6ba7cf5e3253a11f94118a9ef319804797582 Mon Sep 17 00:00:00 2001 From: hamsterbot Date: Mon, 18 Aug 2025 17:44:43 +0200 Subject: [PATCH 107/214] locales(update): Updated Korean locale Co-authored-by: hamsterbot --- locales/ko_KR.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/ko_KR.json b/locales/ko_KR.json index 14c4b04..13717fe 100644 --- a/locales/ko_KR.json +++ b/locales/ko_KR.json @@ -272,7 +272,7 @@ "no_signins_notice": "현재 로그인 기록이 아직 기록되지 않았습니다. 나중에 다시 확인하세요!" }, "upgrade": "계정 업그레이드", - "unavailable": "이용 불가" + "unavailable": "이용할 수 없음" }, "forgotPassword": { "header": "비밀번호 찾기", @@ -305,7 +305,7 @@ "changeTier": "티어 변경", "title": "업그레이드", "changeTierPrompt": "정말로 oldtiername를 취소하고 newtiername를 구독하시겠습니까?", - "month": "개월" + "month": "달" }, "donation": { "progress": "$${goald}/월 중에서 $${totd} , 매달 목표의 ${perc}%.", From 19266ed35443bac2d0397b59b91b24dfd6586d91 Mon Sep 17 00:00:00 2001 From: Hoto Ras Date: Mon, 18 Aug 2025 17:44:43 +0200 Subject: [PATCH 108/214] locales(update): Updated Korean locale Co-authored-by: Hoto Ras --- locales/ko_KR.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/ko_KR.json b/locales/ko_KR.json index 13717fe..eed789f 100644 --- a/locales/ko_KR.json +++ b/locales/ko_KR.json @@ -269,7 +269,7 @@ "signInHistory": "로그인 기록", "newsletterPrompt": "프로젝트 소식 업데이트를 이메일로 받기(언제든 취소할 수 있습니다)", "no_edit_from_dashboard": "유저 대시보드에서 PNID 설정 변경은 현재 제공되지 않습니다. 계정을 연결한 게임 콘솔에서 변경하세요.", - "no_signins_notice": "현재 로그인 기록이 아직 기록되지 않았습니다. 나중에 다시 확인하세요!" + "no_signins_notice": "로그인 기록이 아직 기록되지 않았습니다. 나중에 다시 확인하세요!" }, "upgrade": "계정 업그레이드", "unavailable": "이용할 수 없음" From 857f219ae228443b39373fe5e660d1ec7dd4c167 Mon Sep 17 00:00:00 2001 From: M Date: Mon, 18 Aug 2025 17:44:43 +0200 Subject: [PATCH 109/214] locales(add): Added Basque locale Co-authored-by: M --- locales/eu_ES.json | 1 + 1 file changed, 1 insertion(+) create mode 100644 locales/eu_ES.json diff --git a/locales/eu_ES.json b/locales/eu_ES.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/locales/eu_ES.json @@ -0,0 +1 @@ +{} From 3bf7b8cfd799290902cee54fddea8fa34bfe6e09 Mon Sep 17 00:00:00 2001 From: "Weblate (bot)" Date: Tue, 19 Aug 2025 04:44:58 +0200 Subject: [PATCH 110/214] Merge pull request #408 from PretendoNetwork/weblate Translations update from Hosted Weblate --- locales/es_ES.json | 10 +++++++--- locales/eu_ES.json | 1 + locales/ko_KR.json | 6 +++--- 3 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 locales/eu_ES.json diff --git a/locales/es_ES.json b/locales/es_ES.json index e4e9e83..a55720d 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -81,8 +81,11 @@ "question": "Si me expulsan en Nintendo Network, ¿seguiré expulsado cuando use Pretendo?" }, { - "question": "¿Puedo usar trucos o mods en línea con Pretendo?", - "answer": "Solo en partidas privadas. Ganar una ventaja injusta o interrumpir la experiencia online de gente que no ha dado su consentimiento (como en partidas públicas) es una ofensa baneable. Aplicamos regularmente baneos tanto de cuentas como de consolas en Wii U y 3DS. Pretendo usa medidas de seguridad extra que hacen inefectivos los metodos tradicionales de esquivar el ban como cambiar tu número de serie." + "question": "Si se me ha suspendido el acceso a Nintendo Network, ¿se mantendrá el suspenso en Pretendo?", + "answer": "No tenemos acceso a las suspensiones de cuenta de Nintendo Network, entonces todos los usuarios de Nintendo Network no están baneados. Sin embargo, tenemos reglas a seguir al usar el servicio y el incumplimiento de estas reglas puede resultar en una suspensión." + }, + { + "question": "¿Puedo utilizar trucos o modificaciones con Pretendo?" } ] }, @@ -250,7 +253,8 @@ { "picture": "https://github.com/binaryoverload.png", "github": "https://github.com/binaryoverload", - "caption": "Arquitectura del servidor" + "caption": "Arquitectura del servidor", + "name": "sobrecargabinaria" }, { "picture": "https://github.com/Simonx22.png", diff --git a/locales/eu_ES.json b/locales/eu_ES.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/locales/eu_ES.json @@ -0,0 +1 @@ +{} diff --git a/locales/ko_KR.json b/locales/ko_KR.json index 14c4b04..eed789f 100644 --- a/locales/ko_KR.json +++ b/locales/ko_KR.json @@ -269,10 +269,10 @@ "signInHistory": "로그인 기록", "newsletterPrompt": "프로젝트 소식 업데이트를 이메일로 받기(언제든 취소할 수 있습니다)", "no_edit_from_dashboard": "유저 대시보드에서 PNID 설정 변경은 현재 제공되지 않습니다. 계정을 연결한 게임 콘솔에서 변경하세요.", - "no_signins_notice": "현재 로그인 기록이 아직 기록되지 않았습니다. 나중에 다시 확인하세요!" + "no_signins_notice": "로그인 기록이 아직 기록되지 않았습니다. 나중에 다시 확인하세요!" }, "upgrade": "계정 업그레이드", - "unavailable": "이용 불가" + "unavailable": "이용할 수 없음" }, "forgotPassword": { "header": "비밀번호 찾기", @@ -305,7 +305,7 @@ "changeTier": "티어 변경", "title": "업그레이드", "changeTierPrompt": "정말로 oldtiername를 취소하고 newtiername를 구독하시겠습니까?", - "month": "개월" + "month": "달" }, "donation": { "progress": "$${goald}/월 중에서 $${totd} , 매달 목표의 ${perc}%.", From bb749c293f6736f0cc549e21f56988caa89eb168 Mon Sep 17 00:00:00 2001 From: Florian Gerling Date: Mon, 18 Aug 2025 19:28:44 +0200 Subject: [PATCH 111/214] locales(update): Updated German locale --- locales/de_DE.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/locales/de_DE.json b/locales/de_DE.json index c492bc9..33cf7ee 100644 --- a/locales/de_DE.json +++ b/locales/de_DE.json @@ -260,13 +260,13 @@ }, { "name": "Simonx22", - "caption": "Spatoon-Rotations und Forschung", + "caption": "Forschung zu Splatoon und Arena-Rotationen", "picture": "https://github.com/Simonx22.png", "github": "https://github.com/Simonx22" }, { "name": "OatmealDome", - "caption": "Splatoon-Rotations und Forschung", + "caption": "Forschung zu Splatoon und Arena-Rotationen", "github": "https://github.com/OatmealDome", "picture": "https://github.com/OatmealDome.png" }, From d2736ffeebb1424166a97a03ca0161969ace2142 Mon Sep 17 00:00:00 2001 From: M Date: Thu, 21 Aug 2025 17:40:28 +0200 Subject: [PATCH 112/214] locales(update): Updated Basque locale --- locales/eu_ES.json | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/locales/eu_ES.json b/locales/eu_ES.json index 0967ef4..716f60f 100644 --- a/locales/eu_ES.json +++ b/locales/eu_ES.json @@ -1 +1,32 @@ -{} +{ + "nav": { + "about": "Honi buruz", + "faq": "Ohiko galderak", + "docs": "Dokumentazioa", + "credits": "Kredituak", + "progress": "Aurrerapenak", + "blog": "Bloga", + "account": "Kontua", + "dropdown": { + "captions": { + "blog": "Azken eguneratzeari buruz", + "credits": "Taldea ezagutu", + "progress": "Proiektuaren aurrerapenak eta helburuak ikusi" + } + }, + "accountWidget": { + "settings": "Ezarpenak", + "logout": "Saioa amaitu" + }, + "donate": "Dohaintza egin" + }, + "hero": { + "subtitle": "Jokoaren zerbitzariak", + "buttons": { + "readMore": "Gehiago irakurri" + } + }, + "aboutUs": { + "title": "Guri buruz" + } +} From e1f709d42d353b1204622cc9e4cca92a36aface2 Mon Sep 17 00:00:00 2001 From: o_o Date: Fri, 22 Aug 2025 14:24:51 +0200 Subject: [PATCH 113/214] locales(update): Updated Finnish locale --- locales/fi_FI.json | 76 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 75 insertions(+), 1 deletion(-) diff --git a/locales/fi_FI.json b/locales/fi_FI.json index 806e24f..97d5f66 100644 --- a/locales/fi_FI.json +++ b/locales/fi_FI.json @@ -32,6 +32,17 @@ { "question": "Tarvitsenko murretun konsolin?", "answer": "Kyllä, sinun pitää murtaa konsolisi yhteyttä varten. Lisätietoja asentamisesta löydät <a href=\"https://pretendo.network/docs/install/wiiu\">täältä</a>." + }, + { + "question": "Tarvitsenko modeja yhdistääkseni?" + }, + { + "question": "Jos minulla on Nintendo Network -kielto, pysyykö se voimassa käyttäessäni Pretendoa?", + "answer": "Tiedot Nintendo Network -kielloista eivät ole käytettävissämme, joten millään Nintendo Network -käyttäjällä ei ole kieltoa. Meillä on kuitenkin sääntöjä, joita on noudatettava palvelua käytettäessä, ja näiden sääntöjen noudattamatta jättäminen voi johtaa kieltoon." + }, + { + "question": "Saanko käyttää huijauksia tai modeja onlinessa käyttäessäni Pretendoa?", + "answer": "Vain yksityisissä peleissä - epäreilun edun saaminen tai verkkokokemuksen häiritseminen sellaisten ihmisten kanssa, jotka eivät ole antaneet siihen suostumustaan (kuten julkisissa peleissä) on kiellon antamisen arvoinen teko. Asetamme säännöllisesti tili- ja konsolikieltoja sekä Wii U- että 3DS-järjestelmille. Pretendo käyttää lisäturvatoimenpiteitä, jotka tekevät perinteisistä \"kiellonpoistamismenetelmistä\", kuten sarjanumeron vaihtamisesta, hyödyttömiä." } ], "title": "Usein Kysytyt Kysymykset", @@ -103,12 +114,75 @@ "people": [ { "caption": "Projektin omistaja ja johtava kehittäjä" + }, + {}, + {}, + { + "caption": "Järjestelmäntutkimus ja palvelinarkkitehtuuri" + }, + { + "caption": "Web-kehitys" + }, + { + "caption": "Järjestelmäntutkimus ja palvelinkehitys" + }, + { + "caption": "Säilytystyö ja palvelinarkkitehtuuri" + }, + { + "caption": "Järjestelmäntutkimus ja palvelinkehitys" + }, + { + "caption": "Web- ja palvelinkehitys" + }, + {}, + { + "caption": "Palvelinkehitys ja -optimointi" + }, + { + "caption": "3DS-patchikehitys ja -tutkimus" } ] }, "specialThanks": { "title": "Erityiskiitokset", - "text": "Ilman heitä Pretendo ei olisi siinä, missä olemme nyt." + "text": "Ilman heitä Pretendo ei olisi siinä, missä olemme nyt.", + "people": [ + { + "name": "GitHub-osalliset", + "caption": "Lokalisaatiot ja muu osallistuminen" + }, + { + "caption": "crunch-kirjaston kehitys" + }, + { + "caption": "3DS- ja NEX dissector -kehitys" + }, + {}, + { + "special": "Erityiskiitokset", + "caption": "Nintendon tietorakenteiden tutkimus" + }, + {}, + { + "caption": "Konsolitutkimus ja pelipalvelimet" + }, + { + "caption": "Wii U -patchikehitys" + }, + {}, + { + "caption": "Palvelinarkkitehtuuri" + }, + { + "caption": "Palvelinarkkitehtuuri" + }, + {}, + {}, + { + "name": "GitHub-osalliset" + } + ] }, "discordJoin": { "title": "Pysy ajan tasalla", From d7c069f3382edd7b3d6f887b251325d448f50569 Mon Sep 17 00:00:00 2001 From: - Date: Fri, 22 Aug 2025 14:25:49 +0200 Subject: [PATCH 114/214] locales(update): Updated Finnish locale --- locales/fi_FI.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/fi_FI.json b/locales/fi_FI.json index 97d5f66..0400959 100644 --- a/locales/fi_FI.json +++ b/locales/fi_FI.json @@ -220,7 +220,7 @@ }, "blogPage": { "title": "Blogi", - "description": "", + "description": "Uusimmat päivitykset tiivistetyinä lohkoihin. Jos haluat nähdä useammin päivityksiä, harkitse meidän tukemista.", "published": "Julkaissut", "publishedOn": "-" }, From 2df73a1adec70e99dd26c055eea97e211189447d Mon Sep 17 00:00:00 2001 From: 255 <1293883574jcy@gmail.com> Date: Thu, 4 Sep 2025 05:56:15 +0200 Subject: [PATCH 115/214] locales(update): Updated Chinese (Simplified Han script) locale --- locales/zh_CN.json | 100 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 97 insertions(+), 3 deletions(-) diff --git a/locales/zh_CN.json b/locales/zh_CN.json index 18f46ce..9480d95 100644 --- a/locales/zh_CN.json +++ b/locales/zh_CN.json @@ -76,6 +76,14 @@ { "question": "Pretendo会支持 Wii/Switch 吗?", "answer": "是的,您需要破解您的设备才能连接;但是,在 Wii U 上,您只需要访问 Homebrew Launcher(即 Haxchi、Coldboot Haxchi 甚至网络浏览器漏洞利用程序),稍后会提供有关 3DS 将如何连接的信息。" + }, + {}, + { + "question": "如果我在 Nintendo Network 上被封禁,那么使用 Pretendo 时我还会保持被封禁状态吗?", + "answer": "我们无法访问 Nintendo Network 的禁令,因此所有 Nintendo Network 用户禁令都不生效。但是,在使用 Pretendo 服务时需要遵守我们的一些规则,不遵守这些规则可能会导致被封禁。" + }, + { + "answer": "仅在私人匹配中可以 - 获得不公平的优势或破坏未经同意的人的在线体验(如在公开匹配中)是会被封禁的违规行为。我们定期封禁 Wii U 和 3DS 系统应用帐户和主机。Pretendo 使用额外的安全措施,使传统的“解禁”方法(例如更改序列号)无效。" } ] }, @@ -99,11 +107,93 @@ }, "credits": { "title": "团队", - "text": "认识项目背后的团队" + "text": "认识项目背后的团队", + "people": [ + { + "name": "乔纳森·巴罗 (jonbarrow)", + "caption": "项目所有者和首席开发人员", + "picture": "https://github.com/jonbarrow.png", + "github": "https://github.com/jonbarrow" + }, + { + "caption": "Miiverse 研究与开发" + }, + { + "caption": "Wii U 研究和补丁开发" + }, + { + "caption": "系统研究和服务器架构" + }, + { + "caption": "Web 开发" + }, + { + "caption": "系统研究和服务器开发" + }, + {}, + { + "caption": "系统研究和服务器开发" + }, + {}, + { + "caption": "DevOps 和社区工作" + }, + { + "caption": "服务器开发与优化" + }, + { + "caption": "3DS 补丁开发与研究" + } + ] }, "specialThanks": { "title": "特别感谢", - "text": "没有他们,Pretendo 就不会是今天的样子。" + "text": "没有他们,Pretendo 就不会是今天的样子。", + "people": [ + { + "name": "GitHub 贡献者", + "caption": "本地化和其他贡献" + }, + {}, + { + "caption": "3DS 开发和 NEX 解析器" + }, + { + "caption": "Miiverse 信息分享" + }, + { + "special": "特别感谢", + "caption": "对 Nintendo 数据结构的研究" + }, + { + "caption": "Mii 编辑器和 Juxt 反应的图标" + }, + { + "caption": "主机研究和游戏服务器" + }, + { + "caption": "Wii U 补丁开发" + }, + { + "caption": "3DS 补丁创建" + }, + { + "caption": "服务器架构" + }, + { + "caption": "服务器架构" + }, + { + "caption": "Splatoon 轮换和研究" + }, + { + "caption": "Splatoon 轮换和研究" + }, + { + "name": "GitHub 贡献者", + "caption": "本地化和其他贡献" + } + ] }, "discordJoin": { "title": "得到我们的动态与更新", @@ -132,7 +222,8 @@ "超级马里奥世界 2 - 耀西岛 的主题是绝对的爆好听,你无法说服我。", "我最喜欢的 Nintendo Switch 版本是 Nintendo Switch Online + 扩展包、Nintendo Switch Online + Rumble Pak、Nintendo Switch Online + Offline Play Pack、Nintendo Switch Online + Yet another Port Pack 和 Nintendo Switch Online + Kawashima 博士的大脑训练/Brain Age“你真的很喜欢 Nintendo Wii U 虚拟控制台标题,所以我们要把它带回来”包。你真的可以看出任天堂在不在乎。", "就像“你知道 Ash,祝福她的心,她一整天都在 UwU”是南方的一种很好的说法,“Ash一直都是在 uwu ,这真的很奇怪和愚蠢,我希望他们没有”", - "涐恠涐の頻檤丄の第①嗰視頻!!涐想製莋視頻已俓佷玖ㄋ,但涐の毞誋夲電脳運哘嘚佷糟糕,涐兂法茼埘運哘 frāp$、$kypé 啝 mīńécrāfτ。但現恠結涑ㄋ!恠涐の IT 佬師の幫助丅,涐の毞誋夲電脳運哘嘚莄ぬㄋ,涐現恠岢苡錄喑ㄋ!涐俙望伱扪嘟囍歡,侞淉伱囍歡,請囍歡啝訂閲!!!" + "涐恠涐の頻檤丄の第①嗰視頻!!涐想製莋視頻已俓佷玖ㄋ,但涐の毞誋夲電脳運哘嘚佷糟糕,涐兂法茼埘運哘 frāp$、$kypé 啝 mīńécrāfτ。但現恠結涑ㄋ!恠涐の IT 佬師の幫助丅,涐の毞誋夲電脳運哘嘚莄ぬㄋ,涐現恠岢苡錄喑ㄋ!涐俙望伱扪嘟囍歡,侞淉伱囍歡,請囍歡啝訂閲!!!", + "我觉得不错" ] }, "progressPage": { @@ -276,5 +367,8 @@ "cancel": "取消", "confirm": "确认", "close": "关闭" + }, + "notfound": { + "description": "糟糕!我们找不到该页面。" } } From c15635e0a672007956a9d1f2c9adf54ca392a441 Mon Sep 17 00:00:00 2001 From: Andres Joel Date: Sun, 7 Sep 2025 06:48:35 +0200 Subject: [PATCH 116/214] locales(update): Updated Spanish locale --- locales/es_ES.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index a55720d..4f7b79e 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -71,7 +71,7 @@ }, { "question": "¿Pretendo funciona en Cemu/emuladores?", - "answer": "La Wii ya tiene servidores en línea personalizados por parte de Wiimmfi. No tenemos planeado trabajar con la Switch ya que sus servicios son de pago y completamente diferentes a los de Nintendo Network." + "answer": "La Wii ya tiene servidores en línea personalizados por parte de Wiimmfi. No tenemos planeado trabajar con la Switch ya que sus servicios son de pago y completamente diferentes a los de Nintendo Network." }, { "question": "¿Pretendo será compatible con la Wii/Switch?", From 22f835f0be3da24885dc94be096d5a56d355be49 Mon Sep 17 00:00:00 2001 From: Chris Date: Sun, 7 Sep 2025 07:10:27 +0200 Subject: [PATCH 117/214] locales(update): Updated Spanish locale --- locales/es_ES.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index 4f7b79e..ab37d35 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -85,7 +85,8 @@ "answer": "No tenemos acceso a las suspensiones de cuenta de Nintendo Network, entonces todos los usuarios de Nintendo Network no están baneados. Sin embargo, tenemos reglas a seguir al usar el servicio y el incumplimiento de estas reglas puede resultar en una suspensión." }, { - "question": "¿Puedo utilizar trucos o modificaciones con Pretendo?" + "question": "¿Puedo utilizar trucos o modificaciones con Pretendo?", + "answer": "Solo en partidas privadas - tener una ventaja injusta o afectar la experiencia en línea de otras personas sin su consentimiento (es decir, en partidas públicas) es una ofensa que puede resultar en la suspensión de su cuenta. Aplicamos regularmente suspensiones de cuenta y consola tanto en sistemas Wii U y 3DS. Pretendo usa medidas de seguridad adicionales que hacen que los métodos tradicionales de evasiones de suspensiones como cambiar el número de serie sean ineficaces." } ] }, From 331b83cb650137bdfbb8922d473f6588bd331c10 Mon Sep 17 00:00:00 2001 From: Deleted User Date: Wed, 10 Sep 2025 01:12:05 +0200 Subject: [PATCH 118/214] locales(update): Updated Spanish locale --- locales/es_ES.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index ab37d35..a9762a6 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -55,7 +55,7 @@ }, { "question": "¿Cómo uso Pretendo?", - "answer": "Para comenzar a utilizar Pretendo Network en 3DS, Wii U o emuladores, consulta nuestras instrucciones de instalación." + "answer": "¡Para empezar a usar Pretendo Network en 3DS, Wii U o emuladores, consulta nuestras instrucciones de instalación!" }, { "question": "¿Sabéis cuándo determinada función/servicio estará listo/a?", From 66370cb59d2f7326506bb0cfe0e08d34fbee19b4 Mon Sep 17 00:00:00 2001 From: Chris Date: Wed, 10 Sep 2025 01:12:37 +0200 Subject: [PATCH 119/214] locales(update): Updated Spanish locale --- locales/es_ES.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index a9762a6..9179b67 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -78,7 +78,7 @@ "answer": "La Wii ya tiene servidores en línea personalizados por parte de Wiimmfi. No tenemos planeado trabajar con la Switch ya que sus servicios son de pago y completamente diferentes a los de Nintendo Network." }, { - "question": "Si me expulsan en Nintendo Network, ¿seguiré expulsado cuando use Pretendo?" + "question": "¿Necesitaré usar hacks para conectarme?" }, { "question": "Si se me ha suspendido el acceso a Nintendo Network, ¿se mantendrá el suspenso en Pretendo?", From c7fde81f4cb4bddb66e39baa4287eb57d0b2db62 Mon Sep 17 00:00:00 2001 From: Apueblar Date: Mon, 15 Sep 2025 02:13:02 +0200 Subject: [PATCH 120/214] locales(update): Updated Spanish locale --- locales/es_ES.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index 9179b67..b359c98 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -78,7 +78,8 @@ "answer": "La Wii ya tiene servidores en línea personalizados por parte de Wiimmfi. No tenemos planeado trabajar con la Switch ya que sus servicios son de pago y completamente diferentes a los de Nintendo Network." }, { - "question": "¿Necesitaré usar hacks para conectarme?" + "question": "¿Necesitaré usar hacks para conectarme?", + "answer": "Para la mejor experiencia en consolas, necesitarás hackear tu sistema – específicamente Aroma para Wii U y Luma3DS para 3DS. No obstante, en Wii U también está disponible el método SSSL sin hackeo, aunque con funcionalidad limitada. Consulta nuestras instrucciones de instalación para más detalles." }, { "question": "Si se me ha suspendido el acceso a Nintendo Network, ¿se mantendrá el suspenso en Pretendo?", From 3d0c46299ce0a35df91113507210d2604db47ccf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Campa=C3=B1a=20Sanz?= Date: Mon, 15 Sep 2025 02:14:29 +0200 Subject: [PATCH 121/214] locales(update): Updated Spanish locale --- locales/es_ES.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index b359c98..1df0d5e 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -82,7 +82,7 @@ "answer": "Para la mejor experiencia en consolas, necesitarás hackear tu sistema – específicamente Aroma para Wii U y Luma3DS para 3DS. No obstante, en Wii U también está disponible el método SSSL sin hackeo, aunque con funcionalidad limitada. Consulta nuestras instrucciones de instalación para más detalles." }, { - "question": "Si se me ha suspendido el acceso a Nintendo Network, ¿se mantendrá el suspenso en Pretendo?", + "question": "Si he sido baneado en Nintendo Network, ¿permanecerá el baneo si utilizo Pretendo?", "answer": "No tenemos acceso a las suspensiones de cuenta de Nintendo Network, entonces todos los usuarios de Nintendo Network no están baneados. Sin embargo, tenemos reglas a seguir al usar el servicio y el incumplimiento de estas reglas puede resultar en una suspensión." }, { From 6b8b98811b074e8de052dea7670f330820275fb9 Mon Sep 17 00:00:00 2001 From: Chris Date: Mon, 15 Sep 2025 02:15:34 +0200 Subject: [PATCH 122/214] locales(update): Updated Spanish locale --- locales/es_ES.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index 1df0d5e..8eb240c 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -86,7 +86,7 @@ "answer": "No tenemos acceso a las suspensiones de cuenta de Nintendo Network, entonces todos los usuarios de Nintendo Network no están baneados. Sin embargo, tenemos reglas a seguir al usar el servicio y el incumplimiento de estas reglas puede resultar en una suspensión." }, { - "question": "¿Puedo utilizar trucos o modificaciones con Pretendo?", + "question": "¿Puedo usar trampas o mods en línea con Pretendo?", "answer": "Solo en partidas privadas - tener una ventaja injusta o afectar la experiencia en línea de otras personas sin su consentimiento (es decir, en partidas públicas) es una ofensa que puede resultar en la suspensión de su cuenta. Aplicamos regularmente suspensiones de cuenta y consola tanto en sistemas Wii U y 3DS. Pretendo usa medidas de seguridad adicionales que hacen que los métodos tradicionales de evasiones de suspensiones como cambiar el número de serie sean ineficaces." } ] From 541615557c1ec5e54c9754741a20e6e12d3d66da Mon Sep 17 00:00:00 2001 From: Samuel David Zambrano Date: Mon, 15 Sep 2025 02:17:52 +0200 Subject: [PATCH 123/214] locales(update): Updated Spanish locale --- locales/es_ES.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/locales/es_ES.json b/locales/es_ES.json index 8eb240c..3edb280 100644 --- a/locales/es_ES.json +++ b/locales/es_ES.json @@ -87,7 +87,7 @@ }, { "question": "¿Puedo usar trampas o mods en línea con Pretendo?", - "answer": "Solo en partidas privadas - tener una ventaja injusta o afectar la experiencia en línea de otras personas sin su consentimiento (es decir, en partidas públicas) es una ofensa que puede resultar en la suspensión de su cuenta. Aplicamos regularmente suspensiones de cuenta y consola tanto en sistemas Wii U y 3DS. Pretendo usa medidas de seguridad adicionales que hacen que los métodos tradicionales de evasiones de suspensiones como cambiar el número de serie sean ineficaces." + "answer": "Solo en partidas privadas - Obtener una ventaja injusta o interrumpir la experiencia en línea con personas que no lo consintieron (como en las partidas publicas) es una ofensa que puede llevar a un baneo. Regularmente aplicamos baneos de cuenta y de consola en sistemas WII U y 3DS. Pretendo utiliza medidas de seguridad adicionales que hacen ineficaces los métodos de \"desbaneo\" tradicionales como cambiar el número de serie" } ] }, From f849e7030ccbd4a694ac7f6b53aec37155bfd206 Mon Sep 17 00:00:00 2001 From: Florian Gerling Date: Fri, 19 Sep 2025 10:40:38 +0200 Subject: [PATCH 124/214] locales(update): Updated German locale --- locales/de_DE.json | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/locales/de_DE.json b/locales/de_DE.json index 33cf7ee..45227d7 100644 --- a/locales/de_DE.json +++ b/locales/de_DE.json @@ -59,7 +59,7 @@ }, { "question": "Weißt du, wann Funktion/Dienst bereit ist?", - "answer": "Nein. Viele der Funktionen und Dienste von Pretendo werden unabhängig voneinander entwickelt (z. B., ein Entwickler arbeitet am Miiverse während ein anderer an Accounts und der Freundesliste arbeitet), deshalb können wir keine genauen Angaben zur jeweiligen Fertigstellung machen." + "answer": "Nein. Die verschiedenen Funktionen und Dienste von Pretendo werden unabhängig voneinander entwickelt, z. B. arbeitet ein Entwickler am Miiverse, während ein anderer an Accounts und der Freundesliste arbeitet. Daher können wir keine genauen Angaben zur jeweiligen Fertigstellung machen." }, { "question": "Wann werdet ihr neue Spiele hinzufügen?", @@ -70,30 +70,30 @@ "answer": "Nein. Aus Sicherheits- und Moderationsgründen musst du, auch wenn du einen Emulator benutzt, trotzdem eine echte Konsole besitzen. Das ermöglicht erhöhte Sicherheit und ein einfacheres Umsetzen der Regeln, um ein sicheres und angenehmes Erlebnis mit unseren Diensten zu bieten." }, { - "question": "Funktioniert Pretendo auf Cemu/Emulatoren?", + "question": "Ist Pretendo mit Cemu oder anderen Emulatoren kompatibel?", "answer": "Cemu 2.1 unterstützt offiziell Pretendo unter den Netzwerk-Account-Optionen im Emulator. Für mehr Informationen, wie du mit Cemu loslegen kannst, beachte bitte die Dokumentationbr> Einige 3DS-Emulatoren oder Forks könnten uns unterstützen, aber wir haben zu dieser Zeit keine offizielle Empfehlung oder Setup-Anleitung. Die letzten Builds von Citra unterstützen Pretendo nicht." }, { - "question": "Wird Pretendo die Wii/Switch unterstützen?", - "answer": "Inoffizielle Wii-Server werden bereits von Wiimmfi bereitgestellt. Eine Unterstützung der Switch streben wir nicht an, da es sich um ein gebührenpflichtiges Netzwerk handelt, das sich fundamental vom Nintendo Network unterscheidet." + "question": "Wird Pretendo die Wii oder die Switch unterstützen?", + "answer": "Inoffizielle Wii-Server werden bereits von Wiimmfi bereitgestellt. Eine Unterstützung der Switch streben wir aktuell nicht an, da es sich bei Nintendo Switch Online um ein gebührenpflichtiges Netzwerk handelt, welches sich fundamental vom Nintendo Network unterscheidet." }, { "question": "Werde ich meine Konsole modifizieren müssen, um mich verbinden zu können?", "answer": "Wir haben keinen Zugriff auf die Bannliste des Nintendo Network, daher sind keine Nintendo Network Nutzer gebannt. Allerdings haben wir Regeln, die bei der Nutzung des Dienstes befolgt werden müssen, und die Nichteinhaltung dieser Regeln kann zu einem Bann führen." }, { - "question": "Kann ich Cheats oder Mods online mit Pretendo verwenden?", - "answer": "Nur in privaten Matches – sich einen unfairen Vorteil zu verschaffen oder das Online-Erlebnis von Personen zu stören, die nicht zugestimmt haben (wie beispielsweise in öffentlichen Matches), ist ein bannbarer Verstoß. Wir verhängen regelmäßig Konto- und Konsolensperren sowohl für Wii U- als auch für 3DS-Systeme. Pretendo verwendet zusätzliche Sicherheitsmaßnahmen, die traditionelle ‘Entbannungs’-Methoden wie das Ändern der Seriennummer unwirksam machen." + "question": "Ich bin im Nintendo Network gebannt, werde ich auch bei Pretendo gebannt sein?", + "answer": "Wir haben keinen Zugriff auf die Bannliste des Nintendo Network, daher sind diese Nutzer nicht automatisch gebannt. Wir haben jedoch unsere eigenen Regeln, die Nichtbeachtung dieser kann zu einen Bann führen." }, { "question": "Kann ich Cheats oder Mods online mit Pretendo verwenden?", - "answer": "Nur in privaten Matches – sich einen unfairen Vorteil zu verschaffen oder das Online-Erlebnis anderer ohne deren Zustimmung zu stören (z. B. in öffentlichen Matches), ist ein bannbarer Verstoß. Wir verhängen regelmäßig Account- und Konsolensperren für Wii U- und 3DS-Systeme. Pretendo nutzt zusätzliche Sicherheitsmaßnahmen, die herkömmliche 'Unban'-Methoden, wie das Ändern der Seriennummer, unwirksam machen." + "answer": "In privaten Matches sind Modifikationen und Cheats erlaubt. In öffentlichen Matches ist es jedoch ein bannbarer Verstoß sich einen unfairen Vorteil zu verschaffen und/oder das Online-Erlebnis anderer zu stören. Wir verhängen regelmäßig Account- und Konsolensperren für Wii U- und 3DS-Systeme. Pretendo verfügt über zusätzliche Sicherheitsmaßnahmen, welche herkömmliche Methoden zur Umgehung dieser, wie das Ändern der Seriennummer, unwirksam machen." } ] }, "showcase": { "title": "Was wir machen", - "text": "Unser Projekt hat viele Komponenten, hier sind einige davon.", + "text": "Unser Projekt umfasst verschiedene Bestandteile, von denen einige im Folgenden aufgeführt sind.", "cards": [ { "title": "Spiel-Server", @@ -101,7 +101,7 @@ }, { "title": "Juxtaposition", - "caption": "Eine Neuinterpretation des Miiverse, als ob es im modernen Zeitalter entwickelt wurde." + "caption": "Eine moderne Neuinterpretation des Miiverse, als ob es heute entwickelt worden wäre." }, { "title": "Cemu-Unterstützung", @@ -129,7 +129,7 @@ "name": "quarky", "picture": "https://github.com/ashquarky.png", "github": "https://github.com/ashquarky", - "caption": "Wii U Forschung und Patch-Entwicklung" + "caption": "Forschung und Patch-Entwicklung für die Wii U" }, { "picture": "https://github.com/supermariodabom.png", @@ -147,19 +147,19 @@ "name": "Shutterbug2000", "picture": "https://cdn.discordapp.com/avatars/191370953807233024/0311b61e2009c1576828dd2e9a59d72e.png?size=128", "github": "https://github.com/shutterbug2000", - "caption": "Systemforschung und Server Entwicklung" + "caption": "Systemforschung und Serverentwicklung" }, { "name": "Billy", "picture": "https://github.com/InternalLoss.png", "github": "https://github.com/InternalLoss", - "caption": "Erhaltung und Server-Architektur" + "caption": "Erhaltung und Serverarchitektur" }, { "name": "DaniElectra", "picture": "https://github.com/danielectra.png", "github": "https://github.com/DaniElectra", - "caption": "Systemforschung und Server-Entwicklung" + "caption": "Systemforschung und Serverentwicklung" }, { "name": "niko", From f177af5e2dd0deca513c08c8a7c4a636ca7bba8a Mon Sep 17 00:00:00 2001 From: Evan Lie Date: Sat, 20 Sep 2025 16:24:22 +0200 Subject: [PATCH 125/214] locales(update): Updated Indonesian locale --- locales/id_ID.json | 397 +++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 387 insertions(+), 10 deletions(-) diff --git a/locales/id_ID.json b/locales/id_ID.json index a098614..f52ab5d 100644 --- a/locales/id_ID.json +++ b/locales/id_ID.json @@ -34,7 +34,7 @@ "title": "Tentang kami", "paragraphs": [ "Pretendo adalah proyek sumber terbuka dengan tujuan untuk membuat ulang Nintendo Network untuk 3DS dan Wii U menggunakan rekaya terbalik ruang bersih.", - "Karena layanan kami bersifat gratis dan sumber terbuka, layanan tersebut akan tetap bertahan lama setelah penutupan Nintendo Network yang pasti akan terjadi." + "Karena layanan kami bersifat gratis dan sumber terbuka, layanan kami akan tetap ada untuk waktu yang lama di masa depan." ] }, "progress": { @@ -45,7 +45,8 @@ "text": "Berikut adalah beberapa pertanyaan umum yang sering diajukan kepada kami untuk mendapatkan informasi yang mudah.", "QAs": [ { - "question": "Apa itu Pretendo?" + "question": "Apa itu Pretendo?", + "answer": "Pretendo adalah pengganti Nintendo Network sumber terbuka yang bertujuan untuk membangun server khusus bagi keluarga konsol Wii U dan 3DS. Tujuan kami adalah untuk mempertahankan fungsionalitas daring konsol ini, agar pemain dapat terus memainkan gim Wii U dan 3DS favorit mereka dengan kapasitas maksimal." }, { "answer": "Sayangnya, tidak. NNIDs yang sudah ada tidak bisa digunakan di Pretendo, karena hanya Nintendo memegang data user mu; sedangkan migrasi dari NNID-ke-PNID secara teori memungkinkan, itu bisa berisiko dan membutuhkan data user sensitif yang kami tidak ingin memiliki.", @@ -55,26 +56,402 @@ "question": "Bagaimana saya mengunakan Pretendo?", "answer": "Untuk memulai dengan Jaringan Pretendo di 3DS, Wii U atau emulator, mohon melihat instruksi setup kami!" }, - {}, { - "question": "Kapan akan kamu tambahkan lebih banyak game?" + "question": "Kapan anda tahu kapan fitur/layanan akan siap?", + "answer": "Tidak. Banyak fitur/layanan Pretendo dikembangkan secara terpisah (misalnya, Miiverse mungkin sedang dikerjakan oleh satu pengembang sementara Akun dan Teman sedang dikerjakan oleh pengembang lain) dan oleh karena itu kami tidak dapat memberikan perkiraan waktu penyelesaian secara keseluruhan untuk berapa lama ini akan memakan waktu." }, { - "question": "Jika aku menggunakan emulator, apakah itu cukup untuk menggunakan Pretendo?" + "question": "Kapan akan kamu tambahkan lebih banyak game?", + "answer": "Kami mulai mengembangkan game baru setelah kami yakin bahwa perpustakaan backend kami siap untuk mendukungnya, dan ada waktu pengembangan yang tersedia untuk memeliharanya. Sebagian besar pekerjaan kami difokuskan pada stabilisasi dan penyelesaian game-game yang sudah ada - kami ingin memastikan pengalaman terbaik di game-game tersebut sebelum beralih ke judul baru. Karena pekerjaan baru terus bermunculan, kami tidak dapat memberikan perkiraan kapan hal itu akan terjadi." }, - {}, { - "question": "Akankah Pretendo mendukung Wii/Switch?" + "question": "Jika aku menggunakan emulator, apakah itu cukup untuk menggunakan Pretendo?", + "answer": "Tidak. Untuk tujuan keamanan dan moderasi, jika Anda menggunakan emulator, Anda tetap memerlukan konsol asli. Hal ini memungkinkan peningkatan keamanan dan penegakan aturan yang lebih efektif guna menyediakan pengalaman yang aman dan menyenangkan saat menggunakan layanan kami." }, - {}, { - "question": "Jika aku di-banned di Jaringan Nintendo, Apakah aku tetap ter-banned saat menggunakan Pretendo?" + "question": "Apakah Pretendo berfungsi di Cemu/emulator?", + "answer": "Cemu 2.1 secara resmi mendukung Pretendo di bawah opsi akun jaringan Anda di emulator. Untuk informasi tentang cara memulai dengan Cemu, silakan lihat dokumentasinya.
    Beberapa emulator 3DS atau cabang mungkin mendukung Pretendo, tetapi kami tidak memiliki rekomendasi resmi atau petunjuk pengaturan pada saat ini. Versi final Citra tidak mendukung Pretendo." + }, + { + "question": "Akankah Pretendo mendukung Wii/Switch?", + "answer": "Wii sudah memiliki server khusus yang disediakan oleh Wiimmfi. Saat ini, kami tidak berencana untuk menargetkan Switch karena platform tersebut berbayar dan sepenuhnya berbeda dengan Nintendo Network." + }, + { + "question": "Apakah saya perlu memakai hacks untuk terhubung?", + "answer": "Untuk pengalaman terbaik di konsol, Anda perlu melakukan hack pada sistem Anda - khususnya Aroma untuk Wii U dan Luma3DS untuk 3DS. Namun, pada Wii U, metode SSSL tanpa hack juga tersedia dengan fungsi terbatas. Lihat petunjuk pengaturan kami untuk detailnya." + }, + { + "question": "Jika aku di-banned di Jaringan Nintendo, Apakah aku tetap ter-banned saat menggunakan Pretendo?", + "answer": "Kami tidak memiliki akses ke daftar larangan Nintendo Network, jadi semua pengguna Nintendo Network tidak dilarang. Namun, kami memiliki aturan yang harus diikuti saat menggunakan layanan ini, dan tidak mematuhi aturan tersebut dapat mengakibatkan larangan." + }, + { + "question": "Apakah saya bisa menggunakan cheat atau mod saat bermain online dengan Pretendo?", + "answer": "Hanya dalam pertandingan privat - mendapatkan keuntungan yang tidak adil atau mengganggu pengalaman online dengan orang-orang yang tidak memberikan persetujuan (seperti dalam pertandingan publik) merupakan pelanggaran yang dapat mengakibatkan pemblokiran akun. Kami secara rutin menerapkan pemblokiran akun dan konsol pada sistem Wii U dan 3DS. Pretendo menggunakan langkah-langkah keamanan tambahan yang membuat metode 'pembebasan pemblokiran' tradisional seperti mengubah nomor seri menjadi tidak efektif." } ], "title": "Pertanyaan yang sering diajukan" }, "modals": { "close": "Tutup", - "cancel": "Batal" + "cancel": "Batal", + "confirm": "Konfirmasi" + }, + "showcase": { + "title": "Apa kami buat", + "text": "Proyek kami memiliki banyak komponen. Ini adalah beberapa di antaranya.", + "cards": [ + { + "title": "Server gim", + "caption": "Membawa kembali permainan dan konten favorit anda menggunakan server khusus." + }, + { + "title": "Juxtaposition", + "caption": "Pencitraan ulang Miiverse, dibuat di era modern." + }, + { + "title": "Kompatibilitas dengan Cemu", + "caption": "Mainkan judul Wii U favorit anda bahkan tanpa konsol!" + } + ] + }, + "credits": { + "title": "Tim", + "text": "Temui tim di balik proyek ini", + "people": [ + { + "name": "Jonathan Barrow (jonbarrow)", + "caption": "Pemilik proyek dan pengembang utama", + "picture": "https://github.com/jonbarrow.png", + "github": "https://github.com/jonbarrow" + }, + { + "name": "Jemma (CaramelKat)", + "caption": "Penelitian dan pengembangan Miiverse", + "picture": "https://github.com/caramelkat.png", + "github": "https://github.com/CaramelKat" + }, + { + "name": "quarky", + "caption": "Penelitian dan pengembangan patch Wii U", + "picture": "https://github.com/ashquarky.png", + "github": "https://github.com/ashquarky" + }, + { + "name": "SuperMarioDaBom", + "caption": "Penelitian sistem dan arsitektur server", + "picture": "https://github.com/supermariodabom.png", + "github": "https://github.com/SuperMarioDaBom" + }, + { + "name": "pinklimes", + "caption": "Pengembangan web", + "picture": "https://github.com/gitlimes.png", + "github": "https://github.com/gitlimes" + }, + { + "name": "Shutterbug2000", + "caption": "Penelitian sistem dan pengembangan server", + "picture": "https://cdn.discordapp.com/avatars/191370953807233024/0311b61e2009c1576828dd2e9a59d72e.png?size=128", + "github": "https://github.com/shutterbug2000" + }, + { + "name": "Billy", + "caption": "Pengarsipan dan arsitektur server", + "picture": "https://github.com/InternalLoss.png", + "github": "https://github.com/InternalLoss" + }, + { + "name": "DaniElectra", + "caption": "Penelitian sistem dan pengembangan server", + "picture": "https://github.com/danielectra.png", + "github": "https://github.com/DaniElectra" + }, + { + "name": "niko", + "caption": "Pengembangan web dan server", + "picture": "https://github.com/hauntii.png", + "github": "https://github.com/hauntii" + }, + { + "name": "MatthewL246", + "caption": "DevOps dan kerja komunitas", + "picture": "https://github.com/MatthewL246.png", + "github": "https://github.com/MatthewL246" + }, + { + "name": "wolfendale", + "caption": "Pengembangan dan pengoptimalan server", + "picture": "https://github.com/wolfendale.png", + "github": "https://github.com/wolfendale" + }, + { + "name": "TraceEntertains", + "caption": "Pengembangan dan penelitian patch 3DS", + "picture": "https://github.com/TraceEntertains.png", + "github": "https://github.com/TraceEntertains" + } + ] + }, + "specialThanks": { + "title": "Lebih banyak terimah kasih", + "text": "Tanpa mereka, Pretendo tidak akan menjadi seperti sekarang ini.", + "people": [ + { + "name": "Kontributor GitHub", + "caption": "Lokalisasi dan kontribusi lainnya", + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", + "github": "https://github.com/PretendoNetwork" + }, + { + "name": "superwhiskers", + "caption": "pengembangan pustaka crunch", + "picture": "https://github.com/superwhiskers.png", + "github": "https://github.com/superwhiskers" + }, + { + "name": "Stary", + "caption": "pengembangan 3DS dan disektor NEX", + "picture": "https://github.com/Stary2001.png", + "github": "https://github.com/Stary2001" + }, + { + "name": "rverse", + "caption": "berbagi informasi Miiverse", + "picture": "https://github.com/rverseTeam.png", + "github": "https://twitter.com/rverseClub" + }, + { + "name": "Kinnay", + "special": "lebih banyak terima kasih", + "caption": "Penelitian tentang struktur data Nintendo", + "picture": "https://cdn.discordapp.com/avatars/186572995848830987/b55c0d4e7bfd792edf0689f83a25d8ea.png?size=128", + "github": "https://github.com/Kinnay" + }, + { + "name": "NinStar", + "caption": "Ikon untuk Editor Mii dan reaksi Juxt", + "picture": "https://github.com/ninstar.png", + "github": "https://github.com/ninstar" + }, + { + "name": "Rambo6Glaz", + "caption": "Riset konsol dan server game", + "picture": "https://github.com/EpicUsername12.png", + "github": "https://github.com/EpicUsername12" + }, + { + "name": "GaryOderNichts", + "caption": "Pengembangan patch Wii U", + "picture": "https://github.com/GaryOderNichts.png", + "github": "https://github.com/GaryOderNichts" + }, + { + "name": "zaksabeast", + "caption": "Pembuat patch 3DS", + "picture": "https://cdn.discordapp.com/avatars/219324395707957248/c62573fbd4d26c8b4724f54413df6960.png?size=128", + "github": "https://github.com/zaksabeast" + }, + { + "name": "mrjvs", + "caption": "Arsitektur server", + "picture": "https://github.com/mrjvs.png", + "github": "https://github.com/mrjvs" + }, + { + "name": "binaryoverload", + "caption": "Arsitektur server", + "picture": "https://github.com/binaryoverload.png", + "github": "https://github.com/binaryoverload" + }, + { + "name": "Simonx22", + "caption": "Rotasi Splatoon dan penelitian", + "picture": "https://github.com/Simonx22.png", + "github": "https://github.com/Simonx22" + }, + { + "name": "OatmealDome", + "caption": "Rotasi Splatoon dan penelitian", + "picture": "https://github.com/OatmealDome.png", + "github": "https://github.com/OatmealDome" + }, + { + "name": "Kontributor GitHub", + "caption": "Lokalisasi dan kontribusi lainnya", + "picture": "https://github.githubassets.com/images/modules/logos_page/GitHub-Mark.png", + "github": "https://github.com/PretendoNetwork" + } + ] + }, + "discordJoin": { + "title": "Menikuti update", + "text": "Bergabunglah dengan server Discord kami untuk memperoleh informasi terkini tentang proyek ini.", + "widget": { + "text": "Dapatkan pembaruan waktu nyata tentang kemajuan kami", + "button": "Bergabunglah dengan server" + } + }, + "footer": { + "socials": "Sosial", + "usefulLinks": "Halaman yang berguna", + "widget": { + "captions": [ + "Ingin mendapat informasi terbaru?", + "Bergabunglah dengan server Discord kami!" + ], + "button": "Bergabung sekarang!" + }, + "bandwidthRaccoonQuotes": [ + "Aku adalah Bandwidth si Rakun, dan saya suka menggigit kabel yang masuk ke server Pretendo Network. Enak sekali!", + "Banyak orang bertanya kami apakah kami akan bermasalah dengan Nintendo karena hal ini; saya dengan senang hati mengatakan bahwa bibi saya bekerja di Nintendo dan ia mengatakan semuanya baik-baik saja.", + "Webkit v537 adalah versi terbaik Webkit untuk Wii U. Tidak, kami tidak akan menambahkan Chrome ke Wii U.", + "Saya tidak sabar menunggu jam mencapai 03:14:08 UTC pada tanggal 19 Januari 2038!", + "Wii U sebenarnya adalah sistem yang diremehkan: iklannya sangat buruk, tetapi konsolnya hebat. Huh, tunggu sebentar, saya tidak yakin mengapa GamePad saya tidak terhubung ke Wii saya.", + "Tema utama Super Mario World 2 - Yoshi's Island benar-benar hebat dan tidak mungkin Anda akan meyakinkan saya sebaliknya.", + "Rilisan Nintendo Switch favorit saya adalah Nintendo Switch Online + Paket Ekspansi, Nintendo Switch Online + Paket Rumble, Nintendo Switch Online + Paket Permainan Offline, Nintendo Switch Online + Paket Rilis Ulang Sekali Lagi, dan Nintendo Switch Online + Dr. Kawashima's Brain Training / Brain Age \"Anda Sangat Menyukai Judul Konsol Virtual Nintendo Wii U, Jadi Kami Hadirkan Kembali\" Pack. Anda benar-benar melihat Nintendo peduli.", + "Seperti \"Kau tahu Ash, hatinya diberkati, dia UwU sepanjang hari\" adalah cara orang Amerika Serikat selatan yang baik untuk mengatakan \"Ash uwus sepanjang waktu dan itu benar-benar aneh dan bodoh dan aku berharap mereka tidak melakukannya\"", + "Video pertamaku di saluranku!! Aku sudah lama ingin membuat video, tetapi laptopku berjalan sangat buruk dan aku tidak bisa menjalankan fraps, skype, dan minecraft secara bersamaan. Tapi sekarang sudah selesai! Dengan bantuan dari guru IT-ku, laptopku berjalan jauh lebih baik dan aku bisa merekam sekarang! Aku harap kalian semua menikmatinya dan jika kalian menikmatinya, silakan like dan subscribe!!!", + "Kelihatannya Bagus Bagi Saya" + ] + }, + "progressPage": { + "title": "Kemajuan kita", + "description": "Periksa kemajuan dan sasaran proyek! (Diperbarui setiap jam atau lebih, tidak mencerminkan SEMUA sasaran atau kemajuan proyek)" + }, + "blogPage": { + "title": "Blog", + "description": "Pembaruan terbaru dalam ringkasan singkat. Jika ingin melihat pembaruan yang lebih sering, pertimbangkan untuk mendukung kami.", + "published": "Diterbitkan oleh", + "publishedOn": "pada" + }, + "account": { + "account": "Akun", + "loginForm": { + "login": "Masuk", + "register": "Daftar", + "detailsPrompt": "Masukkan detail akun di bawah ini", + "username": "Nama Pengguna", + "password": "Kata Sandi", + "confirmPassword": "Konfirmasi Kata Sandi", + "email": "Surel", + "miiName": "Nama Mii", + "forgotPassword": "Lupa kata sandi?", + "registerPrompt": "Tidak punya akun?", + "loginPrompt": "Sudah punya akun?" + }, + "forgotPassword": { + "header": "Lupa Kata Sandi", + "sub": "Masukkan alamat surel/PNID Anda di bawah in", + "input": "Surel atau PNID", + "submit": "Kirim" + }, + "resetPassword": { + "header": "Atur Ulang Kata Sandi", + "sub": "Masukkan kata sandi baru di bawah ini", + "password": "Kata Sandi", + "confirmPassword": "Konfirmasi Kata Sandi", + "submit": "Kirim" + }, + "settings": { + "upgrade": "Upgrade akun", + "unavailable": "Tidak tersedia", + "settingCards": { + "userSettings": "Pengaturan pengguna", + "profile": "Profil", + "nickname": "Nama panggilan", + "birthDate": "Tanggal lahir", + "gender": "Jenis kelamin", + "country": "Negara/wilayah", + "timezone": "Zona waktu", + "serverEnv": "Lingkungan server", + "production": "Produksi", + "beta": "Beta", + "upgradePrompt": "Server beta hanya tersedia untuk penguji beta.
    Untuk menjadi penguji beta, tingkatkan ke tingkat akun yang lebih tinggi.", + "hasAccessPrompt": "Tingkat anda saat ini memberikan akses ke server beta. Keren!", + "signInSecurity": "Masuk dan keamanan", + "email": "Surel", + "password": "Kata sandi", + "passwordResetNotice": "Setelah mengubah kata sandi, anda akan keluar dari semua perangkat.", + "signInHistory": "Sejerah masuk", + "fullSignInHistory": "Lihat sejerah masuk lengkap", + "otherSettings": "Pengaturan lain", + "discord": "Discord", + "connectedToDiscord": "Terhubung ke Discord sebagai", + "removeDiscord": "Pisahkan akun Discord", + "noDiscordLinked": "Tidak ada akun Discord yang terhubung.", + "linkDiscord": "Hubungkan akun Discord", + "newsletter": "Surat Kabar", + "newsletterPrompt": "Terima pembaruan proyek melalui email (Anda dapat berhenti berlangganan kapan saja)", + "passwordPrompt": "Masukkan kata sandi PNID untuk mengunduh berkas Cemu.", + "no_signins_notice": "Sejerah masuk saat ini tidak dilacak. Silakan cek kembali nanti!", + "no_newsletter_notice": "Surat kabar saat ini tidak dilacak. Silakan cek kembali nanti!", + "no_edit_from_dashboard": "Pengaturan PNID saat ini tidak dapat diubah melalui situs web. Silakan perbarui pengaturan pengguna dari konsol game yang terhubung." + } + }, + "accountLevel": [ + "Standar", + "Penguji", + "Moderator", + "Pengembang" + ], + "banned": "Dilarang" + }, + "upgrade": { + "title": "Upgrade Akun", + "description": "Mencapai target bulanan akan menjadikan Pretendo sebagai pekerjaan penuh waktu, sehingga dapat menyediakan pembaruan berkualitas lebih baik dengan kecepatan yang lebih tinggi.", + "month": "bulan", + "tierSelectPrompt": "Pilih tingkatan", + "unsub": "Berhenti Berlangganan", + "unsubPrompt": "Apakah Anda yakin ingin berhenti berlangganan dari tiername? Anda akan segera kehilangan akses ke manfaat yang terkait dengan tingkatan tersebut.", + "unsubConfirm": "Berhenti Berlangganan", + "changeTier": "Ubah tingkatan", + "changeTierPrompt": "Apakah yakin ingin berhenti berlangganan dari oldtiername dan berlangganan ke newtiername?", + "changeTierConfirm": "Ubah tingkatan", + "back": "Kembali" + }, + "donation": { + "progress": "$${totd} dari $${goald} per bulan, ${perc}% dari target bulanan.", + "upgradePush": "Untuk menjadi pelanggan dan mendapatkan akses ke berbagai keuntungan menarik, kunjungi halaman upgrade." + }, + "localizationPage": { + "title": "Mari kita lokalkan", + "description": "Salin tautan ke file JSON locale yang dapat diakses publik untuk mengujinya di situs web.", + "instructions": "Lihat petunjuk lokalisasi", + "fileInput": "Berkas untuk diuji", + "filePlaceholder": "https://a.link.to/the_file.json", + "button": "Berkas uji" + }, + "docs": { + "missingInLocale": "Halaman ini tidak tersedia dalam bahasa anda. Silakan periksa versi bahasa Inggris di bawah ini.", + "quickLinks": { + "header": "Tautan cepat", + "links": [ + { + "header": "Instal Pretendo", + "caption": "Lihat petunjuk pengaturan" + }, + { + "header": "Ada kesalahan?", + "caption": "Cari di sini" + } + ] + }, + "search": { + "title": "Mendapatkan kode kesalahan?", + "caption": "Ketikkan di kotak di bawah ini untuk mendapatkan informasi tentang masalah anda!", + "label": "Kode kesalahan", + "no_match": "Tidak ditemukan hasil yang sesuai" + }, + "sidebar": { + "getting_started": "Memulai", + "welcome": "Selamat datang", + "install_extended": "Instal Pretendo", + "install": "Instal", + "search": "Cari", + "juxt_err": "Kode kesalahan - Juxt" + } + }, + "notfound": { + "description": "Maaf! Kami tidak dapat menemukan halaman ini." } } From 6b5b508897679c3f2c04f1493b78bf9bcb132f2d Mon Sep 17 00:00:00 2001 From: Jonathan Barrow Date: Wed, 1 Oct 2025 10:56:07 -0400 Subject: [PATCH 126/214] feat: add changes needed to comply with new Mississippi laws see https://github.com/PretendoNetwork/account/pull/194 for details --- src/routes/account.js | 10 +++++++++- src/server.js | 2 ++ views/account/register.handlebars | 5 +++++ 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/src/routes/account.js b/src/routes/account.js index 01f293d..851f2b3 100644 --- a/src/routes/account.js +++ b/src/routes/account.js @@ -112,7 +112,13 @@ router.get('/register', async (request, response) => { }); router.post('/register', async (request, response) => { - const { email, username, mii_name, password, password_confirm, 'h-captcha-response': hCaptchaResponse } = request.body; + const { email, username, mii_name, birthday, password, password_confirm, 'h-captcha-response': hCaptchaResponse } = request.body; + + // * IP must be forwarded to the account server so we can check for age related issues based on region. + // * This is NEVER recorded in our records, ever. See https://github.com/PretendoNetwork/account/pull/194 + // * for more details. Once the IP is used to query for location, both the IP and location are disregarded + // * and no data is stored for blocked users + const ip = request.ip; // TODO - Enable `CF-IPCountry` in Cloudflare and only use this as a fallback response.cookie('email', email, { domain: '.pretendo.network' }); response.cookie('username', username, { domain: '.pretendo.network' }); @@ -120,9 +126,11 @@ router.post('/register', async (request, response) => { try { const tokens = await util.register({ + ip, email, username, mii_name, + birthday, password, password_confirm, hCaptchaResponse diff --git a/src/server.js b/src/server.js index c48e7be..bb8765a 100644 --- a/src/server.js +++ b/src/server.js @@ -19,6 +19,8 @@ const { http: { port } } = config; const app = express(); // const stripe = new Stripe(config.stripe.secret_key); +app.set('trust proxy', true); // TODO - Make this configurable + logger.info('Setting up Middleware'); app.use(morgan('dev')); // app.use(express.json()); diff --git a/views/account/register.handlebars b/views/account/register.handlebars index b8daa80..e4be193 100644 --- a/views/account/register.handlebars +++ b/views/account/register.handlebars @@ -23,6 +23,11 @@
    +
    + {{! TODO - Add this to weblate, hard-coding for now to just push it out }} + +
    +
    From c8fbfa068b214d698b4046f536c4f9a7ff965864 Mon Sep 17 00:00:00 2001 From: Jonathan Barrow Date: Fri, 3 Oct 2025 14:46:11 -0400 Subject: [PATCH 127/214] feat: add PNID deletion button to account page --- package-lock.json | 595 ++++++++++++++++++++++++++++++- package.json | 2 + public/assets/css/account.css | 4 + public/assets/js/account.js | 21 ++ src/config.js | 9 +- src/routes/account.js | 28 ++ views/account/account.handlebars | 15 + 7 files changed, 660 insertions(+), 14 deletions(-) diff --git a/package-lock.json b/package-lock.json index 05f6f25..6064145 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,6 +13,7 @@ "@discordjs/rest": "^0.5.0", "@node-saml/node-saml": "^5.0.0", "@pretendonetwork/error-codes": "^1.0.3", + "@pretendonetwork/grpc": "^2.2.3", "browserify": "^17.0.0", "colors": "^1.4.0", "cookie-parser": "^1.4.5", @@ -30,6 +31,7 @@ "mii-js": "github:PretendoNetwork/mii-js#v1.0.4", "mongoose": "^6.4.0", "morgan": "^1.10.0", + "nice-grpc": "^2.1.13", "nodemailer": "^6.7.5", "stripe": "^9.9.0" }, @@ -1187,6 +1189,12 @@ "tslib": "^2.3.1" } }, + "node_modules/@bufbuild/protobuf": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.9.0.tgz", + "integrity": "sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA==", + "license": "(Apache-2.0 AND BSD-3-Clause)" + }, "node_modules/@discordjs/collection": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.7.0.tgz", @@ -1438,6 +1446,37 @@ "node": ">=14" } }, + "node_modules/@grpc/grpc-js": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.14.0.tgz", + "integrity": "sha512-N8Jx6PaYzcTRNzirReJCtADVoq4z7+1KQ4E70jTg/koQiMoUSN1kbNjPOqpPbhMFhfU1/l7ixspPl8dNY+FoUg==", + "license": "Apache-2.0", + "dependencies": { + "@grpc/proto-loader": "^0.8.0", + "@js-sdsl/ordered-map": "^4.4.2" + }, + "engines": { + "node": ">=12.10.0" + } + }, + "node_modules/@grpc/proto-loader": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.8.0.tgz", + "integrity": "sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==", + "license": "Apache-2.0", + "dependencies": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.5.3", + "yargs": "^17.7.2" + }, + "bin": { + "proto-loader-gen-types": "build/bin/proto-loader-gen-types.js" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -1499,6 +1538,16 @@ "url": "https://github.com/sponsors/nzakas" } }, + "node_modules/@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==", + "license": "MIT", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/js-sdsl" + } + }, "node_modules/@mongodb-js/saslprep": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", @@ -1615,6 +1664,81 @@ "typescript-eslint": "^8.19.1" } }, + "node_modules/@pretendonetwork/grpc": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@pretendonetwork/grpc/-/grpc-2.2.3.tgz", + "integrity": "sha512-bTyUtFPT1/IwAWix9nkNZlmUUlG/k0F6YnARpNIceg9F6Mw1iHvGvMwvuX06PY9svnKDUeGdyR41rl/YUilfBQ==", + "license": "AGPL-3.0-only", + "dependencies": { + "@bufbuild/protobuf": "^2.2.2", + "nice-grpc-common": "^2.0.2", + "typescript": "^5.7.2" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==", + "license": "BSD-3-Clause" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==", + "license": "BSD-3-Clause" + }, "node_modules/@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -2599,6 +2723,12 @@ "node": ">=10.0.0" } }, + "node_modules/abort-controller-x": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/abort-controller-x/-/abort-controller-x-0.4.3.tgz", + "integrity": "sha512-VtUwTNU8fpMwvWGn4xE93ywbogTYsuT+AUxAXOeelbXuQVIwNmC5YLeho9sH4vZ4ITW8414TTAOG1nW6uIVHCA==", + "license": "MIT" + }, "node_modules/accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -2665,11 +2795,19 @@ "url": "https://github.com/sponsors/epoberezkin" } }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "dependencies": { "color-convert": "^2.0.1" }, @@ -3352,6 +3490,20 @@ "safe-buffer": "^5.0.1" } }, + "node_modules/cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "license": "ISC", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + }, + "engines": { + "node": ">=12" + } + }, "node_modules/clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -3364,7 +3516,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "dependencies": { "color-name": "~1.1.4" }, @@ -3375,8 +3526,7 @@ "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/colors": { "version": "1.4.0", @@ -3903,6 +4053,12 @@ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "license": "MIT" + }, "node_modules/encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -4065,6 +4221,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==", + "license": "MIT", + "engines": { + "node": ">=6" + } + }, "node_modules/escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -4858,6 +5023,15 @@ "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "license": "ISC", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, "node_modules/get-intrinsic": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", @@ -5626,6 +5800,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "license": "MIT", + "engines": { + "node": ">=8" + } + }, "node_modules/is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", @@ -5971,6 +6154,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==", + "license": "MIT" + }, "node_modules/lodash.memoize": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", @@ -5981,6 +6170,12 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "node_modules/long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==", + "license": "Apache-2.0" + }, "node_modules/lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -6332,6 +6527,26 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "node_modules/nice-grpc": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/nice-grpc/-/nice-grpc-2.1.13.tgz", + "integrity": "sha512-IkXNok2NFyYh0WKp1aJFwFV3Ue2frBkJ16ojrmgX3Tc9n0g7r0VU+ur3H/leDHPPGsEeVozdMynGxYT30k3D/Q==", + "license": "MIT", + "dependencies": { + "@grpc/grpc-js": "^1.14.0", + "abort-controller-x": "^0.4.0", + "nice-grpc-common": "^2.0.2" + } + }, + "node_modules/nice-grpc-common": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/nice-grpc-common/-/nice-grpc-common-2.0.2.tgz", + "integrity": "sha512-7RNWbls5kAL1QVUOXvBsv1uO0wPQK3lHv+cY1gwkTzirnG1Nop4cBJZubpgziNbaVc/bl9QJcyvsf/NQxa3rjQ==", + "license": "MIT", + "dependencies": { + "ts-error": "^1.0.6" + } + }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -6742,6 +6957,30 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "node_modules/protobufjs": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", + "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", + "hasInstallScript": true, + "license": "BSD-3-Clause", + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -6962,6 +7201,15 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", @@ -7542,6 +7790,20 @@ } ] }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/string.prototype.trim": { "version": "1.2.10", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", @@ -7598,6 +7860,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "license": "MIT", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -7760,6 +8034,12 @@ "typescript": ">=4.8.4" } }, + "node_modules/ts-error": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/ts-error/-/ts-error-1.0.6.tgz", + "integrity": "sha512-tLJxacIQUM82IR7JO1UUkKlYuUTmoY9HBJAmNWFzheSlDS5SPMcNIepejHJa4BpPQLAcbRhRf3GDJzyj6rbKvA==", + "license": "MIT" + }, "node_modules/tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -7889,8 +8169,6 @@ "version": "5.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "dev": true, - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -8212,6 +8490,23 @@ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -8303,6 +8598,42 @@ "node": ">=0.4" } }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "license": "ISC", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "license": "MIT", + "dependencies": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", + "license": "ISC", + "engines": { + "node": ">=12" + } + }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", @@ -9319,6 +9650,11 @@ "tslib": "^2.3.1" } }, + "@bufbuild/protobuf": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/@bufbuild/protobuf/-/protobuf-2.9.0.tgz", + "integrity": "sha512-rnJenoStJ8nvmt9Gzye8nkYd6V22xUAnu4086ER7h1zJ508vStko4pMvDeQ446ilDTFpV5wnoc5YS7XvMwwMqA==" + }, "@discordjs/collection": { "version": "0.7.0", "resolved": "https://registry.npmjs.org/@discordjs/collection/-/collection-0.7.0.tgz", @@ -9496,6 +9832,26 @@ "resolved": "https://registry.npmjs.org/@fastify/busboy/-/busboy-2.0.0.tgz", "integrity": "sha512-JUFJad5lv7jxj926GPgymrWQxxjPYuJNiNjNMzqT+HiuP6Vl3dk5xzG+8sTX96np0ZAluvaMzPsjhHZ5rNuNQQ==" }, + "@grpc/grpc-js": { + "version": "1.14.0", + "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.14.0.tgz", + "integrity": "sha512-N8Jx6PaYzcTRNzirReJCtADVoq4z7+1KQ4E70jTg/koQiMoUSN1kbNjPOqpPbhMFhfU1/l7ixspPl8dNY+FoUg==", + "requires": { + "@grpc/proto-loader": "^0.8.0", + "@js-sdsl/ordered-map": "^4.4.2" + } + }, + "@grpc/proto-loader": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.8.0.tgz", + "integrity": "sha512-rc1hOQtjIWGxcxpb9aHAfLpIctjEnsDehj0DAiVfBlmT84uvR0uUtN2hEi/ecvWVjXUGf5qPF4qEgiLOx1YIMQ==", + "requires": { + "lodash.camelcase": "^4.3.0", + "long": "^5.0.0", + "protobufjs": "^7.5.3", + "yargs": "^17.7.2" + } + }, "@humanfs/core": { "version": "0.19.1", "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", @@ -9532,6 +9888,11 @@ "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", "dev": true }, + "@js-sdsl/ordered-map": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/@js-sdsl/ordered-map/-/ordered-map-4.4.2.tgz", + "integrity": "sha512-iUKgm52T8HOE/makSxjqoWhe95ZJA1/G1sYsGev2JDKUSS14KAgg1LHb+Ba+IPow0xflbnSkOsZcO08C7w1gYw==" + }, "@mongodb-js/saslprep": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.1.1.tgz", @@ -9627,6 +9988,70 @@ "typescript-eslint": "^8.19.1" } }, + "@pretendonetwork/grpc": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@pretendonetwork/grpc/-/grpc-2.2.3.tgz", + "integrity": "sha512-bTyUtFPT1/IwAWix9nkNZlmUUlG/k0F6YnARpNIceg9F6Mw1iHvGvMwvuX06PY9svnKDUeGdyR41rl/YUilfBQ==", + "requires": { + "@bufbuild/protobuf": "^2.2.2", + "nice-grpc-common": "^2.0.2", + "typescript": "^5.7.2" + } + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, "@rtsao/scc": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@rtsao/scc/-/scc-1.1.0.tgz", @@ -10374,6 +10799,11 @@ "resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.10.tgz", "integrity": "sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==" }, + "abort-controller-x": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/abort-controller-x/-/abort-controller-x-0.4.3.tgz", + "integrity": "sha512-VtUwTNU8fpMwvWGn4xE93ywbogTYsuT+AUxAXOeelbXuQVIwNmC5YLeho9sH4vZ4ITW8414TTAOG1nW6uIVHCA==" + }, "accepts": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", @@ -10422,11 +10852,15 @@ "uri-js": "^4.2.2" } }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, "ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "requires": { "color-convert": "^2.0.1" } @@ -10966,6 +11400,16 @@ "safe-buffer": "^5.0.1" } }, + "cliui": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", + "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.1", + "wrap-ansi": "^7.0.0" + } + }, "clone-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", @@ -10978,7 +11422,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "requires": { "color-name": "~1.1.4" } @@ -10986,8 +11429,7 @@ "color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "colors": { "version": "1.4.0", @@ -11407,6 +11849,11 @@ } } }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, "encodeurl": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", @@ -11539,6 +11986,11 @@ "is-symbol": "^1.0.4" } }, + "escalade": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz", + "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==" + }, "escape-html": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", @@ -12127,6 +12579,11 @@ "resolved": "https://registry.npmjs.org/get-assigned-identifiers/-/get-assigned-identifiers-1.2.0.tgz", "integrity": "sha512-mBBwmeGTrxEMO4pMaaf/uUEFHnYtwr8FTe8Y/mer4rcV/bye0qGm6pw1bGZFGStxC5O76c5ZAVBGnqHmOaJpdQ==" }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, "get-intrinsic": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.7.tgz", @@ -12653,6 +13110,11 @@ "call-bound": "^1.0.3" } }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, "is-generator-function": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz", @@ -12888,6 +13350,11 @@ "p-locate": "^5.0.0" } }, + "lodash.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, "lodash.memoize": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-3.0.4.tgz", @@ -12898,6 +13365,11 @@ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==" }, + "long": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/long/-/long-5.3.2.tgz", + "integrity": "sha512-mNAgZ1GmyNhD7AuqnTG3/VQ26o760+ZYBPKjPvugO8+nLbYfX6TVpJPseBvopbdY+qpZ/lKUnmEc1LeZYS3QAA==" + }, "lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -13167,6 +13639,24 @@ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==" }, + "nice-grpc": { + "version": "2.1.13", + "resolved": "https://registry.npmjs.org/nice-grpc/-/nice-grpc-2.1.13.tgz", + "integrity": "sha512-IkXNok2NFyYh0WKp1aJFwFV3Ue2frBkJ16ojrmgX3Tc9n0g7r0VU+ur3H/leDHPPGsEeVozdMynGxYT30k3D/Q==", + "requires": { + "@grpc/grpc-js": "^1.14.0", + "abort-controller-x": "^0.4.0", + "nice-grpc-common": "^2.0.2" + } + }, + "nice-grpc-common": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/nice-grpc-common/-/nice-grpc-common-2.0.2.tgz", + "integrity": "sha512-7RNWbls5kAL1QVUOXvBsv1uO0wPQK3lHv+cY1gwkTzirnG1Nop4cBJZubpgziNbaVc/bl9QJcyvsf/NQxa3rjQ==", + "requires": { + "ts-error": "^1.0.6" + } + }, "node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -13460,6 +13950,25 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "protobufjs": { + "version": "7.5.4", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.5.4.tgz", + "integrity": "sha512-CvexbZtbov6jW2eXAvLukXjXUW1TzFaivC46BpWc/3BpcCysb5Vffu+B3XHMm8lVEuy2Mm4XGex8hBSg1yapPg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + } + }, "proxy-addr": { "version": "2.0.7", "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", @@ -13627,6 +14136,11 @@ "set-function-name": "^2.0.2" } }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, "resolve": { "version": "1.22.10", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", @@ -14060,6 +14574,16 @@ } } }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, "string.prototype.trim": { "version": "1.2.10", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz", @@ -14098,6 +14622,14 @@ "es-object-atoms": "^1.0.0" } }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, "strip-bom": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", @@ -14216,6 +14748,11 @@ "dev": true, "requires": {} }, + "ts-error": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/ts-error/-/ts-error-1.0.6.tgz", + "integrity": "sha512-tLJxacIQUM82IR7JO1UUkKlYuUTmoY9HBJAmNWFzheSlDS5SPMcNIepejHJa4BpPQLAcbRhRf3GDJzyj6rbKvA==" + }, "tsconfig-paths": { "version": "3.15.0", "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz", @@ -14317,9 +14854,7 @@ "typescript": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.3.tgz", - "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==", - "dev": true, - "peer": true + "integrity": "sha512-84MVSjMEHP+FQRPy3pX9sTVV/INIex71s9TL2Gm5FG/WG1SqXeKyZ0k7/blY/4FdOzI12CBy1vGc4og/eus0fw==" }, "typescript-eslint": { "version": "8.20.0", @@ -14552,6 +15087,16 @@ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=" }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -14622,6 +15167,30 @@ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", + "requires": { + "cliui": "^8.0.1", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.1.1" + } + }, + "yargs-parser": { + "version": "21.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", + "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==" + }, "yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", diff --git a/package.json b/package.json index fef9fd9..e15d68f 100644 --- a/package.json +++ b/package.json @@ -27,6 +27,7 @@ "@discordjs/rest": "^0.5.0", "@node-saml/node-saml": "^5.0.0", "@pretendonetwork/error-codes": "^1.0.3", + "@pretendonetwork/grpc": "^2.2.3", "browserify": "^17.0.0", "colors": "^1.4.0", "cookie-parser": "^1.4.5", @@ -44,6 +45,7 @@ "mii-js": "github:PretendoNetwork/mii-js#v1.0.4", "mongoose": "^6.4.0", "morgan": "^1.10.0", + "nice-grpc": "^2.1.13", "nodemailer": "^6.7.5", "stripe": "^9.9.0" }, diff --git a/public/assets/css/account.css b/public/assets/css/account.css index bbed44e..fb6d515 100644 --- a/public/assets/css/account.css +++ b/public/assets/css/account.css @@ -126,6 +126,10 @@ color: var(--text-shade-1); } +.account-sidebar .buttons #account-delete { + background-color: #F44336; +} + /* Settings */ .settings-wrapper { display: grid; diff --git a/public/assets/js/account.js b/public/assets/js/account.js index 7d42c68..b2736bb 100644 --- a/public/assets/js/account.js +++ b/public/assets/js/account.js @@ -2,6 +2,10 @@ const updateServerEnvironmentForm = document.querySelector('form.server-selectio const serverSelectionSaveButton = document.querySelector('#save-server-selection'); const editSettingsModal = document.querySelector('.modal-wrapper#edit-settings'); const editSettingsModalButtonClose = document.getElementById('editSettingsCloseButton'); +const deleteAccountButton = document.getElementById('account-delete'); +const deletePNIDConfirmModal = document.querySelector('.modal-wrapper#confirm-delete'); +const deletePNIDConfirmModalButtonConfirm = document.getElementById('confirmDeleteConfirmButton'); +const deletePNIDConfirmModalButtonClose = document.getElementById('confirmDeleteCloseButton'); editSettingsModalButtonClose?.addEventListener('click', () => { editSettingsModal.classList.add('hidden'); @@ -53,3 +57,20 @@ serverSelectionSaveButton.addEventListener('click', (event) => { alert(error); } }); + +deleteAccountButton.addEventListener('click', (event) => { + event.preventDefault(); + deletePNIDConfirmModal.classList.remove('hidden'); +}); + +deletePNIDConfirmModalButtonConfirm?.addEventListener('click', async () => { + await fetch('/account/delete', { + method: 'POST' + }); + + deletePNIDConfirmModal.classList.add('hidden'); +}); + +deletePNIDConfirmModalButtonClose?.addEventListener('click', () => { + deletePNIDConfirmModal.classList.add('hidden'); +}); diff --git a/src/config.js b/src/config.js index f91ef5e..98a8e5d 100644 --- a/src/config.js +++ b/src/config.js @@ -50,5 +50,12 @@ module.exports = { secret: jsonConfig.discourse.sso.secret } }, - email + email, + grpc: { + api: { + host: jsonConfig.grpc.api.host, + port: jsonConfig.grpc.api.port, + api_key: jsonConfig.grpc.api.api_key + } + } }; diff --git a/src/routes/account.js b/src/routes/account.js index 851f2b3..802cd5b 100644 --- a/src/routes/account.js +++ b/src/routes/account.js @@ -4,6 +4,8 @@ const DiscordOauth2 = require('discord-oauth2'); const Stripe = require('stripe'); const { REST: DiscordRest } = require('@discordjs/rest'); const { Routes: DiscordRoutes } = require('discord-api-types/v10'); +const { createChannel, createClient, Metadata } = require('nice-grpc'); +const { ApiServiceDefinition } = require('@pretendonetwork/grpc/api/v2/api_service'); const requireLoginMiddleware = require('../middleware/require-login'); const database = require('../database'); const cache = require('../cache'); @@ -19,6 +21,9 @@ const stripe = new Stripe(config.stripe.secret_key); const router = new Router(); const discordRest = new DiscordRest({ version: '10' }).setToken(config.discord.bot_token); +const gRPCApiChannel = createChannel(`${config.grpc.account.host}:${config.grpc.account.port}`); +const gRPCApiClient = createClient(ApiServiceDefinition, gRPCApiChannel); + // Create OAuth client const discordOAuth = new DiscordOauth2({ clientId: config.discord.client_id, @@ -574,4 +579,27 @@ router.post('/sso/discourse', async (request, response, next) => { } }); +router.post('/delete', requireLoginMiddleware, async (request, response) => { + const { pnid } = request; + + try { + await gRPCApiClient.deleteAccount({ + pid: pnid.pid + }, { + metadata: Metadata({ + 'X-API-Key': config.grpc.api.api_key + }) + }); + + response.json({ + success: true + }); + } catch (error) { + response.json({ + success: false, + error + }); + } +}); + module.exports = router; diff --git a/views/account/account.handlebars b/views/account/account.handlebars index d6dfcd4..85d9373 100644 --- a/views/account/account.handlebars +++ b/views/account/account.handlebars @@ -28,6 +28,9 @@

    {{ locale.account.settings.upgrade }}

    + +

    Delete Account

    +
    @@ -198,6 +201,18 @@
+ + + {{#section 'foot'}} {{/section}} From d34bdabd148a5bf6f7bd25b13e37efe41ee17941 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Sat, 4 Oct 2025 21:35:09 +0200 Subject: [PATCH 128/214] fix: fixed wrong grpc config --- src/routes/account.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/account.js b/src/routes/account.js index 802cd5b..dcaf44c 100644 --- a/src/routes/account.js +++ b/src/routes/account.js @@ -21,7 +21,7 @@ const stripe = new Stripe(config.stripe.secret_key); const router = new Router(); const discordRest = new DiscordRest({ version: '10' }).setToken(config.discord.bot_token); -const gRPCApiChannel = createChannel(`${config.grpc.account.host}:${config.grpc.account.port}`); +const gRPCApiChannel = createChannel(`${config.grpc.api.host}:${config.grpc.api.port}`); const gRPCApiClient = createClient(ApiServiceDefinition, gRPCApiChannel); // Create OAuth client From 59a4b1344ebabbf6f0239480915576eb6c8d1c35 Mon Sep 17 00:00:00 2001 From: mrjvs Date: Sat, 4 Oct 2025 22:04:46 +0200 Subject: [PATCH 129/214] feat: add localisation to delete modal --- locales/en_US.json | 7 +++++++ views/account/account.handlebars | 12 +++++++----- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/locales/en_US.json b/locales/en_US.json index b8ea75d..0ba6b86 100644 --- a/locales/en_US.json +++ b/locales/en_US.json @@ -381,6 +381,13 @@ "no_signins_notice": "Sign in history not currently tracked. Check back again later!", "no_newsletter_notice": "Newsletter not currently available. Check back again later", "no_edit_from_dashboard": "Editing PNID settings from user dashboard is currently unavailable. Please update user settings from your linked game console" + }, + "delete": { + "button": "Delete Account", + "modalTitle": "Delete PNID", + "modalDescription": "Are you sure you want to delete your PNID? Your data across services such as the forums, Miiverse, etc. will all be removed. Your Stripe data and subscription will also be automatically deleted.", + "modalCaution": "This action cannot be undone.", + "modalConfirm": "Yes, delete" } }, "accountLevel": [ diff --git a/views/account/account.handlebars b/views/account/account.handlebars index 85d9373..bb20b75 100644 --- a/views/account/account.handlebars +++ b/views/account/account.handlebars @@ -29,7 +29,7 @@

{{ locale.account.settings.upgrade }}

-

Delete Account

+

{{ locale.account.settings.delete.button }}

@@ -201,13 +201,15 @@ -
@@ -71,6 +71,9 @@ {{#section 'foot'}}