Skip to content

Conversation

@wfcd-bot-boi
Copy link
Contributor

@wfcd-bot-boi wfcd-bot-boi commented Dec 16, 2025

Summary by CodeRabbit

  • New Features

    • Added Operation: Blood of Perita event with Marks of Valiance currency reward.
    • Added Dark Refactory (Deimos) mission node.
  • Balance Changes

    • Rebalanced multiple solar system mission node types across various locations.

✏️ Tip: You can customize this high-level summary in your review settings.

@coderabbitai
Copy link

coderabbitai bot commented Dec 16, 2025

Walkthrough

This PR adds localization entries for "Operation: Blood of Perita" event and a new currency resource ("Marks of Valiance") across 13 language files, while simultaneously updating mission type classifications for multiple solar nodes (SolNode entries) and introducing a new node (SolNode251) on Deimos. Changes are purely data-driven with consistent parallel updates across all language locales.

Changes

Cohort / File(s) Summary
TauPrequel Language Entries
data/cs/languages.json, data/de/languages.json, data/es/languages.json, data/fr/languages.json, data/it/languages.json, data/ko/languages.json, data/pl/languages.json, data/pt/languages.json, data/ru/languages.json, data/sr/languages.json, data/tr/languages.json, data/uk/languages.json, data/zh/languages.json
Added three new public localized entries: /Lotus/Language/TauPrequel/TauPrequelFinal/BloodOfPeritaDetails (event description), /Lotus/Language/TauPrequel/TauPrequelFinal/TauPrequelEventName ("Operation: Blood of Perita"), and /Lotus/Types/Gameplay/Tau/Resources/TwelveResourceCurrencyItem ("Marks of Valiance") across all language files.
SolNode Mission Type Updates
data/cs/solNodes.json, data/de/solNodes.json, data/es/solNodes.json, data/fr/solNodes.json, data/it/solNodes.json, data/ko/solNodes.json, data/pl/solNodes.json, data/pt/solNodes.json, data/ru/solNodes.json, data/sr/solNodes.json, data/tr/solNodes.json, data/uk/solNodes.json, data/zh/solNodes.json
Reclassified mission types across multiple nodes (SolNode11, 12, 33, 84, 88, 98, 184, 223, 251, 304, 304, 742) with changes such as Hijack → Mobile Defense, Capture → Sabotage, etc. Added new SolNode251 entry: "Dark Refactory (Deimos)" with enemy "Anarch" and type "The Perita Rebellion". Updated CrewBattleNode536 from Orphix to Spy.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Despite the broad file count (26 files), the changes are highly repetitive and homogeneous—identical language entry additions and consistent mission type reassignments mirrored across all localized versions. Each file follows the same pattern, reducing per-file review complexity.

  • Areas requiring attention: Verify mission type reassignments are intentional across all nodes; confirm SolNode251 Deimos entry aligns with game content expectations; spot-check a few localized strings for accuracy and consistency.

Possibly related PRs

Suggested labels

released

Suggested reviewers

  • TobiTenno

Poem

🐰 A prequel blooms with valor's call,
Marks of Valiance shimmer through it all,
From Deimos deep, the Perita rise,
New nodes unfold 'neath distant skies,
Twelve tongues now sing this battle's song!

Pre-merge checks and finishing touches

❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The PR title 'New Crowdin updates' is vague and generic, using a non-descriptive term that doesn't convey the specific nature of the changes (new game event, mission type reclassifications, and localization updates across multiple languages). Consider using a more descriptive title such as 'Add Tau Prequel event content and update mission types' to better reflect the primary changes in the changeset.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch l10n

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.

@github-actions
Copy link

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

Copy link

@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 (4)
data/de/languages.json (1)

611-613: Verify that English text is intended for the German localization file.

This currency item entry contains English text ("Marks of Valiance") in the German localization file. This appears to be the same issue as the TauPrequel entries above.

Run the following script to verify if this entry has translations in other locale files:

#!/bin/bash
# Description: Check if other locale files have translations for the currency item

