Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 27 additions & 0 deletions .github/workflows/l10n-pre-commit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: l10n pre-commit

on:
push:
pull_request:

jobs:
l10n-pre-commit:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
submodules: true
- uses: actions/setup-python@v5.6.0
with:
python-version: "3.x"
- name: Install l10n deps
run: pip install -r l10n/requirements-l10n.txt
- name: Install project
run: pip install -e .
- uses: pre-commit/action@v3.0.1
with:
# Pass extra arguments to the `pre-commit run` command:
# run_extract_messages: Run only this specific hook
# --all-files: Check all files, not just changed ones
# --verbose: Show detailed output for debugging
extra_args: run_extract_messages --all-files --verbose
11 changes: 11 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
repos:
- repo: local
hooks:
- id: run_extract_messages
name: Update and check messages.pot
language: system
entry: python3
args: ["l10n/run_extract_messages.py"]
files: ^src/
require_serial: true
stages: [pre-commit]
21 changes: 20 additions & 1 deletion l10n/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -269,8 +269,27 @@ python setup.py extract_messages

This will rescan all wrapped text, picking up new strings as well as updating existings strings that have been edited.

_TODO: Github Action to auto-generate messages.pot and fail a PR update if the PR has an out of date messages.pot?_
### Pre-commit hook for `extract_messages`

A pre-commit hook is configured to run this command automatically before each commit.

To set it up:

```bash
pip install pre-commit
pre-commit install
```

Once installed, the `run_extract_messages` hook will run every time you commit.
If it updates `messages.pot`, the commit will be blocked so you can review and stage the updated file before trying again.

To trigger the hook manually, run:

```bash
pre-commit run run_extract_messages --all-files
```

---

### Making new text available to translators
Upload the master `messages.pot` to Transifex. It will automatically update each language with the new or changed source strings.
Expand Down
98 changes: 65 additions & 33 deletions l10n/messages.pot
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: seedsigner 0.8.5\n"
"Project-Id-Version: seedsigner 0.8.6\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2025-05-20 09:27-0500\n"
"POT-Creation-Date: 2025-08-30 01:59+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
Expand Down Expand Up @@ -55,7 +55,7 @@ msgid "Review PSBT"
msgstr ""

#: src/seedsigner/gui/screens/psbt_screens.py
msgid "Review Details"
msgid "Review details"
msgstr ""

#: src/seedsigner/gui/screens/psbt_screens.py
Expand Down Expand Up @@ -121,7 +121,7 @@ msgid "PSBT Math"
msgstr ""

#: src/seedsigner/gui/screens/psbt_screens.py
msgid "Review Recipients"
msgid "Review recipients"
msgstr ""

#: src/seedsigner/gui/screens/psbt_screens.py
Expand Down Expand Up @@ -214,7 +214,7 @@ msgid "Privacy Leak!"
msgstr ""

#: src/seedsigner/gui/screens/screen.py
msgid "I Understand"
msgid "I understand"
msgstr ""

#: src/seedsigner/gui/screens/screen.py
Expand Down Expand Up @@ -298,14 +298,14 @@ msgstr ""

#: src/seedsigner/gui/screens/seed_screens.py
#: src/seedsigner/views/seed_views.py
msgid "Export Xpub"
msgid "Export xpub"
msgstr ""

#: src/seedsigner/gui/screens/seed_screens.py
msgid "Xpub Details"
msgstr ""

#. Short for "BIP32 Master Fingerprint"
#. Short for "BIP-32 Master Fingerprint"
#. a label for the shortened Key-id of a BIP-32 master HD wallet
#: src/seedsigner/gui/screens/seed_screens.py
#: src/seedsigner/gui/screens/tools_screens.py
Expand Down Expand Up @@ -379,7 +379,7 @@ msgid ""
msgstr ""

#: src/seedsigner/gui/screens/seed_screens.py
#: src/seedsigner/views/seed_views.py src/seedsigner/views/tools_views.py
#: src/seedsigner/views/seed_views.py
msgid "Verify Address"
msgstr ""

Expand Down Expand Up @@ -447,7 +447,7 @@ msgstr ""

#: src/seedsigner/gui/screens/seed_screens.py
#: src/seedsigner/views/seed_views.py
msgid "Sign Message"
msgid "Sign message"
msgstr ""

#: src/seedsigner/gui/screens/seed_screens.py
Expand Down Expand Up @@ -701,7 +701,7 @@ msgstr ""
msgid "Custom Derivation"
msgstr ""

#. Terminology used by Electrum seeds; equivalent to bip39 passphrase
#. Terminology used by Electrum seeds; equivalent to BIP-39 passphrase
#: src/seedsigner/models/settings_definition.py
msgid "Custom Extension"
msgstr ""
Expand Down Expand Up @@ -877,15 +877,15 @@ msgid "Will Send"
msgstr ""

#: src/seedsigner/views/psbt_views.py
msgid "Next Recipient"
msgid "Next recipient"
msgstr ""

#: src/seedsigner/views/psbt_views.py
msgid "Skip Verification"
msgid "Skip verification"
msgstr ""

