What changed, and why it matters
This commit only updates the default translation strings file in BTCPay Server. It adds, removes, and rewords user-facing text labels (for example, new labels for monetization features, language packs, and payment request labels). There are no code logic changes, no security fixes, and no changes to how the application behaves.
No security action required. Treat as a routine localization update.
Security signals we found
No strong security signals were identified.
Evidence from the diff
The diff is limited to BTCPayServer/Services/Translations.Default.cs, a static dictionary of English source strings used for localization. The changes are purely string additions/removals/updates. No executable code, controllers, services, authentication, authorization, cryptography, input validation, or configuration handling is modified. The new strings hint at unrelated product features (monetization, plans, language packs) but the commit itself does not implement or alter those features.
Changed components
BTCPayServer/Services/Translations.Default.csInspect captured patch +84 / −18
diff --git a/BTCPayServer/Services/Translations.Default.cs b/BTCPayServer/Services/Translations.Default.cs
index ec29b86..5910f44 100644
--- a/BTCPayServer/Services/Translations.Default.cs
+++ b/BTCPayServer/Services/Translations.Default.cs
@@ -16,6 +16,7 @@ namespace BTCPayServer.Services
"... only if the customer makes more than one payment for the invoice": "",
"'{0}' already exists": "",
"'Anyone can invoice' is turned off": "",
+ "({0} migrated users)": "",
"{0} Archived Store": "",
"{0} Archived Stores": "",
"{0} day": "",
@@ -41,6 +42,7 @@ namespace BTCPayServer.Services
"{0} Stores": "",
"{0} total": "",
"{0} Transactions": "",
+ "{0} users migrated to the plan '{1}'.": "",
"{0} wallet": "",
"{0} Wallet": "",
"{0} Wallet Labels": "",
@@ -77,7 +79,7 @@ namespace BTCPayServer.Services
"A payment request with reference ID \"{0}\" already exists for this store.": "",
"A payment that was made to an approved payout by an external wallet is waiting for your confirmation.": "",
"A permission to the camera is needed to scan the QR code. Please grant the browser access and then retry.": "",
- "A Postgres compatible JSON Path (eg. $.Customer.Name == \"john\")": "",
+ "A Postgres compatible JSON Path (eg. $ ? (@.Customer.Name == \"John\"))": "",
"A self-hosted, open-source bitcoin payment processor.": "",
"Access to vault granted by owner.": "",
"Access Tokens": "",
@@ -91,6 +93,7 @@ namespace BTCPayServer.Services
"Account successfully deleted.": "",
"Action canceled by user": "",
"Actions": "",
+ "Activate Monetization": "",
"Active": "",
"Active Members": "",
"Active Subscribers": "",
@@ -114,7 +117,6 @@ namespace BTCPayServer.Services
"Add Service": "",
"Add subscriber": "",
"Add User": "",
- "Add Webhook": "",
"Additional Actions": "",
"Additional Options": "",
"Additional rates to track": "",
@@ -133,6 +135,7 @@ namespace BTCPayServer.Services
"Advanced settings": "",
"All": "",
"All invoice updates": "",
+ "All Labels": "",
"All notifications are disabled.": "",
"All Plugins": "",
"All Status": "",
@@ -166,7 +169,6 @@ namespace BTCPayServer.Services
"Any uploaded files are being saved on the same machine that hosts BTCPay; please pay attention to your storage space.": "",
"API": "",
"API authentication docs": "",
- "API ID": "",
"API Key": "",
"API key generated!": "",
"API Key removed": "",
@@ -195,7 +197,6 @@ namespace BTCPayServer.Services
"Archive this store": "",
"Archive this store so that it does not appear in the stores list by default": "",
"archived": "",
- "Archived": "",
"Archived Stores": "",
"Authenticator code": "",
"Authorize a public key to access Bitpay compatible Invoice API.": "",
@@ -217,6 +218,7 @@ namespace BTCPayServer.Services
"Azure Blob Storage": "",
"Backend's language": "",
"Balance": "",
+ "Base URL": "",
"Batch size": "",
"BCC": "",
"Before being able to upload you first need to {0}.": "",
@@ -236,6 +238,7 @@ namespace BTCPayServer.Services
"BTCPay is expecting you to access this website from <strong>": "",
"BTCPay Server Configurator": "",
"BTCPay Server currently supports:": "",
+ "BTCPay Server Registration will redirect to a custom registration page": "",
"BTCPay Server Supporters": "",
"BTCPay will restart momentarily.": "",
"Bump fee": "",
@@ -243,8 +246,11 @@ namespace BTCPayServer.Services
"Button Type": "",
"Buy Button Text": "",
"Buyer Email": "",
+ "By confirming, you will deactivate the monetization feature, user access will not be dependent on subscriptions anymore.": "",
+ "By proceeding, all non-admin users will be migrated to the selected plan. If the plan does not include the <b>can-access</b> feature, the user accounts will be disabled.": "",
"Callback Notification URL": "",
"Campaign not active": "",
+ "Can access BTCPay Server": "",
"Can create a new cold wallet": "",
"Can use hot wallet": "",
"Can use RPC import": "",
@@ -281,6 +287,8 @@ namespace BTCPayServer.Services
"Checkout Appearance": "",
"Checkout Description": "",
"Checkout Experience": "",
+ "Choose a different offering for monetization": "",
+ "Choose a language...": "",
"Choose Point of Sale Style": "",
"Choose what event sends the email.": "",
"choose your file storage service provider": "",
@@ -298,12 +306,12 @@ namespace BTCPayServer.Services
"Clear all filters": "",
"Clear all transactions from history": "",
"Clear filter": "",
+ "Clear label filter": "",
"click here": "",
"Clone": "",
"Close": "",
"Code": "",
"Coin selection": "",
- "Coingecko integration": "",
"Collect signatures": "",
"Colors to rotate between with animation when a payment is made. One color per line.": "",
"Combine": "",
@@ -375,6 +383,7 @@ namespace BTCPayServer.Services
"Create {0} Watch-Only Wallet": "",
"Create a new {0}": "",
"Create a new app": "",
+ "Create a new offering": "",
"Create a new store": "",
"Create a new subscriber": "",
"Create a new wallet": "",
@@ -462,6 +471,7 @@ namespace BTCPayServer.Services
"Delete API key": "",
"Delete app": "",
"Delete dictionary": "",
+ "Delete label": "",
"Delete LND seed": "",
"Delete LND seed from server": "",
"Delete offering": "",
@@ -473,6 +483,7 @@ namespace BTCPayServer.Services
"Delete unused Docker images present on your system.": "",
"Delete user": "",
"Delete Webhook": "",
+ "Demonetize": "",
"Dependencies": "",
"Dependencies not met.": "",
"Derivation scheme": "",
@@ -502,6 +513,7 @@ namespace BTCPayServer.Services
"Disable public user registration": "",
"Disable stores from using the server's email settings as backup": "",
"Disable two-factor authentication (2FA)": "",
+ "Disable zero amount invoices": "",
"Disabled": "",
"Disabled Plugins": "",
"Disabling 2FA does not change the keys used in the authenticator apps. If you wish to change the key used in an authenticator app you should reset your authenticator keys.": "",
@@ -536,7 +548,10 @@ namespace BTCPayServer.Services
"Donate": "",
"Done": "",
"Downgrade": "",
+ "Download": "",
"Download a two-factor authenticator app like …": "",
+ "Download language pack": "",
+ "Download Language Pack": "",
"Download PSBT file": "",
"Dynamic": "",
"Dynamic DNS allows you to have a stable DNS name pointing to your server, even if your IP address changes regularly. This is recommended if you are hosting BTCPay Server at home and wish to have a clearnet domain to access your server.": "",
@@ -551,6 +566,7 @@ namespace BTCPayServer.Services
"Edit Field": "",
"Edit Form": "",
"Edit Item": "",
+ "Edit Label": "",
"Edit payment request": "",
"Edit Payment Request": "",
"Edit plan": "",
@@ -617,7 +633,6 @@ namespace BTCPayServer.Services
"Enter the wallet seed": "",
"Enter wallet seed": "",
"Enter your extended public key": "",
- "Features": "",
"Error": "",
"Error updating profile": "",
"Error updating user": "",
@@ -629,7 +644,6 @@ namespace BTCPayServer.Services
"Expired": "",
"expired with partial payments": "",
"Expires in": "",
- "Expiry": "",
"Export": "",
"Export the PSBT for your wallet. Sign it with your wallet and import the signed PSBT version here for finalization and broadcasting.": "",
"Extended public key": "",
@@ -637,12 +651,14 @@ namespace BTCPayServer.Services
"Extends the BTCPay Server Light theme": "",
"External payout approval": "",
"Failed to archive the app.": "",
+ "Failed to download language pack: {0}": "",
"Failed to unarchive the app.": "",
"Fallback": "",
"Fallback rate source": "",
"Fallback rates will be used in case the primary rates are not available.": "",
"Feature disabled": "",
"Featured Image URL": "",
+ "Features": "",
"Fee block target": "",
"Fee bump method": "",
"Fee rate": "",
@@ -672,12 +688,14 @@ namespace BTCPayServer.Services
"Filter by label": "",
"Filter by transaction id, amount, label, comment": "",
"Filter invoices by Custom Range": "",
+ "Filter payment requests by Custom Range": "",
"Firstname Lastname <email@example.com>": "",
"Fit button inline": "",
"Fixed amount": "",
"follow these instructions": "",
"For a specific item of your template": "",
"For anything with a custom amount": "",
+ "for lifetime": "",
"For many email providers (like Gmail) your login is your email address.": "",
"For the macaroon options you need to provide a macaroon with the <code>invoices:write</code> permission (e.g. <code>invoice.macaroon</code>. If you want to display the node connection details, it also needs the <code>info:read</code> permission.": "",
"For wallet compatibility: Bech32 encoded (classic) vs. cleartext URL (upcoming)": "",
@@ -737,8 +755,6 @@ namespace BTCPayServer.Services
"HTML Lang": "",
"HTML Meta Tags": "",
"HTTP-based Tor hidden services": "",
- "I don't have a wallet": "",
- "I have a wallet": "",
"I have written down my recovery phrase and stored it in a secure location": "",
"I wrote down my recovery codes": "",
"Id": "",
@@ -775,6 +791,7 @@ namespace BTCPayServer.Services
"In-store": "",
"Inactive": "",
"Include archived": "",
+ "Include Archived": "",
"Incorrect pin code.": "",
"Increase the security of your instance by disabling the ability to change the SSH settings in this BTCPay Server instance's user interface.": "",
"Index": "",
@@ -786,6 +803,7 @@ namespace BTCPayServer.Services
"Interval": "",
"Invalid": "",
"Invalid App Type": "",
+ "Invalid Base URL": "",
"Invalid currency": "",
"Invalid currency pair '{0}' (it should be formatted like {1})": "",
"Invalid currency pairs (should be for example: {0})": "",
@@ -833,8 +851,12 @@ namespace BTCPayServer.Services
"Key path": "",
"Keypad": "",
"Label": "",
+ "Label Name": "",
+ "Label name cannot be empty.": "",
"Label:": "",
"Labels": "",
+ "Language pack '{0}' downloaded successfully": "",
+ "Language pack '{0}' updated successfully": "",
"Last 24 hours": "",
"Last 3 days": "",
"Last 7 days": "",
@@ -892,7 +914,9 @@ namespace BTCPayServer.Services
"Make sure this BTCPay Server instance belongs to you.": "",
"Manage": "",
"Manage Account": "",
+ "Manage billing": "",
"Manage labels": "",
+ "Manage Labels": "",
"Manage Plugins": "",
"Manually enter your 12 or 24 word recovery seed.": "",
"Map specific domains to specific apps": "",
@@ -916,6 +940,8 @@ namespace BTCPayServer.Services
"Metadata must be a valid JSON object": "",
"Metadata was not valid JSON": "",
"Method": "",
+ "Migrate existing non-admin users": "",
+ "Migrate existing users": "",
"Min": "",
"Min sats": "",
"Mine": "",
@@ -926,6 +952,10 @@ namespace BTCPayServer.Services
"minutes": "",
"Mirror of": "",
"Modify": "",
+ "Monetization": "",
+ "Monetization allows you to get paid for sharing your BTCPay Server instance with other users.": "",
+ "Monetization deactivated, users who register to your server from now will not be subscriber of any offering.": "",
+ "Monetization order updated to offering {0} with default plan {1}.": "",
"Monthly revenue": "",
"More details": "",
"More information": "",
@@ -1085,6 +1115,8 @@ namespace BTCPayServer.Services
"Payment Request cannot be paid as it has been archived": "",
"Payment Request has already been settled.": "",
"Payment Request has expired": "",
+ "Payment Request Labels": "",
+ "payment requests": "",
"Payment Requests": "",
"Payment requests are persistent shareable pages that enable the receiver to pay at their convenience. Funds are paid to a payment request at the current exchange rate.": "",
"Payments": "",
@@ -1104,6 +1136,9 @@ namespace BTCPayServer.Services
"Pending Approval": "",
"Pending Email Verification": "",
"Pending Invitation": "",
+ "per month": "",
+ "per quarter": "",
+ "per year": "",
"percent": "",
"Percentage must be a numeric value between 0 and 100": "",
"Permanent Url": "",
@@ -1115,6 +1150,7 @@ namespace BTCPayServer.Services
"Plan": "",
"Plan deleted": "",
"Plan edited": "",
+ "Plan ID": "",
"Plan Name": "",
"Plans": "",
"Please check that your wallet is generating the same addresses as below.": "",
@@ -1122,6 +1158,7 @@ namespace BTCPayServer.Services
"Please check your email to reset your password.": "",
"Please configure it first.": "",
"Please consult the server log for more details.": "",
+ "Please contact support.": "",
"Please enable JavaScript for this option to be available": "",
"Please enter a positive amount": "",
"Please fix errors shown in order for code generation to successfully execute.": "",
@@ -1137,6 +1174,7 @@ namespace BTCPayServer.Services
"Please provide your extended public key": "",
"Please remove the NFC from the card reader": "",
"Please review and confirm the transaction on your device...": "",
+ "Please select a language": "",
"Please select an option before proceeding": "",
"Please set NBXPlorer's PostgreSQL connection string to make this feature available.": "",
"Please verify that the address displayed on your device is <b>{0}</b>...": "",
@@ -1168,6 +1206,9 @@ namespace BTCPayServer.Services
"Print display": "",
"Private key or seed": "",
"Pro tip: There are supported but unconfigured Payout Processors for this payout payment method.": "",
+ "Proceed": "",
+ "Proceed to free trial": "",
+ "Proceed to Secure Payment": "",
"Process approved payouts instantly": "",
"Processing": "",
"Processor updated.": "",
@@ -1239,6 +1280,7 @@ namespace BTCPayServer.Services
"Regenerate your 2FA recovery codes.": "",
"Register": "",
"Register Device": "",
+ "Register page redirect URL": "",
"Register wallet for payment links": "",
"Register your Lightning node for LNURL Auth": "",
"Register your security device": "",
@@ -1251,7 +1293,6 @@ namespace BTCPayServer.Services
"Remove Destination": "",
"Remove domain mapping": "",
"Remove email rule": "",
- "Remove label": "",
"Remove Lightning Address": "",
"Remove Lightning security": "",
"Remove LNURL Auth link": "",
@@ -1292,6 +1333,7 @@ namespace BTCPayServer.Services
"Reset goal every": "",
"Reset Password": "",
"Reset recovery codes": "",
+ "Reset your password": "",
"Resetting Boltcard...": "",
"Resources": "",
"REST Uri": "",
@@ -1344,7 +1386,7 @@ namespace BTCPayServer.Services
"Search": "",
"Search by email, external reference, name…": "",
"Search by email...": "",
- "Search by Id...": "",
+ "Search by Id, Title or Amount...": "",
"Search engines can index this site": "",
"Search…": "",
"seconds": "",
@@ -1361,10 +1403,18 @@ namespace BTCPayServer.Services
"Segwit wrapped (Compatible with old wallets)": "",
"Select": "",
"Select a field to edit": "",
+ "Select a language to download from the community translation repository.": "",
"Select a preset": "",
"Select All": "",
+ "Select an existing offering": "",
"Select an item to edit": "",
+ "Select default plan": "",
+ "Select existing offering": "",
"Select labels": "",
+ "Select Language": "",
+ "Select offering": "",
+ "Select plan": "",
+ "Select store": "",
"Select Store": "",
"Select the payout method used for refund": "",
"Select the store to grant permission for": "",
@@ -1466,6 +1516,7 @@ namespace BTCPayServer.Services
"Start date": "",
"Start Date": "",
"Start scan": "",
+ "Starter plan monthly cost": "",
"Starting index": "",
"Starts {0}": "",
"Status": "",
@@ -1475,6 +1526,8 @@ namespace BTCPayServer.Services
"Storage Provider": "",
"Storage settings updated successfully": "",
"Store": "",
+ "Store emails settings are now using the server's SMTP settings.": "",
+ "Store emails settings copied from server settings": "",
"Store has not enabled Pay Button": "",
"Store Id": "",
"Store Name": "",
@@ -1578,9 +1631,12 @@ namespace BTCPayServer.Services
"The invoice currency, at the rate when the refund will be sent.": "",
"The invoice has been archived and will no longer appear in the invoice list by default.": "",
"The invoice has been unarchived and will appear in the invoice list by default again.": "",
- "The label {0} will be removed from this wallet and its associated transactions.": "",
- "The label could not be removed.": "",
- "The label has been successfully removed.": "",
+ "The label {0} will be deleted from all payment requests.": "",
+ "The label {0} will be deleted from this wallet and its associated transactions.": "",
+ "The label could not be deleted.": "",
+ "The label could not be renamed.": "",
+ "The label has been successfully deleted.": "",
+ "The label has been successfully renamed.": "",
"The Lightning node could not be registered.": "",
"The LND seed backup is useful to recover on-chain funds of your LND wallet in case of a corruption of your server.": "",
"The name of the field in the invoice's metadata.": "",
@@ -1597,6 +1653,7 @@ namespace BTCPayServer.Services
"The plan has been started.": "",
"The plan has been started. ({0} has been refunded)": "",
"The plugin could not be downloaded. Try again later.": "",
+ "The preferred link to this server. This is typically used when BTCPay Server is generating an email containing a link which should point to this server.": "",
"The previous scan completed and found <b>{0}</b> UTXOs in <b>{1}</b> (The total UTXO set size is {2})": "",
"The previous scan stopped with an error:": "",
"The provided BIP21 payment URI was malformed": "",
@@ -1666,6 +1723,7 @@ namespace BTCPayServer.Services
"There are no webhooks yet.": "",
"There isn't any UTXO available to bump fee with CPFP": "",
"There was an error generating your wallet: {0}": "",
+ "These translations are maintained by the community at": "",
"This account has been locked out because of multiple invalid login attempts. Please try again later.": "",
"This account has been locked out. Please try again": "",
"This action is permanent and will remove the ability to change the SSH settings via the BTCPay Server user interface.": "",
@@ -1701,7 +1759,8 @@ namespace BTCPayServer.Services
"This is an overpayment of the initial amount.": "",
"This is the only admin, so their role can't be removed until another admin is added.": "",
"This key, also called \"xpub\", is used to generate individual destination addresses for your invoices.": "",
- "This label will be removed from this wallet and its associated transactions.": "",
+ "This label will be deleted from all payment requests.": "",
+ "This label will be deleted from this wallet and its associated transactions.": "",
"This Lightning Address will be removed.": "",
"this link": "",
"This offering will be removed from this store.": "",
@@ -1726,6 +1785,7 @@ namespace BTCPayServer.Services
"This will send a verification email to <strong>{0}</strong>.": "",
"This will send a verification email to the user.": "",
"This will send notification mails to the recipient, as configured by the <a href=\"{0}\">email rules</a>.": "",
+ "Those initial settings can be modified later.": "",
"Threshold": "",
"Time must be at least 1": "",
"Timestamp": "",
@@ -1763,12 +1823,14 @@ namespace BTCPayServer.Services
"Transaction signed successfully, proceeding to review...": "",
"Transaction successfully signed": "",
"transactions": "",
+ "Transactions": "",
"Translations": "",
"Translations are formatted as JSON; for example, <b>{0}</b> translates <b>{1}</b> to <b>{2}</b>.": "",
"Trial": "",
"Trial Period": "",
"Trial Period (days)": "",
"Trigger": "",
+ "Turning on monetization creates a paid plan for your server.\n All newly registered users will be added to this plan.\n You may also migrate your existing users.\n Only users with an active subscription with access feature can log in and use your server.": "",
"Two Factor Authentication": "",
"Two-Factor Authentication": "",
"Two-Factor Authentication (2FA) is an additional measure to protect your account. In addition to your password you will be asked for a second proof on login. This can be provided by an app (such as Google or Microsoft Authenticator) or a security device (like a Yubikey or your hardware wallet supporting FIDO2).": "",
@@ -1803,7 +1865,6 @@ namespace BTCPayServer.Services
"Update Point of Sale": "",
"Update Role": "",
"Update to the latest version of BTCPay Server.": "",
- "Update Webhook": "",
"Update your account": "",
"Updated successfully.": "",
"Upgrade": "",
@@ -1819,6 +1880,7 @@ namespace BTCPayServer.Services
"Use a simple input style": "",
"Use App As Endpoint": "",
"use case examples": "",
+ "Use current URL": "",
"Use custom node": "",
"Use custom SMTP settings for this store": "",
"Use custom theme": "",
@@ -1895,7 +1957,6 @@ namespace BTCPayServer.Services
"was paid after expiration": "",
"Watch-only wallet": "",
"We all forget passwords sometimes. Just provide email address tied to your account, and we'll start the process of helping you recover your account.": "",
- "We are retrieving the rate of each exchange either directly, or via CoinGecko (free).": "",
"We rejected the receiver's payjoin proposal: {0}": "",
"We will try to redeliver any failed delivery after 10 seconds, 1 minute and up to 6 times after 10 minutes": "",
"Webhook successfully deleted": "",
@@ -1971,11 +2032,16 @@ namespace BTCPayServer.Services
"Your password has been changed.": "",
"Your password has been set by the user who invited you.": "",
"Your password has been set.": "",
+ "Your plan does not allow you to log in.": "",
"Your profile has been updated": "",
+ "Your subscription is not active.": "",
+ "Your subscription is suspended. {0}": "",
"Your two-factor authenticator app will provide you with a unique code.": "",
+ "Your user account has no password set.": "",
"Your user account is currently disabled.": "",
"Your user account requires approval by an admin before you can log in.": "",
- "Your wallet has been generated.": ""
+ "Your wallet has been generated.": "",
+ "Zero amount invoices are disabled": ""
}
""";
Default = Translations.CreateFromJson(knownTranslations);
Why this scored 15/100
Community notes
Notes can correct, qualify, or add evidence to the AI analysis. Every note shown here has been validated by a human moderator.
The AI analysis stands alone for now. Submit a note if you can add evidence or important context.