chore: prettier (#954)

some of the latest changes haven't been quite congruent with the way prettier would like things to be. this fixes those details.

Reviewed-on: OpenWF/SpaceNinjaServer#954
This commit is contained in:
Sainan 2025-02-12 18:15:07 -08:00
parent edddc80bd8
commit 7ee8252d0e
5 changed files with 1466 additions and 1452 deletions

View File

@ -1,7 +1,7 @@
// Based on http://209.141.38.3/OpenWF/Translations/src/branch/main/update.php // Based on http://209.141.38.3/OpenWF/Translations/src/branch/main/update.php
// Converted via ChatGPT-4o // Converted via ChatGPT-4o
const fs = require('fs'); const fs = require("fs");
function extractStrings(content) { function extractStrings(content) {
const regex = /([a-zA-Z_]+): `([^`]*)`,/g; const regex = /([a-zA-Z_]+): `([^`]*)`,/g;
@ -22,7 +22,7 @@ fs.readdirSync("../static/webui/translations").forEach(file => {
const content = fs.readFileSync(`../static/webui/translations/${file}`, "utf8"); const content = fs.readFileSync(`../static/webui/translations/${file}`, "utf8");
const targetStrings = extractStrings(content); const targetStrings = extractStrings(content);
const contentLines = content.split("\n"); const contentLines = content.split("\n");
const fileHandle = fs.openSync(`../static/webui/translations/${file}`, "w"); const fileHandle = fs.openSync(`../static/webui/translations/${file}`, "w");
fs.writeSync(fileHandle, contentLines[0] + "\n"); fs.writeSync(fileHandle, contentLines[0] + "\n");
@ -31,16 +31,16 @@ fs.readdirSync("../static/webui/translations").forEach(file => {
if (Object.keys(strings).length > 0) { if (Object.keys(strings).length > 0) {
Object.entries(strings).forEach(([key, value]) => { Object.entries(strings).forEach(([key, value]) => {
if (targetStrings.hasOwnProperty(key)) { if (targetStrings.hasOwnProperty(key)) {
fs.writeSync(fileHandle, `\t${key}: \`${targetStrings[key]}\`,\n`); fs.writeSync(fileHandle, ` ${key}: \`${targetStrings[key]}\`,\n`);
} else { } else {
fs.writeSync(fileHandle, `\t${key}: \`[UNTRANSLATED] ${value}\`,\n`); fs.writeSync(fileHandle, ` ${key}: \`[UNTRANSLATED] ${value}\`,\n`);
} }
}); });
} else { } else if (line.length) {
fs.writeSync(fileHandle, line + "\n"); fs.writeSync(fileHandle, line + "\n");
} }
}); });
fs.closeSync(fileHandle); fs.closeSync(fileHandle);
} }
}); });

View File