#: src/seedsigner/views/psbt_views.py
msgid "Verify Multisig Change"
msgid "Verify multisig change"
msgstr ""

#. The amount you're receiving back from the transaction
Expand Down Expand Up @@ -936,7 +936,7 @@ msgid "Approve PSBT"
msgstr ""

#: src/seedsigner/views/psbt_views.py
msgid "Select Diff Seed"
msgid "Select diff seed"
msgstr ""

#: src/seedsigner/views/psbt_views.py
Expand Down Expand Up @@ -979,7 +979,7 @@ msgstr ""
msgid "Expected a SeedQR"
msgstr ""

#: src/seedsigner/views/scan_views.py
#: src/seedsigner/views/scan_views.py src/seedsigner/views/seed_views.py
msgid "Scan descriptor"
msgstr ""

Expand Down Expand Up @@ -1029,6 +1029,10 @@ msgstr ""
msgid "Select seed to verify"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Sign Message"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Load the seed to sign with"
msgstr ""
Expand All @@ -1055,7 +1059,7 @@ msgid "Seed Word #{}"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Review & Edit"
msgid "Review & edit"
msgstr ""

#: src/seedsigner/views/seed_views.py src/seedsigner/views/tools_views.py
Expand All @@ -1078,16 +1082,28 @@ msgstr ""
msgid "Discard passphrase"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Skip passphrase"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Discard passphrase?"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Your current passphrase entry will be erased"
msgid "Your current passphrase entry will be erased."
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Skip passphrase?"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "You have not entered a passphrase yet."
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Keep Seed"
msgid "Keep seed"
msgstr ""

#. Inserts the seed fingerprint
Expand All @@ -1108,25 +1124,37 @@ msgid "Some features are disabled for Electrum seeds."
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Verify Addr"
msgid "Verify addr"
msgstr ""

#: src/seedsigner/views/seed_views.py src/seedsigner/views/tools_views.py
msgid "Address explorer"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Backup seed"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "BIP-85 Child Seed"
msgid "BIP-85 child seed"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Discard Seed"
msgid "Discard seed"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "View Seed Words"
msgid "View seed words"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Export as SeedQR"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Export Xpub"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Xpub can be used to view all future transactions."
msgstr ""
Expand Down Expand Up @@ -1173,7 +1201,7 @@ msgid "BIP-85 Child Index must be between 0 and 2^31-1."
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Try Again"
msgid "Try again"
msgstr ""

#: src/seedsigner/views/seed_views.py
Expand All @@ -1190,7 +1218,7 @@ msgid "Verify Word #{}"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Review Seed Words"
msgid "Review seed words"
msgstr ""

#. Inserts the word number and the word (e.g. "Word #1 is not "apple"!")
Expand Down Expand Up @@ -1293,10 +1321,6 @@ msgstr ""
msgid "Can't validate a single sig addr without specifying a seed"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Scan Descriptor"
msgstr ""

#: src/seedsigner/views/seed_views.py
msgid "Return to PSBT"
msgstr ""
Expand Down Expand Up @@ -1337,6 +1361,10 @@ msgstr ""
msgid "Calc 12th/24th word"
msgstr ""

#: src/seedsigner/views/tools_views.py
msgid "Verify address"
msgstr ""

#: src/seedsigner/views/tools_views.py src/seedsigner/views/view.py
msgid "Tools"
msgstr ""
Expand All @@ -1353,6 +1381,10 @@ msgstr ""
msgid "Mnemonic Length?"
msgstr ""

#: src/seedsigner/views/tools_views.py
msgid "Calculating..."
msgstr ""

#. Inserts the number of dice rolls needed for a 12-word mnemonic
#: src/seedsigner/views/tools_views.py
msgid "12 words ({} rolls)"
Expand Down Expand Up @@ -1397,12 +1429,12 @@ msgstr ""

#. label for addresses where others send us incoming payments
#: src/seedsigner/views/tools_views.py
msgid "Receive Addresses"
msgid "Receive addresses"
msgstr ""

#. label for addresses that collect the change from our own outgoing payments
#: src/seedsigner/views/tools_views.py
msgid "Change Addresses"
msgid "Change addresses"
msgstr ""

#. a status message that our payment addresses are being calculated
Expand Down Expand Up @@ -1439,7 +1471,7 @@ msgid "Restart"
msgstr ""

#: src/seedsigner/views/view.py
msgid "Power Off"
msgid "Power off"
msgstr ""

#: src/seedsigner/views/view.py
Expand All @@ -1459,7 +1491,7 @@ msgid "Not Yet Implemented"
msgstr ""

#: src/seedsigner/views/view.py
msgid "Back to Main Menu"
msgid "Back to main menu"
msgstr ""

#. The network setting (mainnet/testnet/regtest) doesn't match the provided
Expand All @@ -1483,7 +1515,7 @@ msgid "System Error"
msgstr ""

#: src/seedsigner/views/view.py
msgid "Update Setting"
msgid "Update setting"
msgstr ""

#. Inserts the name of a settings option (e.g. "Persistent Settings" is
Expand Down
1 change: 1 addition & 0 deletions l10n/requirements-l10n.txt
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
Babel==2.16.0
setuptools>=80.9.0
Loading