echo "=== Checking TwelveResourceCurrencyItem across locales ==="
rg -A 1 '"\/Lotus\/Types\/Gameplay\/Tau\/Resources\/TwelveResourceCurrencyItem"' data/*/languages.json | head -40
data/pl/languages.json (1)

611-613: English text in Polish language file (duplicate concern).

Same issue as lines 26-31: this entry contains English text in the Polish language file.

data/fr/languages.json (1)

611-613: English currency name in French locale.

The currency resource name "Marks of Valiance" is in English rather than French (expected something like "Marques de Vaillance").

This is consistent with the entries in hunk 1 and covered by the verification request above.

data/es/languages.json (1)

611-613: Same language mismatch issue.

This entry also contains English text ("Marks of Valiance") in the Spanish language file. This currency name should be localized to Spanish.

📜 Review details

Configuration used: defaults

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 570ee0b and d154bb4.

📒 Files selected for processing (26)
  • data/cs/languages.json (2 hunks)
  • data/cs/solNodes.json (11 hunks)
  • data/de/languages.json (2 hunks)
  • data/de/solNodes.json (11 hunks)
  • data/es/languages.json (2 hunks)
  • data/es/solNodes.json (11 hunks)
  • data/fr/languages.json (2 hunks)
  • data/fr/solNodes.json (11 hunks)
  • data/it/languages.json (2 hunks)
  • data/it/solNodes.json (11 hunks)
  • data/ko/languages.json (2 hunks)
  • data/ko/solNodes.json (11 hunks)
  • data/pl/languages.json (2 hunks)
  • data/pl/solNodes.json (11 hunks)
  • data/pt/languages.json (2 hunks)
  • data/pt/solNodes.json (11 hunks)
  • data/ru/languages.json (2 hunks)
  • data/ru/solNodes.json (11 hunks)
  • data/sr/languages.json (2 hunks)
  • data/sr/solNodes.json (11 hunks)
  • data/tr/languages.json (2 hunks)
  • data/tr/solNodes.json (11 hunks)
  • data/uk/languages.json (2 hunks)
  • data/uk/solNodes.json (11 hunks)
  • data/zh/languages.json (2 hunks)
  • data/zh/solNodes.json (11 hunks)
🧰 Additional context used
🧠 Learnings (2)
📓 Common learnings
Learnt from: SlayerOrnstein
Repo: WFCD/warframe-worldstate-data PR: 588
File: data/languages.json:18862-18865
Timestamp: 2024-12-17T20:05:33.832Z
Learning: In `data/languages.json`, upgrade descriptions should remain as provided by Digital Extremes (DE) without modifying formatting inconsistencies.
📚 Learning: 2024-12-17T20:05:33.832Z
Learnt from: SlayerOrnstein
Repo: WFCD/warframe-worldstate-data PR: 588
File: data/languages.json:18862-18865
Timestamp: 2024-12-17T20:05:33.832Z
Learning: In `data/languages.json`, upgrade descriptions should remain as provided by Digital Extremes (DE) without modifying formatting inconsistencies.

Applied to files:

  • data/tr/solNodes.json
  • data/pt/solNodes.json
  • data/zh/solNodes.json
  • data/it/solNodes.json
  • data/sr/solNodes.json
  • data/ru/languages.json
  • data/cs/solNodes.json
  • data/fr/solNodes.json
  • data/ko/languages.json
  • data/it/languages.json
  • data/es/languages.json
  • data/pt/languages.json
  • data/de/languages.json
  • data/de/solNodes.json
  • data/uk/languages.json
  • data/fr/languages.json
  • data/pl/solNodes.json
  • data/zh/languages.json
  • data/es/solNodes.json
  • data/sr/languages.json
  • data/pl/languages.json
  • data/cs/languages.json
  • data/tr/languages.json
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: Summary
🔇 Additional comments (37)
data/pl/solNodes.json (1)

60-60: Polish node reclassifications and new SolNode251 are consistent and valid

All updated mission type values reuse existing Polish terminology in this file, Archwing labels stay consistent ("Sabotage (Archwing)"), CrewBattleNode536 matches other Spy nodes, and the new SolNode251 structure is correct. No issues from a data or JSON-structure perspective.

Also applies to: 65-65, 170-170, 425-425, 445-445, 495-495, 921-921, 1112-1112, 1352-1356, 1370-1370, 1460-1460, 2175-2175

data/it/solNodes.json (1)

60-60: Italian mission type updates and SolNode251 addition look correct

Reclassified type values use the same English mission labels already used elsewhere (e.g., Capture, Mobile Defense, Spy, Sabotage (Archwing)), CrewBattleNode536 now matches other Spy entries, and SolNode251 is well-formed and aligned with other locales. JSON remains valid.

Also applies to: 65-65, 170-170, 425-425, 445-445, 495-495, 921-921, 1112-1112, 1352-1356, 1370-1370, 1460-1460, 2175-2175

data/tr/solNodes.json (1)

60-60: Turkish mission reclassifications and SolNode251 are internally consistent

Updated type values reuse existing Turkish mission names and the Archwing sabotage label matches other Archwing nodes; CrewBattleNode536 now uses the same Spy translation as elsewhere. SolNode251 matches the cross-locale schema and is syntactically correct.

Also applies to: 65-65, 170-170, 425-425, 445-445, 495-495, 921-921, 1112-1112, 1352-1356, 1370-1370, 1460-1460, 2175-2175

data/sr/solNodes.json (1)

60-60: Serbian solNodes mission types and new Deimos node align with the dataset

The changed type values (including the Archwing variant) match existing English mission labels in this file and other locales; CrewBattleNode536 now correctly uses Spy. SolNode251 is added once, with the same fields as in other languages, and JSON remains well-formed.

Also applies to: 65-65, 170-170, 425-425, 445-445, 495-495, 921-921, 1112-1112, 1352-1356, 1370-1370, 1460-1460, 2175-2175

data/pt/solNodes.json (1)

60-60: Portuguese mission type relabels and SolNode251 insertion look good

Reclassified type strings reuse established PT-BR mission names (including "Sabotagem (Archwing)"), CrewBattleNode536 now matches other Espionagem nodes, and SolNode251 matches the cross-locale structure and content. JSON structure is intact.

Also applies to: 65-65, 170-170, 425-425, 445-445, 495-495, 921-921, 1112-1112, 1352-1356, 1370-1370, 1460-1460, 2175-2175

data/zh/solNodes.json (1)

57-66: Mission-type reclassifications and new Deimos node look consistent

All updated type values (SolNode11, 12, 33, 84, 88, 98, 184, 223, 742, 304), the new SolNode251, and CrewBattleNode536’s switch to "間諜" match existing terminology and patterns in this locale and align with the parallel changes in other languages. JSON structure and key uniqueness are intact.

Also applies to: 167-171, 422-426, 442-446, 492-496, 918-922, 1109-1113, 1352-1356, 1367-1371, 1457-1461, 2172-2176

data/ru/solNodes.json (1)

57-66: Reclassified mission types and added SolNode251 are coherent

The updated Russian type values for SolNode11/12/33/84/88/98/184/223/742/304, the new SolNode251 entry, and CrewBattleNode536’s change to "Шпионаж" are consistent with existing mission labels and with other locales. Structure and keys remain valid.

Also applies to: 167-171, 422-426, 442-446, 492-496, 918-922, 1109-1113, 1352-1356, 1367-1371, 1457-1461, 2172-2176

data/fr/solNodes.json (1)

57-66: FR node updates match existing terminology and cross-locale data

The new type values for the adjusted SolNodes, the insertion of SolNode251, and CrewBattleNode536’s change to "Espionnage" reuse existing French mission labels and mirror the same structural changes seen in other locales. JSON remains well-formed with no duplicate keys.

Also applies to: 167-171, 422-426, 442-446, 492-496, 918-922, 1109-1113, 1352-1356, 1367-1371, 1457-1461, 2172-2176

data/uk/solNodes.json (1)

57-66: UA re-mapping of mission types and Deimos node addition look good

The type reassignments for SolNode11/12/33/84/88/98/184/223/742/304, the new SolNode251, and CrewBattleNode536’s "Шпигунство" all align with existing Ukrainian mission terminology and the same data pattern in other locales. No JSON or key issues detected.

Also applies to: 167-171, 422-426, 442-446, 492-496, 918-922, 1109-1113, 1352-1356, 1367-1371, 1457-1461, 2172-2176

data/es/solNodes.json (1)

57-66: ES mission-type updates and SolNode251 insertion are consistent

The Spanish type updates for the listed SolNodes, the addition of SolNode251, and CrewBattleNode536’s change to "Espionaje" all reuse existing mission labels and mirror the same structural adjustments across locales. JSON structure and key set remain valid.

Also applies to: 167-171, 422-426, 442-446, 492-496, 918-922, 1109-1113, 1352-1356, 1367-1371, 1457-1461, 2172-2176

data/de/languages.json (1)

26-31: This review comment is incorrect and should be resolved.

The entries contain English text across all locale files (German, French, Spanish, Korean, Russian, Polish, Italian, Turkish, Ukrainian, Serbian, Czech, and Chinese), not just German. This is standard Crowdin behavior where new, untranslated content displays the source language as a fallback until translations are provided. The strings originate from Digital Extremes and should remain unchanged per repository conventions.

data/ru/languages.json (1)

26-31: No action needed: English text in Russian file is expected Crowdin behavior.

New entries from Digital Extremes are automatically exported by Crowdin with English values while translations are pending. This is standard workflow for this repository's localization process and resolves naturally as translators complete translations.

data/uk/languages.json (2)

26-31: Ukrainian translations missing for new event entries.

These new entries contain English text in the Ukrainian (uk) language file. The surrounding entries are properly localized in Ukrainian (Cyrillic script). If this is a temporary placeholder pending translation from Crowdin, this is fine; otherwise, Ukrainian translations should be added.


611-613: Same observation: English text in Ukrainian locale.

"Marks of Valiance" is not translated to Ukrainian, unlike adjacent entries.

data/ko/languages.json (1)

26-31: These are new untranslated strings, not a Korean-specific localization issue.

The three entries contain English text, but this affects ALL languages equally—Korean, German, French, Russian, and all other locales have identical English values. These are new strings added in recent commits that haven't yet been translated in Crowdin. This is expected behavior for freshly added content awaiting community translations.

No action needed on the Korean file itself; the translations will be synced automatically once they're available in Crowdin.

Likely an incorrect or invalid review comment.

data/pl/languages.json (1)

26-31: The entries in the Polish language file contain English text because no Polish translations are yet available from Crowdin. This is expected behavior: all language files (German, Czech, Korean, French, Spanish, Italian, Russian, Portuguese, Serbian, Turkish, Ukrainian, Chinese) currently show identical English fallback text for these untranslated entries. When Polish translations become available in Crowdin, they will be updated automatically.

No action required.

data/de/solNodes.json (5)

57-66: LGTM! Mission type updates are properly localized.

The mission type reclassifications for SolNode11, SolNode12, and SolNode33 use correct German translations consistent with other entries in the file.

Also applies to: 167-171


422-426: LGTM! Mission type updates follow established patterns.

The updated mission types for SolNode84, SolNode88, and SolNode98 are correctly translated. The English "(Archwing)" suffix in SolNode98 is consistent with other Archwing missions throughout the file.

Also applies to: 442-446, 492-496


918-922: LGTM! Localization is consistent.

Mission type updates for SolNode184 and SolNode223 use proper German translations.

Also applies to: 1109-1113


1367-1371: LGTM! Final mission type updates are properly localized.

The mission type changes for SolNode742, SolNode304, and CrewBattleNode536 are correctly translated to German and consistent with the file's localization standards.

Also applies to: 1457-1461, 2172-2176


1352-1356: Entry is correct as-is; no localization changes needed.

The SolNode251 entry is properly structured and matches the coordinated update across all 14 language files. "The Perita Rebellion" is intentionally kept in English across every language variant (German, French, Spanish, Russian, Polish, Czech, Korean, Italian, Chinese, Portuguese, Turkish, Ukrainian, Serbian, and English), indicating this is DE-provided proper event naming that should not be translated.

data/cs/languages.json (1)

26-31: LGTM! New localization entries added correctly.

The JSON structure is valid and the new entries for "Operation: Blood of Perita" and "Marks of Valiance" are properly formatted. The English text in this Czech language file is expected for new Crowdin content awaiting translation.

Also applies to: 611-613

data/it/languages.json (2)

26-31: New event localization entries are well-formed and consistent.

The two new entries for "Operation: Blood of Perita" event follow the existing JSON structure and formatting conventions in the file. The Italian translations align with the event description and event name keys established in other language locales.


611-613: New currency resource entry is properly formatted and positioned.

The addition of "Marks of Valiance" currency follows the same JSON structure as surrounding resource entries and is correctly positioned within the Tau Resources section.

data/ko/solNodes.json (3)

57-66: LGTM!

Mission type reclassifications for SolNode11 (→ 모바일 방어) and SolNode12 (→ 생포) are consistent with the established Korean translations used throughout this file.


167-171: Mission type reclassifications look good.

All updated mission types use consistent Korean translations that match the existing patterns in this localization file. The changes align with the global reclassification updates mentioned in the PR summary.

Also applies to: 422-426, 442-446, 492-496, 918-922, 1109-1113, 1367-1371, 1457-1461, 2172-2176


1352-1356: Entry correctly matches source data across all locales.

SolNode251 is properly added with consistent spelling "Dark Refactory (Deimos)" matching all other locale files and the base English data. Entry conforms to how recent additions are handled in this file.

data/sr/languages.json (2)

26-31: LGTM!

The new event entries are properly structured and correctly placed in alphabetical order. The English text serves as a fallback until Serbian translations are provided through Crowdin, which is expected behavior for this localization workflow.


611-613: LGTM!

The new currency resource entry is properly structured and maintains alphabetical ordering within the file.

data/tr/languages.json (3)

26-31: Verify event description authenticity against Digital Extremes source.

The "Operation: Blood of Perita" event description contains specific mission references (Perita Rebellion missions, Void Alerts, Roathe NPC, La Cathédrale location) and should be confirmed as verbatim from DE to maintain consistency across all locales.

Please verify that lines 27 and 30 values match the source localization from Digital Extremes (or Crowdin base translation). Since this PR is described as adding entries across 13 language files simultaneously, ensure the event name and description are consistent across all locales—especially between structurally similar languages (e.g., Romance or Slavic language groups).


26-31: JSON structure validation.

The JSON structure across both hunks follows the project's localization key pattern (/Lotus/... paths) and standard value-object formatting. No syntax errors detected. Entries are properly nested within the languages file context.

Also applies to: 611-613


611-613: Currency entry verified across all 13 supported language files.

The "Marks of Valiance" entry exists consistently across all supported locales: cs, de, es, fr, it, ko, pl, pt, ru, sr, tr, uk, and zh. Tau Prequel content rollout is complete with no missing translations.

data/pt/languages.json (2)

26-31: LGTM!

The new localization entries for "Operation: Blood of Perita" event follow the established JSON structure and key naming conventions. The English content in the Portuguese file is typical for Crowdin imports when translations are pending. Based on learnings, content provided by Digital Extremes should remain as-is.


611-613: LGTM!

The new currency resource entry is correctly formatted and follows the established key naming conventions for gameplay resources. The placement maintains proper ordering within the file.

data/cs/solNodes.json (1)

1-2247: LGTM! Official localization data update.

This automated Crowdin sync correctly adds the new "Operation: Blood of Perita" event node (SolNode251) and updates mission type classifications across multiple solar nodes. The JSON structure is valid, all entries maintain consistent formatting, and the changes align with the official game data from Digital Extremes.

data/fr/languages.json (1)

26-31: No action required. These entries contain English text as provided by Digital Extremes across all language files (French, German, Spanish, Chinese, Korean, Polish, Portuguese, Russian, Turkish, Ukrainian, Italian, Czech, and Serbian). Per repository convention, content from Digital Extremes should remain unchanged without modification.

Likely an incorrect or invalid review comment.

data/es/languages.json (1)

26-31: No action required. The English strings in data/es/languages.json are expected behavior for newly added entries from Crowdin. When translators haven't yet provided translations, Crowdin's export defaults to the source language. As translators complete their work on these new keys, Spanish translations will be added through subsequent Crowdin updates.

Likely an incorrect or invalid review comment.

@TobiTenno TobiTenno enabled auto-merge (squash) December 17, 2025 00:19
@TobiTenno TobiTenno disabled auto-merge December 17, 2025 00:19
@TobiTenno TobiTenno enabled auto-merge (squash) December 17, 2025 00:19
@TobiTenno TobiTenno merged commit 2503a22 into master Dec 17, 2025
11 checks passed
@TobiTenno TobiTenno deleted the l10n branch December 17, 2025 00:19
@github-actions
Copy link

🎉 This PR is included in version 3.1.18 🎉

The release is available on:

Your semantic-release bot 📦🚀

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants