diff --git a/public/translations/ar/default.json b/public/translations/ar/default.json index f14f0fdf..3187e2e7 100644 --- a/public/translations/ar/default.json +++ b/public/translations/ar/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "لوحات الدليل فقط (سريع)", "boards_loaded": "اللوحات المحملة:", "link_not_image_or_video_alert": "الرابط ليس صورة أو فيديو.", - "not_a_file": "ليس ملفًا" + "not_a_file": "ليس ملفًا", + "tor_author_flag_label": "هذا المستخدم يستخدم Tor" } diff --git a/public/translations/bn/default.json b/public/translations/bn/default.json index 398e30b4..52b2008a 100644 --- a/public/translations/bn/default.json +++ b/public/translations/bn/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "শুধু ডিরেক্টরি বোর্ড (দ্রুত)", "boards_loaded": "লোড করা বোর্ড:", "link_not_image_or_video_alert": "লিংকটি ছবি বা ভিডিও নয়।", - "not_a_file": "ফাইল নয়" + "not_a_file": "ফাইল নয়", + "tor_author_flag_label": "এই ব্যবহারকারী Tor ব্যবহার করছেন" } diff --git a/public/translations/cs/default.json b/public/translations/cs/default.json index e7644a24..f48f227d 100644 --- a/public/translations/cs/default.json +++ b/public/translations/cs/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Pouze nástěnky v adresáři (rychlé)", "boards_loaded": "načtené nástěnky:", "link_not_image_or_video_alert": "Odkaz není obrázek ani video.", - "not_a_file": "není soubor" + "not_a_file": "není soubor", + "tor_author_flag_label": "Tento uživatel je na síti Tor" } diff --git a/public/translations/da/default.json b/public/translations/da/default.json index 67a1eef1..ad74f783 100644 --- a/public/translations/da/default.json +++ b/public/translations/da/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Kun boards i kataloget (hurtigt)", "boards_loaded": "indlæste boards:", "link_not_image_or_video_alert": "Linket er ikke et billede eller en video.", - "not_a_file": "ikke en fil" + "not_a_file": "ikke en fil", + "tor_author_flag_label": "Denne bruger er på Tor" } diff --git a/public/translations/de/default.json b/public/translations/de/default.json index 7ab83754..d6136f95 100644 --- a/public/translations/de/default.json +++ b/public/translations/de/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Nur Verzeichnis-Boards (schnell)", "boards_loaded": "geladene Boards:", "link_not_image_or_video_alert": "Der Link ist kein Bild oder Video.", - "not_a_file": "keine Datei" + "not_a_file": "keine Datei", + "tor_author_flag_label": "Dieser Benutzer ist auf Tor" } diff --git a/public/translations/el/default.json b/public/translations/el/default.json index 8a7ff813..f70674e2 100644 --- a/public/translations/el/default.json +++ b/public/translations/el/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Μόνο boards καταλόγου (γρήγορο)", "boards_loaded": "φορτωμένοι πίνακες:", "link_not_image_or_video_alert": "Ο σύνδεσμος δεν είναι εικόνα ή βίντεο.", - "not_a_file": "δεν είναι αρχείο" + "not_a_file": "δεν είναι αρχείο", + "tor_author_flag_label": "Αυτός ο χρήστης είναι στο Tor" } diff --git a/public/translations/en/default.json b/public/translations/en/default.json index 9c6a7044..54480672 100644 --- a/public/translations/en/default.json +++ b/public/translations/en/default.json @@ -424,5 +424,6 @@ "stats_scope_directory_boards": "Directory boards only (fast)", "boards_loaded": "boards loaded:", "link_not_image_or_video_alert": "Link is not an image or video.", - "not_a_file": "not a file" + "not_a_file": "not a file", + "tor_author_flag_label": "This user is on Tor" } diff --git a/public/translations/es/default.json b/public/translations/es/default.json index c15da9bf..a4b8c389 100644 --- a/public/translations/es/default.json +++ b/public/translations/es/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Solo boards del directorio (rápido)", "boards_loaded": "tableros cargados:", "link_not_image_or_video_alert": "El enlace no es una imagen ni un video.", - "not_a_file": "no es un archivo" + "not_a_file": "no es un archivo", + "tor_author_flag_label": "Este usuario está en Tor" } diff --git a/public/translations/fa/default.json b/public/translations/fa/default.json index 50084fe7..ac3c1acf 100644 --- a/public/translations/fa/default.json +++ b/public/translations/fa/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "فقط بردهای دایرکتوری (سریع)", "boards_loaded": "بردهای بارگذاری‌شده:", "link_not_image_or_video_alert": "پیوند تصویر یا ویدیو نیست.", - "not_a_file": "فایل نیست" + "not_a_file": "فایل نیست", + "tor_author_flag_label": "این کاربر روی Tor است" } diff --git a/public/translations/fi/default.json b/public/translations/fi/default.json index a82c395a..5dd55c40 100644 --- a/public/translations/fi/default.json +++ b/public/translations/fi/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Vain hakemiston boardit (nopea)", "boards_loaded": "ladatut boardit:", "link_not_image_or_video_alert": "Linkki ei ole kuva tai video.", - "not_a_file": "ei ole tiedosto" + "not_a_file": "ei ole tiedosto", + "tor_author_flag_label": "Tämä käyttäjä on Torissa" } diff --git a/public/translations/fil/default.json b/public/translations/fil/default.json index 4f0010bb..7cff6036 100644 --- a/public/translations/fil/default.json +++ b/public/translations/fil/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Mga board ng directory lang (mabilis)", "boards_loaded": "mga board na na-load:", "link_not_image_or_video_alert": "Ang link ay hindi larawan o video.", - "not_a_file": "hindi file" + "not_a_file": "hindi file", + "tor_author_flag_label": "Ang user na ito ay nasa Tor" } diff --git a/public/translations/fr/default.json b/public/translations/fr/default.json index a7d7930f..6786b5e2 100644 --- a/public/translations/fr/default.json +++ b/public/translations/fr/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Boards de l'annuaire uniquement (rapide)", "boards_loaded": "boards chargés :", "link_not_image_or_video_alert": "Le lien n'est pas une image ni une vidéo.", - "not_a_file": "pas un fichier" + "not_a_file": "pas un fichier", + "tor_author_flag_label": "Cet utilisateur est sur Tor" } diff --git a/public/translations/he/default.json b/public/translations/he/default.json index 96e3c4cf..e62b4e39 100644 --- a/public/translations/he/default.json +++ b/public/translations/he/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "רק לוחות מהספרייה (מהיר)", "boards_loaded": "לוחות שנטענו:", "link_not_image_or_video_alert": "הקישור אינו תמונה או וידאו.", - "not_a_file": "לא קובץ" + "not_a_file": "לא קובץ", + "tor_author_flag_label": "המשתמש הזה נמצא ב-Tor" } diff --git a/public/translations/hi/default.json b/public/translations/hi/default.json index d8e2d769..bcfa2b33 100644 --- a/public/translations/hi/default.json +++ b/public/translations/hi/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "सिर्फ डायरेक्टरी बोर्ड (तेज़)", "boards_loaded": "लोड किए गए बोर्ड:", "link_not_image_or_video_alert": "लिंक कोई छवि या वीडियो नहीं है.", - "not_a_file": "फ़ाइल नहीं है" + "not_a_file": "फ़ाइल नहीं है", + "tor_author_flag_label": "यह उपयोगकर्ता Tor पर है" } diff --git a/public/translations/hu/default.json b/public/translations/hu/default.json index fe784015..5f5e90b0 100644 --- a/public/translations/hu/default.json +++ b/public/translations/hu/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Csak a könyvtár boardjai (gyors)", "boards_loaded": "betöltött boardok:", "link_not_image_or_video_alert": "A hivatkozás nem kép vagy videó.", - "not_a_file": "nem fájl" + "not_a_file": "nem fájl", + "tor_author_flag_label": "Ez a felhasználó a Tor hálózatán van" } diff --git a/public/translations/id/default.json b/public/translations/id/default.json index 076b4b92..360b76b8 100644 --- a/public/translations/id/default.json +++ b/public/translations/id/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Hanya board direktori (cepat)", "boards_loaded": "board dimuat:", "link_not_image_or_video_alert": "Tautan bukan gambar atau video.", - "not_a_file": "bukan file" + "not_a_file": "bukan file", + "tor_author_flag_label": "Pengguna ini ada di Tor" } diff --git a/public/translations/it/default.json b/public/translations/it/default.json index d9d22213..96be7a0d 100644 --- a/public/translations/it/default.json +++ b/public/translations/it/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Solo board della directory (veloce)", "boards_loaded": "board caricati:", "link_not_image_or_video_alert": "Il link non è un'immagine né un video.", - "not_a_file": "non è un file" + "not_a_file": "non è un file", + "tor_author_flag_label": "Questo utente è su Tor" } diff --git a/public/translations/ja/default.json b/public/translations/ja/default.json index 85b6b5d5..1fcc4ca7 100644 --- a/public/translations/ja/default.json +++ b/public/translations/ja/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "ディレクトリの掲示板のみ(高速)", "boards_loaded": "読み込まれた板:", "link_not_image_or_video_alert": "リンクは画像または動画ではありません。", - "not_a_file": "ファイルではありません" + "not_a_file": "ファイルではありません", + "tor_author_flag_label": "このユーザーはTorを使用しています" } diff --git a/public/translations/ko/default.json b/public/translations/ko/default.json index 76d6b32a..bd2fb2f3 100644 --- a/public/translations/ko/default.json +++ b/public/translations/ko/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "디렉터리 게시판만 (빠름)", "boards_loaded": "불러온 게시판:", "link_not_image_or_video_alert": "링크가 이미지 또는 동영상이 아닙니다.", - "not_a_file": "파일이 아님" + "not_a_file": "파일이 아님", + "tor_author_flag_label": "이 사용자는 Tor를 사용 중입니다" } diff --git a/public/translations/mr/default.json b/public/translations/mr/default.json index 212dab53..6a05d049 100644 --- a/public/translations/mr/default.json +++ b/public/translations/mr/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "फक्त निर्देशिका बोर्ड (जलद)", "boards_loaded": "लोड केलेले बोर्ड:", "link_not_image_or_video_alert": "लिंक प्रतिमा किंवा व्हिडिओ नाही.", - "not_a_file": "फाइल नाही" + "not_a_file": "फाइल नाही", + "tor_author_flag_label": "हा वापरकर्ता Tor वर आहे" } diff --git a/public/translations/nl/default.json b/public/translations/nl/default.json index ae00001e..d0e1e370 100644 --- a/public/translations/nl/default.json +++ b/public/translations/nl/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Alleen directory-boards (snel)", "boards_loaded": "geladen boards:", "link_not_image_or_video_alert": "De link is geen afbeelding of video.", - "not_a_file": "geen bestand" + "not_a_file": "geen bestand", + "tor_author_flag_label": "Deze gebruiker zit op Tor" } diff --git a/public/translations/no/default.json b/public/translations/no/default.json index 5f6edbf7..f52e42c6 100644 --- a/public/translations/no/default.json +++ b/public/translations/no/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Bare katalog-boards (raskt)", "boards_loaded": "lastede boards:", "link_not_image_or_video_alert": "Lenken er ikke et bilde eller en video.", - "not_a_file": "ikke en fil" + "not_a_file": "ikke en fil", + "tor_author_flag_label": "Denne brukeren er på Tor" } diff --git a/public/translations/pl/default.json b/public/translations/pl/default.json index 3ba21c87..f24a3fd1 100644 --- a/public/translations/pl/default.json +++ b/public/translations/pl/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Tylko boardy z katalogu (szybko)", "boards_loaded": "załadowane boardy:", "link_not_image_or_video_alert": "Link nie jest obrazem ani filmem.", - "not_a_file": "to nie plik" + "not_a_file": "to nie plik", + "tor_author_flag_label": "Ten użytkownik jest w sieci Tor" } diff --git a/public/translations/pt/default.json b/public/translations/pt/default.json index 67c0baf5..042ba742 100644 --- a/public/translations/pt/default.json +++ b/public/translations/pt/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Somente boards do diretório (rápido)", "boards_loaded": "boards carregados:", "link_not_image_or_video_alert": "O link não é uma imagem nem um vídeo.", - "not_a_file": "não é um arquivo" + "not_a_file": "não é um arquivo", + "tor_author_flag_label": "Este usuário está no Tor" } diff --git a/public/translations/ro/default.json b/public/translations/ro/default.json index 1cc09d62..8fa4d518 100644 --- a/public/translations/ro/default.json +++ b/public/translations/ro/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Doar boardurile din director (rapid)", "boards_loaded": "boarduri încărcate:", "link_not_image_or_video_alert": "Linkul nu este o imagine sau un videoclip.", - "not_a_file": "nu este fișier" + "not_a_file": "nu este fișier", + "tor_author_flag_label": "Acest utilizator este pe Tor" } diff --git a/public/translations/ru/default.json b/public/translations/ru/default.json index 4f5b1e1c..13661f21 100644 --- a/public/translations/ru/default.json +++ b/public/translations/ru/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Только доски каталога (быстро)", "boards_loaded": "загруженные доски:", "link_not_image_or_video_alert": "Ссылка не является изображением или видео.", - "not_a_file": "не файл" + "not_a_file": "не файл", + "tor_author_flag_label": "Этот пользователь находится в Tor" } diff --git a/public/translations/sq/default.json b/public/translations/sq/default.json index a609a875..6d96ec85 100644 --- a/public/translations/sq/default.json +++ b/public/translations/sq/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Vetëm bordet e drejtorisë (shpejt)", "boards_loaded": "bordet e ngarkuara:", "link_not_image_or_video_alert": "Lidhja nuk është imazh ose video.", - "not_a_file": "nuk është skedar" + "not_a_file": "nuk është skedar", + "tor_author_flag_label": "Ky përdorues është në Tor" } diff --git a/public/translations/sv/default.json b/public/translations/sv/default.json index 2dc89095..be8c36e6 100644 --- a/public/translations/sv/default.json +++ b/public/translations/sv/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Endast katalogens boards (snabbt)", "boards_loaded": "laddade boards:", "link_not_image_or_video_alert": "Länken är inte en bild eller video.", - "not_a_file": "inte en fil" + "not_a_file": "inte en fil", + "tor_author_flag_label": "Den här användaren är på Tor" } diff --git a/public/translations/te/default.json b/public/translations/te/default.json index 720798d6..b682b90f 100644 --- a/public/translations/te/default.json +++ b/public/translations/te/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "డైరెక్టరీ బోర్డులు మాత్రమే (వేగంగా)", "boards_loaded": "లోడ్ చేసిన బోర్డులు:", "link_not_image_or_video_alert": "లింక్ చిత్రం లేదా వీడియో కాదు.", - "not_a_file": "ఫైల్ కాదు" + "not_a_file": "ఫైల్ కాదు", + "tor_author_flag_label": "ఈ వినియోగదారు Tor లో ఉన్నారు" } diff --git a/public/translations/th/default.json b/public/translations/th/default.json index 57527a04..1a10496a 100644 --- a/public/translations/th/default.json +++ b/public/translations/th/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "เฉพาะบอร์ดในไดเรกทอรี (เร็ว)", "boards_loaded": "บอร์ดที่โหลดแล้ว:", "link_not_image_or_video_alert": "ลิงก์ไม่ใช่รูปภาพหรือวิดีโอ", - "not_a_file": "ไม่ใช่ไฟล์" + "not_a_file": "ไม่ใช่ไฟล์", + "tor_author_flag_label": "ผู้ใช้นี้อยู่บน Tor" } diff --git a/public/translations/tr/default.json b/public/translations/tr/default.json index 1b6cc96a..ed2792ab 100644 --- a/public/translations/tr/default.json +++ b/public/translations/tr/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Yalnızca dizin panolari (hızlı)", "boards_loaded": "yüklenen panolar:", "link_not_image_or_video_alert": "Bağlantı bir görsel veya video değil.", - "not_a_file": "dosya değil" + "not_a_file": "dosya değil", + "tor_author_flag_label": "Bu kullanıcı Tor'da" } diff --git a/public/translations/uk/default.json b/public/translations/uk/default.json index 4514b760..6f0a402f 100644 --- a/public/translations/uk/default.json +++ b/public/translations/uk/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Лише дошки каталогу (швидко)", "boards_loaded": "завантажені дошки:", "link_not_image_or_video_alert": "Посилання не є зображенням або відео.", - "not_a_file": "не файл" + "not_a_file": "не файл", + "tor_author_flag_label": "Цей користувач у Tor" } diff --git a/public/translations/ur/default.json b/public/translations/ur/default.json index 6a0c0695..ded5c62a 100644 --- a/public/translations/ur/default.json +++ b/public/translations/ur/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "صرف ڈائریکٹری بورڈز (تیز)", "boards_loaded": "لوڈ شدہ بورڈز:", "link_not_image_or_video_alert": "لنک تصویر یا ویڈیو نہیں ہے۔", - "not_a_file": "فائل نہیں ہے" + "not_a_file": "فائل نہیں ہے", + "tor_author_flag_label": "یہ صارف Tor پر ہے" } diff --git a/public/translations/vi/default.json b/public/translations/vi/default.json index 13558364..d4545028 100644 --- a/public/translations/vi/default.json +++ b/public/translations/vi/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "Chỉ bảng trong thư mục (nhanh)", "boards_loaded": "bảng đã tải:", "link_not_image_or_video_alert": "Liên kết không phải là hình ảnh hoặc video.", - "not_a_file": "không phải tệp" + "not_a_file": "không phải tệp", + "tor_author_flag_label": "Người dùng này đang ở trên Tor" } diff --git a/public/translations/zh/default.json b/public/translations/zh/default.json index 794c3079..7c2883fa 100644 --- a/public/translations/zh/default.json +++ b/public/translations/zh/default.json @@ -405,5 +405,6 @@ "stats_scope_directory_boards": "仅目录板块(快速)", "boards_loaded": "已加载的版块:", "link_not_image_or_video_alert": "链接不是图片或视频。", - "not_a_file": "不是文件" + "not_a_file": "不是文件", + "tor_author_flag_label": "该用户正在使用 Tor" } diff --git a/src/components/post-author-flags.tsx b/src/components/post-author-flags.tsx index 14fd2e51..620a5d11 100644 --- a/src/components/post-author-flags.tsx +++ b/src/components/post-author-flags.tsx @@ -1,3 +1,4 @@ +import { useTranslation } from 'react-i18next'; import { getCommentFlagFlairs, getAuthorFlagViewModels } from '../lib/comment-flags'; import styles from '../views/post/post.module.css'; @@ -11,6 +12,8 @@ const getBackgroundPosition = (x: number, y: number) => `${x === 0 ? 0 : -x}px $ const transparentPixelSrc = 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="1" height="1"%3E%3C/svg%3E'; const PostAuthorFlags = ({ author, comment, enabled }: PostAuthorFlagsProps) => { + const { t } = useTranslation(); + if (!enabled) return null; const flags = getAuthorFlagViewModels(getCommentFlagFlairs(comment, author)); @@ -18,21 +21,24 @@ const PostAuthorFlags = ({ author, comment, enabled }: PostAuthorFlagsProps) => return ( - {flags.map((flag) => ( - {flag.label} - ))} + {flags.map((flag) => { + const label = flag.labelKey ? t(flag.labelKey, flag.label) : flag.label; + return ( + {label} + ); + })} ); }; diff --git a/src/lib/__tests__/comment-flags.test.ts b/src/lib/__tests__/comment-flags.test.ts index 7c467d3c..8598d496 100644 --- a/src/lib/__tests__/comment-flags.test.ts +++ b/src/lib/__tests__/comment-flags.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from 'vitest'; -import { getCommentFlagFlairs, getAuthorFlagFlairs, getAuthorFlagViewModels } from '../comment-flags'; +import { getCommentFlagFlairs, getAuthorFlagFlairs, getAuthorFlagViewModels, TOR_AUTHOR_FLAG_LABEL_KEY } from '../comment-flags'; describe('comment-flags', () => { it('parses the pkc-js challenge flair example for country flags', () => { @@ -25,6 +25,16 @@ describe('comment-flags', () => { expect(flags[2]).toMatchObject({ label: 'Applejack', x: 80, y: 0 }); }); + it('labels the xx country flag as Tor traffic', () => { + const [flag] = getAuthorFlagViewModels([{ text: 'flag:country:xx' }], 1000); + + expect(flag).toMatchObject({ + key: 'country:xx', + label: 'This user is on Tor', + labelKey: TOR_AUTHOR_FLAG_LABEL_KEY, + }); + }); + it('normalizes text flag kinds before parsing', () => { const flags = getAuthorFlagViewModels([{ text: 'FLAG:COUNTRY:DE' }, { text: 'POL:AC' }, { text: 'flag:MLP:AJ' }], 1000); diff --git a/src/lib/comment-flags.ts b/src/lib/comment-flags.ts index 288a29b4..60c871ca 100644 --- a/src/lib/comment-flags.ts +++ b/src/lib/comment-flags.ts @@ -2,6 +2,9 @@ import { COUNTRY_FLAG_HEIGHT, COUNTRY_FLAG_WIDTH, getCountryFlagPosition, getCou import { getBoardFlagDefinition, normalizeBoardFlagKind, type BoardFlagKind } from './board-flags'; const COUNTRY_FLAG_SPRITE_PATH = 'assets/icons/flags-1.png'; +const TOR_COUNTRY_CODE = 'xx'; +const TOR_AUTHOR_FLAG_LABEL = 'This user is on Tor'; +export const TOR_AUTHOR_FLAG_LABEL_KEY = 'tor_author_flag_label'; const FLAG_TEXT_PATTERN = /^flag:([a-z-]+):([a-z0-9-]+)$/i; const SHORT_FLAG_TEXT_PATTERN = /^(country|geo|pol|political|meme|memeflag|memeflags|pony|mlp):([a-z0-9-]+)$/i; const COUNTRY_EMOJI_TEXT_PATTERN = /^([a-z]{2}|catalonia|eu|fam|xe|xs|xw|xk|xx)-emoji$/i; @@ -46,6 +49,7 @@ export interface AuthorFlagViewModel { type: 'country' | BoardFlagKind; code: string; label: string; + labelKey?: string; spritePath: string; width: number; height: number; @@ -161,7 +165,8 @@ const toCountryFlagViewModel = (codeValue: string): AuthorFlagViewModel | undefi key: `country:${code}`, type: 'country', code, - label: getCountryLabel(code) ?? code.toUpperCase(), + label: code === TOR_COUNTRY_CODE ? TOR_AUTHOR_FLAG_LABEL : (getCountryLabel(code) ?? code.toUpperCase()), + ...(code === TOR_COUNTRY_CODE ? { labelKey: TOR_AUTHOR_FLAG_LABEL_KEY } : {}), spritePath: COUNTRY_FLAG_SPRITE_PATH, width: COUNTRY_FLAG_WIDTH, height: COUNTRY_FLAG_HEIGHT,