Files
simple-notes-sync/docs/TRANSLATING.md
inventory69 67b226a5c3 feat(v1.5.0): icons, batch delete toast, cursor fix, docs refactor
FEATURES
========

Batch Delete Toast Aggregation:
- New deleteMultipleNotesFromServer() method
- Shows single aggregated toast instead of multiple ("3 notes deleted from server")
- Partial success handling ("3 of 5 notes deleted from server")
- Added string resources: snackbar_notes_deleted_from_server, snackbar_notes_deleted_from_server_partial

Text Editor Cursor Fix:
- Fixed cursor jumping to end after every keystroke when editing notes
- Added initialCursorSet flag to only set cursor position on first load
- Cursor now stays at user's position while editing
- Changed LaunchedEffect(content) to LaunchedEffect(Unit) to prevent repeated resets

DOCUMENTATION REFACTOR
======================

Breaking Change: English is now the default language
- README.md: Now English (was German)
- QUICKSTART.md: Now English (was German)
- CHANGELOG.md: Now English (was mixed EN/DE)
- docs/*.md: All English (was German)
- German versions: Use .de.md suffix (README.de.md, QUICKSTART.de.md, etc.)

Updated for v1.5.0:
- CHANGELOG.md: Fully translated to English with v1.5.0 release notes
- CHANGELOG.de.md: Created German version
- FEATURES.md: Added i18n section, Selection Mode, Jetpack Compose updates
- FEATURES.de.md: Updated with v1.5.0 features
- UPCOMING.md: v1.5.0 marked as released, v1.6.0/v1.7.0 roadmap
- UPCOMING.de.md: Updated German version

All language headers updated:
- English: [Deutsch](*.de.md) · **English**
- German: **Deutsch** · [English](*.md)

F-DROID METADATA
================

Changelogs (F-Droid):
- fastlane/metadata/android/en-US/changelogs/13.txt: Created
- fastlane/metadata/android/de-DE/changelogs/13.txt: Created

Descriptions:
- full_description.txt (EN/DE): Updated with v1.5.0 changes
  - Selection Mode instead of Swipe-to-Delete
  - i18n support highlighted
  - Jetpack Compose UI mentioned
  - Silent-Sync Mode added

OTHER FIXES
===========

Code Quality:
- Unused imports removed from multiple files
- maxLineLength fixes
- Detekt config optimized (increased thresholds for v1.5.0)
- AboutScreen: Uses app foreground icon directly
- EmptyState: Shows app icon instead of emoji
- themes.xml: Splash screen uses app foreground icon
2026-01-16 16:31:30 +01:00

3.4 KiB

Contributing Translations 🌍

🌍 Languages: Deutsch · English

How to translate Simple Notes Sync into your language!


📋 Overview

Simple Notes Sync currently supports:

  • 🇺🇸 English (en) - Primary language
  • 🇩🇪 German (de) - Fully translated

We welcome new translations!


🚀 Quick Start

1. Fork the Repository

  1. Go to github.com/inventory69/simple-notes-sync
  2. Click Fork (top right)
  3. Clone your fork: git clone https://github.com/YOUR-USERNAME/simple-notes-sync.git

2. Create Language Files

cd simple-notes-sync/android/app/src/main/res

# Create folder for your language (e.g., French)
mkdir values-fr

# Copy strings
cp values/strings.xml values-fr/strings.xml

3. Translate Strings

Open values-fr/strings.xml and translate all <string> entries:

<!-- Original (English) -->
<string name="app_name">Simple Notes</string>
<string name="notes_title">Notes</string>

<!-- Translated (French) -->
<string name="app_name">Notes Simples</string>
<string name="notes_title">Notes</string>

Important:

  • Only translate text between > and </string>
  • Do NOT change name="..." attributes
  • Keep %s, %d, %1$s etc. as placeholders

4. Update locales_config.xml

Add your language to android/app/src/main/res/xml/locales_config.xml:

<locale-config xmlns:android="http://schemas.android.com/apk/res/android">
    <locale android:name="en" />
    <locale android:name="de" />
    <locale android:name="fr" />  <!-- NEW -->
</locale-config>

5. Create Pull Request

  1. Commit your changes
  2. Push to your fork
  3. Create a Pull Request with title: Add [Language] translation

📁 File Structure

android/app/src/main/res/
├── values/              # English (Fallback)
│   └── strings.xml
├── values-de/           # German
│   └── strings.xml
├── values-fr/           # French (new)
│   └── strings.xml
└── xml/
    └── locales_config.xml  # Language registration

📝 String Categories

The strings.xml contains about 400+ strings, divided into:

Category Description Count
UI Texts Buttons, labels, titles ~100
Settings All 7 settings screens ~150
Dialogs Confirmations, errors ~80
Sync Synchronization messages ~50
Other Tooltips, accessibility ~30

Quality Checklist

Before creating your Pull Request:

  • All strings translated (no English leftovers)
  • Placeholders (%s, %d) preserved
  • No XML syntax errors
  • App launches without crashes
  • Text fits in UI elements (not too long)
  • locales_config.xml updated

🔧 Testing

cd android
./gradlew app:assembleDebug

# Install APK and switch language in Android settings

FAQ

Do I need to translate all strings?

Ideally yes. Missing strings fall back to English.

What about placeholders?

%s = text, %d = number. Keep position or use %1$s for numbering.

How do I test my translation?

Build app, install, go to Android Settings → Apps → Simple Notes → Language.


🙏 Thank You!

Every translation helps Simple Notes Sync reach more people.

Questions? Create a GitHub Issue

← Back to Documentation