@ -108,8 +108,10 @@ single.on("route_load", function (event) {
function loc(tag) { function loc(tag) {
return ((window.dict ?? {})[tag] ?? tag) return ((window.dict ?? {})[tag] ?? tag)
.split("|DISPLAYNAME|").join(document.querySelector(".displayname").textContent) .split("|DISPLAYNAME|")
.split("|EMAIL|").join(localStorage.getItem("email")); .join(document.querySelector(".displayname").textContent)
.split("|EMAIL|")
.join(localStorage.getItem("email"));
} }
function updateLocElements() { function updateLocElements() {
@ -129,7 +131,7 @@ function setActiveLanguage(lang) {
const webui_lang = ["en", "ru"].indexOf(lang) == -1 ? "en" : lang; const webui_lang = ["en", "ru"].indexOf(lang) == -1 ? "en" : lang;
const script = document.createElement("script"); const script = document.createElement("script");
script.src = "/translations/" + webui_lang + ".js"; script.src = "/translations/" + webui_lang + ".js";
script.onload = function() { script.onload = function () {
updateLocElements(); updateLocElements();
resolve(window.dict); resolve(window.dict);
}; };
@ -141,7 +143,8 @@ setActiveLanguage(localStorage.getItem("lang") ?? "en");
function setLanguage(lang) { function setLanguage(lang) {
setActiveLanguage(lang); setActiveLanguage(lang);
localStorage.setItem("lang", lang); localStorage.setItem("lang", lang);
if (window.authz) { // Not in prelogin state? if (window.authz) {
// Not in prelogin state?
fetchItemList(); fetchItemList();
updateInventory(); updateInventory();
} }
@ -151,7 +154,7 @@ let uniqueLevelCaps = {};
function fetchItemList() { function fetchItemList() {
window.itemListPromise = new Promise(resolve => { window.itemListPromise = new Promise(resolve => {
const req = $.get("/custom/getItemLists?lang=" + window.lang); const req = $.get("/custom/getItemLists?lang=" + window.lang);
req.done(async (data) => { req.done(async data => {
await dictPromise; await dictPromise;
window.archonCrystalUpgrades = data.archonCrystalUpgrades; window.archonCrystalUpgrades = data.archonCrystalUpgrades;
@ -173,9 +176,13 @@ function fetchItemList() {
"/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryBeam": { name: loc("code_kitgun") }, "/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryBeam": { name: loc("code_kitgun") },
"/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryShotgun": { name: loc("code_kitgun") }, "/Lotus/Weapons/SolarisUnited/Secondary/LotusModularSecondaryShotgun": { name: loc("code_kitgun") },
"/Lotus/Weapons/Ostron/Melee/LotusModularWeapon": { name: loc("code_zaw") }, "/Lotus/Weapons/Ostron/Melee/LotusModularWeapon": { name: loc("code_zaw") },
"/Lotus/Weapons/Sentients/OperatorAmplifiers/SentTrainingAmplifier/OperatorTrainingAmpWeapon": { name: loc("code_moteAmp") }, "/Lotus/Weapons/Sentients/OperatorAmplifiers/SentTrainingAmplifier/OperatorTrainingAmpWeapon": {
name: loc("code_moteAmp")
},
"/Lotus/Weapons/Sentients/OperatorAmplifiers/OperatorAmpWeapon": { name: loc("code_amp") }, "/Lotus/Weapons/Sentients/OperatorAmplifiers/OperatorAmpWeapon": { name: loc("code_amp") },
"/Lotus/Weapons/Operator/Pistols/DrifterPistol/DrifterPistolPlayerWeapon": { name: loc("code_sirocco") }, "/Lotus/Weapons/Operator/Pistols/DrifterPistol/DrifterPistolPlayerWeapon": {
name: loc("code_sirocco")
},
"/Lotus/Types/Vehicles/Hoverboard/HoverboardSuit": { name: loc("code_kdrive") }, "/Lotus/Types/Vehicles/Hoverboard/HoverboardSuit": { name: loc("code_kdrive") },
// Missing in data sources // Missing in data sources
"/Lotus/Upgrades/Mods/Fusers/LegendaryModFuser": { name: loc("code_legendaryCore") }, "/Lotus/Upgrades/Mods/Fusers/LegendaryModFuser": { name: loc("code_legendaryCore") },
@ -227,13 +234,10 @@ function updateInventory() {
window.didInitialInventoryUpdate = true; window.didInitialInventoryUpdate = true;
// Populate inventory route // Populate inventory route
[ ["RegularCredits", "PremiumCredits", "FusionPoints", "PrimeTokens"].forEach(currency => {
"RegularCredits", document.getElementById(currency + "-owned").textContent = loc("currency_owned")
"PremiumCredits", .split("|COUNT|")
"FusionPoints", .join(data[currency].toLocaleString());
"PrimeTokens"
].forEach(currency => {
document.getElementById(currency + "-owned").textContent = loc("currency_owned").split("|COUNT|").join(data[currency].toLocaleString());
}); });
[ [
@ -366,11 +370,24 @@ function updateInventory() {
const td = document.createElement("td"); const td = document.createElement("td");
td.textContent = itemMap[fingerprint.compat]?.name ?? fingerprint.compat; td.textContent = itemMap[fingerprint.compat]?.name ?? fingerprint.compat;
td.textContent += " " + RivenParser.parseRiven(rivenType, fingerprint, 1).name; td.textContent += " " + RivenParser.parseRiven(rivenType, fingerprint, 1).name;
td.innerHTML += " <span title='" + loc("code_buffsNumber") + "'>▲ " + fingerprint.buffs.length + "</span>";
td.innerHTML += td.innerHTML +=
" <span title='" + loc("code_cursesNumber") + "'>▼ " + fingerprint.curses.length + "</span>"; " <span title='" +
loc("code_buffsNumber") +
"'>▲ " +
fingerprint.buffs.length +
"</span>";
td.innerHTML += td.innerHTML +=
" <span title='" + loc("code_rerollsNumber") + "'>⟳ " + parseInt(fingerprint.rerolls) + "</span>"; " <span title='" +
loc("code_cursesNumber") +
"'>▼ " +
fingerprint.curses.length +
"</span>";
td.innerHTML +=
" <span title='" +
loc("code_rerollsNumber") +
"'>⟳ " +
parseInt(fingerprint.rerolls) +
"</span>";
tr.appendChild(td); tr.appendChild(td);
} }
{ {
@ -611,10 +628,7 @@ function addMissingEquipment(categories) {
} }
}); });
}); });
if ( if (requests.length != 0 && window.confirm(loc("code_addItemsConfirm").split("|COUNT|").join(requests.length))) {
requests.length != 0 &&
window.confirm(loc("code_addItemsConfirm").split("|COUNT|").join(requests.length))
) {
dispatchAddItemsRequestsBatch(requests); dispatchAddItemsRequestsBatch(requests);
} }
} }

View File

@ -1,120 +1,120 @@
dict = { dict = {
general_inventoryUpdateNote: `Note: Changes made here will only be applied in-game when the game syncs the inventory. Visiting the navigation should be the easiest way to trigger that.`, general_inventoryUpdateNote: `Note: Changes made here will only be applied in-game when the game syncs the inventory. Visiting the navigation should be the easiest way to trigger that.`,
general_addButton: `Add`, general_addButton: `Add`,
general_bulkActions: `Bulk Actions`, general_bulkActions: `Bulk Actions`,
code_nonValidAuthz: `Your credentials are no longer valid.`, code_nonValidAuthz: `Your credentials are no longer valid.`,
code_changeNameConfirm: `What would you like to change your account name to?`, code_changeNameConfirm: `What would you like to change your account name to?`,
code_deleteAccountConfirm: `Are you sure you want to delete your account |DISPLAYNAME| (|EMAIL|)? This action cannot be undone.`, code_deleteAccountConfirm: `Are you sure you want to delete your account |DISPLAYNAME| (|EMAIL|)? This action cannot be undone.`,
code_archgun: `Archgun`, code_archgun: `Archgun`,
code_melee: `Melee`, code_melee: `Melee`,
code_pistol: `Pistol`, code_pistol: `Pistol`,
code_rifle: `Rifle`, code_rifle: `Rifle`,
code_shotgun: `Shotgun`, code_shotgun: `Shotgun`,
code_kitgun: `Kitgun`, code_kitgun: `Kitgun`,
code_zaw: `Zaw`, code_zaw: `Zaw`,
code_moteAmp: `Mote Amp`, code_moteAmp: `Mote Amp`,
code_amp: `Amp`, code_amp: `Amp`,
code_sirocco: `Sirocco`, code_sirocco: `Sirocco`,
code_kDrive: `K-Drive`, code_kDrive: `K-Drive`,
code_legendaryCore: `Legendary Core`, code_legendaryCore: `Legendary Core`,
code_traumaticPeculiar: `Traumatic Peculiar`, code_traumaticPeculiar: `Traumatic Peculiar`,
code_badItem: `(Imposter)`, code_badItem: `(Imposter)`,
code_maxRank: `Max Rank`, code_maxRank: `Max Rank`,
code_rename: `Rename`, code_rename: `Rename`,
code_renamePrompt: `Enter new custom name:`, code_renamePrompt: `Enter new custom name:`,
code_remove: `Remove`, code_remove: `Remove`,
code_addItemsConfirm: `Are you sure you want to add |COUNT| items to your account?`, code_addItemsConfirm: `Are you sure you want to add |COUNT| items to your account?`,
code_noEquipmentToRankUp: `No equipment to rank up.`, code_noEquipmentToRankUp: `No equipment to rank up.`,
code_succAdded: `Successfully added.`, code_succAdded: `Successfully added.`,
code_buffsNumber: `Number of buffs`, code_buffsNumber: `Number of buffs`,
code_cursesNumber: `Number of curses`, code_cursesNumber: `Number of curses`,
code_rerollsNumber: `Number of rerolls`, code_rerollsNumber: `Number of rerolls`,
code_viewStats: `View Stats`, code_viewStats: `View Stats`,
code_rank: `Rank`, code_rank: `Rank`,
code_count: `Count`, code_count: `Count`,
code_focusAllUnlocked: `All focus schools are already unlocked.`, code_focusAllUnlocked: `All focus schools are already unlocked.`,
code_focusUnlocked: `Unlocked |COUNT| new focus schools! An inventory update will be needed for the changes to be reflected in-game. Visiting the navigation should be the easiest way to trigger that.`, code_focusUnlocked: `Unlocked |COUNT| new focus schools! An inventory update will be needed for the changes to be reflected in-game. Visiting the navigation should be the easiest way to trigger that.`,
code_addModsConfirm: `Are you sure you want to add |COUNT| mods to your account?`, code_addModsConfirm: `Are you sure you want to add |COUNT| mods to your account?`,
code_succImport: `Successfully imported.`, code_succImport: `Successfully imported.`,
login_description: `Login using your OpenWF account credentials (same as in-game when connecting to this server).`, login_description: `Login using your OpenWF account credentials (same as in-game when connecting to this server).`,
login_emailLabel: `Email address`, login_emailLabel: `Email address`,
login_passwordLabel: `Password`, login_passwordLabel: `Password`,
login_loginButton: `Login`, login_loginButton: `Login`,
navbar_logout: `Logout`, navbar_logout: `Logout`,
navbar_renameAccount: `Rename Account`, navbar_renameAccount: `Rename Account`,
navbar_deleteAccount: `Delete Account`, navbar_deleteAccount: `Delete Account`,
navbar_inventory: `Inventory`, navbar_inventory: `Inventory`,
navbar_mods: `Mods`, navbar_mods: `Mods`,
navbar_cheats: `Cheats`, navbar_cheats: `Cheats`,
navbar_import: `Import`, navbar_import: `Import`,
inventory_addItems: `Add Items`, inventory_addItems: `Add Items`,
inventory_suits: `Warframes`, inventory_suits: `Warframes`,
inventory_longGuns: `Primary Weapons`, inventory_longGuns: `Primary Weapons`,
inventory_pistols: `Secondary Weapons`, inventory_pistols: `Secondary Weapons`,
inventory_melee: `Melee Weapons`, inventory_melee: `Melee Weapons`,
inventory_spaceSuits: `Archwings`, inventory_spaceSuits: `Archwings`,
inventory_spaceGuns: `Archwing Primary Weapons`, inventory_spaceGuns: `Archwing Primary Weapons`,
inventory_spaceMelee: `Archwing Melee Weapons`, inventory_spaceMelee: `Archwing Melee Weapons`,
inventory_mechSuits: `Necramechs`, inventory_mechSuits: `Necramechs`,
inventory_sentinels: `Sentinels`, inventory_sentinels: `Sentinels`,
inventory_sentinelWeapons: `Sentinel Weapons`, inventory_sentinelWeapons: `Sentinel Weapons`,
inventory_operatorAmps: `Amps`, inventory_operatorAmps: `Amps`,
inventory_hoverboards: `K-Drives`, inventory_hoverboards: `K-Drives`,
inventory_bulkAddSuits: `Add Missing Warframes`, inventory_bulkAddSuits: `Add Missing Warframes`,
inventory_bulkAddWeapons: `Add Missing Weapons`, inventory_bulkAddWeapons: `Add Missing Weapons`,
inventory_bulkAddSpaceSuits: `Add Missing Archwings`, inventory_bulkAddSpaceSuits: `Add Missing Archwings`,
inventory_bulkAddSpaceWeapons: `Add Missing Archwing Weapons`, inventory_bulkAddSpaceWeapons: `Add Missing Archwing Weapons`,
inventory_bulkAddSentinels: `Add Missing Sentinels`, inventory_bulkAddSentinels: `Add Missing Sentinels`,
inventory_bulkAddSentinelWeapons: `Add Missing Sentinel Weapons`, inventory_bulkAddSentinelWeapons: `Add Missing Sentinel Weapons`,
inventory_bulkRankUpSuits: `Max Rank All Warframes`, inventory_bulkRankUpSuits: `Max Rank All Warframes`,
inventory_bulkRankUpWeapons: `Max Rank All Weapons`, inventory_bulkRankUpWeapons: `Max Rank All Weapons`,
inventory_bulkRankUpSpaceSuits: `Max Rank All Archwings`, inventory_bulkRankUpSpaceSuits: `Max Rank All Archwings`,
inventory_bulkRankUpSpaceWeapons: `Max Rank All Archwing Weapons`, inventory_bulkRankUpSpaceWeapons: `Max Rank All Archwing Weapons`,
inventory_bulkRankUpSentinels: `Max Rank All Sentinels`, inventory_bulkRankUpSentinels: `Max Rank All Sentinels`,
inventory_bulkRankUpSentinelWeapons: `Max Rank All Sentinel Weapons`, inventory_bulkRankUpSentinelWeapons: `Max Rank All Sentinel Weapons`,
currency_RegularCredits: `Credits`, currency_RegularCredits: `Credits`,
currency_PremiumCredits: `Platinum`, currency_PremiumCredits: `Platinum`,
currency_FusionPoints: `Endo`, currency_FusionPoints: `Endo`,
currency_PrimeTokens: `Regal Aya`, currency_PrimeTokens: `Regal Aya`,
currency_owned: `You have |COUNT|.`, currency_owned: `You have |COUNT|.`,
powersuit_archonShardsLabel: `Archon Shard Slots`, powersuit_archonShardsLabel: `Archon Shard Slots`,
powersuit_archonShardsDescription: `You can use these unlimited slots to apply a wide range of upgrades`, powersuit_archonShardsDescription: `You can use these unlimited slots to apply a wide range of upgrades`,
mods_addRiven: `Add Riven`, mods_addRiven: `Add Riven`,
mods_fingerprint: `Fingerprint`, mods_fingerprint: `Fingerprint`,
mods_fingerprintHelp: `Need help with the fingerprint?`, mods_fingerprintHelp: `Need help with the fingerprint?`,
mods_rivens: `Rivens`, mods_rivens: `Rivens`,
mods_mods: `Mods`, mods_mods: `Mods`,
mods_bulkAddMods: `Add Missing Mods`, mods_bulkAddMods: `Add Missing Mods`,
cheats_administratorRequirement: `You must be an administrator to use this feature. To become an administrator, add <code>|DISPLAYNAME|</code> to <code>administratorNames</code> in the config.json.`, cheats_administratorRequirement: `You must be an administrator to use this feature. To become an administrator, add <code>|DISPLAYNAME|</code> to <code>administratorNames</code> in the config.json.`,
cheats_server: `Server`, cheats_server: `Server`,
cheats_skipTutorial: `Skip Tutorial`, cheats_skipTutorial: `Skip Tutorial`,
cheats_skipAllDialogue: `Skip All Dialogue`, cheats_skipAllDialogue: `Skip All Dialogue`,
cheats_unlockAllScans: `Unlock All Scans`, cheats_unlockAllScans: `Unlock All Scans`,
cheats_unlockAllMissions: `Unlock All Missions`, cheats_unlockAllMissions: `Unlock All Missions`,
cheats_unlockAllQuests: `Unlock All Quests`, cheats_unlockAllQuests: `Unlock All Quests`,
cheats_completeAllQuests: `Complete All Quests`, cheats_completeAllQuests: `Complete All Quests`,
cheats_infiniteCredits: `Infinite Credits`, cheats_infiniteCredits: `Infinite Credits`,
cheats_infinitePlatinum: `Infinite Platinum`, cheats_infinitePlatinum: `Infinite Platinum`,
cheats_infiniteEndo: `Infinite Endo`, cheats_infiniteEndo: `Infinite Endo`,
cheats_infiniteRegalAya: `Infinite Regal Aya`, cheats_infiniteRegalAya: `Infinite Regal Aya`,
cheats_unlockAllShipFeatures: `Unlock All Ship Features`, cheats_unlockAllShipFeatures: `Unlock All Ship Features`,
cheats_unlockAllShipDecorations: `Unlock All Ship Decorations`, cheats_unlockAllShipDecorations: `Unlock All Ship Decorations`,
cheats_unlockAllFlavourItems: `Unlock All <abbr title=\"Animation Sets, Glyphs, Plattes, etc.\">Flavor Items</abbr>`, cheats_unlockAllFlavourItems: `Unlock All <abbr title=\"Animation Sets, Glyphs, Plattes, etc.\">Flavor Items</abbr>`,
cheats_unlockAllSkins: `Unlock All Skins`, cheats_unlockAllSkins: `Unlock All Skins`,
cheats_unlockAllCapturaScenes: `Unlock All Captura Scenes`, cheats_unlockAllCapturaScenes: `Unlock All Captura Scenes`,
cheats_universalPolarityEverywhere: `Universal Polarity Everywhere`, cheats_universalPolarityEverywhere: `Universal Polarity Everywhere`,
cheats_unlockDoubleCapacityPotatoesEverywhere: `Potatoes Everywhere`, cheats_unlockDoubleCapacityPotatoesEverywhere: `Potatoes Everywhere`,
cheats_unlockExilusEverywhere: `Exilus Adapters Everywhere`, cheats_unlockExilusEverywhere: `Exilus Adapters Everywhere`,
cheats_unlockArcanesEverywhere: `Arcane Adapters Everywhere`, cheats_unlockArcanesEverywhere: `Arcane Adapters Everywhere`,
cheats_noDailyStandingLimits: `No Daily Standing Limits`, cheats_noDailyStandingLimits: `No Daily Standing Limits`,
cheats_spoofMasteryRank: `Spoofed Mastery Rank (-1 to disable)`, cheats_spoofMasteryRank: `Spoofed Mastery Rank (-1 to disable)`,
cheats_saveSettings: `Save Settings`, cheats_saveSettings: `Save Settings`,
cheats_account: `Account`, cheats_account: `Account`,
cheats_unlockAllFocusSchools: `Unlock All Focus Schools`, cheats_unlockAllFocusSchools: `Unlock All Focus Schools`,
cheats_helminthUnlockAll: `Fully Level Up Helminth`, cheats_helminthUnlockAll: `Fully Level Up Helminth`,
cheats_changeSupportedSyndicate: `Supported syndicate`, cheats_changeSupportedSyndicate: `Supported syndicate`,
cheats_changeButton: `Change`, cheats_changeButton: `Change`,
cheats_none: `None`, cheats_none: `None`,
import_importNote: `You can provide a full or partial inventory response (client respresentation) here. All fields that are supported by the importer <b>will be overwritten</b> in your account.`, import_importNote: `You can provide a full or partial inventory response (client respresentation) here. All fields that are supported by the importer <b>will be overwritten</b> in your account.`,
import_submit: `Submit`, import_submit: `Submit`
} };

View File

@ -1,121 +1,121 @@
// Russian translation by AMelonInsideLemon // Russian translation by AMelonInsideLemon
dict = { dict = {
general_inventoryUpdateNote: `Примечание: изменения, внесенные здесь, отобразятся в игре только после повторной загрузки вашего инвентаря. Посещение навигации — самый простой способ этого добиться.`, general_inventoryUpdateNote: `Примечание: изменения, внесенные здесь, отобразятся в игре только после повторной загрузки вашего инвентаря. Посещение навигации — самый простой способ этого добиться.`,
general_addButton: `Добавить`, general_addButton: `Добавить`,
general_bulkActions: `Массовые действия`, general_bulkActions: `Массовые действия`,
code_nonValidAuthz: `Ваши данные больше не действительны.`, code_nonValidAuthz: `Ваши данные больше не действительны.`,
code_changeNameConfirm: `Какое имя вы хотите установить для своей учетной записи?`, code_changeNameConfirm: `Какое имя вы хотите установить для своей учетной записи?`,
code_deleteAccountConfirm: `Вы уверены, что хотите удалить аккаунт |DISPLAYNAME| (|EMAIL|)? Это действие нельзя отменить.`, code_deleteAccountConfirm: `Вы уверены, что хотите удалить аккаунт |DISPLAYNAME| (|EMAIL|)? Это действие нельзя отменить.`,
code_archgun: `Арч-Пушка`, code_archgun: `Арч-Пушка`,
code_melee: `Ближний бой`, code_melee: `Ближний бой`,
code_pistol: `Пистолет`, code_pistol: `Пистолет`,
code_rifle: `Винтовка`, code_rifle: `Винтовка`,
code_shotgun: `Дробовик`, code_shotgun: `Дробовик`,
code_kitgun: `Китган`, code_kitgun: `Китган`,
code_zaw: `Зо`, code_zaw: `Зо`,
code_moteAmp: `Пылинка`, code_moteAmp: `Пылинка`,
code_amp: `Усилитель`, code_amp: `Усилитель`,
code_sirocco: `Сирокко`, code_sirocco: `Сирокко`,
code_kDrive: `К-Драйв`, code_kDrive: `К-Драйв`,
code_legendaryCore: `Легендарное ядро`, code_legendaryCore: `Легендарное ядро`,
code_traumaticPeculiar: `Травмирующая Странность`, code_traumaticPeculiar: `Травмирующая Странность`,
code_badItem: `(Самозванец)`, code_badItem: `(Самозванец)`,
code_maxRank: `Максимальный ранг`, code_maxRank: `Максимальный ранг`,
code_rename: `Переименовать`, code_rename: `Переименовать`,
code_renamePrompt: `Введите новое имя:`, code_renamePrompt: `Введите новое имя:`,
code_remove: `Удалить`, code_remove: `Удалить`,
code_addItemsConfirm: `Вы уверены, что хотите добавить |COUNT| предметов на ваш аккаунт?`, code_addItemsConfirm: `Вы уверены, что хотите добавить |COUNT| предметов на ваш аккаунт?`,
code_noEquipmentToRankUp: `Нет снаряжения для повышения ранга.`, code_noEquipmentToRankUp: `Нет снаряжения для повышения ранга.`,
code_succAdded: `Успешно добавлено.`, code_succAdded: `Успешно добавлено.`,
code_buffsNumber: `Количество усилений`, code_buffsNumber: `Количество усилений`,
code_cursesNumber: `Количество проклятий`, code_cursesNumber: `Количество проклятий`,
code_rerollsNumber: `Количество циклов`, code_rerollsNumber: `Количество циклов`,
code_viewStats: `Просмотр характеристики`, code_viewStats: `Просмотр характеристики`,
code_rank: `Ранг`, code_rank: `Ранг`,
code_count: `Количество`, code_count: `Количество`,
code_focusAllUnlocked: `Все школы фокуса уже разблокированы.`, code_focusAllUnlocked: `Все школы фокуса уже разблокированы.`,
code_focusUnlocked: `Разблокировано |COUNT| новых школ фокуса! Для отображения изменений в игре потребуется обновление инвентаря. Посещение навигации — самый простой способ этого добиться.`, code_focusUnlocked: `Разблокировано |COUNT| новых школ фокуса! Для отображения изменений в игре потребуется обновление инвентаря. Посещение навигации — самый простой способ этого добиться.`,
code_addModsConfirm: `Вы уверены, что хотите добавить |COUNT| модов на ваш аккаунт?`, code_addModsConfirm: `Вы уверены, что хотите добавить |COUNT| модов на ваш аккаунт?`,
code_succImport: `Успешно импортировано.`, code_succImport: `Успешно импортировано.`,
login_description: `Войдите, используя учетные данные OpenWF (те же, что и в игре при подключении к этому серверу).`, login_description: `Войдите, используя учетные данные OpenWF (те же, что и в игре при подключении к этому серверу).`,
login_emailLabel: `Адрес электронной почты`, login_emailLabel: `Адрес электронной почты`,
login_passwordLabel: `Пароль`, login_passwordLabel: `Пароль`,
login_loginButton: `Войти`, login_loginButton: `Войти`,
navbar_logout: `Выйти`, navbar_logout: `Выйти`,
navbar_renameAccount: `Переименовать аккаунт`, navbar_renameAccount: `Переименовать аккаунт`,
navbar_deleteAccount: `Удалить аккаунт`, navbar_deleteAccount: `Удалить аккаунт`,
navbar_inventory: `Инвентарь`, navbar_inventory: `Инвентарь`,
navbar_mods: `Моды`, navbar_mods: `Моды`,
navbar_cheats: `Читы`, navbar_cheats: `Читы`,
navbar_import: `Импорт`, navbar_import: `Импорт`,
inventory_addItems: `Добавить предметы`, inventory_addItems: `Добавить предметы`,
inventory_suits: `Варфреймы`, inventory_suits: `Варфреймы`,
inventory_longGuns: `Основное оружие`, inventory_longGuns: `Основное оружие`,
inventory_pistols: `Вторичное оружие`, inventory_pistols: `Вторичное оружие`,
inventory_melee: `Оружие ближнего боя`, inventory_melee: `Оружие ближнего боя`,
inventory_spaceSuits: `Арчвинги`, inventory_spaceSuits: `Арчвинги`,
inventory_spaceGuns: `Оружие арчвинга`, inventory_spaceGuns: `Оружие арчвинга`,
inventory_spaceMelee: `Оружие ближнего боя арчвинга`, inventory_spaceMelee: `Оружие ближнего боя арчвинга`,
inventory_mechSuits: `Некрамехи`, inventory_mechSuits: `Некрамехи`,
inventory_sentinels: `Стражи`, inventory_sentinels: `Стражи`,
inventory_sentinelWeapons: `Оружие стражей`, inventory_sentinelWeapons: `Оружие стражей`,
inventory_operatorAmps: `Усилители`, inventory_operatorAmps: `Усилители`,
inventory_hoverboards: `К-Драйвы`, inventory_hoverboards: `К-Драйвы`,
inventory_bulkAddSuits: `Добавить отсутствующие варфреймы`, inventory_bulkAddSuits: `Добавить отсутствующие варфреймы`,
inventory_bulkAddWeapons: `Добавить отсутствующее оружие`, inventory_bulkAddWeapons: `Добавить отсутствующее оружие`,
inventory_bulkAddSpaceSuits: `Добавить отсутствующие арчвинги`, inventory_bulkAddSpaceSuits: `Добавить отсутствующие арчвинги`,
inventory_bulkAddSpaceWeapons: `Добавить отсутствующее оружие арчвингов`, inventory_bulkAddSpaceWeapons: `Добавить отсутствующее оружие арчвингов`,
inventory_bulkAddSentinels: `Добавить отсутствующих стражей`, inventory_bulkAddSentinels: `Добавить отсутствующих стражей`,
inventory_bulkAddSentinelWeapons: `Добавить отсутствующее оружие стражей`, inventory_bulkAddSentinelWeapons: `Добавить отсутствующее оружие стражей`,
inventory_bulkRankUpSuits: `Максимальный ранг всех варфреймов`, inventory_bulkRankUpSuits: `Максимальный ранг всех варфреймов`,
inventory_bulkRankUpWeapons: `Максимальный ранг всего оружия`, inventory_bulkRankUpWeapons: `Максимальный ранг всего оружия`,
inventory_bulkRankUpSpaceSuits: `Максимальный ранг всех арчвингов`, inventory_bulkRankUpSpaceSuits: `Максимальный ранг всех арчвингов`,
inventory_bulkRankUpSpaceWeapons: `Максимальный ранг всего оружия арчвингов`, inventory_bulkRankUpSpaceWeapons: `Максимальный ранг всего оружия арчвингов`,
inventory_bulkRankUpSentinels: `Максимальный ранг всех стражей`, inventory_bulkRankUpSentinels: `Максимальный ранг всех стражей`,
inventory_bulkRankUpSentinelWeapons: `Максимальный ранг всего оружия стражей`, inventory_bulkRankUpSentinelWeapons: `Максимальный ранг всего оружия стражей`,
currency_RegularCredits: `Кредиты`, currency_RegularCredits: `Кредиты`,
currency_PremiumCredits: `Платина`, currency_PremiumCredits: `Платина`,
currency_FusionPoints: `Эндо`, currency_FusionPoints: `Эндо`,
currency_PrimeTokens: `Королевские Айя`, currency_PrimeTokens: `Королевские Айя`,
currency_owned: `У тебя есть |COUNT|.`, currency_owned: `У тебя есть |COUNT|.`,
powersuit_archonShardsLabel: `Ячейки осколков архонта`, powersuit_archonShardsLabel: `Ячейки осколков архонта`,
powersuit_archonShardsDescription: `Вы можете использовать эти неограниченные ячейки для установки множества улучшений.`, powersuit_archonShardsDescription: `Вы можете использовать эти неограниченные ячейки для установки множества улучшений.`,
mods_addRiven: `Добавить Мод Разлома`, mods_addRiven: `Добавить Мод Разлома`,
mods_fingerprint: `Отпечаток`, mods_fingerprint: `Отпечаток`,
mods_fingerprintHelp: `Нужна помощь с отпечатком?`, mods_fingerprintHelp: `Нужна помощь с отпечатком?`,
mods_rivens: `Моды Разлома`, mods_rivens: `Моды Разлома`,
mods_mods: `Моды`, mods_mods: `Моды`,
mods_bulkAddMods: `Добавить отсутствующие моды`, mods_bulkAddMods: `Добавить отсутствующие моды`,
cheats_administratorRequirement: `Вы должны быть администратором для использования этой функции. Чтобы стать администратором, добавьте <code>\"|DISPLAYNAME|\"</code> в <code>administratorNames</code> в config.json.`, cheats_administratorRequirement: `Вы должны быть администратором для использования этой функции. Чтобы стать администратором, добавьте <code>\"|DISPLAYNAME|\"</code> в <code>administratorNames</code> в config.json.`,
cheats_server: `Сервер`, cheats_server: `Сервер`,
cheats_skipTutorial: `Пропустить обучение`, cheats_skipTutorial: `Пропустить обучение`,
cheats_skipAllDialogue: `Пропустить все диалоги`, cheats_skipAllDialogue: `Пропустить все диалоги`,
cheats_unlockAllScans: `Разблокировать все сканирования`, cheats_unlockAllScans: `Разблокировать все сканирования`,
cheats_unlockAllMissions: `Разблокировать все миссии`, cheats_unlockAllMissions: `Разблокировать все миссии`,
cheats_unlockAllQuests: `Разблокировать все квесты`, cheats_unlockAllQuests: `Разблокировать все квесты`,
cheats_completeAllQuests: `Завершить все квесты`, cheats_completeAllQuests: `Завершить все квесты`,
cheats_infiniteCredits: `Бесконечные кредиты`, cheats_infiniteCredits: `Бесконечные кредиты`,
cheats_infinitePlatinum: `Бесконечная платина`, cheats_infinitePlatinum: `Бесконечная платина`,
cheats_infiniteEndo: `Бесконечное эндо`, cheats_infiniteEndo: `Бесконечное эндо`,
cheats_infiniteRegalAya: `Бесконечная Королевская Айя`, cheats_infiniteRegalAya: `Бесконечная Королевская Айя`,
cheats_unlockAllShipFeatures: `Разблокировать все функции корабля`, cheats_unlockAllShipFeatures: `Разблокировать все функции корабля`,
cheats_unlockAllShipDecorations: `Разблокировать все украшения корабля`, cheats_unlockAllShipDecorations: `Разблокировать все украшения корабля`,
cheats_unlockAllFlavourItems: `Разблокировать все <abbr title=\"Наборы анимаций, глифы, палитры и т. д.\">уникальные предметы</abbr>`, cheats_unlockAllFlavourItems: `Разблокировать все <abbr title=\"Наборы анимаций, глифы, палитры и т. д.\">уникальные предметы</abbr>`,
cheats_unlockAllSkins: `Разблокировать все скины`, cheats_unlockAllSkins: `Разблокировать все скины`,
cheats_unlockAllCapturaScenes: `Разблокировать все сцены Каптуры`, cheats_unlockAllCapturaScenes: `Разблокировать все сцены Каптуры`,
cheats_universalPolarityEverywhere: `Универсальная полярность везде`, cheats_universalPolarityEverywhere: `Универсальная полярность везде`,
cheats_unlockDoubleCapacityPotatoesEverywhere: `Катализаторы везде`, cheats_unlockDoubleCapacityPotatoesEverywhere: `Катализаторы везде`,
cheats_unlockExilusEverywhere: `Адаптеры Эксилус везде`, cheats_unlockExilusEverywhere: `Адаптеры Эксилус везде`,
cheats_unlockArcanesEverywhere: `Адаптеры для мистификаторов везде`, cheats_unlockArcanesEverywhere: `Адаптеры для мистификаторов везде`,
cheats_noDailyStandingLimits: `Без ежедневных ограничений репутации`, cheats_noDailyStandingLimits: `Без ежедневных ограничений репутации`,
cheats_spoofMasteryRank: `Подделанный ранг мастерства (-1 для отключения)`, cheats_spoofMasteryRank: `Подделанный ранг мастерства (-1 для отключения)`,
cheats_saveSettings: `Сохранить настройки`, cheats_saveSettings: `Сохранить настройки`,
cheats_account: `Аккаунт`, cheats_account: `Аккаунт`,
cheats_unlockAllFocusSchools: `Разблокировать все школы фокуса`, cheats_unlockAllFocusSchools: `Разблокировать все школы фокуса`,
cheats_helminthUnlockAll: `Полностью улучшить Гельминта`, cheats_helminthUnlockAll: `Полностью улучшить Гельминта`,
cheats_changeSupportedSyndicate: `Поддерживаемый синдикат`, cheats_changeSupportedSyndicate: `Поддерживаемый синдикат`,
cheats_changeButton: `Изменить`, cheats_changeButton: `Изменить`,
cheats_none: `Отсутствует`, cheats_none: `Отсутствует`,
import_importNote: `Вы можете загрузить полный или частичный ответ инвентаря (клиентское представление) здесь. Все поддерживаемые поля <b>будут перезаписаны</b> в вашем аккаунте.`, import_importNote: `Вы можете загрузить полный или частичный ответ инвентаря (клиентское представление) здесь. Все поддерживаемые поля <b>будут перезаписаны</b> в вашем аккаунте.`,
import_submit: `Отправить`, import_submit: `Submit`
} };