Linting rules¶
This page explains linting color codes and validation rules.
Color codes¶
Bright red background + white text (critical)¶
- Meaning: Translation column A does not match the source sheet.
- Where: Translation sheets, column A.
- Why it matters: Translation lookup fails and generation will fail.
- Fix: Restore the formula in column A (see Translation sheet formulas).
Yellow background¶
- Meaning: Required data missing or warnings.
- Examples: Empty category name, missing icon, unused fields, row count mismatch.
Red text¶
- Meaning: Invalid reference or URL.
- Examples: Icon link not accessible; Fields column references a missing field.
Light red background¶
- Meaning: Invalid or duplicate values.
- Examples: Invalid field type, missing options, duplicate names, invalid translation headers, option count mismatches.
Orange text¶
- Meaning: HTTP icon URL warning.
- Fix: Switch to HTTPS when possible.
Categories sheet validation¶
- Name (A):
- Required; must be unique.
-
Auto-capitalized.
-
Icon (B):
- Required; any non-empty valid icon reference.
-
Red text indicates invalid or inaccessible URLs.
-
Fields (C):
- Each field name must exist in the Details sheet.
- Red text indicates missing or misspelled fields.
-
Comma-separated lists are auto-formatted.
-
Applies (D):
- Accepts
observation,track, or both (comma-separated). - Abbreviations
o,tare accepted. - At least one category must include
track. -
Invalid values are treated as empty and default to
observation. -
Category ID (E):
- Auto-generated.
Details sheet validation¶
- Name (A):
- Required; must be unique.
- Yellow highlight if unused by any category.
-
Auto-capitalized.
-
Helper Text (B):
- Optional.
-
Auto-capitalized.
-
Type (C):
- Accepts
t,n,m,s(case-insensitive). - Blank defaults to select-one.
-
Invalid values are highlighted.
-
Options (D):
- Required for select and multiple types.
- Optional for text and number types.
-
Comma-separated lists are auto-formatted.
-
Universal (F):
- Must be
TRUE,FALSE, or blank.
Translation sheet validation¶
- Column A (primary column):
- Must match the source sheet exactly.
-
Bright red + white text indicates a mismatch.
-
Headers (row 1):
-
Must be a valid language name, ISO code, BCP-47 tag, or "Name - ISO" format.
-
Row counts:
-
Translation sheets should match the source row count.
-
Option counts (Detail Option Translations):
-
Each translation must have the same number of comma-separated options as the source.
-
General formatting:
- Cells are auto-capitalized.
- Whitespace-only cells are cleared.
See Translation sheets for header formats and legacy layouts.
Common scenarios¶
Fresh spreadsheet¶
- Yellow highlights on empty required fields.
- Action: Fill required data.
After adding icons¶
- Red text on invalid icon references.
- Action: Fix or replace invalid icon references.
After auto-translation¶
- Possible light red if option counts do not match.
- Action: Ensure option lists have matching counts.
After import¶
- Bright red translation mismatches if formulas broke.
- Yellow highlights for unused fields.
Fixing translation sheet mismatches¶
- Open the translation sheet with bright red column A.
- Clear column A values (rows below the header).
-
In cell A2, re-enter the formula that matches the source sheet:
-
Category Translations:
=Categories!A2:A[lastRow] - Detail Label Translations:
=Details!A2:A[lastRow] - Detail Helper Text Translations:
=Details!B2:B[lastRow] - Detail Option Translations:
=Details!D2:D[lastRow]
Then re-run Lint Sheets. If available, you can also use the Debug menu to fix translation mismatches automatically.
Best practices¶
- Lint early and often.
- Fix errors in priority order:
- Bright red (critical)
- Light red
- Yellow
- Red text
- Orange text
- Keep names consistent and unique.
- Review auto-translations with native speakers.
When errors are unclear¶
- Hover over red-text cells for notes.
- Check the browser console for errors (View → Developer → JavaScript Console).
- See Troubleshooting.