Skill: i18n Senkronizasyon

> TR/EN dil dosyaları arasında mesaj senkronizasyonu ve tutarlılık kontrolü

6 stars

Best use case

Skill: i18n Senkronizasyon is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

> TR/EN dil dosyaları arasında mesaj senkronizasyonu ve tutarlılık kontrolü

Teams using Skill: i18n Senkronizasyon should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/i18n-sync/SKILL.md --create-dirs "https://raw.githubusercontent.com/CalmKernelTR/bigfive-updater/main/.agents/skills/i18n-sync/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/i18n-sync/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How Skill: i18n Senkronizasyon Compares

Feature / AgentSkill: i18n SenkronizasyonStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

> TR/EN dil dosyaları arasında mesaj senkronizasyonu ve tutarlılık kontrolü

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Skill: i18n Senkronizasyon

> TR/EN dil dosyaları arasında mesaj senkronizasyonu ve tutarlılık kontrolü

---

## Ön Koşullar

- `lang/tr.sh` ve `lang/en.sh` dosyaları mevcut
- Her iki dosya da `MSG_` prefix'li değişkenler içerir
- Dosyalar `safe_source()` ile yüklendiği için bash syntax uyumlu olmalı

---

## Dosya Yapısı

```
lang/
├── tr.sh    # Türkçe dil dosyası (256 satır, ~120 MSG_ değişkeni)
└── en.sh    # İngilizce dil dosyası (256 satır, ~120 MSG_ değişkeni)
```

Her dil dosyasının yapısı:
```bash
#!/usr/bin/env bash
# BigFive Updater - Türkçe Dil Dosyası
# Language: Turkish (tr)
# Version: 6.5.1 Fluent Edition India
# Encoding: UTF-8

# ============================================
# HEADERS - Bölüm Başlıkları
# ============================================
MSG_HEADER_SELF_UPDATE="Self-Update Başlatılıyor..."
MSG_HEADER_SNAPSHOT_TIMESHIFT="Sistem Yedekleniyor (Timeshift)"
# ...
```

---

## Adım 1: Eksik Mesaj Tespiti

İki dil dosyasındaki `MSG_` değişkenlerini karşılaştır:

```bash
# TR'de olup EN'de olmayan mesajlar
diff <(grep -oP '^MSG_\w+' lang/tr.sh | sort) \
     <(grep -oP '^MSG_\w+' lang/en.sh | sort) \
     | grep '^<' | sed 's/^< //'

# EN'de olup TR'de olmayan mesajlar
diff <(grep -oP '^MSG_\w+' lang/tr.sh | sort) \
     <(grep -oP '^MSG_\w+' lang/en.sh | sort) \
     | grep '^>' | sed 's/^> //'
```

**Beklenen sonuç:** Hiçbir fark olmamalı. İki dosyada da aynı MSG_ değişkenleri olmalı.

---

## Adım 2: Mesaj Sayısı Kontrolü

```bash
echo "TR mesaj sayısı: $(grep -c '^MSG_' lang/tr.sh)"
echo "EN mesaj sayısı: $(grep -c '^MSG_' lang/en.sh)"
```

İki sayı eşit olmalı.

---

## Adım 3: Kategori Kontrolü

MSG_ değişkenleri şu kategorilerde organize edilmelidir:

| Prefix | Kategori | Kullanım |
|--------|----------|----------|
| `MSG_HEADER_*` | Bölüm başlıkları | `print_header()` çağrılarında |
| `MSG_INFO_*` | Bilgi mesajları | `print_info()` çağrılarında |
| `MSG_SUCCESS_*` | Başarı mesajları | `print_success()` çağrılarında |
| `MSG_WARN_*` | Uyarılar | `print_warning()` çağrılarında |
| `MSG_ERR_*` | Hatalar | `print_error()` çağrılarında |
| `MSG_HINT_*` | Çözüm önerileri | Hata mesajlarından sonra |
| `MSG_HELP_*` | Yardım metinleri | `show_help()` fonksiyonunda |
| `MSG_DOCTOR_*` | Doctor kontrolleri | `do_doctor()` fonksiyonunda |
| `MSG_HISTORY_*` | History mesajları | `do_history()` fonksiyonunda |
| `MSG_SUMMARY_*` | Özet mesajları | `print_final_summary()` fonksiyonunda |
| `MSG_HOOK_*` | Hook mesajları | `run_hooks()` fonksiyonunda |
| `MSG_CONFIRM_*` | Onay mesajları | Kullanıcı etkileşimi |

### Kategori bazlı sayım:

```bash
for prefix in HEADER INFO SUCCESS WARN ERR HINT HELP DOCTOR HISTORY SUMMARY HOOK CONFIRM; do
  TR=$(grep -c "^MSG_${prefix}_" lang/tr.sh 2>/dev/null || echo 0)
  EN=$(grep -c "^MSG_${prefix}_" lang/en.sh 2>/dev/null || echo 0)
  STATUS="OK"
  [[ "$TR" != "$EN" ]] && STATUS="FARKLI!"
  printf "%-12s TR: %3d  EN: %3d  %s\n" "$prefix" "$TR" "$EN" "$STATUS"
done
```

---

## Adım 4: printf Format Tutarlılığı

Bazı mesajlar `%s`, `%d` gibi printf formatları içerir. İki dil dosyasında formatlar eşleşmeli:

```bash
# printf format string'lerini karşılaştır
for msg in $(grep -oP '^MSG_\w+' lang/tr.sh); do
  TR_FMT=$(grep "^${msg}=" lang/tr.sh | grep -oP '%[sd]' | tr '\n' ' ')
  EN_FMT=$(grep "^${msg}=" lang/en.sh | grep -oP '%[sd]' | tr '\n' ' ')
  if [[ "$TR_FMT" != "$EN_FMT" ]]; then
    echo "FORMAT UYUMSUZ: $msg"
    echo "  TR: $TR_FMT"
    echo "  EN: $EN_FMT"
  fi
done
```

