AYLICRÉA Das Tuto
AYLICRÉA

Site-Tutorial

Sichtbarkeit

Un view absent de la liste filtrée n’existe pas à l’écran. Pas de Opacity(0) : il n’est pas monté. Live : SiteContentP.s.enableTheme / enablePlatform / enableLocale / enableLocaleText, appliqué aux racines (view_getSelectedUUID) et aux enfants (view_getFolderUUID, dont wrap_text).

Chaîne AND (ordre live)

xServerOpen(content.x)
PanelP.originList(origin)
uuid_page match  (+ uuid_folder pour les enfants)
enable == 1                         si onlyEnable
(mobile && content.mobile) || (desktop && content.desktop)
enableTheme(content)
enablePlatform(content)
enableLocale(content)
enableLocaleText(content)
layer / pop                         racines seulement
tri odr

Les quatre gates theme / platform / locale / loc_text : liste vide = toujours visible. Liste non vide = filtre.

desktop / mobile — 0|1

desktopmobileLarge (isLarge)Small
11visiblevisible
10visiblecaché
01cachévisible
00cachécaché

Émettre desktop: 1, mobile: 1 sauf variante écran. Préférer type_m à un second view desktop-only + mobile-only quand seul le moteur change.

theme[] — "light" | "dark"

Ce n’est pas uuid_theme (ColorScheme). theme[] = gate visibilité.

JSONEffet
[]tout mode
["dark"]seulement dark
["light"]seulement light
["light","dark"]tout mode (équivalent [])

platform[]

Valeurs live : web android ios macos windows (pas linux). Liste vide → toutes. ["web"] = navigateur only.

locale[] — whitelist — outil n°1 phrase / mot

Valeurs : fr en nl es it pt de.

enableLocale:
  liste vide → true
  sinon true ssi P.locale.localeCurrent ∈ content.locale
               ET cette locale est dans DomainP.getLocaleStringList
JSONVisible quand UI =
[]toutes les langues du domain
["fr"]seulement français
["fr","en"]fr ou en
["es"]seulement espagnol

Live (data_api_big_page.json) — mot « Pas » sauf espagnol (l’espagnol a un autre span, ordre différent) :

{
  "title": {
    "fr": "Pas ",
    "en": "Not ",
    "nl": "Niet ",
    "es": "No ",
    "it": "Non ",
    "pt": "Não ",
    "de": "Nicht "
  },
  "locale": ["fr", "en", "nl", "it", "pt", "de"]
}

Span jumeau espagnol only (même folder wrap_text, odr voisin) :

{
  "title": {
    "fr": "Pas ",
    "en": "Not ",
    "nl": "Niet ",
    "es": ", no.",
    "it": "Non ",
    "pt": "Não ",
    "de": "Nicht "
  },
  "locale": ["es"]
}

UI es : le premier span est filtré, le second s’insère. La phrase ne casse pas. Pour un ordre de mots différent, dupliquer le span (ou tout le wrap_text) et gated locale[].

loc_text — INVERSÉ par rapport à une whitelist

String nue "fr" | "en" | … | "". Live exact enableLocaleText :

loc_text vide            → visible
loc_text ∉ locales domain → caché
loc_text == localeCurrent → caché
loc_text != localeCurrent → visible

Donc loc_text: "en" :

UIView
encaché
fr / es / …visible (market getText forcé en en)
IntentionChamp
Visible uniquement en françaislocale: ["fr"] loc_text: ""
Phrase / mot ordre différent par languelocale[] sur chaque variante (wrap_text)
Afficher le libellé anglais source quand l’UI n’est pas l’anglaisloc_text: "en"
Rien de spéciallocale: [] loc_text: ""
Piège. loc_text: "fr" n’est pas « seulement français ». Live, ça cache le view en français. Whitelist = locale: ["fr"].

JSON sûr

{
  "enable": 1,
  "desktop": 1,
  "mobile": 1,
  "theme": [],
  "platform": [],
  "locale": [],
  "loc_text": ""
}

CTA web-only dark-only français :

{
  "enable": 1,
  "desktop": 1,
  "mobile": 1,
  "theme": ["dark"],
  "platform": ["web"],
  "locale": ["fr"],
  "loc_text": ""
}
folderView() applique les mêmes gates aux enfants. Wrap-text : un mot locale:["es"] n’entre pas dans listChild hors espagnol → pas de trou (TextSpan omis). Éditeur : dropdown all remplit la liste — émettre [] pour « partout ». Le site public ne bypass jamais (byPassVisibilityLocal = éditeur).