Skip to content

Translations update from Weblate#51

Merged
Zintixx merged 244 commits into
mainfrom
weblate
May 11, 2026
Merged

Translations update from Weblate#51
Zintixx merged 244 commits into
mainfrom
weblate

Conversation

@Maple2Bot
Copy link
Copy Markdown
Collaborator

@Maple2Bot Maple2Bot commented Apr 4, 2026

Translations update from Weblate for MapleStory 2/String Common.

Current translation status:

Weblate translation status

Summary by CodeRabbit

  • New Features

    • Added thousands of new items, skills, NPCs, quests, maps, dungeons, events and status effects.
  • Localization & Content

    • Large expansion/completion of English (and JP/CN/KR/PT) text: many names, quest texts, UI strings, dungeon descriptions and tooltips; several map names corrected.
  • Quality

    • Replaced placeholders with full quest/dungeon text, clarified effect/tooltips, removed empty skill placeholders, and fixed file formatting.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 4, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Large localization JSON updates across English files: many new and updated entries for items, maps, NPCs, quests, skills, effects, UI strings, and dungeon entrances; two empty skill keys removed; added one small Portuguese item entry. No code logic changes. (28 words)

Changes

Cohort / File(s) Summary
Item data (en/pt)
WeblateConverter/Json/en/itemname.json, WeblateConverter/Json/pt/itemname.json
Added hundreds of new item records (many keys now include "name", many include "class" like "mouth", "eye", "earring", with gender/locale variants); updated several existing face‑mark/hat entries to include "name"; small Portuguese addition 10400238--.
Map names (en)
WeblateConverter/Json/en/mapname.json
Corrected several existing map name values and appended numerous test/QA/develop map name entries (many 999999xx-Develop- and related keys).
NPC names (en)
WeblateConverter/Json/en/npcname.json
Appended a very large batch of new NPC/content name mappings across many ID families (Event, EpicApocalypse, DungeonOS, DarkTear, Kritias, WorldChampionMushroom, etc.).
Quest descriptions (en)
WeblateConverter/Json/en/questdescription_final.json
Replaced placeholder desc/manual/complete values with full English quest text for multiple existing quests; added many new quest entries (JP/CN event series, mentoring/KarkarIsland, Fame entries) with name, desc, manual, and/or complete fields.
Dungeon / field entrance (en)
WeblateConverter/Json/en/stringfieldenterance.json
Updated 23044002-DungeonOpen70AH3- to include uiDescription; added many new dungeon/entrance keys—some name only, many with uiDescription including rules, score guidance, revive/party recommendations.
Skill names (en)
WeblateConverter/Json/en/skillname.json
Removed two empty entries (70000007--, 90000092--); added a very large set of new skill ID→name mappings across many ID ranges; added EOF newline.
Status/effect descriptions (en)
WeblateConverter/Json/en/stringadditionaldescription.json
Added numerous new effect/status entries generally containing name, tooltipDescription, and level (some omit fields); added EOF newline.
Common UI / localization strings (en)
WeblateConverter/Json/en/stringcommon.json
Populated previously-empty UI strings (item option labels, mount/dungeon/shop texts) and added many new UI/localization keys (Treewatering event JP/CN, Skin2tab/codi messages, guild events, admin/test messages, lifecycle/expiration strings, and other UI texts).

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐇 I hopped through JSON gardens bright,

I tucked in names by moonlit byte,
NPCs, quests, and dungeons new,
Tiny keys with meanings true,
A carrot patch of strings—delight!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Translations update from Weblate' accurately reflects the main change: a bulk translation update across multiple JSON localization files from the Weblate translation platform.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch weblate

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 8

🧹 Nitpick comments (1)
WeblateConverter/Json/en/stringcommon.json (1)

19395-19397: Minor: Format specifier inconsistency.

The first placeholder uses {0:2d} (no zero-padding) while all subsequent placeholders use {X:02d} (zero-padded). If this represents a year in YY format, consider using {0:02d} for consistency.

