From 10ac07974f2303f92dcce51a007604143b9c07a3 Mon Sep 17 00:00:00 2001 From: Alexander Drozdov Date: Mon, 17 Apr 2023 14:26:59 +0300 Subject: [PATCH] WIP extracting all strings --- renderer/public/data/en/app_i18n.json | 320 +++++++++++++++++- renderer/src/web/i18n.ts | 15 +- renderer/src/web/item-check/ItemInfo.vue | 24 +- .../src/web/item-check/WidgetItemCheck.vue | 10 - renderer/src/web/map-check/MapCheck.vue | 22 +- renderer/src/web/overlay/LoadingAnimation.vue | 10 +- renderer/src/web/overlay/OverlayWindow.vue | 10 +- renderer/src/web/overlay/Widget.vue | 19 +- renderer/src/web/overlay/WidgetImageStrip.vue | 13 +- renderer/src/web/overlay/WidgetItemSearch.vue | 36 +- renderer/src/web/overlay/WidgetMenu.vue | 32 +- renderer/src/web/overlay/WidgetTimer.vue | 10 +- .../src/web/price-check/BackgroundInfo.vue | 19 +- renderer/src/web/price-check/CheckedItem.vue | 12 +- .../src/web/price-check/PriceCheckWindow.vue | 26 +- .../price-check/filters/FilterBtnLogical.vue | 47 --- .../price-check/filters/FilterBtnNumeric.vue | 35 +- .../price-check/filters/FilterModifier.vue | 117 +------ .../filters/FilterModifierItemHasEmpty.vue | 16 +- .../filters/FilterModifierTiers.vue | 13 +- .../web/price-check/filters/FilterName.vue | 52 +-- .../web/price-check/filters/FiltersBlock.vue | 67 ++-- .../web/price-check/filters/SourceInfo.vue | 27 +- .../web/price-check/filters/create-presets.ts | 8 +- .../filters/create-stat-filters.ts | 10 +- .../src/web/price-check/filters/interfaces.ts | 24 +- .../price-check/filters/pseudo/anointments.ts | 2 +- .../filters/pseudo/atzoatl-rules.ts | 2 +- .../web/price-check/filters/pseudo/index.ts | 4 +- .../filters/pseudo/item-property.ts | 28 +- .../price-check/stack-value/StackValue.vue | 13 +- .../web/price-check/trade/OnlineFilter.vue | 47 +-- .../src/web/price-check/trade/TradeBulk.vue | 36 +- .../web/price-check/trade/TradeListing.vue | 39 +-- .../price-check/trade/pathofexile-trade.ts | 22 +- .../src/web/price-check/trends/PriceTrend.vue | 23 +- .../UnidentifiedResolver.vue | 10 +- renderer/src/web/settings/HotkeyInput.vue | 10 +- renderer/src/web/settings/SettingsWindow.vue | 27 +- renderer/src/web/settings/about.vue | 24 +- renderer/src/web/settings/chat.vue | 15 +- renderer/src/web/settings/debug.vue | 14 +- renderer/src/web/settings/general.vue | 59 +--- renderer/src/web/settings/hotkeys.vue | 47 +-- renderer/src/web/settings/item-check.vue | 21 +- renderer/src/web/settings/item-search.vue | 12 +- renderer/src/web/settings/maps/maps.vue | 22 +- renderer/src/web/settings/price-check.vue | 88 ++--- renderer/src/web/settings/stash-search.vue | 18 +- renderer/src/web/settings/stopwatch.vue | 15 +- 50 files changed, 592 insertions(+), 1000 deletions(-) diff --git a/renderer/public/data/en/app_i18n.json b/renderer/public/data/en/app_i18n.json index 414dc7bfc..2d05a0dbb 100644 --- a/renderer/public/data/en/app_i18n.json +++ b/renderer/public/data/en/app_i18n.json @@ -1,22 +1,314 @@ { "please_wait": "Please wait\u2026", + "choose_file": "Choose File", + "browse": "Browse", + "app_is_ready": "Is ready and running in background", + "reopen_settings": "Press {0} to continue editing.", + "seconds": "seconds", + "league": "League", + "realm": "Realm", + "realm_intl": "International", + + "app": { + "leagues_loading": "Loading leagues\u2026", + "leagues_failed": "Failed to load leagues", + "leagues_failed_help": "Make sure the realm is not under maintenance. Also try clicking on the \"Browser\" button, you may need to complete a CAPTCHA there.", + "leagues_failed_help_alt": "Price check an Item, and follow the instructions in the error description there.", + "thanks_3rd_party": "This tool relies on {0} and {1}, consider support them as well", + "toggle_browser_hint": "Press {0} to switch between browser and game.", + "contact_me": "Contact me on one of the PoE Discords,", + "version": "Version {0}", + "release_notes": "Release notes", + "report_bug": "Report a bug on GitHub", + "quit": "Quit" + }, "map.mods.heist": "heist", "map.mods.outdated": "outdated", "Support development on": "Support development\u00A0on", - "updates.maybe_outdated": "You may have an outdated version", - "updates.latest": "You have the latest version", - "updates.error": "Error while checking for updates", - "updates.checking": "Checking for updates", - "updates.downloading": "Downloading\u2026", - "updates.available": "Update available: {0}", - "updates.never_checked": "Last checked: never", - "updates.last_checked": "Last checked: {0}", - "updates.check_now": "Check now", - "updates.install_now": "Install now", - "updates.downloads_page": "Open the Downloads page", - "updates.installed_on_exit": "It will be installed automatically on exit", - "updates.download_manually": "You can download it from GitHub", - "updates.download_disabled": "You have disabled automatic updates download" + "Blighted": "Blighted", + "Blight-ravaged": "Blight-ravaged", + "Shaper": "Shaper", + "Elder": "Elder", + "Crusader": "Crusader", + "Hunter": "Hunter", + "Redeemer": "Redeemer", + "Warlord": "Warlord", + "Superior": "Superior", + "Anomalous": "Anomalous", + "Divergent": "Divergent", + "Phantasmal": "Phantasmal", + + "item": { + "prop_quality": "Q {0}%", + "base_percentile": "Base Percentile: {0}%", + "armour": "Armour: {0}", + "evasion_rating": "Evasion Rating: {0}", + "energy_shield": "Energy Shield: {0}", + "ward": "Ward: {0}", + "block": "Block: {0}%", + "total_dps": "Total DPS: {0}", + "physical_dps": "Physical DPS: {0}", + "elemental_dps": "Elemental DPS: {0}", + "crit": "Critical Strike Chance: {0}%", + "aps": "Attacks per Second: {0}", + "has_empty_modifier": "1 Empty or Crafted Modifier", + "has_empty_affix": "Любое", + "has_empty_prefix": "Префикс", + "has_empty_suffix": "Суффикс", + "item_level": "Item Level: {0}", + "stock": "Stock: {0}", + "map_tier": "Map Tier: {0}", + "area_level": "Area Level: {0}", + "heist_wings_revealed": "Wings Revealed: {0}", + "linked_sockets": "Links: {0}", + "white_sockets": "White: {0}", + "quality": "Quality: {0}", + "gem_level": "Level: {0}", + "sentinel_charge": "Charge: {0}", + "find_in_stash": "Find in Stash", + "parse_error": "An error occurred while parsing the item", + "parse_error_help": "This is probably a bug and you can report it on GitHub.", + "unknown": "Unknown Item", + "unknown_help": "If this Item was introduced in this League, it will likely be supported in the next app update.", + "identification": "You are trying to price check unidentified Unique item with base type \"{0}\". Which one?", + "open_on_wiki": "Open item on wiki", + "open_on_poedb": "Open item on PoEDB", + "info": "Item info", + "corrupted": "Corrupted", + "not_corrupted": "Not Corrupted", + "mod_tier": "Tier: {0}", + "mod_rank": "Rank: {0}", + "mod_implicit": "Implicit", + "mod_fractured": "Fractured", + "mod_explicit": "Explicit", + "mod_crafted": "Crafted", + "mod_scourge": "Scourge", + "unidentified": "Unidentified", + "veiled": "Veiled", + "foil_unique": "Foil Unique", + "mirrored": "Mirrored", + "not_mirrored": "Not Mirrored" + }, + "item_category": { + "prop": "Category: {0}", + "map": "Map", + "jewel_abyss": "Abyss Jewel", + "accessory_amulet": "Amulet", + "accessory_belt": "Belt", + "armour_chest": "Body Armour", + "armour_boots": "Boots", + "weapon_bow": "Bow", + "weapon_claw": "Claw", + "weapon_dagger": "Dagger", + "weapon_rod": "Fishing Rod", + "flask": "Flask", + "armour_gloves": "Gloves", + "armour_helmet": "Helmet", + "jewel": "Jewel", + "weapon_oneaxe": "One-Handed Axe", + "weapon_onemace": "One-Handed Mace", + "weapon_onesword": "One-Handed Sword", + "armour_quiver": "Quiver", + "accessory_ring": "Ring", + "weapon_runedagger": "Rune Dagger", + "weapon_sceptre": "Sceptre", + "armour_shield": "Shield", + "weapon_staff": "Staff", + "weapon_twoaxe": "Two-Handed Axe", + "weapon_twomace": "Two-Handed Mace", + "weapon_twosword": "Two-Handed Sword", + "weapon_wand": "Wand", + "weapon_warstaff": "Warstaff", + "jewel_cluster": "Cluster Jewel", + "heistmission_blueprint": "Heist Blueprint", + "heistmission_contract": "Heist Contract", + "heistequipment_heisttool": "Heist Tool", + "heistequipment_heistreward": "Heist Brooch", + "heistequipment_heistweapon": "Heist Gear", + "heistequipment_heistutility": "Heist Cloak", + "accessory_trinket": "Trinket" + }, + "filters": { + "selected_some": "{0} of {1}, stats", + "selected_none": "Stats ignored", + "hidden_toggle": "Hidden", + "collapse": "Collapse", + "mods_toggle": "Mods", + "empty": "No relevant stats were found", + "tier": "Tier {0}", + "preset_pseudo": "Pseudo", + "preset_base_item": "Base item", + "hide_const_roll": "Roll is not variable", + "hide_ele_dps": "Elemental damage is not the main source of DPS", + "hide_phys_dps": "Physical damage is not the main source of DPS", + "hide_ele_res": "Filtering by exact Elemental Resistance unreasonably increases the price", + "hide_crafted_chaos": "Crafted Chaos Resistance without Explicit mod has no value", + "hide_anointment": "Buyer will likely change anointment", + "hide_for_crafting": "Select only if price-checking as base item for crafting", + "hide_empty_mod": "Select only if item has 6 modifiers (1 of which is crafted) or if it has 5 modifiers", + "tag_variant": "variant", + "tag_corrupted": "corrupted", + "tag_synthesised": "synthesised", + "tag_eldritch": "eldritch", + "tag_pseudo": "pseudo", + "tag_explicit_shaper": "Shaper", + "tag_explicit_elder": "Elder", + "tag_explicit_crusader": "Crusader", + "tag_explicit_hunter": "Hunter", + "tag_explicit_redeemer": "Redeemer", + "tag_explicit_warlord": "Warlord", + "tag_explicit_delve": "Delve", + "tag_explicit_veiled": "Veiled", + "tag_explicit_incursion": "Incursion" + }, + "online_filter": { + "offline_toggle": "Offline & Online", + "in_league_toggle": "In League", + "listed_any_time": "Listed: Any Time", + "listed_1day": "1 Day Ago", + "listed_3days": "3 Days Ago", + "listed_1week": "1 Week Ago", + "listed_2weeks": "2 Weeks Ago", + "listed_1month": "1 Month Ago", + "listed_2months": "2 Months Ago", + "currency_any": "Any Currency", + "currency_only_chaos": "Chaos Orb", + "currency_only_div": "Divine Orb" + }, + "widget": { + "title": "widget title", + "hide": "hide", + "edit": "edit", + "move": "move", + "delete": "delete" + }, + "updates": { + "maybe_outdated": "You may have an outdated version", + "latest": "You have the latest version", + "error": "Error while checking for updates", + "checking": "Checking for updates", + "downloading": "Downloading\u2026", + "available": "Update available: {0}", + "never_checked": "Last checked: never", + "last_checked": "Last checked: {0}", + "check_now": "Check now", + "install_now": "Install now", + "downloads_page": "Open the Downloads page", + "installed_on_exit": "It will be installed automatically on exit", + "download_manually": "You can download it from GitHub", + "download_disabled": "You have disabled automatic updates download", + "auto_download": "Auto-download updates" + }, + "widget_menu": { + "add": "add widget\u2026", + "always_show": "Show button for active widgets", + "price_check": "Price check (Ctrl + V)" + }, + "stopwatch": { + "name": "Stopwatch", + "paused": "paused", + "toggle_key": "Start and Pause", + "reset_key": "Reset" + }, + "stash_search": { + "name": "Stash search", + "search_text": "search text or regex", + "friendly_name": "friendly name" + }, + "image_strip": { + "name": "Image strip" + }, + "item_search": { + "name": "Item search", + "input": "Search by name\u2026", + "reset": "Reset items", + "heist_target": "Heist target:", + "target_gem": "Skill Gem", + "target_replica": "Replicas", + "too_many": "Too many items found, enter the name more precisely.", + "not_found": "No items found.", + "ocr_gems_key": "Perform an OCR for a Skill Gem" + }, + "map_check": { + "name": "Map check", + "has_outdated": "Wording of some stats has been changed. Check and update dangerous map mods in the settings. (This message will be hidden as soon as you remove all outdated stats)", + "no_mods": "Item has no modifiers.", + "profile": "Profile", + "search_selected": "Only selected", + "search_stat_col": "Stat (found: {0})", + "new_mods_icon": "Show icon for new mods" + }, + "trade_result": { + "error" :"Trade site request failed", + "matched" :"Matched: {0}", + "trade" :"Trade", + "price" :"Price", + "bulk" :"bulk", + "stock" :"Stock", + "fulfill" :"Fulfill", + "listed" :"Listed", + "seller" :"Seller", + "item_level": "iLvl", + "gem_level": "Level", + "quality": "Quality", + "base_item": "Base item", + "graph_7d": "Last 7 days", + "getting_price": "Getting price {0}", + "getting_price_from": "from poe.ninja \u2026", + "you_have": "You have", + "stack": "Stack" + }, + "settings": { + "title": "Settings - Awakened PoE Trade", + "language": "Language", + "private_league": "or Private League", + "account_name": "Account name", + "last_char_name": "Last character name", + "chat_cmd_add": "Add command", + "chat_cmd_send": "press Enter", + "no_key": "Not Set", + "clear_hotkey": "You can clear hotkey by pressing Backspace", + "overlay" :"Overlay", + "stash_scroll" :"Stash tab scrolling", + "delve_grid" :"Grid for Delve Chart", + "window_title": "PoE window title", + "thank_you": "App development continues thanks to:", + "hotkeys": "Hotkeys", + "chat": "Chat", + "general": "General", + "debug": "Debug", + "about": "About", + "font_size" :"Font size", + "overlay_bg" :"Background, when APT window is clickable", + "overlay_bg_none" :"Transparent", + "overlay_bg_exclusive" :"Show for Overlay and Price Check", + "overlay_bg_itself" :"Show only for Overlay", + "overlay_bg_focus_game" :"Clicking on background focuses game", + "poe_log_file" :"PoE log file", + "poe_cfg_file" :"PoE config file", + "restore_clipboard" :"Restore clipboard", + "show_overlay_ready" :"Show a notification when opening PoE" + }, + "price_check": { + "name": "Price check", + "hotkey" :"Auto-hide Mode", + "hotkey_locked" :"Open without auto-hide", + "enable_browser": "Enable builtin browser", + "builtin_browser_warning": "I am aware that future releases can potentially contain malicious code that can steal my POESESSID.", + "highlight_hint": "Your items will be highlighted even if this setting is off", + "show_seller": "Show seller", + "fill_rolls": "Fill stat values", + "fill_roll_exact": "Exact value", + "cursor_pos": "Show memorized cursor position", + "min_price": "Minimum buyout price", + "min_price_in_chaos": "Chaos Orbs", + "extra_delay": "Extra time to prevent spurious Rate limiting", + "warn_expensive": "Settings below are a compromise between increasing load on PoE website and convenient price checking / more accurate search.", + "accurate_collapsed": "Show indication on collapsed listings", + "auto_search": "Perform an auto search, when pressing", + "select_stock": "Always select \"Stock\" filter", + "show_prediction": "Show price prediction" + } } \ No newline at end of file diff --git a/renderer/src/web/i18n.ts b/renderer/src/web/i18n.ts index f96bd7dce..a40c866e6 100644 --- a/renderer/src/web/i18n.ts +++ b/renderer/src/web/i18n.ts @@ -1,4 +1,4 @@ -import { createI18n, Composer as I18n } from 'vue-i18n' +import { createI18n, Composer as I18n, useI18n } from 'vue-i18n' import { nextTick } from 'vue' let _global: I18n @@ -36,3 +36,16 @@ export async function loadLang (lang: string): Promise { return await nextTick() } + +export function useI18nNs (name: string) { + const { t } = useI18n() + return { + t: ((path, ...args) => { + if (typeof path === 'string' && path.startsWith(':')) { + return (t as any)(path.replace(':', `${name}.`), ...args) + } else { + return (t as any)(path, ...args) + } + }) as typeof t + } +} diff --git a/renderer/src/web/item-check/ItemInfo.vue b/renderer/src/web/item-check/ItemInfo.vue index a52e92d6d..88d67aceb 100644 --- a/renderer/src/web/item-check/ItemInfo.vue +++ b/renderer/src/web/item-check/ItemInfo.vue @@ -7,12 +7,12 @@ - +
-
{{ t('Physical DPS:') }}
{{ weaponDPS.phys }}
-
{{ t('Elemental DPS:') }}
{{ weaponDPS.elem }}
-
{{ t('Total DPS:') }}
{{ weaponDPS.total }}
+
{{ t('item.physical_dps') }}
{{ weaponDPS.phys }}
+
{{ t('item.elemental_dps') }}
{{ weaponDPS.elem }}
+
{{ t('item.total_dps') }}
{{ weaponDPS.total }}
@@ -55,19 +55,3 @@ export default defineComponent({ } }) - - -{ - "ru": { - "Physical DPS:": "Физический ДПС:", - "Elemental DPS:": "Стихийный ДПС:", - "Total DPS:": "Общий ДПС:", - "Find in Stash": "Найти в тайнике" - }, - "cmn-Hant": { - "Physical DPS:": "物理 DPS: #", - "Elemental DPS:": "元素 DPS: #", - "Total DPS:": "DPS: #" - } -} - diff --git a/renderer/src/web/item-check/WidgetItemCheck.vue b/renderer/src/web/item-check/WidgetItemCheck.vue index f85a6b343..0cadf5b6f 100644 --- a/renderer/src/web/item-check/WidgetItemCheck.vue +++ b/renderer/src/web/item-check/WidgetItemCheck.vue @@ -11,7 +11,6 @@ - - -{ - "ru": { - } -} - diff --git a/renderer/src/web/map-check/MapCheck.vue b/renderer/src/web/map-check/MapCheck.vue index fda91e767..afbfd4ba1 100644 --- a/renderer/src/web/map-check/MapCheck.vue +++ b/renderer/src/web/map-check/MapCheck.vue @@ -3,7 +3,7 @@ style="min-width: 20rem; max-width: min(100vw - var(--game-panel), 30rem);">
{{ mapName }}
-
{{ t('Profile') }}
+
{{ t('map_check.profile') }}
-
{{ t('has_outdated') }}
+
{{ t('map_check.has_outdated') }}
@@ -85,19 +85,3 @@ export default defineComponent({ } }) - - -{ - "en": { - "has_outdated": "Wording of some stats has been changed. Check and update dangerous map mods in the settings. (This message will be hidden as soon as you remove all outdated stats)" - }, - "ru": { - "Item has no modifiers.": "На предмете нету модов.", - "has_outdated": "Перевод некоторых свойств был изменен. Проверьте и обновите опасные моды карт в настройках. (Это сообщение будет скрыто, как только вы удалите все устаревшие переводы)", - "Profile": "Профиль" - }, - "cmn-Hant" :{ - "has_outdataed" :"部份詞綴描述已變更,請檢查並更新地圖的危險詞綴。(當你刪除將所有舊版詞綴,此訊息會隱藏)" - } -} - diff --git a/renderer/src/web/overlay/LoadingAnimation.vue b/renderer/src/web/overlay/LoadingAnimation.vue index 47932d20b..b777474ee 100644 --- a/renderer/src/web/overlay/LoadingAnimation.vue +++ b/renderer/src/web/overlay/LoadingAnimation.vue @@ -6,7 +6,7 @@
Awakened PoE Trade
-

