@artilingo/artiframe-cli 1.0.0 → 1.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +237 -0
- package/package.json +2 -1
- package/src/App.php +33 -21
- package/src/Commands/LangCommand.php +100 -0
- package/src/Lang/de.php +38 -0
- package/src/Lang/en.php +38 -0
- package/src/Lang/es.php +38 -0
- package/src/Lang/fr.php +38 -0
- package/src/Lang/tr.php +38 -0
package/README.md
ADDED
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="https://raw.githubusercontent.com/artilingo/artiframe/main/assets/logo.png" alt="ArtiFrame Logo" width="180" />
|
|
4
|
+
|
|
5
|
+
# ArtiFrame
|
|
6
|
+
|
|
7
|
+
**Zero-dependency · Native PHP · Multilingual CLI**
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/@artilingo/artiframe-cli)
|
|
10
|
+
[](https://www.npmjs.com/package/@artilingo/artiframe-cli)
|
|
11
|
+
[](https://www.gnu.org/licenses/agpl-3.0)
|
|
12
|
+
[](https://www.php.net)
|
|
13
|
+
|
|
14
|
+
</div>
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
<div align="center">
|
|
19
|
+
|
|
20
|
+
[🇹🇷 Türkçe](#-türkçe) · [🇬🇧 English](#-english) · [🇩🇪 Deutsch](#-deutsch) · [🇫🇷 Français](#-français) · [🇪🇸 Español](#-español)
|
|
21
|
+
|
|
22
|
+
</div>
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## 🇹🇷 Türkçe
|
|
27
|
+
|
|
28
|
+
**ArtiFrame**, sıfır dış bağımlılık felsefesiyle inşa edilmiş, native PHP için modern bir web geliştirme çerçevesidir. Composer paket karmaşasından arınmış, güvenlik öncelikli ve CLI güdümlü bir ekosistem sunar.
|
|
29
|
+
|
|
30
|
+
### Özellikler
|
|
31
|
+
|
|
32
|
+
- 🚫 **Sıfır Bağımlılık** — Composer paketlerine ihtiyaç yok, her satır kendi kodunuz
|
|
33
|
+
- 🛡️ **Güvenlik Önce** — XSS, CSRF, SQL Injection koruması varsayılan olarak yerleşik
|
|
34
|
+
- ⚡ **Hızlı Kurulum** — Tek komutla eksiksiz proje iskeleti
|
|
35
|
+
- 🌍 **5 Dil Desteği** — TR · EN · DE · FR · ES
|
|
36
|
+
- 📐 **Katı Kural Seti** — `data-js` mimarisi, iki bootstrapper modeli, tutarlı dizin yapısı
|
|
37
|
+
|
|
38
|
+
### Kurulum
|
|
39
|
+
|
|
40
|
+
> PHP 8.1 veya üzeri gereklidir.
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
npm install -g @artilingo/artiframe-cli
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Kullanım
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
# İnteraktif kabuk açar
|
|
50
|
+
artiframe
|
|
51
|
+
|
|
52
|
+
# Yeni proje oluştur
|
|
53
|
+
artiframe> new benim-projem
|
|
54
|
+
|
|
55
|
+
# View oluştur
|
|
56
|
+
artiframe> make:view admin/kullanicilar.php
|
|
57
|
+
|
|
58
|
+
# API endpoint oluştur
|
|
59
|
+
artiframe> make:api standart api/auth/giris.php
|
|
60
|
+
|
|
61
|
+
# Sürüm güncelle
|
|
62
|
+
artiframe> version upgrade minor
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## 🇬🇧 English
|
|
68
|
+
|
|
69
|
+
**ArtiFrame** is a modern web development framework for native PHP, built on a zero external dependency philosophy. It offers a security-first, CLI-driven ecosystem free from Composer package chaos.
|
|
70
|
+
|
|
71
|
+
### Features
|
|
72
|
+
|
|
73
|
+
- 🚫 **Zero Dependencies** — No Composer packages needed, every line of code is yours
|
|
74
|
+
- 🛡️ **Security First** — XSS, CSRF, SQL Injection protection built-in by default
|
|
75
|
+
- ⚡ **Quick Setup** — Complete project skeleton with a single command
|
|
76
|
+
- 🌍 **5 Language Support** — TR · EN · DE · FR · ES
|
|
77
|
+
- 📐 **Strict Ruleset** — `data-js` architecture, dual bootstrapper model, consistent directory structure
|
|
78
|
+
|
|
79
|
+
### Installation
|
|
80
|
+
|
|
81
|
+
> Requires PHP 8.1 or higher.
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
npm install -g @artilingo/artiframe-cli
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Usage
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Opens the interactive shell
|
|
91
|
+
artiframe
|
|
92
|
+
|
|
93
|
+
# Create a new project
|
|
94
|
+
artiframe> new my-project
|
|
95
|
+
|
|
96
|
+
# Generate a view
|
|
97
|
+
artiframe> make:view admin/users.php
|
|
98
|
+
|
|
99
|
+
# Generate an API endpoint
|
|
100
|
+
artiframe> make:api standart api/auth/login.php
|
|
101
|
+
|
|
102
|
+
# Update version
|
|
103
|
+
artiframe> version upgrade minor
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 🇩🇪 Deutsch
|
|
109
|
+
|
|
110
|
+
**ArtiFrame** ist ein modernes Web-Entwicklungs-Framework für natives PHP, das auf einer Philosophie ohne externe Abhängigkeiten aufgebaut ist. Es bietet ein sicherheitsorientiertes, CLI-gesteuertes Ökosystem, frei von Composer-Paketchaos.
|
|
111
|
+
|
|
112
|
+
### Funktionen
|
|
113
|
+
|
|
114
|
+
- 🚫 **Null Abhängigkeiten** — Keine Composer-Pakete erforderlich, jede Codezeile gehört Ihnen
|
|
115
|
+
- 🛡️ **Sicherheit zuerst** — XSS, CSRF, SQL-Injection-Schutz standardmäßig integriert
|
|
116
|
+
- ⚡ **Schnelle Einrichtung** — Vollständiges Projektskelett mit einem einzigen Befehl
|
|
117
|
+
- 🌍 **5 Sprachunterstützung** — TR · EN · DE · FR · ES
|
|
118
|
+
- 📐 **Striktes Regelwerk** — `data-js`-Architektur, duales Bootstrapper-Modell, konsistente Verzeichnisstruktur
|
|
119
|
+
|
|
120
|
+
### Installation
|
|
121
|
+
|
|
122
|
+
> Erfordert PHP 8.1 oder höher.
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
npm install -g @artilingo/artiframe-cli
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
### Verwendung
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Öffnet die interaktive Shell
|
|
132
|
+
artiframe
|
|
133
|
+
|
|
134
|
+
# Neues Projekt erstellen
|
|
135
|
+
artiframe> new mein-projekt
|
|
136
|
+
|
|
137
|
+
# View erstellen
|
|
138
|
+
artiframe> make:view admin/benutzer.php
|
|
139
|
+
|
|
140
|
+
# API-Endpunkt erstellen
|
|
141
|
+
artiframe> make:api standart api/auth/anmelden.php
|
|
142
|
+
|
|
143
|
+
# Version aktualisieren
|
|
144
|
+
artiframe> version upgrade minor
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## 🇫🇷 Français
|
|
150
|
+
|
|
151
|
+
**ArtiFrame** est un framework de développement web moderne pour PHP natif, construit sur une philosophie zéro dépendance externe. Il offre un écosystème axé sur la sécurité et piloté par CLI, sans le chaos des paquets Composer.
|
|
152
|
+
|
|
153
|
+
### Fonctionnalités
|
|
154
|
+
|
|
155
|
+
- 🚫 **Zéro Dépendance** — Aucun paquet Composer nécessaire, chaque ligne de code vous appartient
|
|
156
|
+
- 🛡️ **La Sécurité d'Abord** — Protection XSS, CSRF, injection SQL intégrée par défaut
|
|
157
|
+
- ⚡ **Configuration Rapide** — Squelette de projet complet en une seule commande
|
|
158
|
+
- 🌍 **Support 5 Langues** — TR · EN · DE · FR · ES
|
|
159
|
+
- 📐 **Règles Strictes** — Architecture `data-js`, modèle double bootstrapper, structure de répertoires cohérente
|
|
160
|
+
|
|
161
|
+
### Installation
|
|
162
|
+
|
|
163
|
+
> Nécessite PHP 8.1 ou supérieur.
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
npm install -g @artilingo/artiframe-cli
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
### Utilisation
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# Ouvre le shell interactif
|
|
173
|
+
artiframe
|
|
174
|
+
|
|
175
|
+
# Créer un nouveau projet
|
|
176
|
+
artiframe> new mon-projet
|
|
177
|
+
|
|
178
|
+
# Générer une vue
|
|
179
|
+
artiframe> make:view admin/utilisateurs.php
|
|
180
|
+
|
|
181
|
+
# Générer un endpoint API
|
|
182
|
+
artiframe> make:api standart api/auth/connexion.php
|
|
183
|
+
|
|
184
|
+
# Mettre à jour la version
|
|
185
|
+
artiframe> version upgrade minor
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 🇪🇸 Español
|
|
191
|
+
|
|
192
|
+
**ArtiFrame** es un framework de desarrollo web moderno para PHP nativo, construido sobre una filosofía de cero dependencias externas. Ofrece un ecosistema orientado a la seguridad y guiado por CLI, libre del caos de paquetes Composer.
|
|
193
|
+
|
|
194
|
+
### Características
|
|
195
|
+
|
|
196
|
+
- 🚫 **Cero Dependencias** — Sin paquetes Composer, cada línea de código es tuya
|
|
197
|
+
- 🛡️ **Seguridad Primero** — Protección XSS, CSRF, inyección SQL integrada por defecto
|
|
198
|
+
- ⚡ **Configuración Rápida** — Esqueleto de proyecto completo con un solo comando
|
|
199
|
+
- 🌍 **Soporte 5 Idiomas** — TR · EN · DE · FR · ES
|
|
200
|
+
- 📐 **Reglas Estrictas** — Arquitectura `data-js`, modelo dual de bootstrapper, estructura de directorios consistente
|
|
201
|
+
|
|
202
|
+
### Instalación
|
|
203
|
+
|
|
204
|
+
> Requiere PHP 8.1 o superior.
|
|
205
|
+
|
|
206
|
+
```bash
|
|
207
|
+
npm install -g @artilingo/artiframe-cli
|
|
208
|
+
```
|
|
209
|
+
|
|
210
|
+
### Uso
|
|
211
|
+
|
|
212
|
+
```bash
|
|
213
|
+
# Abre el shell interactivo
|
|
214
|
+
artiframe
|
|
215
|
+
|
|
216
|
+
# Crear un nuevo proyecto
|
|
217
|
+
artiframe> new mi-proyecto
|
|
218
|
+
|
|
219
|
+
# Generar una vista
|
|
220
|
+
artiframe> make:view admin/usuarios.php
|
|
221
|
+
|
|
222
|
+
# Generar un endpoint API
|
|
223
|
+
artiframe> make:api standart api/auth/login.php
|
|
224
|
+
|
|
225
|
+
# Actualizar la versión
|
|
226
|
+
artiframe> version upgrade minor
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
<div align="center">
|
|
232
|
+
|
|
233
|
+
**[artiframe.org](https://artiframe.org)** · **[npmjs.com/package/@artilingo/artiframe-cli](https://www.npmjs.com/package/@artilingo/artiframe-cli)** · **[GitHub](https://github.com/artilingo/artiframe)**
|
|
234
|
+
|
|
235
|
+
© Artilingo — Licensed under [AGPLv3](https://www.gnu.org/licenses/agpl-3.0)
|
|
236
|
+
|
|
237
|
+
</div>
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@artilingo/artiframe-cli",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.3",
|
|
4
4
|
"description": "ArtiFrame — Zero-dependency native PHP framework with a powerful multilingual CLI. Scaffold projects, generate views, APIs and classes instantly.",
|
|
5
5
|
"main": "bin/artiframe.js",
|
|
6
6
|
"bin": {
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"postinstall": "node scripts/postinstall.js"
|
|
11
11
|
},
|
|
12
12
|
"files": [
|
|
13
|
+
"README.md",
|
|
13
14
|
"bin/artiframe.js",
|
|
14
15
|
"bin/artiframe.php",
|
|
15
16
|
"src/",
|
package/src/App.php
CHANGED
|
@@ -114,7 +114,7 @@ class App
|
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
if (in_array(strtolower($input), ['exit', 'quit'])) {
|
|
117
|
-
echo PHP_EOL . "\033[38;5;240m
|
|
117
|
+
echo PHP_EOL . "\033[38;5;240m " . $this->translator->get('SHELL_GOODBYE') . "\033[0m" . PHP_EOL . PHP_EOL;
|
|
118
118
|
break;
|
|
119
119
|
}
|
|
120
120
|
|
|
@@ -127,7 +127,7 @@ class App
|
|
|
127
127
|
try {
|
|
128
128
|
$this->routeCommand($commandName, $parts);
|
|
129
129
|
} catch (\Exception $e) {
|
|
130
|
-
echo "\033[1;31m ✖
|
|
130
|
+
echo "\033[1;31m ✖ " . $this->translator->get('SHELL_ERROR') . "\033[0m " . $e->getMessage() . PHP_EOL;
|
|
131
131
|
}
|
|
132
132
|
echo PHP_EOL;
|
|
133
133
|
}
|
|
@@ -157,7 +157,7 @@ class App
|
|
|
157
157
|
echo $g . " │" . $r . PHP_EOL;
|
|
158
158
|
echo $g . " └─────────────────────────────────────────────────────────────┘" . $r . PHP_EOL;
|
|
159
159
|
echo PHP_EOL;
|
|
160
|
-
echo " " . $d .
|
|
160
|
+
echo " " . $d . $this->translator->get('SHELL_TYPE_HELP') . $r . PHP_EOL;
|
|
161
161
|
echo PHP_EOL;
|
|
162
162
|
}
|
|
163
163
|
|
|
@@ -182,6 +182,10 @@ class App
|
|
|
182
182
|
(new \ArtiFrame\Cli\Commands\MakeClassCommand($this->translator))->execute($commandArgs);
|
|
183
183
|
break;
|
|
184
184
|
|
|
185
|
+
case 'lang':
|
|
186
|
+
(new \ArtiFrame\Cli\Commands\LangCommand($this->translator))->execute($commandArgs);
|
|
187
|
+
break;
|
|
188
|
+
|
|
185
189
|
case 'version':
|
|
186
190
|
(new \ArtiFrame\Cli\Commands\VersionCommand($this->translator))->execute($commandArgs);
|
|
187
191
|
break;
|
|
@@ -203,64 +207,72 @@ class App
|
|
|
203
207
|
$c = "\033[38;5;81m"; // cyan for sub-options
|
|
204
208
|
$r = "\033[0m"; // reset
|
|
205
209
|
|
|
210
|
+
$t = $this->translator;
|
|
206
211
|
echo PHP_EOL;
|
|
207
|
-
echo " " . $w .
|
|
212
|
+
echo " " . $w . $t->get('HELP_COMMANDS') . $r . PHP_EOL;
|
|
208
213
|
echo " " . $d . "─────────────────────────────────────────────────────────────" . $r . PHP_EOL;
|
|
209
214
|
echo PHP_EOL;
|
|
210
215
|
|
|
211
216
|
// new
|
|
212
217
|
echo " " . $g . "new" . $r . " " . $y . "<project-path>" . $r . PHP_EOL;
|
|
213
|
-
echo " " . $d . "│" . $r . "
|
|
218
|
+
echo " " . $d . "│" . $r . " " . $t->get('HELP_NEW_DESC') . PHP_EOL;
|
|
214
219
|
echo " " . $d . "└── " . $r . "Example: " . $lg . "new my-app" . $r . PHP_EOL;
|
|
215
220
|
echo PHP_EOL;
|
|
216
221
|
|
|
217
222
|
// make:view
|
|
218
223
|
echo " " . $g . "make:view" . $r . " " . $y . "<path>" . $r . PHP_EOL;
|
|
219
|
-
echo " " . $d . "│" . $r . "
|
|
220
|
-
echo " " . $d . "│" . $r . "
|
|
224
|
+
echo " " . $d . "│" . $r . " " . $t->get('HELP_MAKEVIEW_DESC1') . PHP_EOL;
|
|
225
|
+
echo " " . $d . "│" . $r . " " . $t->get('HELP_MAKEVIEW_DESC2') . PHP_EOL;
|
|
221
226
|
echo " " . $d . "└── " . $r . "Example: " . $lg . "make:view pages/about.php" . $r . PHP_EOL;
|
|
222
227
|
echo PHP_EOL;
|
|
223
228
|
|
|
224
229
|
// make:api
|
|
225
230
|
echo " " . $g . "make:api" . $r . " " . $y . "<template>" . $r . " " . $y . "<path>" . $r . PHP_EOL;
|
|
226
|
-
echo " " . $d . "│" . $r . "
|
|
231
|
+
echo " " . $d . "│" . $r . " " . $t->get('HELP_MAKEAPI_DESC') . PHP_EOL;
|
|
227
232
|
echo " " . $d . "│" . $r . PHP_EOL;
|
|
228
|
-
echo " " . $d . "├── " . $c . "standart" . $r . "
|
|
233
|
+
echo " " . $d . "├── " . $c . "standart" . $r . " " . $t->get('HELP_MAKEAPI_STANDART') . PHP_EOL;
|
|
229
234
|
echo " " . $d . "│ " . $r . "Example: " . $lg . "make:api standart api/user/get.php" . $r . PHP_EOL;
|
|
230
235
|
echo " " . $d . "│" . $r . PHP_EOL;
|
|
231
|
-
echo " " . $d . "└── " . $c . "switch-case" . $r . "
|
|
236
|
+
echo " " . $d . "└── " . $c . "switch-case" . $r . " " . $t->get('HELP_MAKEAPI_SWITCH') . PHP_EOL;
|
|
232
237
|
echo " " . $d . " " . $r . "Example: " . $lg . "make:api switch-case api/user/crud.php" . $r . PHP_EOL;
|
|
233
238
|
echo PHP_EOL;
|
|
234
239
|
|
|
235
240
|
// make:class
|
|
236
241
|
echo " " . $g . "make:class" . $r . " " . $y . "<path>" . $r . PHP_EOL;
|
|
237
|
-
echo " " . $d . "│" . $r . "
|
|
242
|
+
echo " " . $d . "│" . $r . " " . $t->get('HELP_MAKECLASS_DESC') . PHP_EOL;
|
|
238
243
|
echo " " . $d . "└── " . $r . "Example: " . $lg . "make:class classes/UserManager.php" . $r . PHP_EOL;
|
|
239
244
|
echo PHP_EOL;
|
|
240
245
|
|
|
241
246
|
// version
|
|
242
247
|
echo " " . $g . "version" . $r . " " . $y . "<action>" . $r . " " . $y . "<level>" . $r . PHP_EOL;
|
|
243
|
-
echo " " . $d . "│" . $r . "
|
|
244
|
-
echo " " . $d . "│" . $r . "
|
|
248
|
+
echo " " . $d . "│" . $r . " " . $t->get('HELP_VERSION_DESC1') . PHP_EOL;
|
|
249
|
+
echo " " . $d . "│" . $r . " " . $t->get('HELP_VERSION_FORMAT') . PHP_EOL;
|
|
245
250
|
echo " " . $d . "│" . $r . PHP_EOL;
|
|
246
251
|
echo " " . $d . "├── " . $c . "upgrade" . $r . PHP_EOL;
|
|
247
|
-
echo " " . $d . "│ ├── " . $c . "patch" . $r . "
|
|
248
|
-
echo " " . $d . "│ ├── " . $c . "minor" . $r . "
|
|
249
|
-
echo " " . $d . "│ └── " . $c . "major" . $r . "
|
|
252
|
+
echo " " . $d . "│ ├── " . $c . "patch" . $r . " " . $t->get('HELP_PATCH_UP') . " " . $d . "1.0.0 → 1.0.1" . $r . PHP_EOL;
|
|
253
|
+
echo " " . $d . "│ ├── " . $c . "minor" . $r . " " . $t->get('HELP_MINOR_UP') . " " . $d . "1.0.0 → 1.1.0" . $r . PHP_EOL;
|
|
254
|
+
echo " " . $d . "│ └── " . $c . "major" . $r . " " . $t->get('HELP_MAJOR_UP') . " " . $d . "1.0.0 → 2.0.0" . $r . PHP_EOL;
|
|
250
255
|
echo " " . $d . "│" . $r . PHP_EOL;
|
|
251
256
|
echo " " . $d . "└── " . $c . "downgrade" . $r . PHP_EOL;
|
|
252
|
-
echo " " . $d . " ├── " . $c . "patch" . $r . "
|
|
253
|
-
echo " " . $d . " ├── " . $c . "minor" . $r . "
|
|
254
|
-
echo " " . $d . " └── " . $c . "major" . $r . "
|
|
257
|
+
echo " " . $d . " ├── " . $c . "patch" . $r . " " . $t->get('HELP_PATCH_DOWN') . " " . $d . "1.0.3 → 1.0.2" . $r . PHP_EOL;
|
|
258
|
+
echo " " . $d . " ├── " . $c . "minor" . $r . " " . $t->get('HELP_MINOR_DOWN') . " " . $d . "1.3.0 → 1.2.0" . $r . PHP_EOL;
|
|
259
|
+
echo " " . $d . " └── " . $c . "major" . $r . " " . $t->get('HELP_MAJOR_DOWN') . " " . $d . "3.0.0 → 2.0.0" . $r . PHP_EOL;
|
|
255
260
|
echo PHP_EOL;
|
|
256
261
|
echo " " . $d . " Example: " . $lg . "version upgrade minor" . $r . PHP_EOL;
|
|
257
262
|
echo " " . $d . " Example: " . $lg . "version downgrade patch" . $r . PHP_EOL;
|
|
258
263
|
echo PHP_EOL;
|
|
259
264
|
|
|
265
|
+
// lang
|
|
266
|
+
echo " " . $g . "lang" . $r . PHP_EOL;
|
|
267
|
+
echo " " . $d . "│" . $r . " " . $t->get('HELP_LANG_DESC') . PHP_EOL;
|
|
268
|
+
echo " " . $d . "├── " . $r . "Example: " . $lg . "lang" . $r . $d . " (interactive)" . $r . PHP_EOL;
|
|
269
|
+
echo " " . $d . "└── " . $r . "Example: " . $lg . "lang en" . $r . $d . " (direct)" . $r . PHP_EOL;
|
|
270
|
+
echo PHP_EOL;
|
|
271
|
+
|
|
260
272
|
// help / exit
|
|
261
273
|
echo " " . $d . "─────────────────────────────────────────────────────────────" . $r . PHP_EOL;
|
|
262
|
-
echo " " . $g . "help" . $r . "
|
|
263
|
-
echo " " . $g . "exit" . $r . " / " . $g . "quit" . $r . "
|
|
274
|
+
echo " " . $g . "help" . $r . " " . $t->get('HELP_HELP_DESC') . PHP_EOL;
|
|
275
|
+
echo " " . $g . "exit" . $r . " / " . $g . "quit" . $r . " " . $t->get('HELP_EXIT_DESC') . PHP_EOL;
|
|
264
276
|
echo PHP_EOL;
|
|
265
277
|
}
|
|
266
278
|
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
<?php
|
|
2
|
+
namespace ArtiFrame\Cli\Commands;
|
|
3
|
+
|
|
4
|
+
use ArtiFrame\Cli\Services\Translator;
|
|
5
|
+
|
|
6
|
+
class LangCommand
|
|
7
|
+
{
|
|
8
|
+
private Translator $translator;
|
|
9
|
+
|
|
10
|
+
private const SUPPORTED = [
|
|
11
|
+
'1' => ['code' => 'tr', 'label' => '🇹🇷 Türkçe (TR)'],
|
|
12
|
+
'2' => ['code' => 'en', 'label' => '🇬🇧 English (EN)'],
|
|
13
|
+
'3' => ['code' => 'de', 'label' => '🇩🇪 Deutsch (DE)'],
|
|
14
|
+
'4' => ['code' => 'fr', 'label' => '🇫🇷 Français (FR)'],
|
|
15
|
+
'5' => ['code' => 'es', 'label' => '🇪🇸 Español (ES)'],
|
|
16
|
+
];
|
|
17
|
+
|
|
18
|
+
public function __construct(Translator $translator)
|
|
19
|
+
{
|
|
20
|
+
$this->translator = $translator;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
public function execute(array $args): void
|
|
24
|
+
{
|
|
25
|
+
$current = $this->translator->getLang();
|
|
26
|
+
|
|
27
|
+
// If a language code is passed directly (e.g. `lang en`)
|
|
28
|
+
if (!empty($args[0])) {
|
|
29
|
+
$code = strtolower($args[0]);
|
|
30
|
+
$valid = array_column(self::SUPPORTED, 'code');
|
|
31
|
+
if (!in_array($code, $valid)) {
|
|
32
|
+
echo "❌ " . $this->translator->get('LANG_INVALID', ['code' => $code]) . PHP_EOL;
|
|
33
|
+
echo $this->translator->get('LANG_VALID_LIST') . ': tr, en, de, fr, es' . PHP_EOL;
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
$this->saveAndConfirm($code, $current);
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Interactive picker
|
|
41
|
+
$g = "\033[38;2;0;157;108m";
|
|
42
|
+
$d = "\033[38;2;100;100;100m";
|
|
43
|
+
$w = "\033[1;37m";
|
|
44
|
+
$r = "\033[0m";
|
|
45
|
+
|
|
46
|
+
echo PHP_EOL;
|
|
47
|
+
echo " " . $w . $this->translator->get('LANG_CURRENT') . $r . " " . $g . strtoupper($current) . $r . PHP_EOL;
|
|
48
|
+
echo " " . $d . $this->translator->get('LANG_SELECT') . $r . PHP_EOL;
|
|
49
|
+
echo PHP_EOL;
|
|
50
|
+
|
|
51
|
+
foreach (self::SUPPORTED as $num => $info) {
|
|
52
|
+
$marker = ($info['code'] === $current) ? $g . " ✔" . $r : " ";
|
|
53
|
+
echo " {$marker} [{$num}] " . $info['label'] . PHP_EOL;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
echo PHP_EOL;
|
|
57
|
+
|
|
58
|
+
while (true) {
|
|
59
|
+
echo " " . $this->translator->get('LANG_PROMPT') . " ";
|
|
60
|
+
$choice = trim(fgets(STDIN));
|
|
61
|
+
|
|
62
|
+
if ($choice === '' || $choice === '0') {
|
|
63
|
+
echo " " . $d . $this->translator->get('LANG_UNCHANGED') . $r . PHP_EOL . PHP_EOL;
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if (isset(self::SUPPORTED[$choice])) {
|
|
68
|
+
$this->saveAndConfirm(self::SUPPORTED[$choice]['code'], $current);
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
echo " ❌ " . $this->translator->get('LANG_INVALID_CHOICE') . PHP_EOL;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
private function saveAndConfirm(string $newCode, string $oldCode): void
|
|
77
|
+
{
|
|
78
|
+
$home = getenv('HOME') ?: getenv('USERPROFILE');
|
|
79
|
+
$configFile = $home ? $home . DIRECTORY_SEPARATOR . '.artiframe_lang' : null;
|
|
80
|
+
|
|
81
|
+
if ($configFile) {
|
|
82
|
+
file_put_contents($configFile, $newCode);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
$g = "\033[38;2;0;157;108m";
|
|
86
|
+
$r = "\033[0m";
|
|
87
|
+
|
|
88
|
+
if ($newCode === $oldCode) {
|
|
89
|
+
echo PHP_EOL . " " . $this->translator->get('LANG_ALREADY_SET', ['lang' => strtoupper($newCode)]) . PHP_EOL . PHP_EOL;
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
echo PHP_EOL;
|
|
94
|
+
echo " ✅ " . $this->translator->get('LANG_CHANGED', [
|
|
95
|
+
'old' => strtoupper($oldCode),
|
|
96
|
+
'new' => $g . strtoupper($newCode) . $r,
|
|
97
|
+
]) . PHP_EOL;
|
|
98
|
+
echo " " . $this->translator->get('LANG_RESTART_TIP') . PHP_EOL . PHP_EOL;
|
|
99
|
+
}
|
|
100
|
+
}
|
package/src/Lang/de.php
CHANGED
|
@@ -50,4 +50,42 @@ return [
|
|
|
50
50
|
'ERROR_VERSION_PARSE' => 'Fehler: APP_VERSION in app-version.php konnte nicht gelesen werden.',
|
|
51
51
|
'WARN_VERSION_UNCHANGED' => '⚠️ Warnung: Version ist bereits am Minimum (:version) oder hat sich nicht geändert.',
|
|
52
52
|
'SUCCESS_VERSION' => '✅ Version aktualisiert: :old → :new',
|
|
53
|
+
|
|
54
|
+
// Shell UI
|
|
55
|
+
'SHELL_TYPE_HELP' => 'Geben Sie ' . "\033[38;2;0;157;108m" . 'help' . "\033[0m" . ' für Befehle ein, oder ' . "\033[38;2;0;157;108m" . 'exit' . "\033[0m" . ' zum Beenden.',
|
|
56
|
+
'SHELL_GOODBYE' => 'Auf Wiedersehen. Bauen Sie etwas Großartiges.',
|
|
57
|
+
'SHELL_ERROR' => 'Fehler:',
|
|
58
|
+
|
|
59
|
+
// Help screen
|
|
60
|
+
'HELP_COMMANDS' => 'BEFEHLE',
|
|
61
|
+
'HELP_NEW_DESC' => 'Erstellt ein neues ArtiFrame-Projekt von Grund auf.',
|
|
62
|
+
'HELP_MAKEVIEW_DESC1' => 'Erstellt eine neue View-Datei mit CSS- und JS-Assets.',
|
|
63
|
+
'HELP_MAKEVIEW_DESC2' => 'Der Pfad kann Unterverzeichnisse enthalten (automatisch erstellt).',
|
|
64
|
+
'HELP_MAKEAPI_DESC' => 'Erstellt eine neue API-Endpunkt-Datei.',
|
|
65
|
+
'HELP_MAKEAPI_STANDART' => 'Einzelner Endpunkt (eine Anfrage, eine Antwort).',
|
|
66
|
+
'HELP_MAKEAPI_SWITCH' => 'Mehrfunktions-Endpunkt mit Aktionsrouting.',
|
|
67
|
+
'HELP_MAKECLASS_DESC' => 'Erstellt eine neue PHP-Klassendatei mit Namespace-Vorlage.',
|
|
68
|
+
'HELP_VERSION_DESC1' => 'Verwaltet die semantische Versionsnummer in der Projektkonfiguration.',
|
|
69
|
+
'HELP_VERSION_FORMAT' => 'Versionsformat: MAJOR.MINOR.PATCH (z.B. 2.4.1)',
|
|
70
|
+
'HELP_PATCH_UP' => 'Fehlerbehebungen, kleine Änderungen.',
|
|
71
|
+
'HELP_MINOR_UP' => 'Rückwärtskompatibles neues Feature.',
|
|
72
|
+
'HELP_MAJOR_UP' => 'Brechende Änderungen.',
|
|
73
|
+
'HELP_PATCH_DOWN' => 'Letzten Patch zurücksetzen.',
|
|
74
|
+
'HELP_MINOR_DOWN' => 'Letzte Minor-Version zurücksetzen.',
|
|
75
|
+
'HELP_MAJOR_DOWN' => 'Letzte Major-Version zurücksetzen.',
|
|
76
|
+
'HELP_HELP_DESC' => 'Diese Hilfemeldung anzeigen.',
|
|
77
|
+
'HELP_EXIT_DESC' => 'Die interaktive Shell beenden.',
|
|
78
|
+
|
|
79
|
+
// LangCommand
|
|
80
|
+
'LANG_CURRENT' => 'Aktuelle Sprache:',
|
|
81
|
+
'LANG_SELECT' => 'Nummer eingeben zum Ändern (0 zum Abbrechen):',
|
|
82
|
+
'LANG_PROMPT' => 'Ihre Wahl [1-5] oder 0:',
|
|
83
|
+
'LANG_UNCHANGED' => 'Sprache unverändert.',
|
|
84
|
+
'LANG_CHANGED' => 'Sprache geändert: :old → :new',
|
|
85
|
+
'LANG_ALREADY_SET' => 'Sprache ist bereits auf :lang eingestellt.',
|
|
86
|
+
'LANG_RESTART_TIP' => 'Die Änderung wird ab der nächsten Sitzung wirksam.',
|
|
87
|
+
'LANG_INVALID' => 'Ungültiger Sprachcode: ":code".',
|
|
88
|
+
'LANG_VALID_LIST' => 'Unterstützte Sprachen',
|
|
89
|
+
'LANG_INVALID_CHOICE' => 'Ungültige Auswahl. Bitte eine Zahl zwischen 1 und 5 eingeben.',
|
|
90
|
+
'HELP_LANG_DESC' => 'Spracheinstellung anzeigen und ändern.',
|
|
53
91
|
];
|
package/src/Lang/en.php
CHANGED
|
@@ -50,4 +50,42 @@ return [
|
|
|
50
50
|
'ERROR_VERSION_PARSE' => 'Error: Could not parse APP_VERSION in app-version.php.',
|
|
51
51
|
'WARN_VERSION_UNCHANGED' => '⚠️ Warning: Version is already at minimum (:version) or did not change.',
|
|
52
52
|
'SUCCESS_VERSION' => '✅ Version updated: :old → :new',
|
|
53
|
+
|
|
54
|
+
// Shell UI
|
|
55
|
+
'SHELL_TYPE_HELP' => 'Type ' . "\033[38;2;0;157;108m" . 'help' . "\033[0m" . ' for available commands, or ' . "\033[38;2;0;157;108m" . 'exit' . "\033[0m" . ' to quit.',
|
|
56
|
+
'SHELL_GOODBYE' => 'Goodbye. Build something great.',
|
|
57
|
+
'SHELL_ERROR' => 'Error:',
|
|
58
|
+
|
|
59
|
+
// Help screen
|
|
60
|
+
'HELP_COMMANDS' => 'COMMANDS',
|
|
61
|
+
'HELP_NEW_DESC' => 'Create a new ArtiFrame project from scratch.',
|
|
62
|
+
'HELP_MAKEVIEW_DESC1' => 'Generate a new view file with its paired CSS and JS assets.',
|
|
63
|
+
'HELP_MAKEVIEW_DESC2' => 'The path can use subdirectories (auto-created).',
|
|
64
|
+
'HELP_MAKEAPI_DESC' => 'Generate a new API endpoint file.',
|
|
65
|
+
'HELP_MAKEAPI_STANDART' => 'Single-action endpoint (one request, one response).',
|
|
66
|
+
'HELP_MAKEAPI_SWITCH' => 'Multi-action endpoint with action routing.',
|
|
67
|
+
'HELP_MAKECLASS_DESC' => 'Generate a new PHP class file with namespace boilerplate.',
|
|
68
|
+
'HELP_VERSION_DESC1' => 'Manage the semantic version number stored in your project config.',
|
|
69
|
+
'HELP_VERSION_FORMAT' => 'Version format: MAJOR.MINOR.PATCH (e.g. 2.4.1)',
|
|
70
|
+
'HELP_PATCH_UP' => 'Bug fixes, small tweaks.',
|
|
71
|
+
'HELP_MINOR_UP' => 'New backwards-compat feature.',
|
|
72
|
+
'HELP_MAJOR_UP' => 'Breaking changes.',
|
|
73
|
+
'HELP_PATCH_DOWN' => 'Roll back last patch.',
|
|
74
|
+
'HELP_MINOR_DOWN' => 'Roll back last minor release.',
|
|
75
|
+
'HELP_MAJOR_DOWN' => 'Roll back last major release.',
|
|
76
|
+
'HELP_HELP_DESC' => 'Show this help message.',
|
|
77
|
+
'HELP_EXIT_DESC' => 'Exit the interactive shell.',
|
|
78
|
+
|
|
79
|
+
// LangCommand
|
|
80
|
+
'LANG_CURRENT' => 'Current language:',
|
|
81
|
+
'LANG_SELECT' => 'Enter a number to change (0 to cancel):',
|
|
82
|
+
'LANG_PROMPT' => 'Your choice [1-5] or 0:',
|
|
83
|
+
'LANG_UNCHANGED' => 'Language unchanged.',
|
|
84
|
+
'LANG_CHANGED' => 'Language changed: :old → :new',
|
|
85
|
+
'LANG_ALREADY_SET' => 'Language is already set to :lang.',
|
|
86
|
+
'LANG_RESTART_TIP' => 'The change will take effect from the next session.',
|
|
87
|
+
'LANG_INVALID' => 'Invalid language code: ":code".',
|
|
88
|
+
'LANG_VALID_LIST' => 'Supported languages',
|
|
89
|
+
'LANG_INVALID_CHOICE' => 'Invalid choice. Please enter a number between 1 and 5.',
|
|
90
|
+
'HELP_LANG_DESC' => 'View and change the language preference.',
|
|
53
91
|
];
|
package/src/Lang/es.php
CHANGED
|
@@ -50,4 +50,42 @@ return [
|
|
|
50
50
|
'ERROR_VERSION_PARSE' => 'Error: No se pudo leer APP_VERSION en app-version.php.',
|
|
51
51
|
'WARN_VERSION_UNCHANGED' => '⚠️ Advertencia: La versión ya está en el mínimo (:version) o no cambió.',
|
|
52
52
|
'SUCCESS_VERSION' => '✅ Versión actualizada: :old → :new',
|
|
53
|
+
|
|
54
|
+
// Shell UI
|
|
55
|
+
'SHELL_TYPE_HELP' => 'Escriba ' . "\033[38;2;0;157;108m" . 'help' . "\033[0m" . ' para ver los comandos, o ' . "\033[38;2;0;157;108m" . 'exit' . "\033[0m" . ' para salir.',
|
|
56
|
+
'SHELL_GOODBYE' => 'Hasta luego. Construye algo grandioso.',
|
|
57
|
+
'SHELL_ERROR' => 'Error:',
|
|
58
|
+
|
|
59
|
+
// Help screen
|
|
60
|
+
'HELP_COMMANDS' => 'COMANDOS',
|
|
61
|
+
'HELP_NEW_DESC' => 'Crea un nuevo proyecto ArtiFrame desde cero.',
|
|
62
|
+
'HELP_MAKEVIEW_DESC1' => 'Genera un nuevo archivo de vista con sus recursos CSS y JS.',
|
|
63
|
+
'HELP_MAKEVIEW_DESC2' => 'La ruta puede usar subdirectorios (creados automáticamente).',
|
|
64
|
+
'HELP_MAKEAPI_DESC' => 'Genera un nuevo archivo de punto de conexión API.',
|
|
65
|
+
'HELP_MAKEAPI_STANDART' => 'Endpoint único (una solicitud, una respuesta).',
|
|
66
|
+
'HELP_MAKEAPI_SWITCH' => 'Endpoint multifunción con enrutamiento de acciones.',
|
|
67
|
+
'HELP_MAKECLASS_DESC' => 'Genera un nuevo archivo de clase PHP con plantilla de namespace.',
|
|
68
|
+
'HELP_VERSION_DESC1' => 'Gestiona el número de versión semántica en la configuración del proyecto.',
|
|
69
|
+
'HELP_VERSION_FORMAT' => 'Formato de versión: MAJOR.MINOR.PATCH (ej. 2.4.1)',
|
|
70
|
+
'HELP_PATCH_UP' => 'Correcciones de errores, pequeños ajustes.',
|
|
71
|
+
'HELP_MINOR_UP' => 'Nueva funcionalidad retrocompatible.',
|
|
72
|
+
'HELP_MAJOR_UP' => 'Cambios que rompen la compatibilidad.',
|
|
73
|
+
'HELP_PATCH_DOWN' => 'Revertir el último parche.',
|
|
74
|
+
'HELP_MINOR_DOWN' => 'Revertir la última versión menor.',
|
|
75
|
+
'HELP_MAJOR_DOWN' => 'Revertir la última versión mayor.',
|
|
76
|
+
'HELP_HELP_DESC' => 'Mostrar este mensaje de ayuda.',
|
|
77
|
+
'HELP_EXIT_DESC' => 'Salir del shell interactivo.',
|
|
78
|
+
|
|
79
|
+
// LangCommand
|
|
80
|
+
'LANG_CURRENT' => 'Idioma actual:',
|
|
81
|
+
'LANG_SELECT' => 'Ingrese un número para cambiar (0 para cancelar):',
|
|
82
|
+
'LANG_PROMPT' => 'Su elección [1-5] o 0:',
|
|
83
|
+
'LANG_UNCHANGED' => 'Idioma sin cambios.',
|
|
84
|
+
'LANG_CHANGED' => 'Idioma cambiado: :old → :new',
|
|
85
|
+
'LANG_ALREADY_SET' => 'El idioma ya está configurado en :lang.',
|
|
86
|
+
'LANG_RESTART_TIP' => 'El cambio tendrá efecto desde la próxima sesión.',
|
|
87
|
+
'LANG_INVALID' => 'Código de idioma inválido: ":code".',
|
|
88
|
+
'LANG_VALID_LIST' => 'Idiomas admitidos',
|
|
89
|
+
'LANG_INVALID_CHOICE' => 'Elección inválida. Por favor ingrese un número entre 1 y 5.',
|
|
90
|
+
'HELP_LANG_DESC' => 'Ver y cambiar la preferencia de idioma.',
|
|
53
91
|
];
|
package/src/Lang/fr.php
CHANGED
|
@@ -50,4 +50,42 @@ return [
|
|
|
50
50
|
'ERROR_VERSION_PARSE' => 'Erreur : Impossible de lire APP_VERSION dans app-version.php.',
|
|
51
51
|
'WARN_VERSION_UNCHANGED' => '⚠️ Avertissement : La version est déjà au minimum (:version) ou n\'a pas changé.',
|
|
52
52
|
'SUCCESS_VERSION' => '✅ Version mise à jour : :old → :new',
|
|
53
|
+
|
|
54
|
+
// Shell UI
|
|
55
|
+
'SHELL_TYPE_HELP' => 'Tapez ' . "\033[38;2;0;157;108m" . 'help' . "\033[0m" . ' pour les commandes, ou ' . "\033[38;2;0;157;108m" . 'exit' . "\033[0m" . ' pour quitter.',
|
|
56
|
+
'SHELL_GOODBYE' => 'Au revoir. Construisez quelque chose de grand.',
|
|
57
|
+
'SHELL_ERROR' => 'Erreur :',
|
|
58
|
+
|
|
59
|
+
// Help screen
|
|
60
|
+
'HELP_COMMANDS' => 'COMMANDES',
|
|
61
|
+
'HELP_NEW_DESC' => 'Crée un nouveau projet ArtiFrame de zéro.',
|
|
62
|
+
'HELP_MAKEVIEW_DESC1' => 'Génère un nouveau fichier vue avec ses assets CSS et JS.',
|
|
63
|
+
'HELP_MAKEVIEW_DESC2' => 'Le chemin peut utiliser des sous-répertoires (créés automatiquement).',
|
|
64
|
+
'HELP_MAKEAPI_DESC' => 'Génère un nouveau fichier de point de terminaison API.',
|
|
65
|
+
'HELP_MAKEAPI_STANDART' => 'Point de terminaison unique (une requête, une réponse).',
|
|
66
|
+
'HELP_MAKEAPI_SWITCH' => 'Point de terminaison multi-actions avec routage.',
|
|
67
|
+
'HELP_MAKECLASS_DESC' => 'Génère un nouveau fichier de classe PHP avec un espace de noms.',
|
|
68
|
+
'HELP_VERSION_DESC1' => 'Gère le numéro de version sémantique dans la configuration du projet.',
|
|
69
|
+
'HELP_VERSION_FORMAT' => 'Format de version : MAJOR.MINOR.PATCH (ex. 2.4.1)',
|
|
70
|
+
'HELP_PATCH_UP' => 'Corrections de bogues, petites modifications.',
|
|
71
|
+
'HELP_MINOR_UP' => 'Nouvelle fonctionnalité rétrocompatible.',
|
|
72
|
+
'HELP_MAJOR_UP' => 'Changements non rétrocompatibles.',
|
|
73
|
+
'HELP_PATCH_DOWN' => 'Annuler le dernier correctif.',
|
|
74
|
+
'HELP_MINOR_DOWN' => 'Annuler la dernière version mineure.',
|
|
75
|
+
'HELP_MAJOR_DOWN' => 'Annuler la dernière version majeure.',
|
|
76
|
+
'HELP_HELP_DESC' => 'Afficher ce message d\'aide.',
|
|
77
|
+
'HELP_EXIT_DESC' => 'Quitter le shell interactif.',
|
|
78
|
+
|
|
79
|
+
// LangCommand
|
|
80
|
+
'LANG_CURRENT' => 'Langue actuelle :',
|
|
81
|
+
'LANG_SELECT' => 'Entrez un numéro pour changer (0 pour annuler) :',
|
|
82
|
+
'LANG_PROMPT' => 'Votre choix [1-5] ou 0 :',
|
|
83
|
+
'LANG_UNCHANGED' => 'Langue inchangée.',
|
|
84
|
+
'LANG_CHANGED' => 'Langue modifiée : :old → :new',
|
|
85
|
+
'LANG_ALREADY_SET' => 'La langue est déjà définie sur :lang.',
|
|
86
|
+
'LANG_RESTART_TIP' => 'Le changement prendra effet dès la prochaine session.',
|
|
87
|
+
'LANG_INVALID' => 'Code de langue invalide : ":code".',
|
|
88
|
+
'LANG_VALID_LIST' => 'Langues prises en charge',
|
|
89
|
+
'LANG_INVALID_CHOICE' => 'Choix invalide. Veuillez entrer un chiffre entre 1 et 5.',
|
|
90
|
+
'HELP_LANG_DESC' => 'Afficher et modifier la préférence de langue.',
|
|
53
91
|
];
|
package/src/Lang/tr.php
CHANGED
|
@@ -50,4 +50,42 @@ return [
|
|
|
50
50
|
'ERROR_VERSION_PARSE' => 'Hata: app-version.php içindeki APP_VERSION okunamadı.',
|
|
51
51
|
'WARN_VERSION_UNCHANGED' => '⚠️ Uyarı: Sürüm zaten minimum değerde (:version) veya değişmedi.',
|
|
52
52
|
'SUCCESS_VERSION' => '✅ Sürüm güncellendi: :old → :new',
|
|
53
|
+
|
|
54
|
+
// Shell UI
|
|
55
|
+
'SHELL_TYPE_HELP' => 'Kullanılabilir komutlar için ' . "\033[38;2;0;157;108m" . 'help' . "\033[0m" . ' yazın, çıkmak için ' . "\033[38;2;0;157;108m" . 'exit' . "\033[0m" . '.',
|
|
56
|
+
'SHELL_GOODBYE' => 'Güle güle. Harika şeyler inşa et.',
|
|
57
|
+
'SHELL_ERROR' => 'Hata:',
|
|
58
|
+
|
|
59
|
+
// Help screen
|
|
60
|
+
'HELP_COMMANDS' => 'KOMUTLAR',
|
|
61
|
+
'HELP_NEW_DESC' => 'Sıfırdan yeni bir ArtiFrame projesi oluşturur.',
|
|
62
|
+
'HELP_MAKEVIEW_DESC1' => 'CSS ve JS varlıklarıyla birlikte yeni bir view dosyası oluşturur.',
|
|
63
|
+
'HELP_MAKEVIEW_DESC2' => 'Yol alt dizinleri içerebilir (otomatik oluşturulur).',
|
|
64
|
+
'HELP_MAKEAPI_DESC' => 'Yeni bir API endpoint dosyası oluşturur.',
|
|
65
|
+
'HELP_MAKEAPI_STANDART' => 'Tekil endpoint (bir istek, bir yanıt).',
|
|
66
|
+
'HELP_MAKEAPI_SWITCH' => 'Eylem yönlendirmeli çok işlevli endpoint.',
|
|
67
|
+
'HELP_MAKECLASS_DESC' => 'Namespace şablonuyla yeni bir PHP sınıf dosyası oluşturur.',
|
|
68
|
+
'HELP_VERSION_DESC1' => 'Proje yapılandırmasındaki semantik sürümü yönetir.',
|
|
69
|
+
'HELP_VERSION_FORMAT' => 'Sürüm formatı: MAJOR.MINOR.PATCH (örn. 2.4.1)',
|
|
70
|
+
'HELP_PATCH_UP' => 'Hata düzeltmeleri, küçük değişiklikler.',
|
|
71
|
+
'HELP_MINOR_UP' => 'Geriye dönük uyumlu yeni özellik.',
|
|
72
|
+
'HELP_MAJOR_UP' => 'Kırıcı değişiklikler.',
|
|
73
|
+
'HELP_PATCH_DOWN' => 'Son yamanın geri alınması.',
|
|
74
|
+
'HELP_MINOR_DOWN' => 'Son minör sürümün geri alınması.',
|
|
75
|
+
'HELP_MAJOR_DOWN' => 'Son majör sürümün geri alınması.',
|
|
76
|
+
'HELP_HELP_DESC' => 'Bu yardım mesajını gösterir.',
|
|
77
|
+
'HELP_EXIT_DESC' => 'İnteraktif kabuğu kapatır.',
|
|
78
|
+
|
|
79
|
+
// LangCommand
|
|
80
|
+
'LANG_CURRENT' => 'Mevcut dil:',
|
|
81
|
+
'LANG_SELECT' => 'Değiştirmek için bir numara girin (çıkmak için 0):',
|
|
82
|
+
'LANG_PROMPT' => 'Seçiminiz [1-5] veya 0:',
|
|
83
|
+
'LANG_UNCHANGED' => 'Dil değiştirilmedi.',
|
|
84
|
+
'LANG_CHANGED' => 'Dil değiştirildi: :old → :new',
|
|
85
|
+
'LANG_ALREADY_SET' => 'Dil zaten :lang olarak ayarlı.',
|
|
86
|
+
'LANG_RESTART_TIP' => 'Değişiklik bir sonraki oturumdan itibaren geçerli olacak.',
|
|
87
|
+
'LANG_INVALID' => 'Geçersiz dil kodu: ":code".',
|
|
88
|
+
'LANG_VALID_LIST' => 'Desteklenen diller',
|
|
89
|
+
'LANG_INVALID_CHOICE' => 'Geçersiz seçim. Lütfen 1-5 arasında bir rakam girin.',
|
|
90
|
+
'HELP_LANG_DESC' => 'Dil tercihini görüntüler ve değiştirir.',
|
|
53
91
|
];
|