# বাংলা ফন্ট ও এনকোডিং সাপোর্ট

স্কুল ম্যানেজমেন্ট সিস্টেমে সম্পূর্ণ বাংলা ভাষা সাপোর্ট যোগ করা হয়েছে। এখন আপনি বাংলায় নাম, ঠিকানা এবং অন্যান্য তথ্য লিখতে ও দেখতে পারবেন।

## ✅ বাংলা সাপোর্ট ফিচারসমূহ

### 🎨 **ফন্ট সাপোর্ট**
- **Google Fonts**: Noto Sans Bengali, Hind Siliguri
- **Local Fonts**: SolaimanLipi, Kalpurush
- **Fallback**: Segoe UI, Tahoma (ইংরেজির জন্য)
- **Line Height**: ১.৬-১.৭ (বাংলা টেক্সটের জন্য অপটিমাইজড)

### 📝 **এনকোডিং সাপোর্ট**
- **UTF-8 এনকোডিং**: সব বাংলা টেক্সট UTF-8 এ সংরক্ষিত
- **অটো কনভার্শন**: অন্য এনকোডিং থেকে UTF-8 এ কনভার্ট
- **BOM হ্যান্ডলিং**: Excel compatibility এর জন্য BOM সাপোর্ট
- **এনকোডিং ডিটেকশন**: ফাইলের এনকোডিং অটো ডিটেক্ট

### 📊 **CSV বাংলা সাপোর্ট**
- **বাংলা নাম**: ছাত্র ও শিক্ষকের বাংলা নাম
- **বাংলা ঠিকানা**: সম্পূর্ণ ঠিকানা বাংলায়
- **অভিভাবকের তথ্য**: বাংলা নামে অভিভাবকের তথ্য
- **এনকোডিং ক্লিনিং**: CSV পড়ার সময় টেক্সট ক্লিন করা

## 🔧 **টেকনিক্যাল বিবরণ**

### CSS ফন্ট স্ট্যাক:
```css
font-family: 'Noto Sans Bengali', 'Hind Siliguri', 'SolaimanLipi', 'Kalpurush', sans-serif;
```

### PHP এনকোডিং হ্যান্ডলিং:
```php
// এনকোডিং চেক ও কনভার্ট
if (!mb_check_encoding($text, 'UTF-8')) {
    $text = mb_convert_encoding($text, 'UTF-8', 'auto');
}

// বাংলা টেক্সট ক্লিনিং
$text = EncodingHelper::cleanBengaliText($text);
```

### CSV রিডিং:
```php
// UTF-8 সাপোর্ট সহ CSV পড়া
$data = EncodingHelper::readCsvWithBengaliSupport($filePath);
```

## 📋 **ব্যবহারের নির্দেশনা**

### ১. বাংলা টেক্সট ইনপুট:
- যেকোনো ইনপুট ফিল্ডে বাংলা লিখতে পারবেন
- বাংলা কীবোর্ড (Avro, Bijoy, Phonetic) ব্যবহার করুন
- কপি-পেস্ট করেও বাংলা টেক্সট যোগ করতে পারেন

### ২. CSV ফাইলে বাংলা:
#### Excel থেকে CSV তৈরি:
1. Excel এ বাংলা ডেটা টাইপ করুন
2. File → Save As → CSV UTF-8 (Comma delimited) নির্বাচন করুন
3. ফাইল সেভ করুন

#### Google Sheets থেকে:
1. Google Sheets এ বাংলা ডেটা টাইপ করুন
2. File → Download → Comma-separated values (.csv) নির্বাচন করুন
3. ফাইল ডাউনলোড করুন

### ৩. বাল্ক আপলোড:
- **বাংলা সাপোর্ট সহ আপলোড**: `bulk_upload/students_upload_bengali.php`
- **সাধারণ আপলোড**: `bulk_upload/students_upload.php`
- **অটো এনকোডিং**: সিস্টেম অটোমেটিক এনকোডিং ঠিক করবে

## 🎯 **সাপোর্টেড এলিমেন্ট**

### ফর্ম এলিমেন্ট:
- ✅ Input fields (text, email, etc.)
- ✅ Textarea
- ✅ Select dropdown
- ✅ Labels
- ✅ Placeholders

### UI এলিমেন্ট:
- ✅ Navigation menu
- ✅ Buttons
- ✅ Cards
- ✅ Tables
- ✅ Alerts
- ✅ Badges

### ডেটা ডিসপ্লে:
- ✅ Student names
- ✅ Teacher names
- ✅ Addresses
- ✅ Guardian information
- ✅ Qualifications
- ✅ Designations

## 🔍 **টেস্টিং**

### বাংলা সাপোর্ট টেস্ট:
```
http://localhost/bidda/test_bengali_encoding.php
```

এই পেজে দেখতে পারবেন:
- ফন্ট প্রদর্শন টেস্ট
- এনকোডিং ফাংশন টেস্ট
- CSV টেমপ্লেট টেস্ট
- ফাইল এনকোডিং তথ্য
- PHP কনফিগারেশন চেক

## 📁 **ফাইল স্ট্রাকচার**

