173 lines
6.2 KiB
Markdown
173 lines
6.2 KiB
Markdown
|
|
# 🌍 Автоматический выбор доменных зон по региону
|
|||
|
|
|
|||
|
|
## ✅ Что добавлено
|
|||
|
|
|
|||
|
|
### 1. Расширенный список доменных зон
|
|||
|
|
|
|||
|
|
**По регионам** (автоматически показываются первыми):
|
|||
|
|
|
|||
|
|
#### 🇷🇺 Россия и СНГ (Region.ru):
|
|||
|
|
- `.ru`, `.рф`, `.su` - Россия
|
|||
|
|
- `.by` - Беларусь
|
|||
|
|
- `.kz` - Казахстан
|
|||
|
|
- `.ua` - Украина
|
|||
|
|
- `.am` - Армения
|
|||
|
|
- `.ge` - Грузия
|
|||
|
|
- `.md` - Молдова
|
|||
|
|
- `.kg` - Киргизия
|
|||
|
|
- `.uz` - Узбекистан
|
|||
|
|
- `.tm` - Туркменистан
|
|||
|
|
- `.az` - Азербайджан
|
|||
|
|
|
|||
|
|
#### 🇮🇷 Иран и окружение (Region.ir):
|
|||
|
|
- `.ir`, `.ایران` - Иран
|
|||
|
|
- `.af` - Афганистан
|
|||
|
|
- `.tj`, `.تاجیکستان` - Таджикистан
|
|||
|
|
- `.pk` - Пакистан
|
|||
|
|
- `.iq` - Ирак
|
|||
|
|
|
|||
|
|
#### 🇨🇳 Китай и Восточная Азия (Region.cn):
|
|||
|
|
- `.cn`, `.中国` - Китай
|
|||
|
|
- `.hk` - Гонконг
|
|||
|
|
- `.tw` - Тайвань
|
|||
|
|
- `.mo` - Макао
|
|||
|
|
- `.sg` - Сингапур
|
|||
|
|
- `.kr` - Южная Корея
|
|||
|
|
- `.jp` - Япония
|
|||
|
|
|
|||
|
|
#### 🇮🇩 Индонезия и Юго-Восточная Азия (Region.id):
|
|||
|
|
- `.id` - Индонезия
|
|||
|
|
- `.my` - Малайзия
|
|||
|
|
- `.ph` - Филиппины
|
|||
|
|
- `.vn` - Вьетнам
|
|||
|
|
- `.th` - Таиланд
|
|||
|
|
- `.la` - Лаос
|
|||
|
|
- `.mm` - Мьянма
|
|||
|
|
- `.kh` - Камбоджа
|
|||
|
|
- `.bn` - Бруней
|
|||
|
|
- `.tl` - Восточный Тимор
|
|||
|
|
|
|||
|
|
#### 🇹🇷 Турция и Тюркский мир (Region.tr):
|
|||
|
|
- `.tr` - Турция
|
|||
|
|
- `.az` - Азербайджан
|
|||
|
|
- `.tm` - Туркменистан
|
|||
|
|
- `.uz` - Узбекистан
|
|||
|
|
- `.kg` - Киргизия
|
|||
|
|
- `.kz` - Казахстан
|
|||
|
|
|
|||
|
|
#### 🇦🇫 Афганистан и окружение (Region.af):
|
|||
|
|
- `.af` - Афганистан
|
|||
|
|
- `.pk` - Пакистан
|
|||
|
|
- `.tj`, `.تاجیکستان` - Таджикистан
|
|||
|
|
- `.ir`, `.ایران` - Иран
|
|||
|
|
|
|||
|
|
#### 🇧🇷 Бразилия и Латинская Америка (Region.br):
|
|||
|
|
- `.br` - Бразилия
|
|||
|
|
- `.pt` - Португалия
|
|||
|
|
- `.ao` - Ангола
|
|||
|
|
- `.mz` - Мозамбик
|
|||
|
|
- `.mx` - Мексика
|
|||
|
|
- `.ar` - Аргентина
|
|||
|
|
- `.cl` - Чили
|
|||
|
|
- `.co` - Колумбия
|
|||
|
|
- `.ve` - Венесуэла
|
|||
|
|
- `.pe` - Перу
|
|||
|
|
|
|||
|
|
#### 🇮🇳 Индия и Южная Азия (Region.in_) **[НОВЫЙ РЕГИОН]**:
|
|||
|
|
- `.in`, `.भारत` - Индия
|
|||
|
|
- `.pk` - Пакистан
|
|||
|
|
- `.bd` - Бангладеш
|
|||
|
|
- `.lk` - Шри-Ланка
|
|||
|
|
- `.np` - Непал
|
|||
|
|
- `.bt` - Бутан
|
|||
|
|
- `.mv` - Мальдивы
|
|||
|
|
|
|||
|
|
### 2. Глобальные популярные зоны (топ-20):
|
|||
|
|
|
|||
|
|
Всегда показываются после региональных:
|
|||
|
|
- `.com`, `.org`, `.net`, `.info`, `.biz`
|
|||
|
|
- `.co`, `.io`, `.ai`, `.app`, `.dev`
|
|||
|
|
- `.xyz`, `.online`, `.site`, `.tech`, `.store`
|
|||
|
|
- `.me`, `.cc`, `.tv`, `.pro`, `.us`
|
|||
|
|
|
|||
|
|
## 🤖 Как работает автоматический выбор
|
|||
|
|
|
|||
|
|
1. **При открытии "Исключения"** → **"+ Добавить домены"**:
|
|||
|
|
- Система определяет регион пользователя (Region.ru, Region.cn, и т.д.)
|
|||
|
|
- Автоматически показывает релевантные зоны **в начале списка**
|
|||
|
|
- Затем добавляет популярные глобальные зоны
|
|||
|
|
|
|||
|
|
2. **Пример для русского пользователя** (Region.ru):
|
|||
|
|
```
|
|||
|
|
[✓] .ru
|
|||
|
|
[✓] .рф
|
|||
|
|
[ ] .su
|
|||
|
|
[ ] .by
|
|||
|
|
[ ] .kz
|
|||
|
|
[ ] .ua
|
|||
|
|
... (11 региональных зон)
|
|||
|
|
[ ] .com
|
|||
|
|
[ ] .org
|
|||
|
|
[ ] .net
|
|||
|
|
... (20 глобальных зон)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
3. **Пример для китайского пользователя** (Region.cn):
|
|||
|
|
```
|
|||
|
|
[ ] .cn
|
|||
|
|
[ ] .中国
|
|||
|
|
[ ] .hk
|
|||
|
|
[ ] .tw
|
|||
|
|
... (8 региональных зон)
|
|||
|
|
[ ] .com
|
|||
|
|
[ ] .org
|
|||
|
|
... (глобальные зоны)
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 📂 Измененные файлы
|
|||
|
|
|
|||
|
|
### 1. `lib/core/model/region.dart`
|
|||
|
|
- ✅ Добавлен новый регион `in_` (Индия)
|
|||
|
|
- Теперь всего **9 регионов** (было 8)
|
|||
|
|
|
|||
|
|
### 2. `lib/features/per_app_proxy/overview/per_app_proxy_page.dart`
|
|||
|
|
- ✅ Добавлены импорты: `Region`, `ConfigOptions`
|
|||
|
|
- ✅ Реализована логика автоматического выбора зон по региону
|
|||
|
|
- ✅ Расширен список с 6 до **80+ доменных зон**
|
|||
|
|
- ✅ Зоны группируются: региональные (по текущему региону) + глобальные
|
|||
|
|
|
|||
|
|
## 🎯 Преимущества
|
|||
|
|
|
|||
|
|
1. **Удобство для пользователей**:
|
|||
|
|
- Не нужно искать нужные зоны вручную
|
|||
|
|
- Релевантные зоны показываются первыми
|
|||
|
|
- Поддержка национальных доменов (кириллица, арабский, китайский)
|
|||
|
|
|
|||
|
|
2. **Полнота покрытия**:
|
|||
|
|
- Россия: 13 зон (было 6)
|
|||
|
|
- Китай: 8 зон (было 6)
|
|||
|
|
- Иран: 7 зон (было 5)
|
|||
|
|
- Индонезия: 10 зон (было 6)
|
|||
|
|
- **Новый регион**: Индия (7 зон)
|
|||
|
|
|
|||
|
|
3. **Умное поведение**:
|
|||
|
|
- Автоматически определяет регион при первом запуске
|
|||
|
|
- Можно вручную изменить регион в настройках
|
|||
|
|
- Список обновляется при смене региона
|
|||
|
|
|
|||
|
|
## 📱 Как протестировать
|
|||
|
|
|
|||
|
|
1. Запусти приложение
|
|||
|
|
2. Открой: **Настройки** → **Сеть** → **Исключения** → **Домены**
|
|||
|
|
3. Нажми **"+ Добавить домены"**
|
|||
|
|
4. Увидишь:
|
|||
|
|
- Для России: `.ru`, `.рф`, `.su`, `.by`, `.kz`, `.ua`, ... (13 зон)
|
|||
|
|
- Затем глобальные: `.com`, `.org`, `.net`, `.io`, `.ai`, ... (20 зон)
|
|||
|
|
|
|||
|
|
## 🔮 Будущие улучшения
|
|||
|
|
|
|||
|
|
- [ ] Добавить автоматическую подстановку зон при первом запуске
|
|||
|
|
- [ ] Сделать "быструю кнопку" для добавления всех региональных зон
|
|||
|
|
- [ ] Показывать флаги стран рядом с зонами
|
|||
|
|
- [ ] Добавить поиск по доменным зонам
|