mirror of
https://github.com/Sendouc/sendou.ink.git
synced 2026-10-27 13:06:13 -05:00
Add Discord refresh to edit profile page
This commit is contained in:
@@ -15,25 +15,36 @@ const flagCookie = createCookie("discord_refresh", {
|
||||
maxAge: FLAG_MAX_AGE_SECONDS,
|
||||
});
|
||||
|
||||
export interface FlaggedRefresh {
|
||||
userId: number;
|
||||
returnTo: string | null;
|
||||
}
|
||||
|
||||
const lastRefreshedAt = new LRUCache<number, number>({ max: 10_000 });
|
||||
|
||||
/**
|
||||
* `Set-Cookie` value marking the next OAuth callback as a profile refresh of the given user
|
||||
* instead of a log in.
|
||||
*/
|
||||
export function flagCookieHeader(userId: number) {
|
||||
return flagCookie.serialize(userId);
|
||||
export function flagCookieHeader(refresh: FlaggedRefresh) {
|
||||
return flagCookie.serialize(refresh);
|
||||
}
|
||||
|
||||
export function clearFlagCookieHeader() {
|
||||
return flagCookie.serialize("", { maxAge: 0 });
|
||||
}
|
||||
|
||||
/** The id of the user who started a profile refresh, or `null` if the OAuth flow is a regular log in. */
|
||||
export async function flaggedUserId(request: Request): Promise<number | null> {
|
||||
/** The profile refresh in progress, or `null` if the OAuth flow is a regular log in. */
|
||||
export async function flaggedRefresh(
|
||||
request: Request,
|
||||
): Promise<FlaggedRefresh | null> {
|
||||
const value = await flagCookie.parse(request.headers.get("Cookie"));
|
||||
if (typeof value?.userId !== "number") return null;
|
||||
|
||||
return typeof value === "number" ? value : null;
|
||||
return {
|
||||
userId: value.userId,
|
||||
returnTo: typeof value.returnTo === "string" ? value.returnTo : null,
|
||||
};
|
||||
}
|
||||
|
||||
/** Whether the user refreshed recently. Each refresh costs Discord API calls shared with log in's rate limit. */
|
||||
|
||||
@@ -31,10 +31,14 @@ import type { AuthErrorCode } from "./errors";
|
||||
import { authSessionStorage } from "./session.server";
|
||||
import { getUser, isImpersonating, requireUser } from "./user.server";
|
||||
|
||||
const returnToSchema = v.object({
|
||||
returnTo: v.optional(v.string()),
|
||||
});
|
||||
|
||||
export const callbackLoader: LoaderFunction = async ({ request, url }) => {
|
||||
const refreshingUserId = await DiscordRefresh.flaggedUserId(request);
|
||||
if (refreshingUserId !== null) {
|
||||
return refreshCallback({ request, url, refreshingUserId });
|
||||
const refresh = await DiscordRefresh.flaggedRefresh(request);
|
||||
if (refresh !== null) {
|
||||
return refreshCallback({ request, url, refresh });
|
||||
}
|
||||
|
||||
// biome-ignore lint/plugin: OAuth callback param, its name and values defined by the provider
|
||||
@@ -72,37 +76,41 @@ export const callbackLoader: LoaderFunction = async ({ request, url }) => {
|
||||
}
|
||||
};
|
||||
|
||||
export const refreshFromDiscordAction = defineAction(async ({ request }) => {
|
||||
const user = requireUser();
|
||||
export const refreshFromDiscordAction = defineAction(
|
||||
{ body: returnToSchema },
|
||||
async ({ request, body }) => {
|
||||
const user = requireUser();
|
||||
const returnTo = safeReturnTo(body.returnTo ?? null);
|
||||
|
||||
if (await isImpersonating(request)) {
|
||||
throw errorToastWithRedirect({
|
||||
url: SETTINGS_PAGE,
|
||||
message: "Can't refresh from Discord while impersonating",
|
||||
});
|
||||
}
|
||||
|
||||
if (DiscordRefresh.isOnCooldown(user.id)) {
|
||||
throw errorToastWithRedirect({
|
||||
url: SETTINGS_PAGE,
|
||||
message: REFRESH_COOLDOWN_MESSAGE,
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
return await authenticator.authenticate("discord", request);
|
||||
} catch (error) {
|
||||
// starting the OAuth flow always throws the redirect to Discord
|
||||
if (error instanceof Response) {
|
||||
error.headers.append(
|
||||
"Set-Cookie",
|
||||
await DiscordRefresh.flagCookieHeader(user.id),
|
||||
);
|
||||
if (await isImpersonating(request)) {
|
||||
throw errorToastWithRedirect({
|
||||
url: returnTo ?? SETTINGS_PAGE,
|
||||
message: "Can't refresh from Discord while impersonating",
|
||||
});
|
||||
}
|
||||
|
||||
throw error;
|
||||
}
|
||||
});
|
||||
if (DiscordRefresh.isOnCooldown(user.id)) {
|
||||
throw errorToastWithRedirect({
|
||||
url: returnTo ?? SETTINGS_PAGE,
|
||||
message: REFRESH_COOLDOWN_MESSAGE,
|
||||
});
|
||||
}
|
||||
|
||||
try {
|
||||
return await authenticator.authenticate("discord", request);
|
||||
} catch (error) {
|
||||
// starting the OAuth flow always throws the redirect to Discord
|
||||
if (error instanceof Response) {
|
||||
error.headers.append(
|
||||
"Set-Cookie",
|
||||
await DiscordRefresh.flagCookieHeader({ userId: user.id, returnTo }),
|
||||
);
|
||||
}
|
||||
|
||||
throw error;
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
export const logOutAction = defineAction(async ({ request }) => {
|
||||
const session = await authSessionStorage.getSession(
|
||||
@@ -129,10 +137,6 @@ export const logInAction = defineAction(async ({ request }) => {
|
||||
}
|
||||
});
|
||||
|
||||
const returnToSchema = v.object({
|
||||
returnTo: v.optional(v.string()),
|
||||
});
|
||||
|
||||
export const impersonateAction = defineAction(
|
||||
{ body: returnToSchema },
|
||||
async ({ request, url, body }) => {
|
||||
@@ -334,17 +338,18 @@ const REFRESH_COOLDOWN_MESSAGE =
|
||||
async function refreshCallback({
|
||||
request,
|
||||
url,
|
||||
refreshingUserId,
|
||||
refresh,
|
||||
}: {
|
||||
request: Request;
|
||||
url: URL;
|
||||
refreshingUserId: number;
|
||||
refresh: DiscordRefresh.FlaggedRefresh;
|
||||
}) {
|
||||
const headers = {
|
||||
"Set-Cookie": await DiscordRefresh.clearFlagCookieHeader(),
|
||||
};
|
||||
const returnTo = safeReturnTo(refresh.returnTo) ?? SETTINGS_PAGE;
|
||||
const failed = (message: string) =>
|
||||
errorToastWithRedirect({ url: SETTINGS_PAGE, message, headers });
|
||||
errorToastWithRedirect({ url: returnTo, message, headers });
|
||||
|
||||
// biome-ignore lint/plugin: OAuth callback param, its name and values defined by the provider
|
||||
if (url.searchParams.has("error")) {
|
||||
@@ -352,11 +357,7 @@ async function refreshCallback({
|
||||
}
|
||||
|
||||
const user = getUser();
|
||||
if (
|
||||
!user ||
|
||||
user.id !== refreshingUserId ||
|
||||
(await isImpersonating(request))
|
||||
) {
|
||||
if (!user || user.id !== refresh.userId || (await isImpersonating(request))) {
|
||||
return failed("Refreshing from Discord failed");
|
||||
}
|
||||
|
||||
@@ -386,7 +387,7 @@ async function refreshCallback({
|
||||
}
|
||||
|
||||
return successToastWithRedirect({
|
||||
url: SETTINGS_PAGE,
|
||||
url: returnTo,
|
||||
message: "Your avatar, name and connections were refreshed from Discord",
|
||||
headers,
|
||||
});
|
||||
|
||||
@@ -6,7 +6,7 @@ import type { SendouRouteHandle } from "~/utils/remix.server";
|
||||
|
||||
import styles from "./faq.module.css";
|
||||
|
||||
const AMOUNT_OF_QUESTIONS = 10;
|
||||
const AMOUNT_OF_QUESTIONS = 8;
|
||||
|
||||
export const meta: MetaFunction = (args) => {
|
||||
return metaTags({
|
||||
|
||||
27
app/features/user-page/components/DiscordSyncCard.module.css
Normal file
27
app/features/user-page/components/DiscordSyncCard.module.css
Normal file
@@ -0,0 +1,27 @@
|
||||
.card {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: var(--s-2-5);
|
||||
padding: var(--s-2-5) var(--s-3);
|
||||
border: 1px solid var(--color-border);
|
||||
border-radius: var(--radius-box);
|
||||
background-color: var(--color-bg-high);
|
||||
}
|
||||
|
||||
.header {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
gap: var(--s-2);
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: var(--font-sm);
|
||||
font-weight: var(--weight-bold);
|
||||
}
|
||||
|
||||
.description {
|
||||
font-size: var(--font-xs);
|
||||
color: var(--color-text-high);
|
||||
}
|
||||
26
app/features/user-page/components/DiscordSyncCard.tsx
Normal file
26
app/features/user-page/components/DiscordSyncCard.tsx
Normal file
@@ -0,0 +1,26 @@
|
||||
import { RefreshCcw } from "lucide-react";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useLocation } from "react-router";
|
||||
import { SendouButton } from "~/components/elements/Button";
|
||||
import { DISCORD_REFRESH_URL } from "~/utils/urls";
|
||||
import styles from "./DiscordSyncCard.module.css";
|
||||
|
||||
export function DiscordSyncCard() {
|
||||
const { t } = useTranslation(["user"]);
|
||||
const location = useLocation();
|
||||
|
||||
return (
|
||||
<section className={styles.card}>
|
||||
<div className={styles.header}>
|
||||
<h2 className={styles.title}>{t("user:discordSync.title")}</h2>
|
||||
<form method="post" action={DISCORD_REFRESH_URL}>
|
||||
<input type="hidden" name="returnTo" value={location.pathname} />
|
||||
<SendouButton size="miniscule" icon={<RefreshCcw />} type="submit">
|
||||
{t("user:discordSync.refresh")}
|
||||
</SendouButton>
|
||||
</form>
|
||||
</div>
|
||||
<p className={styles.description}>{t("user:discordSync.description")}</p>
|
||||
</section>
|
||||
);
|
||||
}
|
||||
@@ -1,6 +1,5 @@
|
||||
import { Trans, useTranslation } from "react-i18next";
|
||||
import { Link, useLoaderData } from "react-router";
|
||||
import { FormMessage } from "~/components/FormMessage";
|
||||
import { useTranslation } from "react-i18next";
|
||||
import { useLoaderData } from "react-router";
|
||||
import { FriendCodePopover } from "~/components/FriendCodePopover";
|
||||
import { SMALL_TROPHIES_PER_DISPLAY_PAGE } from "~/features/trophies/trophies-constants";
|
||||
import { existingImage } from "~/form/image-field";
|
||||
@@ -9,8 +8,8 @@ import { useHydrated } from "~/hooks/useHydrated";
|
||||
import { useHasRole } from "~/modules/permissions/hooks";
|
||||
import { countryCodeToTranslatedName } from "~/utils/i18n";
|
||||
import type { SendouRouteHandle } from "~/utils/remix.server";
|
||||
import { FAQ_PAGE } from "~/utils/urls";
|
||||
import { action } from "../actions/u.$identifier.edit.server";
|
||||
import { DiscordSyncCard } from "../components/DiscordSyncCard";
|
||||
import { SubPageHeader } from "../components/SubPageHeader";
|
||||
import { loader } from "../loaders/u.$identifier.edit.server";
|
||||
import { COUNTRY_CODES } from "../user-page-constants";
|
||||
@@ -62,6 +61,7 @@ export default function UserEditPage() {
|
||||
title={t("user:widgets.editProfile")}
|
||||
/>
|
||||
<div className="half-width stack md-plus">
|
||||
<DiscordSyncCard />
|
||||
<FriendCodePopover />
|
||||
<SendouForm
|
||||
schema={userEditProfileBaseSchema}
|
||||
@@ -93,13 +93,6 @@ export default function UserEditPage() {
|
||||
<FormField name="commissionText" />
|
||||
</>
|
||||
) : null}
|
||||
<FormMessage type="info">
|
||||
<Trans i18nKey={"user:discordExplanation"} t={t}>
|
||||
Username, profile picture, YouTube, Bluesky and Twitch
|
||||
accounts come from your Discord account. See
|
||||
<Link to={FAQ_PAGE}>FAQ</Link> for more information.
|
||||
</Trans>
|
||||
</FormMessage>
|
||||
</>
|
||||
)}
|
||||
</SendouForm>
|
||||
|
||||
5
changelog/2026-10-24-edit-profile-discord-refresh.md
Normal file
5
changelog/2026-10-24-edit-profile-discord-refresh.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
navItem: u
|
||||
type: feature
|
||||
---
|
||||
Refresh your username, profile picture and connections from Discord directly on the edit profile page
|
||||
@@ -1,11 +1,8 @@
|
||||
{
|
||||
"q1": "Was ist der Plus Server?",
|
||||
"q2": "Wie erhalte ich ein Abzeichen als Preis für mein Event?",
|
||||
"q3": "Wie aktualisiere ich meinen Avatar oder Nutzernamen?",
|
||||
"q4": "Ich habe auf Patreon abonniert, sehe aber keine Änderung auf der Webseite?",
|
||||
"a4": "Stelle sicher, dass dein Discord auf Patreon.com verknüpft ist. Danach kann es bis zu 2 Stunden dauern, bis der Status auf der Webseite aktualisiert wird. Sende bei Problemen eine DM an Sendou, um Hilfe zu erhalten.",
|
||||
"q5": "Gibt es eine sendou.ink App?",
|
||||
"a5": "Nein, aber sendou.ink kann als 'Progressive Web App' installiert werden. Dies bietet viele der Vorteile einer App, wie Vollbildmodus, Icon auf dem Homebildschirm oder separater Browser-Prozess. Google nach 'wie pwa auf *deinem browser* installieren' für eine Anleitung.",
|
||||
"q6": "Wie füge ich Twitch/Bluesky/YouTube zu meinem Profil hinzu?",
|
||||
"a6": "Dafür wird dein Discord-Profil verwendet. Verknüpfe und verifiziere deine Profile auf Discord und logge dich dann auf sendou.ink aus und wieder ein, um sie zu aktualisieren."
|
||||
"q3": "Ich habe auf Patreon abonniert, sehe aber keine Änderung auf der Webseite?",
|
||||
"a3": "Stelle sicher, dass dein Discord auf Patreon.com verknüpft ist. Danach kann es bis zu 2 Stunden dauern, bis der Status auf der Webseite aktualisiert wird. Sende bei Problemen eine DM an Sendou, um Hilfe zu erhalten.",
|
||||
"q4": "Gibt es eine sendou.ink App?",
|
||||
"a4": "Nein, aber sendou.ink kann als 'Progressive Web App' installiert werden. Dies bietet viele der Vorteile einer App, wie Vollbildmodus, Icon auf dem Homebildschirm oder separater Browser-Prozess. Google nach 'wie pwa auf *deinem browser* installieren' für eine Anleitung."
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
"ign.short": "IGN",
|
||||
"stickSens": "Empfindlichkeit R-Stick",
|
||||
"motionSens": "Empfindlichkeit Bewegungssteuerung",
|
||||
"discordExplanation": "Der Username, Profilbild, YouTube-, Bluesky- und Twitch-Konten stammen von deinem Discord-Konto. Mehr Infos in den <1>FAQ</1>.",
|
||||
"results.placing": "Platzierung",
|
||||
"results.team": "Team",
|
||||
"results.tournament": "Turnier",
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"a1": "Plus Server is a Discord server for high-level players to look for people to play with and against. It was founded in September 2017. It is divided into three tiers, of which +1 is the highest. You get access when a member of the server suggests you and you pass the monthly voting or you place well enough on the SendouQ leaderboard.\n\nIn the voting, you get a percentage based on your result. 0% would mean everyone who participated in the voting downvoted you while 100% would be the opposite. 60% is required to pass the voting. If a member gets a score below 60% they get demoted a tier, or in the case of +3, kicked.\n\nSee the leaderboards page for indicators about who is on track to get access via that method. 30 people in total get access each season - 5 to +1, 10 to +2 and 15 to +3.",
|
||||
"q2": "How to get a badge prize for my event?",
|
||||
"a2": "Since September 2024, badges can be made by anyone with the skills necessary. Check the link at the bottom of the badges page for more information.",
|
||||
"q3": "How to update my avatar or username?",
|
||||
"a3": "Updating username or avatar on Discord doesn't immediately update them on sendou.ink. To make that happen, you have two options:\n\n1) If you are a member of this website's Discord or the Plus Server, you can simply wait. There is a routine that runs once a day that handles the updating.\n\n2) To get them to update right away, you can use the /update-profile command of the Lohi Discord bot.",
|
||||
"q4": "I subscribed on Patreon but I don't see any changes on the website?",
|
||||
"a4": "Make sure to connect your Discord account on Patreon.com. After doing so, it will take up to 2 hours for the status to update on the site. If you are having problems, DM Sendou directly for help.",
|
||||
"q5": "Is there a sendou.ink app?",
|
||||
"a5": "No, but sendou.ink can be installed as a 'Progressive Web App' that gets many of the same benefits such as full-screen, an icon on the home screen and a separate process from the browser. Google 'how to install PWA on *your browser*' for instructions.",
|
||||
"q6": "How to add Twitch/Bluesky/YouTube to my profile?",
|
||||
"a6": "We use your Discord profile for that. Connect and verify them on Discord then log out and back in on sendou.ink to have them update.",
|
||||
"q7": "How can I add videos?",
|
||||
"a7": "Send a message on the sendou.ink Discord helpdesk channel requesting access. Also include a link to a sample video you will post.",
|
||||
"q8": "How can I show X Battle results on my profile?",
|
||||
"a8": "Find your player page from the Top Search page. Post the link to the helpdesk on our Discord, saying you want it linked. Note that the linking is not possible if you have not finished a season in the Top 500.",
|
||||
"q9": "How can I upload art that I commissioned?",
|
||||
"a9": "You can only upload art that you made yourself. It also has to be Splatoon related. For commissioned work please ask the artist to upload it themselves to the site. They are able to link your user profile and that will make it show on your profile.",
|
||||
"q10": "What are established tournament organizations?",
|
||||
"a10": "These are organizations that have permissions to host tournaments on sendou.ink. To become an established organization you need 150 monthly active users in your tournaments over 6 month period (checked in June and December). This can be either on sendou.ink or another platform. In addition patrons (of Supporter tier or above) have the tournament permissions."
|
||||
"q3": "I subscribed on Patreon but I don't see any changes on the website?",
|
||||
"a3": "Make sure to connect your Discord account on Patreon.com. After doing so, it will take up to 2 hours for the status to update on the site. If you are having problems, DM Sendou directly for help.",
|
||||
"q4": "Is there a sendou.ink app?",
|
||||
"a4": "No, but sendou.ink can be installed as a 'Progressive Web App' that gets many of the same benefits such as full-screen, an icon on the home screen and a separate process from the browser. Google 'how to install PWA on *your browser*' for instructions.",
|
||||
"q5": "How can I add videos?",
|
||||
"a5": "Send a message on the sendou.ink Discord helpdesk channel requesting access. Also include a link to a sample video you will post.",
|
||||
"q6": "How can I show X Battle results on my profile?",
|
||||
"a6": "Find your player page from the Top Search page. Post the link to the helpdesk on our Discord, saying you want it linked. Note that the linking is not possible if you have not finished a season in the Top 500.",
|
||||
"q7": "How can I upload art that I commissioned?",
|
||||
"a7": "You can only upload art that you made yourself. It also has to be Splatoon related. For commissioned work please ask the artist to upload it themselves to the site. They are able to link your user profile and that will make it show on your profile.",
|
||||
"q8": "What are established tournament organizations?",
|
||||
"a8": "These are organizations that have permissions to host tournaments on sendou.ink. To become an established organization you need 150 monthly active users in your tournaments over 6 month period (checked in June and December). This can be either on sendou.ink or another platform. In addition patrons (of Supporter tier or above) have the tournament permissions."
|
||||
}
|
||||
|
||||
@@ -156,7 +156,9 @@
|
||||
"controllers.handheld": "Handheld",
|
||||
"stickSens": "R-stick sens",
|
||||
"motionSens": "Motion sens",
|
||||
"discordExplanation": "Username, profile picture, YouTube, Bluesky and Twitch accounts come from your Discord account. See <1>FAQ</1> for more information.",
|
||||
"discordSync.title": "Synced from Discord",
|
||||
"discordSync.refresh": "Refresh",
|
||||
"discordSync.description": "Username, profile picture and YouTube, Bluesky and Twitch accounts come from Discord.",
|
||||
"results.placing": "Placing",
|
||||
"results.team": "Team",
|
||||
"results.tournament": "Tournament",
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"a1": "El Plus Server es un servidor de Discord para jugadores de alto nivel donde buscar con quién jugar. Fue fundado en septiembre de 2017. Está dividido en tres niveles, siendo +1 el más alto. Obtienes acceso cuando un miembro te sugiere y pasas la votación mensual, o si quedas lo suficientemente bien en el ranking de SendouQ.\n\nEn la votación, obtienes un porcentaje según tu resultado. 0% significa que todos los participantes votaron en contra, mientras que 100% sería lo contrario. Se requiere un 60% para pasar. Si un miembro obtiene menos del 60%, baja un nivel o, en el caso de +3, es expulsado.\n\nConsulta la página de clasificaciones para ver quién está en camino de obtener acceso por ese método. En total, 30 personas obtienen acceso cada temporada: 5 a +1, 10 a +2 y 15 a +3.",
|
||||
"q2": "¿Cómo puedo obtener un premio de insignia para mi evento?",
|
||||
"a2": "Desde septiembre de 2024, las insignias pueden ser creadas por cualquier persona con las habilidades necesarias. Consulta el enlace al final de la página de insignias para más información.",
|
||||
"q3": "¿Cómo puedo actualizar mi avatar o nombre de usuario?",
|
||||
"a3": "Si actualizas tu nombre de usuario o avatar en Discord, no se actualizan de inmediato en sendou.ink. Para que eso ocurra, tienes dos opciones:\n\n1) Si eres miembro del Discord de este sitio o del Plus Server, simplemente puedes esperar. Hay una rutina diaria que se encarga de la actualización.\n\n2) Para que se actualicen de inmediato, puedes usar el comando /update-profile del bot de Discord Lohi.",
|
||||
"q4": "Estoy suscrito en Patreon, ¿por qué no veo cambios en el sitio?",
|
||||
"a4": "Asegúrate de conectar tu cuenta de Discord en Patreon.com. Después de hacerlo, puede tardar hasta 2 horas en actualizarse en el sitio. Si tienes problemas, envía un mensaje directo a Sendou para obtener ayuda.",
|
||||
"q5": "¿Hay una app de sendou.ink?",
|
||||
"a5": "No, pero sendou.ink se puede instalar como una 'aplicación web progresiva' (PWA) que obtiene muchos de los mismos beneficios, como pantalla completa, un icono en la pantalla de inicio y un proceso separado. Busca en Google 'cómo instalar PWA en tu navegador' para obtener instrucciones.",
|
||||
"q6": "¿Cómo puedo añadir Twitch/Bluesky/YouTube a mi perfil?",
|
||||
"a6": "Usamos tu perfil de Discord para eso. Conéctalos y verifícalos a través de Discord. Luego, cierra sesión y vuelve a iniciarla en sendou.ink para actualizar.",
|
||||
"q7": "¿Cómo puedo añadir vídeos?",
|
||||
"a7": "Envía un mensaje en el canal helpdesk del Discord de sendou.ink solicitando acceso. Incluye también un enlace a un vídeo de ejemplo que vayas a publicar.",
|
||||
"q8": "¿Cómo puedo mostrar mis resultados de Combate X en mi perfil?",
|
||||
"a8": "Busca tu página de jugador en la página Búsqueda Top 500. Publica el enlace en el canal #helpdesk de nuestro Discord indicando que quieres vincularla. Ten en cuenta que no es posible vincularla si no has terminado una temporada en el Top 500.",
|
||||
"q9": "¿Cómo puedo subir arte que he encargado?",
|
||||
"a9": "Solo puedes subir arte que hayas creado tú. También tiene que estar relacionado con Splatoon. Para obras encargadas, pide al artista que las suba él mismo al sitio. El artista puede vincular tu perfil para que se muestren en él.",
|
||||
"q10": "¿Qué son las organizaciones de torneos establecidas?",
|
||||
"a10": "Son organizaciones con permisos para organizar torneos en sendou.ink. Para convertirse en organización establecida se necesitan 150 usuarios activos mensuales en sus torneos durante un período de 6 meses (revisado en junio y diciembre). Puede ser en sendou.ink u otra plataforma. Además, los mecenas (nivel Supporter o superior) también tienen permisos de torneo."
|
||||
"q3": "Estoy suscrito en Patreon, ¿por qué no veo cambios en el sitio?",
|
||||
"a3": "Asegúrate de conectar tu cuenta de Discord en Patreon.com. Después de hacerlo, puede tardar hasta 2 horas en actualizarse en el sitio. Si tienes problemas, envía un mensaje directo a Sendou para obtener ayuda.",
|
||||
"q4": "¿Hay una app de sendou.ink?",
|
||||
"a4": "No, pero sendou.ink se puede instalar como una 'aplicación web progresiva' (PWA) que obtiene muchos de los mismos beneficios, como pantalla completa, un icono en la pantalla de inicio y un proceso separado. Busca en Google 'cómo instalar PWA en tu navegador' para obtener instrucciones.",
|
||||
"q5": "¿Cómo puedo añadir vídeos?",
|
||||
"a5": "Envía un mensaje en el canal helpdesk del Discord de sendou.ink solicitando acceso. Incluye también un enlace a un vídeo de ejemplo que vayas a publicar.",
|
||||
"q6": "¿Cómo puedo mostrar mis resultados de Combate X en mi perfil?",
|
||||
"a6": "Busca tu página de jugador en la página Búsqueda Top 500. Publica el enlace en el canal #helpdesk de nuestro Discord indicando que quieres vincularla. Ten en cuenta que no es posible vincularla si no has terminado una temporada en el Top 500.",
|
||||
"q7": "¿Cómo puedo subir arte que he encargado?",
|
||||
"a7": "Solo puedes subir arte que hayas creado tú. También tiene que estar relacionado con Splatoon. Para obras encargadas, pide al artista que las suba él mismo al sitio. El artista puede vincular tu perfil para que se muestren en él.",
|
||||
"q8": "¿Qué son las organizaciones de torneos establecidas?",
|
||||
"a8": "Son organizaciones con permisos para organizar torneos en sendou.ink. Para convertirse en organización establecida se necesitan 150 usuarios activos mensuales en sus torneos durante un período de 6 meses (revisado en junio y diciembre). Puede ser en sendou.ink u otra plataforma. Además, los mecenas (nivel Supporter o superior) también tienen permisos de torneo."
|
||||
}
|
||||
|
||||
@@ -157,7 +157,6 @@
|
||||
"controllers.handheld": "Modo portátil",
|
||||
"stickSens": "Sensibilidad de la palanca",
|
||||
"motionSens": "Sensibilidad del giroscopio",
|
||||
"discordExplanation": "Tu nombre, tu foto y tus cuentas de YouTube, Bluesky y Twitch se obtienen de tu cuenta de Discord. Consulta las <1>preguntas frecuentes</1> para más información.",
|
||||
"results.placing": "Posición",
|
||||
"results.team": "Equipo",
|
||||
"results.tournament": "Torneo",
|
||||
|
||||
@@ -1,13 +1,11 @@
|
||||
{
|
||||
"a1": "El Plus Server es un servidor de Discord para jugadores de alto nivel donde buscar con quién jugar y contra quién. Fue fundado en septiembre de 2017. Está dividido en tres niveles, siendo +1 el más alto. Obtienes acceso cuando un miembro te sugiere y pasas la votación mensual, o si quedas lo suficientemente bien en la tabla de posiciones de SendouQ.\n\nEn la votación, obtienes un porcentaje según tu resultado. 0% significa que todos los participantes votaron en contra, mientras que 100% sería lo contrario. Se requiere un 60% para pasar. Si un miembro obtiene menos del 60%, baja un nivel o, en el caso de +3, es expulsado.\n\nConsulta la página de tablas de posiciones para ver quién está en camino de obtener acceso por ese método. En total, 30 personas obtienen acceso cada temporada: 5 a +1, 10 a +2 y 15 a +3.",
|
||||
"a3": "Si actualizas tu nombre de usuario o avatar en Discord, no cambian de inmediato en sendou.ink. Para que eso suceda tienes dos opciones:\n\n1) Si eres miembro del Discord de este sitio o del Plus Server, simplemente puedes esperar. Hay una rutina diaria que se encarga de la actualización.\n\n2) Para que se actualicen de inmediato, puedes usar el comando /update-profile del bot de Discord Lohi.",
|
||||
"q4": "Me suscribí en Patreon, ¿por qué no veo cambios en el sitio?",
|
||||
"a4": "Asegúrate de que tu Discord esté conectado en Patreon.com. Después de hacerlo, puede tardar hasta 2 horas en actualizarse en el sitio. Si aún hay un problema, envía un mensaje a Sendou directamente por Discord para obtener ayuda.",
|
||||
"a5": "No, pero sendou.ink se puede instalar como una 'aplicación web progresiva' (PWA) que obtiene muchos de los mismos beneficios, como pantalla completa, un ícono en la pantalla de inicio y un proceso separado. Busca en Google 'cómo instalar PWA en tu navegador' para encontrar instrucciones.",
|
||||
"q6": "¿Cómo puedo agregar Twitch/Bluesky/YouTube a mi perfil?",
|
||||
"q7": "¿Cómo puedo agregar videos?",
|
||||
"a7": "Envía un mensaje en el canal helpdesk del Discord de sendou.ink solicitando acceso. Incluye también un enlace a un video de ejemplo que vayas a publicar.",
|
||||
"a8": "Busca tu página de jugador en la página Búsqueda Top 500. Publica el enlace en el canal #helpdesk de nuestro Discord indicando que quieres vincularla. Ten en cuenta que no es posible vincularla si no terminaste una temporada en el Top 500.",
|
||||
"q9": "¿Cómo puedo subir arte que he comisionado?",
|
||||
"a9": "Solo puedes subir arte que hayas creado tú. También tiene que estar relacionado con Splatoon. Para obras comisionadas, pide al artista que las suba directamente al sitio. El artista puede vincular tu perfil para que se muestren en él."
|
||||
"q3": "Me suscribí en Patreon, ¿por qué no veo cambios en el sitio?",
|
||||
"a3": "Asegúrate de que tu Discord esté conectado en Patreon.com. Después de hacerlo, puede tardar hasta 2 horas en actualizarse en el sitio. Si aún hay un problema, envía un mensaje a Sendou directamente por Discord para obtener ayuda.",
|
||||
"a4": "No, pero sendou.ink se puede instalar como una 'aplicación web progresiva' (PWA) que obtiene muchos de los mismos beneficios, como pantalla completa, un ícono en la pantalla de inicio y un proceso separado. Busca en Google 'cómo instalar PWA en tu navegador' para encontrar instrucciones.",
|
||||
"q5": "¿Cómo puedo agregar videos?",
|
||||
"a5": "Envía un mensaje en el canal helpdesk del Discord de sendou.ink solicitando acceso. Incluye también un enlace a un video de ejemplo que vayas a publicar.",
|
||||
"a6": "Busca tu página de jugador en la página Búsqueda Top 500. Publica el enlace en el canal #helpdesk de nuestro Discord indicando que quieres vincularla. Ten en cuenta que no es posible vincularla si no terminaste una temporada en el Top 500.",
|
||||
"q7": "¿Cómo puedo subir arte que he comisionado?",
|
||||
"a7": "Solo puedes subir arte que hayas creado tú. También tiene que estar relacionado con Splatoon. Para obras comisionadas, pide al artista que las suba directamente al sitio. El artista puede vincular tu perfil para que se muestren en él."
|
||||
}
|
||||
|
||||
@@ -3,18 +3,14 @@
|
||||
"a1": "Plus Server est un serveur Discord pour les joueurs de haut niveau cherchant d'autres joueurs de leur calibre pour jouer et s'affronter. Il a été créé en septembre 2017. Ce serveur est divisé en trois tiers, parmi lesquels +1 est le tier le plus haut. L'accès à ce serveur vous est octroyé lorsqu'un membre du serveur vous suggère et que vous remportez le vote mensuel ou que vous vous placez assez haut dans le classement SendouQ. \n\nDurant la phase de vote, vous recevez un pourcentage en fonction de votre résultat. 0% signifie que tous les votants ont refusé votre inclusion tandis que 100% signifie l'inverse. Pour être admis, il faut atteindre le seuil de 60%. Si l'un des membres obtient un pourcentage de moins de 60%, il baissera d'un tier, ou sera expulsé du Plus Serveur dans le cas ou il serait en +3.\n\nSe référer à la page des classements pour voir qui est en bonne voie pour accéder au serveur via cette méthode. 30 personnes au total par saison ont accès à ce serveur : 5 personnes au tier +1, 10 au +2 et 15 au +3.",
|
||||
"q2": "Comment obtenir un badge pour mon événement ?",
|
||||
"a2": "Depuis septembre 2024, toute personne ayant les compétences nécessaires peut réaliser un badge. Consultez le lien en bas de la page des badges pour plus d'informations.",
|
||||
"q3": "Comment mettre à jour mon pseudo ou mon avatar ?",
|
||||
"a3": "Mettre à jour son pseudo ou avatar sur Discord ne se reflète pas immédiatement sur sendou.ink. Pour voir ce changement, vous avez deux options :\n\n1) Si vous êtes un membre du Discord de sendou.ink ou du Plus Server, il vous suffit d'attendre. Le site se mettra à jour automatiquement dans les 24 heures.\n\n2) Alternativement, si vous voulez les mettre à jour immédiatement, vous pouvez utiliser la commande /update-profile du bot Lohi sur discord.",
|
||||
"q4": "Je me suis abonné au Patreon mais je ne vois pas de changement, c'est normal ?",
|
||||
"a4": "Assurez-vous d'avoir lié votre compte Discord sur Patreon.com. Après avoir fait ça, votre statut peut mettre jusqu'à 2 heures à se mettre à jour sur le site. Si vous avez encore des soucis, n'hésitez pas à envoyer un MP à Sendou directement.",
|
||||
"q5": "Est-ce qu'il y a une application sendou.ink ?",
|
||||
"a5": "Non, mais sendou.ink peut être installé en tant 'qu'Application Web Progressive' : vous pourrez bénéficier d'un mode plein écran, d'une icone et d'un processus séparé de votre navigateur. Pour pouvoir l'installer, n'hésitez pas à rechercher 'Comment installer une awp sur *votre natigateur*' sur Google.",
|
||||
"q6": "Comment puis-je ajouter mes liens Twitch/Bluesky/Youtube à mon profil ?",
|
||||
"a6": "Nous utilisons le profil Discord pour ça. Connectez vos comptes sur Discord puis déconnectez et reconnectez vous sur sendou.ink pour les mettre à jour.",
|
||||
"q7": "Comment puis-je ajouter des vidéos ?",
|
||||
"a7": "Envoyez un message sur le channel helpdesk du discord sendou.ink pour demander l'accès. Ajoutez également un lien d'un exemple de vidéo que vous publierez.",
|
||||
"q8": "Comment puis-je montrer mes résultats de Match X sur mon profil ?",
|
||||
"a8": "Trouvez votre page de joueur depuis la page Top 500. Postez le lien vers le channel helpdesk sur notre Discord en indiquant que vous souhaitez qu'il soit lié. Note : Le lien n'est pas possible si vous n'avez pas terminé une saison dans le Top 500.",
|
||||
"q9": "Comment puis-je publier une œuvre que j'ai commandé ?",
|
||||
"a9": "Vous pouvez seulement publier une œuvre que vous avez réalisé. Elle doit également avoir un rapport avec Splatoon. Veuillez demander à l’artiste de la télécharger lui-même sur le site pour une œuvre commandée. Il pourra lier votre profil d'utilisateur à son œuvre et cela la fera apparaître sur votre profil."
|
||||
"q3": "Je me suis abonné au Patreon mais je ne vois pas de changement, c'est normal ?",
|
||||
"a3": "Assurez-vous d'avoir lié votre compte Discord sur Patreon.com. Après avoir fait ça, votre statut peut mettre jusqu'à 2 heures à se mettre à jour sur le site. Si vous avez encore des soucis, n'hésitez pas à envoyer un MP à Sendou directement.",
|
||||
"q4": "Est-ce qu'il y a une application sendou.ink ?",
|
||||
"a4": "Non, mais sendou.ink peut être installé en tant 'qu'Application Web Progressive' : vous pourrez bénéficier d'un mode plein écran, d'une icone et d'un processus séparé de votre navigateur. Pour pouvoir l'installer, n'hésitez pas à rechercher 'Comment installer une awp sur *votre natigateur*' sur Google.",
|
||||
"q5": "Comment puis-je ajouter des vidéos ?",
|
||||
"a5": "Envoyez un message sur le channel helpdesk du discord sendou.ink pour demander l'accès. Ajoutez également un lien d'un exemple de vidéo que vous publierez.",
|
||||
"q6": "Comment puis-je montrer mes résultats de Match X sur mon profil ?",
|
||||
"a6": "Trouvez votre page de joueur depuis la page Top 500. Postez le lien vers le channel helpdesk sur notre Discord en indiquant que vous souhaitez qu'il soit lié. Note : Le lien n'est pas possible si vous n'avez pas terminé une saison dans le Top 500.",
|
||||
"q7": "Comment puis-je publier une œuvre que j'ai commandé ?",
|
||||
"a7": "Vous pouvez seulement publier une œuvre que vous avez réalisé. Elle doit également avoir un rapport avec Splatoon. Veuillez demander à l’artiste de la télécharger lui-même sur le site pour une œuvre commandée. Il pourra lier votre profil d'utilisateur à son œuvre et cela la fera apparaître sur votre profil."
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
"ign.short": "PEJ",
|
||||
"stickSens": "Sensibilité du stick droit",
|
||||
"motionSens": "Sensibilité du gyroscope",
|
||||
"discordExplanation": "Votre pseudo, votre photo de profil et vos comptes Youtube, Bluesky et Twitch viennent de votre compte Discord. Voir la <1>FAQ</1> pour plus d'informations.",
|
||||
"results.placing": "Placement",
|
||||
"results.team": "Équipe",
|
||||
"results.tournament": "Tournoi",
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"a1": "プラスサーバーとは、2017年の9月に作られた、上位勢が大会や対抗戦をするためにメンバーを募集できる Discord サーバーです。三つに分割されており、+1 がい最上位とされています。招待されるには二つ方法があります。すでにサーバーに入っているプレイヤーに推奨され、毎月行われる投票で十分な票を得るか、 SendouQ シーズン終了時の戦績が一定の基準を満たすことです。\n\n投票では、得た票によって割合が表示されます。もし誰もあなたに票を入れなかった場合、0%と表示され、全員が票を入れれば100%と表示されます。合格するには、60%必要です。すでにサーバーに入ってるメンバーにも投票は行われ、60%以下だと一段階降格、もしすでに +3にいた場合はサーバーから退出となります。\n\n誰が SendouQ ランクで招待されるかは、ランキングに表示されています。毎シーズン30人が招待されます。5人が +1、10人が +2、15人が +3 となります。",
|
||||
"q2": "自分のイベントの賞品にバッジをつけるにはどうすればいいですか?",
|
||||
"a2": "2024年9月から、技量さえあれば誰でもバッジを作成できるようになりました。",
|
||||
"q3": "アバターとユーザー名はどうやって更新すればよいですか?",
|
||||
"a3": "ユーザー名及びアバターの更新は sendou.ink にすぐに反映されません。反映させるには方法が二つあります。\n\n1)プラスサーバーまたはサイトの Discord サーバーのメンバーである場合、時間を置くと自動的にアップデートされます。\n\n2)今すぐに更新したい場合はLohiボットで /update-profile コマンドを実行してください。",
|
||||
"q4": "Patreon でサブスクライブしたけれど、このサイトに何も変更がないのですが..?",
|
||||
"a4": "Discord で Patreon.com を連携しているか確認してください。連携後、最大2時間後にはサイト上に反映されます。もし問題があれば、Sendou に直接 DM を送ってください。",
|
||||
"q5": "sendou.ink のアプリはありますか?",
|
||||
"a5": "ありません。ですが、 sendou.inkは 'Progressive Web App' としてインストールすることができます。これは、フルスクリーン、ホーム画面へのアイコン、ブラウザからの分離など、アプリと同じ利点があります。詳しくは「ブラウザの PWA のインストール方法」を検索しててください。",
|
||||
"q6": "ツイッチ/Bluesky/YouTube アカウントはどうやって自分のプロファイルに追加できますか?",
|
||||
"a6": "Discord のプロファイルに連携されているものを使用しています。Discord と連携と承認をして、表示を更新するために sendou.ink にログインし直してください。",
|
||||
"q7": "動画はどう追加すればいいですか?",
|
||||
"a7": "sendou.ink の Discord サーバーの helpdesk チャンネルでメッセージを送ってください。投稿予定の動画のリンクも送ってください。",
|
||||
"q8": "Xマッチの最終結果を自分のプロファイルに表示するにはどうしたらよいですか?",
|
||||
"a8": "このサイト上の Xマッチ上位ランキングから、自分を見つけてください。そのリンクを Discord の helpdesk チャンネルに送り、連携したいと伝えてください。連携するには500位以内でシーズンを終了する必要があります。",
|
||||
"q9": "依頼したイラストはどうやってアップロードできますか?",
|
||||
"a9": "自分で作ったイラストのみアップロードできます。(もちろんスプラトゥーン関連でないといけません)依頼したイラストの場合は作者にアップロードするように伝えてください。そうすることによって自分のプロファイルにイラストが表示されます。",
|
||||
"q10": "公認大会運営組織とはなんですか?",
|
||||
"a10": "sendou.ink で大会を開催する許可を得た組織のことです。公認されるには、6ヵ月間で150人のプレイヤーが組織が開催している大会に参加している必要があります。毎年6月と12月にチェックが行われます。大会は、sendou.ink で開催されていなくても大丈夫です。Patreon のサポーターは大会開催の権限を得ます。"
|
||||
"q3": "Patreon でサブスクライブしたけれど、このサイトに何も変更がないのですが..?",
|
||||
"a3": "Discord で Patreon.com を連携しているか確認してください。連携後、最大2時間後にはサイト上に反映されます。もし問題があれば、Sendou に直接 DM を送ってください。",
|
||||
"q4": "sendou.ink のアプリはありますか?",
|
||||
"a4": "ありません。ですが、 sendou.inkは 'Progressive Web App' としてインストールすることができます。これは、フルスクリーン、ホーム画面へのアイコン、ブラウザからの分離など、アプリと同じ利点があります。詳しくは「ブラウザの PWA のインストール方法」を検索しててください。",
|
||||
"q5": "動画はどう追加すればいいですか?",
|
||||
"a5": "sendou.ink の Discord サーバーの helpdesk チャンネルでメッセージを送ってください。投稿予定の動画のリンクも送ってください。",
|
||||
"q6": "Xマッチの最終結果を自分のプロファイルに表示するにはどうしたらよいですか?",
|
||||
"a6": "このサイト上の Xマッチ上位ランキングから、自分を見つけてください。そのリンクを Discord の helpdesk チャンネルに送り、連携したいと伝えてください。連携するには500位以内でシーズンを終了する必要があります。",
|
||||
"q7": "依頼したイラストはどうやってアップロードできますか?",
|
||||
"a7": "自分で作ったイラストのみアップロードできます。(もちろんスプラトゥーン関連でないといけません)依頼したイラストの場合は作者にアップロードするように伝えてください。そうすることによって自分のプロファイルにイラストが表示されます。",
|
||||
"q8": "公認大会運営組織とはなんですか?",
|
||||
"a8": "sendou.ink で大会を開催する許可を得た組織のことです。公認されるには、6ヵ月間で150人のプレイヤーが組織が開催している大会に参加している必要があります。毎年6月と12月にチェックが行われます。大会は、sendou.ink で開催されていなくても大丈夫です。Patreon のサポーターは大会開催の権限を得ます。"
|
||||
}
|
||||
|
||||
@@ -3,7 +3,6 @@
|
||||
"ign.short": "ゲーム中の名前",
|
||||
"stickSens": "右スティック感度",
|
||||
"motionSens": "モーション感度",
|
||||
"discordExplanation": "ユーザー名、プロファイル画像、YouTube、Bluesky と Twitch アカウントは Discord のアカウントに設定されているものが使用されます。詳しくは <1>FAQ</1> をご覧ください。",
|
||||
"results.placing": "順位",
|
||||
"results.team": "チーム",
|
||||
"results.tournament": "トーナメント",
|
||||
|
||||
@@ -3,20 +3,16 @@
|
||||
"a1": "Plus Server 是一个面向高水平玩家的 Discord 服务器,旨在方便玩家寻找组队队友或约战。该服务器成立于 2017 年 9 月,共分为三个级别,其中最高级别为 +1。要加入服务器,您需要获得现有成员的推荐并通过每月的资格投票,或者在 SendouQ 排行榜上取得足够高的名次。\n\n在资格投票中,您会根据得票情况获得一个百分比分数。0% 意味着所有参与投票的人都投了反对票,而 100% 则相反。通过投票需要达到 60% 的支持率。如果现有成员的支持率低于 60%,则会被降级;若该成员原本处于 +3 级别,则会被直接踢出服务器。\n\n您可以查看排行榜页面,了解哪些玩家目前有希望通过该方式获取加入资格。每个赛季总共有 30 人可以获得加入资格:+1 级别 5 人,+2 级别 10 人,+3 级别 15 人。",
|
||||
"q2": "如何为我举办的赛事制作徽章奖励?",
|
||||
"a2": "自 2024 年 9 月起,任何具备相关技能的人都可以制作徽章。要了解更多信息,请查看徽章页面底部的链接。",
|
||||
"q3": "如何更新我的头像与用户名?",
|
||||
"a3": "在 Discord 上更新的用户名或头像并不会立刻在 sendou.ink 上更新。一般有两种方式来更新:\n\n1) 如果您是本网站的 Discord 或 Plus Server 成员,可以稍作等待。网站每天会自动更新。\n\n2) 您可以使用 Discord 中 Lohi 机器人的 /update-profile 命令来立即更新。",
|
||||
"q4": "我是 Patreon 上的赞助者,但是网站没有变化。",
|
||||
"a4": "请确保您的 Discord 绑定了 Patreon.com。绑定完成后,网站可能需要最多 2 小时的时间来同步和更新您的赞助状态。如果您还有其他问题,请直接私信 Sendou 寻求帮助。",
|
||||
"q5": "sendou.ink 有专门的应用吗?",
|
||||
"a5": "没有,但是您可以将 sendou.ink 安装为渐进式 Web 应用 (PWA)。它能享受许多与原生应用相同的便利,例如全屏显示、在主屏幕上生成图标,以及拥有独立于浏览器的运行进程。您可以搜索“如何在*您的浏览器*上安装 PWA”来查看具体操作步骤。",
|
||||
"q6": "如何在我的个人资料中添加 Twitch / Bluesky / YouTube 链接?",
|
||||
"a6": "我们通过您的 Discord 个人资料来同步这些信息。将账号与您的 Discord 关联后,在 sendou.ink 退出登录并重新登录即可完成更新。",
|
||||
"q7": "我该如何上传视频?",
|
||||
"a7": "请在本网站的 Discord 服务器的 helpdesk 频道发送消息,并附上一个您准备发布的样例视频链接,以申请权限。",
|
||||
"q8": "如何在我的资料中显示X比赛结果?",
|
||||
"a8": "请先在顶部的搜索页面找到您的玩家主页,然后将链接发送到本网站的 Discord 服务器的 helpdesk 频道,并说明您希望进行关联。请注意,如果您没有在任何一个赛季进入过X排名的 Top 500,则无法进行关联。",
|
||||
"q9": "我该如何上传我约稿的艺术作品?",
|
||||
"a9": "您只能上传由您亲自创作的艺术作品,并且内容需要与《斯普拉遁》相关。对于委托他人创作的作品,请联系作者亲自上传。他们可以将作品关联到您的个人资料,这样其就能展示在您的个人资料上了。",
|
||||
"q10": "什么是常设赛事组织?",
|
||||
"a10": "这是拥有在 sendou.ink 上举办赛事权限的组织。要成为常设赛事组织,您举办的赛事需要在过去 6 个月期间内的每个月拥有 150 名活跃用户。网站会分别在 6 月和 12 月进行检查。这些数据可以来自 sendou.ink 或其他平台。此外,Patreon 赞助者(Supporter 档位及以上)也拥有举办赛事的权限。"
|
||||
"q3": "我是 Patreon 上的赞助者,但是网站没有变化。",
|
||||
"a3": "请确保您的 Discord 绑定了 Patreon.com。绑定完成后,网站可能需要最多 2 小时的时间来同步和更新您的赞助状态。如果您还有其他问题,请直接私信 Sendou 寻求帮助。",
|
||||
"q4": "sendou.ink 有专门的应用吗?",
|
||||
"a4": "没有,但是您可以将 sendou.ink 安装为渐进式 Web 应用 (PWA)。它能享受许多与原生应用相同的便利,例如全屏显示、在主屏幕上生成图标,以及拥有独立于浏览器的运行进程。您可以搜索“如何在*您的浏览器*上安装 PWA”来查看具体操作步骤。",
|
||||
"q5": "我该如何上传视频?",
|
||||
"a5": "请在本网站的 Discord 服务器的 helpdesk 频道发送消息,并附上一个您准备发布的样例视频链接,以申请权限。",
|
||||
"q6": "如何在我的资料中显示X比赛结果?",
|
||||
"a6": "请先在顶部的搜索页面找到您的玩家主页,然后将链接发送到本网站的 Discord 服务器的 helpdesk 频道,并说明您希望进行关联。请注意,如果您没有在任何一个赛季进入过X排名的 Top 500,则无法进行关联。",
|
||||
"q7": "我该如何上传我约稿的艺术作品?",
|
||||
"a7": "您只能上传由您亲自创作的艺术作品,并且内容需要与《斯普拉遁》相关。对于委托他人创作的作品,请联系作者亲自上传。他们可以将作品关联到您的个人资料,这样其就能展示在您的个人资料上了。",
|
||||
"q8": "什么是常设赛事组织?",
|
||||
"a8": "这是拥有在 sendou.ink 上举办赛事权限的组织。要成为常设赛事组织,您举办的赛事需要在过去 6 个月期间内的每个月拥有 150 名活跃用户。网站会分别在 6 月和 12 月进行检查。这些数据可以来自 sendou.ink 或其他平台。此外,Patreon 赞助者(Supporter 档位及以上)也拥有举办赛事的权限。"
|
||||
}
|
||||
|
||||
@@ -122,7 +122,6 @@
|
||||
"controllers.handheld": "手提模式",
|
||||
"stickSens": "右摇杆操作灵敏度",
|
||||
"motionSens": "陀螺仪操作灵敏度",
|
||||
"discordExplanation": "您的用户名、头像、YouTube、Bluesky 和 Twitch 账号信息均同步自您的 Discord 账号。详情请参阅 <1>常见问题与解答</1>。",
|
||||
"results.placing": "排名",
|
||||
"results.team": "队伍",
|
||||
"results.tournament": "赛事",
|
||||
|
||||
Reference in New Issue
Block a user