Dokumentacija

Lokalizacija

En program v več jezikih: besedila iz katalogov po jezikih, vrstice napolnjene po jeziku, postavitev od desne proti levi.

Program v glavi app navede jezike, v katerih izide. Besedila se preselijo v en katalog na jezik, jezik obiskovalca pa izbere, kateri se prikaže.

Navajanje jezikov

text
1 2 3 app greeting "1.0.0" "A greeting in three languages." locales [en, ar, sl]

en je obvezen. Za vsak jezik je ob programu ploski katalog JSON v locales/<locale>/<app>.json:

json
1 2 3 4 ▼{ "hello": "Hello from Orb", "cities": "{{n}} cities, seeded in your language" }

Uporaba kataloga

lolo
1 2 3 4 ▼(render-ui main { type: stack, direction: vertical, gap: sm, children: [ { type: typography, content: (i18n/t "hello"), variant: h3 }, { type: typography, content: (i18n/t "cities" { n: (array/len ?data) }), variant: small } ] })

(i18n/t "key") in @locale delujeta ob prikazu: sodita v render-ui, nikoli v pogoj, set ali oddajanje. orb validate kataloge primerja s klici: ključ, ki manjka v katerem od navedenih jezikov, nadomestki, ki se ne ujemajo s parametri, in ključi, ki jih nič ne uporablja, so sporočeni. Ključi ob prevajanju dobijo predpono z imenom aplikacije, zato se katalogi številnih uvoženih vedenj združijo brez trkov.

Vrstice po jezikih

Entiteta, shranjena v brskalniku, lahko za vsak jezik napolni drugačne vrstice:

Avtomat stanj

Greeting

on City · states: 2 · transitions: 4
emitsCitiesLoadedemitsCitiesFailedemitsMOVED
INIT
CitiesLoaded
CitiesFailed
INIT
1loading
nowready
Teče v živo

Pozdrav iz Orba

2 mesti, vnesena v tvojem jeziku

Ljubljana

Rijad

std-orb-docex-greeting.lolololo
1app std-orb-docex-greeting "1.0.0" 2"std-orb-docex-greeting — one program in three languages: copy from per-locale catalogs, records seeded per locale." 3locales [en, ar, sl] 4 5orbital GreetingOrbital { 6 entity City [persistent: docex_cities, local] { 7 id : string! 8 name : string! 9 instances [ 10 { id: "C-1", name: "Ljubljana" }, 11 { id: "C-2", name: "Riyadh" } 12 ] 13 instances ar [ 14 { id: "C-1", name: "ليوبليانا" }, 15 { id: "C-2", name: "الرياض" } 16 ] 17 instances sl [ 18 { id: "C-1", name: "Ljubljana" }, 19 { id: "C-2", name: "Rijad" } 20 ] 21 } 22 23 trait Greeting -> City [interaction, collection] { 24 initial: loading 25 26 state loading { 27 INIT -> loading 28 (fetch City { emit: { success: CitiesLoaded, failure: CitiesFailed } }) 29 CitiesLoaded -> ready 30 (emit MOVED { event: "CitiesLoaded" }) 31 (render-ui main { type: stack, direction: vertical, gap: sm, children: [ 32 { type: typography, content: (i18n/t "hello"), variant: h3 }, 33 { type: typography, content: (i18n/t "cities" { n: (array/len ?data) }), variant: small, color: muted }, 34 { type: data-list, entity: ?data, fields: [{ name: "name", label: (i18n/t "city"), variant: h4 }] } 35 ] }) 36 CitiesFailed -> ready 37 (emit MOVED { event: "CitiesFailed" }) 38 (render-ui main { type: alert, variant: error, message: ?error }) 39 } 40 41 state ready { 42 INIT -> loading 43 (emit MOVED { event: "INIT" }) 44 (fetch City { emit: { success: CitiesLoaded, failure: CitiesFailed } }) 45 } 46 47 emits { 48 CitiesLoaded { 49 data : [City] 50 } 51 CitiesFailed { 52 error : string 53 } 54 MOVED -> external { 55 event : string! 56 } 57 @description "Each move names the event it took, so the diagram beside the demo can follow it." 58 } 59 } 60 61 page "/greeting" -> Greeting 62}

instances hrani vrstice privzetega jezika; ko napišeš eno kocko instances <locale>, jo potrebuje vsak drug navedeni jezik. Vsak jezik dobi svojo bazo v brskalniku, zato obiskovalčevi zapisi ostanejo v enem jeziku.

Poti in smer

Spletišče običajno vsak jezik streže pod predpono: /, /ar, /sl. Stran se prikaže v jeziku, ki ga imenuje njena pot, jeziki od desne proti levi, kot je arabščina, pa za celo stran nastavijo dir="rtl". Daljše besedilo, na primer članek ali ta dokumentacija, se napiše enkrat na jezik kot samostojno vedenje, ne kot ključi kataloga.

Pisanje programa v drugem jeziku

Ključne besede, oznake in operatorji jezika obstajajo tudi v arabščini in slovenščini, zato lahko program napišeš v svojem jeziku. Tvoja imena (entitete, lastnosti, stanja, dogodki) se nikoli ne prevajajo, zato se program v tvojem jeziku in njegov angleški dvojček prevedeta v isti .orb. orb i18n vocab izpiše besedišče.

© 2026 Almadar. Ljubljana, Slovenija.