# Revizuire și programare

Cum sunt planificate, scrise, aprobate și publicate articolele — și unde
rămâi tu în buclă.

## În ce limbă e scris un blog

Fiecare blog publică într-o singură limbă, aleasă în setările blogului. Nu e o
etichetă lipită peste un text englezesc: cel care planifică, cel care scrie și
cel care editează primesc instrucțiunile **în limba aceea**, dintr-un pachet de
prompturi scris în ea — așa că articolul iese ca ceva scris în română, nu ca
ceva tradus în română. Și coada de subiecte e planificată tot în ea: formulările
pe care un cititor chiar le tastează în căutare nu sunt ce obții traducând o
listă de subiecte englezești.

Setarea e și ceea ce i se spune lumii din afară:

- fiecare pagină randată pe server o declară ca `<html lang="...">`,
- în [API-ul de livrare](/ro/docs/delivery-api), `?locale=` are ca valoare
  implicită limba blogului,
- textul `alt` al imaginii reprezentative — pe care un cititor de ecran îl
  anunță în mijlocul articolului — e scris în ea.

| Limba | Tag |
|---|---|
| English (engleză) | `en` |
| Deutsch (germană) | `de` |
| Español (spaniolă) | `es` |
| Français (franceză) | `fr` |
| Italiano (italiană) | `it` |
| Nederlands (neerlandeză) | `nl` |
| Português (portugheză) | `pt` |
| Română | `ro` |

Un site poate avea mai multe bloguri în limbi diferite — unul la `/blog`, altul
la `/blog/ro` — iar fiecare e planificat, scris și servit în limba lui.

:::callout{severity=warning title="Dacă o schimbi, articolele existente merg cu ea"}
Articolele deja publicate trec în limba nouă odată cu blogul, așa că arhiva
rămâne accesibilă și niciun URL nu se strică. Ce *scrie* în ele rămâne așa cum
a fost scris până le regenerezi sau le editezi.

Subiectele rămase în coadă din limba veche sunt păstrate, dar nu mai sunt
folosite — un brief poartă limba în care a fost planificat, iar generarea
consumă doar unul care se potrivește cu blogul. Rămân în coadă, marcate, în caz
că te întorci. Planifică subiecte din nou ca să umpli coada în limba nouă.
:::

Ai nevoie de o limbă care nu e în listă? Cere-o. O limbă înseamnă aici un
pachet de prompturi, nu o schimbare de produs.

## Coada de revizuire

Fiecare articol generat ajunge în starea **Așteaptă aprobare**. Pagina
articolului arată:

- previzualizarea completă, randată (exact componentele pe care le vor
  vedea cititorii),
- **backlinkurile** pe care le poartă articolul — textul de ancoră și
  URL-ul țintă pentru fiecare plasare,
- **istoricul de generare** — fiecare pas din pipeline, cu model, număr de
  tokeni, latență și status.

**Aprobă și publică** face articolul live pe suprafața ta de livrare în mai
puțin de un minut (cache-urile CDN se revalidează într-o fereastră scurtă).
Nimic nu se publică fără un click, decât dacă activezi auto-publicarea.

:::callout{severity=warning title="Auto-publicarea e per blog și e dezactivată implicit"}
Activeaz-o din setările de program ale blogului, când ai încredere în
rezultat. Generările programate merg atunci direct spre publicat. Poți s-o
dezactivezi oricând; articolele deja publicate rămân publicate.
:::

## Coada de subiecte

**Planifică subiecte** îi cere planificatorului brief-uri de articole
bazate pe profilul site-ului tău — titlu, cuvânt cheie țintă, cuvinte cheie
secundare și un plan de structură. Brief-urile ajung *propuse*; tu le aprobi
sau le respingi.

Brief-urile aprobate sunt consumate primele — atât de scheduler, cât și de
butonul **Generează un articol acum** — înainte de orice planificare de
subiecte ad-hoc. Dacă păstrezi câteva brief-uri aprobate în coadă, știi
mereu ce urmează.

## Programe

Fiecare blog are un program:

| Setare | Valori |
|---|---|
| Cadență | săptămânal · la două săptămâni · lunar |
| Articole per rulare | 1–10 |
| Ora publicării | 0–23, în fusul orar al programului |
| Fus orar | orice zonă IANA, ex. `Europe/Bucharest` |
| Pauză | oprește programul fără să-i piardă setările |

Când vine momentul unei rulări, scheduler-ul creează articolul (consumând un
brief aprobat, dacă există unul), îl generează și îl trimite spre revizuire
— sau direct spre publicat, cu auto-publicarea activată. Ora următoarei
rulări e mereu vizibilă pe pagina blogului.

## Cote și comportament la eșec

- Generarea consumă un credit de articol la creare; cota lunară a planului
  tău și contorul de utilizare sunt pe pagina site-ului
  ([planuri și cote](/ro/docs/billing)).
- Când cota se epuizează, programul **se pune singur pe pauză**, în loc să
  eșueze silențios sau să te factureze prin surprindere.
- Dacă un pas de generare eșuează, articolul e marcat *eșuat*, cu eroarea în
  istoricul lui — o rulare eșuată nu publică nimic neterminat.
