Merge branch 'main' into dev

This commit is contained in:
TrèsAbhi committed 2025-09-29 13:39:13 -05:00
commit b8c8528e1c
11 files changed
+161 -100

No files matched your search

+5
View File
@@ -0,0 +1,5 @@
# BlitzKit 1.28.2
## Fixes
- BlitzKit no longer tries to redirect translated pages to the same page, over and over again
+1 -1
View File
@@ -1,7 +1,7 @@
{ {
"name": "blitzkit", "name": "blitzkit",
"private": true, "private": true,
"version": "1.28.1", "version": "1.28.2",
"description": "🎉 Tools for everything World of Tanks Blitz", "description": "🎉 Tools for everything World of Tanks Blitz",
"type": "module", "type": "module",
"types": "./types.d.ts", "types": "./types.d.ts",
+19 -12
View File
@@ -5,6 +5,7 @@
"fox": "El rápido zorro marrón salta sobre el perro perezoso." "fox": "El rápido zorro marrón salta sobre el perro perezoso."
}, },
"common": { "common": {
"name": "BlitzKit",
"units": { "units": {
"m": "%s1m", "m": "%s1m",
"mm": "%s1mm", "mm": "%s1mm",
@@ -671,6 +672,8 @@
"copied": "Copiado!" "copied": "Copiado!"
}, },
"tank_search": { "tank_search": {
"select_dialog_title": "Search for tanks",
"swap_dialog_title": "Swap tank",
"clear_filters": "Clear filters", "clear_filters": "Clear filters",
"search_bar_hint": "Buscar tanques...", "search_bar_hint": "Buscar tanques...",
"recent": "Visto recientemente", "recent": "Visto recientemente",
@@ -739,6 +742,14 @@
} }
}, },
"home": { "home": {
"pwa": {
"title": "Install the BlitzKit App",
"new": "NEW",
"checking": "Checking compatibility...",
"instructions": "Instructions for Apple devices.",
"install": "Install",
"dismiss": "Dismiss"
},
"discord": { "discord": {
"join_short": "Join cool people!", "join_short": "Join cool people!",
"join_long": "Join super duper cool people!", "join_long": "Join super duper cool people!",
@@ -768,7 +779,9 @@
"name": "Mixer", "name": "Mixer",
"button": "Mix and match", "button": "Mix and match",
"description": "Mix tank modules", "description": "Mix tank modules",
"seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz" "seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz",
"screenshot": "Screenshot",
"randomize": "Randomize"
}, },
"guess": { "guess": {
"name": "Guess the tank", "name": "Guess the tank",
@@ -1314,17 +1327,11 @@
"description": "Get started with BlitzKit", "description": "Get started with BlitzKit",
"seo_description": "Get started with BlitzKit" "seo_description": "Get started with BlitzKit"
}, },
"blitz_analysis": { "api": {
"name": "BlitzAnalysis[]", "name": "API",
"button": "Analizar ahora", "button": "To the docs",
"description": "Rich historic average stats", "description": "BlitzKit hosted API",
"seo_description": "Rich historic average stats in World of Tanks Blitz" "seo_description": "BlitzKit hosted static API for World of Tanks Blitz"
},
"blitz_insider": {
"name": "Blitz Insider",
"button": "Discover today",
"description": "In-game session stats",
"seo_description": "In-game session stats in World of Tanks Blitz"
} }
}, },
"footer": { "footer": {
+19 -12
View File
@@ -5,6 +5,7 @@
"fox": "Le renard brun et rapide saute par-dessus le chien paresseux." "fox": "Le renard brun et rapide saute par-dessus le chien paresseux."
}, },
"common": { "common": {
"name": "BlitzKit",
"units": { "units": {
"m": "%s1m", "m": "%s1m",
"mm": "%s1mm", "mm": "%s1mm",
@@ -671,6 +672,8 @@
"copied": "Copied!" "copied": "Copied!"
}, },
"tank_search": { "tank_search": {
"select_dialog_title": "Search for tanks",
"swap_dialog_title": "Swap tank",
"clear_filters": "Clear filters", "clear_filters": "Clear filters",
"search_bar_hint": "Search tanks...", "search_bar_hint": "Search tanks...",
"recent": "Recently viewed", "recent": "Recently viewed",
@@ -739,6 +742,14 @@
} }
}, },
"home": { "home": {
"pwa": {
"title": "Install the BlitzKit App",
"new": "NEW",
"checking": "Checking compatibility...",
"instructions": "Instructions for Apple devices.",
"install": "Install",
"dismiss": "Dismiss"
},
"discord": { "discord": {
"join_short": "Join cool people!", "join_short": "Join cool people!",
"join_long": "Join super duper cool people!", "join_long": "Join super duper cool people!",
@@ -768,7 +779,9 @@
"name": "Mixer", "name": "Mixer",
"button": "Mix and match", "button": "Mix and match",
"description": "Mix tank modules", "description": "Mix tank modules",
"seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz" "seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz",
"screenshot": "Screenshot",
"randomize": "Randomize"
}, },
"guess": { "guess": {
"name": "Guess the tank", "name": "Guess the tank",
@@ -1314,17 +1327,11 @@
"description": "Get started with BlitzKit", "description": "Get started with BlitzKit",
"seo_description": "Get started with BlitzKit" "seo_description": "Get started with BlitzKit"
}, },
"blitz_analysis": { "api": {
"name": "BlitzAnalysis[]", "name": "API",
"button": "Analyze now", "button": "To the docs",
"description": "Rich historic average stats", "description": "BlitzKit hosted API",
"seo_description": "Rich historic average stats in World of Tanks Blitz" "seo_description": "BlitzKit hosted static API for World of Tanks Blitz"
},
"blitz_insider": {
"name": "Blitz Insider",
"button": "Discover today",
"description": "In-game session stats",
"seo_description": "In-game session stats in World of Tanks Blitz"
} }
}, },
"footer": { "footer": {
+19 -12
View File
@@ -5,6 +5,7 @@
"fox": "すばしっこい茶色のキツネが怠け者の犬を飛び越した。" "fox": "すばしっこい茶色のキツネが怠け者の犬を飛び越した。"
}, },
"common": { "common": {
"name": "BlitzKit",
"units": { "units": {
"m": "%s1m", "m": "%s1m",
"mm": "%s1mm", "mm": "%s1mm",
@@ -671,6 +672,8 @@
"copied": "コピーしました!" "copied": "コピーしました!"
}, },
"tank_search": { "tank_search": {
"select_dialog_title": "Search for tanks",
"swap_dialog_title": "Swap tank",
"clear_filters": "Clear filters", "clear_filters": "Clear filters",
"search_bar_hint": "車輌名を入力…", "search_bar_hint": "車輌名を入力…",
"recent": "最近の閲覧", "recent": "最近の閲覧",
@@ -739,6 +742,14 @@
} }
}, },
"home": { "home": {
"pwa": {
"title": "Install the BlitzKit App",
"new": "NEW",
"checking": "Checking compatibility...",
"instructions": "Instructions for Apple devices.",
"install": "Install",
"dismiss": "Dismiss"
},
"discord": { "discord": {
"join_short": "Join cool people!", "join_short": "Join cool people!",
"join_long": "Join super duper cool people!", "join_long": "Join super duper cool people!",
@@ -768,7 +779,9 @@
"name": "Mixer", "name": "Mixer",
"button": "Mix and match", "button": "Mix and match",
"description": "Mix tank modules", "description": "Mix tank modules",
"seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz" "seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz",
"screenshot": "Screenshot",
"randomize": "Randomize"
}, },
"guess": { "guess": {
"name": "Guess the tank", "name": "Guess the tank",
@@ -1314,17 +1327,11 @@
"description": "さあ、BlitzKit を始めよう!", "description": "さあ、BlitzKit を始めよう!",
"seo_description": "さあ、BlitzKit を始めよう!" "seo_description": "さあ、BlitzKit を始めよう!"
}, },
"blitz_analysis": { "api": {
"name": "BlitzAnalysis[]", "name": "API",
"button": "Analyze now", "button": "To the docs",
"description": "Rich historic average stats", "description": "BlitzKit hosted API",
"seo_description": "Rich historic average stats in World of Tanks Blitz" "seo_description": "BlitzKit hosted static API for World of Tanks Blitz"
},
"blitz_insider": {
"name": "Blitz Insider",
"button": "Discover today",
"description": "ゲーム内のセッション統計",
"seo_description": "In-game session stats in World of Tanks Blitz"
} }
}, },
"footer": { "footer": {
+19 -12
View File
@@ -5,6 +5,7 @@
"fox": "Szybki brązowy lis przeskoczył nad leniwym psem." "fox": "Szybki brązowy lis przeskoczył nad leniwym psem."
}, },
"common": { "common": {
"name": "BlitzKit",
"units": { "units": {
"m": "%s1m", "m": "%s1m",
"mm": "%s1mm", "mm": "%s1mm",
@@ -671,6 +672,8 @@
"copied": "Copied!" "copied": "Copied!"
}, },
"tank_search": { "tank_search": {
"select_dialog_title": "Search for tanks",
"swap_dialog_title": "Swap tank",
"clear_filters": "Clear filters", "clear_filters": "Clear filters",
"search_bar_hint": "Search tanks...", "search_bar_hint": "Search tanks...",
"recent": "Recently viewed", "recent": "Recently viewed",
@@ -739,6 +742,14 @@
} }
}, },
"home": { "home": {
"pwa": {
"title": "Install the BlitzKit App",
"new": "NEW",
"checking": "Checking compatibility...",
"instructions": "Instructions for Apple devices.",
"install": "Install",
"dismiss": "Dismiss"
},
"discord": { "discord": {
"join_short": "Join cool people!", "join_short": "Join cool people!",
"join_long": "Join super duper cool people!", "join_long": "Join super duper cool people!",
@@ -768,7 +779,9 @@
"name": "Mixer", "name": "Mixer",
"button": "Mix and match", "button": "Mix and match",
"description": "Mix tank modules", "description": "Mix tank modules",
"seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz" "seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz",
"screenshot": "Screenshot",
"randomize": "Randomize"
}, },
"guess": { "guess": {
"name": "Guess the tank", "name": "Guess the tank",
@@ -1314,17 +1327,11 @@
"description": "Get started with BlitzKit", "description": "Get started with BlitzKit",
"seo_description": "Get started with BlitzKit" "seo_description": "Get started with BlitzKit"
}, },
"blitz_analysis": { "api": {
"name": "BlitzAnalysis[]", "name": "API",
"button": "Analyze now", "button": "To the docs",
"description": "Rich historic average stats", "description": "BlitzKit hosted API",
"seo_description": "Rich historic average stats in World of Tanks Blitz" "seo_description": "BlitzKit hosted static API for World of Tanks Blitz"
},
"blitz_insider": {
"name": "Blitz Insider",
"button": "Discover today",
"description": "In-game session stats",
"seo_description": "In-game session stats in World of Tanks Blitz"
} }
}, },
"footer": { "footer": {
+19 -12
View File
@@ -5,6 +5,7 @@
"fox": "A ágil raposa castanha salta por cima do cão preguiçoso." "fox": "A ágil raposa castanha salta por cima do cão preguiçoso."
}, },
"common": { "common": {
"name": "BlitzKit",
"units": { "units": {
"m": "%s1m", "m": "%s1m",
"mm": "%s1mm", "mm": "%s1mm",
@@ -671,6 +672,8 @@
"copied": "Copiado!" "copied": "Copiado!"
}, },
"tank_search": { "tank_search": {
"select_dialog_title": "Search for tanks",
"swap_dialog_title": "Swap tank",
"clear_filters": "Clear filters", "clear_filters": "Clear filters",
"search_bar_hint": "Procurar tanques...", "search_bar_hint": "Procurar tanques...",
"recent": "Visto recentemente", "recent": "Visto recentemente",
@@ -739,6 +742,14 @@
} }
}, },
"home": { "home": {
"pwa": {
"title": "Install the BlitzKit App",
"new": "NEW",
"checking": "Checking compatibility...",
"instructions": "Instructions for Apple devices.",
"install": "Install",
"dismiss": "Dismiss"
},
"discord": { "discord": {
"join_short": "Join cool people!", "join_short": "Join cool people!",
"join_long": "Join super duper cool people!", "join_long": "Join super duper cool people!",
@@ -768,7 +779,9 @@
"name": "Mixer", "name": "Mixer",
"button": "Mix and match", "button": "Mix and match",
"description": "Mix tank modules", "description": "Mix tank modules",
"seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz" "seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz",
"screenshot": "Screenshot",
"randomize": "Randomize"
}, },
"guess": { "guess": {
"name": "Guess the tank", "name": "Guess the tank",
@@ -1314,17 +1327,11 @@
"description": "Comece com BlitzKit", "description": "Comece com BlitzKit",
"seo_description": "Comece com BlitzKit" "seo_description": "Comece com BlitzKit"
}, },
"blitz_analysis": { "api": {
"name": "AnaliseBlitz[]", "name": "API",
"button": "Analise agora", "button": "To the docs",
"description": "Estatísticas médias históricas ricas", "description": "BlitzKit hosted API",
"seo_description": "Estatísticas médias históricas ricas no World of Tanks Blitz" "seo_description": "BlitzKit hosted static API for World of Tanks Blitz"
},
"blitz_insider": {
"name": "Assistente Blitz",
"button": "Descubra hoje",
"description": "Estatísticas da temporada dentro do jogo",
"seo_description": "Estatísticas da sessão no jogo World of Tanks Blitz"
} }
}, },
"footer": { "footer": {
+19 -12
View File
@@ -5,6 +5,7 @@
"fox": "Съешь же ещё этих мягких французских булок, да выпей чаю." "fox": "Съешь же ещё этих мягких французских булок, да выпей чаю."
}, },
"common": { "common": {
"name": "BlitzKit",
"units": { "units": {
"m": "%s1м", "m": "%s1м",
"mm": "%s1мм", "mm": "%s1мм",
@@ -671,6 +672,8 @@
"copied": "Скопировано!" "copied": "Скопировано!"
}, },
"tank_search": { "tank_search": {
"select_dialog_title": "Search for tanks",
"swap_dialog_title": "Swap tank",
"clear_filters": "Сбросить фильтры", "clear_filters": "Сбросить фильтры",
"search_bar_hint": "Поиск танков...", "search_bar_hint": "Поиск танков...",
"recent": "Недавние", "recent": "Недавние",
@@ -739,6 +742,14 @@
} }
}, },
"home": { "home": {
"pwa": {
"title": "Install the BlitzKit App",
"new": "NEW",
"checking": "Checking compatibility...",
"instructions": "Instructions for Apple devices.",
"install": "Install",
"dismiss": "Отклонить"
},
"discord": { "discord": {
"join_short": "Присоединяйтесь к крутым ребятам!", "join_short": "Присоединяйтесь к крутым ребятам!",
"join_long": "Присоединяйся к супер-дупер крутым ребятам!", "join_long": "Присоединяйся к супер-дупер крутым ребятам!",
@@ -768,7 +779,9 @@
"name": "Смешиватель", "name": "Смешиватель",
"button": "Смешать и собрать", "button": "Смешать и собрать",
"description": "Модули смешанного танка", "description": "Модули смешанного танка",
"seo_description": "Смешивание и сбор корпусов, башен и пушек танков из World of Tanks Blitz" "seo_description": "Смешивание и сбор корпусов, башен и пушек танков из World of Tanks Blitz",
"screenshot": "Screenshot",
"randomize": "Случайный выбор"
}, },
"guess": { "guess": {
"name": "Угадайте танк", "name": "Угадайте танк",
@@ -1314,17 +1327,11 @@
"description": "Начните с BlitzKit", "description": "Начните с BlitzKit",
"seo_description": "Начните с BlitzKit" "seo_description": "Начните с BlitzKit"
}, },
"blitz_analysis": { "api": {
"name": "BlitzAnalysis[]", "name": "API",
"button": "Анализируй", "button": "To the docs",
"description": "Богатая статистика", "description": "BlitzKit hosted API",
"seo_description": "Богатые статистика по World of Tanks Blitz" "seo_description": "BlitzKit hosted static API for World of Tanks Blitz"
},
"blitz_insider": {
"name": "Blitz Insider",
"button": "Открой для себя",
"description": "Статистика сеанса игры",
"seo_description": "Статистика сеанса игры в World of Tanks Blitz"
} }
}, },
"footer": { "footer": {
+19 -12
View File
@@ -5,6 +5,7 @@
"fox": "Швидка бура лисиця перестрибує через лінивого собаку." "fox": "Швидка бура лисиця перестрибує через лінивого собаку."
}, },
"common": { "common": {
"name": "BlitzKit",
"units": { "units": {
"m": "%s1м", "m": "%s1м",
"mm": "%s1мм", "mm": "%s1мм",
@@ -671,6 +672,8 @@
"copied": "Скопійовано!" "copied": "Скопійовано!"
}, },
"tank_search": { "tank_search": {
"select_dialog_title": "Search for tanks",
"swap_dialog_title": "Swap tank",
"clear_filters": "Clear filters", "clear_filters": "Clear filters",
"search_bar_hint": "Шукайте техніку...", "search_bar_hint": "Шукайте техніку...",
"recent": "Недавно переглянуті", "recent": "Недавно переглянуті",
@@ -739,6 +742,14 @@
} }
}, },
"home": { "home": {
"pwa": {
"title": "Install the BlitzKit App",
"new": "NEW",
"checking": "Checking compatibility...",
"instructions": "Instructions for Apple devices.",
"install": "Install",
"dismiss": "Dismiss"
},
"discord": { "discord": {
"join_short": "Join cool people!", "join_short": "Join cool people!",
"join_long": "Join super duper cool people!", "join_long": "Join super duper cool people!",
@@ -768,7 +779,9 @@
"name": "Mixer", "name": "Mixer",
"button": "Mix and match", "button": "Mix and match",
"description": "Mix tank modules", "description": "Mix tank modules",
"seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz" "seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz",
"screenshot": "Screenshot",
"randomize": "Randomize"
}, },
"guess": { "guess": {
"name": "Guess the tank", "name": "Guess the tank",
@@ -1314,17 +1327,11 @@
"description": "Get started with BlitzKit", "description": "Get started with BlitzKit",
"seo_description": "Get started with BlitzKit" "seo_description": "Get started with BlitzKit"
}, },
"blitz_analysis": { "api": {
"name": "BlitzAnalysis[]", "name": "API",
"button": "Analyze now", "button": "To the docs",
"description": "Rich historic average stats", "description": "BlitzKit hosted API",
"seo_description": "Rich historic average stats in World of Tanks Blitz" "seo_description": "BlitzKit hosted static API for World of Tanks Blitz"
},
"blitz_insider": {
"name": "Blitz Insider",
"button": "Discover today",
"description": "In-game session stats",
"seo_description": "In-game session stats in World of Tanks Blitz"
} }
}, },
"footer": { "footer": {
+19 -12
View File
@@ -5,6 +5,7 @@
"fox": "褐色的狐狸迅速地跳过那只懒狗" "fox": "褐色的狐狸迅速地跳过那只懒狗"
}, },
"common": { "common": {
"name": "BlitzKit",
"units": { "units": {
"m": "%s1公尺", "m": "%s1公尺",
"mm": "%s1毫米", "mm": "%s1毫米",
@@ -671,6 +672,8 @@
"copied": "已拷贝!" "copied": "已拷贝!"
}, },
"tank_search": { "tank_search": {
"select_dialog_title": "Search for tanks",
"swap_dialog_title": "Swap tank",
"clear_filters": "清除筛选", "clear_filters": "清除筛选",
"search_bar_hint": "搜寻战车……", "search_bar_hint": "搜寻战车……",
"recent": "最近查看的", "recent": "最近查看的",
@@ -739,6 +742,14 @@
} }
}, },
"home": { "home": {
"pwa": {
"title": "Install the BlitzKit App",
"new": "NEW",
"checking": "Checking compatibility...",
"instructions": "Instructions for Apple devices.",
"install": "Install",
"dismiss": "Dismiss"
},
"discord": { "discord": {
"join_short": "加入超級酷的人群!", "join_short": "加入超級酷的人群!",
"join_long": "加入我們的Discord社群,和超酷的人一起聊天!", "join_long": "加入我們的Discord社群,和超酷的人一起聊天!",
@@ -768,7 +779,9 @@
"name": "Mixer", "name": "Mixer",
"button": "Mix and match", "button": "Mix and match",
"description": "Mix tank modules", "description": "Mix tank modules",
"seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz" "seo_description": "Mix and match hulls, turrets, and guns of tanks in World of Tanks Blitz",
"screenshot": "Screenshot",
"randomize": "Randomize"
}, },
"guess": { "guess": {
"name": "猜坦克", "name": "猜坦克",
@@ -1314,17 +1327,11 @@
"description": "开始使用 BlitzKit", "description": "开始使用 BlitzKit",
"seo_description": "开始使用 BlitzKit" "seo_description": "开始使用 BlitzKit"
}, },
"blitz_analysis": { "api": {
"name": "闪击战分析", "name": "API",
"button": "立即分析", "button": "To the docs",
"description": "丰富的历史平均统计", "description": "BlitzKit hosted API",
"seo_description": "战车世界闪击战中丰富的历史平均统计" "seo_description": "BlitzKit hosted static API for World of Tanks Blitz"
},
"blitz_insider": {
"name": "闪击战内嵌插件",
"button": "开始探索",
"description": "游戏内场次统计",
"seo_description": "战车世界闪击战内的游戏内场次统计"
} }
}, },
"footer": { "footer": {
@@ -7,18 +7,18 @@
window.location.pathname.startsWith(`/${locale}`) window.location.pathname.startsWith(`/${locale}`)
); );
const bestLocale = getBestLocale(); const bestLocale = getBestLocale();
const currentPathLocale = locales.supported.find(({ locale }) => const currentPath = locales.supported.find(({ locale }) =>
window.location.pathname.startsWith(`/${locale}`) window.location.pathname.startsWith(`/${locale}`)
); );
if ( if (
!isAPI && // not an api, duh! !isAPI && // not an api, duh!
localStorage.getItem("preferred-locale") !== null && // no preference, so probably google's crawler localStorage.getItem("preferred-locale") !== null && // no preference, so probably google's crawler
bestLocale !== currentPathLocale // we need to redirect bestLocale !== currentPath?.locale // we need to redirect
) { ) {
window.location.pathname = isI18nPath window.location.pathname = isI18nPath
? window.location.pathname.replace( ? window.location.pathname.replace(
`/${currentPathLocale}`, `/${currentPath?.locale}`,
bestLocale === undefined ? "" : `/${bestLocale}` bestLocale === undefined ? "" : `/${bestLocale}`
) )
: `/${bestLocale}${window.location.pathname}`; : `/${bestLocale}${window.location.pathname}`;