django-fakemessages - Generate fake language files for your Django Project
Looking for missing translations in your Django project? Let's censor what is done and see what remains!
- Package on PyPI: https://pypi.org/project/django-fakemessages/
- Project on Github: https://github.com/pfouque/django-fakemessages
- Django >=3.2
- Python >=3.8
- Translate-toolkit >=3.8.5
-
Install
$ pip install "django-fakemessages"
-
Register fakemessage in your list of Django applications:
INSTALLED_APPS = [ # ... "fakemessages", # ... ]
-
Update your settings:
if DEBUG: """Add our fake language to Django""" from django.conf.locale import LANG_INFO FAKE_LANGUAGE_CODE = "kl" LANG_INFO[FAKE_LANGUAGE_CODE] = { "bidi": False, "code": FAKE_LANGUAGE_CODE, "name": "▮▮▮▮▮▮▮▮", "name_local": "🖖 ▮▮▮▮▮▮▮", } LANGUAGES.append((FAKE_LANGUAGE_CODE, "🖖 ▮▮▮▮▮▮▮"))
-
🎉 Voila!
- Simple for developers to get up-and-running
- Consistent style (
black
,ruff
) - Future-proof (
pyupgrade
) - Full type hinting (
mypy
)
We use pre-commit to run code quality tools.
Install pre-commit however you like (e.g.
pip install pre-commit
with your system python) then set up pre-commit to run every time you
commit with:
> pre-commit install
You can then run all tools:
> pre-commit run --all-files
It includes the following:
poetry
for dependency managementRuff
,black
andpyupgrade
lintingmypy
for type checkingGithub Actions
for builds and CI
There are default config files for the linting and mypy.
The package tests themselves are outside of the main library code, in a package that is itself a
Django app (it contains models
, settings
, and any other artifacts required to run the tests
(e.g. urls
).) Where appropriate, this test app may be runnable as a Django project - so that
developers can spin up the test app and see what admin screens look like, test migrations, etc.
The tests themselves use pytest
as the test runner. If you have installed the poetry
evironment,
you can run them thus:
$ poetry run pytest
or
$ poetry shell
(django-fakemessages-py3.10) $ pytest
-
.github/workflows/lint.yml
: Defines and ensure coding rules on Github. -
.github/workflows/test.yml
: Runs tests on all compatible combinations of Django (3.2+) & Python (3.8+) in a Github matrix. -
.github/workflows/coverage.yml
: Calculates the coverage on an up to date version.