From 617f3e4989bc70c46034402d2c421190f94bf8d1 Mon Sep 17 00:00:00 2001 From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com> Date: Sun, 4 Jan 2026 21:51:17 +0000 Subject: [PATCH] Remove TRANSLATION_GUIDE.md from Turkish PR (will be in separate PR) Co-authored-by: chipitsine <2217296+chipitsine@users.noreply.github.com> --- TRANSLATION_GUIDE.md | 176 ----------------------------------------- TURKISH_TRANSLATION.md | 61 +++++++++++--- 2 files changed, 50 insertions(+), 187 deletions(-) delete mode 100644 TRANSLATION_GUIDE.md diff --git a/TRANSLATION_GUIDE.md b/TRANSLATION_GUIDE.md deleted file mode 100644 index 1f202ad6..00000000 --- a/TRANSLATION_GUIDE.md +++ /dev/null @@ -1,176 +0,0 @@ -# SoftEther VPN Translation Guide - -This guide explains how to contribute translations to SoftEther VPN. - -## Overview - -SoftEther VPN supports multiple languages through string table (`.stb`) files. Each language has: -1. An entry in the language list file (`languages.txt`) -2. A complete string table file (`strtable_.stb`) - -Currently supported languages: -- Japanese (ja) -- English (en) -- Simplified Chinese (cn) -- Traditional Chinese (tw) -- Korean (ko) -- Russian (ru) -- Portuguese-Brazil (pt_br) -- Indonesian (id) -- Turkish (tr) - -## Adding a New Language - -### Step 1: Add Language Entry - -Edit `src/bin/hamcore/languages.txt` and add a new line with the following format: - -``` - -``` - -**Example (Turkish):** -``` -8 tr Turkish Türkçe 1055 tr,tr_tr,turkish -``` - -**Fields explained:** -- **ID**: Sequential number (use the next available number) -- **identifier**: Short language code (e.g., `tr`, `de`, `fr`) -- **English_Name**: Language name in English (use underscores for spaces, e.g., `Simplified_Chinese`) -- **Local_Name**: Language name in its native script (e.g., `Türkçe`, `Deutsch`) -- **Windows_LCID**: Windows locale ID(s) - comma-separated if multiple (find your LCID at https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-lcid/) -- **UNIX_locales**: Comma-separated list of UNIX locale identifiers that should map to this language - -### Step 2: Create String Table File - -1. Copy the English string table as a template: - ```bash - cp src/bin/hamcore/strtable_en.stb src/bin/hamcore/strtable_.stb - ``` - -2. Update the language metadata in your new file (lines 27-28): - ``` - LANG - LANGSTR - ``` - -3. Update the `DEFAULT_LOCALE` parameter (line 22) with localized weekday abbreviations: - ``` - DEFAULT_LOCALE - - $ : : $ Sun Mon Tue Wed Thu Fri Sat : : : $ (None) - ``` - Replace the weekday names and "(None)" with your language equivalents. - -4. **Important**: Add the file to git using the `-f` flag (the hamcore directory is gitignored): - ```bash - git add -f src/bin/hamcore/strtable_.stb - ``` - -### Step 3: Translate Strings - -Translate all string entries in the file. Each entry follows the format: -``` -STRING_KEY Translated text here -``` - -**Important guidelines:** -- Keep the same `STRING_KEY` - only translate the value -- Preserve special formatting like `%s`, `%d`, `\r`, `\n` in the translations -- Some strings contain placeholders - maintain their order and format -- Technical terms (like "VPN", "SSL", "IPsec") are often kept in English -- Lines starting with `#` are comments and don't need translation - -**Example:** -``` -# Original English: -ERR_1 Connection to the server failed. Check network connection. - -# Turkish translation: -ERR_1 Sunucuya bağlantı başarısız oldu. Ağ bağlantısını kontrol edin. -``` - -## Translation Workflow - -### Best Practices - -1. **Use a proper text editor** that supports UTF-8 encoding without BOM -2. **Translate in context** - understand what the UI looks like when possible -3. **Be consistent** - use the same translation for repeated terms -4. **Keep it concise** - UI space is limited -5. **Preserve formatting** - maintain line breaks, spacing, and special characters -6. **Test your work** - if possible, build and test the software with your translation - -### Progressive Translation - -You don't need to translate everything at once! You can: - -1. Start with the most important strings (error messages, main UI elements) -2. Leave less critical strings in English temporarily -3. Submit incremental improvements via pull requests -4. Collaborate with other translators for your language - -## Validating Your Translation - -Before submitting, verify your translation passes the consistency checker: - -```bash -cd developer_tools/stbchecker -dotnet run /path/to/SoftEtherVPN/src/bin/hamcore -``` - -This tool checks that: -- All string keys from other language files are present -- No extra or missing keys exist -- The file format is correct - -**The checker must pass with "OK: Excellent! There are no errors" before submitting.** - -## Submitting Your Translation - -1. Fork the SoftEther VPN repository on GitHub -2. Create a new branch for your translation -3. Make your changes following the steps above -4. Commit your changes with a clear message: - ```bash - git commit -m "Add [Language] translation" - # or - git commit -m "Update [Language] translation" - ``` -5. Push to your fork and create a Pull Request -6. In the PR description, mention: - - Which language you've added/updated - - Your native language proficiency - - Any areas you'd like feedback on - -## Getting Help - -- **Questions about translation**: Open an issue on GitHub with the tag `translation` -- **Technical questions**: Refer to the main README.md -- **String context unclear**: Ask in your Pull Request or open an issue - -## Special Notes - -### Font Settings - -Some languages may need specific fonts. Update these if needed (lines 18-21): -``` -DEFAULT_FONT Tahoma -DEFAULT_FONT_WIN7 Segoe UI -DEFAULT_FONT_2 Tahoma -DEFAULT_FONT_SIZE 8 -``` - -### Character Encoding - -All `.stb` files must be UTF-8 encoded. The system will automatically convert to the appropriate encoding for each platform. - -### Regional Variants - -For languages with significant regional differences (like Portuguese/Brazilian Portuguese), create separate entries: -- Use descriptive identifiers (e.g., `pt_br` vs `pt_pt`) -- Add both LCID codes if they differ -- Make the distinction clear in both English and local names - -## Thank You! - -Your translation helps make SoftEther VPN accessible to users worldwide. The community appreciates your contribution! diff --git a/TURKISH_TRANSLATION.md b/TURKISH_TRANSLATION.md index df973b36..4c4b844d 100644 --- a/TURKISH_TRANSLATION.md +++ b/TURKISH_TRANSLATION.md @@ -1,4 +1,4 @@ -# Turkish Translation Status +# Turkish Translation Guide The Turkish (Türkçe) language infrastructure has been added to SoftEther VPN. @@ -13,14 +13,12 @@ The Turkish (Türkçe) language infrastructure has been added to SoftEther VPN. The Turkish string table (`src/bin/hamcore/strtable_tr.stb`) currently uses English text. We need native Turkish speakers to translate these strings. -### For Contributors +### Main Translation File -If you'd like to help with the Turkish translation: - -1. See [TRANSLATION_GUIDE.md](TRANSLATION_GUIDE.md) for detailed instructions -2. The main file to translate is: `src/bin/hamcore/strtable_tr.stb` -3. It contains approximately 7,400+ lines, but many are comments or formatting -4. You can contribute partial translations - every bit helps! +- **File**: `src/bin/hamcore/strtable_tr.stb` (~7,400 lines) +- **Format**: Each line has a KEY and a translatable value +- **Task**: Translate only the values, keep the keys unchanged +- **Note**: You can contribute partial translations - every bit helps! ### Quick Start @@ -36,12 +34,27 @@ If you'd like to help with the Turkish translation: ### Translation Guidelines -- Keep technical terms like "VPN", "SSL", "TCP/IP" in English -- Preserve formatting codes like `%s`, `%d`, `\r\n` +**Important Rules:** +- Keep technical terms like "VPN", "SSL", "TCP/IP", "IPsec" in English +- Preserve formatting codes like `%s`, `%d`, `\r\n` - they are placeholders - Maintain the same meaning and tone as the English version - Use formal Turkish ("siz" form) for user-facing messages - Be consistent with terminology throughout +**Example Translation:** +``` +# Original English: +ERR_1 Connection to the server failed. Check network connection. + +# Turkish translation: +ERR_1 Sunucuya bağlantı başarısız oldu. Ağ bağlantısını kontrol edin. +``` + +**File Format:** +- Lines starting with `#` are comments (don't translate) +- Each entry: `STRING_KEYTranslated text here` +- Only translate the text after the key, never change the key itself + ### Already Translated The following metadata has been localized: @@ -50,12 +63,38 @@ The following metadata has been localized: - Weekday abbreviations: Paz, Pzt, Sal, Çar, Per, Cum, Cmt - "None" translated to "Hiçbiri" +## Validation + +Before submitting your translation, validate it with the consistency checker: + +```bash +cd developer_tools/stbchecker +dotnet run ../../src/bin/hamcore +``` + +This ensures all string keys are present and the file format is correct. The validation must pass before submitting. + +## Submitting Your Translation + +1. Fork the SoftEther VPN repository on GitHub +2. Create a new branch: `git checkout -b turkish-translation` +3. Edit `src/bin/hamcore/strtable_tr.stb` with your translations +4. Validate your changes (see above) +5. Commit: `git commit -m "Add Turkish translations for [section]"` +6. Push to your fork: `git push origin turkish-translation` +7. Create a Pull Request on GitHub + +**You can submit partial translations!** Translate the most important sections first: +- Error messages (ERR_*) +- Common UI strings (COMMON_*) +- Product names +- Menu items + ## Questions? If you have questions about the translation: - Open an issue on GitHub - Tag it with `translation` and `Turkish` -- Reference this file or the main TRANSLATION_GUIDE.md ## Thank You!