```
assets/css/style.css                    # বাংলা ফন্ট CSS
bulk_upload/encoding_helper.php         # এনকোডিং হেল্পার ক্লাস
bulk_upload/students_upload_bengali.php # বাংলা সাপোর্ট সহ আপলোড
bulk_upload/templates/                  # বাংলা নমুনা সহ টেমপ্লেট
test_bengali_encoding.php              # বাংলা সাপোর্ট টেস্ট
```

## 🐛 **সমস্যা সমাধান**

### সাধারণ সমস্যা:

#### ১. বাংলা টেক্সট ভাঙা দেখাচ্ছে:
**সমাধান:**
- ব্রাউজার রিফ্রেশ করুন
- ব্রাউজারের এনকোডিং UTF-8 সেট করুন
- ইন্টারনেট কানেকশন চেক করুন (Google Fonts এর জন্য)

#### ২. CSV এ বাংলা সঠিক নয়:
**সমাধান:**
- Excel এ CSV UTF-8 হিসেবে সেভ করুন
- Notepad++ দিয়ে ফাইল খুলে এনকোডিং চেক করুন
- বাংলা সাপোর্ট সহ আপলোড পেজ ব্যবহার করুন

#### ৩. ডাটাবেসে বাংলা সেভ হচ্ছে না:
**সমাধান:**
- MySQL charset utf8mb4 সেট করুন
- Table collation utf8mb4_unicode_ci ব্যবহার করুন
- Connection charset UTF-8 সেট করুন

### ডিবাগিং:

#### PHP সেটিংস চেক:
```php
// mbstring extension চেক
if (!extension_loaded('mbstring')) {
    echo 'mbstring extension প্রয়োজন';
}

// এনকোডিং চেক
echo mb_internal_encoding(); // UTF-8 হওয়া উচিত
```

#### MySQL সেটিংস চেক:
```sql
-- Database charset চেক
SHOW CREATE DATABASE your_database_name;

-- Table charset চেক  
SHOW CREATE TABLE students;

-- Connection charset সেট
SET NAMES utf8mb4;
```

## 🎨 **কাস্টমাইজেশন**

### ফন্ট পরিবর্তন:
```css
/* style.css এ নিম্নলিখিত লাইন পরিবর্তন করুন */
body {
    font-family: 'আপনার পছন্দের ফন্ট', 'Noto Sans Bengali', sans-serif;
}
```

### নতুন বাংলা ফন্ট যোগ:
```css
/* Google Fonts থেকে নতুন ফন্ট ইমপোর্ট */
@import url('https://fonts.googleapis.com/css2?family=নতুন+ফন্ট&display=swap');
```

### লাইন হাইট অ্যাডজাস্ট:
```css
.bengali-text {
    line-height: 1.8; /* বাংলা টেক্সটের জন্য বাড়ান */
}
```

## 📊 **পারফরমেন্স**

### ফন্ট লোডিং অপটিমাইজেশন:
- Google Fonts `display=swap` ব্যবহার করা হয়েছে
- Local fallback fonts সেট করা আছে
- Font preloading সাপোর্ট

### এনকোডিং পারফরমেন্স:
- শুধুমাত্র প্রয়োজনে এনকোডিং কনভার্ট
- Batch processing এ অপটিমাইজড
- Memory efficient text processing

## 🔮 **ভবিষ্যতের উন্নতি**

### পরবর্তী ভার্সনে যোগ হতে পারে:
- **RTL সাপোর্ট**: আরবি/উর্দু ভাষার জন্য
- **ফন্ট সিলেকটর**: ইউজার নিজের পছন্দের ফন্ট বেছে নিতে পারবেন
- **ভাষা সুইচার**: বাংলা/ইংরেজি মোড টগল
- **ভয়েস ইনপুট**: বাংলা ভয়েস টু টেক্সট
- **OCR সাপোর্ট**: বাংলা ইমেজ থেকে টেক্সট
- **PDF বাংলা সাপোর্ট**: বাংলা রিপোর্ট জেনারেশন

## 💡 **বেস্ট প্র্যাকটিস**

### ডেটা এন্ট্রি:
1. **সামঞ্জস্যতা**: একই ধরনের নাম একই ফরম্যাটে লিখুন
2. **স্পেসিং**: অতিরিক্ত স্পেস এড়িয়ে চলুন
3. **বানান**: সঠিক বাংলা বানান ব্যবহার করুন
4. **ইংরেজি মিশ্রণ**: প্রয়োজনে ইংরেজি শব্দ ব্যবহার করতে পারেন

### CSV প্রস্তুতি:
1. **এনকোডিং**: সবসময় UTF-8 ব্যবহার করুন
2. **টেস্টিং**: ছোট ব্যাচে প্রথমে টেস্ট করুন
3. **ব্যাকআপ**: মূল ডেটার ব্যাকআপ রাখুন
4. **ভ্যালিডেশন**: আপলোডের আগে ডেটা চেক করুন

এই বাংলা সাপোর্ট সিস্টেম ব্যবহার করে আপনি সম্পূর্ণ বাংলায় স্কুল ম্যানেজমেন্ট সিস্টেম পরিচালনা করতে পারবেন!