1
0
mirror of https://github.com/SoftEtherVPN/SoftEtherVPN.git synced 2026-01-19 18:00:11 +03:00

Remove TRANSLATION_GUIDE.md from Turkish PR (will be in separate PR)

Co-authored-by: chipitsine <2217296+chipitsine@users.noreply.github.com>
This commit is contained in:
copilot-swe-agent[bot]
2026-01-04 21:51:17 +00:00
parent 57896d5212
commit 617f3e4989
2 changed files with 50 additions and 187 deletions

View File

@ -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_<lang>.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:
```
<ID> <identifier> <English_Name> <Local_Name> <Windows_LCID> <UNIX_locales>
```
**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_<your_lang>.stb
```
2. Update the language metadata in your new file (lines 27-28):
```
LANG <your_language_ID>
LANGSTR <Your_Language_Name>
```
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_<your_lang>.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!

View File

@ -1,4 +1,4 @@
# Turkish Translation Status # Turkish Translation Guide
The Turkish (Türkçe) language infrastructure has been added to SoftEther VPN. 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. 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: - **File**: `src/bin/hamcore/strtable_tr.stb` (~7,400 lines)
- **Format**: Each line has a KEY and a translatable value
1. See [TRANSLATION_GUIDE.md](TRANSLATION_GUIDE.md) for detailed instructions - **Task**: Translate only the values, keep the keys unchanged
2. The main file to translate is: `src/bin/hamcore/strtable_tr.stb` - **Note**: You can contribute partial translations - every bit helps!
3. It contains approximately 7,400+ lines, but many are comments or formatting
4. You can contribute partial translations - every bit helps!
### Quick Start ### Quick Start
@ -36,12 +34,27 @@ If you'd like to help with the Turkish translation:
### Translation Guidelines ### Translation Guidelines
- Keep technical terms like "VPN", "SSL", "TCP/IP" in English **Important Rules:**
- Preserve formatting codes like `%s`, `%d`, `\r\n` - 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 - Maintain the same meaning and tone as the English version
- Use formal Turkish ("siz" form) for user-facing messages - Use formal Turkish ("siz" form) for user-facing messages
- Be consistent with terminology throughout - 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_KEY<tabs>Translated text here`
- Only translate the text after the key, never change the key itself
### Already Translated ### Already Translated
The following metadata has been localized: 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 - Weekday abbreviations: Paz, Pzt, Sal, Çar, Per, Cum, Cmt
- "None" translated to "Hiçbiri" - "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? ## Questions?
If you have questions about the translation: If you have questions about the translation:
- Open an issue on GitHub - Open an issue on GitHub
- Tag it with `translation` and `Turkish` - Tag it with `translation` and `Turkish`
- Reference this file or the main TRANSLATION_GUIDE.md
## Thank You! ## Thank You!