=== Sóc de Poble. Portal de Pobles Connectats ===
Contributors: socdepoble
Donate link: https://socdepoble.org/projecte
Tags: community, village, social network, embed, municipal
Requires at least: 6.8
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 1.1.10
License: AGPL-3.0-or-later
License URI: https://www.gnu.org/licenses/agpl-3.0.html

Portal comunitari rural 100% en Valencià/Català + 5 idiomes (CA, ES, EN, EU, GL) i Traductor Apertium integrat: Xat, Mur, Mercat i Agenda en 3 passos.

== Description ==

= 🌍 100% en Valencià / Català Natiu + 5 Idiomes + Traductor Automàtic Integrat =

* **Nota important sobre l'avís de WordPress.org:** Encara que el directori de WordPress mostre a dalt un avís automàtic dient que l'extensió encara no està traduïda al català (perquè el sistema de WordPress.org assumeix que tots els connectors naixen només en anglés), **Sóc de Poble ja està 100% construït i traduït nativament en Valencià / Català com a llengua principal**.
* **5 idiomes d'interfície inclosos de sèrie:** **Valencià / Català (`ca`)**, **Castellà (`es`)**, **Anglés (`en`)**, **Basc (`eu`)** i **Gallec (`gl`)**, seleccionables en qualsevol moment pel visitant dins de l'aplicació.
* **Traductor Sobirà de Pàgines integrat (Apertium, sense Google):** Inclou a la barra superior un botó **«Traduir»** que tradueix al vol el contingut de les pàgines a molts més idiomes (**Castellà, Anglés, Francés, Gallec, Basc i Alemany**) utilitzant programari lliure (Apertium, nascut a la Universitat d'Alacant), sense enviar dades a Google Translate ni necessitar claus de pagament.

**Sóc de Poble (Enxufe Universal)** converteix qualsevol instal·lació de WordPress —d'un ajuntament, associació cultural, cooperativa agrícola, escola rural, grup d'acció local o col·lectiu veïnal— en una **plaça pública digital viva, sobirana i federada**. Dissenyat des de **La Torre de les Maçanes (l'Alacantí, País Valencià)** sota la filosofia del **Trellat** i l'arquitectura de **Pedra Seca Digital**, porta la tecnologia més avançada al món rural sense perdre l'ànima de poble ni l'humor gràfic de la nostra terra.

= Per què Sóc de Poble? (Filosofia de Pedra Seca i Trellat) =

Els nostres pobles pateixen una doble despoblació: la física i la digital. Quan la vida d'un municipi es dispersa en desenes de grups tancats de multinacionals, la memòria oral es perd, el comerç local s'ofega i la gent gran queda exclosa darrere d'interfícies confuses i algoritmes publicitaris.

**Sóc de Poble** naix per revertir aquesta tendència amb quatre pilars fonamentals:

* **Valencià / Català com a llengua base i matriu cultural:** Tota la interfície, la documentació, les guies d'accessibilitat cognitiva i la memòria de la comunitat estan construïdes en la nostra llengua pròpia com a tronc principal, amb suport multillengua integrat (Valencià/Català, Castellà, Anglés, Basc, Gallec i traducció automàtica lliure de pàgines amb Apertium).
* **Arquitectura de Pedra Seca (Zero Fricció):** Com els marges de pedra seca de les nostres muntanyes, cada bloc encaixa pel seu propi pes sense necessitar ciment innecessari. El connector incrusta l'aplicació modular completa (`<soc-de-poble>`) en una pàgina del teu WordPress mitjançant un sol codi (`[socdepoble_app]`) o el bloc visual **Sóc de Poble**, sense alterar la resta del teu tema ni la base de dades d'usuaris del teu lloc web.
* **Accessibilitat Sènior Extrema (Regla dels 3 Segons):** Tipografia clara (`Noto Sans` local, zero connexions a Google Fonts), contrast d'alta visibilitat pensat per llegir-se a ple sol a la plaça del poble, botons tàctils generosos (`48x48 px`) i navegació intuïtiva tant per a una iaia de 85 anys com per a un tècnic municipal.
* **Sobirania de Dades, Portabilitat i Fedivers Rural (Fediversity):** Dades estructurades obertes (`Schema.org` / `JSON-LD`), exportació directa d'agenda i mercat en formats lliures (`JSON`, `CSV`, `iCal .ics`) i passarel·la de lectura amb el Fedivers (`WebFinger`, `NodeInfo 2.1`, `ActivityPub`).

= Els 6 Mòduls del Poble Connectat =

1. **Xat Veïnal i Comunitats (Entrada Principal):** El punt de trobada viu del poble, amb canals per a l'Ajuntament, Gent del Poble, associacions, la IAIA MarIA i converses privades amb xifratge d'extrem a extrem (`WebCrypto API`).
2. **El Mur del Poble (Bàndols i Vida Veïnal):** El taulell d'anuncis viu del municipi. Comunicats oficials, avisos d'aigua o camins, cròniques de festes, fotografies històriques i debats veïnals ordenats cronològicament, sense algoritmes opacs.
3. **El Mercat Rural de Km 0:** Aparador directe per als productors, forns, almàsseres, apicultors, artesans i comerços del poble per difondre la collita del dia i els productes de proximitat sense comissions ni intermediaris.
4. **L'Agenda i Calendari Comunal:** Festes patronals, aplecs, mercats setmanals, plens municipals, tallers i calendari agrícola compartit, amb descàrrega directa en `.ics`.
5. **La Wiki de Poble i Poblepedia (Arxiu i Memòria Viva):** L'enciclopèdia col·laborativa del terme municipal: toponímia, fonts, masos, receptes tradicionals, oficis i història oral custodiada pel mateix poble.
6. **Directori de Pobles, Comerços i Associacions:** Fitxes verificades de totes les entitats, col·lectius, serveis públics i negocis locals.

= Com funciona a WordPress? (Exemple real: Gent de la Torre) =

* **Un sol codi de substitució (`[socdepoble_app]`):** Només cal crear una pàgina a WordPress i posar el codi `[socdepoble_app]` (o `[socdepoble_app poble="la-torre-de-les-macanes"]`).
* **Plantilla de pantalla completa (`Sóc de Poble · full screen`):** En seleccionar la plantilla inclosa **Sóc de Poble · full screen** al panell dret de la pàgina, el portal ocupa tota la finestra com una aplicació web progressiva (PWA) neta, sense que la capçalera ni el peu del tema de WordPress destorben.
* **Adreces compartibles i previsualitzacions enriquides (Open Graph):** Quan un veí navega pel Xat, el Mur o el Mercat, l'adreça s'actualitza i es pot compartir per WhatsApp, Telegram o Mastodon amb títol, resum i imatge pròpia.
* **Diagnòstic a Salut del Lloc (*Site Health*):** Incorpora comprovacions automàtiques a *Eines > Salut del lloc* per verificar que el paquet d'actius locals (`dist/`) està íntegre i operatiu.

= English Summary (For International Reviewers & Fediverse Auditing) =

**Sóc de Poble** embeds the **Sóc de Poble** rural community web application (`https://socdepoble.org`) inside a WordPress site using the `[socdepoble_app]` shortcode or the **Sóc de Poble** block (`<soc-de-poble>`). Built in Valencian/Catalan as its cultural and linguistic foundation, it provides municipalities, rural cooperatives, and local associations with a Community Chat (`xat`), Village Wall (`mur`), Local Marketplace (`mercat`), Community Calendar (`esdeveniments`), Local Directory (`pobles`), and Wiki (`wikidepoble`), while keeping all JavaScript, CSS, icons, and fonts (`Noto Sans` under SIL Open Font License 1.1 in `dist/fonts/OFL.txt`) bundled locally inside `dist/`.

== External services ==

**Valencià / Català:**
Tots els fitxers d'execució del visor (JavaScript, fulls d'estil CSS, icones i tipografia `Noto Sans`) s'entreguen localment des de la carpeta `dist/` d'aquesta extensió. No es carrega cap script ni tipografia des de xarxes CDN de tercers ni des de Google Fonts. Quan un visitant obri una pàgina que conté el portal **Sóc de Poble**, el navegador es connecta als serveis del projecte **Sóc de Poble** per carregar el contingut comunitari en viu.

**English (WordPress.org Compliance Disclosure):**
All runtime JavaScript, stylesheets, icons, and fonts (`Noto Sans`) are bundled locally inside this plugin's `dist/` directory. When a visitor opens a page that embeds Sóc de Poble, their browser connects to the Sóc de Poble backend services to load live community content (posts, marketplace listings, events, village directory, and user sessions):

* **Sóc de Poble Community Portal & API (`https://socdepoble.org` and `https://api.socdepoble.org`)**
  * **What it is used for:** Delivering live community posts, village directory entries, local marketplace items, cultural events, media attachments, and optional user authentication.
  * **What data is sent and when:** When a visitor views a page containing the `[socdepoble_app]` shortcode or the **Sóc de Poble** block, the browser requests public community data for the selected town (`poble` slug and current route). If a user chooses to sign in, their authentication credentials and session token are sent over HTTPS to authenticate their account.
  * **Terms of Service & Legal Notice:** `https://socdepoble.org/avis-legal`
  * **Privacy Policy:** `https://socdepoble.org/privacitat`

== Link previews per route ==

When **Link previews per route** (`og_remots`) is enabled in **Settings > Sóc de Poble** (disabled by default until an administrator enables it or confirms the notice), the WordPress server performs a read-only `wp_remote_get()` request to `https://socdepoble.org/og-data/` to retrieve public title, summary, and image metadata for shared sub-routes (`/mur/...`, `/mercat/...`, `/esdeveniments/...`, `/pobles/...`), caching the response in WordPress transients (`sdp_og3_*`) for 15 minutes. No visitor personal data, cookies, or IP addresses are forwarded in this server-to-server request.

== Translation service ==

When **Translation proxy (Apertium)** (`traduccio_proxy`) is enabled in **Settings > Sóc de Poble** (disabled by default), visitors and editors can request machine translation of public page content between Valencian/Catalan, Spanish, English, French, and Galician through the free and open-source **Apertium APy** service (default endpoint: `https://www.apertium.org/apy/translate`):

* **What data is sent and when:** Only when a user explicitly clicks the **Translate** (`Traduir`) button on a page, the visible page text and language pair (`langpair`) are sent via `wp_remote_post()` to the configured Apertium endpoint.
* **Service details & policies:** Apertium (`https://www.apertium.org/` — Privacy & documentation: `https://wiki.apertium.org/wiki/Apertium_Documentation`).

== Privacy ==

* The WordPress plugin itself does **not** create custom database tables, does **not** track visitors, does **not** set advertising or analytics cookies, and does **not** send telemetry from your WordPress installation.
* All plugin settings (`socdepoble_opcions`) and temporary Open Graph caches (`sdp_og3_*` transients) are removed cleanly when the plugin is uninstalled via `uninstall.php`.

== Source code and build ==

The compiled production bundle in `dist/soc-de-poble.standalone.js`, `dist/style.css`, and `dist/components/sp-identity-components.js` is built from the open-source **Sóc de Poble** repository using Vite (`vite.standalone.config.js`).

* **Human-readable source code:** `https://github.com/socdepoble/socdepoble` (also available at `https://socdepoble.org/codi-font`)
* **Build instructions:**
  1. Clone the repository: `git clone https://github.com/socdepoble/socdepoble.git`
  2. Install dependencies: `npm ci`
  3. Build the standalone WordPress bundle and sync `wordpress-plugin/dist/`: `npm run build:wp-plugin`
  4. Package and verify the distributable plugin zip: `npm run package:wp-plugin`

== Installation ==

= Com posar Sóc de Poble a la teua web en 3 passos molt fàcils =

1. **Pas 1 · Instal·la el connector i configura el teu poble:**
   * Instal·la i activa **Sóc de Poble. Portal de Pobles Connectats** des de *Connectors > Afegeix nou*.
   * Al menú esquerre de WordPress, ves a **Ajustos ➔ Sóc de Poble**.
   * Escriu el nom públic del teu portal (per exemple, `Gent de la Torre`) i l'identificador del teu poble (per exemple, `la-torre-de-les-macanes`), i prem el botó blau **«Desa els canvis»**.

2. **Pas 2 · Posa Sóc de Poble en una pàgina (tria UNA de les dos maneres):**
   * **Manera A (amb el bloc Codi de substitució / Shortcode — la més ràpida):**
     Ves a **Pàgines ➔ Afegeix una pàgina nova**, posa-li títol (per exemple, *Sóc de Poble*), afig un bloc de **Codi de substitució** (*Shortcode*) i pega **un sol** codi com aquest:
     `[socdepoble_app poble="la-torre-de-les-macanes"]`
     *(Nota: si ja has desat el teu poble al Pas 1, també pots escriure simplement `[socdepoble_app]` sense res més).*
   * **Manera B (amb el bloc visual de l'editor):**
     Dins de l'editor de la pàgina, prem el botó `+` (*Afegeix un bloc*), busca **«Sóc de Poble»**, fes-hi clic i publica la pàgina.

3. **Pas 3 · Fes que ocupe tota la pantalla i siga la pàgina d'inici:**
   * A la columna dreta de l'editor de la pàgina (pestanya **Pàgina**), busca l'apartat **«Plantilla»** (*Template*) i selecciona **«Sóc de Poble · full screen»** (*Sóc de Poble · pantalla completa*). Així el portal es veurà net a pantalla completa, sense les barres del tema antic (vegeu la captura de pantalla #10).
   * Si vols que aquesta pàgina siga la portada principal de la teua web (com en `https://gentdelatorre.net/`), ves a **Ajustos ➔ Lectura**, marca *«Una pàgina estàtica»*, tria la pàgina *Sóc de Poble* com a **Pàgina d'inici** i desa els canvis.

= Opcions avançades del Codi de substitució (només si tens diverses pàgines) =

En el 99% dels casos només necessites posar **un sol** shortcode a la teua pàgina principal (`[socdepoble_app poble="la-torre-de-les-macanes"]`), que obri el portal complet a la seua entrada principal (**el Xat i les Comunitats del poble**, des d'on el veí ja es mou pel Mur, el Mercat, el Calendari o els Pobles).

Només si algun dia vols crear una altra pàgina secundària dins del teu WordPress que s'òbriga directament en un apartat concret, pots afegir l'atribut opcional `ruta_inicial`:

* Per obrir directament al **Xat del poble** (entrada per defecte):
  `[socdepoble_app poble="la-torre-de-les-macanes" ruta_inicial="/xat"]`
* Per obrir directament al **Mur de bàndols i notícies**:
  `[socdepoble_app poble="la-torre-de-les-macanes" ruta_inicial="/mur"]`
* Per obrir directament al **Mercat rural de Km 0**:
  `[socdepoble_app poble="la-torre-de-les-macanes" ruta_inicial="/mercat"]`

== Frequently Asked Questions ==

= Quin codi he de posar exactament a la meua pàgina: un o dos? =

**Només UN.** En la pàgina de WordPress on vulgues mostrar el portal (com la pàgina d'inici de `gentdelatorre.net`), només has de posar **un sol** bloc de *Codi de substitució* amb:
`[socdepoble_app poble="la-torre-de-les-macanes"]`
(canviant `la-torre-de-les-macanes` per l'identificador del teu poble, o posant simplement `[socdepoble_app]` si ja l'has configurat en **Ajustos ➔ Sóc de Poble**).

= Com faig perquè la pàgina es veja a pantalla completa sense les capçaleres del meu tema? =

Quan estigues editant la pàgina a WordPress, mira la columna de la dreta (pestanya **Pàgina**): on posa **Plantilla** (*Template*), canvia la plantilla per defecte i tria **«Sóc de Poble · full screen»** (*Sóc de Poble · pantalla completa*). Després prem **Desa** (vegeu la captura #10).

= Per què el connector té el Valencià / Català com a idioma principal? =

Perquè **Sóc de Poble** naix a les muntanyes alacantines (La Torre de les Maçanes) amb la vocació de preservar i dignificar la nostra llengua i cultura popular en l'entorn digital. Valencià i Català són la mateixa llengua que compartim milions de parlants, i en **Sóc de Poble** ocupa el primer lloc per dret propi, alhora que oferim suport multillengua complet (`ca`, `es`, `en`, `eu`, `gl`) i traductor lliure Apertium perquè cap veí ni visitant quede fora.

= Carrega tipografies o scripts de Google o d'altres multinacionals? =

No. Tota la tipografia (`Noto Sans`), les icones i el codi d'interfície viuen dins de la carpeta `dist/` del mateix connector per garantir la màxima velocitat i el compliment estricte del RGPD europeu.

= Què passa si desinstal·le l'extensió? =

El fitxer `uninstall.php` neteja totes les opcions (`socdepoble_opcions`), avisos i memòries cau temporals (`sdp_og3_*`) sense deixar rastre ni taules òrfenes a la base de dades del teu WordPress.

== Screenshots ==

1. **Vista real del sistema · El Xat i les Comunitats del Poble (`/xat`):** Interfície principal amb el menú lateral a l'esquerra, la columna de converses i canals comunitaris al centre (*Sóc de Poble*, *Javi Llinares*, *Gent de La Torre*, *IAIA MarIA*) i la pàgina de benvinguda a la dreta.
2. **Vista real del sistema · El Mur del Poble (`/mur`):** Graella de publicacions recents amb les targetes quadrades de *Pedra Seca*, cercador i filtres per explorar el mur, el mercat, el calendari i el mapa.
3. **Vista real del sistema · Pobles i Territori (`/pobles`):** Directori de municipis i nodes rurals connectats (*La Torre de les Maçanes*, *Xixona* i la resta de pobles de la comarca).
4. **Vista real del sistema · La Wiki de Poble (`/wikidepoble`):** Espai de treball de tres columnes amb l'arbre del coneixement col·lectiu, llista de documents i lectura editorial.
5. **Vista real del sistema · El Bloc de Notes (`/notes`):** Estudi d'escriptura i publicació amb carpetes, previsualització en viu de la targeta (*Card*) i editor de continguts.
6. **Un Poble Imaginari de la Nostra Zona (`/projecte`):** Recreació fotogràfica d'un poble imaginari de les nostres muntanyes (no correspon a cap municipi concret, sinó que representa el paisatge de bancals i serres de la nostra terra) com a símbol dels pobles connectats.
7. **Disseny en Pedra Seca Digital (`/disseny`):** Il·lustració d'estil còmic del nostre sistema de disseny *Pedra Seca*: els mestres d'obra i les iaies del poble aixecant la interfície web carreu a carreu, amb humor i ofici.
8. **El Mercat de Poble i Productes Locals (`/mercat`):** Il·lustració d'estil còmic del mercat de proximitat i d'economia de Km 0 a la plaça del poble.
9. **Candidatura Europea NLnet · NGI Fediversity (`/page/fediversity`):** Il·lustració d'estil còmic on l'enginyeria popular del poble presenta la seua xarxa federada davant dels avaluadors científics europeus i el cistell de fons per a la sobirania digital rural.
10. **Exemple real de configuració en 1 minut a WordPress (`gentdelatorre.net`):** Un sol bloc de *Codi de substitució* amb `[socdepoble_app poble="la-torre-de-les-macanes"]` al centre i la plantilla **«Sóc de Poble · full screen»** triada a la columna dreta.

== Changelog ==

= 1.1.10 =
* **Guia d'instal·lació pas a pas en Valencià / Català amb exemple real (`gentdelatorre.net`):** Explicació clara en 3 passos del codi únic `[socdepoble_app poble="la-torre-de-les-macanes"]` i de la plantilla **«Sóc de Poble · full screen»**, amb captura real de l'editor de WordPress (#10) i les 6 il·lustracions de còmic de l'univers *Sóc de Poble*.
* **Visor complet v1.10.22:** Empaquetat autònom (`dist/soc-de-poble.standalone.js`) amb navegació per teclat (`IDEA-58`), traductor lliure Apertium (`IDEA-31`), exportació de dades obertes (`JSON`, `CSV`, `iCal .ics`) i passarel·la de lectura Fediversity (`WebFinger`, `NodeInfo 2.1`, `ActivityPub`).
* **Enllaços de la llista de connectors:** *Mostra els detalls* obri la fitxa completa amb descripció, instal·lació, PMF, captures i registre de canvis; `Plugin URI` apunta a `https://socdepoble.org`.

= 1.1.9 =
* **Actualització de seguretat i estandardització:** El visor incrustat incorpora les últimes millores del portal, amb pàgines públiques d'arquitectura oberta, privacitat i governança del projecte.
* **Desinstal·lació neta:** S'eliminen totes les opcions, avisos i memòria cau temporal en desinstal·lar el connector.

= 1.1.8 =
* **Compliment de les directrius de WordPress.org:** El servidor de WordPress no realitza cap connexió externa fins que l'administrador activa explícitament les previsualitzacions per ruta o la traducció al servidor.
* **Codi font i construcció documentats:** Instruccions reproduïbles pas a pas per generar el paquet `dist/` des del repositori públic.

= 1.1.7 =
* **Suport multillengua:** Traduccions completes per a l'administració i el visor en Valencià/Català (`ca`), Castellà (`es_ES`), Anglés (`en_US`), Basc (`eu`) i Gallec (`gl_ES`).

== Upgrade Notice ==

= 1.1.10 =
Guia d'instal·lació didàctica en 3 passos amb l'exemple real de Gent de la Torre ([socdepoble_app poble="la-torre-de-les-macanes"] + plantilla Sóc de Poble · full screen) i galeria de 10 captures.
