overleaf/services/web/bin/lint_locales
Jakob Ackermann b91f43f4f2 Merge pull request #11121 from overleaf/jpa-cleanup-en-locales
[web] locales: cleanup unused locales and check on it in CI

GitOrigin-RevId: 7625047f1731ec627df43bb9eb00348f110eadaf
2023-01-13 09:03:50 +00:00

40 lines
816 B
Bash
Executable file
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/bin/bash
set -e
# Ensure all locale files are sorted.
node scripts/translations/sort.js --check
# Ensure all locales are still in use
node scripts/translations/cleanupUnusedLocales.js --check
# Ensure no locales contain single quotes.
LOCALES_WITH_SINGLE_QUOTE=$(\
grep \
--files-with-matches \
--recursive locales/ \
--regex "'" \
|| true
)
for file in ${LOCALES_WITH_SINGLE_QUOTE}; do
cat <<MSG >&2
ERROR: $file contains a locale with a single quote.
---
$(grep "$file" --regex "'")
---
Using single quotes in locales can lead to Angular XSS.
You will need to replace the quote with a similar looking character.
(\u2019) is a good candidate.
Links:
- https://en.wikipedia.org/wiki/Right_single_quotation_mark
- https://github.com/overleaf/issues/issues/4478
MSG
exit 1
done