Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add French helpticket translations #10201

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
62 changes: 31 additions & 31 deletions server/chat-plugins/helptickets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1538,7 +1538,7 @@ export const pages: Chat.PageTable = {
case 'pmharassment':
buf += `<p>${this.tr`If someone is harassing you in private messages (PMs), click the button below and a global staff member will take a look. If you are being harassed in a chatroom, please ask a room staff member to handle it.`}`;
if (!this.pageid.includes('confirm')) {
buf += ` If it's a minor issue, consider using <code>/ignore [username]</code> instead.`;
buf += `${this.tr` If it's a minor issue, consider using <code>/ignore [username]</code> instead.`}`;
}
buf += `</p>`;
if (!isLast) break;
Expand All @@ -1547,7 +1547,7 @@ export const pages: Chat.PageTable = {
case 'battleharassment':
buf += `<p>${this.tr`If someone is harassing you in a battle, click the button below and a global staff member will take a look. If you are being harassed in a chatroom, please ask a room staff member to handle it.`}`;
if (!this.pageid.includes('confirm')) {
buf += ` If it's a minor issue, consider using <code>/ignore [username]</code> instead.`;
buf += `${this.tr` If it's a minor issue, consider using <code>/ignore [username]</code> instead.`}`;
}
buf += `</p>`;
buf += `<p>${this.tr`Please save a replay of the battle if it has ended, or provide a link to the battle if it is still ongoing.`}</p>`;
Expand All @@ -1566,21 +1566,21 @@ export const pages: Chat.PageTable = {
buf += `<p><Button>confirminappokemon</Button></p>`;
break;
case 'cheating':
buf += `<p>Your opponent cannot control how lucky or unlucky you are, what moves you choose, or the mechanics of the battle. You may just be misunderstanding what happened in your battle!</p>`;
buf += `<h4>Some common situations</h4><ul>`;
buf += `<p>${this.tr`Your opponent cannot control how lucky or unlucky you are, what moves you choose, or the mechanics of the battle. You may just be misunderstanding what happened in your battle!`}</p>`;
buf += `<h4>${this.tr`Some common situations`}</h4><ul>`;
for (const [scenario, explanation] of cheatingScenarios) {
buf += `<li><details class="readmore"><summary>${scenario}</summary><br />${explanation}<br /><br /></details></li>`;
buf += `<li><details class="readmore"><summary>${this.tr(scenario)}</summary><br />${this.tr(explanation)}<br /><br /></details></li>`;
}
buf += `</ul><p>There are many more situations like this where the opponent was not cheating or hacking. If you're confused about what happened, upload your battle replay and share it with the Help room. They can help you understand what happened!</p>`;
buf += `<p style="text-align: center"><button class="button" name="send" value="/j help"><strong>Join the Help Room</strong></button></p>`;
buf += `</ul><p>${this.tr`There are many more situations like this where the opponent was not cheating or hacking. If you're confused about what happened, upload your battle replay and share it with the Help room. They can help you understand what happened!`}</p>`;
buf += `<p style="text-align: center"><button class="button" name="send" value="/j help"><strong>${this.tr`Join the Help Room`}</strong></button></p>`;
break;
case 'appeal':
// buf += `<p><b>${this.tr`What would you like to appeal?`}</b></p>`;
if (!isLast) break;
if (user.locked || isStaff) {
const hostfiltered = user.locked === '#hostfilter' || (user.latestHostType === 'proxy' && user.locked !== user.id);
if (!hostfiltered) {
buf += `<p><strong>I want to appeal my lock.</strong></p>`;
buf += `<p><strong>${this.tr`I want to appeal my lock.`}</strong></p>`;
const namelocked = user.named && user.id.startsWith('guest');
if (user.locked === user.id || namelocked || isStaff) {
if (user.permalocked || isStaff) {
Expand All @@ -1594,7 +1594,7 @@ export const pages: Chat.PageTable = {
buf += `<p><Button>${type}</Button></p>`;
}
}
buf += `<p><strong>I'm locked under a name or IP I don't recognize.</strong></p>`;
buf += `<p><strong>${this.tr`I'm locked under a name or IP I don't recognize.`}</strong></p>`;
if (hostfiltered) {
buf += `<p><Button>hostfilter</Button></p>`;
}
Expand All @@ -1607,7 +1607,7 @@ export const pages: Chat.PageTable = {
}
}
}
buf += `<p><strong>I am punished but do not fall under any of the above.</strong></p>`;
buf += `<p><strong>${this.tr`I am punished but do not fall under any of the above.`}</strong></p>`;
if (user.semilocked || isStaff) {
buf += `<p><Button>semilock</Button></p>`;
}
Expand All @@ -1620,7 +1620,7 @@ export const pages: Chat.PageTable = {
break;
case 'lock':
buf += `<p>${this.tr`If you want to appeal your lock or namelock, click the button below and a global staff member will be with you shortly.`}</p>`;
buf += `<p>You will have to explain in detail why your punishment is unjustified and why we would want to unlock you. Insufficient explanations such as "lol this is bs unlock me" will not be considered.</p>`;
buf += `<p>${this.tr`You will have to explain in detail why your punishment is unjustified and why we would want to unlock you. Insufficient explanations such as "lol this is bs unlock me" will not be considered.`}</p>`;
if (!isLast) break;
buf += `<p><Button>confirmappeal</Button></p>`;
break;
Expand All @@ -1630,34 +1630,34 @@ export const pages: Chat.PageTable = {
buf += `<p><Button>confirmipappeal</Button></p>`;
break;
case 'homeip':
buf += `<p>If you are using your home's wifi network, it means that the person you are being mistaken for did as well (maybe a family member?).</p>`;
buf += `<p>In any case, we have no ability to make the difference - for all we know, you are the same user. Please wait out the lock.</p>`;
buf += `<p>${this.tr`If you are using your home's wifi network, it means that the person you are being mistaken for did as well (maybe a family member?).`}</p>`;
buf += `<p>${this.tr`In any case, we have no ability to make the difference - for all we know, you are the same user. Please wait out the lock.`}</p>`;
break;
case 'device':
buf += `<p>Sorry, but you are considered responsible for whoever has access to your computer.</p>`;
buf += `<p>We have no way to make the difference between two people using the exact same computer. Please wait out the lock.</p>`;
buf += `<p>${this.tr`Sorry, but you are considered responsible for whoever has access to your computer.`}</p>`;
buf += `<p>${this.tr`We have no way to make the difference between two people using the exact same computer. Please wait out the lock.`}</p>`;
break;
case 'mobileip':
buf += `<p>If you are not the user who was punished, the lock should expire on its own within a few hours.</p>`;
buf += `<p>If you are in a hurry to communicate with another user, you can click on the following button to open a ticket.</p>`;
buf += `<p>A staff member will look at your case as soon as possible.</p>`;
buf += `<p>${this.tr`If you are not the user who was punished, the lock should expire on its own within a few hours.`}</p>`;
buf += `<p>${this.tr`If you are in a hurry to communicate with another user, you can click on the following button to open a ticket.`}</p>`;
buf += `<p>${this.tr`A staff member will look at your case as soon as possible.`}</p>`;
if (!isLast) break;
buf += `<button name="send" value="/ht submit IP-Appeal|||I am on a mobile IP.|">Submit ticket</button>`;
buf += `<button class="button notifying" name="send" value="/ht submit IP-Appeal|||I am on a mobile IP.|">Submit ticket</button>`;
break;
case 'public':
if (user.ips.some(ip => Punishments.sharedIpBlacklist.has(ip))) {
buf += "<p>The public place you are in has had frequent misbehavior. As such, we can not unlock it, to prevent the bad users on it from abusing this. We apologize for the inconvenience.</p>";
break;
} else {
buf += `<p>If you have been locked at school or in a library, please write down its name, city and country in the form below so we can verify your claim. This information is strictly confidential, and global staff will only use it to deal with your appeal.</p>`;
buf += `<p>If you have been locked using the wifi of another type of facility, please write down which kind it is in the form.</p>`;
buf += `<p>${this.tr`If you have been locked at school or in a library, please write down its name, city and country in the form below so we can verify your claim. This information is strictly confidential, and global staff will only use it to deal with your appeal.`}</p>`;
buf += `<p>${this.tr`If you have been locked using the wifi of another type of facility, please write down which kind it is in the form.`}</p>`;
buf += `<p><Button>confirmipappeal</Button></p>`;
}
break;
case 'timeleft':
const expiry = Punishments.checkLockExpiration(user.id);
if (typeof expiry !== 'string') {
buf += `<p>You aren't locked.</p>`;
buf += `<p>${this.tr`You aren't locked.`}</p>`;
} else {
buf += `Your lock ${expiry.trim().replace('(', '').replace(')', '') || "expires soon"}.`;
}
Expand All @@ -1667,7 +1667,7 @@ export const pages: Chat.PageTable = {
.map(p => p[2])
.filter(t => ['LOCK', 'NAMELOCK'].includes(t.type));
if (!punishments.some(p => p.reason)) {
buf += `<p>No reasons were found on your lock.</p>`;
buf += `<p>${this.tr`No reasons were found on your lock.`}</p>`;
break;
}
for (const [idx, punishment] of punishments.entries()) {
Expand All @@ -1679,8 +1679,8 @@ export const pages: Chat.PageTable = {
}
break;
case 'startedit':
buf += `<p>If you have been locked, it is because your behavior on its own has broken PS rules - whether someone else "started" it does not excuse it.</p>`;
buf += `<p>If someone broke the rules during the interaction with led to your lock, they should have been punished as well when we addressed the report concerning you.</p>`;
buf += `<p>${this.tr`If you have been locked, it is because your behavior on its own has broken PS rules - whether someone else "started" it does not excuse it.`}</p>`;
buf += `<p>${this.tr`If someone broke the rules during the interaction with led to your lock, they should have been punished as well when we addressed the report concerning you.`}</p>`;
break;
case 'hostfilter':
buf += `<p>${this.tr`We automatically lock proxies and VPNs to prevent evasion of punishments and other attacks on our server. To get unlocked, you need to disable your proxy or VPN.`}</p>`;
Expand Down Expand Up @@ -1713,8 +1713,8 @@ export const pages: Chat.PageTable = {
buf += `<p><Button>other</Button></p>`;
break;
case 'password':
buf += `<p>If you need your Pokémon Showdown password reset, you can fill out a <a href="https://www.smogon.com/forums/password-reset-form/">Password Reset Form</a>.</p>`;
buf += `<p>You will need to make a Smogon account to be able to fill out a form.`;
buf += `<p>${this.tr`If you need your Pokémon Showdown password reset, you can fill out a <a href="https://www.smogon.com/forums/password-reset-form/">Password Reset Form</a>.`}</p>`;
buf += `<p>${this.tr`You will need to make a Smogon account to be able to fill out a form.`}`;
break;
case 'roomhelp':
buf += `<p>${this.tr`If you are a room driver or up in a public room, and you need help watching the chat, one or more global staff members would be happy to assist you!`}</p>`;
Expand All @@ -1741,9 +1741,9 @@ export const pages: Chat.PageTable = {
}
buf += `<form data-submitsend="/helpticket submit ${ticketTitles[page.slice(7)]} ${submitMeta} | {text} | {context}">`;
buf += `<textarea style="width: 100%" name="text"></textarea><br />`;
buf += `<strong>${"Do you have any other information you want to provide? (this is optional)"}</strong>`;
buf += `<strong>${this.tr("Do you have any other information you want to provide? (this is optional)")}</strong>`;
if (textTicket.contextMessage) {
buf += `<br />${textTicket.contextMessage}`;
buf += `<br />${this.tr(textTicket.contextMessage)}`;
}
buf += `<br />`;
buf += `<textarea style="width: 100%" name="context"></textarea><br />`;
Expand All @@ -1755,8 +1755,8 @@ export const pages: Chat.PageTable = {
}
if (textTicket || page.includes('confirmpmharassment')) {
buf += `<p>`;
buf += `Global staff might take more than a few minutes to handle your report. `;
buf += `If you are being disturbed by another user, we advise you to type <code>/ignore [username]</code> in a chatroom to ignore their messages.`;
buf += `${this.tr`Global staff might take more than a few minutes to handle your report. `}`;
buf += `${this.tr`If you are being disturbed by another user, we advise you to type <code>/ignore [username]</code> in a chatroom to ignore their messages.`}`;
}
break;
}
Expand Down
56 changes: 56 additions & 0 deletions translations/dutch/helptickets.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ export const translations: Translations = {
"Someone is harassing me in a battle": "Iemand valt mij lastig in een gevecht",
"Someone is using an offensive username": "Iemand gebruikt een beledigende gebruikersnaam",
"Someone is using offensive Pokemon nicknames": "Iemand gebruikt beledigende Pokemon bijnamen",
"Someone is hacking or cheating in my battle": "",
"I want to appeal a punishment": "Ik wil in bezwaar gaan tegen een bestraffing",
"I want to appeal my permalock": "Ik wil in bezwaar gaan tegen mijn permalock",
"I want to appeal my lock": "Ik wil in bezwaar gaan tegen mijn lock",
Expand Down Expand Up @@ -162,5 +163,60 @@ export const translations: Translations = {
"Please give us all relevant information on how you are connecting to Pokémon Showdown (if it is through mobile data, at home, a school or work network, etc), and we will review your case as soon as possible.": "",
"Please tell us which room you need assistance with and a global staff member will join your room as soon as possible.": "",
"If your issue pertains to battle mechanics or is a question about Pokémon Showdown, you can ask in the <<help>> chatroom.": "",
"Who's harassing you in PMs?": "",
"Do you have any other information you want to provide? (this is optional)": "",
"Global staff might take more than a few minutes to handle your report. ": "",
"If you are being disturbed by another user, we advise you to type <code>/ignore [username]</code> in a chatroom to ignore their messages.": "",
"Please provide a link to the battle (taken from the \"Upload and share\" button or copied from the browser URL)": "",
"What's the inappropriate username?": "",
"If the username is offensive in a non-English language, or if it's not obvious, please be sure to explain below.": "",
"Please provide replays of the battle with inappropriate Pokemon nicknames": "",
"If the nickname is offensive in a non-english language, or if it's not obvious, please be sure to explain.": "",
"Your opponent cannot control how lucky or unlucky you are, what moves you choose, or the mechanics of the battle. You may just be misunderstanding what happened in your battle!": "",
"Some common situations": "",
"My opponent's Pokemon used moves it couldn't learn": "",
"It was probably a disguised Zoroark (<psicon pokemon=\"zoroark\" />), which has the ability <a href=\"//${Config.routes.dex}/abilities/illusion\">Illusion</a>. This happens often in Random Battles!": "",
"My opponent got very lucky (critical hits, freezes, flinches, etc.)": "",
"Sometimes, <a href=\"//${Config.routes.root}/pages/rng\">that's just how RNG works</a>!": "",
"My opponent used six of the same Pokemon or too many Legendaries": "",
"Certain tiers, like Anything Goes, do not have Species Clause, which normally restricts a player to only one of each Pokemon. In addition, many tiers allow lots of legendaries, and you are allowed to use them!": "",
"My Pokemon used a move I didn't choose": "",
"You accidentally selected the wrong move and didn't notice. It happens more often than you might think!": "",
"My Pokemon moved last when it shouldn't have": "",
"You probably accidentally chose a move with negative priority, like Trick Room, Dragon Tail, or Roar.": "",
"My Pokemon's Ability didn't work": "",
"Perhaps Weezing's <a href=\"//${Config.routes.dex}/abilities/neutralizinggas\">Neutralizing Gas</a> was active (<psicon pokemon=\"weezinggalar\" />), or another effect, like <a href=\"https://dex.pokemonshowdown.com/abilities/moldbreaker\">Mold Breaker</a>, was suppressing the Ability.": "",
"My Pokemon's move failed when I attacked the opponent in a Double Battle)": "",
"You attacked your own partner Pokemon, which failed because no Pokemon was there.": "",
"There are many more situations like this where the opponent was not cheating or hacking. If you're confused about what happened, upload your battle replay and share it with the Help room. They can help you understand what happened!": "",
"Join the Help Room": "",
"You will have to explain in detail why your punishment is unjustified and why we would want to unlock you. Insufficient explanations such as \"lol this is bs unlock me\" will not be considered.": "",
"I want to know how long is left on my lock.": "",
"I want to know why I was locked.": "",
"You aren't locked.": "",
"No reasons were found on your lock.": "",
"The other user started it.": "",
"If you have been locked, it is because your behavior on its own has broken PS rules - whether someone else \"started\" it does not excuse it.": "",
"If someone broke the rules during the interaction with led to your lock, they should have been punished as well when we addressed the report concerning you.": "",
"I'm locked under a name or IP I don't recognize.": "",
"I am at a public place (school, library, workplace, etc) or was locked in one.": "",
"If you have been locked at school or in a library, please write down its name, city and country in the form below so we can verify your claim. This information is strictly confidential, and global staff will only use it to deal with your appeal.": "",
"If you have been locked using the wifi of another type of facility, please write down which kind it is in the form.": "",
"Where are you currently connecting from? Please give its name, city, and country.": "",
"I'm locked because someone in my home was punished.": "",
"If you are using your home's wifi network, it means that the person you are being mistaken for did as well (maybe a family member?).": "",
"In any case, we have no ability to make the difference - for all we know, you are the same user. Please wait out the lock.": "",
"I am using mobile data.": "",
"If you are not the user who was punished, the lock should expire on its own within a few hours.": "",
"If you are in a hurry to communicate with another user, you can click on the following button to open a ticket.": "",
"A staff member will look at your case as soon as possible.": "",
"I'm locked because someone misused my device or account.": "",
"Sorry, but you are considered responsible for whoever has access to your computer.": "",
"We have no way to make the difference between two people using the exact same computer. Please wait out the lock.": "",
"I'm locked because I have the same IP as someone I don't recognize.": "",
"I am punished but do not fall under any of the above.": "",
"If you need your Pokémon Showdown password reset, you can fill out a <a href=\"https://www.smogon.com/forums/password-reset-form/\">Password Reset Form</a>.": "",
"You will need to make a Smogon account to be able to fill out a form.": "",
"Enter the name of the room": "",
},
};
Loading
Loading