Initial commit
This commit is contained in:
commit
b834d3ea2c
3 changed files with 137 additions and 0 deletions
2
README
Normal file
2
README
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
Do something like
|
||||||
|
./find.py ~/dev/mapcomplete > found.txt
|
57
find.py
Executable file
57
find.py
Executable file
|
@ -0,0 +1,57 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import json
|
||||||
|
import subprocess
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if len(sys.argv) != 2 or sys.argv[1].startswith("-"):
|
||||||
|
print(f"Usage: {sys.argv[0]} <path to mapcomplete repo>", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
os.chdir(sys.argv[1])
|
||||||
|
|
||||||
|
if subprocess.run(["rg", "--version"], check=False, stdout=subprocess.DEVNULL).returncode != 0:
|
||||||
|
# Regular grep doesn't suffice, we rely on ripgrep's functionality to honour .gitignore
|
||||||
|
print("rg (ripgrep) is not found in PATH or not functional", file=sys.stderr)
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
with open("langs/en.json", "r", encoding="utf-8") as fh:
|
||||||
|
translations = json.load(fh)
|
||||||
|
|
||||||
|
|
||||||
|
def walk(obj, prefix):
|
||||||
|
for k, v in obj.items():
|
||||||
|
if isinstance(v, str):
|
||||||
|
yield (f"{prefix}{k}", k)
|
||||||
|
else:
|
||||||
|
yield from walk(v, f"{prefix}{k}.")
|
||||||
|
|
||||||
|
|
||||||
|
for fqkey, key in walk(translations, ""):
|
||||||
|
print(f" Checking {key}", file=sys.stderr)
|
||||||
|
p = subprocess.run(
|
||||||
|
[
|
||||||
|
"rg",
|
||||||
|
"--no-config",
|
||||||
|
"--iglob=!langs",
|
||||||
|
"--fixed-strings", "--max-count=1",
|
||||||
|
"--", key
|
||||||
|
],
|
||||||
|
check=False, stdout=subprocess.DEVNULL
|
||||||
|
)
|
||||||
|
|
||||||
|
if p.returncode == 0:
|
||||||
|
# String is used
|
||||||
|
pass
|
||||||
|
|
||||||
|
elif p.returncode == 1:
|
||||||
|
# String is not used
|
||||||
|
print(fqkey)
|
||||||
|
|
||||||
|
else:
|
||||||
|
# grep encountered an error
|
||||||
|
print(f"Error while checking for {key}", file=sys.stderr)
|
78
found.txt
Normal file
78
found.txt
Normal file
|
@ -0,0 +1,78 @@
|
||||||
|
communityIndex.notAvailable
|
||||||
|
delete.explanations.retagNoOtherThemes
|
||||||
|
delete.explanations.retagOtherThemes
|
||||||
|
delete.explanations.selectReason
|
||||||
|
delete.isChanged
|
||||||
|
delete.loginToDelete
|
||||||
|
favourite.loginNeeded
|
||||||
|
favourite.panelIntro
|
||||||
|
general.add.confirmButton
|
||||||
|
general.add.confirmWarning
|
||||||
|
general.add.warnVisibleForEveryone
|
||||||
|
general.attribution.mapDataByOsm
|
||||||
|
general.backToMap
|
||||||
|
general.fewChangesBefore
|
||||||
|
general.getStartedLogin
|
||||||
|
general.getStartedNewAccount
|
||||||
|
general.goToInbox
|
||||||
|
general.loginOnlyNeededToEdit
|
||||||
|
general.morescreen.requestATheme
|
||||||
|
general.nameInlineQuestion
|
||||||
|
general.noMatchingMapping
|
||||||
|
general.noNameCategory
|
||||||
|
general.notValid
|
||||||
|
general.openStreetMapIntro
|
||||||
|
general.openTheMapAtGeolocation
|
||||||
|
general.opening_hours.on_weekends
|
||||||
|
general.osmLinkTooltip
|
||||||
|
general.questions.emailIs
|
||||||
|
general.questions.emailOf
|
||||||
|
general.questions.phoneNumberIs
|
||||||
|
general.questions.phoneNumberOf
|
||||||
|
general.questions.websiteIs
|
||||||
|
general.questions.websiteOf
|
||||||
|
general.readYourMessages
|
||||||
|
general.search.searchShort
|
||||||
|
general.sharescreen.openInOtherApplications
|
||||||
|
general.sharescreen.thanksForSharing
|
||||||
|
general.welcomeBack
|
||||||
|
general.wikipedia.addEntry
|
||||||
|
general.wikipedia.createNewWikidata
|
||||||
|
general.wikipedia.noWikipediaPage
|
||||||
|
general.wikipedia.wikipediaboxTitle
|
||||||
|
hotkeyDocumentation.selectMapnik
|
||||||
|
image.currentLicense
|
||||||
|
image.dontDelete
|
||||||
|
image.panoramax.report.blur_excess
|
||||||
|
image.panoramax.report.blur_missing
|
||||||
|
image.panoramax.report.mislocated
|
||||||
|
image.panoramax.report.picture_low_quality
|
||||||
|
image.uploadDone
|
||||||
|
image.uploadMultipleDone
|
||||||
|
image.uploadingMultiple
|
||||||
|
image.uploadingPicture
|
||||||
|
importLayer.alreadyMapped
|
||||||
|
importLayer.importButton
|
||||||
|
importLayer.importHandled
|
||||||
|
importLayer.nearbyImagesIntro
|
||||||
|
importLayer.popupTitle
|
||||||
|
index.featuredThemeTitle
|
||||||
|
index.pickTheme
|
||||||
|
move.loginToMove
|
||||||
|
move.moveTitle
|
||||||
|
move.selectReason
|
||||||
|
move.whyMove
|
||||||
|
notes.loginToAddPicture
|
||||||
|
notes.noteIsPublic
|
||||||
|
notes.notesLayerMustBeEnabled
|
||||||
|
plantDetection.seeInfo
|
||||||
|
reviews.name_required
|
||||||
|
reviews.title_singular
|
||||||
|
reviews.write_a_comment
|
||||||
|
split.splitTitle
|
||||||
|
translations.allMissing
|
||||||
|
translations.notImmediate
|
||||||
|
userinfo.gotoInbox
|
||||||
|
userinfo.gotoSettings
|
||||||
|
userinfo.noDescription
|
||||||
|
validation.slope.inputIncorrect
|
Loading…
Reference in a new issue