Skip to content

Commit 5f00163

Browse files
committed
Enhance README with internationalization details and update release script output formatting
- Added information about full internationalization support for German and English in the README, including language detection and switching features. - Improved clarity in the README by specifying language options and providing tips for users. - Updated the release script to standardize output formatting for informational, success, warning, and error messages, enhancing readability and consistency. These changes improve user guidance and streamline the release process.
1 parent 6951c55 commit 5f00163

File tree

2 files changed

+39
-43
lines changed

2 files changed

+39
-43
lines changed

README.md

Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ A modern budget planning application with monthly overview, tax calculation, and
3030
- Expense breakdown by type
3131
-**Actual balance tracking** - Record and compare actual vs planned balances
3232
-**Budget import/export** - Import and export budgets as JSON files
33+
-**Internationalization (i18n)** - Full support for multiple languages (German, English) with automatic detection and language switcher
3334
-**Dark mode** - Full dark mode support for comfortable viewing
3435
-**Desktop app** - Native desktop application for Windows, Linux, and macOS (via Tauri)
3536

@@ -95,15 +96,17 @@ To install dependencies without starting the servers:
9596

9697
## Getting Started
9798

99+
> **Tip**: You can change the application language at any time using the language selector in the header. The application supports German and English.
100+
98101
### 1. Create a New Budget
99102

100-
- Click on "Create New Budget" (or "Neues Budget erstellen")
103+
- Click on "Create New Budget" (or "Neues Budget erstellen" in German)
101104
- Enter a name and select the year
102105
- The budget will be created with CHF as the default currency
103106

104107
### 2. Add Categories
105108

106-
- Click on "+ Add Category" (or "+ Kategorie hinzufügen")
109+
- Click on "+ Add Category" (or "+ Kategorie hinzufügen" in German)
107110
- Choose the category type:
108111
- **Income**: Money coming in (e.g., Salary)
109112
- **Fixed Expense**: Regular fixed costs (e.g., Rent, Insurance)
@@ -200,25 +203,18 @@ The application is available as a native desktop app for Windows, Linux, and mac
200203

201204
The application supports multiple currencies with automatic conversion:
202205

