ubuntu-l10n 0.3.7__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (42) hide show
  1. ubuntu_l10n-0.3.7/.github/workflows/pypi-publish.yml +29 -0
  2. ubuntu_l10n-0.3.7/.github/workflows/release.yml +79 -0
  3. ubuntu_l10n-0.3.7/.github/workflows/transifex-sync.yml +55 -0
  4. ubuntu_l10n-0.3.7/.gitignore +23 -0
  5. ubuntu_l10n-0.3.7/.tx/config +8 -0
  6. ubuntu_l10n-0.3.7/CHANGELOG.md +13 -0
  7. ubuntu_l10n-0.3.7/LICENSE +674 -0
  8. ubuntu_l10n-0.3.7/PKG-INFO +53 -0
  9. ubuntu_l10n-0.3.7/README.md +37 -0
  10. ubuntu_l10n-0.3.7/data/icons/se.danielnylander.ubuntu-l10n.svg +21 -0
  11. ubuntu_l10n-0.3.7/data/icons/ubuntu-l10n.svg +10 -0
  12. ubuntu_l10n-0.3.7/data/screenshots/bug-loading.png +0 -0
  13. ubuntu_l10n-0.3.7/data/screenshots/screenshot-01.png +0 -0
  14. ubuntu_l10n-0.3.7/data/se.danielnylander.ubuntu-l10n.desktop +10 -0
  15. ubuntu_l10n-0.3.7/debian/changelog +5 -0
  16. ubuntu_l10n-0.3.7/debian/control +26 -0
  17. ubuntu_l10n-0.3.7/debian/copyright +17 -0
  18. ubuntu_l10n-0.3.7/debian/files +1 -0
  19. ubuntu_l10n-0.3.7/debian/rules +4 -0
  20. ubuntu_l10n-0.3.7/debian/source/format +1 -0
  21. ubuntu_l10n-0.3.7/desktop-merge.py +67 -0
  22. ubuntu_l10n-0.3.7/po/README.md +23 -0
  23. ubuntu_l10n-0.3.7/po/sv.po +237 -0
  24. ubuntu_l10n-0.3.7/po/ubuntu-l10n.pot +221 -0
  25. ubuntu_l10n-0.3.7/pyproject.toml +29 -0
  26. ubuntu_l10n-0.3.7/pyproject.toml.bak +30 -0
  27. ubuntu_l10n-0.3.7/screenshots/main.png +0 -0
  28. ubuntu_l10n-0.3.7/se.danielnylander.ubuntu-l10n.desktop.in +9 -0
  29. ubuntu_l10n-0.3.7/setup.cfg +4 -0
  30. ubuntu_l10n-0.3.7/tests/test_release_sanity.py +25 -0
  31. ubuntu_l10n-0.3.7/ubuntu_l10n/__init__.py +3 -0
  32. ubuntu_l10n-0.3.7/ubuntu_l10n/__init__.py.bak +1 -0
  33. ubuntu_l10n-0.3.7/ubuntu_l10n/accessibility.py +66 -0
  34. ubuntu_l10n-0.3.7/ubuntu_l10n/app.py +878 -0
  35. ubuntu_l10n-0.3.7/ubuntu_l10n/print_helper.py +41 -0
  36. ubuntu_l10n-0.3.7/ubuntu_l10n/scraper.py +298 -0
  37. ubuntu_l10n-0.3.7/ubuntu_l10n.egg-info/PKG-INFO +53 -0
  38. ubuntu_l10n-0.3.7/ubuntu_l10n.egg-info/SOURCES.txt +40 -0
  39. ubuntu_l10n-0.3.7/ubuntu_l10n.egg-info/dependency_links.txt +1 -0
  40. ubuntu_l10n-0.3.7/ubuntu_l10n.egg-info/entry_points.txt +2 -0
  41. ubuntu_l10n-0.3.7/ubuntu_l10n.egg-info/requires.txt +3 -0
  42. ubuntu_l10n-0.3.7/ubuntu_l10n.egg-info/top_level.txt +1 -0
@@ -0,0 +1,29 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ push:
5
+ tags: ["v*"]
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ id-token: write
10
+
11
+ jobs:
12
+ publish:
13
+ runs-on: ubuntu-latest
14
+ environment: pypi
15
+ steps:
16
+ - uses: actions/checkout@v4
17
+ - uses: actions/setup-python@v5
18
+ with:
19
+ python-version: "3.12"
20
+ - name: Install build tools
21
+ run: python -m pip install --upgrade build twine
22
+ - name: Run release sanity tests
23
+ run: python -m unittest discover -s tests -v
24
+ - name: Build distributions
25
+ run: |
26
+ python -m build
27
+ python -m twine check dist/*
28
+ - name: Publish distributions
29
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,79 @@
1
+ name: Release
2
+
3
+ on:
4
+ push:
5
+ tags: ['v*']
6
+
7
+ permissions:
8
+ contents: write
9
+
10
+ jobs:
11
+ release:
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+
16
+ - uses: actions/setup-python@v5
17
+ with:
18
+ python-version: '3.12'
19
+
20
+ - name: Install tools
21
+ run: sudo apt-get install -y gettext
22
+
23
+ - name: Compile translations
24
+ run: |
25
+ for po in po/*.po; do
26
+ [ -f "$po" ] || continue
27
+ lang=$(basename "$po" .po)
28
+ mkdir -p locale/$lang/LC_MESSAGES
29
+ msgfmt -o locale/$lang/LC_MESSAGES/ubuntu-l10n.mo "$po"
30
+ done
31
+
32
+
33
+ - name: Generate translated .desktop file
34
+ run: |
35
+ python3 desktop-merge.py se.danielnylander.ubuntu-l10n.desktop.in po/ se.danielnylander.ubuntu-l10n.desktop
36
+
37
+ - name: Build .deb
38
+ run: |
39
+ VERSION=${GITHUB_REF_NAME#v}
40
+ PKG=$(mktemp -d)
41
+ mkdir -p $PKG/usr/lib/python3/dist-packages/ubuntu_l10n
42
+ mkdir -p $PKG/usr/bin
43
+ mkdir -p $PKG/usr/share/applications
44
+ mkdir -p $PKG/DEBIAN
45
+
46
+ cp ubuntu_l10n/*.py $PKG/usr/lib/python3/dist-packages/ubuntu_l10n/
47
+
48
+ for mo in locale/*/LC_MESSAGES/ubuntu-l10n.mo; do
49
+ [ -f "$mo" ] || continue
50
+ lang=$(echo "$mo" | cut -d/ -f2)
51
+ mkdir -p $PKG/usr/share/locale/$lang/LC_MESSAGES
52
+ cp "$mo" $PKG/usr/share/locale/$lang/LC_MESSAGES/
53
+ done
54
+
55
+ desktop=$(find data/ -name "*.desktop" 2>/dev/null | head -1)
56
+ [ -n "$desktop" ] && cp "$desktop" $PKG/usr/share/applications/
57
+
58
+ icon=$(find data/icons/ -name "*.svg" 2>/dev/null | head -1)
59
+ if [ -n "$icon" ]; then
60
+ mkdir -p $PKG/usr/share/icons/hicolor/scalable/apps
61
+ cp "$icon" $PKG/usr/share/icons/hicolor/scalable/apps/
62
+ fi
63
+
64
+ printf '#!/usr/bin/env python3\nfrom ubuntu_l10n.app import main\nmain()\n' > $PKG/usr/bin/ubuntu-l10n
65
+ chmod +x $PKG/usr/bin/ubuntu-l10n
66
+
67
+ printf 'Package: ubuntu-l10n\nVersion: %s-1\nSection: devel\nPriority: optional\nArchitecture: all\nDepends: python3 (>= 3.10), python3-gi, gir1.2-gtk-4.0, gir1.2-adw-1\nMaintainer: Daniel Nylander <daniel@danielnylander.se>\nHomepage: https://github.com/yeager/ubuntu-l10n\nDescription: Ubuntu/Launchpad translation statistics viewer\n' "$VERSION" > $PKG/DEBIAN/control
68
+
69
+ dpkg-deb --root-owner-group --build $PKG ubuntu-l10n_${VERSION}-1_all.deb
70
+
71
+ - name: Create release and upload
72
+ env:
73
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
74
+ run: |
75
+ VERSION=${GITHUB_REF_NAME#v}
76
+ gh release create "$GITHUB_REF_NAME" "ubuntu-l10n_${VERSION}-1_all.deb" \
77
+ --title "v${VERSION}" \
78
+ --notes "Release v${VERSION} with checked-in translations" \
79
+ --repo yeager/ubuntu-l10n
@@ -0,0 +1,55 @@
1
+ name: Sync Transifex Translations
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '0 3 * * *' # Daily at 03:00 UTC
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: write
10
+
11
+ jobs:
12
+ sync:
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v4
16
+
17
+ - name: Install Transifex CLI
18
+ run: |
19
+ curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh | bash
20
+ sudo mv tx /usr/local/bin/
21
+
22
+ - name: Push source strings to Transifex
23
+ env:
24
+ TX_TOKEN: ${{ secrets.TX_TOKEN }}
25
+ run: tx push --source --force
26
+
27
+ - name: Pull translations (minimum 20%)
28
+ env:
29
+ TX_TOKEN: ${{ secrets.TX_TOKEN }}
30
+ run: tx pull --all --force --minimum-perc=20
31
+
32
+ - name: Install gettext
33
+ run: sudo apt-get install -y gettext
34
+
35
+ - name: Compile .mo files
36
+ run: |
37
+ for po in po/*.po; do
38
+ [ -f "$po" ] || continue
39
+ lang=$(basename "$po" .po)
40
+ msgfmt -o "po/${lang}.mo" "$po"
41
+ done
42
+
43
+
44
+
45
+ - name: Commit and push
46
+ run: |
47
+ git config user.name "github-actions[bot]"
48
+ git config user.email "github-actions[bot]@users.noreply.github.com"
49
+ git add po/
50
+ if git diff --cached --quiet; then
51
+ echo "No translation changes"
52
+ else
53
+ git commit -m "i18n: sync translations from Transifex"
54
+ git push
55
+ fi
@@ -0,0 +1,23 @@
1
+ # Build artifacts
2
+ build-new/
3
+ rpm-build/
4
+ pkg/
5
+ deb-build/
6
+ dist/
7
+ build/
8
+ *.deb
9
+ *.rpm
10
+
11
+ # Python
12
+ __pycache__/
13
+ *.pyc
14
+ *.pyo
15
+ *.egg-info/
16
+ *.egg
17
+
18
+ # Editor
19
+ *.swp
20
+ *~
21
+ .vscode/
22
+ .idea/
23
+ *.mo
@@ -0,0 +1,8 @@
1
+ [main]
2
+ host = https://www.transifex.com
3
+
4
+ [o:danielnylander:p:ubuntu-l10n:r:ubuntu-l10n-pot]
5
+ file_filter = po/<lang>.po
6
+ source_file = po/ubuntu-l10n.pot
7
+ source_lang = en
8
+ type = PO
@@ -0,0 +1,13 @@
1
+ # Changelog
2
+
3
+ ## 0.2.5 — 2026-02-15
4
+
5
+ - Remove misplaced PacketLens keywords from Swedish translation backup
6
+ - Verify English source strings use "A-Z" (not "A-Ö") for sort labels
7
+ - Regenerate .pot file
8
+
9
+ ## 0.2.4
10
+
11
+ - Add CSV/JSON export
12
+ - Add translatable man page via po4a
13
+ - CI: add po4a man page translation build