From 31c107da89fe11f3ac75702089548eaaf28f992e Mon Sep 17 00:00:00 2001 From: Wotuu Date: Wed, 5 Feb 2025 17:21:16 +0100 Subject: [PATCH] #2711 WIP exclusive enemies --- .../Controllers/Ajax/AjaxEnemyController.php | 6 +- .../Requests/Enemy/APIEnemyFormRequest.php | 1 + app/Models/Enemy.php | 39 ++- ...dd_exclusive_enemy_id_to_enemies_table.php | 28 ++ lang/de_DE/breadcrumbs.php | 7 +- lang/de_DE/combatlogeventtypes.php | 4 +- lang/de_DE/dungeons.php | 157 +++++++++-- lang/de_DE/enemies.php | 8 + lang/de_DE/exceptions.php | 1 + lang/de_DE/gameserverregions.php | 13 +- lang/de_DE/gameversions.php | 4 + lang/de_DE/js.php | 16 +- lang/de_DE/logic.php | 45 --- lang/de_DE/mapicontypes.php | 6 + lang/de_DE/mapping.php | 6 + lang/de_DE/releasechangelogcategories.php | 1 + lang/de_DE/services.php | 55 +++- lang/de_DE/specializations.php | 2 +- lang/de_DE/view_admin.php | 39 ++- lang/de_DE/view_common.php | 263 +++++++++++------- lang/de_DE/view_dungeon.php | 16 +- lang/de_DE/view_team.php | 67 +++-- lang/en_US/enemies.php | 17 ++ lang/en_US/js.php | 1 + lang/ho_HO/breadcrumbs.php | 7 +- lang/ho_HO/combatlogeventtypes.php | 4 +- lang/ho_HO/dungeons.php | 157 +++++++++-- lang/ho_HO/enemies.php | 8 + lang/ho_HO/exceptions.php | 1 + lang/ho_HO/gameserverregions.php | 13 +- lang/ho_HO/gameversions.php | 4 + lang/ho_HO/js.php | 16 +- lang/ho_HO/logic.php | 45 --- lang/ho_HO/mapicontypes.php | 6 + lang/ho_HO/mapping.php | 6 + lang/ho_HO/releasechangelogcategories.php | 1 + lang/ho_HO/services.php | 55 +++- lang/ho_HO/specializations.php | 2 +- lang/ho_HO/view_admin.php | 39 ++- lang/ho_HO/view_common.php | 263 +++++++++++------- lang/ho_HO/view_dungeon.php | 16 +- lang/ho_HO/view_team.php | 67 +++-- lang/ru_RU/breadcrumbs.php | 7 +- lang/ru_RU/combatlogeventtypes.php | 4 +- lang/ru_RU/dungeons.php | 157 +++++++++-- lang/ru_RU/enemies.php | 8 + lang/ru_RU/exceptions.php | 1 + lang/ru_RU/gameserverregions.php | 13 +- lang/ru_RU/gameversions.php | 4 + lang/ru_RU/js.php | 16 +- lang/ru_RU/logic.php | 45 --- lang/ru_RU/mapicontypes.php | 6 + lang/ru_RU/mapping.php | 6 + lang/ru_RU/releasechangelogcategories.php | 1 + lang/ru_RU/services.php | 55 +++- lang/ru_RU/specializations.php | 2 +- lang/ru_RU/view_admin.php | 39 ++- lang/ru_RU/view_common.php | 263 +++++++++++------- lang/ru_RU/view_dungeon.php | 16 +- lang/ru_RU/view_team.php | 68 +++-- resources/assets/js/custom/models/enemy.js | 54 +++- resources/assets/js/messages.js | 4 + 62 files changed, 1547 insertions(+), 734 deletions(-) create mode 100644 database/migrations/2025_02_05_154354_add_exclusive_enemy_id_to_enemies_table.php create mode 100644 lang/de_DE/enemies.php create mode 100644 lang/en_US/enemies.php create mode 100644 lang/ho_HO/enemies.php create mode 100644 lang/ru_RU/enemies.php diff --git a/app/Http/Controllers/Ajax/AjaxEnemyController.php b/app/Http/Controllers/Ajax/AjaxEnemyController.php index 473e0a9cd8..899e225834 100644 --- a/app/Http/Controllers/Ajax/AjaxEnemyController.php +++ b/app/Http/Controllers/Ajax/AjaxEnemyController.php @@ -29,6 +29,10 @@ class AjaxEnemyController extends AjaxMappingModelBaseController { /** + * @param APIEnemyFormRequest $request + * @param CoordinatesServiceInterface $coordinatesService + * @param MappingVersion $mappingVersion + * @param Enemy|null $enemy * @return Enemy|Model * * @throws Throwable @@ -38,7 +42,7 @@ public function store( CoordinatesServiceInterface $coordinatesService, MappingVersion $mappingVersion, ?Enemy $enemy = null - ): Enemy { + ): Enemy|Model { $validated = $request->validated(); $previousFloor = null; diff --git a/app/Http/Requests/Enemy/APIEnemyFormRequest.php b/app/Http/Requests/Enemy/APIEnemyFormRequest.php index 6ad1d44fde..d4f56c2e8a 100644 --- a/app/Http/Requests/Enemy/APIEnemyFormRequest.php +++ b/app/Http/Requests/Enemy/APIEnemyFormRequest.php @@ -34,6 +34,7 @@ public function rules(): array 'npc_id' => ['nullable', Rule::exists(Npc::class, 'id')], 'mdt_id' => 'nullable|int', 'mdt_npc_id' => 'nullable|int', + 'exclusive_enemy_id' => ['nullable', Rule::exists(Enemy::class, 'id')], 'seasonal_index' => 'nullable|int', 'seasonal_type' => [Rule::in(array_merge(Enemy::SEASONAL_TYPE_ALL, ['', null]))], 'teeming' => [Rule::in(array_merge(Enemy::TEEMING_ALL, ['', null]))], diff --git a/app/Models/Enemy.php b/app/Models/Enemy.php index 88cf71e492..bcc973a0e0 100644 --- a/app/Models/Enemy.php +++ b/app/Models/Enemy.php @@ -25,6 +25,7 @@ * @property int $floor_id * @property int|null $mdt_id The ID in MDT (clone index) that this enemy is coupled to * @property int|null $mdt_npc_id The ID of the NPC in MDT that this enemy is coupled to. Usually this will be the same - but MDT sometimes makes mistakes which will require a different NPC to be coupled. + * @property int|null $exclusive_enemy_id The ID of the enemy that this enemy is exclusive to. This means that this enemy will not be selectable if the exclusive enemy is selected in a pull. * @property int|null $mdt_scale The scale that MDT assigned to this particular enemy. * @property string|null $mdt_x The X position that MDT assigned to this enemy on import. * @property string|null $mdt_y The Y position that MDT assigned to this enemy on import. @@ -44,10 +45,12 @@ * @property int|null $dungeon_difficulty Show this enemy only in this difficulty setting (null is show always) * @property float $lat * @property float $lng + * * @property EnemyPack|null $enemyPack * @property Npc|null $npc * @property Floor $floor * @property EnemyPatrol|null $enemyPatrol + * @property Enemy|null $exclusiveEnemy * @property MappingVersion $mappingVersion * @property Collection $enemyActiveAuras * @@ -69,6 +72,7 @@ class Enemy extends CacheModel implements MappingModelCloneableInterface, Mappin 'npc_id', 'mdt_id', 'mdt_npc_id', + 'exclusive_enemy_id', 'mdt_scale', 'mdt_x', 'mdt_y', @@ -122,25 +126,16 @@ class Enemy extends CacheModel implements MappingModelCloneableInterface, Mappin 'kill_priority' => 'integer', ]; - public const SEASONAL_TYPE_BEGUILING = 'beguiling'; - - public const SEASONAL_TYPE_AWAKENED = 'awakened'; - - public const SEASONAL_TYPE_INSPIRING = 'inspiring'; - - public const SEASONAL_TYPE_PRIDEFUL = 'prideful'; - - public const SEASONAL_TYPE_TORMENTED = 'tormented'; - - public const SEASONAL_TYPE_ENCRYPTED = 'encrypted'; - - public const SEASONAL_TYPE_MDT_PLACEHOLDER = 'mdt_placeholder'; - - public const SEASONAL_TYPE_SHROUDED = 'shrouded'; - + public const SEASONAL_TYPE_BEGUILING = 'beguiling'; + public const SEASONAL_TYPE_AWAKENED = 'awakened'; + public const SEASONAL_TYPE_INSPIRING = 'inspiring'; + public const SEASONAL_TYPE_PRIDEFUL = 'prideful'; + public const SEASONAL_TYPE_TORMENTED = 'tormented'; + public const SEASONAL_TYPE_ENCRYPTED = 'encrypted'; + public const SEASONAL_TYPE_MDT_PLACEHOLDER = 'mdt_placeholder'; + public const SEASONAL_TYPE_SHROUDED = 'shrouded'; public const SEASONAL_TYPE_SHROUDED_ZUL_GAMUX = 'shrouded_zul_gamux'; - - public const SEASONAL_TYPE_NO_SHROUDED = 'no_shrouded'; + public const SEASONAL_TYPE_NO_SHROUDED = 'no_shrouded'; public const SEASONAL_TYPE_ALL = [ self::SEASONAL_TYPE_BEGUILING, @@ -156,8 +151,7 @@ class Enemy extends CacheModel implements MappingModelCloneableInterface, Mappin ]; public const TEEMING_VISIBLE = 'visible'; - - public const TEEMING_HIDDEN = 'hidden'; + public const TEEMING_HIDDEN = 'hidden'; public const TEEMING_ALL = [ self::TEEMING_VISIBLE, @@ -211,6 +205,11 @@ public function enemyActiveAuras(): HasMany return $this->hasMany(EnemyActiveAura::class); } + public function exclusiveEnemy(): BelongsTo + { + return $this->belongsTo(Enemy::class, 'exclusive_enemy_id'); + } + public function getDungeonId(): ?int { return $this->floor?->dungeon_id ?? null; diff --git a/database/migrations/2025_02_05_154354_add_exclusive_enemy_id_to_enemies_table.php b/database/migrations/2025_02_05_154354_add_exclusive_enemy_id_to_enemies_table.php new file mode 100644 index 0000000000..94d274cf03 --- /dev/null +++ b/database/migrations/2025_02_05_154354_add_exclusive_enemy_id_to_enemies_table.php @@ -0,0 +1,28 @@ +integer('exclusive_enemy_id')->after('mdt_npc_id')->nullable(); + $table->index('exclusive_enemy_id'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('enemies', function (Blueprint $table) { + $table->dropColumn('exclusive_enemy_id'); + }); + } +}; diff --git a/lang/de_DE/breadcrumbs.php b/lang/de_DE/breadcrumbs.php index ae1392d5fa..26d9705183 100644 --- a/lang/de_DE/breadcrumbs.php +++ b/lang/de_DE/breadcrumbs.php @@ -8,8 +8,11 @@ 'changelog' => '', 'routes' => '', 'routes_expansion' => '', - 'dungeon' => [ - 'explore' => '', + 'gameversion' => [ + 'update' => '', + 'dungeon' => [ + 'explore' => '', + ], ], 'dungeonroute' => [ 'new' => '', diff --git a/lang/de_DE/combatlogeventtypes.php b/lang/de_DE/combatlogeventtypes.php index f43ea98594..da311666b7 100644 --- a/lang/de_DE/combatlogeventtypes.php +++ b/lang/de_DE/combatlogeventtypes.php @@ -1,7 +1,7 @@ '', 'player_death' => '', - 'enemy_killed' => '', - 'spell_cast' => '', + 'player_spell' => '', ]; diff --git a/lang/de_DE/dungeons.php b/lang/de_DE/dungeons.php index cffe6e023e..a46330914b 100644 --- a/lang/de_DE/dungeons.php +++ b/lang/de_DE/dungeons.php @@ -2,11 +2,13 @@ return [ - 'difficulty' => [ + 'difficulty' => [ '1' => '', '2' => '', + '3' => '', + '4' => '', ], - 'classic' => [ + 'classic' => [ 'blackfathom_deeps' => [ 'name' => '', 'floors' => [ @@ -104,6 +106,18 @@ 'razorfen_kraul' => '', ], ], + 'ruins_of_ahnqiraj_sod' => [ + 'name' => '', + 'floors' => [ + 'ruins_of_ahnqiraj' => '', + ], + ], + 'ruins_of_ahnqiraj_classic' => [ + 'name' => '', + 'floors' => [ + 'ruins_of_ahnqiraj' => '', + ], + ], 'scarlet_monastery_armory' => [ 'name' => '', 'floors' => [ @@ -156,6 +170,22 @@ 'the_gauntlet' => '', ], ], + 'temple_of_ahnqiraj_sod' => [ + 'name' => '', + 'floors' => [ + 'the_hive_undergrounds' => '', + 'the_temple_gates' => '', + 'vault_of_cthun' => '', + ], + ], + 'temple_of_ahnqiraj_classic' => [ + 'name' => '', + 'floors' => [ + 'the_hive_undergrounds' => '', + 'the_temple_gates' => '', + 'vault_of_cthun' => '', + ], + ], 'the_stockade' => [ 'name' => '', 'floors' => [ @@ -202,7 +232,7 @@ 'zulgurub' => [ 'name' => '', 'floors' => [ - 'zul_gurub' => '', + 'zulgurub' => '', ], ], 'onyxias_lair_classic' => [ @@ -217,22 +247,13 @@ 'molten_core' => '', ], ], - 'blackwinglair' => [ - 'name' => '', - 'floors' => [ - 'blackwinglair' => '', - ], - ], - 'ruinsofahnqiraj' => [ + 'blackwinglair' => [ 'name' => '', 'floors' => [ - 'ruinsofahnqiraj' => '', - ], - ], - 'templeofahnqiraj' => [ - 'name' => '', - 'floors' => [ - 'templeofahnqiraj' => '', + 'dragonmaw_garrison' => '', + 'halls_of_strife' => '', + 'crimson_laboratories' => '', + 'nefarians_lair' => '', ], ], 'naxxramas_classic' => [ @@ -247,7 +268,7 @@ ], ], ], - 'wotlk' => [ + 'wotlk' => [ 'ahn_kahet_the_old_kingdom' => [ 'name' => '', 'floors' => [ @@ -426,7 +447,7 @@ ], ], ], - 'cata' => [ + 'cata' => [ 'grim_batol' => [ 'name' => '', 'floors' => [ @@ -447,8 +468,92 @@ 'throne_of_the_tides' => '', ], ], + 'firelands' => [ + 'name' => '', + 'floors' => [ + 'firelands' => '', + 'anvil_of_conflagration' => '', + 'sulfuron_keep' => '', + ], + ], + 'dragon_soul' => [ + 'name' => '', + 'floors' => [ + 'the_dragonblight' => '', + 'maw_of_go_rath' => '', + 'maw_of_shu_ma' => '', + 'eye_of_eternity' => '', + 'skyfire_airship' => '', + 'spine_of_deathwing' => '', + 'the_maelstrom' => '', + ], + ], ], - 'mop' => [ + 'mop' => [ + 'gate_of_the_setting_sun' => [ + 'name' => '', + 'floors' => [ + 'gate_of_the_setting_sun' => '', + 'gate_watch_tower' => '', + ], + ], + 'mogu_shan_palace' => [ + 'name' => '', + 'floors' => [ + 'the_crimson_assembly_hall' => '', + 'vaults_of_kings_past' => '', + 'throne_of_ancient_conquerors' => '', + ], + ], + 'scarlet_halls_mop' => [ + 'name' => '', + 'floors' => [ + 'training_grounds' => '', + 'athenaeum' => '', + ], + ], + 'scarlet_monastery_mop' => [ + 'name' => '', + 'floors' => [ + 'forlorn_cloister' => '', + 'crusaders_chapel' => '', + ], + ], + 'scholomance_mop' => [ + 'name' => '', + 'floors' => [ + 'the_reliquary' => '', + 'chamber_of_summoning' => '', + 'the_upper_study' => '', + 'headmasters_study' => '', + ], + ], + 'shado_pan_monastery' => [ + 'name' => '', + 'floors' => [ + 'shado_pan_monastery' => '', + 'cloudstrike_dojo' => '', + 'snowdrift_dojo' => '', + 'sealed_chambers' => '', + ], + ], + 'siege_of_niu_zao_temple' => [ + 'name' => '', + 'floors' => [ + 'siege_of_niu_zao_temple' => '', + 'the_hollowed_out_tree' => '', + 'upper_tree_ring' => '', + ], + ], + 'stormstout_brewery' => [ + 'name' => '', + 'floors' => [ + 'grain_cellar' => '', + 'stormstout_brewhall' => '', + 'the_great_wheel' => '', + 'the_tasting_room' => '', + ], + ], 'temple_of_the_jade_serpent' => [ 'name' => '', 'floors' => [ @@ -457,7 +562,7 @@ ], ], ], - 'wod' => [ + 'wod' => [ 'auchindoun' => [ 'name' => '', 'floors' => [ @@ -501,7 +606,7 @@ ], ], ], - 'legion' => [ + 'legion' => [ 'arcway' => [ 'name' => '', 'floors' => [ @@ -609,7 +714,7 @@ ], ], ], - 'bfa' => [ + 'bfa' => [ 'atal_dazar' => [ 'name' => '', 'floors' => [ @@ -715,7 +820,7 @@ ], ], ], - 'sl' => [ + 'sl' => [ 'de_other_side' => [ 'name' => '', 'floors' => [ @@ -799,7 +904,7 @@ ], ], ], - 'df' => [ + 'df' => [ 'algeth_ar_academy' => [ 'name' => '', 'floors' => [ @@ -889,7 +994,7 @@ ], ], ], - 'tww' => [ + 'tww' => [ 'ara_kara_city_of_echoes' => [ 'name' => '', 'floors' => [ diff --git a/lang/de_DE/enemies.php b/lang/de_DE/enemies.php new file mode 100644 index 0000000000..bad27cc69b --- /dev/null +++ b/lang/de_DE/enemies.php @@ -0,0 +1,8 @@ + [ + 'beguiling' => '', + + ] +]; diff --git a/lang/de_DE/exceptions.php b/lang/de_DE/exceptions.php index 3bdca3c183..26b85d0b0f 100644 --- a/lang/de_DE/exceptions.php +++ b/lang/de_DE/exceptions.php @@ -7,6 +7,7 @@ 'api_route_not_found' => '', 'internal_server_error' => '', 'unauthenticated' => '', + 'too_many_requests' => '', ], ]; diff --git a/lang/de_DE/gameserverregions.php b/lang/de_DE/gameserverregions.php index 092552750a..85710ceba0 100644 --- a/lang/de_DE/gameserverregions.php +++ b/lang/de_DE/gameserverregions.php @@ -1,11 +1,10 @@ '', - 'eu' => '', - 'cn' => '', - 'tw' => '', - 'kr' => '', - + 'us' => '', + 'eu' => '', + 'cn' => '', + 'tw' => '', + 'kr' => '', + 'world' => '', ]; diff --git a/lang/de_DE/gameversions.php b/lang/de_DE/gameversions.php index 2110c8a91a..a57cbddd50 100644 --- a/lang/de_DE/gameversions.php +++ b/lang/de_DE/gameversions.php @@ -17,4 +17,8 @@ 'name' => '', 'description' => '', ], + 'cata' => [ + 'name' => '', + 'description' => '', + ], ]; diff --git a/lang/de_DE/js.php b/lang/de_DE/js.php index b716a63f9d..917f5c0fc0 100644 --- a/lang/de_DE/js.php +++ b/lang/de_DE/js.php @@ -85,6 +85,7 @@ 'pull_workbench_remove_kill_area_label' => '', 'pull_workbench_pull_description_label' => '', 'pull_workbench_pull_supported_tags_label' => '', + 'pull_workbench_pull_description_length' => '', 'kill_zone_has_boss_label' => '', 'kill_zone_has_awakened_label' => '', 'kill_zone_has_prideful_label' => '', @@ -168,6 +169,7 @@ 'edit_label' => '', 'make_label' => '', 'delete_user_label' => '', + 'view_ip_addresses_label' => '', 'grant_all_benefits_label' => '', 'patreon_benefits_manually_granted_label' => '', 'import_notes_label' => '', @@ -267,7 +269,7 @@ 'mapicon_teeming_select_default_label' => '', 'map_icon_faction_label' => '', 'map_icon_teeming_label' => '', - 'map_icon_team_id_label' => '', + 'map_icon_show_across_team_label' => '', 'map_icon_permanent_tooltip_label' => '', 'map_icon_map_icon_type_id_label' => '', 'map_icon_comment_label' => '', @@ -340,11 +342,13 @@ 'dungeonfloorswitchmarker_linked_dungeon_floor_switch_marker_id_label' => '', 'dungeonfloorswitchmarker_direction_label' => '', 'dungeonfloorswitchmarker_direction_select_default_label' => '', + 'dungeonfloorswitchmarker_to_label' => '', 'dungeonfloorswitchmarker_go_to_label' => '', 'dungeonfloorswitchmarker_unknown_label' => '', 'mountablearea_faction_label' => '', 'mountablearea_teeming_label' => '', 'mountablearea_speed_label' => '', + 'mountablearea_tooltip_label' => '', 'floorunion_target_floor_id_select_default_label' => '', 'floorunion_target_floor_id_label' => '', 'floorunion_size_label' => '', @@ -411,6 +415,7 @@ 'connected_title_label' => '', 'members_title_label' => '', 'member_self_title_label' => '', + 'echo_object_changed_notification' => '', 'echo_object_deleted_notification' => '', 'connected_users_hide_cursors_label' => '', 'connected_users_show_cursors_label' => '', @@ -431,7 +436,11 @@ 'filter_image_select_dungeons_header' => '', 'filter_input_select_weekly_affix_groups_header' => '', 'filter_input_affix_group_header' => '', - 'filter_input_key_level_header' => '', + 'filter_input_select_specializations_header' => '', + 'filter_input_key_level_header' => '', + 'filter_input_min_samples_required_header' => '', + 'filter_input_item_level_header' => '', + 'filter_input_player_deaths_header' => '', 'filter_input_rating_header' => '', 'filter_input_title_header' => '', 'filter_input_expansion_header' => '', @@ -439,6 +448,7 @@ 'filter_input_user_header' => '', 'filter_input_event_type_header' => '', 'filter_input_data_type_header' => '', + 'filter_input_region_header' => '', 'filter_input_date_header' => '', 'filter_input_date_from_header' => '', 'filter_input_date_to_header' => '', @@ -450,4 +460,6 @@ 'toggle_spell_visibility_success' => '', 'toggle_spell_visibility_error' => '', 'week_label' => '', + 'loading_label' => '', + 'run_count_label' => '', ]; diff --git a/lang/de_DE/logic.php b/lang/de_DE/logic.php index 7aecc1fb54..ca5d8ed549 100644 --- a/lang/de_DE/logic.php +++ b/lang/de_DE/logic.php @@ -2,49 +2,4 @@ return [ - 'mdt' => [ - 'io' => [ - 'export_string' => [ - 'category' => [ - 'pull' => '', - 'title' => '', - 'map_icon' => '', - ], - 'unable_to_find_mdt_enemy_for_kg_enemy' => '', - 'unable_to_find_mdt_enemy_for_kg_enemy_details' => '', - 'unable_to_find_mdt_enemy_for_kg_caused_empty_pull' => '', - 'route_title_contains_non_ascii_char_bug' => '', - 'route_title_contains_non_ascii_char_bug_details' => '', - 'map_icon_contains_non_ascii_char_bug' => '', - 'map_icon_contains_non_ascii_char_bug_details' => '', - ], - 'import_string' => [ - 'category' => [ - 'awakened_obelisks' => '', - 'pulls' => '', - 'notes' => '', - 'pull' => '', - 'object' => '', - ], - 'object_out_of_bounds' => '', - 'limit_reached_pulls' => '', - 'limit_reached_brushlines' => '', - 'limit_reached_paths' => '', - 'limit_reached_notes' => '', - 'unable_to_find_floor_for_object' => '', - 'unable_to_find_floor_for_object_details' => '', - 'unable_to_find_mdt_enemy_for_clone_index' => '', - 'unable_to_find_mdt_enemy_for_clone_index_details' => '', - 'unable_to_find_kg_equivalent_for_mdt_enemy' => '', - 'unable_to_find_kg_equivalent_for_mdt_enemy_details' => '', - 'unable_to_find_awakened_enemy_for_final_boss' => '', - 'unable_to_find_awakened_enemy_for_final_boss_details' => '', - 'unable_to_find_enemies_pull_skipped' => '', - 'unable_to_find_enemies_pull_skipped_details' => '', - 'unable_to_find_awakened_obelisks' => '', - 'unable_to_find_awakened_obelisk_different_floor' => '', - ], - ], - ], - ]; diff --git a/lang/de_DE/mapicontypes.php b/lang/de_DE/mapicontypes.php index 500b80643f..159448fd93 100644 --- a/lang/de_DE/mapicontypes.php +++ b/lang/de_DE/mapicontypes.php @@ -96,5 +96,11 @@ 'class_evoker' => '', 'chest' => '', 'chest_locked' => '', + 'mists_statshroom' => '', + 'mists_toughshroom' => '', + 'mists_overgrown_roots' => '', + 'cot_shadecaster' => '', + 'sv_imbued_iron_energy' => '', + 'ara_kara_silk_wrap' => '', ]; diff --git a/lang/de_DE/mapping.php b/lang/de_DE/mapping.php index c9c66cb4c7..cbad77e339 100644 --- a/lang/de_DE/mapping.php +++ b/lang/de_DE/mapping.php @@ -30,6 +30,7 @@ 'mists_of_tirna_scithe' => [ 'start' => '', 'brambles' => '', + 'overgrown_roots' => '', 'depleted_anima_seed' => '', 'map_missing_wall' => '', 'savory_statshroom' => '', @@ -84,6 +85,11 @@ 'exit' => '', ], ], + 'tww' => [ + 'the_stonevault' => [ + 'imbued_iron_energy' => '', + ], + ] ], ]; diff --git a/lang/de_DE/releasechangelogcategories.php b/lang/de_DE/releasechangelogcategories.php index d29ebff70a..fbba801351 100644 --- a/lang/de_DE/releasechangelogcategories.php +++ b/lang/de_DE/releasechangelogcategories.php @@ -14,5 +14,6 @@ 'simulation_craft_changes' => '', 'auto_route_changes' => '', 'api_changes' => '', + 'heatmap_changes' => '', ]; diff --git a/lang/de_DE/services.php b/lang/de_DE/services.php index 7a8df15b6d..bcc1c0d878 100644 --- a/lang/de_DE/services.php +++ b/lang/de_DE/services.php @@ -2,8 +2,61 @@ return [ - 'npcservice' => [ + + 'mdt' => [ + 'io' => [ + 'export_string' => [ + 'category' => [ + 'pull' => '', + 'title' => '', + 'map_icon' => '', + ], + 'unable_to_find_mdt_enemy_for_kg_enemy' => '', + 'unable_to_find_mdt_enemy_for_kg_enemy_details' => '', + 'unable_to_find_mdt_enemy_for_kg_caused_empty_pull' => '', + 'route_title_contains_non_ascii_char_bug' => '', + 'route_title_contains_non_ascii_char_bug_details' => '', + 'map_icon_contains_non_ascii_char_bug' => '', + 'map_icon_contains_non_ascii_char_bug_details' => '', + ], + 'import_string' => [ + 'category' => [ + 'awakened_obelisks' => '', + 'pulls' => '', + 'notes' => '', + 'pull' => '', + 'object' => '', + ], + 'object_out_of_bounds' => '', + 'limit_reached_pulls' => '', + 'limit_reached_brushlines' => '', + 'limit_reached_paths' => '', + 'limit_reached_notes' => '', + 'unable_to_find_floor_for_object' => '', + 'unable_to_find_floor_for_object_details' => '', + 'unable_to_find_mdt_enemy_for_clone_index' => '', + 'unable_to_find_mdt_enemy_for_clone_index_details' => '', + 'unable_to_find_kg_equivalent_for_mdt_enemy' => '', + 'unable_to_find_kg_equivalent_for_mdt_enemy_details' => '', + 'unable_to_find_awakened_enemy_for_final_boss' => '', + 'unable_to_find_awakened_enemy_for_final_boss_details' => '', + 'unable_to_find_enemies_pull_skipped' => '', + 'unable_to_find_enemies_pull_skipped_details' => '', + 'unable_to_find_awakened_obelisks' => '', + 'unable_to_find_awakened_obelisk_different_floor' => '', + 'unable_to_decode_mdt_import_string' => '', + 'unable_to_validate_mdt_import_string' => '', + ], + ], + ], + 'npcservice' => [ 'all_dungeons' => '', ], + 'combatlogservice' => [ + 'analyze_combat_log' => [ + 'verify_error' => '', + 'processing_error' => '', + ], + ], ]; diff --git a/lang/de_DE/specializations.php b/lang/de_DE/specializations.php index 52a880fa7a..2fcced3256 100644 --- a/lang/de_DE/specializations.php +++ b/lang/de_DE/specializations.php @@ -24,7 +24,7 @@ ], 'hunter' => [ 'beast_mastery' => '', - 'marksman' => '', + 'marksmanship' => '', 'survival' => '', ], 'mage' => [ diff --git a/lang/de_DE/view_admin.php b/lang/de_DE/view_admin.php index 55af302dd4..6a13b2b04b 100644 --- a/lang/de_DE/view_admin.php +++ b/lang/de_DE/view_admin.php @@ -8,6 +8,8 @@ 'header_new' => '', 'header_edit' => '', 'active' => '', + 'raid' => '', + 'heatmap_enabled' => '', 'speedrun_enabled' => '', 'speedrun_difficulty_10_man_enabled' => '', 'speedrun_difficulty_25_man_enabled' => '', @@ -242,8 +244,10 @@ 'header_edit' => '', 'version' => '', 'title' => '', + 'backup_db' => '', 'silent' => '', 'spotlight' => '', + 'released' => '', 'changelog' => '', 'description' => '', 'ticket_nr' => '', @@ -392,6 +396,18 @@ 'paste_your_mdt_export_string' => '', 'submit' => '', ], + 'list' => [ + 'title' => '', + 'header' => '', + 'copy_mdt_string' => '', + 'table_header' => [ + 'id' => '', + 'error' => '', + 'import_string' => '', + 'date' => '', + 'actions' => '', + ], + ], 'dungeonmappinghash' => [ 'title' => '', 'header' => '', @@ -431,6 +447,7 @@ 'subheader_mdt' => '', 'view_mdt_string' => '', 'view_mdt_string_as_dungeonroute' => '', + 'list_mdt_strings' => '', 'view_dungeonroute_as_mdt_string' => '', 'view_mdt_diff' => '', 'view_dungeon_mapping_hash' => '', @@ -482,16 +499,18 @@ ], 'user' => [ 'list' => [ - 'title' => '', - 'header' => '', - 'table_header_id' => '', - 'table_header_name' => '', - 'table_header_email' => '', - 'table_header_routes' => '', - 'table_header_roles' => '', - 'table_header_registered' => '', - 'table_header_actions' => '', - 'table_header_patreons' => '', + 'title' => '', + 'header' => '', + 'table_header_id' => '', + 'table_header_name' => '', + 'table_header_email' => '', + 'table_header_routes' => '', + 'table_header_roles' => '', + 'table_header_registered' => '', + 'table_header_actions' => '', + 'table_header_patreons' => '', + 'ip_addresses_header' => '', + 'ip_addresses_cloudflare_link' => '', ], ], 'userreport' => [ diff --git a/lang/de_DE/view_common.php b/lang/de_DE/view_common.php index 03e72d42dc..b69e7673a1 100644 --- a/lang/de_DE/view_common.php +++ b/lang/de_DE/view_common.php @@ -13,12 +13,16 @@ 'next_week' => '', 'new' => '', ], + 'gridtabs' => [ + 'raid' => '', + ], 'select' => [ 'dungeon' => '', 'all' => '', 'all_dungeons' => '', 'all_expansion_dungeons' => '', 'seasons' => '', + 'raid' => '', 'siege_of_boralus_warning' => '', ], ], @@ -41,6 +45,8 @@ 'updated_at' => '', 'report' => '', 'refresh_thumbnail' => '', + 'dominant_affix' => '', + 'seasonal_affix' => '', ], 'cardlist' => [ 'no_dungeonroutes' => '', @@ -204,27 +210,28 @@ ], ], 'layout' => [ - 'footer' => [ - 'developer' => '', - 'api_documentation' => '', - 'keystone_guru' => '', - 'changelog' => '', - 'changelog_new' => '', - 'credits' => '', - 'about' => '', - 'external' => '', - 'patreon' => '', - 'discord' => '', - 'github' => '', - 'legal' => '', - 'terms_of_service' => '', - 'privacy_policy' => '', - 'cookie_policy' => '', - 'trademark' => '', - 'trademark_footer' => '', - 'social' => '', - ], - 'header' => [ + 'footer' => [ + 'developer' => '', + 'api_documentation' => '', + 'api_documentation_internal_team' => '', + 'keystone_guru' => '', + 'changelog' => '', + 'changelog_new' => '', + 'credits' => '', + 'about' => '', + 'external' => '', + 'patreon' => '', + 'discord' => '', + 'github' => '', + 'legal' => '', + 'terms_of_service' => '', + 'privacy_policy' => '', + 'cookie_policy' => '', + 'trademark' => '', + 'trademark_footer' => '', + 'social' => '', + ], + 'header' => [ 'toggle_navigation_title' => '', 'create_route' => '', 'search' => '', @@ -234,25 +241,30 @@ 'affixes' => '', 'new' => '', ], - 'navuser' => [ - 'login' => '', - 'register' => '', - 'telescope' => '', - 'tools' => '', - 'view_releases' => '', - 'view_expansions' => '', - 'view_dungeons' => '', - 'view_npcs' => '', - 'view_spells' => '', - 'view_users' => '', - 'view_user_reports' => '', - 'my_routes' => '', - 'my_favorites' => '', - 'my_tags' => '', - 'my_teams' => '', - 'my_profile' => '', - 'account_settings' => '', - 'logout' => '', + 'nav' => [ + 'user' => [ + 'login' => '', + 'register' => '', + 'telescope' => '', + 'tools' => '', + 'view_releases' => '', + 'view_expansions' => '', + 'view_dungeons' => '', + 'view_npcs' => '', + 'view_spells' => '', + 'view_users' => '', + 'view_user_reports' => '', + 'my_routes' => '', + 'my_favorites' => '', + 'my_tags' => '', + 'my_teams' => '', + 'my_profile' => '', + 'account_settings' => '', + 'logout' => '', + ], + 'uploadlogs' => [ + 'upload_logs' => '', + ], ], ], 'maps' => [ @@ -303,32 +315,50 @@ 'report_an_issue' => '', ], 'heatmapsearch' => [ - 'settings_title' => '', - 'enabled' => '', - 'disabled' => '', - 'event_type' => '', - 'data_type' => '', - 'data_type_title' => '', - 'filter' => '', - 'loading' => '', - 'key_level' => '', - 'affixes' => '', - 'affixes_title' => '', - 'affixes_selected' => '', - 'weekly_affix_groups' => '', - 'weekly_affix_groups_title' => '', - 'date_range' => '', - 'date_range_from' => '', - 'date_range_to' => '', - 'duration' => '', - 'data' => [ - 'dungeon_routes' => '', + 'settings_title' => '', + 'enabled' => '', + 'disabled' => '', + 'event_type' => '', + 'data_type' => '', + 'npc_death_alt' => '', + 'player_death_alt' => '', + 'bloodlust_alt' => '', + 'data_type_title' => '', + 'filter' => '', + 'key_level' => '', + 'item_level' => '', + 'player_deaths' => '', + 'affixes' => '', + 'affixes_title' => '', + 'affixes_selected' => '', + 'weekly_affix_groups' => '', + 'specializations' => '', + 'date_range' => '', + 'date_range_from' => '', + 'date_range_to' => '', + 'duration' => '', + 'advanced_options' => '', + 'advanced_option' => [ + 'min_samples_required' => '', + 'min_samples_required_title' => '', + ], + 'heat_options' => '', + 'heat_option' => [ + 'min_opacity' => '', + 'max_zoom' => '', + 'max' => '', + 'radius' => '', + 'blur' => '', + 'gradient' => '', + 'pane' => '', ], ], 'header' => [ 'toggle_navigation' => '', 'stop' => '', 'start' => '', + 'dominant_affix' => '', + 'seasonal_affix' => '', 'live_session_expires_in' => '', 'edit_route' => '', 'view_route' => '', @@ -337,6 +367,8 @@ 'simulate_route' => '', 'edit_route_settings' => '', 'edit_mapping_version' => '', + 'admin_header_title' => '', + 'explore_header_title' => '', 'share' => '', 'start_live_session' => '', 'start_live_session_paragraph_1' => '', @@ -395,13 +427,18 @@ 'new_mapping_version_header_title' => '', 'new_mapping_version_header_description' => '', - 'explore_header_title' => '', - 'admin_header_title' => '', 'route' => '', ], ], 'modal' => [ + 'dungeonroute' => [ + 'removed' => [ + 'title' => '', + 'description' => '', + 'back_to_home' => '', + ], + ], 'userreport' => [ 'dungeonroute' => [ 'report_route' => '', @@ -475,55 +512,69 @@ 'copy_to_clipboard' => '', ], 'simulate' => [ - 'intro' => '', - 'title' => '', - 'key_level' => '', - 'key_level_title' => '', - 'shrouded_bounty_type' => '', - 'shrouded_bounty_type_title' => '', - 'shrouded_bounty_types' => [ - 'none' => '', - 'crit' => '', - 'haste' => '', - 'mastery' => '', - 'vers' => '', - ], - 'affixes' => '', - 'affixes_title' => '', - 'affixes_map' => [ - 'fortified' => '', - 'tyrannical' => '', - ], - 'simulate_thundering_clear_seconds' => '', - 'simulate_thundering_clear_seconds_title' => '', - 'bloodlust' => '', - 'bloodlust_title' => '', - 'arcane_intellect' => '', - 'power_word_fortitude' => '', - 'battle_shout' => '', - 'mystic_touch' => '', - 'chaos_brand' => '', - 'hp_percent' => '', - 'hp_percent_title' => '', - 'bloodlust_per_pull' => '', - 'bloodlust_per_pull_title' => '', - 'ranged_pull_compensation_yards' => '', - 'ranged_pull_compensation_yards_title' => '', - 'use_mounts' => '', - 'use_mounts_title' => '', - 'get_simulationcraft_string' => '', - 'simulationcraft_string' => '', - 'loading' => '', - 'copy_to_clipboard' => '', + 'intro' => '', + 'title' => '', + 'get_simulationcraft_string' => '', + 'simulationcraft_string' => '', + 'loading' => '', + 'copy_to_clipboard' => '', ], 'simulateoptions' => [ + 'default' => [ + + 'key_level' => '', + 'key_level_title' => '', + 'shrouded_bounty_type' => '', + 'shrouded_bounty_type_title' => '', + 'shrouded_bounty_types' => [ + 'none' => '', + 'crit' => '', + 'haste' => '', + 'mastery' => '', + 'vers' => '', + ], + 'affixes' => '', + 'affixes_title' => '', + 'affixes_map' => [ + 'fortified' => '', + 'tyrannical' => '', + ], + 'simulate_thundering_clear_seconds' => '', + 'simulate_thundering_clear_seconds_title' => '', + 'raid_buffs_title' => '', + 'raid_buffs' => '', + 'raid_buffs_map' => [ + 'bloodlust' => '', + 'arcane_intellect' => '', + 'power_word_fortitude' => '', + 'mark_of_the_wild' => '', + 'battle_shout' => '', + 'mystic_touch' => '', + 'chaos_brand' => '', + 'skyfury' => '', + 'hunters_mark' => '', + 'power_infusion' => '', + 'bleeding' => '', + ], + 'hp_percent' => '', + 'hp_percent_title' => '', + 'bloodlust_per_pull' => '', + 'bloodlust_per_pull_title' => '', + ], 'advanced' => [ - 'patreon_link_text' => '', - 'patreon_only' => '', - 'advanced_options' => '', - 'description' => '', + 'ranged_pull_compensation_yards' => '', + 'ranged_pull_compensation_yards_title' => '', + 'use_mounts' => '', + 'use_mounts_title' => '', + 'patreon_link_text' => '', + 'patreon_only' => '', + 'advanced_options' => '', + 'description' => '', ], ], + 'uploadlogs' => [ + 'title' => '', + ], ], 'release' => [ 'release' => [ diff --git a/lang/de_DE/view_dungeon.php b/lang/de_DE/view_dungeon.php index d709c7e770..2b3fa7ccdb 100644 --- a/lang/de_DE/view_dungeon.php +++ b/lang/de_DE/view_dungeon.php @@ -2,10 +2,18 @@ return [ 'explore' => [ - 'list' => [ - 'title' => '', - 'header' => '', - 'heatmap_available' => '', + 'gameversion' => [ + 'list' => [ + 'title' => '', + 'header' => '', + 'heatmap_available' => '', + ], + 'embed' => [ + 'title' => '', + 'any' => '', + 'select_floor' => '', + 'view_heatmap_fullscreen' => '', + ], ], ], ]; diff --git a/lang/de_DE/view_team.php b/lang/de_DE/view_team.php index a201c37cd5..c449aa8c63 100644 --- a/lang/de_DE/view_team.php +++ b/lang/de_DE/view_team.php @@ -1,36 +1,49 @@ [ - 'title' => '', - 'overview' => '', - 'routes' => '', - 'members' => '', - 'team_tags' => '', - 'team_details' => '', - - 'menu_title' => '', - 'to_team_list' => '', - 'team_header' => '', - 'icon_image_alt' => '', - 'route_list' => '', - 'add_route' => '', - 'add_route_no_moderator' => '', - 'stop_adding_routes' => '', + 'edittabs' => [ + 'details' => [ + 'title' => '', + ], + 'members' => [ + 'title' => '', - 'invite_new_members' => '', - 'invite_code_share_warning' => '', - 'copy_to_clipboard_title' => '', - 'refresh_invite_link_title' => '', + 'invite_new_members' => '', + 'invite_code_share_warning' => '', + 'copy_to_clipboard_title' => '', + 'refresh_invite_link_title' => '', - 'ad_free_giveaway_description_not_available' => '', - 'ad_free_giveaway_description_available' => '', + 'default_role' => '', - 'default_role' => '', + 'ad_free_giveaway_description_not_available' => '', + 'ad_free_giveaway_description_available' => '', + ], + 'overview' => [ + 'title' => '', + ], + 'routepublishing' => [ + 'title' => '', + ], + 'routes' => [ + 'title' => '', + 'add_route' => '', + 'add_route_no_moderator' => '', + 'stop_adding_routes' => '', + ], + 'tags' => [ + 'title' => '', + 'description' => '', + ], - 'team_tags_description' => '', ], - 'invite' => [ + 'edit' => [ + 'title' => '', + 'menu_title' => '', + 'to_team_list' => '', + 'team_header' => '', + 'icon_image_alt' => '', + ], + 'invite' => [ 'linkpreview_title' => '', 'linkpreview_description' => '', @@ -52,7 +65,7 @@ 'invite_not_found' => '', 'back_to_homepage' => '', ], - 'list' => [ + 'list' => [ 'title' => '', 'header' => '', 'create_team' => '', @@ -60,7 +73,7 @@ 'table_header_members' => '', 'table_header_routes' => '', ], - 'new' => [ + 'new' => [ 'title' => '', 'header' => '', ], diff --git a/lang/en_US/enemies.php b/lang/en_US/enemies.php new file mode 100644 index 0000000000..a3375f11d2 --- /dev/null +++ b/lang/en_US/enemies.php @@ -0,0 +1,17 @@ + [ + 'beguiling' => 'Beguiling', + 'awakened' => 'Awakened', + 'inspiring' => 'Inspiring', + 'prideful' => 'Prideful', + 'tormented' => 'Tormented', + 'encrypted' => 'Encrypted', + 'mdt_placeholder' => 'MDT Placeholder', + 'shrouded' => 'Shrouded', + 'shrouded_zul_gamux' => "Shrouded (Zul'gamux)", + 'no_shrouded' => 'No Shrouded', + ], +]; + diff --git a/lang/en_US/js.php b/lang/en_US/js.php index 79b0af2f3c..471a2c342c 100644 --- a/lang/en_US/js.php +++ b/lang/en_US/js.php @@ -27,6 +27,7 @@ 'is_mdt_label' => 'MDT', 'mdt_id_label' => 'MDT_ID', 'mdt_npc_id_label' => 'MDT_NPC_ID', + 'enemy_exclusive_enemy_id_label' => 'Exclusive enemy ID', 'preset_label' => 'Preset', 'add_label' => 'Add', 'color_label' => 'Color', diff --git a/lang/ho_HO/breadcrumbs.php b/lang/ho_HO/breadcrumbs.php index 8b0a1ef002..3341c54752 100644 --- a/lang/ho_HO/breadcrumbs.php +++ b/lang/ho_HO/breadcrumbs.php @@ -8,8 +8,11 @@ 'changelog' => 'Hodor', 'routes' => 'Hodor', 'routes_expansion' => 'Hodor', - 'dungeon' => [ - 'explore' => 'Hodor', + 'gameversion' => [ + 'update' => 'Hodor', + 'dungeon' => [ + 'explore' => 'Hodor', + ], ], 'dungeonroute' => [ 'new' => 'Hodor', diff --git a/lang/ho_HO/combatlogeventtypes.php b/lang/ho_HO/combatlogeventtypes.php index 0c772b7a16..8ae6eb1aa1 100644 --- a/lang/ho_HO/combatlogeventtypes.php +++ b/lang/ho_HO/combatlogeventtypes.php @@ -1,7 +1,7 @@ 'Hodor', 'player_death' => 'Hodor', - 'enemy_killed' => 'Hodor', - 'spell_cast' => 'Hodor', + 'player_spell' => 'Hodor', ]; diff --git a/lang/ho_HO/dungeons.php b/lang/ho_HO/dungeons.php index ac6cfe4c86..64d798064e 100644 --- a/lang/ho_HO/dungeons.php +++ b/lang/ho_HO/dungeons.php @@ -2,11 +2,13 @@ return [ - 'difficulty' => [ + 'difficulty' => [ '1' => 'Hodor', '2' => 'Hodor', + '3' => 'Hodor', + '4' => 'Hodor', ], - 'classic' => [ + 'classic' => [ 'blackfathom_deeps' => [ 'name' => 'Hodor', 'floors' => [ @@ -104,6 +106,18 @@ 'razorfen_kraul' => 'Hodor', ], ], + 'ruins_of_ahnqiraj_sod' => [ + 'name' => 'Hodor', + 'floors' => [ + 'ruins_of_ahnqiraj' => 'Hodor', + ], + ], + 'ruins_of_ahnqiraj_classic' => [ + 'name' => 'Hodor', + 'floors' => [ + 'ruins_of_ahnqiraj' => 'Hodor', + ], + ], 'scarlet_monastery_armory' => [ 'name' => 'Hodor', 'floors' => [ @@ -156,6 +170,22 @@ 'the_gauntlet' => 'Hodor', ], ], + 'temple_of_ahnqiraj_sod' => [ + 'name' => 'Hodor', + 'floors' => [ + 'the_hive_undergrounds' => 'Hodor', + 'the_temple_gates' => 'Hodor', + 'vault_of_cthun' => 'Hodor', + ], + ], + 'temple_of_ahnqiraj_classic' => [ + 'name' => 'Hodor', + 'floors' => [ + 'the_hive_undergrounds' => 'Hodor', + 'the_temple_gates' => 'Hodor', + 'vault_of_cthun' => 'Hodor', + ], + ], 'the_stockade' => [ 'name' => 'Hodor', 'floors' => [ @@ -202,7 +232,7 @@ 'zulgurub' => [ 'name' => 'Hodor', 'floors' => [ - 'zul_gurub' => 'Hodor', + 'zulgurub' => 'Hodor', ], ], 'onyxias_lair_classic' => [ @@ -217,22 +247,13 @@ 'molten_core' => 'Hodor', ], ], - 'blackwinglair' => [ - 'name' => 'Hodor', - 'floors' => [ - 'blackwinglair' => 'Hodor', - ], - ], - 'ruinsofahnqiraj' => [ + 'blackwinglair' => [ 'name' => 'Hodor', 'floors' => [ - 'ruinsofahnqiraj' => 'Hodor', - ], - ], - 'templeofahnqiraj' => [ - 'name' => 'Hodor', - 'floors' => [ - 'templeofahnqiraj' => 'Hodor', + 'dragonmaw_garrison' => 'Hodor', + 'halls_of_strife' => 'Hodor', + 'crimson_laboratories' => 'Hodor', + 'nefarians_lair' => 'Hodor', ], ], 'naxxramas_classic' => [ @@ -247,7 +268,7 @@ ], ], ], - 'wotlk' => [ + 'wotlk' => [ 'ahn_kahet_the_old_kingdom' => [ 'name' => 'Hodor', 'floors' => [ @@ -426,7 +447,7 @@ ], ], ], - 'cata' => [ + 'cata' => [ 'grim_batol' => [ 'name' => 'Hodor', 'floors' => [ @@ -447,8 +468,92 @@ 'throne_of_the_tides' => 'Hodor', ], ], + 'firelands' => [ + 'name' => 'Hodor', + 'floors' => [ + 'firelands' => 'Hodor', + 'anvil_of_conflagration' => 'Hodor', + 'sulfuron_keep' => 'Hodor', + ], + ], + 'dragon_soul' => [ + 'name' => 'Hodor', + 'floors' => [ + 'the_dragonblight' => 'Hodor', + 'maw_of_go_rath' => 'Hodor', + 'maw_of_shu_ma' => 'Hodor', + 'eye_of_eternity' => 'Hodor', + 'skyfire_airship' => 'Hodor', + 'spine_of_deathwing' => 'Hodor', + 'the_maelstrom' => 'Hodor', + ], + ], ], - 'mop' => [ + 'mop' => [ + 'gate_of_the_setting_sun' => [ + 'name' => 'Hodor', + 'floors' => [ + 'gate_of_the_setting_sun' => 'Hodor', + 'gate_watch_tower' => 'Hodor', + ], + ], + 'mogu_shan_palace' => [ + 'name' => 'Hodor', + 'floors' => [ + 'the_crimson_assembly_hall' => 'Hodor', + 'vaults_of_kings_past' => 'Hodor', + 'throne_of_ancient_conquerors' => 'Hodor', + ], + ], + 'scarlet_halls_mop' => [ + 'name' => 'Hodor', + 'floors' => [ + 'training_grounds' => 'Hodor', + 'athenaeum' => 'Hodor', + ], + ], + 'scarlet_monastery_mop' => [ + 'name' => 'Hodor', + 'floors' => [ + 'forlorn_cloister' => 'Hodor', + 'crusaders_chapel' => 'Hodor', + ], + ], + 'scholomance_mop' => [ + 'name' => 'Hodor', + 'floors' => [ + 'the_reliquary' => 'Hodor', + 'chamber_of_summoning' => 'Hodor', + 'the_upper_study' => 'Hodor', + 'headmasters_study' => 'Hodor', + ], + ], + 'shado_pan_monastery' => [ + 'name' => 'Hodor', + 'floors' => [ + 'shado_pan_monastery' => 'Hodor', + 'cloudstrike_dojo' => 'Hodor', + 'snowdrift_dojo' => 'Hodor', + 'sealed_chambers' => 'Hodor', + ], + ], + 'siege_of_niu_zao_temple' => [ + 'name' => 'Hodor', + 'floors' => [ + 'siege_of_niu_zao_temple' => 'Hodor', + 'the_hollowed_out_tree' => 'Hodor', + 'upper_tree_ring' => 'Hodor', + ], + ], + 'stormstout_brewery' => [ + 'name' => 'Hodor', + 'floors' => [ + 'grain_cellar' => 'Hodor', + 'stormstout_brewhall' => 'Hodor', + 'the_great_wheel' => 'Hodor', + 'the_tasting_room' => 'Hodor', + ], + ], 'temple_of_the_jade_serpent' => [ 'name' => 'Hodor', 'floors' => [ @@ -457,7 +562,7 @@ ], ], ], - 'wod' => [ + 'wod' => [ 'auchindoun' => [ 'name' => 'Hodor', 'floors' => [ @@ -501,7 +606,7 @@ ], ], ], - 'legion' => [ + 'legion' => [ 'arcway' => [ 'name' => 'Hodor', 'floors' => [ @@ -609,7 +714,7 @@ ], ], ], - 'bfa' => [ + 'bfa' => [ 'atal_dazar' => [ 'name' => 'Hodor', 'floors' => [ @@ -715,7 +820,7 @@ ], ], ], - 'sl' => [ + 'sl' => [ 'de_other_side' => [ 'name' => 'Hodor', 'floors' => [ @@ -799,7 +904,7 @@ ], ], ], - 'df' => [ + 'df' => [ 'algeth_ar_academy' => [ 'name' => 'Hodor', 'floors' => [ @@ -889,7 +994,7 @@ ], ], ], - 'tww' => [ + 'tww' => [ 'ara_kara_city_of_echoes' => [ 'name' => 'Hodor', 'floors' => [ diff --git a/lang/ho_HO/enemies.php b/lang/ho_HO/enemies.php new file mode 100644 index 0000000000..87a74594f8 --- /dev/null +++ b/lang/ho_HO/enemies.php @@ -0,0 +1,8 @@ + [ + 'beguiling' => 'Hodor', + + ] +]; diff --git a/lang/ho_HO/exceptions.php b/lang/ho_HO/exceptions.php index cd5c543ee1..4f37ef08cb 100644 --- a/lang/ho_HO/exceptions.php +++ b/lang/ho_HO/exceptions.php @@ -7,6 +7,7 @@ 'api_route_not_found' => 'Hodor', 'internal_server_error' => 'Hodor', 'unauthenticated' => 'Hodor', + 'too_many_requests' => 'Hodor', ], ]; diff --git a/lang/ho_HO/gameserverregions.php b/lang/ho_HO/gameserverregions.php index dc4e813b2f..f3ff689af9 100644 --- a/lang/ho_HO/gameserverregions.php +++ b/lang/ho_HO/gameserverregions.php @@ -1,11 +1,10 @@ 'Hodor', - 'eu' => 'Hodor', - 'cn' => 'Hodor', - 'tw' => 'Hodor', - 'kr' => 'Hodor', - + 'us' => 'Hodor', + 'eu' => 'Hodor', + 'cn' => 'Hodor', + 'tw' => 'Hodor', + 'kr' => 'Hodor', + 'world' => 'Hodor', ]; diff --git a/lang/ho_HO/gameversions.php b/lang/ho_HO/gameversions.php index 9f782fb868..15be4eb721 100644 --- a/lang/ho_HO/gameversions.php +++ b/lang/ho_HO/gameversions.php @@ -17,4 +17,8 @@ 'name' => 'Hodor', 'description' => 'Hodor', ], + 'cata' => [ + 'name' => 'Hodor', + 'description' => 'Hodor', + ], ]; diff --git a/lang/ho_HO/js.php b/lang/ho_HO/js.php index edb688e09f..53e4a55c6b 100644 --- a/lang/ho_HO/js.php +++ b/lang/ho_HO/js.php @@ -85,6 +85,7 @@ 'pull_workbench_remove_kill_area_label' => 'Hodor', 'pull_workbench_pull_description_label' => 'Hodor', 'pull_workbench_pull_supported_tags_label' => 'Hodor', + 'pull_workbench_pull_description_length' => 'Hodor', 'kill_zone_has_boss_label' => 'Hodor', 'kill_zone_has_awakened_label' => 'Hodor', 'kill_zone_has_prideful_label' => 'Hodor', @@ -168,6 +169,7 @@ 'edit_label' => 'Hodor', 'make_label' => 'Hodor', 'delete_user_label' => 'Hodor', + 'view_ip_addresses_label' => 'Hodor', 'grant_all_benefits_label' => 'Hodor', 'patreon_benefits_manually_granted_label' => 'Hodor', 'import_notes_label' => 'Hodor', @@ -267,7 +269,7 @@ 'mapicon_teeming_select_default_label' => 'Hodor', 'map_icon_faction_label' => 'Hodor', 'map_icon_teeming_label' => 'Hodor', - 'map_icon_team_id_label' => 'Hodor', + 'map_icon_show_across_team_label' => 'Hodor', 'map_icon_permanent_tooltip_label' => 'Hodor', 'map_icon_map_icon_type_id_label' => 'Hodor', 'map_icon_comment_label' => 'Hodor', @@ -340,11 +342,13 @@ 'dungeonfloorswitchmarker_linked_dungeon_floor_switch_marker_id_label' => 'Hodor', 'dungeonfloorswitchmarker_direction_label' => 'Hodor', 'dungeonfloorswitchmarker_direction_select_default_label' => 'Hodor', + 'dungeonfloorswitchmarker_to_label' => 'Hodor', 'dungeonfloorswitchmarker_go_to_label' => 'Hodor', 'dungeonfloorswitchmarker_unknown_label' => 'Hodor', 'mountablearea_faction_label' => 'Hodor', 'mountablearea_teeming_label' => 'Hodor', 'mountablearea_speed_label' => 'Hodor', + 'mountablearea_tooltip_label' => 'Hodor', 'floorunion_target_floor_id_select_default_label' => 'Hodor', 'floorunion_target_floor_id_label' => 'Hodor', 'floorunion_size_label' => 'Hodor', @@ -411,6 +415,7 @@ 'connected_title_label' => 'Hodor', 'members_title_label' => 'Hodor', 'member_self_title_label' => 'Hodor', + 'echo_object_changed_notification' => 'Hodor', 'echo_object_deleted_notification' => 'Hodor', 'connected_users_hide_cursors_label' => 'Hodor', 'connected_users_show_cursors_label' => 'Hodor', @@ -431,7 +436,11 @@ 'filter_image_select_dungeons_header' => 'Hodor', 'filter_input_select_weekly_affix_groups_header' => 'Hodor', 'filter_input_affix_group_header' => 'Hodor', - 'filter_input_key_level_header' => 'Hodor', + 'filter_input_select_specializations_header' => 'Hodor', + 'filter_input_key_level_header' => 'Hodor', + 'filter_input_min_samples_required_header' => 'Hodor', + 'filter_input_item_level_header' => 'Hodor', + 'filter_input_player_deaths_header' => 'Hodor', 'filter_input_rating_header' => 'Hodor', 'filter_input_title_header' => 'Hodor', 'filter_input_expansion_header' => 'Hodor', @@ -439,6 +448,7 @@ 'filter_input_user_header' => 'Hodor', 'filter_input_event_type_header' => 'Hodor', 'filter_input_data_type_header' => 'Hodor', + 'filter_input_region_header' => 'Hodor', 'filter_input_date_header' => 'Hodor', 'filter_input_date_from_header' => 'Hodor', 'filter_input_date_to_header' => 'Hodor', @@ -450,4 +460,6 @@ 'toggle_spell_visibility_success' => 'Hodor', 'toggle_spell_visibility_error' => 'Hodor', 'week_label' => 'Hodor', + 'loading_label' => 'Hodor', + 'run_count_label' => 'Hodor', ]; diff --git a/lang/ho_HO/logic.php b/lang/ho_HO/logic.php index fb5551f254..ca5d8ed549 100644 --- a/lang/ho_HO/logic.php +++ b/lang/ho_HO/logic.php @@ -2,49 +2,4 @@ return [ - 'mdt' => [ - 'io' => [ - 'export_string' => [ - 'category' => [ - 'pull' => 'Hodor', - 'title' => 'Hodor', - 'map_icon' => 'Hodor', - ], - 'unable_to_find_mdt_enemy_for_kg_enemy' => 'Hodor', - 'unable_to_find_mdt_enemy_for_kg_enemy_details' => 'Hodor', - 'unable_to_find_mdt_enemy_for_kg_caused_empty_pull' => 'Hodor', - 'route_title_contains_non_ascii_char_bug' => 'Hodor', - 'route_title_contains_non_ascii_char_bug_details' => 'Hodor', - 'map_icon_contains_non_ascii_char_bug' => 'Hodor', - 'map_icon_contains_non_ascii_char_bug_details' => 'Hodor', - ], - 'import_string' => [ - 'category' => [ - 'awakened_obelisks' => 'Hodor', - 'pulls' => 'Hodor', - 'notes' => 'Hodor', - 'pull' => 'Hodor', - 'object' => 'Hodor', - ], - 'object_out_of_bounds' => 'Hodor', - 'limit_reached_pulls' => 'Hodor', - 'limit_reached_brushlines' => 'Hodor', - 'limit_reached_paths' => 'Hodor', - 'limit_reached_notes' => 'Hodor', - 'unable_to_find_floor_for_object' => 'Hodor', - 'unable_to_find_floor_for_object_details' => 'Hodor', - 'unable_to_find_mdt_enemy_for_clone_index' => 'Hodor', - 'unable_to_find_mdt_enemy_for_clone_index_details' => 'Hodor', - 'unable_to_find_kg_equivalent_for_mdt_enemy' => 'Hodor', - 'unable_to_find_kg_equivalent_for_mdt_enemy_details' => 'Hodor', - 'unable_to_find_awakened_enemy_for_final_boss' => 'Hodor', - 'unable_to_find_awakened_enemy_for_final_boss_details' => 'Hodor', - 'unable_to_find_enemies_pull_skipped' => 'Hodor', - 'unable_to_find_enemies_pull_skipped_details' => 'Hodor', - 'unable_to_find_awakened_obelisks' => 'Hodor', - 'unable_to_find_awakened_obelisk_different_floor' => 'Hodor', - ], - ], - ], - ]; diff --git a/lang/ho_HO/mapicontypes.php b/lang/ho_HO/mapicontypes.php index 750da8ca08..29423e5812 100644 --- a/lang/ho_HO/mapicontypes.php +++ b/lang/ho_HO/mapicontypes.php @@ -96,5 +96,11 @@ 'class_evoker' => 'Hodor', 'chest' => 'Hodor', 'chest_locked' => 'Hodor', + 'mists_statshroom' => 'Hodor', + 'mists_toughshroom' => 'Hodor', + 'mists_overgrown_roots' => 'Hodor', + 'cot_shadecaster' => 'Hodor', + 'sv_imbued_iron_energy' => 'Hodor', + 'ara_kara_silk_wrap' => 'Hodor', ]; diff --git a/lang/ho_HO/mapping.php b/lang/ho_HO/mapping.php index 390eda41a8..63cc87e2d4 100644 --- a/lang/ho_HO/mapping.php +++ b/lang/ho_HO/mapping.php @@ -30,6 +30,7 @@ 'mists_of_tirna_scithe' => [ 'start' => 'Hodor', 'brambles' => 'Hodor', + 'overgrown_roots' => 'Hodor', 'depleted_anima_seed' => 'Hodor', 'map_missing_wall' => 'Hodor', 'savory_statshroom' => 'Hodor', @@ -84,6 +85,11 @@ 'exit' => 'Hodor', ], ], + 'tww' => [ + 'the_stonevault' => [ + 'imbued_iron_energy' => 'Hodor', + ], + ] ], ]; diff --git a/lang/ho_HO/releasechangelogcategories.php b/lang/ho_HO/releasechangelogcategories.php index 4df409235c..34b2022fd7 100644 --- a/lang/ho_HO/releasechangelogcategories.php +++ b/lang/ho_HO/releasechangelogcategories.php @@ -14,5 +14,6 @@ 'simulation_craft_changes' => 'Hodor', 'auto_route_changes' => 'Hodor', 'api_changes' => 'Hodor', + 'heatmap_changes' => 'Hodor', ]; diff --git a/lang/ho_HO/services.php b/lang/ho_HO/services.php index bbea4f5734..60832ab886 100644 --- a/lang/ho_HO/services.php +++ b/lang/ho_HO/services.php @@ -2,8 +2,61 @@ return [ - 'npcservice' => [ + + 'mdt' => [ + 'io' => [ + 'export_string' => [ + 'category' => [ + 'pull' => 'Hodor', + 'title' => 'Hodor', + 'map_icon' => 'Hodor', + ], + 'unable_to_find_mdt_enemy_for_kg_enemy' => 'Hodor', + 'unable_to_find_mdt_enemy_for_kg_enemy_details' => 'Hodor', + 'unable_to_find_mdt_enemy_for_kg_caused_empty_pull' => 'Hodor', + 'route_title_contains_non_ascii_char_bug' => 'Hodor', + 'route_title_contains_non_ascii_char_bug_details' => 'Hodor', + 'map_icon_contains_non_ascii_char_bug' => 'Hodor', + 'map_icon_contains_non_ascii_char_bug_details' => 'Hodor', + ], + 'import_string' => [ + 'category' => [ + 'awakened_obelisks' => 'Hodor', + 'pulls' => 'Hodor', + 'notes' => 'Hodor', + 'pull' => 'Hodor', + 'object' => 'Hodor', + ], + 'object_out_of_bounds' => 'Hodor', + 'limit_reached_pulls' => 'Hodor', + 'limit_reached_brushlines' => 'Hodor', + 'limit_reached_paths' => 'Hodor', + 'limit_reached_notes' => 'Hodor', + 'unable_to_find_floor_for_object' => 'Hodor', + 'unable_to_find_floor_for_object_details' => 'Hodor', + 'unable_to_find_mdt_enemy_for_clone_index' => 'Hodor', + 'unable_to_find_mdt_enemy_for_clone_index_details' => 'Hodor', + 'unable_to_find_kg_equivalent_for_mdt_enemy' => 'Hodor', + 'unable_to_find_kg_equivalent_for_mdt_enemy_details' => 'Hodor', + 'unable_to_find_awakened_enemy_for_final_boss' => 'Hodor', + 'unable_to_find_awakened_enemy_for_final_boss_details' => 'Hodor', + 'unable_to_find_enemies_pull_skipped' => 'Hodor', + 'unable_to_find_enemies_pull_skipped_details' => 'Hodor', + 'unable_to_find_awakened_obelisks' => 'Hodor', + 'unable_to_find_awakened_obelisk_different_floor' => 'Hodor', + 'unable_to_decode_mdt_import_string' => 'Hodor', + 'unable_to_validate_mdt_import_string' => 'Hodor', + ], + ], + ], + 'npcservice' => [ 'all_dungeons' => 'Hodor', ], + 'combatlogservice' => [ + 'analyze_combat_log' => [ + 'verify_error' => 'Hodor', + 'processing_error' => 'Hodor', + ], + ], ]; diff --git a/lang/ho_HO/specializations.php b/lang/ho_HO/specializations.php index 3b530fd9a9..2602768a7e 100644 --- a/lang/ho_HO/specializations.php +++ b/lang/ho_HO/specializations.php @@ -24,7 +24,7 @@ ], 'hunter' => [ 'beast_mastery' => 'Hodor', - 'marksman' => 'Hodor', + 'marksmanship' => 'Hodor', 'survival' => 'Hodor', ], 'mage' => [ diff --git a/lang/ho_HO/view_admin.php b/lang/ho_HO/view_admin.php index 5c3f9c1b16..64e1bb6f4e 100644 --- a/lang/ho_HO/view_admin.php +++ b/lang/ho_HO/view_admin.php @@ -8,6 +8,8 @@ 'header_new' => 'Hodor', 'header_edit' => 'Hodor', 'active' => 'Hodor', + 'raid' => 'Hodor', + 'heatmap_enabled' => 'Hodor', 'speedrun_enabled' => 'Hodor', 'speedrun_difficulty_10_man_enabled' => 'Hodor', 'speedrun_difficulty_25_man_enabled' => 'Hodor', @@ -242,8 +244,10 @@ 'header_edit' => 'Hodor', 'version' => 'Hodor', 'title' => 'Hodor', + 'backup_db' => 'Hodor', 'silent' => 'Hodor', 'spotlight' => 'Hodor', + 'released' => 'Hodor', 'changelog' => 'Hodor', 'description' => 'Hodor', 'ticket_nr' => 'Hodor', @@ -392,6 +396,18 @@ 'paste_your_mdt_export_string' => 'Hodor', 'submit' => 'Hodor', ], + 'list' => [ + 'title' => 'Hodor', + 'header' => 'Hodor', + 'copy_mdt_string' => 'Hodor', + 'table_header' => [ + 'id' => 'Hodor', + 'error' => 'Hodor', + 'import_string' => 'Hodor', + 'date' => 'Hodor', + 'actions' => 'Hodor', + ], + ], 'dungeonmappinghash' => [ 'title' => 'Hodor', 'header' => 'Hodor', @@ -431,6 +447,7 @@ 'subheader_mdt' => 'Hodor', 'view_mdt_string' => 'Hodor', 'view_mdt_string_as_dungeonroute' => 'Hodor', + 'list_mdt_strings' => 'Hodor', 'view_dungeonroute_as_mdt_string' => 'Hodor', 'view_mdt_diff' => 'Hodor', 'view_dungeon_mapping_hash' => 'Hodor', @@ -482,16 +499,18 @@ ], 'user' => [ 'list' => [ - 'title' => 'Hodor', - 'header' => 'Hodor', - 'table_header_id' => 'Hodor', - 'table_header_name' => 'Hodor', - 'table_header_email' => 'Hodor', - 'table_header_routes' => 'Hodor', - 'table_header_roles' => 'Hodor', - 'table_header_registered' => 'Hodor', - 'table_header_actions' => 'Hodor', - 'table_header_patreons' => 'Hodor', + 'title' => 'Hodor', + 'header' => 'Hodor', + 'table_header_id' => 'Hodor', + 'table_header_name' => 'Hodor', + 'table_header_email' => 'Hodor', + 'table_header_routes' => 'Hodor', + 'table_header_roles' => 'Hodor', + 'table_header_registered' => 'Hodor', + 'table_header_actions' => 'Hodor', + 'table_header_patreons' => 'Hodor', + 'ip_addresses_header' => 'Hodor', + 'ip_addresses_cloudflare_link' => 'Hodor', ], ], 'userreport' => [ diff --git a/lang/ho_HO/view_common.php b/lang/ho_HO/view_common.php index 365c7af842..79d33d461b 100644 --- a/lang/ho_HO/view_common.php +++ b/lang/ho_HO/view_common.php @@ -13,12 +13,16 @@ 'next_week' => 'Hodor', 'new' => 'Hodor', ], + 'gridtabs' => [ + 'raid' => 'Hodor', + ], 'select' => [ 'dungeon' => 'Hodor', 'all' => 'Hodor', 'all_dungeons' => 'Hodor', 'all_expansion_dungeons' => 'Hodor', 'seasons' => 'Hodor', + 'raid' => 'Hodor', 'siege_of_boralus_warning' => 'Hodor', ], ], @@ -41,6 +45,8 @@ 'updated_at' => 'Hodor', 'report' => 'Hodor', 'refresh_thumbnail' => 'Hodor', + 'dominant_affix' => 'Hodor', + 'seasonal_affix' => 'Hodor', ], 'cardlist' => [ 'no_dungeonroutes' => 'Hodor', @@ -204,27 +210,28 @@ ], ], 'layout' => [ - 'footer' => [ - 'developer' => 'Hodor', - 'api_documentation' => 'Hodor', - 'keystone_guru' => 'Hodor', - 'changelog' => 'Hodor', - 'changelog_new' => 'Hodor', - 'credits' => 'Hodor', - 'about' => 'Hodor', - 'external' => 'Hodor', - 'patreon' => 'Hodor', - 'discord' => 'Hodor', - 'github' => 'Hodor', - 'legal' => 'Hodor', - 'terms_of_service' => 'Hodor', - 'privacy_policy' => 'Hodor', - 'cookie_policy' => 'Hodor', - 'trademark' => 'Hodor', - 'trademark_footer' => 'Hodor', - 'social' => 'Hodor', - ], - 'header' => [ + 'footer' => [ + 'developer' => 'Hodor', + 'api_documentation' => 'Hodor', + 'api_documentation_internal_team' => 'Hodor', + 'keystone_guru' => 'Hodor', + 'changelog' => 'Hodor', + 'changelog_new' => 'Hodor', + 'credits' => 'Hodor', + 'about' => 'Hodor', + 'external' => 'Hodor', + 'patreon' => 'Hodor', + 'discord' => 'Hodor', + 'github' => 'Hodor', + 'legal' => 'Hodor', + 'terms_of_service' => 'Hodor', + 'privacy_policy' => 'Hodor', + 'cookie_policy' => 'Hodor', + 'trademark' => 'Hodor', + 'trademark_footer' => 'Hodor', + 'social' => 'Hodor', + ], + 'header' => [ 'toggle_navigation_title' => 'Hodor', 'create_route' => 'Hodor', 'search' => 'Hodor', @@ -234,25 +241,30 @@ 'affixes' => 'Hodor', 'new' => 'Hodor', ], - 'navuser' => [ - 'login' => 'Hodor', - 'register' => 'Hodor', - 'telescope' => 'Hodor', - 'tools' => 'Hodor', - 'view_releases' => 'Hodor', - 'view_expansions' => 'Hodor', - 'view_dungeons' => 'Hodor', - 'view_npcs' => 'Hodor', - 'view_spells' => 'Hodor', - 'view_users' => 'Hodor', - 'view_user_reports' => 'Hodor', - 'my_routes' => 'Hodor', - 'my_favorites' => 'Hodor', - 'my_tags' => 'Hodor', - 'my_teams' => 'Hodor', - 'my_profile' => 'Hodor', - 'account_settings' => 'Hodor', - 'logout' => 'Hodor', + 'nav' => [ + 'user' => [ + 'login' => 'Hodor', + 'register' => 'Hodor', + 'telescope' => 'Hodor', + 'tools' => 'Hodor', + 'view_releases' => 'Hodor', + 'view_expansions' => 'Hodor', + 'view_dungeons' => 'Hodor', + 'view_npcs' => 'Hodor', + 'view_spells' => 'Hodor', + 'view_users' => 'Hodor', + 'view_user_reports' => 'Hodor', + 'my_routes' => 'Hodor', + 'my_favorites' => 'Hodor', + 'my_tags' => 'Hodor', + 'my_teams' => 'Hodor', + 'my_profile' => 'Hodor', + 'account_settings' => 'Hodor', + 'logout' => 'Hodor', + ], + 'uploadlogs' => [ + 'upload_logs' => 'Hodor', + ], ], ], 'maps' => [ @@ -303,32 +315,50 @@ 'report_an_issue' => 'Hodor', ], 'heatmapsearch' => [ - 'settings_title' => 'Hodor', - 'enabled' => 'Hodor', - 'disabled' => 'Hodor', - 'event_type' => 'Hodor', - 'data_type' => 'Hodor', - 'data_type_title' => 'Hodor', - 'filter' => 'Hodor', - 'loading' => 'Hodor', - 'key_level' => 'Hodor', - 'affixes' => 'Hodor', - 'affixes_title' => 'Hodor', - 'affixes_selected' => 'Hodor', - 'weekly_affix_groups' => 'Hodor', - 'weekly_affix_groups_title' => 'Hodor', - 'date_range' => 'Hodor', - 'date_range_from' => 'Hodor', - 'date_range_to' => 'Hodor', - 'duration' => 'Hodor', - 'data' => [ - 'dungeon_routes' => 'Hodor', + 'settings_title' => 'Hodor', + 'enabled' => 'Hodor', + 'disabled' => 'Hodor', + 'event_type' => 'Hodor', + 'data_type' => 'Hodor', + 'npc_death_alt' => 'Hodor', + 'player_death_alt' => 'Hodor', + 'bloodlust_alt' => 'Hodor', + 'data_type_title' => 'Hodor', + 'filter' => 'Hodor', + 'key_level' => 'Hodor', + 'item_level' => 'Hodor', + 'player_deaths' => 'Hodor', + 'affixes' => 'Hodor', + 'affixes_title' => 'Hodor', + 'affixes_selected' => 'Hodor', + 'weekly_affix_groups' => 'Hodor', + 'specializations' => 'Hodor', + 'date_range' => 'Hodor', + 'date_range_from' => 'Hodor', + 'date_range_to' => 'Hodor', + 'duration' => 'Hodor', + 'advanced_options' => 'Hodor', + 'advanced_option' => [ + 'min_samples_required' => 'Hodor', + 'min_samples_required_title' => 'Hodor', + ], + 'heat_options' => 'Hodor', + 'heat_option' => [ + 'min_opacity' => 'Hodor', + 'max_zoom' => 'Hodor', + 'max' => 'Hodor', + 'radius' => 'Hodor', + 'blur' => 'Hodor', + 'gradient' => 'Hodor', + 'pane' => 'Hodor', ], ], 'header' => [ 'toggle_navigation' => 'Hodor', 'stop' => 'Hodor', 'start' => 'Hodor', + 'dominant_affix' => 'Hodor', + 'seasonal_affix' => 'Hodor', 'live_session_expires_in' => 'Hodor', 'edit_route' => 'Hodor', 'view_route' => 'Hodor', @@ -337,6 +367,8 @@ 'simulate_route' => 'Hodor', 'edit_route_settings' => 'Hodor', 'edit_mapping_version' => 'Hodor', + 'admin_header_title' => 'Hodor', + 'explore_header_title' => 'Hodor', 'share' => 'Hodor', 'start_live_session' => 'Hodor', 'start_live_session_paragraph_1' => 'Hodor', @@ -395,13 +427,18 @@ 'new_mapping_version_header_title' => 'Hodor', 'new_mapping_version_header_description' => 'Hodor', - 'explore_header_title' => 'Hodor', - 'admin_header_title' => 'Hodor', 'route' => 'Hodor', ], ], 'modal' => [ + 'dungeonroute' => [ + 'removed' => [ + 'title' => 'Hodor', + 'description' => 'Hodor', + 'back_to_home' => 'Hodor', + ], + ], 'userreport' => [ 'dungeonroute' => [ 'report_route' => 'Hodor', @@ -475,55 +512,69 @@ 'copy_to_clipboard' => 'Hodor', ], 'simulate' => [ - 'intro' => 'Hodor', - 'title' => 'Hodor', - 'key_level' => 'Hodor', - 'key_level_title' => 'Hodor', - 'shrouded_bounty_type' => 'Hodor', - 'shrouded_bounty_type_title' => 'Hodor', - 'shrouded_bounty_types' => [ - 'none' => 'Hodor', - 'crit' => 'Hodor', - 'haste' => 'Hodor', - 'mastery' => 'Hodor', - 'vers' => 'Hodor', - ], - 'affixes' => 'Hodor', - 'affixes_title' => 'Hodor', - 'affixes_map' => [ - 'fortified' => 'Hodor', - 'tyrannical' => 'Hodor', - ], - 'simulate_thundering_clear_seconds' => 'Hodor', - 'simulate_thundering_clear_seconds_title' => 'Hodor', - 'bloodlust' => 'Hodor', - 'bloodlust_title' => 'Hodor', - 'arcane_intellect' => 'Hodor', - 'power_word_fortitude' => 'Hodor', - 'battle_shout' => 'Hodor', - 'mystic_touch' => 'Hodor', - 'chaos_brand' => 'Hodor', - 'hp_percent' => 'Hodor', - 'hp_percent_title' => 'Hodor', - 'bloodlust_per_pull' => 'Hodor', - 'bloodlust_per_pull_title' => 'Hodor', - 'ranged_pull_compensation_yards' => 'Hodor', - 'ranged_pull_compensation_yards_title' => 'Hodor', - 'use_mounts' => 'Hodor', - 'use_mounts_title' => 'Hodor', - 'get_simulationcraft_string' => 'Hodor', - 'simulationcraft_string' => 'Hodor', - 'loading' => 'Hodor', - 'copy_to_clipboard' => 'Hodor', + 'intro' => 'Hodor', + 'title' => 'Hodor', + 'get_simulationcraft_string' => 'Hodor', + 'simulationcraft_string' => 'Hodor', + 'loading' => 'Hodor', + 'copy_to_clipboard' => 'Hodor', ], 'simulateoptions' => [ + 'default' => [ + + 'key_level' => 'Hodor', + 'key_level_title' => 'Hodor', + 'shrouded_bounty_type' => 'Hodor', + 'shrouded_bounty_type_title' => 'Hodor', + 'shrouded_bounty_types' => [ + 'none' => 'Hodor', + 'crit' => 'Hodor', + 'haste' => 'Hodor', + 'mastery' => 'Hodor', + 'vers' => 'Hodor', + ], + 'affixes' => 'Hodor', + 'affixes_title' => 'Hodor', + 'affixes_map' => [ + 'fortified' => 'Hodor', + 'tyrannical' => 'Hodor', + ], + 'simulate_thundering_clear_seconds' => 'Hodor', + 'simulate_thundering_clear_seconds_title' => 'Hodor', + 'raid_buffs_title' => 'Hodor', + 'raid_buffs' => 'Hodor', + 'raid_buffs_map' => [ + 'bloodlust' => 'Hodor', + 'arcane_intellect' => 'Hodor', + 'power_word_fortitude' => 'Hodor', + 'mark_of_the_wild' => 'Hodor', + 'battle_shout' => 'Hodor', + 'mystic_touch' => 'Hodor', + 'chaos_brand' => 'Hodor', + 'skyfury' => 'Hodor', + 'hunters_mark' => 'Hodor', + 'power_infusion' => 'Hodor', + 'bleeding' => 'Hodor', + ], + 'hp_percent' => 'Hodor', + 'hp_percent_title' => 'Hodor', + 'bloodlust_per_pull' => 'Hodor', + 'bloodlust_per_pull_title' => 'Hodor', + ], 'advanced' => [ - 'patreon_link_text' => 'Hodor', - 'patreon_only' => 'Hodor', - 'advanced_options' => 'Hodor', - 'description' => 'Hodor', + 'ranged_pull_compensation_yards' => 'Hodor', + 'ranged_pull_compensation_yards_title' => 'Hodor', + 'use_mounts' => 'Hodor', + 'use_mounts_title' => 'Hodor', + 'patreon_link_text' => 'Hodor', + 'patreon_only' => 'Hodor', + 'advanced_options' => 'Hodor', + 'description' => 'Hodor', ], ], + 'uploadlogs' => [ + 'title' => 'Hodor', + ], ], 'release' => [ 'release' => [ diff --git a/lang/ho_HO/view_dungeon.php b/lang/ho_HO/view_dungeon.php index cd155ceb93..4cfed7d699 100644 --- a/lang/ho_HO/view_dungeon.php +++ b/lang/ho_HO/view_dungeon.php @@ -2,10 +2,18 @@ return [ 'explore' => [ - 'list' => [ - 'title' => 'Hodor', - 'header' => 'Hodor', - 'heatmap_available' => 'Hodor', + 'gameversion' => [ + 'list' => [ + 'title' => 'Hodor', + 'header' => 'Hodor', + 'heatmap_available' => 'Hodor', + ], + 'embed' => [ + 'title' => 'Hodor', + 'any' => 'Hodor', + 'select_floor' => 'Hodor', + 'view_heatmap_fullscreen' => 'Hodor', + ], ], ], ]; diff --git a/lang/ho_HO/view_team.php b/lang/ho_HO/view_team.php index 788e423688..b6286726a9 100644 --- a/lang/ho_HO/view_team.php +++ b/lang/ho_HO/view_team.php @@ -1,36 +1,49 @@ [ - 'title' => 'Hodor', - 'overview' => 'Hodor', - 'routes' => 'Hodor', - 'members' => 'Hodor', - 'team_tags' => 'Hodor', - 'team_details' => 'Hodor', - - 'menu_title' => 'Hodor', - 'to_team_list' => 'Hodor', - 'team_header' => 'Hodor', - 'icon_image_alt' => 'Hodor', - 'route_list' => 'Hodor', - 'add_route' => 'Hodor', - 'add_route_no_moderator' => 'Hodor', - 'stop_adding_routes' => 'Hodor', + 'edittabs' => [ + 'details' => [ + 'title' => 'Hodor', + ], + 'members' => [ + 'title' => 'Hodor', - 'invite_new_members' => 'Hodor', - 'invite_code_share_warning' => 'Hodor', - 'copy_to_clipboard_title' => 'Hodor', - 'refresh_invite_link_title' => 'Hodor', + 'invite_new_members' => 'Hodor', + 'invite_code_share_warning' => 'Hodor', + 'copy_to_clipboard_title' => 'Hodor', + 'refresh_invite_link_title' => 'Hodor', - 'ad_free_giveaway_description_not_available' => 'Hodor', - 'ad_free_giveaway_description_available' => 'Hodor', + 'default_role' => 'Hodor', - 'default_role' => 'Hodor', + 'ad_free_giveaway_description_not_available' => 'Hodor', + 'ad_free_giveaway_description_available' => 'Hodor', + ], + 'overview' => [ + 'title' => 'Hodor', + ], + 'routepublishing' => [ + 'title' => 'Hodor', + ], + 'routes' => [ + 'title' => 'Hodor', + 'add_route' => 'Hodor', + 'add_route_no_moderator' => 'Hodor', + 'stop_adding_routes' => 'Hodor', + ], + 'tags' => [ + 'title' => 'Hodor', + 'description' => 'Hodor', + ], - 'team_tags_description' => 'Hodor', ], - 'invite' => [ + 'edit' => [ + 'title' => 'Hodor', + 'menu_title' => 'Hodor', + 'to_team_list' => 'Hodor', + 'team_header' => 'Hodor', + 'icon_image_alt' => 'Hodor', + ], + 'invite' => [ 'linkpreview_title' => 'Hodor', 'linkpreview_description' => 'Hodor', @@ -52,7 +65,7 @@ 'invite_not_found' => 'Hodor', 'back_to_homepage' => 'Hodor', ], - 'list' => [ + 'list' => [ 'title' => 'Hodor', 'header' => 'Hodor', 'create_team' => 'Hodor', @@ -60,7 +73,7 @@ 'table_header_members' => 'Hodor', 'table_header_routes' => 'Hodor', ], - 'new' => [ + 'new' => [ 'title' => 'Hodor', 'header' => 'Hodor', ], diff --git a/lang/ru_RU/breadcrumbs.php b/lang/ru_RU/breadcrumbs.php index 7d7570b7b2..1116dd9ed6 100644 --- a/lang/ru_RU/breadcrumbs.php +++ b/lang/ru_RU/breadcrumbs.php @@ -8,8 +8,11 @@ 'changelog' => 'История изменений', 'routes' => 'Маршруты', 'routes_expansion' => ':expansion маршруты', - 'dungeon' => [ - 'explore' => '', + 'gameversion' => [ + 'update' => '', + 'dungeon' => [ + 'explore' => '', + ], ], 'dungeonroute' => [ 'new' => '', diff --git a/lang/ru_RU/combatlogeventtypes.php b/lang/ru_RU/combatlogeventtypes.php index f43ea98594..da311666b7 100644 --- a/lang/ru_RU/combatlogeventtypes.php +++ b/lang/ru_RU/combatlogeventtypes.php @@ -1,7 +1,7 @@ '', 'player_death' => '', - 'enemy_killed' => '', - 'spell_cast' => '', + 'player_spell' => '', ]; diff --git a/lang/ru_RU/dungeons.php b/lang/ru_RU/dungeons.php index 405a42c4d5..ee15ac4842 100644 --- a/lang/ru_RU/dungeons.php +++ b/lang/ru_RU/dungeons.php @@ -2,11 +2,13 @@ return [ - 'difficulty' => [ + 'difficulty' => [ '1' => '', '2' => '', + '3' => '', + '4' => '', ], - 'classic' => [ + 'classic' => [ 'blackfathom_deeps' => [ 'name' => '', 'floors' => [ @@ -104,6 +106,18 @@ 'razorfen_kraul' => '', ], ], + 'ruins_of_ahnqiraj_sod' => [ + 'name' => '', + 'floors' => [ + 'ruins_of_ahnqiraj' => '', + ], + ], + 'ruins_of_ahnqiraj_classic' => [ + 'name' => '', + 'floors' => [ + 'ruins_of_ahnqiraj' => '', + ], + ], 'scarlet_monastery_armory' => [ 'name' => '', 'floors' => [ @@ -156,6 +170,22 @@ 'the_gauntlet' => '', ], ], + 'temple_of_ahnqiraj_sod' => [ + 'name' => '', + 'floors' => [ + 'the_hive_undergrounds' => '', + 'the_temple_gates' => '', + 'vault_of_cthun' => '', + ], + ], + 'temple_of_ahnqiraj_classic' => [ + 'name' => '', + 'floors' => [ + 'the_hive_undergrounds' => '', + 'the_temple_gates' => '', + 'vault_of_cthun' => '', + ], + ], 'the_stockade' => [ 'name' => '', 'floors' => [ @@ -202,7 +232,7 @@ 'zulgurub' => [ 'name' => '', 'floors' => [ - 'zul_gurub' => '', + 'zulgurub' => '', ], ], 'onyxias_lair_classic' => [ @@ -217,22 +247,13 @@ 'molten_core' => '', ], ], - 'blackwinglair' => [ - 'name' => '', - 'floors' => [ - 'blackwinglair' => '', - ], - ], - 'ruinsofahnqiraj' => [ + 'blackwinglair' => [ 'name' => '', 'floors' => [ - 'ruinsofahnqiraj' => '', - ], - ], - 'templeofahnqiraj' => [ - 'name' => '', - 'floors' => [ - 'templeofahnqiraj' => '', + 'dragonmaw_garrison' => '', + 'halls_of_strife' => '', + 'crimson_laboratories' => '', + 'nefarians_lair' => '', ], ], 'naxxramas_classic' => [ @@ -247,7 +268,7 @@ ], ], ], - 'wotlk' => [ + 'wotlk' => [ 'ahn_kahet_the_old_kingdom' => [ 'name' => '', 'floors' => [ @@ -426,7 +447,7 @@ ], ], ], - 'cata' => [ + 'cata' => [ 'grim_batol' => [ 'name' => '', 'floors' => [ @@ -447,8 +468,92 @@ 'throne_of_the_tides' => '', ], ], + 'firelands' => [ + 'name' => '', + 'floors' => [ + 'firelands' => '', + 'anvil_of_conflagration' => '', + 'sulfuron_keep' => '', + ], + ], + 'dragon_soul' => [ + 'name' => '', + 'floors' => [ + 'the_dragonblight' => '', + 'maw_of_go_rath' => '', + 'maw_of_shu_ma' => '', + 'eye_of_eternity' => '', + 'skyfire_airship' => '', + 'spine_of_deathwing' => '', + 'the_maelstrom' => '', + ], + ], ], - 'mop' => [ + 'mop' => [ + 'gate_of_the_setting_sun' => [ + 'name' => '', + 'floors' => [ + 'gate_of_the_setting_sun' => '', + 'gate_watch_tower' => '', + ], + ], + 'mogu_shan_palace' => [ + 'name' => '', + 'floors' => [ + 'the_crimson_assembly_hall' => '', + 'vaults_of_kings_past' => '', + 'throne_of_ancient_conquerors' => '', + ], + ], + 'scarlet_halls_mop' => [ + 'name' => '', + 'floors' => [ + 'training_grounds' => '', + 'athenaeum' => '', + ], + ], + 'scarlet_monastery_mop' => [ + 'name' => '', + 'floors' => [ + 'forlorn_cloister' => '', + 'crusaders_chapel' => '', + ], + ], + 'scholomance_mop' => [ + 'name' => '', + 'floors' => [ + 'the_reliquary' => '', + 'chamber_of_summoning' => '', + 'the_upper_study' => '', + 'headmasters_study' => '', + ], + ], + 'shado_pan_monastery' => [ + 'name' => '', + 'floors' => [ + 'shado_pan_monastery' => '', + 'cloudstrike_dojo' => '', + 'snowdrift_dojo' => '', + 'sealed_chambers' => '', + ], + ], + 'siege_of_niu_zao_temple' => [ + 'name' => '', + 'floors' => [ + 'siege_of_niu_zao_temple' => '', + 'the_hollowed_out_tree' => '', + 'upper_tree_ring' => '', + ], + ], + 'stormstout_brewery' => [ + 'name' => '', + 'floors' => [ + 'grain_cellar' => '', + 'stormstout_brewhall' => '', + 'the_great_wheel' => '', + 'the_tasting_room' => '', + ], + ], 'temple_of_the_jade_serpent' => [ 'name' => '', 'floors' => [ @@ -457,7 +562,7 @@ ], ], ], - 'wod' => [ + 'wod' => [ 'auchindoun' => [ 'name' => '', 'floors' => [ @@ -501,7 +606,7 @@ ], ], ], - 'legion' => [ + 'legion' => [ 'arcway' => [ 'name' => 'Катакомбы Сурамара', 'floors' => [ @@ -609,7 +714,7 @@ ], ], ], - 'bfa' => [ + 'bfa' => [ 'atal_dazar' => [ 'name' => 'Атал\'Дазар', 'floors' => [ @@ -715,7 +820,7 @@ ], ], ], - 'sl' => [ + 'sl' => [ 'de_other_side' => [ 'name' => 'Та Сторона', 'floors' => [ @@ -799,7 +904,7 @@ ], ], ], - 'df' => [ + 'df' => [ 'algeth_ar_academy' => [ 'name' => '', 'floors' => [ @@ -889,7 +994,7 @@ ], ], ], - 'tww' => [ + 'tww' => [ 'ara_kara_city_of_echoes' => [ 'name' => '', 'floors' => [ diff --git a/lang/ru_RU/enemies.php b/lang/ru_RU/enemies.php new file mode 100644 index 0000000000..bad27cc69b --- /dev/null +++ b/lang/ru_RU/enemies.php @@ -0,0 +1,8 @@ + [ + 'beguiling' => '', + + ] +]; diff --git a/lang/ru_RU/exceptions.php b/lang/ru_RU/exceptions.php index 3bdca3c183..26b85d0b0f 100644 --- a/lang/ru_RU/exceptions.php +++ b/lang/ru_RU/exceptions.php @@ -7,6 +7,7 @@ 'api_route_not_found' => '', 'internal_server_error' => '', 'unauthenticated' => '', + 'too_many_requests' => '', ], ]; diff --git a/lang/ru_RU/gameserverregions.php b/lang/ru_RU/gameserverregions.php index ef3ebade0e..f1fcf3f600 100644 --- a/lang/ru_RU/gameserverregions.php +++ b/lang/ru_RU/gameserverregions.php @@ -1,11 +1,10 @@ 'Северной и Южной Америки', - 'eu' => 'Европа', - 'cn' => 'Китай', - 'tw' => 'Тайвань', - 'kr' => 'Корея', - + 'us' => 'Северной и Южной Америки', + 'eu' => 'Европа', + 'cn' => 'Китай', + 'tw' => 'Тайвань', + 'kr' => 'Корея', + 'world' => '', ]; diff --git a/lang/ru_RU/gameversions.php b/lang/ru_RU/gameversions.php index 2110c8a91a..a57cbddd50 100644 --- a/lang/ru_RU/gameversions.php +++ b/lang/ru_RU/gameversions.php @@ -17,4 +17,8 @@ 'name' => '', 'description' => '', ], + 'cata' => [ + 'name' => '', + 'description' => '', + ], ]; diff --git a/lang/ru_RU/js.php b/lang/ru_RU/js.php index 5ff5225d2c..7753391637 100644 --- a/lang/ru_RU/js.php +++ b/lang/ru_RU/js.php @@ -85,6 +85,7 @@ 'pull_workbench_remove_kill_area_label' => '', 'pull_workbench_pull_description_label' => '', 'pull_workbench_pull_supported_tags_label' => '', + 'pull_workbench_pull_description_length' => '', 'kill_zone_has_boss_label' => 'Босс в пуле', 'kill_zone_has_awakened_label' => 'Пробудившийся в пуле', 'kill_zone_has_prideful_label' => 'Полный гордыни в пуле', @@ -168,6 +169,7 @@ 'edit_label' => 'Редактировать', 'make_label' => '', 'delete_user_label' => 'Удалить пользователя', + 'view_ip_addresses_label' => '', 'grant_all_benefits_label' => '', 'patreon_benefits_manually_granted_label' => '', 'import_notes_label' => 'Импорт заметки', @@ -268,7 +270,7 @@ 'mapicon_teeming_select_default_label' => 'Кишащий', 'map_icon_faction_label' => 'Фракция', 'map_icon_teeming_label' => 'Кишащий', - 'map_icon_team_id_label' => 'Показывать все маршрутам команды', + 'map_icon_show_across_team_label' => '', 'map_icon_permanent_tooltip_label' => 'Постоянная подсказка', 'map_icon_map_icon_type_id_label' => 'Иконка', 'map_icon_comment_label' => 'Комментарий', @@ -341,11 +343,13 @@ 'dungeonfloorswitchmarker_linked_dungeon_floor_switch_marker_id_label' => '', 'dungeonfloorswitchmarker_direction_label' => 'Направление', 'dungeonfloorswitchmarker_direction_select_default_label' => '', + 'dungeonfloorswitchmarker_to_label' => '', 'dungeonfloorswitchmarker_go_to_label' => '', 'dungeonfloorswitchmarker_unknown_label' => '', 'mountablearea_faction_label' => '', 'mountablearea_teeming_label' => '', 'mountablearea_speed_label' => '', + 'mountablearea_tooltip_label' => '', 'floorunion_target_floor_id_select_default_label' => '', 'floorunion_target_floor_id_label' => '', 'floorunion_size_label' => '', @@ -412,6 +416,7 @@ 'connected_title_label' => 'Подключен к сервису синхронизации редактирования маршрута. Все ваши действия по редактированию маршрута будут доступны всем членам вашей команды, просматривающим этот маршрут!', 'members_title_label' => 'Ваши действия по редактированию маршрута видны этим пользователям, которые в данный момент просматривают / редактируют ваш маршрут!', 'member_self_title_label' => 'Вы можете изменить свой цвет в профиле.', + 'echo_object_changed_notification' => '', 'echo_object_deleted_notification' => '{object} удален пользователем {user}', 'connected_users_hide_cursors_label' => 'Скрыть курсоры', 'connected_users_show_cursors_label' => 'Показать курсоры', @@ -432,7 +437,11 @@ 'filter_image_select_dungeons_header' => 'Подземелье: :number выбрано', 'filter_input_select_weekly_affix_groups_header' => '', 'filter_input_affix_group_header' => 'Группы аффиксов: :number выбрано', - 'filter_input_key_level_header' => 'Уровень: :value', + 'filter_input_select_specializations_header' => '', + 'filter_input_key_level_header' => 'Уровень: :value', + 'filter_input_min_samples_required_header' => '', + 'filter_input_item_level_header' => '', + 'filter_input_player_deaths_header' => '', 'filter_input_rating_header' => 'Рейтинг: :value и выше', 'filter_input_title_header' => 'Название: :value', 'filter_input_expansion_header' => 'Дополнение: :value', @@ -440,6 +449,7 @@ 'filter_input_user_header' => 'Пользователь: :value', 'filter_input_event_type_header' => '', 'filter_input_data_type_header' => '', + 'filter_input_region_header' => '', 'filter_input_date_header' => '', 'filter_input_date_from_header' => '', 'filter_input_date_to_header' => '', @@ -451,4 +461,6 @@ 'toggle_spell_visibility_success' => '', 'toggle_spell_visibility_error' => '', 'week_label' => '', + 'loading_label' => '', + 'run_count_label' => '', ]; diff --git a/lang/ru_RU/logic.php b/lang/ru_RU/logic.php index 011c00d8c0..ca5d8ed549 100644 --- a/lang/ru_RU/logic.php +++ b/lang/ru_RU/logic.php @@ -2,49 +2,4 @@ return [ - 'mdt' => [ - 'io' => [ - 'export_string' => [ - 'category' => [ - 'pull' => 'Пулл %d', - 'title' => 'Название', - 'map_icon' => 'Иконки карты', - ], - 'unable_to_find_mdt_enemy_for_kg_enemy' => 'Невозможно найти врага в MDT антологичного для Keystone.guru с NPC %s (id_вгара: %d, npc_id: %d)', - 'unable_to_find_mdt_enemy_for_kg_enemy_details' => 'Ваш маршрут содержит врага, который известен MDT, но Keystone.guru еще не связал этого врага с его аналогом в MDT (или его нет в MDT).', - 'unable_to_find_mdt_enemy_for_kg_caused_empty_pull' => 'Пул был удален так как все выбранные враги не найдены в MDT, в противном случае это пустой пул.', - 'route_title_contains_non_ascii_char_bug' => 'Название вашего маршрута содержит символы, отличные от ascii, которые, как известно, вызывают еще не устраненную ошибку кодирования в Keystone.guru. В названии вашего маршрута удалены все неподдерживаемые символы. Приносим извинения за неудобства и надеемся вскоре решить эту проблему.', - 'route_title_contains_non_ascii_char_bug_details' => 'Старое название: %s, Новое название: %s', - 'map_icon_contains_non_ascii_char_bug' => 'Один из ваших комментариев к иконке на карте содержит символы, отличные от ascii, которые, как известно, вызывают еще не устраненную ошибку кодирования в Keystone.guru. В вашем комментарии к иконке на карте удалены все неподдерживаемые символы. Приносим извинения за неудобства и надеемся вскоре решить эту проблему.', - 'map_icon_contains_non_ascii_char_bug_details' => 'Старый комментарий: "%s", Новый комментарий: "%s"', - ], - 'import_string' => [ - 'category' => [ - 'awakened_obelisks' => '', - 'pulls' => '', - 'notes' => '', - 'pull' => 'Пулл %s', - 'object' => '', - ], - 'object_out_of_bounds' => '', - 'limit_reached_pulls' => '', - 'limit_reached_brushlines' => '', - 'limit_reached_paths' => '', - 'limit_reached_notes' => '', - 'unable_to_find_floor_for_object' => '', - 'unable_to_find_floor_for_object_details' => '', - 'unable_to_find_mdt_enemy_for_clone_index' => 'Невозможно найти врага MDT для клона индекса %s и NPC индекса %s.', - 'unable_to_find_mdt_enemy_for_clone_index_details' => 'MDT нанес на карту врага, который еще не известен в Keystone.guru.', - 'unable_to_find_kg_equivalent_for_mdt_enemy' => 'Невозможно найти аналог врага %s Keystone.guru для MDT NPC %s (id:%s)', - 'unable_to_find_kg_equivalent_for_mdt_enemy_details' => 'В вашем маршруте выбран враг, который известен Keystone.guru, но Keystone.guru еще не нанес на карту этого врага на карту.', - 'unable_to_find_awakened_enemy_for_final_boss' => 'Невозможно найти Пробужденного врага %s (%s) у последнего босса в %s', - 'unable_to_find_awakened_enemy_for_final_boss_details' => 'В Keystone.guru есть ошибка сопоставления, которую необходимо исправить. Отправьте администратору вышеприведенное предупреждение, чтоб исправить его.', - 'unable_to_find_enemies_pull_skipped' => 'Ошибка в поиске врагов привела к пропуску пака.', - 'unable_to_find_enemies_pull_skipped_details' => 'Эта ошибка может означать, что у MDT недавно было обновление, которое еще не интегрировано в Keystone.guru.', - 'unable_to_find_awakened_obelisks' => '', - 'unable_to_find_awakened_obelisk_different_floor' => '', - ], - ], - ], - ]; diff --git a/lang/ru_RU/mapicontypes.php b/lang/ru_RU/mapicontypes.php index 500b80643f..159448fd93 100644 --- a/lang/ru_RU/mapicontypes.php +++ b/lang/ru_RU/mapicontypes.php @@ -96,5 +96,11 @@ 'class_evoker' => '', 'chest' => '', 'chest_locked' => '', + 'mists_statshroom' => '', + 'mists_toughshroom' => '', + 'mists_overgrown_roots' => '', + 'cot_shadecaster' => '', + 'sv_imbued_iron_energy' => '', + 'ara_kara_silk_wrap' => '', ]; diff --git a/lang/ru_RU/mapping.php b/lang/ru_RU/mapping.php index 9be2a4b9f2..081de7d2e3 100644 --- a/lang/ru_RU/mapping.php +++ b/lang/ru_RU/mapping.php @@ -30,6 +30,7 @@ 'mists_of_tirna_scithe' => [ 'start' => 'Начало', 'brambles' => 'Ночной Народец: Открывает короткий путь.', + 'overgrown_roots' => '', 'depleted_anima_seed' => 'Истощенное анимасемя: Ночной Народец активирует дополнительные точки возрождения.', 'map_missing_wall' => 'Стена, которой нет на карте', 'savory_statshroom' => 'Деликатесный лютогриб – мгновенно восполняет 100% здоровья и повышает силу, ловкость и интеллект на 10% на 10 мин.', @@ -84,6 +85,11 @@ 'exit' => 'Выход', ], ], + 'tww' => [ + 'the_stonevault' => [ + 'imbued_iron_energy' => '', + ], + ] ], ]; diff --git a/lang/ru_RU/releasechangelogcategories.php b/lang/ru_RU/releasechangelogcategories.php index d29ebff70a..fbba801351 100644 --- a/lang/ru_RU/releasechangelogcategories.php +++ b/lang/ru_RU/releasechangelogcategories.php @@ -14,5 +14,6 @@ 'simulation_craft_changes' => '', 'auto_route_changes' => '', 'api_changes' => '', + 'heatmap_changes' => '', ]; diff --git a/lang/ru_RU/services.php b/lang/ru_RU/services.php index 7a8df15b6d..bcc1c0d878 100644 --- a/lang/ru_RU/services.php +++ b/lang/ru_RU/services.php @@ -2,8 +2,61 @@ return [ - 'npcservice' => [ + + 'mdt' => [ + 'io' => [ + 'export_string' => [ + 'category' => [ + 'pull' => '', + 'title' => '', + 'map_icon' => '', + ], + 'unable_to_find_mdt_enemy_for_kg_enemy' => '', + 'unable_to_find_mdt_enemy_for_kg_enemy_details' => '', + 'unable_to_find_mdt_enemy_for_kg_caused_empty_pull' => '', + 'route_title_contains_non_ascii_char_bug' => '', + 'route_title_contains_non_ascii_char_bug_details' => '', + 'map_icon_contains_non_ascii_char_bug' => '', + 'map_icon_contains_non_ascii_char_bug_details' => '', + ], + 'import_string' => [ + 'category' => [ + 'awakened_obelisks' => '', + 'pulls' => '', + 'notes' => '', + 'pull' => '', + 'object' => '', + ], + 'object_out_of_bounds' => '', + 'limit_reached_pulls' => '', + 'limit_reached_brushlines' => '', + 'limit_reached_paths' => '', + 'limit_reached_notes' => '', + 'unable_to_find_floor_for_object' => '', + 'unable_to_find_floor_for_object_details' => '', + 'unable_to_find_mdt_enemy_for_clone_index' => '', + 'unable_to_find_mdt_enemy_for_clone_index_details' => '', + 'unable_to_find_kg_equivalent_for_mdt_enemy' => '', + 'unable_to_find_kg_equivalent_for_mdt_enemy_details' => '', + 'unable_to_find_awakened_enemy_for_final_boss' => '', + 'unable_to_find_awakened_enemy_for_final_boss_details' => '', + 'unable_to_find_enemies_pull_skipped' => '', + 'unable_to_find_enemies_pull_skipped_details' => '', + 'unable_to_find_awakened_obelisks' => '', + 'unable_to_find_awakened_obelisk_different_floor' => '', + 'unable_to_decode_mdt_import_string' => '', + 'unable_to_validate_mdt_import_string' => '', + ], + ], + ], + 'npcservice' => [ 'all_dungeons' => '', ], + 'combatlogservice' => [ + 'analyze_combat_log' => [ + 'verify_error' => '', + 'processing_error' => '', + ], + ], ]; diff --git a/lang/ru_RU/specializations.php b/lang/ru_RU/specializations.php index 1046a241c8..60c0203b93 100644 --- a/lang/ru_RU/specializations.php +++ b/lang/ru_RU/specializations.php @@ -24,7 +24,7 @@ ], 'hunter' => [ 'beast_mastery' => 'Повелитель зверей', - 'marksman' => 'Стрельба', + 'marksmanship' => '', 'survival' => 'Выживание', ], 'mage' => [ diff --git a/lang/ru_RU/view_admin.php b/lang/ru_RU/view_admin.php index 6e12325326..6ab7a4687c 100644 --- a/lang/ru_RU/view_admin.php +++ b/lang/ru_RU/view_admin.php @@ -8,6 +8,8 @@ 'header_new' => 'Новое подземелье', 'header_edit' => 'Редактировать подземелье', 'active' => 'Действующий', + 'raid' => '', + 'heatmap_enabled' => '', 'speedrun_enabled' => '', 'speedrun_difficulty_10_man_enabled' => '', 'speedrun_difficulty_25_man_enabled' => '', @@ -242,8 +244,10 @@ 'header_edit' => 'Редактировать релиз', 'version' => 'Версия', 'title' => 'Название', + 'backup_db' => '', 'silent' => 'Немой', 'spotlight' => 'Подсветка', + 'released' => '', 'changelog' => 'Список изменений', 'description' => 'Описание', 'ticket_nr' => 'Обращение №', @@ -392,6 +396,18 @@ 'paste_your_mdt_export_string' => 'Вставьте строку экспорта Mythic Dungeon Tools', 'submit' => 'Подтвердить', ], + 'list' => [ + 'title' => '', + 'header' => '', + 'copy_mdt_string' => '', + 'table_header' => [ + 'id' => '', + 'error' => '', + 'import_string' => '', + 'date' => '', + 'actions' => '', + ], + ], 'dungeonmappinghash' => [ 'title' => '', 'header' => '', @@ -431,6 +447,7 @@ 'subheader_mdt' => 'MDT', 'view_mdt_string' => 'Просмотреть содержимое строки MDT', 'view_mdt_string_as_dungeonroute' => 'Просмотреть строку MDT как маршрут подземелья', + 'list_mdt_strings' => '', 'view_dungeonroute_as_mdt_string' => 'Просмотреть маршрут подземелья как строку MDT', 'view_mdt_diff' => 'Просмотр различия с MDT', 'view_dungeon_mapping_hash' => '', @@ -482,16 +499,18 @@ ], 'user' => [ 'list' => [ - 'title' => 'Список пользователей', - 'header' => 'Показать пользователя', - 'table_header_id' => 'ID', - 'table_header_name' => 'Имя', - 'table_header_email' => 'Email', - 'table_header_routes' => 'Маршруты', - 'table_header_roles' => 'Роли', - 'table_header_registered' => 'Зарегистрирован', - 'table_header_actions' => 'Действия', - 'table_header_patreons' => 'Patreon', + 'title' => 'Список пользователей', + 'header' => 'Показать пользователя', + 'table_header_id' => 'ID', + 'table_header_name' => 'Имя', + 'table_header_email' => 'Email', + 'table_header_routes' => 'Маршруты', + 'table_header_roles' => 'Роли', + 'table_header_registered' => 'Зарегистрирован', + 'table_header_actions' => 'Действия', + 'table_header_patreons' => 'Patreon', + 'ip_addresses_header' => '', + 'ip_addresses_cloudflare_link' => '', ], ], 'userreport' => [ diff --git a/lang/ru_RU/view_common.php b/lang/ru_RU/view_common.php index d00b42e031..62801f9eb7 100644 --- a/lang/ru_RU/view_common.php +++ b/lang/ru_RU/view_common.php @@ -13,12 +13,16 @@ 'next_week' => 'Следующая неделя', 'new' => 'Новые', ], + 'gridtabs' => [ + 'raid' => '', + ], 'select' => [ 'dungeon' => 'Подземелье', 'all' => 'Все', 'all_dungeons' => 'Все подземелья', 'all_expansion_dungeons' => '', 'seasons' => '', + 'raid' => '', 'siege_of_boralus_warning' => 'Так как подземелье Осада Боралуса отличаются для Орды и Альянса вам необходимо выбрать фракцию.', ], ], @@ -41,6 +45,8 @@ 'updated_at' => 'Обновлено %s', 'report' => 'Жалоба', 'refresh_thumbnail' => 'Обновить миниатюры', + 'dominant_affix' => '', + 'seasonal_affix' => '', ], 'cardlist' => [ 'no_dungeonroutes' => 'Маршруты не найдены', @@ -204,27 +210,28 @@ ], ], 'layout' => [ - 'footer' => [ - 'developer' => '', - 'api_documentation' => '', - 'keystone_guru' => '', - 'changelog' => 'Журнал изменений', - 'changelog_new' => 'НОВОЕ', - 'credits' => 'Благодарности', - 'about' => 'О нас', - 'external' => 'Внешние ссылки', - 'patreon' => 'Patreon', - 'discord' => 'Discord', - 'github' => 'Github', - 'legal' => 'Права', - 'terms_of_service' => 'Условия использования', - 'privacy_policy' => 'Политика конфиденциальности', - 'cookie_policy' => 'Политика использования файлов cookie', - 'trademark' => 'Торговая марка', - 'trademark_footer' => 'World of Warcraft, Warcraft и Blizzard Entertainment являются товарными знаками или зарегистрированными товарными знаками Blizzard Entertainment, Inc. в США и / или других странах. Этот веб-сайт не связан с Blizzard Entertainment ».', - 'social' => 'Социальные сети', - ], - 'header' => [ + 'footer' => [ + 'developer' => '', + 'api_documentation' => '', + 'api_documentation_internal_team' => '', + 'keystone_guru' => '', + 'changelog' => 'Журнал изменений', + 'changelog_new' => 'НОВОЕ', + 'credits' => 'Благодарности', + 'about' => 'О нас', + 'external' => 'Внешние ссылки', + 'patreon' => 'Patreon', + 'discord' => 'Discord', + 'github' => 'Github', + 'legal' => 'Права', + 'terms_of_service' => 'Условия использования', + 'privacy_policy' => 'Политика конфиденциальности', + 'cookie_policy' => 'Политика использования файлов cookie', + 'trademark' => 'Торговая марка', + 'trademark_footer' => 'World of Warcraft, Warcraft и Blizzard Entertainment являются товарными знаками или зарегистрированными товарными знаками Blizzard Entertainment, Inc. в США и / или других странах. Этот веб-сайт не связан с Blizzard Entertainment ».', + 'social' => 'Социальные сети', + ], + 'header' => [ 'toggle_navigation_title' => 'Включить навигацию', 'create_route' => 'Создать маршрут', 'search' => 'Поиск', @@ -234,25 +241,30 @@ 'affixes' => 'Аффиксы', 'new' => 'Новые', ], - 'navuser' => [ - 'login' => 'Войти', - 'register' => 'Регистрация', - 'telescope' => 'Телескоп', - 'tools' => 'Инструменты', - 'view_releases' => 'Показать релизы', - 'view_expansions' => 'Показать дополнения', - 'view_dungeons' => 'Показать подземелья', - 'view_npcs' => 'Показать NPCs', - 'view_spells' => 'Показать способности', - 'view_users' => 'Показать пользователей', - 'view_user_reports' => 'Показать жалобы', - 'my_routes' => 'Мои маршруты', - 'my_favorites' => 'Избранное', - 'my_tags' => 'Мои теги', - 'my_teams' => 'Моя команда', - 'my_profile' => 'Мой профиль', - 'account_settings' => '', - 'logout' => 'Выйти', + 'nav' => [ + 'user' => [ + 'login' => '', + 'register' => '', + 'telescope' => '', + 'tools' => '', + 'view_releases' => '', + 'view_expansions' => '', + 'view_dungeons' => '', + 'view_npcs' => '', + 'view_spells' => '', + 'view_users' => '', + 'view_user_reports' => '', + 'my_routes' => '', + 'my_favorites' => '', + 'my_tags' => '', + 'my_teams' => '', + 'my_profile' => '', + 'account_settings' => '', + 'logout' => '', + ], + 'uploadlogs' => [ + 'upload_logs' => '', + ], ], ], 'maps' => [ @@ -303,32 +315,50 @@ 'report_an_issue' => 'Сообщить о проблеме', ], 'heatmapsearch' => [ - 'settings_title' => '', - 'enabled' => '', - 'disabled' => '', - 'event_type' => '', - 'data_type' => '', - 'data_type_title' => '', - 'filter' => '', - 'loading' => '', - 'key_level' => '', - 'affixes' => '', - 'affixes_title' => '', - 'affixes_selected' => '', - 'weekly_affix_groups' => '', - 'weekly_affix_groups_title' => '', - 'date_range' => '', - 'date_range_from' => '', - 'date_range_to' => '', - 'duration' => '', - 'data' => [ - 'dungeon_routes' => '', + 'settings_title' => '', + 'enabled' => '', + 'disabled' => '', + 'event_type' => '', + 'data_type' => '', + 'npc_death_alt' => '', + 'player_death_alt' => '', + 'bloodlust_alt' => '', + 'data_type_title' => '', + 'filter' => '', + 'key_level' => '', + 'item_level' => '', + 'player_deaths' => '', + 'affixes' => '', + 'affixes_title' => '', + 'affixes_selected' => '', + 'weekly_affix_groups' => '', + 'specializations' => '', + 'date_range' => '', + 'date_range_from' => '', + 'date_range_to' => '', + 'duration' => '', + 'advanced_options' => '', + 'advanced_option' => [ + 'min_samples_required' => '', + 'min_samples_required_title' => '', + ], + 'heat_options' => '', + 'heat_option' => [ + 'min_opacity' => '', + 'max_zoom' => '', + 'max' => '', + 'radius' => '', + 'blur' => '', + 'gradient' => '', + 'pane' => '', ], ], 'header' => [ 'toggle_navigation' => 'Включить навигацию', 'stop' => 'Стоп', 'start' => 'Старт', + 'dominant_affix' => '', + 'seasonal_affix' => '', 'live_session_expires_in' => 'Истекает %s', 'edit_route' => 'Редактировать маршрут', 'view_route' => 'Показать маршрут', @@ -337,6 +367,8 @@ 'simulate_route' => '', 'edit_route_settings' => '', 'edit_mapping_version' => '', + 'admin_header_title' => '', + 'explore_header_title' => '', 'share' => 'Поделиться', 'start_live_session' => 'Начать живую сессию', 'start_live_session_paragraph_1' => 'После запуска маршрута в игре вы можете создать сеанс в реальном времени, в котором Keystone.guru поможет вам пройти M+ ключ. Вы можете следить за перемещениями карты другого пользователя, щелкнув на иконку вверху.', @@ -395,13 +427,18 @@ 'new_mapping_version_header_title' => '', 'new_mapping_version_header_description' => '', - 'explore_header_title' => '', - 'admin_header_title' => '', 'route' => 'Маршрут', ], ], 'modal' => [ + 'dungeonroute' => [ + 'removed' => [ + 'title' => '', + 'description' => '', + 'back_to_home' => '', + ], + ], 'userreport' => [ 'dungeonroute' => [ 'report_route' => 'Отправить жалобу', @@ -475,55 +512,69 @@ 'copy_to_clipboard' => 'Скопировать в буфер обмена', ], 'simulate' => [ - 'intro' => '', - 'title' => '', - 'key_level' => '', - 'key_level_title' => '', - 'shrouded_bounty_type' => '', - 'shrouded_bounty_type_title' => '', - 'shrouded_bounty_types' => [ - 'none' => '', - 'crit' => '', - 'haste' => '', - 'mastery' => '', - 'vers' => '', - ], - 'affixes' => '', - 'affixes_title' => '', - 'affixes_map' => [ - 'fortified' => '', - 'tyrannical' => '', - ], - 'simulate_thundering_clear_seconds' => '', - 'simulate_thundering_clear_seconds_title' => '', - 'bloodlust' => '', - 'bloodlust_title' => '', - 'arcane_intellect' => '', - 'power_word_fortitude' => '', - 'battle_shout' => '', - 'mystic_touch' => '', - 'chaos_brand' => '', - 'hp_percent' => '', - 'hp_percent_title' => '', - 'bloodlust_per_pull' => '', - 'bloodlust_per_pull_title' => '', - 'ranged_pull_compensation_yards' => '', - 'ranged_pull_compensation_yards_title' => '', - 'use_mounts' => '', - 'use_mounts_title' => '', - 'get_simulationcraft_string' => '', - 'simulationcraft_string' => '', - 'loading' => '', - 'copy_to_clipboard' => '', + 'intro' => '', + 'title' => '', + 'get_simulationcraft_string' => '', + 'simulationcraft_string' => '', + 'loading' => '', + 'copy_to_clipboard' => '', ], 'simulateoptions' => [ + 'default' => [ + + 'key_level' => '', + 'key_level_title' => '', + 'shrouded_bounty_type' => '', + 'shrouded_bounty_type_title' => '', + 'shrouded_bounty_types' => [ + 'none' => '', + 'crit' => '', + 'haste' => '', + 'mastery' => '', + 'vers' => '', + ], + 'affixes' => '', + 'affixes_title' => '', + 'affixes_map' => [ + 'fortified' => '', + 'tyrannical' => '', + ], + 'simulate_thundering_clear_seconds' => '', + 'simulate_thundering_clear_seconds_title' => '', + 'raid_buffs_title' => '', + 'raid_buffs' => '', + 'raid_buffs_map' => [ + 'bloodlust' => '', + 'arcane_intellect' => '', + 'power_word_fortitude' => '', + 'mark_of_the_wild' => '', + 'battle_shout' => '', + 'mystic_touch' => '', + 'chaos_brand' => '', + 'skyfury' => '', + 'hunters_mark' => '', + 'power_infusion' => '', + 'bleeding' => '', + ], + 'hp_percent' => '', + 'hp_percent_title' => '', + 'bloodlust_per_pull' => '', + 'bloodlust_per_pull_title' => '', + ], 'advanced' => [ - 'patreon_link_text' => '', - 'patreon_only' => '', - 'advanced_options' => '', - 'description' => '', + 'ranged_pull_compensation_yards' => '', + 'ranged_pull_compensation_yards_title' => '', + 'use_mounts' => '', + 'use_mounts_title' => '', + 'patreon_link_text' => '', + 'patreon_only' => '', + 'advanced_options' => '', + 'description' => '', ], ], + 'uploadlogs' => [ + 'title' => '', + ], ], 'release' => [ 'release' => [ diff --git a/lang/ru_RU/view_dungeon.php b/lang/ru_RU/view_dungeon.php index d709c7e770..2b3fa7ccdb 100644 --- a/lang/ru_RU/view_dungeon.php +++ b/lang/ru_RU/view_dungeon.php @@ -2,10 +2,18 @@ return [ 'explore' => [ - 'list' => [ - 'title' => '', - 'header' => '', - 'heatmap_available' => '', + 'gameversion' => [ + 'list' => [ + 'title' => '', + 'header' => '', + 'heatmap_available' => '', + ], + 'embed' => [ + 'title' => '', + 'any' => '', + 'select_floor' => '', + 'view_heatmap_fullscreen' => '', + ], ], ], ]; diff --git a/lang/ru_RU/view_team.php b/lang/ru_RU/view_team.php index e5b0251429..c5e6679c39 100644 --- a/lang/ru_RU/view_team.php +++ b/lang/ru_RU/view_team.php @@ -1,37 +1,49 @@ [ - 'title' => 'Команда %s', - 'overview' => 'Обзор', - 'routes' => 'Маршруты', - 'members' => 'Пользователи', - 'team_tags' => 'Мои теги', - 'team_details' => 'Детали команды', + 'edittabs' => [ + 'details' => [ + 'title' => '', + ], + 'members' => [ + 'title' => '', - 'menu_title' => 'Команды', - 'to_team_list' => 'Список команд', - 'team_header' => 'Команда %s', - 'icon_image_alt' => 'Нет изображения', - 'route_list' => 'Список маршрутов', - 'add_route' => 'Добавить маршрут', - 'add_route_no_moderator' => 'Вы должны быть модератором этой команды, чтобы добавлять маршруты', - 'stop_adding_routes' => 'Завершить добавление маршрута', + 'invite_new_members' => '', + 'invite_code_share_warning' => '', + 'copy_to_clipboard_title' => '', + 'refresh_invite_link_title' => '', - 'invite_new_members' => 'Пригласить новых участников', - 'invite_code_share_warning' => 'Будьте осторожны с тем, с кем вы делитесь ссылкой для приглашения, каждый, у кого есть ссылка, может присоединиться к вашей команде!', - 'copy_to_clipboard_title' => 'Скопировать в буфер обмена', - 'refresh_invite_link_title' => 'Обновить ссылку для приглашения', + 'default_role' => '', - 'ad_free_giveaway_description_not_available' => '', - 'ad_free_giveaway_description_available' => '', + 'ad_free_giveaway_description_not_available' => '', + 'ad_free_giveaway_description_available' => '', + ], + 'overview' => [ + 'title' => '', + ], + 'routepublishing' => [ + 'title' => '', + ], + 'routes' => [ + 'title' => '', + 'add_route' => '', + 'add_route_no_moderator' => '', + 'stop_adding_routes' => '', + ], + 'tags' => [ + 'title' => '', + 'description' => '', + ], - 'default_role' => 'Роль по умолчанию', - - 'team_tags_description' => 'Здесь вы можете управлять тегами для командных маршрутов. Каждый, кто является членом этой команды, может просматривать теги, прикрепленные к маршрутам. - Персональные теги, которые могли быть прикреплены или не были прикреплены владельцем маршрута, не будут видны.', ], - 'invite' => [ + 'edit' => [ + 'title' => 'Команда %s', + 'menu_title' => 'Команды', + 'to_team_list' => 'Список команд', + 'team_header' => 'Команда %s', + 'icon_image_alt' => 'Нет изображения', + ], + 'invite' => [ 'linkpreview_title' => '', 'linkpreview_description' => '', @@ -53,7 +65,7 @@ 'invite_not_found' => 'Эту команду найти не удалось. Возможно, ссылка для приглашения была изменена или команда была удалена.', 'back_to_homepage' => 'Вернуться на главную', ], - 'list' => [ + 'list' => [ 'title' => 'Мои команды', 'header' => 'Мои команды', 'create_team' => 'Создать команду', @@ -61,7 +73,7 @@ 'table_header_members' => 'Участники', 'table_header_routes' => 'Маршруты', ], - 'new' => [ + 'new' => [ 'title' => 'Новая команда', 'header' => 'Новая команда', ], diff --git a/resources/assets/js/custom/models/enemy.js b/resources/assets/js/custom/models/enemy.js index 3856c82b19..d92fd389b2 100644 --- a/resources/assets/js/custom/models/enemy.js +++ b/resources/assets/js/custom/models/enemy.js @@ -30,6 +30,7 @@ L.Draw.Enemy = L.Draw.Marker.extend({ * @property {Number} npc_id * @property {Number} mdt_id * @property {Number} mdt_npc_id + * @property {Number} exclusive_enemy_id * @property {String} seasonal_type * @property {Number} seasonal_index * @property {Number} enemy_forces_override @@ -55,9 +56,11 @@ class Enemy extends VersionableMapObject { this.npc = null; /** @type {EnemyPatrol|null} May be set when loaded from server */ this.enemyPatrol = null; - /** @type {Enemy} If we are an awakened NPC, we're linking it to another Awakened NPC that's next to the boss */ + /** @type {Enemy|Null} If we are an awakened NPC, we're linking it to another Awakened NPC that's next to the boss */ this.linked_awakened_enemy = null; this.active_auras = []; + /** @type {Enemy|null} If we have an enemy that we're sharing exclusivity with (Theater of Pain mini bosses) */ + this.exclusive_enemy = null; // MDT this.mdt_id = null; @@ -210,7 +213,6 @@ class Enemy extends VersionableMapObject { self.is_mdt = value; } }), - // // Whatever enemy this MDT enemy is linked to new Attribute({ name: 'enemy_id', type: 'int', @@ -237,23 +239,34 @@ class Enemy extends VersionableMapObject { }, category: 'legacy' }), + new Attribute({ + name: 'exclusive_enemy_id', + type: 'int', + default: null, + setter: function (value) { + let enemyMapObjectGroup = self.map.mapObjectGroupManager.getByName(MAP_OBJECT_GROUP_ENEMY); + self.setExclusiveEnemy(enemyMapObjectGroup.findMapObjectById(value)); + }, + }), new Attribute({ name: 'seasonal_type', type: 'select', admin: true, default: null, values: [ - // @TODO Translate this - {id: ENEMY_SEASONAL_TYPE_BEGUILING, name: 'Beguiling'}, - {id: ENEMY_SEASONAL_TYPE_AWAKENED, name: 'Awakened'}, - {id: ENEMY_SEASONAL_TYPE_INSPIRING, name: 'Inspiring'}, - {id: ENEMY_SEASONAL_TYPE_PRIDEFUL, name: 'Prideful'}, - {id: ENEMY_SEASONAL_TYPE_TORMENTED, name: 'Tormented'}, - {id: ENEMY_SEASONAL_TYPE_ENCRYPTED, name: 'Encrypted'}, - {id: ENEMY_SEASONAL_TYPE_SHROUDED, name: 'Shrouded'}, - {id: ENEMY_SEASONAL_TYPE_SHROUDED_ZUL_GAMUX, name: 'Shrouded Zul\'gamux'}, - {id: ENEMY_SEASONAL_TYPE_MDT_PLACEHOLDER, name: 'MDT Placeholder'}, - {id: ENEMY_SEASONAL_TYPE_NO_SHROUDED, name: 'Shrouded not active'} + {id: ENEMY_SEASONAL_TYPE_BEGUILING, name: lang.get('enemies.seasonal_type.beguiling')}, + {id: ENEMY_SEASONAL_TYPE_AWAKENED, name: lang.get('enemies.seasonal_type.awakened')}, + {id: ENEMY_SEASONAL_TYPE_INSPIRING, name: lang.get('enemies.seasonal_type.inspiring')}, + {id: ENEMY_SEASONAL_TYPE_PRIDEFUL, name: lang.get('enemies.seasonal_type.prideful')}, + {id: ENEMY_SEASONAL_TYPE_TORMENTED, name: lang.get('enemies.seasonal_type.tormented')}, + {id: ENEMY_SEASONAL_TYPE_ENCRYPTED, name: lang.get('enemies.seasonal_type.encrypted')}, + {id: ENEMY_SEASONAL_TYPE_SHROUDED, name: lang.get('enemies.seasonal_type.shrouded')}, + { + id: ENEMY_SEASONAL_TYPE_SHROUDED_ZUL_GAMUX, + name: lang.get('enemies.seasonal_type.shrouded_zul_gamux') + }, + {id: ENEMY_SEASONAL_TYPE_MDT_PLACEHOLDER, name: lang.get('enemies.seasonal_type.mdt_placeholder')}, + {id: ENEMY_SEASONAL_TYPE_NO_SHROUDED, name: lang.get('enemies.seasonal_type.no_shrouded')} ], setter: function (value) { self.seasonal_type = value <= 0 ? null : value; @@ -1093,6 +1106,21 @@ class Enemy extends VersionableMapObject { this.linked_awakened_enemy = awakenedEnemy; } + /** + * Sets this Enemy to be exclusive with another Enemy. + * + * @param exclusiveEnemy {Enemy} + */ + setExclusiveEnemy(exclusiveEnemy) { + console.assert(this instanceof Enemy, 'this is not an Enemy', this); + console.assert(exclusiveEnemy.id !== this.id, 'exclusiveEnemy must have a different id as ourselves!', exclusiveEnemy, this); + + // console.warn('Setting linked awakened enemy', this.id, awakenedEnemy.id); + + this.exclusive_enemy = exclusiveEnemy; + this.exclusive_enemy_id = exclusiveEnemy?.id ?? null; + } + /** * * @returns {Number} diff --git a/resources/assets/js/messages.js b/resources/assets/js/messages.js index 7b5d8c5ac5..d605b481b3 100644 --- a/resources/assets/js/messages.js +++ b/resources/assets/js/messages.js @@ -7,6 +7,7 @@ export default { 'en_US.combatlogdatatypes': require('../../../lang/en_US/combatlogdatatypes.php'), 'en_US.combatlogeventtypes': require('../../../lang/en_US/combatlogeventtypes.php'), 'en_US.dungeons': require('../../../lang/en_US/dungeons.php'), + 'en_US.enemies': require('../../../lang/en_US/enemies.php'), 'en_US.expansions': require('../../../lang/en_US/expansions.php'), 'en_US.factions': require('../../../lang/en_US/factions.php'), 'en_US.gameserverregions': require('../../../lang/en_US/gameserverregions.php'), @@ -29,6 +30,7 @@ export default { 'de_DE.combatlogdatatypes': require('../../../lang/de_DE/combatlogdatatypes.php'), 'de_DE.combatlogeventtypes': require('../../../lang/de_DE/combatlogeventtypes.php'), 'de_DE.dungeons': require('../../../lang/de_DE/dungeons.php'), + 'de_DE.enemies': require('../../../lang/de_DE/enemies.php'), 'de_DE.expansions': require('../../../lang/de_DE/expansions.php'), 'de_DE.gameserverregions': require('../../../lang/de_DE/gameserverregions.php'), 'de_DE.factions': require('../../../lang/de_DE/factions.php'), @@ -51,6 +53,7 @@ export default { 'ru_RU.combatlogdatatypes': require('../../../lang/ru_RU/combatlogdatatypes.php'), 'ru_RU.combatlogeventtypes': require('../../../lang/ru_RU/combatlogeventtypes.php'), 'ru_RU.dungeons': require('../../../lang/ru_RU/dungeons.php'), + 'ru_RU.enemies': require('../../../lang/ru_RU/enemies.php'), 'ru_RU.expansions': require('../../../lang/ru_RU/expansions.php'), 'ru_RU.gameserverregions': require('../../../lang/ru_RU/gameserverregions.php'), 'ru_RU.factions': require('../../../lang/ru_RU/factions.php'), @@ -73,6 +76,7 @@ export default { 'ho_HO.combatlogdatatypes': require('../../../lang/ho_HO/combatlogdatatypes.php'), 'ho_HO.combatlogeventtypes': require('../../../lang/ho_HO/combatlogeventtypes.php'), 'ho_HO.dungeons': require('../../../lang/ho_HO/dungeons.php'), + 'ho_HO.enemies': require('../../../lang/ho_HO/enemies.php'), 'ho_HO.expansions': require('../../../lang/ho_HO/expansions.php'), 'ho_HO.gameserverregions': require('../../../lang/ho_HO/gameserverregions.php'), 'ho_HO.factions': require('../../../lang/ho_HO/factions.php'),