diff --git a/options/locale/locale_ar.ini b/options/locale/locale_ar.ini
index 0e27147e10..586ffa8458 100644
--- a/options/locale/locale_ar.ini
+++ b/options/locale/locale_ar.ini
@@ -1535,7 +1535,7 @@ filter.container.tagged = موسوم
 [heatmap]
 less = أقل
 number_of_contributions_in_the_last_12_months = %s مساهم في آخر 12 شهر
-contributions_zero = بلا مساهمات
+no_contributions = بلا مساهمات
 more = أكثر
 
 [admin]
diff --git a/options/locale/locale_bg.ini b/options/locale/locale_bg.ini
index b6ad948b46..55c4440a4a 100644
--- a/options/locale/locale_bg.ini
+++ b/options/locale/locale_bg.ini
@@ -1357,7 +1357,7 @@ runners.description = Описание
 [heatmap]
 less = По-малко
 number_of_contributions_in_the_last_12_months = %s приноса през последните 12 месеца
-contributions_zero = Няма приноси
+no_contributions = Няма приноси
 more = Повече
 
 [git.filemode]
@@ -1382,4 +1382,4 @@ recent_commits.what = скорошни подавания
 component_loading = Зареждане на %s...
 
 [projects]
-type-1.display_name = Индивидуален проект
+type-1.display_name = Индивидуален проект
\ No newline at end of file
diff --git a/options/locale/locale_cs-CZ.ini b/options/locale/locale_cs-CZ.ini
index d1ea428e72..3c09033f71 100644
--- a/options/locale/locale_cs-CZ.ini
+++ b/options/locale/locale_cs-CZ.ini
@@ -166,7 +166,7 @@ footer.links=Odkazy
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=%s příspěvků za posledních 12 měsíců
-contributions_zero=Žádné příspěvky
+no_contributions=Žádné příspěvky
 less=Méně
 more=Více
 
diff --git a/options/locale/locale_de-DE.ini b/options/locale/locale_de-DE.ini
index a8967a3855..1d1f336ef4 100644
--- a/options/locale/locale_de-DE.ini
+++ b/options/locale/locale_de-DE.ini
@@ -164,7 +164,7 @@ footer.links=Links
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=%s Beiträge in den letzten 12 Monaten
-contributions_zero=Keine Beiträge
+no_contributions=Keine Beiträge
 less=Weniger
 more=Mehr
 
diff --git a/options/locale/locale_el-GR.ini b/options/locale/locale_el-GR.ini
index 043fbae695..9f26f813cd 100644
--- a/options/locale/locale_el-GR.ini
+++ b/options/locale/locale_el-GR.ini
@@ -159,7 +159,7 @@ footer.links=Συνδέσεις
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=%s συνεισφορές τους τελευταίους 12 μήνες
-contributions_zero=Χωρίς συνεισφορές
+no_contributions=Χωρίς συνεισφορές
 less=Λιγότερα
 more=Περισσότερα
 
diff --git a/options/locale/locale_en-US.ini b/options/locale/locale_en-US.ini
index b6279d092e..e8b9f95208 100644
--- a/options/locale/locale_en-US.ini
+++ b/options/locale/locale_en-US.ini
@@ -164,10 +164,7 @@ footer.links = Links
 
 [heatmap]
 number_of_contributions_in_the_last_12_months = %s contributions in the last 12 months
-contributions_zero = No contributions
-contributions_format = {contributions} on {month} {day}, {year}
-contributions_one = contribution
-contributions_few = contributions
+no_contributions = No contributions
 less = Less
 more = More
 
diff --git a/options/locale/locale_eo.ini b/options/locale/locale_eo.ini
index 0f03a1b9ba..5f1764168d 100644
--- a/options/locale/locale_eo.ini
+++ b/options/locale/locale_eo.ini
@@ -174,7 +174,7 @@ server_internal = Eraris interno de servilo
 [heatmap]
 less = Malpli
 number_of_contributions_in_the_last_12_months = %s kontribuoj dum la pasintaj 12 monatoj
-contributions_zero = Neniu kontribuo
+no_contributions = Neniu kontribuo
 more = Pli
 
 [startpage]
