Nicolas Cantu 32b33d56a1 Add translations for settings page (fr/en)
**Motivations:**
- Translate settings page and all its components to French and English
- Provide consistent multilingual experience

**Root causes:**
- Settings page and components were hardcoded in English
- No translation support for key management and NIP-95 configuration

**Correctifs:**
- None (new feature)

**Evolutions:**
- Added translations for settings page title
- Added translations for KeyManagementManager component:
  - Public keys display (npub and hex)
  - Import form and validation messages
  - Recovery phrase display
  - All buttons and warnings
- Added translations for Nip95ConfigManager component:
  - Endpoint list and management
  - Add/edit/remove actions
  - Error messages
- Updated both fr.txt and en.txt translation files
- All text now uses t() function for i18n support

**Pages affectées:**
- pages/settings.tsx
- components/KeyManagementManager.tsx
- components/Nip95ConfigManager.tsx
- public/locales/fr.txt
- public/locales/en.txt
- locales/fr.txt
- locales/en.txt
2026-01-05 22:43:11 +01:00

172 lines
8.8 KiB
Plaintext

# English translations for zapwall.fr
# Home page
home.title=zapwall.fr
home.intro.part1=Browse authors and previews, purchase publications on the go for {{price}} sats (minus {{commission}} sats and transaction fees).
home.intro.part2=Sponsor the author for {{price}} BTC (minus {{commission}} BTC and transaction fees).
home.intro.part3=Reviews are rewardable for {{price}} sats (minus {{commission}} sats and transaction fees).
home.intro.funds=Platform funds serve its development.
home.funding.title=AI Features Funding
home.funding.target=Target: {{target}} BTC
home.funding.current=Raised: {{current}} BTC
home.funding.progress={{percent}}% of funding reached
home.funding.description=Funds collected by the platform serve the development of free AI features for authors (development and hardware).
# Navigation
nav.documentation=Documentation
nav.publish=Publish profile
nav.createAuthorPage=Create author page
nav.loading=Loading...
# Categories
category.science-fiction=Science Fiction
category.scientific-research=Scientific Research
category.all=All categories
# Articles/Publications
publication.title=Publications
publication.empty=No publications
publication.published=Published on {{date}}
publication.unlock=Unlock
publication.viewAuthor=View author →
publication.price={{amount}} sats
# Series
series.title=Series
series.empty=No series published yet.
series.view=View series
series.publications=Series publications
series.publications.empty=No publications for this series.
# Author page
author.title=Author page
author.presentation=Presentation
author.sponsoring=Sponsoring
author.sponsoring.total=Total received: {{amount}} BTC
author.sponsoring.sats=In satoshis: {{amount}} sats
author.notFound=Author page not found.
author.profileNote=This profile data is specific to zapwall.fr and may differ from your Nostr profile.
# Publish
publish.title=Publish a new publication
publish.description=Create a publication with free preview and paid content
publish.back=← Back to home
publish.button=Publish publication
publish.publishing=Publishing...
# Presentation
presentation.title=Create your presentation article
presentation.description=This article is required to publish on zapwall.fr. It allows readers to know you and sponsor you.
presentation.success=Presentation article created!
presentation.successMessage=Your presentation article has been created successfully. You can now publish articles.
presentation.profileNote=This profile data is specific to zapwall.fr and may differ from your Nostr profile.
presentation.field.picture=Profile picture
presentation.field.picture.help=Profile image for your author page (max 5MB, formats: PNG, JPG, WebP)
presentation.field.picture.change=Change image
presentation.field.picture.upload=Upload an image
presentation.field.picture.uploading=Uploading...
presentation.field.picture.remove=Remove
presentation.field.picture.error.imagesOnly=Only images are allowed
presentation.field.picture.error.uploadFailed=Upload error
presentation.field.authorName=Author name
presentation.field.authorName.placeholder=Your author name
presentation.field.authorName.help=This name will be displayed instead of your public key on your profile
presentation.field.presentation=Personal presentation
presentation.field.presentation.placeholder=Introduce yourself: who you are, your background, your interests...
presentation.field.presentation.help=This presentation will be visible to all readers
presentation.field.contentDescription=Content description
presentation.field.contentDescription.placeholder=Describe the type of content you publish: science fiction, scientific research, themes covered...
presentation.field.contentDescription.help=Help readers understand the type of articles you publish
presentation.field.mainnetAddress=Bitcoin mainnet address (for sponsoring)
presentation.field.mainnetAddress.placeholder=1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa
presentation.field.mainnetAddress.help=Bitcoin mainnet address where you will receive sponsoring payments (0.046 BTC excluding fees per sponsoring)
presentation.validation.invalidAddress=Invalid Bitcoin address (must start with 1, 3 or bc1)
presentation.fallback.user=User
# Filters
filters.clear=Clear all
filters.author=All authors
filters.sort=Sort by
filters.sort.newest=Newest
filters.sort.oldest=Oldest
filters.loading=Loading authors...
# Search
search.placeholder=Search...
# Footer
footer.legal=Legal
footer.terms=Terms of Service
footer.privacy=Privacy Policy
# Common
common.loading=Loading...
common.error=Error
common.back=Back
common.open=Open
# Settings
settings.title=Settings
settings.keyManagement.title=Key Management
settings.keyManagement.loading=Loading...
settings.keyManagement.publicKey.npub=Public Key (npub)
settings.keyManagement.publicKey.hex=Public Key (hex)
settings.keyManagement.copy=Copy
settings.keyManagement.copied=✓ Copied
settings.keyManagement.noAccount.title=No account found
settings.keyManagement.noAccount.description=Create a new account by importing a private key. The key will be encrypted using a two-level encryption system.
settings.keyManagement.import.button.new=Import Private Key
settings.keyManagement.import.button.replace=Replace Account (Import New Key)
settings.keyManagement.import.warning.title=⚠️ Important
settings.keyManagement.import.warning.description=After importing, you will receive <strong>4 recovery words</strong> (BIP39 dictionary) to secure your account. These words encrypt a Key Encryption Key (KEK) stored in the browser's Credentials API, which then encrypts your private key stored in IndexedDB (two-level encryption system).
settings.keyManagement.import.warning.replace=Warning: Importing a new key will replace your existing account. Make sure you have your recovery phrase saved before proceeding.
settings.keyManagement.import.label=Private Key (nsec URL, nsec1..., or hex)
settings.keyManagement.import.placeholder=nsec1... or nostr://nsec1... or hex key
settings.keyManagement.import.help=You can paste a nsec key, a nostr:// URL containing a nsec, or a hex private key (64 characters).
settings.keyManagement.import.error.required=Please enter a private key
settings.keyManagement.import.error.invalid=Invalid key format. Please provide a nsec (nsec1...) or hex (64 characters) private key.
settings.keyManagement.import.error.failed=Failed to import key
settings.keyManagement.replace.warning.title=⚠️ Replace Existing Account?
settings.keyManagement.replace.warning.description=This will delete your current account and create a new one with the imported key. Make sure you have saved your recovery phrase for the current account.
settings.keyManagement.replace.cancel=Cancel
settings.keyManagement.replace.confirm=Replace Account
settings.keyManagement.replace.replacing=Replacing...
settings.keyManagement.import.cancel=Cancel
settings.keyManagement.import.importing=Importing...
settings.keyManagement.import.import=Import
settings.keyManagement.recovery.warning.title=⚠️ Important
settings.keyManagement.recovery.warning.part1=These <strong>4 recovery words</strong> are your only way to recover your account. <strong>They will never be displayed again.</strong>
settings.keyManagement.recovery.warning.part2=These words (BIP39 dictionary) are used with <strong>PBKDF2</strong> to encrypt a Key Encryption Key (KEK) stored in the browser's Credentials API. This KEK then encrypts your private key stored in IndexedDB (two-level system).
settings.keyManagement.recovery.warning.part3=Save them in a safe place. Without these words, you will permanently lose access to your account.
settings.keyManagement.recovery.copy=Copy Recovery Words
settings.keyManagement.recovery.copied=✓ Copied!
settings.keyManagement.recovery.newNpub=Your new public key (npub)
settings.keyManagement.recovery.done=Done
settings.nip95.title=NIP-95 Upload Endpoints
settings.nip95.loading=Loading...
settings.nip95.error.loadFailed=Failed to load NIP-95 APIs
settings.nip95.error.updateFailed=Failed to update API
settings.nip95.error.priorityFailed=Failed to update priority
settings.nip95.error.urlFailed=Failed to update URL
settings.nip95.error.addFailed=Failed to add API
settings.nip95.error.removeFailed=Failed to remove API
settings.nip95.error.invalidUrl=Invalid URL format
settings.nip95.error.urlRequired=URL is required
settings.nip95.addButton=Add endpoint
settings.nip95.add.url=Endpoint URL
settings.nip95.add.placeholder=https://example.com/api/upload
settings.nip95.add.add=Add
settings.nip95.add.cancel=Cancel
settings.nip95.add.adding=Adding...
settings.nip95.list.enabled=Enabled
settings.nip95.list.disabled=Disabled
settings.nip95.list.priority=Priority
settings.nip95.list.url=URL
settings.nip95.list.actions=Actions
settings.nip95.list.edit=Edit
settings.nip95.list.save=Save
settings.nip95.list.cancel=Cancel
settings.nip95.list.remove=Remove
settings.nip95.remove.confirm=Are you sure you want to remove this endpoint?
settings.nip95.empty=No endpoints configured