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
10 changes: 10 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,16 @@ jobs:
cp -r ./seedsigner-screenshots ./artifacts/
- name: Coverage report
run: coverage report
- name: Check .pot file freshness
run: |
python -m pip install Babel setuptools
python setup.py extract_messages
if ! git diff -I'^"POT-Creation-Date: ' --exit-code l10n/messages.pot; then
echo "::warning title=Stale .pot file::Localizable strings have changed but l10n/messages.pot was not updated."
echo "### 🌐 Localization Drift Detected" >> $GITHUB_STEP_SUMMARY
echo "Localizable strings have changed but \`l10n/messages.pot\` was not updated." >> $GITHUB_STEP_SUMMARY
echo "The automated pipeline will handle this on merge, but you can run \`python setup.py extract_messages\` locally to sync now." >> $GITHUB_STEP_SUMMARY
fi
- name: Archive CI Artifacts
uses: actions/upload-artifact@v4
with:
Expand Down
35 changes: 32 additions & 3 deletions l10n/messages.pot
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,14 @@ msgid ""
msgstr ""
"Project-Id-Version: seedsigner 0.8.7\n"
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n"
"POT-Creation-Date: 2026-03-05 22:02+0000\n"
"POT-Creation-Date: 2026-04-25 14:34+0530\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"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Generated-By: Babel 2.16.0\n"
"Generated-By: Babel 2.18.0\n"

#. Testnet bitcoin
#: src/seedsigner/gui/components.py
Expand Down Expand Up @@ -78,6 +78,7 @@ msgstr ""

#. Input number will be inserted (e.g. "input 3")
#: src/seedsigner/gui/screens/psbt_screens.py
#, python-brace-format
msgid "input {}"
msgstr ""

Expand All @@ -97,6 +98,7 @@ msgstr ""

#. Inserts the recipient number (e.g. the fifth one is: "recipient 5")
#: src/seedsigner/gui/screens/psbt_screens.py
#, python-brace-format
msgid "recipient {}"
msgstr ""

Expand Down Expand Up @@ -138,6 +140,7 @@ msgstr[1] ""

#. Denonination is inserted (e.g. your "btc change" or "sats change")
#: src/seedsigner/gui/screens/psbt_screens.py
#, python-brace-format
msgid "{} change"
msgstr ""

Expand Down Expand Up @@ -182,6 +185,7 @@ msgstr ""

#. Inserts the percentage value of the animated QR scan progress
#: src/seedsigner/gui/screens/scan_screens.py
#, python-brace-format
msgid "{}%"
msgstr ""

Expand Down Expand Up @@ -260,6 +264,7 @@ msgstr ""

#. Displays the page number and total: (e.g. page 1 of 6)
#: src/seedsigner/gui/screens/seed_screens.py
#, python-brace-format
msgid "Seed Words: {}/{}"
msgstr ""

Expand Down Expand Up @@ -348,6 +353,7 @@ msgstr ""

#. Refers to the QR code size: 21x21, 25x25, or 29x29
#: src/seedsigner/gui/screens/seed_screens.py
#, python-brace-format
msgid "Begin {}x{}"
msgstr ""

Expand All @@ -368,6 +374,7 @@ msgstr ""

#. Inserts the nth address number (e.g. "Checking address 7")
#: src/seedsigner/gui/screens/seed_screens.py
#, python-brace-format
msgid "Checking address {}"
msgstr ""

Expand All @@ -377,6 +384,7 @@ msgstr ""

#. Describes the address index (e.g. "index 7")
#: src/seedsigner/gui/screens/seed_screens.py
#, python-brace-format
msgid "index {}"
msgstr ""

Expand Down Expand Up @@ -498,6 +506,7 @@ msgstr ""

#. current roll number vs total rolls (e.g. roll 7 of 50)
#: src/seedsigner/gui/screens/tools_screens.py
#, python-brace-format
msgid "Dice Roll {}/{}"
msgstr ""

Expand All @@ -509,13 +518,15 @@ msgstr ""
#. Final word calc. `mnemonic_length` = 12 or 24. `num_bits` = 7 or 3 (bits of
#. entropy in final word).
#: src/seedsigner/gui/screens/tools_screens.py
#, python-brace-format
msgid ""
"The {mnemonic_length}th word is built from {num_bits} more entropy bits "
"plus auto-calculated checksum."
msgstr ""

#. current coin-flip number vs total flips (e.g. flip 3 of 4)
#: src/seedsigner/gui/screens/tools_screens.py
#, python-brace-format
msgid "Coin Flip {}/{}"
msgstr ""

Expand All @@ -531,6 +542,7 @@ msgstr ""

#. The additional entropy the user supplied (e.g. coin flips)
#: src/seedsigner/gui/screens/tools_screens.py
#, python-brace-format
msgid "Your input: \"{}\""
msgstr ""

Expand All @@ -541,6 +553,7 @@ msgstr ""