diff --git a/options/locale/locale_es-ES.ini b/options/locale/locale_es-ES.ini
index e366dc9773..2d26fb536c 100644
--- a/options/locale/locale_es-ES.ini
+++ b/options/locale/locale_es-ES.ini
@@ -150,7 +150,7 @@ footer.links=Enlaces
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=%s contribuciones en los últimos 12 meses
-contributions_zero=No hay contribuciones
+no_contributions=No hay contribuciones
 less=Menos
 more=Más
 
diff --git a/options/locale/locale_fr-FR.ini b/options/locale/locale_fr-FR.ini
index 5620b0ca49..e2779b4467 100644
--- a/options/locale/locale_fr-FR.ini
+++ b/options/locale/locale_fr-FR.ini
@@ -165,7 +165,7 @@ footer.links=Liens
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=%s contributions au cours des 12 derniers mois
-contributions_zero=Aucune contribution
+no_contributions=Aucune contribution
 less=Moins
 more=Plus
 
@@ -3733,4 +3733,4 @@ component_loading_info = Cela peut prendre du temps…
 component_failed_to_load = Une erreur inattendue s'est produite.
 contributors.what = contributions
 component_loading = Chargement %s...
-component_loading_failed = Échec de chargement de %s
+component_loading_failed = Échec de chargement de %s
\ No newline at end of file
diff --git a/options/locale/locale_gl.ini b/options/locale/locale_gl.ini
index 7c77357e3b..3ccdfc2bbc 100644
--- a/options/locale/locale_gl.ini
+++ b/options/locale/locale_gl.ini
@@ -131,7 +131,7 @@ footer.software = Sobre o Software
 footer.links = Ligazóns
 
 [heatmap]
-contributions_zero = Sen Achegas
+no_contributions = Sen Achegas
 less = Menos
 more = Máis
 number_of_contributions_in_the_last_12_months = %s de contribucións nos últimos 12 meses
@@ -140,4 +140,4 @@ number_of_contributions_in_the_last_12_months = %s de contribucións nos último
 buttons.heading.tooltip = Engadir Título
 buttons.italic.tooltip = Engade texto en cursiva
 buttons.quote.tooltip = Texto de cita
-buttons.bold.tooltip = Engadir texto en negriña
+buttons.bold.tooltip = Engadir texto en negriña
\ No newline at end of file
diff --git a/options/locale/locale_it-IT.ini b/options/locale/locale_it-IT.ini
index dcb8448bb4..c509654347 100644
--- a/options/locale/locale_it-IT.ini
+++ b/options/locale/locale_it-IT.ini
@@ -152,7 +152,7 @@ footer.software = A proposito del Software
 
 [heatmap]
 more = Più
-contributions_zero = Nessun contributo
+no_contributions = Nessun contributo
 less = Meno
 number_of_contributions_in_the_last_12_months = %s contributi negli ultimi 12 mesi
 
diff --git a/options/locale/locale_ja-JP.ini b/options/locale/locale_ja-JP.ini
index c9b7d16ea8..cd0ee0487a 100644
--- a/options/locale/locale_ja-JP.ini
+++ b/options/locale/locale_ja-JP.ini
@@ -163,7 +163,7 @@ footer.links=リンク
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=過去 12 か月間で %s 件の実績
-contributions_zero=実績なし
+no_contributions=実績なし
 less=少
 more=多
 
diff --git a/options/locale/locale_lv-LV.ini b/options/locale/locale_lv-LV.ini
index 7fa8c21c25..31a7388647 100644
--- a/options/locale/locale_lv-LV.ini
+++ b/options/locale/locale_lv-LV.ini
@@ -150,7 +150,7 @@ footer.links=Saites
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=%s darbības pēdējo 12 mēnešu laikā
-contributions_zero=Nav aktivitātes
+no_contributions=Nav aktivitātes
 less=Mazāk
 more=Vairāk
 
diff --git a/options/locale/locale_nl-NL.ini b/options/locale/locale_nl-NL.ini
index 38e6f63307..de4d6da63a 100644
--- a/options/locale/locale_nl-NL.ini
+++ b/options/locale/locale_nl-NL.ini
@@ -164,7 +164,7 @@ footer.links = Verwijzingen
 
 [heatmap]
 number_of_contributions_in_the_last_12_months = %s contributies in de laatste 12 maanden
-contributions_zero = Geen contributies
+no_contributions = Geen contributies
 less = Minder
 more = Meer
 
