mirror of
https://github.com/kevinveenbirkenbach/homepage.veen.world.git
synced 2026-08-23 20:54:33 +00:00
The table was thirty languages typed by hand. It is now generated: utils/generate_languages.py takes the 184 alpha-2 codes from pycountry, the display names from CLDR through babel, and the writing direction from CLDR character order. 159 languages carry their endonym; the remaining 25 have no CLDR entry and carry their English ISO name. That corrects the right-to-left set, which had four entries and needs ten — dv, ks, ps, sd, ug and yi were simply missed. Only 29 languages ship an interface catalogue, so the other 155 render in English until one is filled. make i18n-ui fills app/i18n/ui/ for them, and make i18n now covers the interface strings as well; neither asks for a string a shipped catalogue already answers, so hand-written entries stay. 184 entries do not fit on a screen, so the language menu scrolls inside itself. overscroll-behavior keeps the page behind it from moving once the list reaches its end. babel and pycountry are dev dependencies: the generator needs them, the application does not. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
52 lines
1.0 KiB
TOML
52 lines
1.0 KiB
TOML
[build-system]
|
|
requires = ["setuptools>=69"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "portfolio-ui"
|
|
version = "2.0.0"
|
|
description = "A lightweight YAML-driven portfolio and landing-page generator."
|
|
readme = "README.md"
|
|
requires-python = ">=3.12"
|
|
dependencies = [
|
|
# 3.1 introduced TRUSTED_HOSTS; an older Flask accepts the config key and
|
|
# ignores it, which would silently disable the host-forgery check.
|
|
"flask>=3.1",
|
|
"pyyaml",
|
|
"requests",
|
|
]
|
|
|
|
[project.optional-dependencies]
|
|
dev = [
|
|
"babel",
|
|
"bandit",
|
|
"pip-audit",
|
|
"pycountry",
|
|
"ruff",
|
|
"yamllint",
|
|
]
|
|
|
|
[tool.setuptools]
|
|
py-modules = ["main"]
|
|
|
|
[tool.setuptools.packages.find]
|
|
include = ["app", "app.*"]
|
|
|
|
[tool.setuptools.package-data]
|
|
app = [
|
|
"config.sample.yaml",
|
|
"i18n/ui/*.yaml",
|
|
"i18n/content/*.yaml",
|
|
"templates/**/*.j2",
|
|
"static/css/*.css",
|
|
"static/js/*.js",
|
|
]
|
|
|
|
[tool.ruff]
|
|
target-version = "py312"
|
|
line-length = 88
|
|
extend-exclude = ["app/static/cache", "build"]
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E", "F", "I"]
|