---

## Adım 5: Yeni Mesaj Ekleme

Yeni bir mesaj eklemek için 3 dosya güncellenmeli:

### 1. `guncel` script'ine ekle (varsayılan ile):
```bash
print_info "${MSG_INFO_YENI_OZELLIK:-Yeni özellik etkinleştirildi}"
```

### 2. `lang/tr.sh`'e ekle:
```bash
MSG_INFO_YENI_OZELLIK="Yeni özellik etkinleştirildi"
```

### 3. `lang/en.sh`'e ekle:
```bash
MSG_INFO_YENI_OZELLIK="New feature enabled"
```

### Ekleme Kuralları:
- Doğru kategoriye, bölüm yorum satırının altına ekle
- Alfabetik sıra zorunlu değil, mantıksal gruplama tercih edilir
- `%s` ve `%d` formatları her iki dosyada eşleşmeli
- Encoding her zaman UTF-8

---

## Adım 6: guncel'deki Kullanılmayan Mesajları Bul

```bash
# lang/tr.sh'deki MSG_ değişkenlerinin guncel'de kullanılıp kullanılmadığını kontrol et
for msg in $(grep -oP '^MSG_\w+' lang/tr.sh); do
  if ! grep -q "\$${msg}\|\"$msg\"\|\${${msg}" guncel; then
    echo "KULLANILMIYOR: $msg"
  fi
done
```

> **Not:** Bazı mesajlar `${MSG_XXX:-varsayılan}` sözdizimi ile kullanılır, yukarıdaki kontrol bunu da yakalar.

---

## Adım 7: Syntax Doğrulama

Dil dosyaları `safe_source()` ile yüklendiğinden bash syntax uyumlu olmalı:

```bash
bash -n lang/tr.sh
bash -n lang/en.sh
```

---

## Tam Senkronizasyon Checklist

```bash
# 1. Syntax kontrolü
bash -n lang/tr.sh && bash -n lang/en.sh && echo "Syntax OK"

# 2. Mesaj sayısı eşitliği
TR=$(grep -c '^MSG_' lang/tr.sh)
EN=$(grep -c '^MSG_' lang/en.sh)
[[ "$TR" == "$EN" ]] && echo "Sayı eşit: $TR" || echo "FARKLI: TR=$TR EN=$EN"

# 3. Eksik mesajları bul
echo "--- TR'de var, EN'de yok ---"
diff <(grep -oP '^MSG_\w+' lang/tr.sh | sort) <(grep -oP '^MSG_\w+' lang/en.sh | sort) | grep '^<'

echo "--- EN'de var, TR'de yok ---"
diff <(grep -oP '^MSG_\w+' lang/tr.sh | sort) <(grep -oP '^MSG_\w+' lang/en.sh | sort) | grep '^>'
```

Related Skills

Skill: Shell Lint ve Test

6
from CalmKernelTR/bigfive-updater

> ShellCheck + shfmt + BATS test çalıştırma ve hata düzeltme

Skill: Paket Build ve Doğrulama

6
from CalmKernelTR/bigfive-updater

> AUR, Alpine APK ve RPM paket build süreçleri ve doğrulama adımları

Skill: Multi-Distro Testing

6
from CalmKernelTR/bigfive-updater

> Docker container'larda 5 dağıtım test matrisi çalıştırma ve hata çözümleme

i18n-localization

31392
from sickn33/antigravity-awesome-skills

Internationalization and localization patterns. Detecting hardcoded strings, managing translations, locale files, RTL support.

Software DevelopmentClaude

i18n

74862
from lobehub/lobehub

Internationalization guide using react-i18next. Use when adding translations, creating i18n keys, or working with localized text in React components (.tsx files). Triggers on translation tasks, locale management, or i18n implementation.

i18n-localization

24269
from davila7/claude-code-templates

Internationalization and localization patterns. Detecting hardcoded strings, managing translations, locale files, RTL support.

dy-skill-i18n

3891
from openclaw/skills

处理前端国际化翻译工作。当用户提到需要做国际化、i18n、翻译、多语言支持时使用此 skill。主要功能:1) 识别代码中的硬编码静态文字;2) 判断是否应使用现有公共翻译或需要新增;3) 将翻译添加到对应的语言文件中;4) 将硬编码替换为国际化调用;5) 检查翻译完整性和正确性。

nextjs-i18n

385
from HoangNguyen0403/agent-skills-standard

Best practices for multi-language handling, locale routing, and detection strategies across App and Pages Router. Use when adding i18n, locale routing, or language detection in Next.js. (triggers: middleware.ts, app/[lang]/**, pages/[locale]/**, messages/*.json, next.config.js, i18n, locale, translation, next-intl, react-intl, next-translate)

fantasia-i18n

380
from vishiri/fantasia-archive

Manages vue-i18n messages and locale structure for Fantasia Archive. Use when adding or changing user-facing strings, locale files under src/i18n, or markdown-backed documents wired into i18n.

readme-i18n

242
from aiskillstore/marketplace

Use when the user wants to translate a repository README, make a repo multilingual, localize docs, add a language switcher, internationalize the README, or update localized README variants in a GitHub-style repository.

i18n-localization

242
from aiskillstore/marketplace

Internationalization and localization patterns. Detecting hardcoded strings, managing translations, locale files, RTL support.

skill-i18n

242
from aiskillstore/marketplace

Translate SKILL.md and README.md files into multiple languages for sharing skills internationally