{{ t('Is ready and running in background') }}

+

{{ t('app_is_ready') }}

@@ -68,11 +68,3 @@ export default defineComponent({ filter: drop-shadow(2px 4px 6px #000); } - - -{ - "ru": { - "Is ready and running in background": "Запущен и работает в фоновом режиме" - } -} - diff --git a/renderer/src/web/overlay/OverlayWindow.vue b/renderer/src/web/overlay/OverlayWindow.vue index 22c8bb09e..b88655443 100644 --- a/renderer/src/web/overlay/OverlayWindow.vue +++ b/renderer/src/web/overlay/OverlayWindow.vue @@ -16,7 +16,7 @@
- + {{ overlayKey }}
@@ -314,11 +314,3 @@ export default defineComponent({ } }) - - - { - "ru": { - "Press {0} to continue editing.": "Нажмите {0} чтобы продолжить редактирование." - } - } - diff --git a/renderer/src/web/overlay/Widget.vue b/renderer/src/web/overlay/Widget.vue index 90a4e7f15..60aa75e4a 100644 --- a/renderer/src/web/overlay/Widget.vue +++ b/renderer/src/web/overlay/Widget.vue @@ -7,13 +7,13 @@
+ :class="$style.action">{{ t('widget.hide') }} + :class="[$style.action, { [$style.active]: isEditing }]">{{ t('widget.edit') }} + :class="[$style.action, { [$style.active]: isMoving }]">{{ t('widget.move') }} + :class="[$style.action, $style.removable, { [$style.removing]: isRemoving }]">{{ t('widget.delete') }}
@@ -314,14 +314,3 @@ export default defineComponent({ 0 1px 2px 0 rgba(0, 0, 0, 0.75); } - - -{ - "ru": { - "hide": "скрыть", - "edit": "редактировать", - "move": "переместить", - "delete": "удалить" - } -} - diff --git a/renderer/src/web/overlay/WidgetImageStrip.vue b/renderer/src/web/overlay/WidgetImageStrip.vue index e4aba38fc..a72fb6347 100644 --- a/renderer/src/web/overlay/WidgetImageStrip.vue +++ b/renderer/src/web/overlay/WidgetImageStrip.vue @@ -5,7 +5,7 @@
{{ config.wmTitle || 'Untitled' }}
- +
@@ -102,12 +102,3 @@ export default defineComponent({ position: relative; } - - -{ - "ru": { - "widget title": "заголовок виджета", - "Choose File": "Выберите файл" - } -} - diff --git a/renderer/src/web/overlay/WidgetItemSearch.vue b/renderer/src/web/overlay/WidgetItemSearch.vue index b0b08d56d..59c4f557a 100644 --- a/renderer/src/web/overlay/WidgetItemSearch.vue +++ b/renderer/src/web/overlay/WidgetItemSearch.vue @@ -22,17 +22,17 @@ class="self-center" :ms="4000" />
- - +
- {{ t('Heist target:') }} + {{ t(':heist_target') }}
+ @click="typeFilter = 'gem'">{{ t(':target_gem') }} + @click="typeFilter = 'replica'">{{ t(':target_replica') }}, Base items
@@ -56,9 +56,9 @@
{{ t('too_many') }}
+ class="text-center p-8 max-w-xs"> {{ t(':too_many') }}
{{ t('not_found') }}
+ class="text-center p-8 max-w-xs"> {{ t(':not_found') }} @@ -67,7 +67,7 @@ - - - - -{ - "ru": { - "Stopwatch": "Секундомер", - "Stash search": "Поиск в тайнике", - "Image strip": "Лента изображений", - "Show button for active widgets": "Показывать кнопку для активных виджетов", - "add widget...": "добавить виджет...", - "Price check (Ctrl + V)": "Прайс-чек (Ctrl + V)" - } -} - diff --git a/renderer/src/web/overlay/WidgetTimer.vue b/renderer/src/web/overlay/WidgetTimer.vue index de08a9ac7..ba669f1f9 100644 --- a/renderer/src/web/overlay/WidgetTimer.vue +++ b/renderer/src/web/overlay/WidgetTimer.vue @@ -4,7 +4,7 @@
{{ formatted.h }}:{{ formatted.m }}:{{ formatted.s }}
-
{{ t('paused') }}
+
{{ t('stopwatch.paused') }}
@@ -165,11 +165,3 @@ export default defineComponent({ @apply bg-orange-700 text-white; } - - -{ - "ru": { - "paused:": "остановлен" - } -} - diff --git a/renderer/src/web/price-check/BackgroundInfo.vue b/renderer/src/web/price-check/BackgroundInfo.vue index 7d51560e1..d975f5437 100644 --- a/renderer/src/web/price-check/BackgroundInfo.vue +++ b/renderer/src/web/price-check/BackgroundInfo.vue @@ -4,10 +4,10 @@

{{ updateInfo.str2 }}

- {{ t('Loading leagues...') }}
+ {{ t('app.leagues_loading') }} - -

{{ t('leagues_failed') }}

+ +

{{ t('leagues_failed_help') }}

- + {{ overlayKey }}
@@ -161,11 +161,11 @@ export default defineComponent({ } } catch (err: unknown) { const strings = (err instanceof Error && err.message === 'UNKNOWN_ITEM') - ? 'unknown_item' - : 'parse_error' + ? 'item.unknown' + : 'item.parse_error' item.value = { - error: { name: `${strings}`, message: `${strings}_msg` }, + error: { name: `${strings}`, message: `${strings}_help` }, rawText: e.clipboard } } @@ -258,21 +258,3 @@ export default defineComponent({ } }) - - -{ - "en": { - "unknown_item": "Unknown Item", - "unknown_item_msg": "If this Item was introduced in this League, it will likely be supported in the next app update.", - "parse_error": "An error occurred while parsing the item", - "parse_error_msg": "This is probably a bug and you can report it on GitHub." - }, - "ru": { - "unknown_item": "Неизвестный предмет", - "unknown_item_msg": "Если это новый предмет в этой лиге, скорее всего, он будет добавлен в следующем обновлении.", - "parse_error": "Произошла ошибка при парсинге предмета", - "parse_error_msg": "Скорее всего, это ошибка, и вы можете сообщить о ней на GitHub.", - "Press {0} to switch between browser and game.": "Нажмите {0} для перехода между браузером/игрой." - } -} - diff --git a/renderer/src/web/price-check/filters/FilterBtnLogical.vue b/renderer/src/web/price-check/filters/FilterBtnLogical.vue index 7ea193194..9efb289a7 100644 --- a/renderer/src/web/price-check/filters/FilterBtnLogical.vue +++ b/renderer/src/web/price-check/filters/FilterBtnLogical.vue @@ -70,50 +70,3 @@ export default defineComponent({ } } - - -{ - "ru": { - "Unidentified": "Неопознанный", - "Veiled": "Завуалирован", - "Blighted": "Заражённая", - "Blight-ravaged": "Разорённая Скверной", - "Mirrored": "Отражено", - "Not Mirrored": "Не отражено", - "Foil Unique": "Реликвия", - - "Shaper": "Создатель", - "Elder": "Древний", - "Crusader": "Крестоносец", - "Hunter": "Охотник", - "Redeemer": "Избавительница", - "Warlord": "Вождь", - - "Superior": "Высокого к-ва", - "Anomalous": "Аномальный", - "Divergent": "Искривлённый", - "Phantasmal": "Фантомный" - }, - "cmn-Hant": { - "Unidentified": "未鑑定", - "Veiled": "隱匿", - "Blighted": "凋落", - "Blight-ravaged": "凋落蔓延的", - "Mirrored": "已複製", - "Not Mirrored": "未複製", - "Foil Unique": "貼模傳奇", - - "Shaper": "塑界者", - "Elder": "尊師", - "Crusader": "聖戰軍王", - "Hunter": "狩獵者", - "Redeemer": "救贖者", - "Warlord": "總督軍", - - "Superior": "精良", - "Anomalous": "異常", - "Divergent": "相異", - "Phantasmal": "幻影" - } -} - diff --git a/renderer/src/web/price-check/filters/FilterBtnNumeric.vue b/renderer/src/web/price-check/filters/FilterBtnNumeric.vue index 9657fe34c..e44568293 100644 --- a/renderer/src/web/price-check/filters/FilterBtnNumeric.vue +++ b/renderer/src/web/price-check/filters/FilterBtnNumeric.vue @@ -1,6 +1,6 @@ @@ -15,6 +15,7 @@ import { defineComponent, PropType, computed } from 'vue' import { useI18n } from 'vue-i18n' import type { ParsedItem } from '@/parser' import type { ItemFilters } from './interfaces' +import { CATEGORY_TO_TRADE_ID } from '../trade/pathofexile-trade' export default defineComponent({ name: 'FilterName', @@ -44,7 +45,8 @@ export default defineComponent({ return activeSearch.baseType } if (activeSearch.category) { - return t(`Category: ${activeSearch.category}`) + const tradeId = CATEGORY_TO_TRADE_ID.get(activeSearch.category)! + return t('item_category.prop', [t(`item_category.${tradeId.replace('.', '_')}`)]) } return '??? Report if you see this text' @@ -87,47 +89,3 @@ export default defineComponent({ white-space: nowrap; } - - -{ - "ru": { - "Corrupted": "Осквернен", - "Not Corrupted": "Не осквернен", - "Category: Abyss Jewel": "Категория: Самоцвет Бездны", - "Category: Amulet": "Категория: Амулет", - "Category: Belt": "Категория: Пояс", - "Category: Body Armour": "Категория: Нательная броня", - "Category: Boots": "Категория: Сапоги", - "Category: Bow": "Категория: Лук", - "Category: Claw": "Категория: Коготь", - "Category: Dagger": "Категория: Кинжал", - "Category: Fishing Rod": "Категория: Удочка", - "Category: Flask": "Категория: Флакон", - "Category: Gloves": "Категория: Перчатки", - "Category: Helmet": "Категория: Шлем", - "Category: Jewel": "Категория: Самоцвет", - "Category: One-Handed Axe": "Категория: Одноручный топор", - "Category: One-Handed Mace": "Категория: Одноручная булава", - "Category: One-Handed Sword": "Категория: Одноручный меч", - "Category: Quiver": "Категория: Колчан", - "Category: Ring": "Категория: Кольцо", - "Category: Rune Dagger": "Категория: Рунический кинжал", - "Category: Sceptre": "Категория: Скипетр", - "Category: Shield": "Категория: Щит", - "Category: Staff": "Категория: Посох", - "Category: Two-Handed Axe": "Категория: Двуручный топор", - "Category: Two-Handed Mace": "Категория: Двуручная булава", - "Category: Two-Handed Sword": "Категория: Двуручный меч", - "Category: Wand": "Категория: Жезл", - "Category: Warstaff": "Категория: Воинский посох", - "Category: Cluster Jewel": "Категория: Кластерный самоцвет", - "Category: Heist Blueprint": "Категория: Чертёж Кражи", - "Category: Heist Contract": "Категория: Контракт Кражи", - "Category: Heist Tool": "Категория: Разбойничий инструмент", - "Category: Heist Brooch": "Категория: Разбойничья брошь", - "Category: Heist Gear": "Категория: Разбойничьи принадлежности", - "Category: Heist Cloak": "Категория: Разбойничья накидка", - "Category: Trinket": "Категория: Украшение" - } -} - diff --git a/renderer/src/web/price-check/filters/FiltersBlock.vue b/renderer/src/web/price-check/filters/FiltersBlock.vue index 630d9c876..052ed0a7e 100644 --- a/renderer/src/web/price-check/filters/FiltersBlock.vue +++ b/renderer/src/web/price-check/filters/FiltersBlock.vue @@ -2,29 +2,29 @@
+ :filter="filters.linkedSockets" :name="t('item.linked_sockets')" /> + :filter="filters.mapTier" :name="t('item.map_tier')" /> + :filter="filters.areaLevel" :name="t('item.area_level')" /> + :filter="filters.heistWingsRevealed" :name="t('item.heist_wings_revealed')" /> + :filter="filters.sentinelCharge" :name="t('item.sentinel_charge')" /> + :filter="filters.itemLevel" :name="t('item.item_level')" /> + :filter="filters.stackSize" :name="t('item.stock')" /> + :filter="filters.whiteSockets" :name="t('item.white_sockets')" /> + :filter="filters.gemLevel" :name="t('item.gem_level')" /> + :filter="filters.quality" :name="t('item.quality')" /> + :filter="filters.unidentified" :text="t('item.unidentified')" /> + :filter="filters.veiled" :text="t('item.veiled')" /> + :filter="filters.foil" :text="t('item.foil_unique')" /> + :filter="filters.mirrored" :text="t(filters.mirrored.disabled ? 'item.not_mirrored' : 'item.mirrored')" />
@@ -66,7 +66,7 @@ :show-sources="showFilterSources" @submit="handleStatsSubmit" />
{{ t('No relevant stats were found') }}
+ class="border-b border-gray-700 py-2">{{ t('filters.empty') }}
@@ -66,12 +66,3 @@ export default defineComponent({ } }) - - -{ - "ru": { - "You have": "В наличии", - "Stack": "Стак" - } -} - diff --git a/renderer/src/web/price-check/trade/OnlineFilter.vue b/renderer/src/web/price-check/trade/OnlineFilter.vue index 149c0ec35..2df580d85 100644 --- a/renderer/src/web/price-check/trade/OnlineFilter.vue +++ b/renderer/src/web/price-check/trade/OnlineFilter.vue @@ -12,29 +12,29 @@
{{ t('Offline & Online') }} + @update:modelValue="onOfflineUpdate">{{ t(':offline_toggle') }}
{{ t('In League') }} + v-model="filters.trade.onlineInLeague">{{ t(':in_league_toggle') }}
{{ league.id }}
@@ -44,7 +44,7 @@ - - -{ - "ru": { - "Offline & Online": "Офлайн и Онлайн", - "In League": "В лиге", - "Listed: Any Time": "Любое время", - "1 Day Ago": "До 1-го дня", - "3 Days Ago": "До 3-х дней", - "1 Week Ago": "До 1-й недели", - "2 Weeks Ago": "До 2-х недель", - "1 Month Ago": "До 1-го месяца", - "2 Months Ago": "До 2-х месяцев", - "Any Currency": "Любая валюта", - "Chaos Orb": "Сфера хаоса", - "Divine Orb": "Божествен. сфера" - } -} - diff --git a/renderer/src/web/price-check/trade/TradeBulk.vue b/renderer/src/web/price-check/trade/TradeBulk.vue index 2be8656c2..93d7f4d28 100644 --- a/renderer/src/web/price-check/trade/TradeBulk.vue +++ b/renderer/src/web/price-check/trade/TradeBulk.vue @@ -3,7 +3,7 @@
- {{ t('Matched:') }} + {{ t(':matched') }} ...
- +

Error: {{ error }}

@@ -65,11 +65,3 @@ export default defineComponent({ } }) - - -{ - "ru": { - "Not Set": "Не назначено" - } -} - diff --git a/renderer/src/web/settings/SettingsWindow.vue b/renderer/src/web/settings/SettingsWindow.vue index 3ddcdf359..8d06122ea 100644 --- a/renderer/src/web/settings/SettingsWindow.vue +++ b/renderer/src/web/settings/SettingsWindow.vue @@ -9,7 +9,7 @@
- {{ t('App development continues thanks to:') }} + {{ t('settings.thank_you') }}
{{ patronsString[0] }}
@@ -17,7 +17,7 @@
- +
+ :class="$style['quit-btn']" @click="quit">{{ t('app.quit') }}
{{ t('Support development on') }}
@@ -343,24 +343,3 @@ function flatJoin (arr: T[][], joinEl: () => J) { @apply text-2xl; } - - -{ - "ru": { - "Settings - Awakened PoE Trade": "Настройки - Awakened PoE Trade", - "Hotkeys": "Быстрые клавиши", - "General": "Общие", - "About": "О программе", - "Price check": "Прайс-чек", - "Maps": "Карты", - "Item info": "Проверка предмета", - "Item search": "Поиск предметов", - "Debug": "Debug", - "Quit": "Выход", - "Chat": "Чат", - "Stash search": "Поиск в тайнике", - "Stopwatch": "Секундомер", - "App development continues thanks to:": "Разработка приложения продолжается благодаря:" - } -} - diff --git a/renderer/src/web/settings/about.vue b/renderer/src/web/settings/about.vue index c443138dd..a87a950a9 100644 --- a/renderer/src/web/settings/about.vue +++ b/renderer/src/web/settings/about.vue @@ -3,10 +3,10 @@

Awakened PoE Trade

-

{{ t('Version {0}', [version]) }}

+

{{ t('app.version', [version]) }}

@@ -16,7 +16,7 @@ class="btn w-full mt-1">{{ info.actionText }}
-

{{ t('contact_in_discord') }}
<@295216259795124225>

+

{{ t('app.contact_me') }}
<@295216259795124225>

  • The Forbidden Trove
  • r/pathofexile
  • @@ -55,7 +55,7 @@ function fmtTime (millis: number) { } export default defineComponent({ - name: 'About', + name: 'settings.about', inheritAttrs: false, setup () { const { t } = useI18n() @@ -88,17 +88,3 @@ export default defineComponent({ } }) - - -{ - "en": { - "contact_in_discord": "Contact me on one of the PoE Discords," - }, - "ru": { - "Version {0}": "Версия {0}", - "Release notes": "Список изменений", - "Report a bug on GitHub": "Сообщить о баге на GitHub", - "contact_in_discord": "Пишите мне в дискорде по PoE," - } -} - diff --git a/renderer/src/web/settings/chat.vue b/renderer/src/web/settings/chat.vue index 93c981a12..563eeb0ee 100644 --- a/renderer/src/web/settings/chat.vue +++ b/renderer/src/web/settings/chat.vue @@ -4,13 +4,13 @@
    - {{ t('press Enter') }} + {{ t('settings.chat_cmd_send') }}
- +
@@ -21,7 +21,7 @@ import { configProp } from './utils' import HotkeyInput from './HotkeyInput.vue' export default defineComponent({ - name: 'Chat', + name: 'settings.chat', components: { HotkeyInput }, props: configProp(), setup (props) { @@ -44,12 +44,3 @@ export default defineComponent({ } }) - - -{ - "ru": { - "Add command": "Добавить команду", - "press Enter": "нажимать Enter" - } -} - diff --git a/renderer/src/web/settings/debug.vue b/renderer/src/web/settings/debug.vue index 088c218fd..27069d460 100644 --- a/renderer/src/web/settings/debug.vue +++ b/renderer/src/web/settings/debug.vue @@ -8,7 +8,7 @@
-
{{ t('PoE window title') }} {{ t('Restart required') }}
+
{{ t('settings.window_title') }} {{ t('Restart required') }}
@@ -27,7 +27,7 @@ import { configProp, configModelValue } from './utils' import { Host } from '@/web/background/IPC' export default defineComponent({ - name: 'Debug', + name: 'settings.debug', props: configProp(), setup (props) { const { t } = useI18n() @@ -41,13 +41,3 @@ export default defineComponent({ } }) - - -{ - "ru": { - "Log level": "Уровень логов", - "Disabled (render on CPU)": "Отключено (рендерить на CPU)", - "PoE window title": "Заголовок окна игры" - } -} - diff --git a/renderer/src/web/settings/general.vue b/renderer/src/web/settings/general.vue index 4faa2f8d3..b0733fd86 100644 --- a/renderer/src/web/settings/general.vue +++ b/renderer/src/web/settings/general.vue @@ -1,7 +1,7 @@