203-
- **Base Currency**: CHF (Swiss Francs) - all data is stored in CHF
204-
- **Display Currencies**: CHF, EUR, USD
205-
- **Exchange Rates**: Automatically fetched from [exchangerate-api.com](https://www.exchangerate-api.com/)
206-
- **Caching**: Exchange rates are cached in localStorage and refreshed daily
206+
- **Supported Currencies**: CHF (Swiss Francs), EUR (Euros), USD (US Dollars)
207+
- **Exchange Rates**: Automatically updated daily
208+
- **Data Storage**: All amounts are stored in CHF and converted for display
207209

208210
## Supported Languages
209211

210-
The application currently supports the following languages:
211-
212-
- **German (Deutsch)** - Primary language
213-
- Full UI translation
214-
- Default language for the application
215-
- Locale: `de-DE`
212+
The application supports multiple languages:
216213

217-
- **English** - Partial support
218-
- Some tooltips and accessibility labels
219-
- Documentation and README
214+
- **German (Deutsch)** 🇩🇪
215+
- **English** 🇺🇸
220216

221-
The user interface is primarily in German, with the backend configured to use German (`de-DE`) as the default locale. English translations are available for some interface elements such as tooltips and aria-labels.
217+
The application automatically detects your browser's language preference. You can change the language anytime using the language selector in the header. Your language preference is saved and remembered for future sessions.
222218

223219
## Contributing
224220

release.ps1

Lines changed: 27 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -14,29 +14,29 @@ $ErrorActionPreference = "Stop"
1414
# Colors for output (PowerShell 5.1+ compatible)
1515
function Write-Info {
1616
param([string]$Message)
17-
Write-Host " $Message" -ForegroundColor Cyan
17+
Write-Host "[i] $Message" -ForegroundColor Cyan
1818
}
1919

2020
function Write-Success {
2121
param([string]$Message)
22-
Write-Host " $Message" -ForegroundColor Green
22+
Write-Host "[+] $Message" -ForegroundColor Green
2323
}
2424

25-
function Write-Warning {
25+
function Write-Warn {
2626
param([string]$Message)
27-
Write-Host " $Message" -ForegroundColor Yellow
27+
Write-Host "[!] $Message" -ForegroundColor Yellow
2828
}
2929

30-
function Write-Error {
30+
function Write-Err {
3131
param([string]$Message)
32-
Write-Host " $Message" -ForegroundColor Red
32+
Write-Host "[x] $Message" -ForegroundColor Red
3333
}
3434

3535
# Check for required tools
3636
Write-Info "Checking for required tools..."
3737

3838
if (-not (Get-Command "git" -ErrorAction SilentlyContinue)) {
39-
Write-Error "git is not installed. Please install it first."
39+
Write-Err "git is not installed. Please install it first."
4040
exit 1
4141
}
4242
Write-Success "git is installed"
@@ -47,14 +47,14 @@ if (Get-Command "gh" -ErrorAction SilentlyContinue) {
4747
$GhAvailable = $true
4848
Write-Success "GitHub CLI (gh) is installed"
4949
} else {
50-
Write-Warning "GitHub CLI (gh) is not installed (optional, but recommended for release management)"
51-
Write-Warning "Install it from: https://cli.github.com/"
50+
Write-Warn "GitHub CLI (gh) is not installed (optional, but recommended for release management)"
51+
Write-Warn "Install it from: https://cli.github.com/"
5252
}
5353

5454
# Validate version format (should be vX.X.X)
5555
$VersionPattern = '^v\d+\.\d+\.\d+$'
5656
if ($Version -notmatch $VersionPattern) {
57-
Write-Error "Invalid version format: $Version"
57+
Write-Err "Invalid version format: $Version"
5858
Write-Host "Version should be in format: vX.X.X"
5959
Write-Host "Examples: v1.0.0, v1.2.3, v2.0.0"
6060
exit 1
@@ -66,7 +66,7 @@ Write-Success "Version format is valid: $Version"
6666
try {
6767
$null = git rev-parse --git-dir 2>&1
6868
} catch {
69-
Write-Error "Not in a git repository"
69+
Write-Err "Not in a git repository"
7070
exit 1
7171
}
7272

@@ -77,7 +77,7 @@ if ($StatusOutput) {
7777
# Filter out untracked files (lines starting with ??)
7878
$TrackedChanges = $StatusOutput | Where-Object { $_ -notmatch '^\?\?' }
7979
if ($TrackedChanges) {
80-
Write-Warning "You have uncommitted changes in tracked files"
80+
Write-Warn "You have uncommitted changes in tracked files"
8181
$Response = Read-Host "Do you want to continue anyway? (y/N)"
8282
if ($Response -notmatch '^[Yy]$') {
8383
Write-Info "Release cancelled"
@@ -90,7 +90,7 @@ if ($StatusOutput) {
9090
try {
9191
$null = git remote get-url origin 2>&1
9292
} catch {
93-
Write-Error "No remote 'origin' configured"
93+
Write-Err "No remote 'origin' configured"
9494
exit 1
9595
}
9696

@@ -108,7 +108,7 @@ if ($GhAvailable -and $RepoName) {
108108
try {
109109
$null = gh release view "$Version" --repo "$RepoName" 2>&1
110110
$ReleaseExists = $true
111-
Write-Warning "Release $Version already exists on GitHub"
111+
Write-Warn "Release $Version already exists on GitHub"
112112
} catch {
113113
Write-Info "Release $Version does not exist on GitHub"
114114
}
@@ -137,10 +137,10 @@ try {
137137
# If release or tag exists, delete them
138138
if ($ReleaseExists -or $TagExistsLocal -or $TagExistsRemote) {
139139
if ($ReleaseExists) {
140-
Write-Warning "Release $Version will be deleted and recreated"
140+
Write-Warn "Release $Version will be deleted and recreated"
141141
}
142142
if ($TagExistsLocal -or $TagExistsRemote) {
143-
Write-Warning "Tag $Version will be deleted and recreated"
143+
Write-Warn "Tag $Version will be deleted and recreated"
144144
}
145145

146146
# Delete GitHub release if it exists
@@ -150,12 +150,12 @@ if ($ReleaseExists -or $TagExistsLocal -or $TagExistsRemote) {
150150
gh release delete "$Version" --repo "$RepoName" --yes 2>&1 | Out-Null
151151
Write-Success "GitHub release deleted"
152152
} catch {
153-
Write-Error "Failed to delete GitHub release"
154-
Write-Warning "You may need to delete it manually from GitHub"
153+
Write-Err "Failed to delete GitHub release"
154+
Write-Warn "You may need to delete it manually from GitHub"
155155
}
156156
} elseif ($ReleaseExists) {
157-
Write-Warning "Cannot delete GitHub release automatically (gh CLI not available)"
158-
Write-Warning "Please delete it manually from: https://github.com/$RepoName/releases/tag/$Version"
157+
Write-Warn "Cannot delete GitHub release automatically (gh CLI not available)"
158+
Write-Warn "Please delete it manually from: https://github.com/$RepoName/releases/tag/$Version"
159159
}
160160

161161
# Delete remote tag if it exists
@@ -165,7 +165,7 @@ if ($ReleaseExists -or $TagExistsLocal -or $TagExistsRemote) {
165165
git push origin ":refs/tags/$Version" 2>&1 | Out-Null
166166
Write-Success "Remote tag deleted"
167167
} catch {
168-
Write-Warning "Failed to delete remote tag (may not exist or already deleted)"
168+
Write-Warn "Failed to delete remote tag (may not exist or already deleted)"
169169
}
170170
}
171171

@@ -183,7 +183,7 @@ Write-Info "Current branch: $CurrentBranch"
183183

184184
# Check if we're on main/master branch
185185
if ($CurrentBranch -ne "main" -and $CurrentBranch -ne "master") {
186-
Write-Warning "You're not on main/master branch"
186+
Write-Warn "You're not on main/master branch"
187187
$Response = Read-Host "Do you want to continue anyway? (y/N)"
188188
if ($Response -notmatch '^[Yy]$') {
189189
Write-Info "Release cancelled"
@@ -193,16 +193,16 @@ if ($CurrentBranch -ne "main" -and $CurrentBranch -ne "master") {
193193

194194
# Check if remote is configured (already checked above, but verify)
195195
if (-not $RepoName) {
196-
Write-Error "Could not determine repository name from remote URL"
196+
Write-Err "Could not determine repository name from remote URL"
197197
exit 1
198198
}
199199

200200
Write-Info "Remote repository: $RepoName"
201201

202202
# Confirm release
203203
Write-Host ""
204-
Write-Warning "You are about to create and push tag: $Version"
205-
Write-Warning "This will trigger the GitHub Actions release workflow"
204+
Write-Warn "You are about to create and push tag: $Version"
205+
Write-Warn "This will trigger the GitHub Actions release workflow"
206206
Write-Host ""
207207
$Response = Read-Host "Are you sure you want to continue? (y/N)"
208208
if ($Response -notmatch '^[Yy]$') {
@@ -221,8 +221,8 @@ try {
221221
git push origin "$Version" 2>&1 | Out-Null
222222
Write-Success "Tag pushed successfully"
223223
} catch {
224-
Write-Error "Failed to push tag"
225-
Write-Warning "Tag was created locally but not pushed"
224+
Write-Err "Failed to push tag"
225+
Write-Warn "Tag was created locally but not pushed"
226226
Write-Host "You can push it manually with: git push origin $Version"
227227
exit 1
228228
}

0 commit comments

Comments
 (0)