diff --git a/src/locales/ar/translation.json b/src/locales/ar/translation.json index 156c3da4..4dd0f73c 100644 --- a/src/locales/ar/translation.json +++ b/src/locales/ar/translation.json @@ -383,7 +383,7 @@ "achievement_unlocked": "تم فتح الإنجاز", "user_achievements": "{{displayName}}إنجازات", "your_achievements": "إنجازاتك", - "unlocked_at": "مقفلة في:", + "unlocked_at": "مقفلة في: {{date}}", "subscription_needed": "مطلوب اشتراك Hydra Cloud لرؤية هذا المحتوى", "new_achievements_unlocked": "مفتوح {{achievementCount}} انجازات جديدة من {{gameCount}} ألعاب", "achievement_progress": "{{unlockedCount}}/{{totalCount}} الإنجازات", diff --git a/src/locales/bg/translation.json b/src/locales/bg/translation.json index a1a5306f..521d1cde 100644 --- a/src/locales/bg/translation.json +++ b/src/locales/bg/translation.json @@ -362,7 +362,7 @@ "achievement_unlocked": "Постижението е отключено", "user_achievements": "Постиженията на {{displayName}} ", "your_achievements": "Вашите Постижения", - "unlocked_at": "Отключено на:", + "unlocked_at": "Отключено на: {{date}}", "subscription_needed": "Необходим е абонамент за Hydra Cloud, за да видите това съдържание", "new_achievements_unlocked": "Отключени {{achievementCount}} нови постижения от {{gameCount}} игра", "achievement_progress": "{{unlockedCount}}/{{totalCount}} постижения", diff --git a/src/locales/cs/translation.json b/src/locales/cs/translation.json index d839fa46..fab790cb 100644 --- a/src/locales/cs/translation.json +++ b/src/locales/cs/translation.json @@ -362,7 +362,7 @@ "achievement_unlocked": "Achievement odemčen", "user_achievements": "Achievementy uživatele {{displayName}}", "your_achievements": "Vaše achievementy", - "unlocked_at": "Odemčeno:", + "unlocked_at": "Odemčeno: {{date}}", "subscription_needed": "Je vyžadováno předplatné Hydra Cloud pro zobrazení tohoto obsahu", "new_achievements_unlocked": "Odemčeno {{achievementCount}} nových achievementů z {{gameCount}} her", "achievement_progress": "{{unlockedCount}}/{{totalCount}} achievementů", diff --git a/src/locales/en/translation.json b/src/locales/en/translation.json index b66b4da6..d792d21a 100644 --- a/src/locales/en/translation.json +++ b/src/locales/en/translation.json @@ -368,11 +368,12 @@ "achievement_unlocked": "Achievement unlocked", "user_achievements": "{{displayName}}'s Achievements", "your_achievements": "Your Achievements", - "unlocked_at": "Unlocked at:", + "unlocked_at": "Unlocked at: {{date}}", "subscription_needed": "A Hydra Cloud subscription is required to see this content", "new_achievements_unlocked": "Unlocked {{achievementCount}} new achievements from {{gameCount}} games", "achievement_progress": "{{unlockedCount}}/{{totalCount}} achievements", - "achievements_unlocked_for_game": "Unlocked {{achievementCount}} new achievements for {{gameTitle}}" + "achievements_unlocked_for_game": "Unlocked {{achievementCount}} new achievements for {{gameTitle}}", + "hidden_achievement_tooltip": "This is a hidden achievement" }, "tour": { "subscription_tour_title": "Hydra Cloud Subscription", diff --git a/src/locales/es/translation.json b/src/locales/es/translation.json index a766be1c..2431c46b 100644 --- a/src/locales/es/translation.json +++ b/src/locales/es/translation.json @@ -364,7 +364,7 @@ "achievement_unlocked": "Logro desbloqueado", "user_achievements": "Logros de {{displayName}}", "your_achievements": "Tus Logros", - "unlocked_at": "Desbloqueado el:", + "unlocked_at": "Desbloqueado el: {{date}}", "subscription_needed": "Se necesita una suscripción a Hydra Cloud necesita para ver este contenido", "new_achievements_unlocked": "Desbloqueados {{achievementCount}} nuevos logros de {{gameCount}} juegos", "achievement_progress": "{{unlockedCount}}/{{totalCount}} logros", diff --git a/src/locales/et/translation.json b/src/locales/et/translation.json index 9a01fd50..5d059a04 100644 --- a/src/locales/et/translation.json +++ b/src/locales/et/translation.json @@ -359,7 +359,7 @@ "achievement_unlocked": "Saavutus avatud", "user_achievements": "{{displayName}} saavutused", "your_achievements": "Sinu saavutused", - "unlocked_at": "Avatud:", + "unlocked_at": "Avatud: {{date}}", "subscription_needed": "Selle sisu nägemiseks on vaja Hydra Cloud tellimust", "new_achievements_unlocked": "Avatud {{achievementCount}} uut saavutust {{gameCount}} mängust" }, diff --git a/src/locales/pt-BR/translation.json b/src/locales/pt-BR/translation.json index 1bf4d27e..07915151 100644 --- a/src/locales/pt-BR/translation.json +++ b/src/locales/pt-BR/translation.json @@ -366,11 +366,12 @@ "achievement_unlocked": "Conquista desbloqueada", "your_achievements": "Suas Conquistas", "user_achievements": "Conquistas de {{displayName}}", - "unlocked_at": "Desbloqueado em:", + "unlocked_at": "Desbloqueada em: {{date}}", "subscription_needed": "Você precisa de uma assinatura Hydra Cloud para visualizar este conteúdo", "new_achievements_unlocked": "{{achievementCount}} novas conquistas de {{gameCount}} jogos", "achievement_progress": "{{unlockedCount}}/{{totalCount}} conquistas", - "achievements_unlocked_for_game": "Desbloqueadas {{achievementCount}} novas conquistas em {{gameTitle}}" + "achievements_unlocked_for_game": "Desbloqueadas {{achievementCount}} novas conquistas em {{gameTitle}}", + "hidden_achievement_tooltip": "Está é uma conquista oculta" }, "tour": { "subscription_tour_title": "Assinatura Hydra Cloud", diff --git a/src/locales/pt-PT/translation.json b/src/locales/pt-PT/translation.json index 36320dc8..a847ad70 100644 --- a/src/locales/pt-PT/translation.json +++ b/src/locales/pt-PT/translation.json @@ -356,7 +356,7 @@ "achievement_unlocked": "Conquista desbloqueada", "your_achievements": "As tuas Conquistas", "user_achievements": "Conquistas de {{displayName}}", - "unlocked_at": "Desbloqueada em:", + "unlocked_at": "Desbloqueada em: {{date}}", "subscription_needed": "Precisas de uma subscrição Hydra Cloud para visualizar este conteúdo", "new_achievements_unlocked": "{{achievementCount}} novas conquistas de {{gameCount}} jogos" }, diff --git a/src/locales/ru/translation.json b/src/locales/ru/translation.json index ddeace23..afc2b790 100644 --- a/src/locales/ru/translation.json +++ b/src/locales/ru/translation.json @@ -358,7 +358,7 @@ "achievement_unlocked": "Достижение разблокировано", "user_achievements": "Достижения {{displayName}}", "your_achievements": "Ваши достижения", - "unlocked_at": "Разблокировано:", + "unlocked_at": "Разблокировано: {{date}}", "subscription_needed": "Для просмотра этого содержимого необходима подписка на Hydra Cloud", "new_achievements_unlocked": "Разблокировано {{achievementCount}} новых достижений из {{gameCount}} игр", "achievement_progress": "{{unlockedCount}}/{{totalCount}} достижений", diff --git a/src/locales/zh/translation.json b/src/locales/zh/translation.json index 9bab7516..b44f37a9 100644 --- a/src/locales/zh/translation.json +++ b/src/locales/zh/translation.json @@ -359,7 +359,7 @@ "achievement_unlocked": "成就已解锁", "user_achievements": "{{displayName}}的成就", "your_achievements": "你的成就", - "unlocked_at": "解锁于:", + "unlocked_at": "解锁于: {{date}}", "subscription_needed": "需要订阅 Hydra Cloud 才能看到此内容", "new_achievements_unlocked": "从 {{gameCount}} 游戏中解锁 {{achievementCount}} 新成就" }, diff --git a/src/renderer/src/assets/icons/hydra.svg b/src/renderer/src/assets/icons/hydra.svg new file mode 100644 index 00000000..ce1e5cf0 --- /dev/null +++ b/src/renderer/src/assets/icons/hydra.svg @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/renderer/src/pages/achievements/achievement-list.tsx b/src/renderer/src/pages/achievements/achievement-list.tsx index e6c6166e..353cd877 100644 --- a/src/renderer/src/pages/achievements/achievement-list.tsx +++ b/src/renderer/src/pages/achievements/achievement-list.tsx @@ -2,6 +2,8 @@ import { useDate } from "@renderer/hooks"; import type { UserAchievement } from "@types"; import { useTranslation } from "react-i18next"; import * as styles from "./achievements.css"; +import { CalendarIcon, EyeClosedIcon } from "@primer/octicons-react"; +import HydraIcon from "@renderer/assets/icons/hydra.svg?react"; interface AchievementListProps { achievements: UserAchievement[]; @@ -23,16 +25,42 @@ export function AchievementList({ achievements }: AchievementListProps) { alt={achievement.displayName} loading="lazy" /> +
-

{achievement.displayName}

+

+ {achievement.hidden && ( + + + + )} + {achievement.displayName} +

{achievement.description}

- {achievement.unlockTime && ( -
- {t("unlocked_at")} -

{formatDateTime(achievement.unlockTime)}

-
- )} +
+ {achievement.points && ( +
+ +

{achievement.points}

+
+ )} + {achievement.unlockTime && ( +
+ {formatDateTime(achievement.unlockTime)} +
+ )} +
))} diff --git a/src/types/index.ts b/src/types/index.ts index 4a6575c1..c6d16987 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -362,12 +362,14 @@ export interface ComparedAchievements { owner: { totalAchievementCount: number; unlockedAchievementCount: number; + achievementsPointsEarnedSum?: number; }; target: { displayName: string; profileImageUrl: string; totalAchievementCount: number; unlockedAchievementCount: number; + achievementsPointsEarnedSum: number; }; achievements: { hidden: boolean;