#. labeled presentation of the last word in a BIP-39 mnemonic seed phrase.
#: src/seedsigner/gui/screens/tools_screens.py
#, python-brace-format
msgid "Final Word: \"{}\""
msgstr ""

Expand All @@ -567,6 +580,7 @@ msgstr ""

#. Insert the number of addrs displayed per screen (e.g. "Next 10")
#: src/seedsigner/gui/screens/tools_screens.py
#, python-brace-format
msgid "Next {}"
msgstr ""

Expand Down Expand Up @@ -836,6 +850,7 @@ msgstr ""
#. Inserts fingerprint w/"?" to indicate that this seed can't sign the current
#. PSBT
#: src/seedsigner/views/psbt_views.py
#, python-brace-format
msgid "{} (?)"
msgstr ""

Expand Down Expand Up @@ -915,11 +930,13 @@ msgstr ""

#. Variable is either "change" or "self-transfer".
#: src/seedsigner/views/psbt_views.py
#, python-brace-format
msgid "Transaction's {} address could not be verified from wallet descriptor."
msgstr ""

#. Variable is either "change" or "self-transfer".
#: src/seedsigner/views/psbt_views.py
#, python-brace-format
msgid "Transaction's {} address could not be generated from your seed."
msgstr ""

Expand Down Expand Up @@ -1058,6 +1075,7 @@ msgstr ""

#. Inserts the word number (e.g. "Seed Word #6")
#: src/seedsigner/views/seed_views.py
#, python-brace-format
msgid "Seed Word #{}"
msgstr ""

Expand Down Expand Up @@ -1115,6 +1133,7 @@ msgstr ""

#. Inserts the seed fingerprint
#: src/seedsigner/views/seed_views.py
#, python-brace-format
msgid "Wipe seed {} from the device?"
msgstr ""

Expand Down Expand Up @@ -1184,6 +1203,7 @@ msgstr ""

#. Inserts the child index (e.g. "Child #0")
#: src/seedsigner/views/seed_views.py
#, python-brace-format
msgid "Child #{}"
msgstr ""

Expand Down Expand Up @@ -1229,6 +1249,7 @@ msgstr ""

#. Inserts the word number (e.g. "Verify Word #1")
#: src/seedsigner/views/seed_views.py
#, python-brace-format
msgid "Verify Word #{}"
msgstr ""

Expand All @@ -1238,6 +1259,7 @@ msgstr ""

#. Inserts the word number and the word (e.g. "Word #1 is not "apple"!")
#: src/seedsigner/views/seed_views.py
#, python-brace-format
msgid "Word #{} is not \"{}\"!"
msgstr ""

Expand Down Expand Up @@ -1342,6 +1364,7 @@ msgstr ""

#. Multisig policy. For a "2 of 3" policy, "threshold" = 2; "n" = 3
#: src/seedsigner/views/seed_views.py
#, python-brace-format
msgid "{threshold} of {n}"
msgstr ""

Expand Down Expand Up @@ -1374,6 +1397,7 @@ msgstr ""
#. The name of the setting being configured (e.g. "Script types") will be
#. inserted.
#: src/seedsigner/views/settings_views.py
#, python-brace-format
msgid "At least one option must be selected for \"{}\"."
msgstr ""

Expand Down Expand Up @@ -1425,11 +1449,13 @@ msgstr ""

#. Inserts the number of dice rolls needed for a 12-word mnemonic
#: src/seedsigner/views/tools_views.py
#, python-brace-format
msgid "12 words ({} rolls)"
msgstr ""

#. Inserts the number of dice rolls needed for a 24-word mnemonic
#: src/seedsigner/views/tools_views.py
#, python-brace-format
msgid "24 words ({} rolls)"
msgstr ""

Expand Down Expand Up @@ -1473,6 +1499,7 @@ msgstr ""

#. Multisig policy. For a "2 / 3 multisig" policy, "threshold" = 2; "n" = 3
#: src/seedsigner/views/tools_views.py
#, python-brace-format
msgid "{threshold} / {n} multisig"
msgstr ""

Expand All @@ -1498,7 +1525,7 @@ msgid "Change Addrs"
msgstr ""

#: src/seedsigner/views/view.py
msgid "Scan"
msgid "Scan QR"
msgstr ""

#: src/seedsigner/views/view.py
Expand Down Expand Up @@ -1546,6 +1573,7 @@ msgstr ""

#. "network" will be mainnet/testnet/regtest.
#: src/seedsigner/views/view.py
#, python-brace-format
msgid "Current network setting ({network}) doesn't match {derivation_path}."
msgstr ""

Expand All @@ -1572,6 +1600,7 @@ msgstr ""
#. Inserts the name of a settings option (e.g. "Persistent Settings" is
#. currently...)
#: src/seedsigner/views/view.py
#, python-brace-format
msgid "\"{}\" is currently disabled in Settings."
msgstr ""

Expand Down