diff --git a/options/locale/locale_pt-BR.ini b/options/locale/locale_pt-BR.ini
index ff7541de78..146b3dd593 100644
--- a/options/locale/locale_pt-BR.ini
+++ b/options/locale/locale_pt-BR.ini
@@ -151,7 +151,7 @@ footer.links=Links
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=%s contribuições nos últimos 12 meses
-contributions_zero=Sem contribuições
+no_contributions=Sem contribuições
 less=Menos
 more=Mais
 
@@ -3579,4 +3579,4 @@ executable_file = Arquivo executável
 component_loading = Carregando %s...
 component_loading_failed = Não foi possível carregar o(a) %s
 component_loading_info = Pode demorar um pouco…
-contributors.what = contribuições
+contributors.what = contribuições
\ No newline at end of file
diff --git a/options/locale/locale_pt-PT.ini b/options/locale/locale_pt-PT.ini
index 2024046634..3a5bce2aee 100644
--- a/options/locale/locale_pt-PT.ini
+++ b/options/locale/locale_pt-PT.ini
@@ -151,7 +151,7 @@ footer.links=Ligações
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=%s contribuições nos últimos 12 meses
-contributions_zero=Nenhuma contribuição
+no_contributions=Nenhuma contribuição
 less=Menos
 more=Mais
 
diff --git a/options/locale/locale_ru-RU.ini b/options/locale/locale_ru-RU.ini
index c79097d90d..672d671754 100644
--- a/options/locale/locale_ru-RU.ini
+++ b/options/locale/locale_ru-RU.ini
@@ -164,10 +164,7 @@ footer.links=Ссылки
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=Принимал(а) участие %s раз за последние 12 месяцев
-contributions_zero=Действий не было
-contributions_format = {contributions} {day} {month} {year}
-contributions_one=действие
-contributions_few=действий
+no_contributions=Не принимал(а) участия
 less=Меньше
 more=Больше
 
diff --git a/options/locale/locale_sk-SK.ini b/options/locale/locale_sk-SK.ini
index 549e3a7a1f..f088cc6ac4 100644
--- a/options/locale/locale_sk-SK.ini
+++ b/options/locale/locale_sk-SK.ini
@@ -149,7 +149,7 @@ footer.links=Odkazy
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=%s príspevkov za posledných 12 mesiacov
-contributions_zero=Žiadne príspevky
+no_contributions=Žiadne príspevky
 less=Menej
 more=Viac
 
diff --git a/options/locale/locale_sl.ini b/options/locale/locale_sl.ini
index ac4f3b8313..eca89e0498 100644
--- a/options/locale/locale_sl.ini
+++ b/options/locale/locale_sl.ini
@@ -377,7 +377,7 @@ gpg_key_verified_long = Ključ je bil preverjen z žetonom in ga je mogoče upor
 [heatmap]
 less = Manj
 number_of_contributions_in_the_last_12_months = %s prispevkov v zadnjih 12 mesecih
-contributions_zero = Ni prispevkov
+no_contributions = Ni prispevkov
 more = Več
 
 [filter]
@@ -691,4 +691,4 @@ code = Koda
 owner.settings.chef.keypair.description = Za preverjanje pristnosti v registru Chef je potreben par ključev. Če ste par ključev ustvarili že prej, se pri ustvarjanju novega para ključev stari par ključev zavrže.
 
 [actions]
-runners.runner_manage_panel = Upravljanje tekačev
+runners.runner_manage_panel = Upravljanje tekačev
\ No newline at end of file
diff --git a/options/locale/locale_tr-TR.ini b/options/locale/locale_tr-TR.ini
index 9e74145620..53282219d9 100644
--- a/options/locale/locale_tr-TR.ini
+++ b/options/locale/locale_tr-TR.ini
@@ -150,7 +150,7 @@ footer.links=Bağlantılar
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=son 12 ayda %s katkı
-contributions_zero=Katkı yapılmamış
+no_contributions=Katkı yapılmamış
 less=Daha az
 more=Daha Fazla
 
diff --git a/options/locale/locale_zh-CN.ini b/options/locale/locale_zh-CN.ini
index 5a5319f4ac..b1ef5fb9b9 100644
--- a/options/locale/locale_zh-CN.ini
+++ b/options/locale/locale_zh-CN.ini
@@ -164,7 +164,7 @@ footer.links=链接
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=一年内 %s 次贡献
-contributions_zero=目前还没有贡献。
+no_contributions=目前还没有贡献。
 less=更少的
 more=更多的
 
diff --git a/options/locale/locale_zh-TW.ini b/options/locale/locale_zh-TW.ini
index 5eac33e887..1f9ae32f14 100644
--- a/options/locale/locale_zh-TW.ini
+++ b/options/locale/locale_zh-TW.ini
@@ -134,7 +134,7 @@ footer.links=連結
 
 [heatmap]
 number_of_contributions_in_the_last_12_months=過去十二個月內有 %s 個貢獻
-contributions_zero=沒有貢獻
+no_contributions=沒有貢獻
 less=少
 more=多
 
diff --git a/templates/user/heatmap.tmpl b/templates/user/heatmap.tmpl
index 05403e34e3..b604b929a3 100644
--- a/templates/user/heatmap.tmpl
+++ b/templates/user/heatmap.tmpl
@@ -2,10 +2,7 @@
 	<div id="user-heatmap" class="is-loading"
 		data-heatmap-data="{{JsonUtils.EncodeToString .HeatmapData}}"
 		data-locale-total-contributions="{{ctx.Locale.Tr "heatmap.number_of_contributions_in_the_last_12_months" (ctx.Locale.PrettyNumber .HeatmapTotalContributions)}}"
-		data-locale-contributions-zero="{{ctx.Locale.Tr "heatmap.contributions_zero"}}"
-		data-locale-contributions-format="{{ctx.Locale.Tr "heatmap.contributions_format"}}"
-		data-locale-contributions-one="{{ctx.Locale.Tr "heatmap.contributions_one"}}"
-		data-locale-contributions-few="{{ctx.Locale.Tr "heatmap.contributions_few"}}"
+		data-locale-no-contributions="{{ctx.Locale.Tr "heatmap.no_contributions"}}"
 		data-locale-more="{{ctx.Locale.Tr "heatmap.more"}}"
 		data-locale-less="{{ctx.Locale.Tr "heatmap.less"}}"
 	></div>
diff --git a/web_src/js/components/ActivityHeatmap.vue b/web_src/js/components/ActivityHeatmap.vue
index cc03f1bb2a..96a6e68012 100644
--- a/web_src/js/components/ActivityHeatmap.vue
+++ b/web_src/js/components/ActivityHeatmap.vue
@@ -59,22 +59,8 @@ export default {
   </div>
   <calendar-heatmap
     :locale="locale"
-    :no-data-text="locale.contributions_zero"
-    :tooltip-formatter="
-      (v) =>
-        locale.contributions_format
-          .replace(
-            '{contributions}',
-            `<b>${v.count} ${
-              v.count === 1
-                ? locale.contributions_one
-                : locale.contributions_few
-            }</b>`
-          )
-          .replace('{month}', locale.months[v.date.getMonth()])
-          .replace('{day}', v.date.getDate())
-          .replace('{year}', v.date.getFullYear())
-    "
+    :no-data-text="locale.no_contributions"
+    :tooltip-unit="locale.contributions"
     :end-date="endDate"
     :values="values"
     :range-color="colorRange"
diff --git a/web_src/js/features/heatmap.js b/web_src/js/features/heatmap.js
index 688f06c2b2..b6f06d0cfb 100644
--- a/web_src/js/features/heatmap.js
+++ b/web_src/js/features/heatmap.js
@@ -18,14 +18,13 @@ export function initHeatmap() {
       return {date: new Date(v), count: heatmap[v]};
     });
 
+    // last heatmap tooltip localization attempt https://github.com/go-gitea/gitea/pull/24131/commits/a83761cbbae3c2e3b4bced71e680f44432073ac8
     const locale = {
       months: new Array(12).fill().map((_, idx) => translateMonth(idx)),
       days: new Array(7).fill().map((_, idx) => translateDay(idx)),
+      contributions: 'contributions',
       contributions_in_the_last_12_months: el.getAttribute('data-locale-total-contributions'),
-      contributions_zero: el.getAttribute('data-locale-contributions-zero'),
-      contributions_format: el.getAttribute('data-locale-contributions-format'),
-      contributions_one: el.getAttribute('data-locale-contributions-one'),
-      contributions_few: el.getAttribute('data-locale-contributions-few'),
+      no_contributions: el.getAttribute('data-locale-no-contributions'),
       more: el.getAttribute('data-locale-more'),
       less: el.getAttribute('data-locale-less'),
     };