Suggested fix
   "s_maple_survival_ui_season_period-SurvivalContents01-KR": {
-    "value": "{0:2d}.{1:02d}.{2:02d} {3:02d}:{4:02d} ~ {5:02d}.{6:02d}.{7:02d} {8:02d}:{9:02d}"
+    "value": "{0:02d}.{1:02d}.{2:02d} {3:02d}:{4:02d} ~ {5:02d}.{6:02d}.{7:02d} {8:02d}:{9:02d}"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/stringcommon.json` around lines 19395 - 19397, The
format string under "s_maple_survival_ui_season_period-SurvivalContents01-KR"
contains an inconsistent placeholder `{0:2d}` while all others use zero-padding;
update that first placeholder to `{0:02d}` so the year (or first field) is
zero-padded consistently with the rest of the placeholders in the value.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@WeblateConverter/Json/en/itemname.json`:
- Around line 136694-136738: Multiple distinct item IDs in the JSON share
identical "name" values—verify and correct whether these are intentional
duplicates or copy/paste errors: check IDs 11020309-- and 11020311-- (both "Warm
Roasted Sweet Potato (M)"), 11020310-- and 11020312-- (both "Warm Roasted Sweet
Potato (F)"), 11020409-- and 11020412-- (both "Professional Pencil (M)"), and
11020410-- and 11020413-- (both "Professional Pencil (F)"); if they should be
distinct variants, update the "name" fields to the correct variant names,
otherwise document/annotate that the duplicate names across these IDs are
intentional.

In `@WeblateConverter/Json/en/questdescription_final.json`:
- Around line 46697-46701: The desc for quest ID "30000370-Event-JP" starts with
a fragment ("$npcName:11004777$. It contained a message..."); update the
beginning of the desc field so it's a complete sentence — e.g., prepend a
subject such as "You received a letter from $npcName:11004777$." or "A letter
from $npcName:11004777$ arrived." so the full sentence reads naturally and
preserves the existing map ($map:63000072$) and second sentence ("Let's head to
$map:63000072$ and meet $npcName:11004345$.") as well as the accessibility note.

In `@WeblateConverter/Json/en/skillname.json`:
- Around line 4241-4243: The JSON contains inconsistent variants for the same
skill numeric ID 10100201 (key "10100201--" uses "Guardian's Wing" while another
variant uses "Guardian's Wings"); update the value for the "name" field in the
"10100201--" entry to exactly match the established variant ("Guardian's Wings")
and scan other keys starting with "10100201" to ensure all name strings are
identical so the UI displays a consistent skill name across variants.

In `@WeblateConverter/Json/en/stringadditionaldescription.json`:
- Around line 24940-24942: Update the tooltipDescription for the "Confusion
Powder" entry to use natural English phrasing; replace the awkward "mind falling
into a stupor!\nStunned, unable to move" with a clearer variant such as "Your
mind slips into a stupor.\nStunned and unable to move" (or "Your mind falls into
a stupor.\nStunned and unable to move") by editing the tooltipDescription value
for the "Confusion Powder" object.

In `@WeblateConverter/Json/en/stringcommon.json`:
- Around line 19404-19406: The string value for the key
s_msg_item_active_codi_tab_limitless-Skin2tab- contains an unintended trailing
space at the end of "Would you like to use the item? "; remove the trailing
space so the value becomes "Would you like to use the item?" (preserve the
newline before it if intentional), updating the JSON entry for
s_msg_item_active_codi_tab_limitless-Skin2tab- accordingly.

In `@WeblateConverter/Json/en/stringfieldenterance.json`:
- Around line 760-763: The "name" value for the object keyed by
"23037002-Kritias_Paika01-" contains a typo ("Arcaina Delphion"); change the
name field in that object from "Arcaina Delphion" to "Arcana Delphion" so it
matches the NA key and other usages (verify only the "name" property needs
updating, e.g., in the "23037002-Kritias_Paika01-" object).
- Around line 788-790: The entry with key "23045002-DungeonOpen70AH4-" uses the
incorrect proper noun "Bayar" in the "name" field ("Phantom of the Forgotten
Bayar"); change it to the consistent spelling "Vayar" so the name becomes
"Phantom of the Forgotten Vayar" to match other entries in the file.
- Around line 808-810: The JSON entry keyed "23050003-DungeonOpen70CH5-" is
missing the expected uiDescription field; add a uiDescription property alongside
the existing name (e.g., "uiDescription": "Placeholder description for Crazy
Black Bean's Playground [Normal]") so the object shape matches other 230xxxxx
dungeon entries and avoids rendering/fallback issues; update the object for key
"23050003-DungeonOpen70CH5-" to include this uiDescription string.

---

Nitpick comments:
In `@WeblateConverter/Json/en/stringcommon.json`:
- Around line 19395-19397: The format string under
"s_maple_survival_ui_season_period-SurvivalContents01-KR" contains an
inconsistent placeholder `{0:2d}` while all others use zero-padding; update that
first placeholder to `{0:02d}` so the year (or first field) is zero-padded
consistently with the rest of the placeholders in the value.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 88b1bbc8-8535-4fc1-a4f2-84ef04a4bacd

📥 Commits

Reviewing files that changed from the base of the PR and between b223616 and 0fe55ef.

📒 Files selected for processing (9)
  • WeblateConverter/Json/en/itemname.json
  • WeblateConverter/Json/en/mapname.json
  • WeblateConverter/Json/en/npcname.json
  • WeblateConverter/Json/en/questdescription_final.json
  • WeblateConverter/Json/en/skillname.json
  • WeblateConverter/Json/en/stringadditionaldescription.json
  • WeblateConverter/Json/en/stringcommon.json
  • WeblateConverter/Json/en/stringfieldenterance.json
  • WeblateConverter/Json/pt/itemname.json

Comment on lines +136694 to +136738
"11020309--": {
"name": "Warm Roasted Sweet Potato (M)"
},
"11020311--": {
"name": "Warm Roasted Sweet Potato (M)"
},
"11020310--": {
"name": "Warm Roasted Sweet Potato (F)"
},
"11020395--": {
"name": "Cozy Cotton Puff Breath (M)"
},
"11020406--": {
"name": "Whistle (F)"
},
"11020312--": {
"name": "Warm Roasted Sweet Potato (F)"
},
"11020405--": {
"name": "Whistle (M)"
},
"11020396--": {
"name": "Cozy Cotton Puff Breath (F)"
},
"11020408--": {
"name": "Cool Ice Candy (F)"
},
"11020409--": {
"name": "Professional Pencil (M)"
},
"11020407--": {
"name": "Cool Ice Candy (M)"
},
"11020410--": {
"name": "Professional Pencil (F)"
},
"11020411--": {
"name": "Red Celestial Mask"
},
"11020413--": {
"name": "Professional Pencil (F)"
},
"11020412--": {
"name": "Professional Pencil (M)"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Read-only verification: list duplicated names for the newly added ID set.

python - <<'PY'
import json
from collections import defaultdict

path = "WeblateConverter/Json/en/itemname.json"
with open(path, encoding="utf-8") as f:
    data = json.load(f)

focus_ids = {
    "11020309--", "11020310--", "11020311--", "11020312--",
    "11020409--", "11020410--", "11020412--", "11020413--"
}

by_name = defaultdict(list)
for item_id, payload in data.items():
    name = payload.get("name")
    if name:
        by_name[name].append(item_id)

for name, ids in sorted(by_name.items()):
    overlap = sorted(set(ids) & focus_ids)
    if len(overlap) > 1:
        print(f"{name}: {overlap}")
PY

Repository: MS2Community/MapleStory2-XML

Length of output: 299


Duplicated item names found across distinct IDs—clarification needed.

Lines 136694–136738 contain four item names assigned to multiple IDs each:

  • Warm Roasted Sweet Potato (M): IDs 11020309-- and 11020311--
  • Warm Roasted Sweet Potato (F): IDs 11020310-- and 11020312--
  • Professional Pencil (M): IDs 11020409-- and 11020412--
  • Professional Pencil (F): IDs 11020410-- and 11020413--

Verify whether these IDs represent intentionally distinct variants that share the same name, or if this is a copy/paste error requiring different naming per ID.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/itemname.json` around lines 136694 - 136738,
Multiple distinct item IDs in the JSON share identical "name" values—verify and
correct whether these are intentional duplicates or copy/paste errors: check IDs
11020309-- and 11020311-- (both "Warm Roasted Sweet Potato (M)"), 11020310-- and
11020312-- (both "Warm Roasted Sweet Potato (F)"), 11020409-- and 11020412--
(both "Professional Pencil (M)"), and 11020410-- and 11020413-- (both
"Professional Pencil (F)"); if they should be distinct variants, update the
"name" fields to the correct variant names, otherwise document/annotate that the
duplicate names across these IDs are intentional.

Comment thread WeblateConverter/Json/en/questdescription_final.json
Comment on lines +4241 to +4243
"10100201--": {
"name": "Guardian's Wing"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Keep duplicate skill variants text-consistent for the same skill ID.

Line 4242 ("Guardian's Wing") conflicts with the existing variant for the same numeric ID ("Guardian's Wings" at Line 2739). Please align the wording to avoid inconsistent UI text depending on key variant.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/skillname.json` around lines 4241 - 4243, The JSON
contains inconsistent variants for the same skill numeric ID 10100201 (key
"10100201--" uses "Guardian's Wing" while another variant uses "Guardian's
Wings"); update the value for the "name" field in the "10100201--" entry to
exactly match the established variant ("Guardian's Wings") and scan other keys
starting with "10100201" to ensure all name strings are identical so the UI
displays a consistent skill name across variants.

Comment on lines +24940 to +24942
"name": "Confusion Powder",
"tooltipDescription": "Inhaled a strange powder, mind falling into a stupor!\nStunned, unable to move"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Polish awkward English phrasing in tooltip text.

"mind falling into a stupor" reads unnatural in English. Consider a clearer phrasing for localization quality consistency.

✏️ Suggested wording update
   "40006011--": {
     "name": "Confusion Powder",
-    "tooltipDescription": "Inhaled a strange powder, mind falling into a stupor!\nStunned, unable to move"
+    "tooltipDescription": "Inhaled a strange powder and fell into a stupor!\nStunned, unable to move"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/stringadditionaldescription.json` around lines 24940
- 24942, Update the tooltipDescription for the "Confusion Powder" entry to use
natural English phrasing; replace the awkward "mind falling into a
stupor!\nStunned, unable to move" with a clearer variant such as "Your mind
slips into a stupor.\nStunned and unable to move" (or "Your mind falls into a
stupor.\nStunned and unable to move") by editing the tooltipDescription value
for the "Confusion Powder" object.

Comment thread WeblateConverter/Json/en/stringcommon.json
Comment on lines +760 to +763
"23037002-Kritias_Paika01-": {
"name": "Arcaina Delphion",
"uiDescription": "<font color='#FFD400'>* Item Score Guide</font>\n<font color='#00aaef'>Weapon, Top, Bottom</font>: Level 70 <font color='#c888ff'>Excellent</font> Elite Adventure Equipment Enchant Level 10\n<font color='#00aaef'>Hat, Gloves, Shoes</font>: Level 70 <font color='#c888ff'>Excellent</font> Enchant Level 10\n<font color='#00aaef'>Earrings, Cape, Necklace, Ring, Belt</font>: Level 60 <font color='#c888ff'>Excellent</font>\n\nZakum, the demon tree said to grant immense power to those who offer their souls. Movement to summon him in Kritias has been detected. $npcName:11004430$ seeks to gain power at the cost of $npcName:23000301$'s soul. Can $npcName:23000301$ be stopped to foil $npcName:11004430$'s ambitions?\n\n<font color='#00aaef'>The number of revives at safe locations is limited.</font>\n\n<font color='#FFD400'>[4-player party recommended]</font>"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Fix probable typo in dungeon name.

Line 761 uses Arcaina Delphion; this is inconsistent with Arcana Delphion used in the corresponding NA key.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/stringfieldenterance.json` around lines 760 - 763,
The "name" value for the object keyed by "23037002-Kritias_Paika01-" contains a
typo ("Arcaina Delphion"); change the name field in that object from "Arcaina
Delphion" to "Arcana Delphion" so it matches the NA key and other usages (verify
only the "name" property needs updating, e.g., in the
"23037002-Kritias_Paika01-" object).

Comment thread WeblateConverter/Json/en/stringfieldenterance.json
Comment thread WeblateConverter/Json/en/stringfieldenterance.json
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

♻️ Duplicate comments (1)
WeblateConverter/Json/en/skillname.json (1)

4241-4243: ⚠️ Potential issue | 🟡 Minor

Resolve remaining Guardian's Wing/Guardian's Wings mismatch.

Line 4242 still conflicts with Line 2739 for the same numeric skill ID (10100201), which can surface inconsistent UI text by key variant.

Proposed fix
   "10100201--": {
-    "name": "Guardian's Wing"
+    "name": "Guardian's Wings"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/skillname.json` around lines 4241 - 4243, There is a
naming inconsistency for skill ID 10100201: the entry with key "10100201--"
currently has "name": "Guardian's Wing" which conflicts with the other variant
for the same numeric ID (10100201) that uses "Guardian's Wings"; update the file
so both entries use the same exact name and remove or merge duplicate key
variants (ensure the key format for 10100201 matches the project convention and
only one entry exists), i.e., pick the correct string ("Guardian's Wing" or
"Guardian's Wings"), replace all occurrences of that numeric ID's name to the
chosen form, and consolidate the keys so the JSON contains a single canonical
entry for 10100201.
🧹 Nitpick comments (1)
WeblateConverter/Json/en/stringcommon.json (1)

19515-19517: Note: Typo "enterance" in key name.

The key s_home_block_err_enterance_block-- contains a typo—should be "entrance". However, since this key must match the source XML, fixing it here alone would break the mapping. This should be addressed upstream in the source data if consistency is desired.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/stringcommon.json` around lines 19515 - 19517, The
JSON key s_home_block_err_enterance_block-- contains a typo ("enterance"); fix
it in the upstream source XML (rename the source key to
s_home_block_err_entrance_block--) and then regenerate the localization outputs
so all mappings (including the JSON entry) update consistently; if you cannot
change the upstream source immediately, add a fallback alias in the source
generation step that maps s_home_block_err_entrance_block-- to the same value as
s_home_block_err_enterance_block-- and plan a follow-up to remove the alias
after the upstream correction.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@WeblateConverter/Json/en/itemname.json`:
- Around line 137075-137119: Several earring records have inconsistent casing
for the class value; update the entries for keys "11220113--", "11220114--",
"11220125--", and "11220126--" so that their "class" field is normalized to the
same lowercase value used elsewhere ("earring") to prevent downstream
misclassification; locate the objects with those keys and change "Earring" to
"earring".

In `@WeblateConverter/Json/en/skillname.json`:
- Around line 4721-4723: The skill name value for key "10600291--" currently
reads "Booby Trap MK2" and should be normalized to the established spacing
convention "Booby Trap MK 2"; update the value string for the JSON entry with
key "10600291--" to "Booby Trap MK 2" so it matches the other variant (e.g.,
"Booby Trap MK 2" at the other entry).
- Around line 4415-4426: The entries for skill IDs "10300234--", "10300236--",
"10300235--", and "10300233--" use the non-canonical name "BBQ Party"; change
each "name" value to the canonical "Barbecue Party" to match other variants
(e.g., the existing "1030023x" family entries) so localization is consistent
across all variants.

In `@WeblateConverter/Json/en/stringcommon.json`:
- Around line 19660-19661: The JSON entry with key
"s_character_ability_merat_reset_button-CharacterAbility-" contains an
unintended leading space in its "value" (" Reset"); remove the leading space so
the value is "Reset" to match the other reset string (e.g., the entry on line
19657) and keep UI text consistent.

---

Duplicate comments:
In `@WeblateConverter/Json/en/skillname.json`:
- Around line 4241-4243: There is a naming inconsistency for skill ID 10100201:
the entry with key "10100201--" currently has "name": "Guardian's Wing" which
conflicts with the other variant for the same numeric ID (10100201) that uses
"Guardian's Wings"; update the file so both entries use the same exact name and
remove or merge duplicate key variants (ensure the key format for 10100201
matches the project convention and only one entry exists), i.e., pick the
correct string ("Guardian's Wing" or "Guardian's Wings"), replace all
occurrences of that numeric ID's name to the chosen form, and consolidate the
keys so the JSON contains a single canonical entry for 10100201.

---

Nitpick comments:
In `@WeblateConverter/Json/en/stringcommon.json`:
- Around line 19515-19517: The JSON key s_home_block_err_enterance_block--
contains a typo ("enterance"); fix it in the upstream source XML (rename the
source key to s_home_block_err_entrance_block--) and then regenerate the
localization outputs so all mappings (including the JSON entry) update
consistently; if you cannot change the upstream source immediately, add a
fallback alias in the source generation step that maps
s_home_block_err_entrance_block-- to the same value as
s_home_block_err_enterance_block-- and plan a follow-up to remove the alias
after the upstream correction.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 4a9986cc-661d-402c-9997-e731227fbb2e

📥 Commits

Reviewing files that changed from the base of the PR and between 0fe55ef and b471800.

📒 Files selected for processing (8)
  • WeblateConverter/Json/en/itemname.json
  • WeblateConverter/Json/en/mapname.json
  • WeblateConverter/Json/en/npcname.json
  • WeblateConverter/Json/en/questdescription_final.json
  • WeblateConverter/Json/en/skillname.json
  • WeblateConverter/Json/en/stringadditionaldescription.json
  • WeblateConverter/Json/en/stringcommon.json
  • WeblateConverter/Json/en/stringfieldenterance.json
✅ Files skipped from review due to trivial changes (2)
  • WeblateConverter/Json/en/npcname.json
  • WeblateConverter/Json/en/stringfieldenterance.json
🚧 Files skipped from review as they are similar to previous changes (3)
  • WeblateConverter/Json/en/questdescription_final.json
  • WeblateConverter/Json/en/stringadditionaldescription.json
  • WeblateConverter/Json/en/mapname.json

Comment on lines +137075 to +137119
"11220113--": {
"class": "Earring",
"name": "Charming Star Earring (M)"
},
"11220112--": {
"name": "Happy Christmas Gift Box Earring (F)"
},
"11220110--": {
"name": "Milky Way Starlight Earring (F)"
},
"11220111--": {
"name": "Happy Christmas Gift Box Earring (M)"
},
"11220109--": {
"name": "Milky Way Starlight Earring (M)"
},
"11220114--": {
"name": "Charming Star Earring (F)",
"class": "Earring"
},
"11220120--": {
"name": "Charming Star Earring (F)"
},
"11220119--": {
"name": "Charming Star Earring (M)"
},
"11220122--": {
"name": "Frozen Crystal Earring (F)"
},
"11220123--": {
"name": "Snow Tail Earring (M)"
},
"11220121--": {
"name": "Frozen Crystal Earring (M)"
},
"11220124--": {
"name": "Snow Tail Earring (F)"
},
"11220125--": {
"class": "Earring",
"name": "Sunflower Earring (M)"
},
"11220126--": {
"class": "Earring",
"name": "Sunflower Earring (F)"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Normalize class value casing for earring entries.

Line 137076, Line 137093, Line 137114, and Line 137118 use "class": "Earring" while surrounding records use "class": "earring". If classification is case-sensitive downstream, these entries can be miscategorized.

Proposed fix
-    "class": "Earring",
+    "class": "earring",
...
-    "class": "Earring"
+    "class": "earring"
...
-    "class": "Earring",
+    "class": "earring",
...
-    "class": "Earring",
+    "class": "earring",
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"11220113--": {
"class": "Earring",
"name": "Charming Star Earring (M)"
},
"11220112--": {
"name": "Happy Christmas Gift Box Earring (F)"
},
"11220110--": {
"name": "Milky Way Starlight Earring (F)"
},
"11220111--": {
"name": "Happy Christmas Gift Box Earring (M)"
},
"11220109--": {
"name": "Milky Way Starlight Earring (M)"
},
"11220114--": {
"name": "Charming Star Earring (F)",
"class": "Earring"
},
"11220120--": {
"name": "Charming Star Earring (F)"
},
"11220119--": {
"name": "Charming Star Earring (M)"
},
"11220122--": {
"name": "Frozen Crystal Earring (F)"
},
"11220123--": {
"name": "Snow Tail Earring (M)"
},
"11220121--": {
"name": "Frozen Crystal Earring (M)"
},
"11220124--": {
"name": "Snow Tail Earring (F)"
},
"11220125--": {
"class": "Earring",
"name": "Sunflower Earring (M)"
},
"11220126--": {
"class": "Earring",
"name": "Sunflower Earring (F)"
"11220113--": {
"class": "earring",
"name": "Charming Star Earring (M)"
},
"11220112--": {
"name": "Happy Christmas Gift Box Earring (F)"
},
"11220110--": {
"name": "Milky Way Starlight Earring (F)"
},
"11220111--": {
"name": "Happy Christmas Gift Box Earring (M)"
},
"11220109--": {
"name": "Milky Way Starlight Earring (M)"
},
"11220114--": {
"name": "Happy Christmas Gift Box Earring (M)",
"class": "earring"
},
"11220120--": {
"name": "Charming Star Earring (F)"
},
"11220119--": {
"name": "Charming Star Earring (M)"
},
"11220122--": {
"name": "Frozen Crystal Earring (F)"
},
"11220123--": {
"name": "Snow Tail Earring (M)"
},
"11220121--": {
"name": "Frozen Crystal Earring (M)"
},
"11220124--": {
"name": "Snow Tail Earring (F)"
},
"11220125--": {
"class": "earring",
"name": "Sunflower Earring (M)"
},
"11220126--": {
"class": "earring",
"name": "Sunflower Earring (F)"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/itemname.json` around lines 137075 - 137119, Several
earring records have inconsistent casing for the class value; update the entries
for keys "11220113--", "11220114--", "11220125--", and "11220126--" so that
their "class" field is normalized to the same lowercase value used elsewhere
("earring") to prevent downstream misclassification; locate the objects with
those keys and change "Earring" to "earring".

Comment on lines +4415 to +4426
"10300234--": {
"name": "BBQ Party"
},
"10300236--": {
"name": "BBQ Party"
},
"10300235--": {
"name": "BBQ Party"
},
"10300233--": {
"name": "BBQ Party"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Use one canonical name for the 1030023x variants.

Lines 4416-4425 use BBQ Party, while existing variants for the same skill family use Barbecue Party (e.g., Line 3372+), creating inconsistent localization output.

Proposed fix
   "10300234--": {
-    "name": "BBQ Party"
+    "name": "Barbecue Party"
   },
   "10300236--": {
-    "name": "BBQ Party"
+    "name": "Barbecue Party"
   },
   "10300235--": {
-    "name": "BBQ Party"
+    "name": "Barbecue Party"
   },
   "10300233--": {
-    "name": "BBQ Party"
+    "name": "Barbecue Party"
   },
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"10300234--": {
"name": "BBQ Party"
},
"10300236--": {
"name": "BBQ Party"
},
"10300235--": {
"name": "BBQ Party"
},
"10300233--": {
"name": "BBQ Party"
},
"10300234--": {
"name": "Barbecue Party"
},
"10300236--": {
"name": "Barbecue Party"
},
"10300235--": {
"name": "Barbecue Party"
},
"10300233--": {
"name": "Barbecue Party"
},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/skillname.json` around lines 4415 - 4426, The
entries for skill IDs "10300234--", "10300236--", "10300235--", and "10300233--"
use the non-canonical name "BBQ Party"; change each "name" value to the
canonical "Barbecue Party" to match other variants (e.g., the existing
"1030023x" family entries) so localization is consistent across all variants.

Comment on lines +4721 to +4723
"10600291--": {
"name": "Booby Trap MK2"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Normalize MK2 formatting to existing MK 2 style.

Line 4722 (Booby Trap MK2) is inconsistent with the established variant (Booby Trap MK 2 at Line 3768).

Proposed fix
   "10600291--": {
-    "name": "Booby Trap MK2"
+    "name": "Booby Trap MK 2"
   },
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"10600291--": {
"name": "Booby Trap MK2"
},
"10600291--": {
"name": "Booby Trap MK 2"
},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/skillname.json` around lines 4721 - 4723, The skill
name value for key "10600291--" currently reads "Booby Trap MK2" and should be
normalized to the established spacing convention "Booby Trap MK 2"; update the
value string for the JSON entry with key "10600291--" to "Booby Trap MK 2" so it
matches the other variant (e.g., "Booby Trap MK 2" at the other entry).

Comment thread WeblateConverter/Json/en/stringcommon.json
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

♻️ Duplicate comments (3)
WeblateConverter/Json/en/questdescription_final.json (1)

46706-46710: ⚠️ Potential issue | 🟡 Minor

Complete the opening sentence in this quest description.

Line 46709 still starts as a fragment ("$npcName:11004777$. It contained..."), so the description reads unnaturally in-game.

📝 Proposed text fix
-    "desc": "$npcName:11004777$. It contained a message asking you to help $npcName:11004345$—a girl facing the greatest crisis of her 16 years of life—at $map:63000072$.\nLet's head to $map:63000072$ and meet $npcName:11004345$.\n\n* Accessible via the Event Map Shortcut button"
+    "desc": "You received a letter from $npcName:11004777$. It contained a message asking you to help $npcName:11004345$—a girl facing the greatest crisis of her 16 years of life—at $map:63000072$.\nLet's head to $map:63000072$ and meet $npcName:11004345$.\n\n* Accessible via the Event Map Shortcut button"
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/questdescription_final.json` around lines 46706 -
46710, The "desc" value for quest id "30000370-Event-JP" begins with a sentence
fragment ("$npcName:11004777$. It contained..."); update the opening to a
complete sentence inside the "desc" string—for example, start with "You found a
letter from $npcName:11004777$." or "A note from $npcName:11004777$ was
inside."—so the full "desc" reads naturally (locate the "desc" field for
30000370-Event-JP and replace the fragment with a complete opening sentence).
WeblateConverter/Json/en/stringcommon.json (2)

19404-19405: ⚠️ Potential issue | 🟡 Minor

Remove trailing space in Skin2tab confirmation text.

Line 19405 ends with an extra trailing space after item?, which is likely unintentional.

Suggested fix
   "s_msg_item_active_codi_tab_limitless-Skin2tab-": {
-    "value": "You can use this costume item without limit.\nWould you like to use the item? "
+    "value": "You can use this costume item without limit.\nWould you like to use the item?"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/stringcommon.json` around lines 19404 - 19405, The
string value for key "s_msg_item_active_codi_tab_limitless-Skin2tab-" contains
an unintended trailing space after the question mark; edit the JSON entry for
that key and remove the final space so the value ends with "Would you like to
use the item?" (keep the existing newline if intended).

19660-19661: ⚠️ Potential issue | 🟡 Minor

Remove unintended leading space in reset button label.

Line 19661 uses " Reset" while Line 19658 uses "Reset", causing inconsistent UI copy.

Suggested fix
   "s_character_ability_merat_reset_button-CharacterAbility-": {
-    "value": " Reset"
+    "value": "Reset"
   },
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/stringcommon.json` around lines 19660 - 19661, The
JSON entry for the key
"s_character_ability_merat_reset_button-CharacterAbility-" contains an
unintended leading space in its value (" Reset"); remove the leading whitespace
so the value is exactly "Reset" to match the other instance and ensure
consistent UI copy.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@WeblateConverter/Json/en/questdescription_final.json`:
- Around line 46788-46790: The "manual" entry in this JSON has a mismatched
simulator name: change the value of the "manual" key from "[Neilin's Battle
Simulator]" to "[Nairin's Combat Simulator]" so it matches the "desc" and the
canonical label used elsewhere; update the "manual" string (the JSON key
"manual") accordingly to exactly "Fortress Rumble,\n[Nairin's Combat
Simulator]\nClear".

In `@WeblateConverter/Json/en/stringfieldenterance.json`:
- Around line 840-842: The entry "24096001-Colosseum02-" and other similar alias
entries use variant spellings (e.g., "Queenbean" vs "Queen Bean", "Frostbite" vs
"Frostpillar", "Infernok" vs "Infernog", "Madracan" vs "Madrakan", "Otherworld"
vs "Other World", "Trris" vs "Tris"); update the displayed "name" values to
match the established canonical dungeon titles used elsewhere (e.g., "Queen
Bean", "Frostpillar", "Infernog", "Madrakan", "Other World", "Tris") while
leaving the alias keys/strings verbatim so search, sorting, and UI labels remain
unchanged; check the other referenced entries (lines noted in the comment) and
make the same substitutions in the corresponding "name" fields for consistency.
- Around line 1131-1136: Several Japanese entries (e.g., object keys
"21018001--JP", "21016001-ShrineOfGuidance-JP", "21019001--JP" and the Fame
Challenge JP entries) only define uiDescription and are missing the required
localized "name" property; add a "name" field to each of these JP objects
(matching the pattern used for other locales) with the appropriate Japanese
title string (or a placeholder localized title) so these records serialize with
a proper localized title. Ensure you add the "name" key inside each object
alongside "uiDescription" for the keys mentioned and any other JP entries in the
same block that currently lack "name".
- Around line 744-746: The uiDescription entries like
"23044002-DungeonOpen70AH3-" reference dungeonRoomIDs that are missing from the
dungeon table; add matching <dungeonRoom id="23044002">, <dungeonRoom
id="23110001"> and <dungeonRoom id="29007001"> definitions to
Xml/dungeonroom.xml (and any additional missing IDs referenced by similar keys
such as the ones around the other noted entries) so the uiDescription records
become reachable; ensure the new dungeonRoom entries use the same IDs as the
JSON keys (e.g., 23044002) and include the required attributes/children expected
by the game’s dungeon lookup code.

---

Duplicate comments:
In `@WeblateConverter/Json/en/questdescription_final.json`:
- Around line 46706-46710: The "desc" value for quest id "30000370-Event-JP"
begins with a sentence fragment ("$npcName:11004777$. It contained..."); update
the opening to a complete sentence inside the "desc" string—for example, start
with "You found a letter from $npcName:11004777$." or "A note from
$npcName:11004777$ was inside."—so the full "desc" reads naturally (locate the
"desc" field for 30000370-Event-JP and replace the fragment with a complete
opening sentence).

In `@WeblateConverter/Json/en/stringcommon.json`:
- Around line 19404-19405: The string value for key
"s_msg_item_active_codi_tab_limitless-Skin2tab-" contains an unintended trailing
space after the question mark; edit the JSON entry for that key and remove the
final space so the value ends with "Would you like to use the item?" (keep the
existing newline if intended).
- Around line 19660-19661: The JSON entry for the key
"s_character_ability_merat_reset_button-CharacterAbility-" contains an
unintended leading space in its value (" Reset"); remove the leading whitespace
so the value is exactly "Reset" to match the other instance and ensure
consistent UI copy.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: de330f0a-afd7-41c5-b444-2bbdf416d5c5

📥 Commits

Reviewing files that changed from the base of the PR and between b471800 and 071668f.

📒 Files selected for processing (8)
  • WeblateConverter/Json/en/itemname.json
  • WeblateConverter/Json/en/mapname.json
  • WeblateConverter/Json/en/npcname.json
  • WeblateConverter/Json/en/questdescription_final.json
  • WeblateConverter/Json/en/skillname.json
  • WeblateConverter/Json/en/stringadditionaldescription.json
  • WeblateConverter/Json/en/stringcommon.json
  • WeblateConverter/Json/en/stringfieldenterance.json
✅ Files skipped from review due to trivial changes (2)
  • WeblateConverter/Json/en/itemname.json
  • WeblateConverter/Json/en/stringadditionaldescription.json
🚧 Files skipped from review as they are similar to previous changes (1)
  • WeblateConverter/Json/en/npcname.json

Comment on lines +46788 to +46790
"desc": "<font color=\"#00a2ed\">Fortress Rumble Mission</font>\nFor the perfect combat simulation,\nyour battle data is required.\n\nIn Fortress Rumble, you can participate in $npcName:11003585$'s virtual combat training\nat [Nairin's Combat Simulator].\n",
"descFameUI": "<font color=\"#00a2ed\">Fortress Rumble Mission</font>\nFor the perfect combat simulation, your battle data is required.",
"manual": "Fortress Rumble,\n[Neilin's Battle Simulator]\nClear",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

# Check how this NPC/simulator is named across English localization files.
rg -n --type=json -C2 '11003585|Nairin|Neilin|Combat Simulator|Battle Simulator'

Repository: MS2Community/MapleStory2-XML

Length of output: 50385


🏁 Script executed:

#!/bin/bash
# Extract the specific quest entry around lines 46788-46790
sed -n '46786,46792p' WeblateConverter/Json/en/questdescription_final.json

Repository: MS2Community/MapleStory2-XML

Length of output: 709


Normalize simulator name in quest manual: use "Nairin's Combat Simulator".

Line 46788 (desc) correctly says [Nairin's Combat Simulator], but line 46790 (manual) incorrectly says [Neilin's Battle Simulator]. Across the codebase, the canonical English label is consistently "Nairin's Combat Simulator" (used in mapname.json, stringfieldenterance.json, and other quest entries). Change the manual field to match.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/questdescription_final.json` around lines 46788 -
46790, The "manual" entry in this JSON has a mismatched simulator name: change
the value of the "manual" key from "[Neilin's Battle Simulator]" to "[Nairin's
Combat Simulator]" so it matches the "desc" and the canonical label used
elsewhere; update the "manual" string (the JSON key "manual") accordingly to
exactly "Fortress Rumble,\n[Nairin's Combat Simulator]\nClear".

Comment on lines 744 to +746
"23044002-DungeonOpen70AH3-": {
"name": "Tronix Bunker of Illusion"
"name": "Tronix Bunker of Illusion",
"uiDescription": "<font color='#FFD400'>* Item Score Guide</font>\n<font color='#00aaef'>Weapon, Top, Bottom, Hat, Gloves, Shoes</font>: Level 70 <font color='#ffd533'>Legendary</font> Enchant Level 13\n<font color='#00aaef'>Earrings, Cape, Necklace, Ring, Belt</font>: Level 70 <font color='#ffd533'>Legendary</font>\n\nThe phantom of <font color='#00aaef'>$npc:23000056$</font>, a robot turned monster as a result of the Mark 52 Project's failure, waits ferociously in $map:02000522$ for something to destroy.\n\n<font color='#00aaef'>The number of revives at safe locations is limited.</font>\n\n<font color='#FFD400'>[4-player party recommended]</font>"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail
python - <<'PY'
from pathlib import Path

ids = ["23044002", "23110001", "29007001"]
matches = {i: [] for i in ids}

for path in Path("Xml").rglob("dungeonroom.xml"):
    text = path.read_text(encoding="utf-8", errors="ignore")
    for i in ids:
        if f'dungeonRoomID="{i}"' in text:
            matches[i].append(str(path))

for i in ids:
    print(f"{i}: {matches[i] or 'MISSING'}")
PY

Repository: MS2Community/MapleStory2-XML

Length of output: 125


Add matching dungeonRoomID definitions to Xml/dungeonroom.xml before these entries can be used in-game.

23044002, 23110001, and 29007001 have no corresponding dungeonRoomID entries in the dungeon table. Without these definitions, the associated uiDescription records are unreachable.

Also applies to lines 848-850, 876-878.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/stringfieldenterance.json` around lines 744 - 746,
The uiDescription entries like "23044002-DungeonOpen70AH3-" reference
dungeonRoomIDs that are missing from the dungeon table; add matching
<dungeonRoom id="23044002">, <dungeonRoom id="23110001"> and <dungeonRoom
id="29007001"> definitions to Xml/dungeonroom.xml (and any additional missing
IDs referenced by similar keys such as the ones around the other noted entries)
so the uiDescription records become reachable; ensure the new dungeonRoom
entries use the same IDs as the JSON keys (e.g., 23044002) and include the
required attributes/children expected by the game’s dungeon lookup code.

Comment thread WeblateConverter/Json/en/stringfieldenterance.json
Comment thread WeblateConverter/Json/en/stringfieldenterance.json
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

♻️ Duplicate comments (1)
WeblateConverter/Json/en/stringcommon.json (1)

19404-19406: ⚠️ Potential issue | 🟡 Minor

Trim the leftover whitespace from these UI strings.

Lines 19405 and 19661 still have trailing/leading spaces. Those will leak into the rendered prompt/button text.

Suggested fix
   "s_msg_item_active_codi_tab_limitless-Skin2tab-": {
-    "value": "You can use this costume item without limit.\nWould you like to use the item? "
+    "value": "You can use this costume item without limit.\nWould you like to use the item?"
   },
...
   "s_character_ability_merat_reset_button-CharacterAbility-": {
-    "value": " Reset"
+    "value": "Reset"
   }

Also applies to: 19660-19661

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/stringcommon.json` around lines 19404 - 19406, The
JSON UI string values contain stray leading/trailing whitespace that will render
in the UI; locate the key "s_msg_item_active_codi_tab_limitless-Skin2tab-" (and
the other similar key around the same block) and remove any leading or trailing
spaces/newlines from the "value" strings so they end exactly with the intended
text (e.g., remove the trailing space after the question mark and any extra line
breaks).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@WeblateConverter/Json/en/skillname.json`:
- Around line 5195-5197: The entry with key "11100031--" has a typo in the name
value "Focusing Animarl"; update that value to the correct term (e.g., "Focusing
Anima") so it matches the naming style used by the related Soul Binder skill
"Animus Focus" (key "11100031-SoulBinder-"); simply replace the string for the
"name" field under "11100031--" with "Focusing Anima".

In `@WeblateConverter/Json/en/stringcommon.json`:
- Around line 19917-19924: The two JSON entries
s_longtermattendgift_dialog_desc-- and s_longtermattendgift_dialog_desc--CN
contain malformed markup ending with an extra dangling '<' after the closing
FONT tags; remove the trailing '<' character from the end of each "value" string
so the markup ends with "</FONT>" and the JSON values remain well-formed and
render correctly.
- Around line 19808-19818: The metadata keys in the JSON entries
s_alliance_quest_completion_ticket_use-FameCompletionTicket-,
s_alliance_quest_completion_ticket_lack-FameCompletionTicket-, and
s_alliance_quest_completion_ticket_error-FameCompletionTicket- are misspelled as
"commend"; update those keys to "comment" so the metadata schema matches
surrounding records (leave the "value" strings unchanged). Locate each object by
the exact key name and rename the "commend" property to "comment" for
consistency.

---

Duplicate comments:
In `@WeblateConverter/Json/en/stringcommon.json`:
- Around line 19404-19406: The JSON UI string values contain stray
leading/trailing whitespace that will render in the UI; locate the key
"s_msg_item_active_codi_tab_limitless-Skin2tab-" (and the other similar key
around the same block) and remove any leading or trailing spaces/newlines from
the "value" strings so they end exactly with the intended text (e.g., remove the
trailing space after the question mark and any extra line breaks).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: e03b6a99-f649-4113-b40e-76c74fb36a87

📥 Commits

Reviewing files that changed from the base of the PR and between 071668f and 501caf8.

📒 Files selected for processing (7)
  • WeblateConverter/Json/en/itemname.json
  • WeblateConverter/Json/en/npcname.json
  • WeblateConverter/Json/en/questdescription_final.json
  • WeblateConverter/Json/en/skillname.json
  • WeblateConverter/Json/en/stringadditionaldescription.json
  • WeblateConverter/Json/en/stringcommon.json
  • WeblateConverter/Json/en/stringfieldenterance.json
✅ Files skipped from review due to trivial changes (1)
  • WeblateConverter/Json/en/itemname.json
🚧 Files skipped from review as they are similar to previous changes (2)
  • WeblateConverter/Json/en/npcname.json
  • WeblateConverter/Json/en/stringadditionaldescription.json

Comment on lines +5195 to +5197
"11100031--": {
"name": "Focusing Animarl"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Typo: "Animarl" should likely be "Anima" or "Animal".

"Focusing Animarl" contains an invalid word. Based on the existing Soul Binder skill "Animus Focus" at Line 2970 (key "11100031-SoulBinder-"), this should probably be "Focusing Anima" or similar.

✏️ Proposed fix
   "11100031--": {
-    "name": "Focusing Animarl"
+    "name": "Focusing Anima"
   },
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"11100031--": {
"name": "Focusing Animarl"
},
"11100031--": {
"name": "Focusing Anima"
},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/skillname.json` around lines 5195 - 5197, The entry
with key "11100031--" has a typo in the name value "Focusing Animarl"; update
that value to the correct term (e.g., "Focusing Anima") so it matches the naming
style used by the related Soul Binder skill "Animus Focus" (key
"11100031-SoulBinder-"); simply replace the string for the "name" field under
"11100031--" with "Focusing Anima".

Comment thread WeblateConverter/Json/en/stringcommon.json
Comment thread WeblateConverter/Json/en/stringcommon.json
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 9

♻️ Duplicate comments (4)
WeblateConverter/Json/en/skillname.json (4)

4721-4723: ⚠️ Potential issue | 🟡 Minor

Match the established MK 2 spacing.

10600291-- uses "Booby Trap MK2", while the matching variant above is "Booby Trap MK 2". This will render the same skill with two different names.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/skillname.json` around lines 4721 - 4723, Update the
inconsistent skill name for the entry with key "10600291--": change the value of
"name" from "Booby Trap MK2" to "Booby Trap MK 2" so it matches the established
spacing used by the matching variant above and prevents duplicate renderings.

4241-4243: ⚠️ Potential issue | 🟡 Minor

Keep the 10100201 variants text-identical.

10100201-- is "Guardian's Wing", but the existing 10100201-JobChange_01- entry above is "Guardian's Wings". One skill ID should not flip between singular and plural names.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/skillname.json` around lines 4241 - 4243, Two
entries for the same base skill ID differ in plurality: the key "10100201--" has
name "Guardian's Wing" while "10100201-JobChange_01-" is "Guardian's Wings";
make them text-identical by updating one to match the other (choose the correct
canonical form) so both "10100201--" and "10100201-JobChange_01-" use the same
name string.

5195-5197: ⚠️ Potential issue | 🟡 Minor

Fix the typo in the Soul Binder alias.

Animarl is not a valid term, and it diverges from the existing 11100031 terminology in this file. Please correct it before importing the string.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/skillname.json` around lines 5195 - 5197, Update the
name value for the JSON entry with key "11100031--": correct the typo "Focusing
Animarl" to "Focusing Animal" in the "name" field for the "11100031--" object so
it matches the existing terminology.

4409-4426: ⚠️ Potential issue | 🟡 Minor

Normalize the 1030023x family to one canonical name.

10300231-- and 10300232-- already use "Barbecue Party", but 10300233-- through 10300236-- switch to "BBQ Party". Keep a single label for this skill family.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/skillname.json` around lines 4409 - 4426, Multiple
entries in the 1030023x family use two different labels; normalize all entries
with IDs "10300231--" through "10300236--" to a single canonical name (use
"Barbecue Party" to match 10300231-- and 10300232--) so that "10300233--",
"10300234--", "10300235--", and "10300236--" are updated from "BBQ Party" to
"Barbecue Party"; ensure the change is applied consistently in the JSON for that
entire skill family.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@WeblateConverter/Json/en/npcname.json`:
- Around line 23531-23536: The two entries with keys
"21401190-DungeonOpen70CH6-" and "21401191-DungeonOpen70CH6-" use the misspelled
name "Deborak Junior"; update their "name" values to the existing spelling
"Devorak Junior" so they match other entries like "Junior Devorak" and maintain
consistency across npcname.json.
- Around line 24557-24583: The Kritias entries (e.g., keys like
"25022200-Kritias02-", "25022204-Kritias02-") incorrectly use "Tieren" in the
"name" values; update those to "Tairen" to match the surrounding Kritias naming
convention (search for and replace "Tieren" → "Tairen" in the Kritias block),
and run the same fix for the nearby IDs range referenced (24809–24825) to ensure
consistent use of "Tairen".
- Around line 23231-23233: The JSON entry with key "11004823-EpicApocalypse01-"
currently uses the spelling "Phantom Bayar" which conflicts with the established
"Vayar" spelling; update the value of "name" for that key to "Phantom Vayar" and
make the same replacement for the other affected entries (the groups around IDs
23543-23545 and 23549-23551) so all boss-family names consistently use "Vayar".
- Around line 23420-23422: Several Turka unit entries (e.g., the key
"21010208-Kritias_Turka02-" whose name is "Turka Legion Alek (Senior)") use
inconsistent spellings Alek/Allek/Alex; standardize these to a single canonical
spelling (choose "Alek") by updating the "name" values for that key and all
other Turka entries referenced (lines indicated around 23429-23433, 23819-23830,
23837-23863) to replace "Allek"/"Alex" with "Alek" so the family name is
consistent across the JSON.
- Around line 23342-23344: Multiple entries use inconsistent spellings "Blue
Luke" vs "Blue Luk"; pick the correct canonical spelling and make all
OS01/Dungeon entries consistent. Update the value for the JSON object with key
"11004864-DungeonOS01-" (currently "Blue Luke") and the entries with IDs
24020-24022 and 24029-24034 so they all use the same chosen spelling (e.g.,
change "Blue Luke" → "Blue Luk" or vice versa) ensuring no trailing/leading
whitespace and preserving the surrounding JSON structure and quoting.
- Around line 23354-23356: The NPC entry with key "11004872-EpicApocalypse04-"
uses the name value "Oskal", which appears to be a typo; update the value to the
established name "Oska" so it matches the rest of the file (change the "name"
field in the "11004872-EpicApocalypse04-" object from "Oskal" to "Oska").

In `@WeblateConverter/Json/en/questdescription_final.json`:
- Around line 46965-46967: The desc for the "80010580-Event-CN" entry contains
untranslated Chinese text ('冒险岛喜迎新春'); update the English localization by
replacing that phrase in the desc field with an appropriate English translation
(e.g., "MapleStory New Year Celebration" or "MapleStory Welcomes the New
Spring") so the entire string in the en/questdescription_final.json is fully
English while preserving the existing npc tokens and punctuation.

In `@WeblateConverter/Json/en/skillname.json`:
- Around line 4904-4980: Pick a single element naming scheme (either "Ice" &
"Thunder" or "Frost" & "Lightning") and make the JSON entries for the Runeblade
family consistent: update all affected name values so variants use the chosen
words uniformly (examples to change: keys 10900175--, 10900177--, 10900196--,
10900198--, 10900193--, 10900201--, 10900203--, 10900207--, 10900212--,
10900213--, 10900211--, 10900205--, 10900225--, 10900221--, 10900223--,
10900222--, 10900214--, 10900241--, 10900231--, 10900251--, 10900261--,
10900271--, 10900294--, 10900292--, 10900291--, 10900293--), ensuring every
element-variant (Blade, Rune, Gate, Quintuple Cut, etc.) uses the same term (Ice
vs Frost and Thunder vs Lightning) across the whole block.
- Around line 5891-5893: The value for the JSON entry with key "120010021--" has
a typo in the name property; change "Gigantic Laser: Red Lapenshad" to "Gigantic
Laser: Red Lapenshard" by editing the name field for the "120010021--" object so
it matches the neighboring keys' spelling.

---

Duplicate comments:
In `@WeblateConverter/Json/en/skillname.json`:
- Around line 4721-4723: Update the inconsistent skill name for the entry with
key "10600291--": change the value of "name" from "Booby Trap MK2" to "Booby
Trap MK 2" so it matches the established spacing used by the matching variant
above and prevents duplicate renderings.
- Around line 4241-4243: Two entries for the same base skill ID differ in
plurality: the key "10100201--" has name "Guardian's Wing" while
"10100201-JobChange_01-" is "Guardian's Wings"; make them text-identical by
updating one to match the other (choose the correct canonical form) so both
"10100201--" and "10100201-JobChange_01-" use the same name string.
- Around line 5195-5197: Update the name value for the JSON entry with key
"11100031--": correct the typo "Focusing Animarl" to "Focusing Animal" in the
"name" field for the "11100031--" object so it matches the existing terminology.
- Around line 4409-4426: Multiple entries in the 1030023x family use two
different labels; normalize all entries with IDs "10300231--" through
"10300236--" to a single canonical name (use "Barbecue Party" to match
10300231-- and 10300232--) so that "10300233--", "10300234--", "10300235--", and
"10300236--" are updated from "BBQ Party" to "Barbecue Party"; ensure the change
is applied consistently in the JSON for that entire skill family.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 11870bfe-0a02-4fdf-be64-d45eb9ae345c

📥 Commits

Reviewing files that changed from the base of the PR and between 501caf8 and 799698a.

📒 Files selected for processing (7)
  • WeblateConverter/Json/en/itemname.json
  • WeblateConverter/Json/en/npcname.json
  • WeblateConverter/Json/en/questdescription_final.json
  • WeblateConverter/Json/en/skillname.json
  • WeblateConverter/Json/en/stringadditionaldescription.json
  • WeblateConverter/Json/en/stringcommon.json
  • WeblateConverter/Json/en/stringfieldenterance.json
🚧 Files skipped from review as they are similar to previous changes (2)
  • WeblateConverter/Json/en/stringadditionaldescription.json
  • WeblateConverter/Json/en/stringcommon.json

Comment on lines +23231 to +23233
"11004823-EpicApocalypse01-": {
"name": "Phantom Bayar"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Keep the established Vayar spelling here.

Bayar introduces a second English spelling for the same boss family; the rest of this file already uses Vayar.

Also applies to: 23543-23545, 23549-23551

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/npcname.json` around lines 23231 - 23233, The JSON
entry with key "11004823-EpicApocalypse01-" currently uses the spelling "Phantom
Bayar" which conflicts with the established "Vayar" spelling; update the value
of "name" for that key to "Phantom Vayar" and make the same replacement for the
other affected entries (the groups around IDs 23543-23545 and 23549-23551) so
all boss-family names consistently use "Vayar".

Comment on lines +23342 to +23344
"11004864-DungeonOS01-": {
"name": "Blue Luke"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Normalize Blue Luke vs Blue Luk.

These OS01 entries now use two spellings for what looks like the same unit/boss family.

Also applies to: 24020-24022, 24029-24034

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/npcname.json` around lines 23342 - 23344, Multiple
entries use inconsistent spellings "Blue Luke" vs "Blue Luk"; pick the correct
canonical spelling and make all OS01/Dungeon entries consistent. Update the
value for the JSON object with key "11004864-DungeonOS01-" (currently "Blue
Luke") and the entries with IDs 24020-24022 and 24029-24034 so they all use the
same chosen spelling (e.g., change "Blue Luke" → "Blue Luk" or vice versa)
ensuring no trailing/leading whitespace and preserving the surrounding JSON
structure and quoting.

Comment on lines +23354 to +23356
"11004872-EpicApocalypse04-": {
"name": "Oskal"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Oskal looks like a typo of Oska.

Oska is the established character name elsewhere in this file, so this reads like a different NPC.

Suggested fix
-    "name": "Oskal"
+    "name": "Oska"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"11004872-EpicApocalypse04-": {
"name": "Oskal"
},
"11004872-EpicApocalypse04-": {
"name": "Oska"
},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/npcname.json` around lines 23354 - 23356, The NPC
entry with key "11004872-EpicApocalypse04-" uses the name value "Oskal", which
appears to be a typo; update the value to the established name "Oska" so it
matches the rest of the file (change the "name" field in the
"11004872-EpicApocalypse04-" object from "Oskal" to "Oska").

Comment on lines +23420 to +23422
"21010208-Kritias_Turka02-": {
"name": "Turka Legion Alek (Senior)"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Unify the Alek / Allek / Alex spellings.

These Turka entries appear to refer to the same unit family, but three English spellings are introduced across the same content block.

Also applies to: 23429-23433, 23819-23830, 23837-23863

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/npcname.json` around lines 23420 - 23422, Several
Turka unit entries (e.g., the key "21010208-Kritias_Turka02-" whose name is
"Turka Legion Alek (Senior)") use inconsistent spellings Alek/Allek/Alex;
standardize these to a single canonical spelling (choose "Alek") by updating the
"name" values for that key and all other Turka entries referenced (lines
indicated around 23429-23433, 23819-23830, 23837-23863) to replace
"Allek"/"Alex" with "Alek" so the family name is consistent across the JSON.

Comment on lines +23531 to +23536
"21401190-DungeonOpen70CH6-": {
"name": "Deborak Junior"
},
"21401191-DungeonOpen70CH6-": {
"name": "Deborak Junior"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Use the existing Devorak spelling here.

Deborak Junior diverges from the existing Devorak / Junior Devorak entries and looks like a typo.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/npcname.json` around lines 23531 - 23536, The two
entries with keys "21401190-DungeonOpen70CH6-" and "21401191-DungeonOpen70CH6-"
use the misspelled name "Deborak Junior"; update their "name" values to the
existing spelling "Devorak Junior" so they match other entries like "Junior
Devorak" and maintain consistency across npcname.json.

Comment on lines +24557 to +24583
"25022200-Kritias02-": {
"name": "Tieren Elite Trooper"
},
"24002804-DoubleImpactStory-": {
"name": "Lost Child"
},
"24002805-DoubleImpactStory-": {
"name": "Ashen Wolf"
},
"25022201-Kritias02-": {
"name": "Enhanced Tieren Assault Trooper"
},
"25022205-Kritias02-": {
"name": "Brutal Cerberus Destroyer"
},
"25022207-Kritias02-": {
"name": "Cerberus Assassin"
},
"25022206-Kritias02-": {
"name": "Defective Sect"
},
"25022203-Kritias02-": {
"name": "Broken Foxtrot"
},
"25022204-Kritias02-": {
"name": "Tieren Magic Agent"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Keep Tairen consistent in the Kritias block.

This section introduces Tieren, while the surrounding Kritias entries already use Tairen for the same faction.

Also applies to: 24809-24825

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/npcname.json` around lines 24557 - 24583, The
Kritias entries (e.g., keys like "25022200-Kritias02-", "25022204-Kritias02-")
incorrectly use "Tieren" in the "name" values; update those to "Tairen" to match
the surrounding Kritias naming convention (search for and replace "Tieren" →
"Tairen" in the Kritias block), and run the same fix for the nearby IDs range
referenced (24809–24825) to ensure consistent use of "Tairen".

Comment thread WeblateConverter/Json/en/questdescription_final.json
Comment on lines +4904 to +4980
"10900175--": {
"name": "Ice Dimension Blade"
},
"10900177--": {
"name": "Thunder Dimension Blade"
},
"10900196--": {
"name": "Ice Rune Ignition"
},
"10900198--": {
"name": "Thunder Rune Ignition"
},
"10900193--": {
"name": "Flame Rune Ignition"
},
"10900201--": {
"name": "Rune Trigger"
},
"10900203--": {
"name": "Flame Rune Trigger"
},
"10900207--": {
"name": "Thunder Rune Trigger"
},
"10900212--": {
"name": "Flame Quintuple Cut"
},
"10900213--": {
"name": "Ice Quintuple Cut"
},
"10900211--": {
"name": "Quintuple Cut"
},
"10900205--": {
"name": "Ice Rune Trigger"
},
"10900225--": {
"name": "Thunder Blade Whip"
},
"10900221--": {
"name": "Blade Whip"
},
"10900223--": {
"name": "Ice Blade Whip"
},
"10900222--": {
"name": "Flame Blade Whip"
},
"10900214--": {
"name": "Thunder Quintuple Cut"
},
"10900241--": {
"name": "Blade Expert"
},
"10900231--": {
"name": "Physical Boost"
},
"10900251--": {
"name": "Rune Expert"
},
"10900261--": {
"name": "Lunatic Flash"
},
"10900271--": {
"name": "Blade Runner"
},
"10900294--": {
"name": "Lightning Gate of Blades"
},
"10900292--": {
"name": "Flame Gate of Blades"
},
"10900291--": {
"name": "Gate of Blades"
},
"10900293--": {
"name": "Frost Gate of Blades"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Use one element naming scheme for the Runeblade aliases.

This block mixes Ice/Frost and Thunder/Lightning within one family (10900175--, 10900205--, 10900294--, etc.). Even if the rename is intentional, the aliases should stay internally consistent so related variants do not surface under different element names.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/skillname.json` around lines 4904 - 4980, Pick a
single element naming scheme (either "Ice" & "Thunder" or "Frost" & "Lightning")
and make the JSON entries for the Runeblade family consistent: update all
affected name values so variants use the chosen words uniformly (examples to
change: keys 10900175--, 10900177--, 10900196--, 10900198--, 10900193--,
10900201--, 10900203--, 10900207--, 10900212--, 10900213--, 10900211--,
10900205--, 10900225--, 10900221--, 10900223--, 10900222--, 10900214--,
10900241--, 10900231--, 10900251--, 10900261--, 10900271--, 10900294--,
10900292--, 10900291--, 10900293--), ensuring every element-variant (Blade,
Rune, Gate, Quintuple Cut, etc.) uses the same term (Ice vs Frost and Thunder vs
Lightning) across the whole block.

Comment on lines +5891 to +5893
"120010021--": {
"name": "Gigantic Laser: Red Lapenshad"
},
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Correct the Lapenshard typo.

"Gigantic Laser: Red Lapenshad" drops the r from Lapenshard, which is also the spelling used by the neighboring keys in this section.

Suggested fix
   "120010021--": {
-    "name": "Gigantic Laser: Red Lapenshad"
+    "name": "Gigantic Laser: Red Lapenshard"
   },
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
"120010021--": {
"name": "Gigantic Laser: Red Lapenshad"
},
"120010021--": {
"name": "Gigantic Laser: Red Lapenshard"
},
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@WeblateConverter/Json/en/skillname.json` around lines 5891 - 5893, The value
for the JSON entry with key "120010021--" has a typo in the name property;
change "Gigantic Laser: Red Lapenshad" to "Gigantic Laser: Red Lapenshard" by
editing the name field for the "120010021--" object so it matches the
neighboring keys' spelling.

Currently translated at 95.9% (6498 of 6773 strings)

Translation: MapleStory 2/String Common
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/stringcommon/en/
Currently translated at 95.4% (1666 of 1746 strings)

Translation: MapleStory 2/Map Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/mapname/en/
Currently translated at 53.4% (23707 of 44346 strings)

Translation: MapleStory 2/Quest Description
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/questdescription/en/
Currently translated at 79.4% (64462 of 81142 strings)

Translation: MapleStory 2/Item Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/item/itemname/en/
Currently translated at 73.3% (7759 of 10572 strings)

Translation: MapleStory 2/NPC Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/npcname/en/
Currently translated at 78.3% (63536 of 81142 strings)

Translation: MapleStory 2/Item Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/item/itemname/pt/
Currently translated at 50.0% (392 of 783 strings)

Translation: MapleStory 2/Dungeon Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/dungeon-name/en/
Currently translated at 37.4% (1441 of 3851 strings)

Translation: MapleStory 2/Skill Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/skill-name/en/
Currently translated at 1.5% (127 of 8292 strings)

Translation: MapleStory 2/Buff Description & Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/buff-description-and-name/en/
Currently translated at 97.2% (6590 of 6773 strings)

Translation: MapleStory 2/String Common
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/stringcommon/en/
Currently translated at 99.8% (1744 of 1746 strings)

Translation: MapleStory 2/Map Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/mapname/en/
Currently translated at 53.5% (23737 of 44346 strings)

Translation: MapleStory 2/Quest Description
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/questdescription/en/
Currently translated at 79.6% (64607 of 81142 strings)

Translation: MapleStory 2/Item Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/item/itemname/en/
Currently translated at 74.8% (7909 of 10572 strings)

Translation: MapleStory 2/NPC Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/npcname/en/
Currently translated at 63.2% (495 of 783 strings)

Translation: MapleStory 2/Dungeon Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/dungeon-name/en/
Currently translated at 41.3% (1591 of 3851 strings)

Translation: MapleStory 2/Skill Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/skill-name/en/
Currently translated at 2.5% (215 of 8292 strings)

Translation: MapleStory 2/Buff Description & Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/buff-description-and-name/en/
Currently translated at 98.0% (6639 of 6773 strings)

Translation: MapleStory 2/String Common
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/stringcommon/en/
Currently translated at 99.9% (1745 of 1746 strings)

Translation: MapleStory 2/Map Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/mapname/en/
Currently translated at 53.7% (23817 of 44346 strings)

Translation: MapleStory 2/Quest Description
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/questdescription/en/
Currently translated at 79.7% (64727 of 81142 strings)

Translation: MapleStory 2/Item Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/item/itemname/en/
Currently translated at 75.9% (8028 of 10572 strings)

Translation: MapleStory 2/NPC Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/npcname/en/
Currently translated at 74.0% (580 of 783 strings)

Translation: MapleStory 2/Dungeon Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/dungeon-name/en/
MCP and others added 12 commits May 7, 2026 06:02
Currently translated at 65.8% (29195 of 44346 strings)

Translation: MapleStory 2/Quest Description
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/questdescription/en/
Currently translated at 52.7% (68889 of 130510 strings)

Translation: MapleStory 2/Quest Script
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/quest-script/en/
Currently translated at 53.4% (69798 of 130510 strings)

Translation: MapleStory 2/Quest Script
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/quest-script/en/
Currently translated at 87.3% (70838 of 81142 strings)

Translation: MapleStory 2/Item Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/item/itemname/en/
Currently translated at 53.6% (69989 of 130510 strings)

Translation: MapleStory 2/Quest Script
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/quest-script/en/
Currently translated at 89.6% (72753 of 81142 strings)

Translation: MapleStory 2/Item Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/item/itemname/en/
Currently translated at 89.6% (72753 of 81142 strings)

Translation: MapleStory 2/Item Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/item/itemname/en/
Currently translated at 90.7% (73618 of 81142 strings)

Translation: MapleStory 2/Item Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/item/itemname/en/
Currently translated at 72.4% (49388 of 68207 strings)

Translation: MapleStory 2/Item Descriptions
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/item/item-descriptions/en/
Currently translated at 100.0% (3851 of 3851 strings)

Translation: MapleStory 2/Skill Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/skill-name/en/
Currently translated at 19.0% (1580 of 8292 strings)

Translation: MapleStory 2/Buff Description & Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/buff-description-and-name/en/
Currently translated at 46.4% (131 of 282 strings)

Translation: MapleStory 2/Pet Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/pet-name/en/
AngeloTadeucci and others added 16 commits May 8, 2026 06:25
Currently translated at 53.7% (70139 of 130510 strings)

Translation: MapleStory 2/Quest Script
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/quest-script/en/
Currently translated at 99.4% (3710 of 3729 strings)

Translation: MapleStory 2/UI Strings
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/ui-strings/zh_Hant/
Currently translated at 0.7% (49 of 6773 strings)

Translation: MapleStory 2/String Common
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/stringcommon/zh_Hant/
Currently translated at 0.7% (49 of 6773 strings)

Translation: MapleStory 2/String Common
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/stringcommon/zh_Hant/
Currently translated at 0.7% (49 of 6773 strings)

Translation: MapleStory 2/String Common
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/stringcommon/zh_Hant/
Currently translated at 0.7% (49 of 6773 strings)

Translation: MapleStory 2/String Common
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/stringcommon/zh_Hant/
Currently translated at 0.7% (49 of 6773 strings)

Translation: MapleStory 2/String Common
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/stringcommon/zh_Hant/
Currently translated at 0.7% (10 of 1333 strings)

Translation: MapleStory 2/Guide Strings
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/guide-strings/zh_Hant/
Currently translated at 0.1% (7 of 22746 strings)

Translation: MapleStory 2/Triggers
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/triggers/zh_Hant/
Currently translated at 0.1% (7 of 22746 strings)

Translation: MapleStory 2/Triggers
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/triggers/zh_Hant/
Currently translated at 56.1% (3093 of 5510 strings)

Translation: MapleStory 2/Achievement Description
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/achievement-description/en/
Currently translated at 100.0% (962 of 962 strings)

Translation: MapleStory 2/Action Name
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/action-name/en/
Currently translated at 1.3% (93 of 6773 strings)

Translation: MapleStory 2/String Common
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/stringcommon/zh_Hant/
Currently translated at 1.3% (93 of 6773 strings)

Translation: MapleStory 2/String Common
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/stringcommon/zh_Hant/
Currently translated at 1.8% (25 of 1333 strings)

Translation: MapleStory 2/Guide Strings
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/guide-strings/zh_Hant/
Currently translated at 0.1% (9 of 22746 strings)

Translation: MapleStory 2/Triggers
Translate-URL: http://translate.tadeucci.dev/projects/maplestory2-xml/triggers/zh_Hant/
@Zintixx Zintixx merged commit f9e9d74 into main May 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants