Add Missing Strings Validation for Moodle Plugin CI#356
Add Missing Strings Validation for Moodle Plugin CI#356volodymyrdovhan wants to merge 6 commits intomoodlehq:mainfrom
Conversation
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #356 +/- ##
============================================
- Coverage 88.31% 85.55% -2.76%
- Complexity 761 1639 +878
============================================
Files 77 114 +37
Lines 2344 4563 +2219
============================================
+ Hits 2070 3904 +1834
- Misses 274 659 +385 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
94f10f2 to
dd9f119
Compare
- Add a comprehensive language string validation tool for Moodle plugins - Validates required strings, detects missing/unused strings from PHP, JavaScript, templates, and database files - Includes automatic subplugin discovery and validation
dd9f119 to
8817822
Compare
|
Wow, that is the biggest PR to this project I have ever seen! 🥇Well done @volodymyrdovhan, missing strings check definitely would be useful to have. Do you have some performance info, it is fast on projects with numerous strings? |
84f6082 to
dcd824a
Compare
dcd824a to
6609072
Compare
|
Hi @kabalin, Here are some stats for some Moodle core plugins. mod/assign:
mod/quiz
mod/lesson
mod/bigbluebuttonbn/
|
|
Cross referencing https://moodle.atlassian.net/browse/MDL-85666, there is some overlapping with this patch I think. I might worth reviewing what will be tested already, so this feature will be smaller and easier to maintain. |
…myrdovhan/moodle-plugin-ci into feature/missing-strings-validator

Summary
What It Checks
Code Usage
get_string()andnew lang_string()calls in PHPstr.get_string(),str.get_strings(),getString(),getStrings(),Prefetchmethods){{#str}},{{#cleanstr}})->addHelpButton())$row->stateare ignored)Plugin Requirements
pluginnamemodulename,modulenamepluralSubplugin Support
db/subplugins.jsonanddb/subplugins.phpUsage
# Basic validation moodle-plugin-ci missingstrings /path/to/plugin