================================================================================ ETT STATS — TOOLTIP TEXT INVENTORY (ENGLISH ONLY) ================================================================================ Purpose: documentation / copy review. Not loaded by the app. Source: i18n.js `en` keys used for tooltips, plus hardcoded English strings on elements that use `data-tooltip` / `data-tooltip-html`. Generated for maintainers — logic unchanged. Legend: [i18n:key] — translation key in i18n.js (English string shown) [template] — function in i18n; parameters described [hardcoded] — string in app HTML/JS, English branch only [dynamic] — runtime-built (names/ISO codes vary) -------------------------------------------------------------------------------- 1. PROFILE HERO — stat cards (`applyStatTooltips` / profile render) -------------------------------------------------------------------------------- [i18n:tip_elo] "Current ELO rating. The value below shows the all-time peak ELO and the date it was reached." Context: Hover on the accent stat card (current ELO / peak block). [i18n:tip_rank] "Global ranking position. Only players active in the ranked system within the last 15 days are included." Context: Hover on rank stat card when player has a ranked position. [i18n:tip_rank_unranked] "This player has been inactive in the ranked system for the last 15 days." Context: Hover on rank stat card when unranked/inactive window. [i18n:tip_current_form] "A high-level indicator of the player's current form, built from recent ranked performance patterns." Context: Hover on trend / current form stat card. [i18n:tip_wins] "Total ranked wins." Context: Wins stat card. [i18n:tip_losses] "Total ranked losses." Context: Losses stat card. [i18n:tip_winrate] "Win rate calculated from ranked matches only." Context: Win rate stat card. [i18n:tip_total] "Total ranked matches. The number below includes unranked matches too." Context: Total ranked matches stat card. [i18n:tip_ranked_pct] "Percentage of ranked matches out of all matches played." Context: Ranked % stat card. -------------------------------------------------------------------------------- 2. PROFILE — share / copy link -------------------------------------------------------------------------------- [i18n:tip_share] "Copy profile link" Context: Share button on hero (default state). [i18n:tip_share_copied] "Link copied!" Context: Share button after successful copy (main index profile). [dynamic / app.js] "Profile link copied!" Context: After copy on combined profile page (`multiple.html` flow); not from i18n. -------------------------------------------------------------------------------- 3. SEARCH — Deep Search button (desktop only) -------------------------------------------------------------------------------- [hardcoded / app.js `getDeepSearchTooltipText()` English branch] "If the player you are looking for is not in the list, press Deep Search." Context: Magnifying-glass / Deep Search control (`data-tooltip`), removed on narrow viewports. -------------------------------------------------------------------------------- 4. NAVIGATION -------------------------------------------------------------------------------- [hardcoded / index.html + app.js `updateProfileBackButton`] "Back to previous profile" Context: Profile back button when stack/external back exists; tooltip stripped on mobile. -------------------------------------------------------------------------------- 5. RECENT MATCHES TABLE — cells & controls -------------------------------------------------------------------------------- [i18n:tip_opp_elo] [template] `${opp}'s ELO rating at the time of the match.` Parameter: opponent label/HTML (often bold name). Context: Opponent ELO column (`data-tooltip-html`). [i18n:tip_score] "Sets score. Format: overall result (score per set)." Context: Part of score tooltip; often prefixed by " vs " lines. [i18n:tip_match_time] "Match start time and duration." Context: Date/time column in match rows. [i18n:tip_matchup_history] "Show head-to-head history with this opponent." Context: Clickable opponent row (name area) opening H2H modal. [i18n:tooltip_elodiff] "ELO difference between the player and the opponent at match time. Green = win vs higher-rated opponent · Red = loss vs lower-rated opponent" Context: Legacy/general explanation for ELO-diff styling (see also dynamic tips below). [i18n:tip_elodiff_equal] "At match time, both players had equal ELO." Context: ELO diff pill when difference is 0. [i18n:tip_elodiff_ahead] [template] `At match time, ${ahead} had ${pts} more ELO points than ${behind}.` Parameters: HTML names for “ahead” player, “behind” player, integer pts. Context: ELO diff column when non-zero. [dynamic] Opponent country name via `countryName(oppCountry)` on flag span (`data-tooltip`, small size). Context: Flag next to opponent name. [hardcoded] "Copy match ID" Context: Match ID tag button before copy. [hardcoded template / app.js] `Ranked match voided — ${name} left before start. No rating penalty.` Context: WAIVED badge on waived ranked matches (`data-tooltip-html`). -------------------------------------------------------------------------------- 6. MATCH OUTCOMES — unranked / forfeit / abandon (table & row builders) -------------------------------------------------------------------------------- [i18n:tip_unranked] "Unranked match — no ELO change." [i18n:tip_not_ranked] "No ELO change recorded for this match." [i18n:tip_forfeited] "Ranked match forfeited at 0-0." [i18n:tip_forfeited_me] [template] `${name} left the game at 0-0.` [i18n:tip_forfeited_opp] [template] `${opp} left the game at 0-0.` [i18n:tip_aborted_mid_me] [template] `${name} left the game after points were played.` [i18n:tip_aborted_mid_opp] [template] `${opp} left the game after points were played.` -------------------------------------------------------------------------------- 7. ACTIVITY BADGES — hero & local rivals -------------------------------------------------------------------------------- [i18n:activity_tip_active] [template] `Active in the last ${d} days.` Parameter: threshold days (from CFG). [i18n:activity_tip_inactive_lately] [template] `${a}-${b} days without activity.` [i18n:activity_tip_inactive] [template] `${a}-${b} days without activity.` [i18n:activity_tip_dormant] [template] `${d}+ days without activity.` [i18n:activity_tip_unknown] "Activity status unavailable." Context: Fallback class / unknown activity meta. -------------------------------------------------------------------------------- 8. HALL OF FAME — card surface (`data-tooltip` on whole card) -------------------------------------------------------------------------------- [i18n:tip_upset_win] "Biggest win against a higher-rated opponent." [i18n:tip_upset_loss] "Biggest loss against a lower-rated opponent." [i18n:tip_top_opp] "The opponent this player has faced the most (ranked + unranked)." [i18n:tip_win_streak] "Longest consecutive winning streak (ranked matches only)." [i18n:tip_loss_streak] "Longest consecutive losing streak (ranked matches only)." [i18n:tip_comeback] "Match where the first set was lost but the match was won (ranked only)." [i18n:tip_longest] "Longest match by total duration." [i18n:tip_fast_furious] "Shortest won match by total points played." [i18n:tip_prime_time] "Typical active time window." [i18n:tip_rivalry] "Most balanced rivalry — most matches, closest win/loss ratio (ranked only, min. 5 ranked matches)." [i18n:tip_best_day] "Day with the highest net ELO gain." [i18n:tip_active_day] "Day with the longest total play time (0-0 matches excluded)." [i18n:tip_nemesis] "Opponent with the highest win rate against this player (min. 5 ranked matches)." [i18n:tip_victim] "Opponent this player beats most consistently (min. 5 ranked matches)." [i18n:tip_abandon_me] "Ranked matches abandoned by this player after at least one point was played." [i18n:tip_abandon_me_zero] "Ranked matches abandoned by this player before any point was played (0-0)." [i18n:tip_abandon_opp] "Ranked matches abandoned by the opponent after at least one point was played." -------------------------------------------------------------------------------- 9. HOF — “more...” buttons (`hofMoreTooltip` → `tip_more_*`) -------------------------------------------------------------------------------- [i18n:tip_more_upset_win] "Show top signature victories." [i18n:tip_more_upset_loss] "Show top underdog stings." [i18n:tip_more_comeback] "Show top biggest comebacks." [i18n:tip_more_top_opp] "Show top most played opponents." [i18n:tip_more_longest_match] "Show top longest matches." [i18n:tip_more_fast_furious] "Show top fast & furious matches." [i18n:tip_more_most_active_day] "Show top most active days." [i18n:tip_more_best_day] "Show top best days." [i18n:tip_more_nemesis] "Show top die hard opponents." [i18n:tip_more_fav_victim] "Show top favorite victims." [i18n:tip_more_rivalry] "Show top longest rivalries." [i18n:tip_more_default] "More details coming soon." Context: Fallback when no specific `tip_more_*` mapping. -------------------------------------------------------------------------------- 10. HOF — per-card actions (hardcoded English on buttons) -------------------------------------------------------------------------------- [hardcoded / buildHofCard template] "Share this card" Context: `data-tooltip-html` on HOF share icon button (HTML tooltip). [hardcoded / buildHofCard template] aria-label "Share this card" (same control). [hardcoded / buildHofCard template] aria-label "More details" on “more...” corner button. -------------------------------------------------------------------------------- 11. HEAD-TO-HEAD MODAL — rows & player links -------------------------------------------------------------------------------- [hardcoded template] `${name} has left the game.` Context: ABND event badge in matchup list (`data-tooltip-html`). [hardcoded] "Show this player's profile" Context: Wrapper around opponent name link in H2H modal. -------------------------------------------------------------------------------- 12. MULTIPLE ACCOUNTS PAGE — combined hero -------------------------------------------------------------------------------- [dynamic / multiple.js] Tooltip on `#heroName`: `"Name1 (id1) + Name2 (id2) + ..."` Built from selected account bundles. Context: Explains which real accounts feed the synthetic combined name. -------------------------------------------------------------------------------- 13. SHARE CARD MODAL — labels often paired with buttons (not all are hover tooltips) -------------------------------------------------------------------------------- These are `data-i18n` modal strings in English; included because they sit next to the same flows as share/HOF tooltips. [i18n:share_card_title] "SHARE CARD" [i18n:share_card_download] "Download image" [i18n:share_card_copy_link] "Copy image link" [i18n:share_card_copy_profile] "Copy profile link" [i18n:share_card_status_uploaded] "Image created successfully!" [i18n:share_card_status_local_only] "Upload failed. You can still download the image and share it manually." [i18n:share_card_err_rate] "Too many share requests. Please try again in a few minutes." [i18n:share_card_err_size] "Image is too large for upload. Please try again." [i18n:share_card_err_dimensions] "Image dimensions are too large for upload." [i18n:share_card_err_upload] "Server could not save the image right now. Please try again later." [i18n:share_card_err_generic] "Could not upload the image. You can still download and share it manually." -------------------------------------------------------------------------------- 14. COPY FEEDBACK TOASTS (small transient messages — not hover tooltips) -------------------------------------------------------------------------------- Included for copy-review completeness (same wording ecosystem). [hardcoded / app.js `copyMatchId` success] `Match ID copied: #${id}` [hardcoded / app.js] "Copy failed. Please try again." -------------------------------------------------------------------------------- NOTES FOR OPTIMIZATION / CONSISTENCY REVIEW -------------------------------------------------------------------------------- • Several strings are sentence-style; others are fragments (“Show top …”). • “Die hard”, “Fast & furious”, “Signature victory” mix branding with plain English. • `tip_more_*` vs card titles (`hof_*`) sometimes use different naming (e.g. nemesis vs die hard). • Hardcoded English (`Share this card`, `Back to previous profile`, `Copy match ID`, ABND, WAIVED template, Deep Search) bypass i18n — candidates if you add more languages later. • Combined profile: “Profile link copied!” duplicates `tip_share_copied` with different text. ================================================================================ END ================================================================================