Skip to content

Commit

Permalink
enhance(frontend): 通報のカテゴリーの調整・説明文の追加 (MisskeyIO#642)
Browse files Browse the repository at this point in the history
  • Loading branch information
u1-liquid committed May 24, 2024
1 parent f6bf7f9 commit dff3853
Show file tree
Hide file tree
Showing 5 changed files with 135 additions and 73 deletions.
32 changes: 22 additions & 10 deletions locales/en-US.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1278,18 +1278,30 @@ reportComplete: "Report Completed"
blockThisUser: "Block This User"
muteThisUser: "Mute This User"
_abuseReportCategory:
nsfw: "Posts containing sensitive content"
nsfw: "Sensitive Content Violating NSFW Guidelines"
nsfw_description: "Media posts without an NSFW (Not Safe For Work / Sensitive) flag, text posts not hidden by CW (Content Warning), media showing real-life genitalia, etc"
spam: "Spam"
explicit: "Violent or aggressive posts"
phishing: "Phishing or fraudulent activities"
personalInfoLeak: "Leak of personal information of oneself or others"
selfHarm: "Issues related to suicide or self-harm"
criticalBreach: "Serious violation of terms"
otherBreach: "Other violations of terms"
violationRights: "Infringement of rights or impersonation (self)"
violationRightsOther: "Infringement of rights (others)"
notLike: "Dislike of this person"
spam_description: "Promotion or inducement of suspicious websites (such as non-typical e-commerce or adult sites), repeated renotes (reposts) or posts in a short period flooding the timeline, etc"
explicit: "Violence or Aggressive Actions Affecting Safety"
explicit_description: "Malicious extreme posts involving aggression, threats, violence, and actions that hinder the use of other users, etc"
phishing: "Phishing or Fraud"
phishing_description: "Attempts to steal personal information or monetary fraud through fake websites or messages"
personalInfoLeak: "Leak of Personal Information (Self or Others)"
personalInfoLeak_description: "Unauthorized disclosure of personal information such as addresses, phone numbers, email addresses, etc"
selfHarm: "Life-Threatening Actions Such as Suicide or Self-Harm"
selfHarm_description: "Posts suggesting self-harm, suicide, or other life-threatening dangerous actions"
criticalBreach: "Serious Violation of Terms"
criticalBreach_description: "Actions that seriously violate the terms and have a significant impact"
otherBreach: "Other Violations of Terms"
otherBreach_description: "Other actions that violate the terms but do not fall under specific categories"
violationRights: "Rights Infringement or Impersonation (Reported by Rights Holder)"
violationRights_description: "Posts infringing the rights (such as copyright or trademark) of the rights holder or impersonation"
violationRightsOther: "Rights Infringement or Impersonation (Reported by Third Party)"
violationRightsOther_description: "Posts infringing the rights (such as copyright or trademark) of others or impersonation\nIf reported by a third party, cases outside the scope of non-complaint offenses as defined by law may not be addressed"
notLike: "Dislike This Person"
notLike_description: "Users or posts that you find unpleasant for personal reasons"
other: "Other"
other_description: "Other issues not falling under the above categories"
_announcement:
forExistingUsers: "Existing users only"
forExistingUsersDescription: "This announcement will only be shown to users existing at the point of publishment if enabled. If disabled, those newly signing up after it has been posted will also see it."
Expand Down
63 changes: 53 additions & 10 deletions locales/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5137,61 +5137,104 @@ export interface Locale extends ILocale {
"section3": string;
};
};
"_abuseReportMsgs": {
/**
* 申し訳ございません。権利侵害の通報は権利者ご本人からのみ受け付けております。
*/
"rightsAbuseCantAccept": string;
};
"_abuseReportCategory": {
/**
* センシティブなコンテンツを含む投稿
* NSFWガイドラインに反するセンシティブなコンテンツ
*/
"nsfw": string;
/**
* NSFW(閲覧注意・センシティブ)フラグのないメディア投稿、CW(内容を隠す)で隠されていないテキスト投稿、実写の性器が写り込んでいるメディア等
*/
"nsfw_description": string;
/**
* スパム
*/
"spam": string;
/**
* 暴力もしくは攻撃的な投稿
* 不審なウェブサイト(一般的でない通販サイトやアダルトサイト等)の宣伝・誘導、短時間でリノート(再投稿)や投稿を繰り返し行いタイムラインを埋める行為等
*/
"spam_description": string;
/**
* 暴力もしくは攻撃的な安全にかかわる行為
*/
"explicit": string;
/**
* 攻撃的・脅迫・暴力など、悪意のある過激な投稿、他ユーザーの利用を妨げる行為等
*/
"explicit_description": string;
/**
* フィッシングもしくは詐欺行為
*/
"phishing": string;
/**
* 偽のウェブサイトやメッセージで個人情報を盗む試み、または金銭詐取の試み
*/
"phishing_description": string;
/**
* 本人もしくは他人の個人情報の漏えい
*/
"personalInfoLeak": string;
/**
* 住所、電話番号、メールアドレスなどの個人情報の無断公開
*/
"personalInfoLeak_description": string;
/**
* 自殺もしくは自害など生命に関わる問題
*/
"selfHarm": string;
/**
* 自傷行為、自殺を示唆する投稿、またはその他の生命に関わる危険行為
*/
"selfHarm_description": string;
/**
* 重大な規約違反
*/
"criticalBreach": string;
/**
* 重大な影響を及ぼす規約違反行為
*/
"criticalBreach_description": string;
/**
* その他の規約違反
*/
"otherBreach": string;
/**
* 権利侵害もしくはなりすまし(本人)
* 明確に分類されないその他の規約違反行為
*/
"otherBreach_description": string;
/**
* 権利侵害やなりすまし(侵害を受けた権利者本人によるご申告)
*/
"violationRights": string;
/**
* 権利侵害(他人)
* 権利者本人の著作権、商標権、またはその他の権利を侵害する投稿及びなりすまし行為
*/
"violationRights_description": string;
/**
* 権利侵害やなりすまし(第三者による通報)
*/
"violationRightsOther": string;
/**
* 他人の著作権、商標権、またはその他の権利を侵害する投稿及びなりすまし行為
* 第三者による通報の場合、法律で定められた非親告罪の範囲外のケースには対応できないことがあります
*/
"violationRightsOther_description": string;
/**
* この人が気に入らない
*/
"notLike": string;
/**
* 個人的な理由で不快と感じるユーザーや投稿
*/
"notLike_description": string;
/**
* その他
*/
"other": string;
/**
* 上記のいずれにも該当しないその他の問題
*/
"other_description": string;
};
"_announcement": {
/**
Expand Down
23 changes: 16 additions & 7 deletions locales/ja-JP.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1283,22 +1283,31 @@ _bubbleGame:
section2: "同じ種類のモノがくっつくと別のモノに変化して、スコアが得られます。"
section3: "モノがハコからあふれるとゲームオーバーです。ハコからあふれないようにしつつモノを融合させてハイスコアを目指そう!"

_abuseReportMsgs:
rightsAbuseCantAccept: "申し訳ございません。権利侵害の通報は権利者ご本人からのみ受け付けております。"

_abuseReportCategory:
nsfw: "センシティブなコンテンツを含む投稿"
nsfw: "NSFWガイドラインに反するセンシティブなコンテンツ"
nsfw_description: "NSFW(閲覧注意・センシティブ)フラグのないメディア投稿、CW(内容を隠す)で隠されていないテキスト投稿、実写の性器が写り込んでいるメディア等"
spam: "スパム"
explicit: "暴力もしくは攻撃的な投稿"
spam_description: "不審なウェブサイト(一般的でない通販サイトやアダルトサイト等)の宣伝・誘導、短時間でリノート(再投稿)や投稿を繰り返し行いタイムラインを埋める行為等"
explicit: "暴力もしくは攻撃的な安全にかかわる行為"
explicit_description: "攻撃的・脅迫・暴力など、悪意のある過激な投稿、他ユーザーの利用を妨げる行為等"
phishing: "フィッシングもしくは詐欺行為"
phishing_description: "偽のウェブサイトやメッセージで個人情報を盗む試み、または金銭詐取の試み"
personalInfoLeak: "本人もしくは他人の個人情報の漏えい"
personalInfoLeak_description: "住所、電話番号、メールアドレスなどの個人情報の無断公開"
selfHarm: "自殺もしくは自害など生命に関わる問題"
selfHarm_description: "自傷行為、自殺を示唆する投稿、またはその他の生命に関わる危険行為"
criticalBreach: "重大な規約違反"
criticalBreach_description: "重大な影響を及ぼす規約違反行為"
otherBreach: "その他の規約違反"
violationRights: "権利侵害もしくはなりすまし(本人)"
violationRightsOther: "権利侵害(他人)"
otherBreach_description: "明確に分類されないその他の規約違反行為"
violationRights: "権利侵害やなりすまし(侵害を受けた権利者本人によるご申告)"
violationRights_description: "権利者本人の著作権、商標権、またはその他の権利を侵害する投稿及びなりすまし行為"
violationRightsOther: "権利侵害やなりすまし(第三者による通報)"
violationRightsOther_description: "他人の著作権、商標権、またはその他の権利を侵害する投稿及びなりすまし行為\n第三者による通報の場合、法律で定められた非親告罪の範囲外のケースには対応できないことがあります"
notLike: "この人が気に入らない"
notLike_description: "個人的な理由で不快と感じるユーザーや投稿"
other: "その他"
other_description: "上記のいずれにも該当しないその他の問題"

_announcement:
forExistingUsers: "既存ユーザーのみ"
Expand Down
28 changes: 20 additions & 8 deletions locales/ko-KR.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1271,18 +1271,30 @@ reportComplete: "신고 완료"
blockThisUser: "이 사용자 차단하기"
muteThisUser: "이 사용자 뮤트하기"
_abuseReportCategory:
nsfw: "민감한 콘텐츠가 포함된 게시물"
nsfw: "NSFW 가이드라인에 반하는 민감한 콘텐츠"
nsfw_description: "NSFW(열람주의 / 민감한 콘텐츠) 플래그가 없는 미디어 게시물, CW(내용을 숨김) 없이 노출된 텍스트 게시물, 실제 성기가 포함된 미디어 등"
spam: "스팸"
explicit: "폭력적이거나 공격적인 게시물"
spam_description: "의심스러운 웹사이트(일반적이지 않은 쇼핑몰이나 성인 사이트 등)의 광고나 유도, 짧은 시간 내에 리노트나 게시물을 반복적으로 올려 타임라인을 채우는 행위 등"
explicit: "폭력 또는 공격적인 안전에 관한 행위"
explicit_description: "공격적이거나 협박, 폭력적인 게시물, 다른 사용자의 이용을 방해하는 행위 등"
phishing: "피싱 또는 사기 행위"
phishing_description: "가짜 웹사이트나 메시지로 개인 정보를 훔치려는 시도, 또는 금전 사기 시도"
personalInfoLeak: "본인 또는 타인의 개인 정보 유출"
selfHarm: "자살 또는 자해와 같은 생명에 관련된 문제"
criticalBreach: "중대한 약관 위반"
otherBreach: "기타 약관 위반"
violationRights: "권리 침해 또는 사칭 (본인)"
violationRightsOther: "타인의 권리 침해"
notLike: "이 사람을 싫어함"
personalInfoLeak_description: "주소, 전화번호, 이메일 주소 등 개인 정보를 무단으로 공개하는 행위"
selfHarm: "자살 또는 자해 등 생명에 관한 문제"
selfHarm_description: "자해 행위, 자살을 암시하는 게시물, 또는 기타 생명에 위협이 되는 위험 행위"
criticalBreach: "중대한 규약 위반"
criticalBreach_description: "중대한 영향을 미치는 규약 위반 행위"
otherBreach: "기타 규약 위반"
otherBreach_description: "명확하게 분류되지 않는 기타 규약 위반 행위"
violationRights: "권리 침해 또는 사칭 (권리자 본인에 의한 신고)"
violationRights_description: "권리자 본인의 저작권, 상표권 또는 기타 권리를 침해하는 게시물 및 사칭 행위"
violationRightsOther: "권리 침해 또는 사칭 (제3자에 의한 신고)"
violationRightsOther_description: "타인의 저작권, 상표권 또는 기타 권리를 침해하는 게시물 및 사칭 행위\n제3자에 의한 신고의 경우, 법으로 정해진 비친고죄 범위 외의 사례에는 대응할 수 없습니다"
notLike: "이 사람이 마음에 들지 않음"
notLike_description: "개인적인 이유로 불쾌감을 느끼는 사용자나 게시물"
other: "기타"
other_description: "위의 어느 항목에도 해당하지 않는 기타 문제"
_announcement:
forExistingUsers: "기존 유저에게만 알림"
forExistingUsersDescription: "활성화하면 이 공지사항을 게시한 시점에서 이미 가입한 유저에게만 표시합니다. 비활성화하면 게시 후에 가입한 유저에게도 표시합니다."
Expand Down
62 changes: 24 additions & 38 deletions packages/frontend/src/components/MkAbuseReportWindow.vue
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ SPDX-License-Identifier: AGPL-3.0-only
-->

<template>
<MkWindow v-if="page === 1" ref="uiWindow" :initialWidth="400" :initialHeight="500" :canResize="true" @closed="emit('closed')">
<MkWindow v-if="page === 1" ref="uiWindow" :initialWidth="500" :initialHeight="500" :canResize="true" @closed="emit('closed')">
<template #header>
<i class="ti ti-exclamation-circle" style="margin-right: 0.5em;"></i>
<I18n :src="i18n.ts.reportAbuseOf" tag="span">
Expand All @@ -15,33 +15,28 @@ SPDX-License-Identifier: AGPL-3.0-only
</template>
<MkSpacer :marginMin="20" :marginMax="28">
<div class="_gaps_m" :class="$style.root">
<div>
<MkSelect v-model="category" :required="true">
<template #label>{{ i18n.ts.abuseReportCategory }}</template>
<option value="" selected disabled>{{ i18n.ts.selectCategory }}</option>
<option value="nsfw">{{ i18n.ts._abuseReportCategory.nsfw }}</option>
<option value="spam">{{ i18n.ts._abuseReportCategory.spam }}</option>
<option value="explicit">{{ i18n.ts._abuseReportCategory.explicit }}</option>
<option value="phishing">{{ i18n.ts._abuseReportCategory.phishing }}</option>
<option value="personalInfoLeak">{{ i18n.ts._abuseReportCategory.personalInfoLeak }}</option>
<option value="selfHarm">{{ i18n.ts._abuseReportCategory.selfHarm }}</option>
<option value="criticalBreach">{{ i18n.ts._abuseReportCategory.criticalBreach }}</option>
<option value="otherBreach">{{ i18n.ts._abuseReportCategory.otherBreach }}</option>
<option value="violationRights">{{ i18n.ts._abuseReportCategory.violationRights }}</option>
<option value="violationRightsOther">{{ i18n.ts._abuseReportCategory.violationRightsOther }}</option>
<option value="notLike">{{ i18n.ts._abuseReportCategory.notLike }}</option>
<option value="other">{{ i18n.ts._abuseReportCategory.other }}</option>
</MkSelect>
</div>
<div class="">
<MkTextarea v-model="comment">
<template #label>{{ i18n.ts.details }}</template>
<template #caption>{{ i18n.ts.fillAbuseReportDescription }}</template>
</MkTextarea>
</div>
<div class="">
<MkButton primary full :disabled="comment.length === 0 || category.length === 0" @click="send">{{ i18n.ts.send }}</MkButton>
</div>
<MkSelect v-model="category" :required="true">
<template #label>{{ i18n.ts.abuseReportCategory }}</template>
<template v-if="category" #caption><Mfm :text="i18n.ts._abuseReportCategory[`${category}_description`]"/></template>
<option value="" selected disabled>{{ i18n.ts.selectCategory }}</option>
<option value="nsfw">{{ i18n.ts._abuseReportCategory.nsfw }}</option>
<option value="spam">{{ i18n.ts._abuseReportCategory.spam }}</option>
<option value="explicit">{{ i18n.ts._abuseReportCategory.explicit }}</option>
<option value="phishing">{{ i18n.ts._abuseReportCategory.phishing }}</option>
<option value="personalInfoLeak">{{ i18n.ts._abuseReportCategory.personalInfoLeak }}</option>
<option value="selfHarm">{{ i18n.ts._abuseReportCategory.selfHarm }}</option>
<option value="criticalBreach">{{ i18n.ts._abuseReportCategory.criticalBreach }}</option>
<option value="otherBreach">{{ i18n.ts._abuseReportCategory.otherBreach }}</option>
<option value="violationRights">{{ i18n.ts._abuseReportCategory.violationRights }}</option>
<option value="violationRightsOther">{{ i18n.ts._abuseReportCategory.violationRightsOther }}</option>
<option value="notLike">{{ i18n.ts._abuseReportCategory.notLike }}</option>
<option value="other">{{ i18n.ts._abuseReportCategory.other }}</option>
</MkSelect>
<MkTextarea v-model="comment">
<template #label>{{ i18n.ts.details }}</template>
<template #caption>{{ i18n.ts.fillAbuseReportDescription }}</template>
</MkTextarea>
<MkButton primary full :disabled="comment.length === 0 || category.length === 0" @click="send">{{ i18n.ts.send }}</MkButton>
</div>
</MkSpacer>
</MkWindow>
Expand All @@ -68,9 +63,9 @@ SPDX-License-Identifier: AGPL-3.0-only
import { ref, shallowRef, Ref } from 'vue';
import * as Misskey from 'misskey-js';
import MkWindow from '@/components/MkWindow.vue';
import MkSelect from '@/components/MkSelect.vue';
import MkTextarea from '@/components/MkTextarea.vue';
import MkButton from '@/components/MkButton.vue';
import MkSelect from '@/components/MkSelect.vue';
import * as os from '@/os.js';
import { i18n } from '@/i18n.js';
import { misskeyApi } from '@/scripts/misskey-api.js';
Expand Down Expand Up @@ -114,15 +109,6 @@ function refreshUserInfo() {
}
function send() {
if (category.value === 'violationRightsOther') {
os.alert({
type: 'info',
text: i18n.ts._abuseReportMsgs.rightsAbuseCantAccept,
});
uiWindow.value?.close();
emit('closed');
return;
}
if (category.value === 'notLike') {
uiWindow.value?.close();
page.value = 2;
Expand Down

0 comments on commit dff3853

Please sign in to comment.