5
0
mirror of https://github.com/wailsapp/wails.git synced 2025-05-04 20:11:27 +08:00

Add Cymraeg

This commit is contained in:
Lea Anthony 2024-03-18 21:52:39 +11:00
parent 7fcd172387
commit bfabaa50bc
39 changed files with 2703 additions and 70 deletions

View File

@ -0,0 +1,141 @@
# Cais
Mae'r API cais yn cynorthwyo i greu cais gan ddefnyddio fframwaith Wails.
### Newydd
API: `New(appOptions Options) *App`
`New(appOptions Options)` yn creu cais newydd gan ddefnyddio'r opsiynau cais a ddarperir. Mae'n cymhwyso gwerthoedd rhagosodedig ar gyfer opsiynau heb eu pennu, yn eu cyfuno â'r rhai a ddarparwyd, yn eu cychwyn a'n dychwelyd enghraifft o'r cais.
Os bydd gwall yn ystod y cychwyn, caiff y cais ei atal gyda'r neges gwall a ddarperir.
Dylid nodi, os oes enghraifft gyffredinol o gais yn bodoli eisoes, y bydd yr enghraifft honno'n cael ei dychwelyd yn hytrach na chreu un newydd.
```go title="main.go" hl_lines="6-9"
package main
import "github.com/wailsapp/wails/v3/pkg/application"
func main() {
app := application.New(application.Options{
Name: "Demo Ffenestr Gweddarlunydd",
// Opsiynau eraill
})
// Gweddill y cais
}
```
### Cael
`Get()` yn dychwelyd yr enghraifft gyffredinol o'r cais. Mae'n ddefnyddiol pan fydd angen mynediad i'r cais o wahanol rannau o'ch cod.
```go
// Cael enghraifft o'r cais
app := application.Get()
```
### Galluoedd
API: `Capabilities() capabilities.Capabilities`
`Capabilities()` yn adfer map o'r galluoedd sydd gan y cais ar hyn o bryd. Gall y galluoedd fod ynghylch y nodweddion gwahanol y system weithredu sy'n darparu, fel nodweddion gweddarlunydd.
```go
// Cael galluoedd y cais
capabilities := app.Capabilities()
if capabilities.HasNativeDrag {
// Gwneud rhywbeth
}
```
### GetPID
API: `GetPID() int`
`GetPID()` yn dychwelyd ID y Broses y cais.
```go
pid := app.GetPID()
```
### Rhedeg
API: `Run() error`
`Run()` yn dechrau gweithredu'r cais a'i gydrannau.
```go
app := application.New(application.Options{
//options
})
// Rhedeg y cais
err := application.Run()
if err != nil {
// Ymdrin â'r gwall
}
```
### Gadael
API: `Quit()`
`Quit()` yn gadael y cais trwy ddinistrio ffenestri a rhai cydrannau eraill o bosibl.
```go
// Gadael y cais
app.Quit()
```
### AydunDdyryslyd
API: `IsDarkMode() bool`
`IsDarkMode()` yn gwirio a yw'r cais yn rhedeg mewn modd tywyll. Mae'n dychwelyd gwerth boolean yn nodi a yw'r modd tywyll wedi'i alluogi.
```go
// Gwiriwch a yw'r modd tywyll wedi'i alluogi
if app.IsDarkMode() {
// Gwneud rhywbeth
}
```
### Cuddio
API: `Hide()`
`Hide()` yn cuddio ffenestr y cais.
```go
// Cuddio ffenestr y cais
app.Hide()
```
### Dangos
API: `Show()`
`Show()` yn dangos ffenestr y cais.
```go
// Dangos ffenestr y cais
app.Show()
```
--8<--
./docs/cy/API/application_window.md
./docs/cy/API/application_menu.md
./docs/cy/API/application_dialogs.md
./docs/cy/API/application_events.md
./docs/cy/API/application_screens.md
--8<--
## Opsiynau
```go title="pkg/application/application_options.go"
--8<--
../v3/pkg/application/application_options.go
--8<--
```

View File

@ -0,0 +1,67 @@
### Dangos Deialog Ynghylch
API: `ShowAboutDialog()`
Mae `ShowAboutDialog()` yn dangos blwch deialog "Ynghylch". Gall ddangos enw'r
cymhwysiad, disgrifiad ac eicon.
```go
// Dangos y deialog ynghylch
app.ShowAboutDialog()
```
### Gwybodaeth
API: `InfoDialog()`
Mae `InfoDialog()` yn creu ac yn dychwelyd esiampl newydd o `MessageDialog` gyda
`InfoDialogType`. Defnyddir y deialog hon fel arfer i ddangos negeseuon
gwybodaeth i'r defnyddiwr.
### Cwestiwn
API: `QuestionDialog()`
Mae `QuestionDialog()` yn creu ac yn dychwelyd esiampl newydd o `MessageDialog`
gyda `QuestionDialogType`. Defnyddir y deialog hon yn aml i ofyn cwestiwn i'r
defnyddiwr a disgwyl ymateb.
### Rhybudd
API: `WarningDialog()`
Mae `WarningDialog()` yn creu ac yn dychwelyd esiampl newydd o `MessageDialog`
gyda `WarningDialogType`. Fel y mae'r enw yn awgrymu, defnyddir y deialog hon yn
bennaf i ddangos negeseuon rhybudd i'r defnyddiwr.
### Gwall
API: `ErrorDialog()`
Mae `ErrorDialog()` yn creu ac yn dychwelyd esiampl newydd o `MessageDialog` gyda
`ErrorDialogType`. Cynlluniwyd y deialog hon i'w defnyddio pan fydd angen
dangos neges gwall i'r defnyddiwr.
### Agor Ffeil
API: `OpenFileDialog()`
Mae `OpenFileDialog()` yn creu ac yn dychwelyd esiampl newydd o
`OpenFileDialogStruct`. Mae'r deialog hon yn annog y defnyddiwr i ddewis un neu
ragor o ffeiliau o'u system ffeiliau.
### Cadw Ffeil
API: `SaveFileDialog()`
Mae `SaveFileDialog()` yn creu ac yn dychwelyd esiampl newydd o
`SaveFileDialogStruct`. Mae'r deialog hon yn annog y defnyddiwr i ddewis lleoliad
yn eu system ffeiliau lle y dylid cadw ffeil.
### Agor Cyfeiriadur
API: `OpenDirectoryDialog()`
Mae `OpenDirectoryDialog()` yn creu ac yn dychwelyd esiampl newydd o
`MessageDialog` gyda `OpenDirectoryDialogType`. Mae'r deialog hon yn galluogi'r
defnyddiwr i ddewis cyfeiriadur o'u system ffeiliau.

View File

@ -0,0 +1,13 @@
### Ar
API:
`Ar(eventType digwyddiadau.DdigwyddiadweithgangeningApplicationEventType, atebydd func(digwyddiad *Digwyddiad)) func()`
Mae `Ar()` yn cofrestru gwrandäwr digwyddiad ar gyfer digwyddiadau cymhwysiad penodol. Bydd y swyddogaeth atebydd a ddarperir yn cael ei sbarduno pan fydd y digwyddiad cysylltiedig yn digwydd. Mae'r swyddogaeth yn dychwelyd swyddogaeth y gellir ei galw i dynnu'r gwrandäwr.
### CofrestruArgraffwyr
API:
`CofrestruArgraffwyr(eventType digwyddiadau.DdigwyddiadweithgangeningApplicationEventType, atebydd func(digwyddiad *Digwyddiad)) func()`
Mae `CofrestruArgraffwyr()` yn cofrestru atebydd i'w redeg fel crocen yn ystod digwyddiadau penodol. Caiff y crocenau hyn eu rhedeg cyn gwrandawyr sy'n gysylltiedig ag `Ar()`. Mae'r swyddogaeth yn dychwelyd swyddogaeth y gellir ei galw i dynnu'r bâs.

View File

@ -0,0 +1,27 @@
### RegisterContextMenu
API: `RegisterContextMenu(name string, menu *Menu)`
Mae `RegisterContextMenu()` yn cofrestru dewislen cyd-destun gyda enw penodol. Gellir defnyddio'r dewislen hon yn ddiweddarach yn yr ap.
```go
// Creu dewislen newydd
ctxmenu := app.NewMenu()
// Cofrestru'r dewislen fel dewislen cyd-destun
app.RegisterContextMenu("MyContextMenu", ctxmenu)
```
### SetMenu
API: `SetMenu(menu *Menu)`
Mae `SetMenu()` yn gosod y ddewislen ar gyfer yr ap. Ar Mac, bydd hyn yn fod y ddewislen fyd-eang. Ar gyfer Windows a Linux, bydd hyn yn fod y ddewislen ddiofyn ar gyfer unrhyw ffenestr newydd a grëir.
```go
// Creu dewislen newydd
menu := app.NewMenu()
// Gosod y ddewislen ar gyfer yr ap
app.SetMenu(menu)
```

View File

@ -0,0 +1,13 @@
### GetPrimaryScreen
API: `GetPrimaryScreen() (*Sgrin, error)`
Mae `GetPrimaryScreen()` yn dychwelyd y sgrin brif y system.
### GetScreens
API: `GetScreens() ([]*Sgrin, error)`
Mae `GetScreens()` yn dychwelyd gwybodaeth am bob sgrin sydd wedi'i chysylltu â'r system.
Dyma grynodeb byr o'r dulliau allforio yn y `App` strwythur a ddarparwyd. Cofiwch, ar gyfer mwy o swyddogaethau neu ystyriaethau manwl, cyfeiriwch at y cod Go gwirioneddol neu ddogfennaeth fewnol bellach.

View File

@ -0,0 +1,64 @@
Dyma'r testun wedi'i gyfieithu i'r Gymraeg:
### NewWebviewWindow
API: `NewWebviewWindow() *WebviewWindow`
Mae `NewWebviewWindow()` yn creu ffenestr Webview newydd gyda'r opsiynau rhagosodedig, ac yn ei dychwelyd.
```go
// Creu ffenestr webview newydd
window := app.NewWebviewWindow()
```
### NewWebviewWindowWithOptions
API:
`NewWebviewWindowWithOptions(windowOptions WebviewWindowOptions) *WebviewWindow`
Mae `NewWebviewWindowWithOptions()` yn creu ffenestr webview newydd gydag opsiynau custom. Caiff y ffenestr newydd ei ychwanegu at fap o ffenestri a reolir gan y cymhwysiad.
```go
// Creu ffenestr webview newydd gydag opsiynau custom
window := app.NewWebviewWindowWithOptions(WebviewWindowOptions{
Name: "Main",
Title: "Fy Ffenestr",
Width: 800,
Height: 600,
})
```
### OnWindowCreation
API: `OnWindowCreation(callback func(window *WebviewWindow))`
Mae `OnWindowCreation()` yn cofrestru ffwythiant alw-nôl i'w alw pan grëir ffenestr.
```go
// Cofrestru ffwythiant alw-nôl i'w alw pan grëir ffenestr
app.OnWindowCreation(func(window *WebviewWindow) {
// Gwneud rhywbeth
})
```
### GetWindowByName
API: `GetWindowByName(name string) *WebviewWindow`
Mae `GetWindowByName()` yn nôl ac yn dychwelyd ffenestr gyda enw penodol.
```go
// Cael ffenestr drwy ei henw
window := app.GetWindowByName("Main")
```
### CurrentWindow
API: `CurrentWindow() *WebviewWindow`
Mae `CurrentWindow()` yn nôl ac yn dychwelyd cyfeiriad at y ffenestr weithredol yn y cymhwysiad. Os nad oes ffenestr, mae'n dychwelyd nil.
```go
// Cael y ffenestr gyfredol
window := app.CurrentWindow()
```

View File

@ -0,0 +1,50 @@
# Prif Swyddogaethau Trywydd
Mae'r dulliau hyn yn swyddogaethau cymorth i redeg cod ar y prif drywydd. Mae hyn yn
ofynnol pan fyddwch am redeg cod cyfaddas ar y llwyfan UI.
### InvokeSync
API: `InvokeSync(fn func())`
Mae'r swyddogaeth hon yn rhedeg y swyddogaeth a drosglwyddwyd (`fn`) yn ddilynebol. Mae'n defnyddio WaitGroup
(`wg`) i sicrhau bod y prif drywydd yn aros i `fn` swyddogaeth orffen
cyn iddo barhau. Os bydd panig yn digwydd o fewn `fn`, bydd yn cael ei drosglwyddo i'r
swyddogaeth trin panig `PanicHandler`, a ddiffinnir yn opsiynau'r cymhwysiad.
### InvokeSyncWithResult
API: `InvokeSyncWithResult[T any](fn func() T) (res T)`
Mae'r swyddogaeth hon yn gweithio'n debyg i `InvokeSync(fn func())`, fodd bynnag, mae'n rhoi
canlyniad. Defnyddiwch hyn ar gyfer galw unrhyw swyddogaeth gyda un canlyniad yn unig.
### InvokeSyncWithError
API: `InvokeSyncWithError(fn func() error) (err error)`
Mae'r swyddogaeth hon yn rhedeg `fn` yn ddilynebol ac yn dychwelyd unrhyw wall a gynhyrchir gan `fn`.
Sylwch y bydd y swyddogaeth hon yn adfer o banig os bydd un yn digwydd yn ystod
gweithrediad `fn`.
### InvokeSyncWithResultAndError
API:
`InvokeSyncWithResultAndError[T any](fn func() (T, error)) (res T, err error)`
Mae'r swyddogaeth hon yn rhedeg `fn` yn ddilynebol ac yn dychwelyd canlyniad o fath `T` a
gwall.
### InvokeAsync
API: `InvokeAsync(fn func())`
Mae'r swyddogaeth hon yn rhedeg `fn` yn asyng. Mae'n rhedeg y swyddogaeth a roddir ar y
prif drywydd. Os bydd panig yn digwydd o fewn `fn`, bydd yn cael ei drosglwyddo i'r
swyddogaeth trin panig `PanicHandler`, a ddiffinnir yn opsiynau'r cymhwysiad.
---
_Sylw_: Bydd y swyddogaethau hyn yn rhwystro gweithrediad nes bod `fn` wedi gorffen. Mae'n
hanfodol sicrhau nad yw `fn` yn rhwystro. Os bydd angen i chi redeg swyddogaeth sy'n
rhwystro, defnyddiwch `InvokeAsync` yn lle.

View File

@ -0,0 +1,73 @@
# Dewislen
Gellir creu a chynnwys dewislenni yn y rhaglen. Gellir eu defnyddio i greu
dewislenni cyd-destun, dwylo system a dewislenni rhaglen.
I greu dewislen newydd, galwch:
```go
// Creu dewislen newydd
dewislen := app.NewMenu()
```
Mae'r gweithrediadau canlynol ar gael ar y `Dewislen` math:
### Ychwanegu
API: `Ychwanegu(label string) *EitemDewislen`
Mae'r dull hwn yn cymryd `label` o fath `string` fel mewnbwn ac yn ychwanegu
`EitemDewislen` newydd gyda'r label a roddir at y ddewislen. Mae'n dychwelyd yr
`EitemDewislen` a ychwanegwyd.
### YchwaneguSeparwr
API: `YchwaneguSeparwr()`
Mae'r dull hwn yn ychwanegu `EitemDewislen` gwahanol newydd at y ddewislen.
### YchwaneguBlwch
API: `YchwaneguBlwch(label string, galluogedig bool) *EitemDewislen`
Mae'r dull hwn yn cymryd `label` o fath `string` a `galluogedig` o fath `bool`
fel mewnbwn ac yn ychwanegu `EitemDewislen` blwch ticio newydd gyda'r label a'r
cyflwr galluogedig a roddir at y ddewislen. Mae'n dychwelyd yr `EitemDewislen`
a ychwanegwyd.
### YchwaneguRadio
API: `YchwaneguRadio(label string, galluogedig bool) *EitemDewislen`
Mae'r dull hwn yn cymryd `label` o fath `string` a `galluogedig` o fath `bool`
fel mewnbwn ac yn ychwanegu `EitemDewislen` radio newydd gyda'r label a'r
cyflwr galluogedig a roddir at y ddewislen. Mae'n dychwelyd yr `EitemDewislen`
a ychwanegwyd.
### Diweddaru
API: `Diweddaru()`
Mae'r dull hwn yn prosesu unrhyw grwpiau radio ac yn diweddaru'r ddewislen os
na chaiff y rhyngwyneb dewislen ei gychwyn.
### YchwaneguIsddewislen
API: `YchwaneguIsddewislen(s string) *Dewislen`
Mae'r dull hwn yn cymryd `s` o fath `string` fel mewnbwn ac yn ychwanegu
`EitemDewislen` isddewislen newydd gyda'r label a roddir at y ddewislen. Mae'n
dychwelyd yr isddewislen a ychwanegwyd.
### YchwaneguRôl
API: `YchwaneguRôl(rôl Rôl) *Dewislen`
Mae'r dull hwn yn cymryd `rôl` o fath `Rôl` fel mewnbwn, yn ei ychwanegu at y
ddewislen os nad yw'n `nil` ac yn dychwelyd y `Dewislen`.
### SetLabel
API: `SetLabel(label string)`
Mae'r dull hwn yn gosod `label` y `Dewislen`.

View File

@ -0,0 +1,104 @@
# Ardal Hysbysu
Mae'r ardal hysbysu yn cynnwys ardal hysbysu ar amgylchedd bwrdd gwaith, a all
gynnwys eiconau o'r rhaglenni sy'n rhedeg ar hyn o bryd a hysbysiadau system
penodol.
Rydych yn creu ardal hysbysu trwy alw `app.NewSystemTray()`:
```go
// Creu ardal hysbysu newydd
tray := app.NewSystemTray()
```
Mae'r dulliau canlynol ar gael ar y `SystemTray` math:
### SetLabel
API: `SetLabel(label string)`
Mae'r dull `SetLabel` yn gosod label yr ardal hysbysu.
### Label
API: `Label() string`
Mae'r dull `Label` yn adfer label yr ardal hysbysu.
### PositionWindow
API: `PositionWindow(*WebviewWindow, offset int) error`
Mae'r dull `PositionWindow` yn galw'r dulliau `AttachWindow` a `WindowOffset`.
### SetIcon
API: `SetIcon(icon []byte) *SystemTray`
Mae'r dull `SetIcon` yn gosod eicon yr ardal hysbysu system.
### SetDarkModeIcon
API: `SetDarkModeIcon(icon []byte) *SystemTray`
Mae'r dull `SetDarkModeIcon` yn gosod eicon yr ardal hysbysu system pan mewn modd tywyll.
### SetMenu
API: `SetMenu(menu *Menu) *SystemTray`
Mae'r dull `SetMenu` yn gosod dewislen yr ardal hysbysu.
### Destroy
API: `Destroy()`
Mae'r dull `Destroy` yn dinistrio'r enghraifft ardal hysbysu.
### OnClick
API: `OnClick(handler func()) *SystemTray`
Mae'r dull `OnClick` yn gosod y swyddogaeth i'w gweithredu pan fo'r eicon ardal hysbysu wedi'i glicio.
### OnRightClick
API: `OnRightClick(handler func()) *SystemTray`
Mae'r dull `OnRightClick` yn gosod y swyddogaeth i'w gweithredu pan fo'r eicon ardal hysbysu wedi'i glicio â'r dde.
### OnDoubleClick
API: `OnDoubleClick(handler func()) *SystemTray`
Mae'r dull `OnDoubleClick` yn gosod y swyddogaeth i'w gweithredu pan fo'r eicon ardal hysbysu wedi'i glicio ddwywaith.
### OnRightDoubleClick
API: `OnRightDoubleClick(handler func()) *SystemTray`
Mae'r dull `OnRightDoubleClick` yn gosod y swyddogaeth i'w gweithredu pan fo'r eicon ardal hysbysu wedi'i glicio ddwywaith â'r dde.
### AttachWindow
API: `AttachWindow(window *WebviewWindow) *SystemTray`
Mae'r dull `AttachWindow` yn atodi ffenestr i'r ardal hysbysu system. Bydd y ffenestr yn cael ei dangos pan fo'r eicon ardal hysbysu wedi'i glicio.
### WindowOffset
API: `WindowOffset(offset int) *SystemTray`
Mae'r dull `WindowOffset` yn gosod y bwlch mewn picselau rhwng yr ardal hysbysu system a'r ffenestr.
### WindowDebounce
API: `WindowDebounce(debounce time.Duration) *SystemTray`
Mae'r dull `WindowDebounce` yn gosod amser diddymu. Yng nghyd-destun Windows, defnyddir hyn i bennu faint o amser i aros cyn ymateb i ddigwyddiad clic llygoden i fyny ar yr eicon hysbysu.
### OpenMenu
API: `OpenMenu()`
Mae'r dull `OpenMenu` yn agor y ddewislen sy'n gysylltiedig â'r ardal hysbysu system.

View File

@ -0,0 +1,116 @@
# Ffenestr
I greu ffenestr, defnyddiwch
[Application.NewWebviewWindow](application.md#newwebviewwindow) neu
[Application.NewWebviewWindowWithOptions](application.md#newwebviewwindowwithoptions).
Mae'r cyntaf yn creu ffenestr gyda nodweddion rhagosodedig, tra bod yr olaf yn
caniatáu i chi bennu opsiynau wedi'u haddasu.
Mae'r dulliau hyn yn galladwy ar y gwrthrych WebviewWindow a ddychwelir:
### SetTitle
API: `SetTitle(teitl string) *WebviewWindow`
Mae'r dull hwn yn diweddaru teitl y ffenestr i'r llinyn a ddarperir. Mae'n dychwelyd
y gwrthrych WebviewWindow, gan ganiatáu i ddulliau gael eu cadwyn.
### Enw
API: `Enw() string`
Mae'r swyddogaeth hon yn dychwelyd enw'r WebviewWindow.
### SetSize
API: `SetSize(lled, uchder int) *WebviewWindow`
Mae'r dull hwn yn gosod maint y WebviewWindow i'r lled a'r uchder a ddarperir. Os
yw'r dimensiynau a ddarparwyd yn rhagori ar y cyfyngiadau, mae'n eu haddasu'n briodol.
### SetAlwaysOnTop
API: `SetAlwaysOnTop(b bool) *WebviewWindow`
Mae'r swyddogaeth hon yn gosod y ffenestr i aros ar y brig yn seiliedig ar y blaen
llinyn a ddarperir.
### Dangos
API: `Dangos() *WebviewWindow`
Mae'r dull `Dangos` yn cael ei ddefnyddio i wneud y ffenestr yn weladwy. Os
nad yw'r ffenestr yn rhedeg, mae'n gwahodd y dull `rhedeg` i ddechrau'r ffenestr
ac yna'n ei gwneud yn weladwy.
### Cuddio
API: `Cuddio() *WebviewWindow`
Mae'r dull `Cuddio` yn cael ei ddefnyddio i guddio'r ffenestr. Mae'n gosod y
statws cudd o'r ffenestr i wir ac yn lledu'r digwyddiad cuddio ffenestr.
### SetURL
API: `SetURL(s string) *WebviewWindow`
Mae'r dull `SetURL` yn cael ei ddefnyddio i osod URL y ffenestr i'r llinyn URL a ddarparwyd.
### SetZoom
API: `SetZoom(mewnosod float64) *WebviewWindow`
Mae'r dull `SetZoom` yn gosod lefel swm cynnwys y ffenestr i'r lefel mewnosod a ddarparwyd.
### GetZoom
API: `GetZoom() float64`
Mae'r swyddogaeth `GetZoom` yn dychwelyd y lefel swm bresennol o gynnwys y ffenestr.
### GetScreen
API: `GetScreen() (*Screen, error)`
Mae'r dull `GetScreen` yn dychwelyd y sgrin lle mae'r ffenestr yn cael ei harddangos.
### SetFrameless
API: `SetFrameless(frameless bool) *WebviewWindow`
Mae'r swyddogaeth hon yn cael ei defnyddio i dynnu'r ffrâm a bar teitl y ffenestr.
Mae'n toglo'r framelessness o'r ffenestr yn unol â'r gwerth boolean a ddarperir
(gwir ar gyfer frameless, ffug ar gyfer ffrâm).
### RegisterContextMenu
API: `RegisterContextMenu(enw string, dewislen *Dewislen)`
Mae'r swyddogaeth hon yn cael ei defnyddio i gofrestru dewislen cyd-destun ac
yn ei neilltuo i'r enw a ddarparwyd.
### NativeWindowHandle
API: `NativeWindowHandle() (uintptr, error)`
Mae'r swyddogaeth hon yn cael ei defnyddio i nodi'r handlen ffenestr brodorol
ar gyfer y ffenestr.
### Ffocws
API: `Ffocws()`
Mae'r swyddogaeth hon yn cael ei defnyddio i ffocysu'r ffenestr.
### SetEnabled
API: `SetEnabled(galluogwyd bool)`
Mae'r swyddogaeth hon yn cael ei defnyddio i alluogi/analluogi'r ffenestr yn
seiliedig ar y gwerth boolean a ddarperir.
### SetAbsolutePosition
API: `SetAbsolutePosition(x int, y int)`
Mae'r swyddogaeth hon yn gosod y safle absoliwt o'r ffenestr yn y sgrin.

View File

@ -0,0 +1,55 @@
# Croniclau
<!--
Bydd pob newid sylweddol i'r prosiect hwn yn cael ei ddogfennu yn y ffeil hon.
Mae'r fformat yn seiliedig ar [Cadw Croniclau](https://keepachangelog.com/en/1.0.0/),
ac mae'r prosiect hwn yn cydymffurfio â [Fersiwneiddio Semantig](https://semver.org/spec/v2.0.0.html).
- `Ychwanegwyd` ar gyfer nodweddion newydd.
- `Newidiwyd` ar gyfer newidiadau mewn swyddogaeth bresennol.
- `Wedi Dibrisio` ar gyfer nodweddion a fydd yn cael eu dileu yn fuan.
- `Tynnwyd` ar gyfer nodweddion a gafodd eu tynnu yn awr.
- `Wedi Trwsio` ar gyfer unrhyw ddatrysiadau grwydro.
- `Diogelwch` os oes agoreiddiadau diamddiffyn.
-->
## [Heb ei ryddhau]
### Ychwanegwyd
- [darwin] ychwanegu Digwyddiad ApplicationShouldHandleReopen i fedru ymdrin â chlicio ar yr eicon doc gan @5aaee9 yn [#2991](https://github.com/wailsapp/wails/pull/2991)
- [darwin] ychwanegu getPrimaryScreen/getScreens i impl gan @tmclane yn [#2618](https://github.com/wailsapp/wails/pull/2618)
- [darwin] ychwanegu opsiwn ar gyfer dangos y bar offer mewn modd sgrin llawn ar macOS gan [@fbbdev](https://github.com/fbbdev) yn [#3282](https://github.com/wailsapp/wails/pull/3282)
- [linux] ychwanegu rhesymeg onKeyPress i drosi allwedd linux i gyflymydd gan @[Atterpac](https://github.com/Atterpac) yn [#3022](https://github.com/wailsapp/wails/pull/3022])
- [linux] ychwanegu tasg `rhedeg:linux` gan [@marcus-crane](https://github.com/marcus-crane) yn [#3146](https://github.com/wailsapp/wails/pull/3146)
- allforio dull `SetIcon` gan @almas1992 yn [PR](https://github.com/wailsapp/wails/pull/3147)
- Gwella `OnShutdown` gan @almas1992 yn [PR](https://github.com/wailsapp/wails/pull/3189)
- adfer dull `ToggleMaximise` yn y rhyngwyneb `Window` gan [@fbbdev](https://github.com/fbbdev) yn [#3281](https://github.com/wailsapp/wails/pull/3281)
### Wedi Trwsio
- Wedi trwsio prosesau zombie wrth weithio mewn modd datblygu drwy ddiweddaru i'r diweddaraf gan [Atterpac](https://github.com/atterpac) yn [#3320](https://github.com/wailsapp/wails/pull/3320).
- Wedi trwsio ffynhonnell ffeil webkit appimage gan [Atterpac](https://github.com/atterpac) yn [#3306](https://github.com/wailsapp/wails/pull/3306).
- Wedi trwsio Doctor fygythiad pecyn apt gan [Atterpac](https://github.com/Atterpac) yn [#2972](https://github.com/wailsapp/wails/pull/2972).
- Wedi trwsio'r cais wedi rhewi wrth ddod allan (Darwin) gan @5aaee9 yn [#2982](https://github.com/wailsapp/wails/pull/2982)
- Wedi trwsio lliwiau cefndir yr enghreifftiau ar Windows gan [mmgvh](https://github.com/mmghv) yn [#2750](https://github.com/wailsapp/wails/pull/2750).
- Wedi trwsio dewislenni cyd-destun rhagosodedig gan [mmgvh](https://github.com/mmghv) yn [#2753](https://github.com/wailsapp/wails/pull/2753).
- Wedi trwsio gwerth hecsadegol ar gyfer bysellau saeth ar Darwin gan [jaybeecave](https://github.com/jaybeecave) yn [#3052](https://github.com/wailsapp/wails/pull/3052).
- Gosod llusgo-a-gollwng ar gyfer Windows i weithio. Ychwanegwyd gan [@pylotlight](https://github.com/pylotlight) yn [PR](https://github.com/wailsapp/wails/pull/3039)
- Wedi trwsio bygiau ar gyfer linux yn y meddyg os nad oes gan y defnyddiwr y gyrwyr priodol wedi'u gosod. Ychwanegwyd gan [@pylotlight](https://github.com/pylotlight) yn [PR](https://github.com/wailsapp/wails/pull/3032)
- Trwsio graddio dpi wrth gychwyn (windows). Newidiwyd gan @almas1992 yn [PR](https://github.com/wailsapp/wails/pull/3145)
- Trwsio'r llinell amnewid yn `go.mod` i ddefnyddio llwybrau cymharol - Trwsio llwybrau Windows gyda gofodau gan @leaanthony.
- Trwsio gweithredu clicio Maclanwad system wrth ddim cysylltiedig â ffenestr gan [thomas-senechal](https://github.com/thomas-senechal) yn PR [#3207](https://github.com/wailsapp/wails/pull/3207)
- Trwsio adeiladu Windows yn methu oherwydd opsiwn anhysbys gan [thomas-senechal](https://github.com/thomas-senechal) yn PR [#3208](https://github.com/wailsapp/wails/pull/3208)
- Trwsio URL sylfaenol anghywir wrth agor ffenestr ddwywaith gan @5aaee9 yn PR [#3273](https://github.com/wailsapp/wails/pull/3273)
- Trwsio trefn brigiau os yn y dull `WebviewWindow.Restore` gan [@fbbdev](https://github.com/fbbdev) yn [#3279](https://github.com/wailsapp/wails/pull/3279)
- Cyfrifo `startURL` yn gywir ar draws galwadau lluosog `GetStartURL` pan fo `FRONTEND_DEVSERVER_URL` yn bresennol. [#3299](https://github.com/wailsapp/wails/pull/3299)
### Newidiwyd
### Tynnwyd
### Wedi Dibrisio
### Diogelwch

View File

@ -0,0 +1,20 @@
# Newidiadau ar gyfer v3
!!! note
Mae hwn ar hyn o bryd yn ddampio meddwl heb ei drefnu o newidiadau. Bydd yn cael ei drefnu i fformat mwy darllenadwy yn fuan.
--8<--
./docs/en/development/changes_events.md
./docs/en/development/changes_window.md
./docs/en/development/changes_systray.md
./docs/en/development/changes_bindings.md
./docs/en/development/changes_dragndrop.md
./docs/en/development/changes_context_menus.md
./docs/en/development/changes_dialogs.md
./docs/en/development/changes_clipboard.md
./docs/en/development/changes_wml.md
./docs/en/development/changes_plugins.md
./docs/en/development/changes_enums.md
./docs/en/development/changes_logging.md
./docs/en/development/changes_misc.md
--8<--

View File

@ -0,0 +1,87 @@
Dyma'r cyfieithiad i'r gymraeg:
## Rhwymedigaethau
Mae rhwymedigaethau yn gweithio mewn modd tebyg i v2, drwy ddarparu ffordd i rwymo
dulliau strwythur i'r rhyngwyneb blaen. Gellir eu galw yn y rhyngwyneb blaen gan
ddefnyddio'r wraperi rhwymedigaeth a gynhyrchwyd gan y gorchymyn `wails3 generate bindings`:
```javascript
// @ts-check
// Mae'r ffeil hon wedi'i chynhyrchu'n awtomatig. PEIDIWCH Â'I GOLYGU
import { main } from "./models";
window.go = window.go || {};
window.go.main = {
GreetService: {
/**
* GreetService.Greet
* Mae Greet yn cyfarch rhywun
* @param name {string}
* @returns {Promise<string>}
**/
Greet: function (name) {
wails.CallByID(1411160069, ...Array.prototype.slice.call(arguments, 0));
},
/**
* GreetService.GreetPerson
* Mae GreetPerson yn cyfarch rhywun
* @param person {main.Person}
* @returns {Promise<string>}
**/
GreetPerson: function (person) {
wails.CallByID(4021313248, ...Array.prototype.slice.call(arguments, 0));
},
},
};
```
Mae dulliau rhwymo wedi'u cuddio'n ddiofyn, ac maent yn cael eu hadnabod gan IDs uint32,
a gyfrifir gan ddefnyddio'r [algorithm hasio FNV](https://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function).
Mae hyn er mwyn atal enw'r dull rhag cael ei ddatgelu mewn adeiladau cynhyrchiol. Mewn
modd dadfygio, mae'r IDs dull yn cael eu logio ynghyd â'r ID a gyfrifwyd o'r dull
i helpu i ddadfygio. Os ydych chi am ychwanegu haen arall o guddio, gallwch
ddefnyddio'r opsiwn `BindAliases`. Mae hyn yn caniatáu ichi bennu map o IDs alias i
IDs dull. Pan fydd y rhyngwyneb blaen yn galw dull gan ddefnyddio ID, bydd yr ID dull
yn cael ei chwilio yn y map alias yn gyntaf am gywiro. Os nad yw'n ei ganfod,
mae'n tybio mai ID dull safonol yw ac yn ceisio canfod y dull yn y ffordd arferol.
Enghraifft:
```go
app := application.New(application.Options{
Bind: []any{
&GreetService{},
},
BindAliases: map[uint32]uint32{
1: 1411160069,
2: 4021313248,
},
Assets: application.AssetOptions{
Handler: application.AssetFileServerFS(assets),
},
Mac: application.MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: true,
},
})
```
Nawr gallwn alw gan ddefnyddio'r alias hwn yn y rhyngwyneb blaen: `wails.Call(1, "byd!")`.
### Galwadau anniogel
Os nad ydych chi'n poeni am eich galwadau yn cael eu cyhoeddi mewn testun plaen yn eich binari
ac nid oes gennych fwriad o ddefnyddio [garble](https://github.com/burrowers/garble), yna
gallwch ddefnyddio'r dull `wails.CallByName()` anniogel. Mae'r dull hwn yn cymryd enw
llawn cymhwysol y dull i'w alw a'r arguments i'w pasio iddo.
Enghraifft:
```go
wails.CallByName("main.GreetService.Greet", "byd!")
```
!!! angen gofal
Darperir hwn dim ond fel dull cyfleustra ar gyfer datblygu. Ni chyngherir i'w ddefnyddio mewn cynhyrchiad.

View File

@ -0,0 +1,3 @@
## ClipBoard
Mae API y clipfwrdd wedi'i symleiddio. Mae bellach un gwrthrych `Clipboard` y gellir ei ddefnyddio i ddarllen a chyflwyno i'r clipfwrdd. Mae'r gwrthrych `Clipboard` ar gael yn Go ac JS. `SetText()` i osod y testun a `Text()` i gael y testun.

View File

@ -0,0 +1,18 @@
## Dewislenni Cyd-destun
Mae dewislenni cyd-destun yn ddewislenni cyd-destunol a ddangosir pan fydd y
defnyddiwr yn clicio'n dde ar elfen. Mae creu dewislen gyd-destun yr un peth â
chreu dewislen safonol, gan ddefnyddio `app.NewMenu()`. I wneud y ddewislen
gyd-destun ar gael i ffenestr, galwch `window.RegisterContextMenu(name, menu)`.
Bydd y enw yn yr id o'r ddewislen gyd-destun ac a ddefnyddir gan y rhaglen
wynebu.
I nodi bod gan elfen ddewislen gyd-destun, ychwanegwch y priodoledd
`data-contextmenu` at yr elfen. Dylai gwerth y priodoledd hwn fod yn enw o
ddewislen gyd-destun a gofrestrwyd yn flaenorol gyda'r ffenestr.
Mae'n bosibl cofrestru dewislen gyd-destun ar lefel y cymhwysiad, gan ei
gwneud ar gael i bob ffenestr. Gellir gwneud hyn gan ddefnyddio
`app.RegisterContextMenu(name, menu)`. Os na ellir dod o hyd i ddewislen
gyd-destun ar lefel y ffenestr, bydd y dewislenni cyd-destun cymhwyso yn cael
eu gwirio. Ceir demo o hyn yn `v3/examples/contextmenus`.

View File

@ -0,0 +1,25 @@
## Sgyrsiau
Mae sgyrsiau bellach ar gael yn JavaScript!
### Ffenestri
Nid yw botymau sgyrsiau yn Windows yn ffurfweddadwy ac yn gyson yn dibynnu ar y
math o sgwrs. I drîgeru galwad enw pan fo botwm yn cael ei wasgu, crëwch botwm
â'r un enw â'r botwm yr ydych am gael y galwad enw i'w gysylltu ag ef.
Enghraifft: Crëwch fotwm â'r label `Ok` a defnyddio `OnClick()` i osod y
dull galwad enw:
```go
dialog := app.QuestionDialog().
SetTitle("Diweddaru").
SetMessage("Mae'r botwm canslo yn cael ei ddewis pan fo'r bys dianc yn cael ei wasgu")
ok := dialog.AddButton("Ok")
ok.OnClick(func() {
// Gwneud rhywbeth
})
no := dialog.AddButton("Canslo")
dialog.SetDefaultButton(ok)
dialog.SetCancelButton(no)
dialog.Show()
```

View File

@ -0,0 +1,8 @@
## Llusgo a Gollwng
Gellir galluogi llusgo a gollwng brodorol fesul ffenest. Yn syml, gosodwch yr
opsiwn cyflunio ffenest `EnableDragAndDrop` i `true` a bydd y ffenest yn
caniatáu i ffeiliau gael eu llusgoi arni. Pan fydd hyn yn digwydd, bydd y
digwyddiad `events.FilesDropped` yn cael ei yrru. Gellir yna nôl yr enwau
ffeil o `WindowEvent.Context()` gan ddefnyddio'r dull `DroppedFiles()`. Mae
hwn yn dychwelyd sleis o linynnau yn cynnwys yr enwau ffeil.

View File

@ -0,0 +1,41 @@
#### Enawau
Yng Ngo, mae enawau yn aml yn cael eu diffinio fel math a set o gysonau. Er enghraifft:
```go
type MyEnum int
const (
MyEnumOne MyEnum = iota
MyEnumTwo
MyEnumThree
)
```
Oherwydd anghydnawsedd rhwng Go a JavaScript, ni ellir defnyddio mathau custom mewn
ffordd hon. Y strategaeth orau yw defnyddio alias math ar gyfer float64:
```go
type MyEnum = float64
const (
MyEnumOne MyEnum = iota
MyEnumTwo
MyEnumThree
)
```
Yn JavaScript, gallwch chi wedyn ddefnyddio'r canlynol:
```js
const MyEnum = {
MyEnumOne: 0,
MyEnumTwo: 1,
MyEnumThree: 2,
};
```
- Pam defnyddio `float64`? Oni allwn ni ddefnyddio `int`?
- Oherwydd nad oes gan JavaScript gysyniad o `int`. Mae popeth yn `number`, sy'n cyfieithu i `float64` yn Go. Mae hefyd cyfyngiadau
ar daflu mathau yn pecyn adlewyrchu Go, sy'n golygu nad yw defnyddio `int` yn
gweithio.

View File

@ -0,0 +1,39 @@
## Digwyddiadau
Yn v3, mae 3 math o ddigwyddiadau:
- Digwyddiadau Cymhwysiad
- Digwyddiadau Ffenestr
- Digwyddiadau Cyfaddas
### Digwyddiadau Cymhwysiad
Mae digwyddiadau cymhwysiad yn ddigwyddiadau a allbynir gan y cymhwysiad. Mae'r digwyddiadau hyn yn cynnwys digwyddiadau brodorol fel `ApplicationDidFinishLaunching` ar macOS.
### Digwyddiadau Ffenestr
Mae digwyddiadau ffenestr yn ddigwyddiadau a allbynir gan ffenestr. Mae'r digwyddiadau hyn yn cynnwys digwyddiadau brodorol fel `WindowDidBecomeMain` ar macOS. Diffinnir digwyddiadau cyffredin hefyd, fel y maent yn gweithio ar draws platfformau, e.e. `WindowClosing`.
### Digwyddiadau Cyfaddas
Mae'r digwyddiadau y mae'r defnyddiwr yn eu diffinio yn cael eu galw `WailsEvents`. Mae hyn er mwyn eu gwahaniaethu o'r gwrthrych `Event` a ddefnyddir i gyfathrebu gyda'r porwr. Mae WailsEvents bellach yn wrthrychau sy'n erynu holl fanylion digwyddiad. Mae hyn yn cynnwys enw'r digwyddiad, y data, a ffynhonnell y digwyddiad.
Mae'r data sy'n gysylltiedig â WailsEvent bellach yn un gwerth. Os oes angen mwy nag un gwerth, gellir defnyddio strwythur.
### Galwadau digwyddiad a llofnod swyddogaeth `Emit`
Mae llofnodion y galwadau digwyddiad (fel y defnyddir gan `On`, `Once` & `OnMultiple`) wedi newid. Yn v2, naeth y swyddogaeth alwad dderbyn data dewisol. Yn v3, mae'r swyddogaeth alwad yn derbyn gwrthrych `WailsEvent` sy'n cynnwys yr holl ddata sy'n berthnasol i'r digwyddiad.
Yn yr un modd, mae'r swyddogaeth `Emit` wedi newid. Yn lle cymryd enw a data dewisol, mae'n cymryd un gwrthrych `WailsEvent` y bydd yn ei allbynnu.
### `Off` a `OffAll`
Yn v2, byddai galwadau `Off` a `OffAll` yn tynnu digwyddiadau i ffwrdd yn JS ac yn Go. Oherwydd natur aml-ffenestr v3, mae hyn wedi newid fel bod y dulliau hyn ond yn berthnasol i'r cyd-destun y'u galwyd. Er enghraifft, os ydych yn galw `Off` mewn ffenestr, dim ond digwyddiadau ar gyfer y ffenestr honno y bydd yn eu tynnu. Os ydych yn defnyddio `Off` yn Go, dim ond digwyddiadau ar gyfer Go y bydd yn eu tynnu.
### Bachau
Mae Bachau Digwyddiad yn nodwedd newydd yn v3. Maent yn caniatáu i chi fachlu i mewn i'r system ddigwyddiadau a chyflawni gweithredoedd pan fydd digwyddiadau penodol yn cael eu hallbynnu. Er enghraifft, gallwch fachlu i mewn i'r digwyddiad `WindowClosing` a chyflawni rhywfaint o lanhau cyn i'r ffenestr gau. Gellir cofrestru bachau ar lefel y cymhwysiad neu ar lefel y ffenestr gan ddefnyddio `RegisterHook`. Bydd bachau lefel cymhwysiad ar gyfer digwyddiadau cymhwysiad. Bydd bachau lefel ffenestr ond yn cael eu galw ar gyfer y ffenestr y'u cofrestrir.
### Nodiadau datblygwr
Pan allbynwch ddigwyddiad yn Go, bydd yn dosbarthu'r digwyddiad i wrrandawyr Go lleol a hefyd i bob ffenestr yn y cymhwysiad. Pan allbynwch ddigwyddiad yn JS, mae'n nawr yn anfon y digwyddiad at y cymhwysiad. Caiff hwn ei brosesu fel petai wedi ei allbynnu yn Go, fodd bynnag bydd ID y anfonwr yn bod hwnnw o'r ffenestr.

View File

@ -0,0 +1,6 @@
### Cofnodi
Roedd cofnodi yn v2 yn ddryslyd gan fod cofnodion cymhwysiad a chofnodion system (mewnol) yn defnyddio'r un cofnodwr. Rydym wedi ei symleiddio fel a ganlyn:
- Mae cofnodion mewnol yn cael eu trin nawr gan ddefnyddio'r cofnodwr `slog` safonol Go. Caiff hwn ei ffurfweddu gan ddefnyddio'r opsiwn `logger` yn yr opsiynau cymhwysiad. Yn ddiofyn, mae hwn yn defnyddio'r cofnodwr [tint](https://github.com/lmittmann/tint).
- Gellir cyflawni cofnodion cymhwysiad nawr trwy'r ciplug `log` newydd sy'n defnyddio `slog` o dan y rhyngwyneb. Mae'r ciplug hwn yn darparu API syml ar gyfer cofnodi i'r consol. Mae ar gael yn y naill iaith Go a JS.

View File

@ -0,0 +1,41 @@
### Misc
## Opsiynau Cymhwyso Windows
### WndProcInterceptor
Os caiff hwn ei osod, bydd WndProc yn cael ei ychwanegu ac fe gaiff y swyddogaeth ei galw.
Mae hyn yn caniatáu i chi ddelio â negeseuon Windows yn uniongyrchol. Dylai'r swyddogaeth
fod â'r llofnod canlynol:
```go
func(hwnd uintptr, msg uint32, wParam, lParam uintptr) (returnValue uintptr, shouldReturn)
```
Dylid gosod y gwerth `shouldReturn` i `true` os dylai'r `returnValue` gael ei
ddychwelyd gan y prif ddull wndProc. Os caiff ei osod i `false`, bydd y gwerth
dychwelyd yn cael ei anwybyddu a bydd y neges yn parhau i gael ei phrosesu gan y prif
ddull wndProc.
## Cuddio'r Ffenestr wrth Gau + OnBeforeClose
Yn v2, roedd y fflag `HideWindowOnClose` i guddio'r ffenestr pan gaiff ei chau.
Roedd gorgyffwrdd rhesymegol rhwng y fflag hon a'r galwad `OnBeforeClose`.
Yn v3, mae'r fflag `HideWindowOnClose` wedi'i thynnu ac mae'r galwad `OnBeforeClose`
wedi'i ailenwi i `ShouldClose`. Caiff y galwad `ShouldClose` ei galw pan fydd y
defnyddiwr yn ceisio cau ffenestr. Os bydd y galwad yn dychwelyd `true`, caiff y
ffenestr ei chau. Os yw'n dychwelyd `false`, ni chaiff y ffenestr ei chau. Gellir
ei ddefnyddio i guddio'r ffenestr yn hytrach na'i chau.
## Llusgo Ffenestr
Yn v2, defnyddiwyd yr ymddangosiad `--wails-drag` i nodi y gallai elfen gael ei
defnyddio i lusgo'r ffenestr. Yn v3, mae hwn wedi'i ddisodli gan `--webkit-app-region`
i fod yn fwy yn unol â'r ffordd y mae fframweithiau eraill yn ymdrin â hyn. Gellir
gosod yr ymddangosiad `--webkit-app-region` i unrhyw un o'r gwerthoedd canlynol:
- `drag` - Gellir defnyddio'r elfen i lusgo'r ffenestr
- `no-drag` - Ni ellir defnyddio'r elfen i lusgo'r ffenestr
Byddem wedi hoffi defnyddio `app-region`, fodd bynnag, nid yw hwn yn cael ei
gefnogi gan yr alwad `getComputedStyle` ar webkit ar macOS.

View File

@ -0,0 +1,33 @@
## Ategion
Mae ategion yn ffordd o ymestyn swyddogaeth eich cais Wails.
### Creu ategyn
Mae ategion yn strwythur Go safonol sy'n cydymffurfio â'r rhyngwyneb canlynol:
```go
type Plugin interface {
Name() string
Init(*application.App) error
Shutdown()
CallableByJS() []string
InjectJS() string
}
```
Mae'r dull `Name()` yn dychwelyd enw'r ategyn. Defnyddir hwn at ddibenion cofnodi.
Mae'r dull `Init(*application.App) error` yn cael ei alw pan gaiff yr ategyn ei lwytho.
Mae'r paramedr `*application.App` yn gymhwysiad y caiff yr ategyn ei lwytho iddo. Bydd unrhyw
wallau yn atal y cais rhag dechrau.
Mae'r dull `Shutdown()` yn cael ei alw pan fydd y cais yn cau.
Mae'r dull `CallableByJS()` yn dychwelyd rhestr o swyddogaethau alladwy y gellir eu galw o'r
blaen-wyneb. Rhaid i enwau'r dulliau hyn gyfateb yn union i enwau'r dulliau a allodir
gan yr ategyn.
Mae'r dull `InjectJS()` yn dychwelyd JavaScript y dylid ei fewnosod i bob ffenestr wrth iddynt
gael eu creu. Mae hyn yn ddefnyddiol ar gyfer ychwanegu swyddogaethau JavaScript
cyfatebol i'r ategyn.

View File

@ -0,0 +1,8 @@
## Syscynhwysydd
Mae Wails 3 yn dod â syscynhwysydd adeiledig-mewn. Mae hwn yn syscynhwysydd wedi'i gyflawni'n llawn sydd wedi'i ddylunio i fod mor syml â phosibl i'w ddefnyddio. Mae'n bosibl gosod yr eicon, y frawsfyriad a'r dewislen y syscynhwysydd. Mae'n bosibl hefyd "atodi" ffenestr i'r syscynhwysydd. Gan wneud hyn, bydd y swyddogaethau canlynol ar gael:
- Clicio ar eicon y syscynhwysydd yn ymhallu gwelededd y ffenestr
- Clicio'n dde ar y syscynhwysydd yn agor y ddewislen, os oes un
Ar macOS, os nad oes ffenestr atodedig, bydd y syscynhwysydd yn defnyddio'r dull rhagosodedig o arddangos y ddewislen (unrhyw botwm). Os oes ffenestr atodedig ond dim dewislen, bydd y syscynhwysydd yn ymhallu'r ffenestr waeth pa fotwm a wasgerir.

View File

@ -0,0 +1,27 @@
## Ffenestr
Mae'r API Ffenestr wedi aros yn yr un fath i raddau helaeth, fodd bynnag mae'r dulliau yn awr ar enghraifft o ffenestr yn hytrach na'r amser gweithredu. Rhai gwahaniaeth nodedig yw:
- Mae gan Ffenestri nawr Enw sy'n eu hadnabod. Defnyddir hyn i adnabod y ffenestr wrth yrru digwyddiadau.
- Mae gan Ffenestri lawer mwy o ddulliau ar y rhai nad oeddent ar gael o'r blaen, fel `AbsolutePosition` a `ToggleDevTools`.
- Gall Ffenestri nawr dderbyn ffeiliau drwy lusgo a gollwng brodorol. Gweler yr adran Lusgo a Gollwng am fwy o fanylion.
### ColourCefndir
Yn v2, roedd hwn yn bwynt i strwythur `RGBA`. Yn v3, mae hwn yn werthhRGBA` strwythur.
### FfenestrnynTranslucent
Mae'r fflach hon wedi'i thynnu. Erbyn hyn mae gan `BackgroundType` fflach y gellir ei defnyddio i osod y math o gefndir y dylai'r ffenestr ei chael. Gellir gosod y fflach hon i unrhyw un o'r gwerthoedd canlynol:
- `BackgroundTypeSolid` - Bydd gan y ffenestr gefndir solet
- `BackgroundTypeTransparent` - Bydd gan y ffenestr gefndir tryloyw
- `BackgroundTypeTranslucent` - Bydd gan y ffenestr gefndir trawslucent
Ar Windows, os yw'r `BackgroundType` wedi'i osod i `BackgroundTypeTranslucent`, gellir gosod y math o drawslucedd gan ddefnyddio'r fflach `BackdropType` yn opsiynau `WindowsWindow`. Gellir gosod hon i unrhyw un o'r gwerthoedd canlynol:
- `Auto` - Bydd y ffenestr yn defnyddio effaith a benderfynir gan y system
- `None` - Ni fydd gan y ffenestr gefndir
- `Mica` - Bydd y ffenestr yn defnyddio'r effaith Mica
- `Acrylic` - Bydd y ffenestr yn defnyddio'r effaith acrylig
- `Tabbed` - Bydd y ffenestr yn defnyddio'r effaith tabbed

View File

@ -0,0 +1,50 @@
## Iaith Marcio Wails (WML)
Mae'r Iaith Marcio Wails yn iaith farcio syml sy'n caniatáu i chi ychwanegu
swyddogaeth at elfennau HTML safonol heb ddefnyddio JavaScript.
Mae'r tagiau canlynol yn cael eu cefnogi ar hyn o bryd:
### `data-wml-event`
Mae hyn yn pennu y bydd digwyddiad Wails yn cael ei allyrru pan gliciwyd ar yr
elfen. Dylai gwerth yr priodoledd fod yn enw'r digwyddiad i'w allyrru.
Enghraifft:
```html
<button data-wml-event="myevent">Cliciwch Fi</button>
```
Weithiau mae angen i'r defnyddiwr gadarnhau gweithred. Gellir gwneud hyn drwy
ychwanegu'r briodoledd `data-wml-confirm` at yr elfen. Bydd gwerth y briodoledd
hwn yn fesur i'w ddangos i'r defnyddiwr.
Enghraifft:
```html
<button data-wml-event="delete-all-items" data-wml-confirm="Ydych chi'n siŵr?">
Dileu Pob Eitem
</button>
```
### `data-wml-window`
Gellir galw unrhyw fethododd `wails.window` drwy ychwanegu'r briodoledd
`data-wml-window` at elfen. Dylai gwerth y briodoledd fod yn enw'r
dull i'w alw. Dylai enw'r dull fod yn yr un acen â'r dull.
```html
<button data-wml-window="Close">Cau'r Ffenestr</button>
```
### `data-wml-trigger`
Mae'r briodoledd hwn yn pennu pa ddigwyddiad JavaScript ddylai ysgogi'r
weithred. Y rhagosodiad yw `click`.
```html
<button data-wml-event="hover-box" data-wml-trigger="mouseover">
Gallwch hofran drosodd fi!
</button>
```

View File

@ -0,0 +1,220 @@
Dyma'r cyfieithiad Cymraeg (cym) o'r testun Saesneg:
# Cyflwyniad
!!! note
Mae'r canllaw hwn yn gweithio ymlaen.
Diolch am ddymuno helpu gyda datblygu Wails! Bydd y canllaw hwn yn eich helpu i
gychwyn.
## Cychwyn
- Cloniwch y storfa Git. Symudwch i'r gangen `v3-alpha`.
- Gosodwch y CLI: `cd v3/cmd/wails3 && go install`
- Dewisol: Os ydych am ddefnyddio'r system adeiladu i adeiladu cod blaen, bydd
angen i chi osod [npm](https://nodejs.org/en/download).
## Adeiladu
Ar gyfer rhaglenni syml, gallwch ddefnyddio'r gorchymyn `go build` safonol. Mae
modd defnyddio `go run` hefyd.
Mae Wails hefyd yn cynnwys system adeiladu y gellir ei defnyddio i adeiladu
prosiectau mwy cymhleth. Mae'n defnyddio'r system adeiladu wych
[Task](https://taskfile.dev). Am fwy o wybodaeth, gwiriwch y dudalen gartref Task
neu runnwch `wails task --help`.
## Cynllun prosiect
Mae'r prosiect yn cael y strwythur canlynol:
```
v3
├── cmd/wails3 // CLI
├── examples // Enghreifftiau o apiau Wails
├── internal // Pecynnau mewnol
| ├── runtime // Y runtime JS Wails
| └── templates // Y templed prosiect a gynhelir
├── pkg
| ├── application // Y llyfrgell Wails craidd
| └── events // Diffiniadau digwyddiadau
| └── mac // Cod penodol i macOS a ddefnyddir gan addasiadau
| └── w32 // Cod penodol i Windows
├── plugins // Addasiadau a gynhelir
├── tasks // Tasgau cyffredinol
└── Taskfile.yaml // Ffurfweddiad tasgau datblygu
```
## Datblygu
### Rhestr Tasgau Alpha
Rydym yn monitro materion hysbys a thasgau ar hyn o bryd yn y
[Rhestr Tasgau Alpha](https://github.com/orgs/wailsapp/projects/6). Os ydych am
helpu, edrychwch ar y rhestr hon a dilyn y cyfarwyddiadau yn y
[Adborth](../getting-started/feedback.md) tudalen.
### Ychwanegu swyddogaeth ffenestr
Y ffordd well o ychwanegu swyddogaeth ffenestr yw ychwanegu swyddogaeth newydd i'r
ffeil `pkg/application/webview_window.go`. Dylai hon weithredu'r holl
swyddogaeth sydd ei hangen ar gyfer pob platfform. Dylid galw unrhyw god platfform
penodol drwy fethôd `webviewWindowImpl`. Gweithredir y rhyngwyneb hwn gan bob un
o'r platfformau targed i ddarparu'r swyddogaeth benodol i'r platfform. Mewn rhai
achosion, efallai na fydd yn gwneud dim. Ar ôl ychwanegu'r dull rhyngwyneb,
sicrhewch fod pob platfform yn ei weithredu. Mae'r dull `SetMinSize` yn enghraifft
dda o hyn.
- Mac: `webview_window_darwin.go`
- Windows: `webview_window_windows.go`
- Linux: `webview_window_linux.go`
Dylai'r rhan fwyaf, os nad y cyfan, o'r cod platfform penodol gael ei redeg ar y
prif drywydd. Er mwyn symleiddio hyn, mae nifer o ddulliau `invokeSync` wedi'u
diffinio yn `application.go`.
### Diweddaru'r runtime
Mae'r runtime wedi'i leoli yn `v3/internal/runtime`. Pan diweddarir y runtime,
rhaid cymryd y camau canlynol:
```shell
wails3 task runtime:build
```
### Digwyddiadau
Diffinnir digwyddiadau yn `v3/pkg/events`. Wrth ychwanegu digwyddiad newydd, rhaid
cymryd y camau canlynol:
- Ychwanegu'r digwyddiad i'r ffeil `events.txt`
- Rhedeg `wails3 task events:generate`
Mae nifer o fathau o ddigwyddiadau: digwyddiadau platfform penodol i'r ap a'r
ffenestr + digwyddiadau cyffredin. Mae'r digwyddiadau cyffredin yn ddefnyddiol ar
gyfer trin digwyddiadau ar draws platfformau, ond nid ydych wedi'ch cyfyngu i'r "isaf
cyffredin". Gallwch ddefnyddio'r digwyddiadau platfform penodol os oes angen i chi.
Wrth ychwanegu digwyddiad cyffredin, sicrhewch fod y digwyddiadau platfform penodol
wedi'u mapio. Mae enghraifft o hyn yn `window_webview_darwin.go`:
```go
// Translate ShouldClose to common WindowClosing event
w.parent.On(events.Mac.WindowShouldClose, func(_ *WindowEventContext) {
w.parent.emit(events.Common.WindowClosing)
})
```
NODYN: Efallai y byddwn yn ceisio awtomeiddio hyn yn y dyfodol drwy ychwanegu'r
mapio at y diffiniad digwyddiad.
### Addasiadau
Mae addasiadau yn ffordd o estyn swyddogaeth eich ap Wails.
#### Creu addasiad
Mae addasiadau yn strwythur Go safonol sy'n cydymffurfio â'r rhyngwyneb canlynol:
```go
type Plugin interface {
Name() string
Init(*application.App) error
Shutdown()
CallableByJS() []string
InjectJS() string
}
```
Mae'r dull `Name()` yn dychwelyd enw'r addasiad. Defnyddir hwn at ddibenion
cofnodi.
Mae'r dull `Init(*application.App) error` yn cael ei alw pan gaiff yr addasiad ei
lwytho. Mae'r paramedr `*application.App` yn yr ap y caiff yr addasiad ei lwytho
iddo. Bydd unrhyw wallau yn atal yr ap rhag cychwyn.
Gelwir y dull `Shutdown()` pan gaiff yr ap ei ddidoli.
Mae'r dull `CallableByJS()` yn dychwelyd rhestr o swyddogaethau alladwy y gellir
eu galw o'r blaen. Rhaid i enwau'r dulliau hyn gwatsh yn union ag enwau'r dulliau
a alluogeir gan yr addasiad.
Mae'r dull `InjectJS()` yn dychwelyd JavaScript y dylid ei fewnosod i bob ffenestr
wrth iddynt gael eu creu. Mae hyn yn ddefnyddiol ar gyfer ychwanegu swyddogaethau
JavaScript cyfaddas i'r addasiad.
Cewch hyd i'r addasiadau mewnol yn y cyfeiriadur `v3/plugins`. Edrychwch arnynt am
ysbrydoliaeth.
## Tasgau
Mae'r CLI Wails yn defnyddio'r system adeiladu [Task](https://taskfile.dev). Fe'i
mewnforiwyd fel llyfrgell a'i ddefnyddio i redeg y tasgau a ddiffinnir yn
`Taskfile.yaml`. Y prif gyswllt â Task ddigwydd yn `v3/internal/commands/task.go`.
### Uwchraddio Taskfile
I wirio a oes diweddariad ar gyfer Taskfile, rhedwch `wails3 task -version` a
gwiriwch yn erbyn gwefan Task.
I uwchraddio'r fersiwn o Taskfile a ddefnyddir, rhedwch:
```shell
wails3 task taskfile:upgrade
```
Os oes anghydnawsedd, dylai'r rhain ymddangos yn y ffeil
`v3/internal/commands/task.go`.
Fel arfer, y ffordd orau o drwsio anghydnawsedd yw clonio'r storfa dasg yn
`https://github.com/go-task/task` a gwirio hanes y git i benderfynu beth sydd
wedi newid a pham.
I wirio bod yr holl newidiadau wedi gweithio'n gywir, ail-osodwch y CLI a gwirio'r
fersiwn eto:
```shell
wails3 task cli:install
wails3 task -version
```
## Agor PR
Gwnewch yn siŵr bod gan bob PR docyn cysylltiedig â nhw sy'n darparu cyd-destun y
newid. Os nad oes tocyn, crëwch un yn gyntaf. Sicrhewch fod pob PR wedi
diweddaru'r ffeil CHANGELOG.md gyda'r newidiadau a wnaed. Mae'r ffeil CHANGELOG.md
wedi'i lleoli yn y cyfeiriadur `mkdocs-website/docs`.
## Tasgau Amrywiol
### Uwchraddio Taskfile
Mae'r CLI Wails yn defnyddio'r system adeiladu [Task](https://taskfile.dev). Fe'i
mewnforiwyd fel llyfrgell a'i ddefnyddio i redeg y tasgau a ddiffinnir yn
`Taskfile.yaml`. Y prif gyswllt â Task ddigwydd yn `v3/internal/commands/task.go`.
I wirio a oes diweddariad ar gyfer Taskfile, rhedwch `wails3 task -version` a
gwiriwch yn erbyn gwefan Task.
I uwchraddio'r fersiwn o Taskfile a ddefnyddir, rhedwch:
```shell
wails3 task taskfile:upgrade
```
Os oes anghydnawsedd, dylai'r rhain ymddangos yn y ffeil
`v3/internal/commands/task.go`.
Fel arfer, y ffordd orau o drwsio anghydnawsedd yw clonio'r storfa dasg yn
`https://github.com/go-task/task` a gwirio hanes y git i benderfynu beth sydd
wedi newid a pham.
I wirio bod yr holl newidiadau wedi gweithio'n gywir, ail-osodwch y CLI a gwirio'r
fersiwn eto:
```shell
wails3 task cli:install
wails3 task -version
```

View File

@ -0,0 +1,215 @@
Dyma'r cyfieithiad Cymraeg (cym):
# Statws
Statws nodweddion yn v3.
!!! note
Mae'r rhestr hon yn gymysgedd o gymorth API cyhoeddus a mewnol.<br/>
Nid yw'n gyflawn ac efallai nad yw'n gyfoes.
## Problemau Hysbys
- Nid yw Linux eto ar barity nodwedd gyda Windows/Mac
## Cymhwyster
Dulliau rhyngwyneb cymhwyster
| Dull | Windows | Linux | Mac | Nodiadau |
| ------------------------------------------------------------- | ------- | ----- | --- | -------- |
| run() gwall | I | I | I | |
| destroy() | | I | I | |
| setApplicationMenu(menu \*Menu) | I | I | I | |
| name() llinell | | I | I | |
| getCurrentWindowID() uint | I | I | I | |
| showAboutDialog(name llinell, description llinell, icon []byte) | | I | I | |
| setIcon(icon []byte) | - | I | I | |
| on(id uint) | | | I | |
| dispatchOnMainThread(fn func()) | I | I | I | |
| cuddio() | I | I | I | |
| dangos() | I | I | I | |
| getPrimaryScreen() (\*Screen, gwall) | | I | I | |
| getScreens() ([]\*Screen, gwall) | | I | I | |
## Ffenestr Gwe-weld
Dulliau Rhyngwyneb Ffenestr Gwe-weld
| Dull | Windows | Linux | Mac | Nodiadau |
| -------------------------------------------------- | ------- | ----- | --- | ---------------------------------------- |
| canolbwyntio() | I | I | I | |
| cau() | i | I | I | |
| destroy() | | I | I | |
| execJS(js llinell) | i | I | I | |
| ffocws() | I | I | | |
| forceReload() | | I | I | |
| fullscreen() | I | I | I | |
| getScreen() (\*Screen, gwall) | i | I | I | |
| getZoom() float64 | | I | I | |
| uchder() int | I | I | I | |
| cuddio() | I | I | I | |
| isFullscreen() bool | I | I | I | |
| isMaximised() bool | I | I | I | |
| isMinimised() bool | I | I | I | |
| mwyhau() | I | I | I | |
| lleihau() | I | I | I | |
| nativeWindowHandle() (uintptr, gwall) | I | I | I | |
| on(eventID uint) | i | | I | |
| openContextMenu(menu *Menu, data *ContextMenuData) | i | I | I | |
| positionsberthol() (int, int) | I | I | I | |
| ail-lwytho() | i | I | I | |
| rhedeg() | I | I | I | |
| setAlwaysOnTop(alwaysOnTop bool) | I | I | I | |
| setBackgroundColour(color RGBA) | I | I | I | |
| setEnabled(bool) | | I | I | |
| setFrameless(bool) | | I | I | |
| setFullscreenButtonEnabled(enabled bool) | - | I | I | Nid oes botwm sgrin lawn yn Windows |
| setHTML(html llinell) | I | I | I | |
| setMaxSize(width, uchder int) | I | I | I | |
| setMinSize(width, uchder int) | I | I | I | |
| setRelativePosition(x int, y int) | I | I | I | |
| setResizable(resizable bool) | I | I | I | |
| setSize(width, uchder int) | I | I | I | |
| setTitle(title llinell) | I | I | I | |
| setURL(url llinell) | I | I | I | |
| setZoom(zoom float64) | I | I | I | |
| dangos() | I | I | I | |
| maint() (int, int) | I | I | I | |
| toggleDevTools() | I | I | I | |
| un-fullscreen() | I | I | I | |
| un-mwyhau() | I | I | I | |
| un-lleihau() | I | I | I | |
| lled() int | I | I | I | |
| chwyddo() | | I | I | |
| chwyddo() | I | I | I | |
| chwyddo() | I | I | I | |
| chwyddo() | I | I | I | |
## Amser Gweithredol
### Cymhwyster
| Nodwedd | Windows | Linux | Mac | Nodiadau |
| ------- | ------- | ----- | --- | -------- |
| Gadael | I | I | I | |
| Cuddio | I | I | I | |
| Dangos | I | | I | |
### Deialogau
| Nodwedd | Windows | Linux | Mac | Nodiadau |
| -------- | ------- | ----- | --- | -------- |
| Gwybodaeth | I | I | I | |
| Rhybudd | I | I | I | |
| Gwall | I | I | I | |
| Cwestiwn | I | I | I | |
| OpenFile | I | I | I | |
| SaveFile | I | I | I | |
### Clipfwrdd
| Nodwedd | Windows | Linux | Mac | Nodiadau |
|---------|---------|-------|-----|----------|
| SetText | I | I | I | |
| Text | I | I | I | |
### ContextMenu
| Nodwedd | Windows | Linux | Mac | Nodiadau |
|------------------|---------|-------|-----|----------|
| OpenContextMenu | I | I | I | |
| Ar Ddiofyn | | | | |
| Rheoli drwy HTML | I | | | |
Mae'r ddewislen cyd-destun rhagosodedig wedi'i galluogi'n rhagosodedig ar gyfer yr holl elfennau sydd â `contentEditable: true`, `<input>` neu `<textarea>` tagiau neu â'r arddull `--default-contextmenu: true` osodwyd. Bydd arddull `--default-contextmenu: show` bob amser yn dangos y ddewislen cyd-destun Mae arddull `--default-contextmenu: hide` bob amser yn cuddio'r ddewislen cyd-destun
Ni fydd unrhywbeth wedi'i nythu o dan tag â'r arddull `--default-contextmenu: hide` yn dangos y ddewislen cyd-destun oni bai ei fod yn cael ei osod yn benodol gyda `--default-contextmenu: show`.
### Sgriniau
| Nodwedd | Windows | Linux | Mac | Nodiadau |
| ---------- | ------- | ----- | --- | -------- |
| GetAll | I | I | I | |
| GetPrimary | I | I | I | |
| GetCurrent | I | I | I | |
### System
| Nodwedd | Windows | Linux | Mac | Nodiadau |
| ---------- | ------- | ----- | --- | -------- |
| IsDarkMode | | | I | |
### Ffenestr
I = Cefnogir U = Heb ei brofi
- = Ddim ar gael
| Nodwedd | Windows | Linux | Mac | Nodiadau |
| ------------------- | ------- | ----- | --- | ------------------------------------------------------------------------------------ |
| Canolbwyntio | I | I | | |
| Ffocws | I | I | | |
| FullScreen | I | I | I | |
| GetZoom | I | I | I | Cael graddfa golwg gyfredol |
| Uchder | I | I | I | |
| Cuddio | I | I | I | |
| Mwyhau | I | I | I | |
| Lleihau | I | I | I | |
| PositionsbertholRhyngwladol | I | I | I | |
| Sgrin | I | I | I | Cael sgrin ar gyfer ffenestr |
| SetAlwaysOnTop | I | I | I | |
| SetBackgroundColour | I | I | I | https://github.com/MicrosoftEdge/WebView2Feedback/issues/1621#issuecomment-938234294 |
| SetEnabled | I | U | - | Gosod y ffenestr i fod wedi'i galluogi/analluogi |
| SetMaxSize | I | I | I | |
| SetMinSize | I | I | I | |
| SetRelativePosition | I | I | I | |
| SetResizable | I | I | I | |
| SetSize | I | I | I | |
| SetTitle | I | I | I | |
| SetZoom | I | I | I | Gosod graddfa golwg |
| Dangos | I | I | I | |
| Maint | I | I | I | |
| UnFullscreen | I | I | I | |
| UnMaximise | I | I | I | |
| UnMinimise | I | I | I | |
| Lled | I | I | I | |
| ZoomIn | I | I | I | Cynyddu graddfa golwg |
| ZoomOut | I | I | I | Gostwng graddfa golwg |
| ZoomReset | I | I | I | Ailosod graddfa golwg |
### Opsiynau Ffenestr
Mae 'I' yn y tabl isod yn dangos bod yr opsiwn wedi'i brofi ac yn cael ei gymhwyso wrth greu'r ffenestr. Mae 'X' yn dangos nad yw'r opsiwn yn cael ei gefnogi gan y platfform.
| Nodwedd | Windows | Linux | Mac | Nodiadau |
|---------------------------------|---------|-------|-----|--------------------------------------------|
| AlwaysOnTop | I | I | | |
| BackgroundColour | I | I | | |
| BackgroundType | | | | Mae'n ymddangos bod Acrylic yn gweithio ond nid y lleill |
| CSS | I | I | | |
| DevToolsEnabled | I | I | I | |
| DisableResize | I | I | | |
| EnableDragAndDrop | | I | | |
| EnableFraudulentWebsiteWarnings | | | | |
| Ffocws | I | I | | |
| Frameless | I | I | | |
| FullscreenButtonEnabled | I | | | |
| Uchder | I | I | | |
| Hidden | I | I | | |
| HTML | I | I | | |
| JS | I | I | | |
| Mac | - | - | | |
| MaxHeight | I | I | | |
| MaxWidth | I | I | | |
| MinHeight | I | I | | |
| MinWidth | I | I | | |
| Enw | I | I | | |
| OpenInspectorOnStartup | | | | |
| StartState | I | | | |
| Teitl | I | I | | |
| URL | I | I | | |
| Lled | I | I | | |
| Windows | I | - | - | |
| X | I

View File

@ -0,0 +1,66 @@
# Adborth
Croeso (ac anogaeth) i'ch adborth! Chwiliwch am docynnau neu
bostiau presennol cyn creu rhai newydd. Dyma'r ffyrdd gwahanol i ddarparu adborth:
=== "Difrod"
Os ydych yn canfod nam, rhowch wybod i ni drwy bostio yn y [v3 Alpha Feedback](https://discord.gg/3mgVyGua) sianel ar Discord.
- Dylai'r post nodi'n glir beth yw'r nam a chael enghraifft syml y gellir ei ailadrodd. Os yw'r dogfennaeth yn aneglur beth sy'n *digwydd* i ddigwydd, nodwch hynny yn y post.
- Dylid rhoi'r tag `Bug` i'r post.
- Dylech gynnwys allbwn `wails doctor` yn eich post.
- Os yw'r nam yn ymddygiad nad yw'n cyd-fynd â'r ddogfennaeth bresennol, er enghraifft, nad yw ffenestr yn addasu'n iawn, gwnewch y canlynol:
- Diweddaru enghraifft bresennol yn y `v3/example` cyfeiriadur neu greu enghraifft newydd yn y `v3/examples` ffolder sy'n dangos y broblem yn glir.
- Agorwch [PR](https://github.com/wailsapp/wails/pulls) gyda'r teitl `[v3 alpha test] <disgrifiad o'r nam>`.
- Dylech gynnwys dolen i'r PR yn eich post.
!!! warning
*Cofiwch*, nid yw ymddygiad annisgwyl o reidrwydd yn nam - efallai nad yw'n gwneud yr hyn yr ydych yn disgwyl iddo ei wneud. Defnyddiwch [Awgrymiadau](#awgrymiadau) ar gyfer hyn.
=== "Cywiriadau"
Os oes gennych gywiriad i nam neu ddiweddariad i'r ddogfennaeth, gwnewch y canlynol:
- Agorwch gais tynnu ar [Wails repository](https://github.com/wailsapp/wails). Dylai'r teitl y PR ddechrau gyda `[v3 alpha]`.
- Creu post yn y [v3 Alpha Feedback](https://discord.gg/3mgVyGua) sianel.
- Dylid rhoi'r tag `PR` i'r post.
- Dylech gynnwys dolen i'r PR yn eich post.
=== "Awgrymiadau"
Os oes gennych awgrym, rhowch wybod i ni drwy bostio yn y [v3 Alpha Feedback](https://discord.gg/3mgVyGua) sianel ar Discord:
- Dylid rhoi'r tag `Awgrym` i'r post.
Cofiwch gysylltu â ni ar [Discord](https://discord.gg/3mgVyGua) os oes gennych unrhyw gwestiynau.
=== "Blaenoriaethu"
- Gellir "blaenoriaethu" postiadau drwy ddefnyddio'r emoji :thumbsup:. Arhoswch ar gyfer unrhyw bostiau sy'n flaenoriaeth i chi.
- Peidiwch â chynnwys sylwadau fel "+1" neu "me too".
- Cofiwch wneud sylwadau os oes mwy i'w ychwanegu at y post, fel "mae'r nam hwn hefyd yn effeithio ar adeiladau ARM" neu "Opsiwn arall fyddai..."
Mae rhestr o broblemau hysbys a gwaith ar y gweill i'w gweld
[yma](https://github.com/orgs/wailsapp/projects/6).
## Beth rydym yn chwilio am adborth arno
- Y API
- A yw'n hawdd ei ddefnyddio?
- A yw'n gwneud yr hyn rydych yn ei ddisgwyl?
- A oes unrhyw beth yn ei goll?
- A oes unrhyw beth y dylid ei dynnu?
- A yw'n gyson rhwng Go a JS?
- Y system adeiladu
- A yw'n hawdd ei defnyddio?
- A allwn ei wella?
- Yr enghreifftiau
- A ydynt yn glir?
- A ydynt yn cwmpasu'r sylfeini?
- Nodweddion
- Pa nodweddion sydd ar goll?
- Pa nodweddion nad ydynt eu hangen?
- Dogfennaeth
- Beth allai fod yn gliriach?

View File

@ -0,0 +1,81 @@
# Gosod
I osod yr Wails CLI, sicrhewch eich bod wedi gosod [Go 1.21+](https://go.dev/dl/)
a rhedwch:
```shell
git clone https://github.com/wailsapp/wails.git
cd wails
git checkout v3-alpha
cd v3/cmd/wails3
go install
```
## Platfformau a Gefnogir
- Windows 10/11 AMD64/ARM64
- MacOS 10.13+ AMD64
- MacOS 11.0+ ARM64
- Ubuntu 22.04 AMD64/ARM64 (gall dosbarthiadau Linux eraill weithio hefyd!)
## Dibyniaeth
Mae gan Wails nifer o ddibyniaeth cyffredin sydd eu hangen cyn gosod:
=== "Go 1.21+"
Lawrlwythwch Go o'r [Dudalen Lawrlwytho Go](https://go.dev/dl/).
Sicrhewch eich bod yn dilyn y [cyfarwyddiadau gosod Go swyddogol](https://go.dev/doc/install). Bydd angen i chi hefyd sicrhau bod eich amrywiol amgylchedd `PATH` yn cynnwys llwybr eich cyfeiriadur `~/go/bin`. Ailgychwynnwch eich terfynell a gwiriwch y canlynol:
- Gwiriwch fod Go wedi'i osod yn gywir: `go version`
- Gwiriwch fod `~/go/bin` yn eich `PATH`: `echo $PATH | grep go/bin`
=== "npm (Dewisol)"
Er nad oes angen npm i'w osod ar Wails, mae ei angen os ydych am ddefnyddio'r templed sydd wedi'i gynnwys.
Lawrlwythwch y gosodwr node diweddaraf o'r [Dudalen Lawrlwytho Node](https://nodejs.org/en/download/). Mae'n well defnyddio'r rhyddhad diweddaraf gan mai hwnnw yr ydym fel arfer yn ei brofi yn erbyn.
Rhedwch `npm --version` i wirio.
=== "Task (Dewisol)"
Mae gan yr Wails CLI rhedwr tasg wedi'i ymgorffori o'r enw [Task](https://taskfile.dev/#/installation). Mae'n ddewisol, ond fe'i argymhellir. Os nad ydych am osod Task, gallwch ddefnyddio'r gorchymyn `wails3 task` yn lle `task`.
Bydd gosod Task yn rhoi'r hyblygrwydd mwyaf i chi.
## Dibyniaeth Penodol i'r Platfform
Bydd angen i chi hefyd osod dibyniaeth penodol i'r platfform:
=== "Mac"
Mae angen i Wails fod â'r offer llinell orchymyn xcode wedi'u gosod. Gellir gwneud hyn trwy redeg:
```
xcode-select --install
```
=== "Windows"
Mae angen i Wails fod â [Rhedwr WebView2](https://developer.microsoft.com/en-us/microsoft-edge/webview2/) wedi'i osod. Bydd rhai gosodiadau Windows eisoes wedi'i gael hwn wedi'i osod. Gallwch wirio hyn gan ddefnyddio'r gorchymyn `wails doctor`.
=== "Linux"
Mae angen offer adeiladu `gcc` safonol a `libgtk3` a `libwebkit` ar Linux. Yn hytrach nag rhestru llawer o orchmynion ar gyfer gwahanol ddosbarthiadau, gall Wails geisio penderfynu beth yw'r gorchmynion gosod ar gyfer eich dosbarthiad penodol. Rhedwch <code>wails doctor</code> ar ôl gosod i weld y cyfarwyddiadau ar sut i osod y dibyniaeth. Os na chefnogir eich dosbarthiad/rheolwr pecyn, rhowch wybod i ni ar discord.
## Gwirio'r System
Bydd rhedeg `wails3 doctor` yn gwirio a oes gennych y dibyniaeth cywir
wedi'i gosod. Os nad oes, bydd yn rhoi cyngor ar yr hyn sydd ar goll a sut i
unioni
unrhyw broblemau.
## Mae'r gorchymyn `wails3` yn ymddangos fel ei fod ar goll?
Os yw eich system yn adrodd bod y gorchymyn `wails3` ar goll, gwiriwch y
canlynol:
- Sicrhewch eich bod wedi dilyn y cyfarwyddiadau gosod Go yn gywir.
- Gwiriwch fod cyfeiriadur `go/bin` yn y newidyn amgylchedd `PATH`.
- Cau/Agor terminal presennol i ddewis y `PATH` newydd.

View File

@ -0,0 +1,20 @@
# Camau Nesaf
Nawr eich bod wedi creu eich cymhwysiad cyntaf, gallwch ddechrau archwilio'r nodweddion eraill y mae v3 alpha yn eu darparu.
## Enghreifftiau
Y lle gorau i ddechrau yw'r cyfeiriadur `examples` yn y storfa Wails.
Mae hyn yn cynnwys nifer o enghreifftiau y gallwch eu rhedeg a chwarae â nhw.
I redeg enghraifft, gallwch ddefnyddio:
```shell
go run .
```
yn y cyfeiriadur enghraifft.
!!! nodyn
Efallai na fydd rhai enghreifftiau'n gweithio yn ystod datblygiad alpha.

View File

@ -0,0 +1,83 @@
# Dy Cymhwysiad Cyntaf
Mae creu eich cymhwysiad cyntaf gyda Wails v3 Alpha yn daith gyffrous i mewn i fyd datblygu apiau bwrdd gwaith modern. Bydd y canllaw hwn yn mynd â chi drwy'r broses o greu cymhwysiad sylfaenol, gan ddangos pŵer a symlrwydd Wails.
## Gofynion Rhewydd
Cyn dechrau, sicrhewch eich bod wedi gosod y canlynol:
- Go (fersiwn 1.21 neu ddiweddarach)
- Node.js (fersiwn LTS)
- Wails v3 Alpha (gweler y [canllaw gosod](installation.md) am gyfarwyddiadau)
## Cam 1: Creu Prosiect Newydd
Agorwch eich terfynell a rhedeg y gorchymyn canlynol i greu prosiect Wails newydd:
`wails3 init -n myfirstapp`
Mae'r gorchymyn hwn yn creu cyfeiriadur newydd o'r enw `myfirstapp` gyda'r holl ffeiliau angenrheidiol.
## Cam 2: Archwilio Strwythur y Prosiect
Ewch i'r cyfeiriadur `myfirstapp`. Byddwch yn canfod nifer o ffeiliau a ffolderi:
- `build`: Yn cynnwys ffeiliau a ddefnyddir gan y broses adeiladu.
- `frontend`: Yn cynnwys cod rhagflaen eich rhyngrwyd.
- `go.mod` a `go.sum`: Ffeiliau modiwl Go.
- `main.go`: Pwynt mynediad eich cymhwysiad Wails.
- `Taskfile.yml`: Yn diffinio'r holl dasgau a ddefnyddir gan y system adeiladu. Dysgu rhagor ar wefan [Task](https://taskfile.dev/).
Cymerwch ennyd i archwilio'r ffeiliau hyn a'ch cyfarwyddo â'r strwythur.
!!! note
Er bod Wails v3 yn defnyddio [Task](https://taskfile.dev/) fel ei system adeiladu ddiofyn, does dim byd yn atal chi rhag defnyddio `make` neu unrhyw system adeiladu amgen.
## Cam 3: Adeiladu Eich Cymhwysiad
I adeiladu eich cymhwysiad, rhedwch:
`wails3 build`
Mae'r gorchymyn hwn yn cyfansoddi fersiwn dadfygio o'ch cymhwysiad ac yn ei gadw mewn cyfeiriadur `bin` newydd.
Gallwch ei redeg fel unrhyw gymhwysiad arferol:
=== "Mac"
`./bin/myfirstapp`
=== "Windows"
`bin\myfirstapp.exe`
=== "Linux"
`./bin/myfirstapp`
Byddwch yn gweld rhyngwyneb defnyddiwr syml, pwynt cychwyn eich cymhwysiad. Gan ei fod yn fersiwn dadfygio, byddwch hefyd yn gweld logiau yn y ffenestr gonsol. Mae hyn yn ddefnyddiol at ddibenion dadfygio.
## Cam 4: Modd Datblygu
Gallwn hefyd redeg y cymhwysiad yn y modd datblygu. Mae'r modd hwn yn caniatáu i chi wneud newidiadau i'ch cod rhagflaen a gweld y newidiadau'n cael eu hadlewyrchu yn y cymhwysiad sy'n rhedeg heb orfod ailadeiladu'r cyfan.
1. Agorwch ffenestr derfynell newydd.
2. Rhedwch `wails3 dev`.
3. Agorwch `frontend/main.js`.
4. Newid y llinell sydd â `<h1>Hello Wails!</h1>` i `<h1>Helo Byd!</h1>`.
5. Cadwch y ffeil.
Bydd y cymhwysiad yn diweddaru'n awtomatig, a byddwch yn gweld y newidiadau'n cael eu hadlewyrchu yn y cymhwysiad sy'n rhedeg.
## Cam 5: Ailadeiladu'r Cymhwysiad
Pan fyddwch yn hapus gyda'ch newidiadau, ailadeiladu'r cymhwysiad eto:
`wails3 build`
Byddwch yn sylwi bod yr amser adeiladu wedi bod yn gyflymach y tro hwn. Mae hynny oherwydd bod y system adeiladu newydd yn unig yn adeiladu'r rhannau o'ch cymhwysiad sydd wedi newid.
Dylech weld gweithrediannol newydd yn y cyfeiriadur `build`.
## Casgliad
Llongyfarchiadau! Rydych newydd greu ac adeiladu eich cymhwysiad Wails cyntaf. Dyma ddechrau'r hyn y gallwch ei gyflawni gyda Wails v3 Alpha. Archwiliwch y ddogfennaeth, profwch y gwahanol nodweddion, a dechrau adeiladu apiau rhyfeddol!

View File

@ -0,0 +1,37 @@
# Cartref
Croeso i ddogfennaeth alpha Wails v3. Dyma'r man cychwyn ar gyfer archwilio'r fersiwn ddiweddaraf o Wails, fframwaith pwerus ar gyfer adeiladu rhaglenni bwrdd gwaith gan ddefnyddio Go a thechnolegau gwe modern.
## Cyflwyniad
Mae Wails v3 Alpha yn y diweddaraf o brosiect Wails, gan ddod â nodweddion newydd a gwelliannau i wneud datblygu rhaglenni bwrdd gwaith yn fwy effeithlon a difyr. Mae'r fersiwn hon dal yn alpha, felly efallai y bydd rhai nodweddion yn newid cyn y rhyddhad terfynol.
## Beth sydd Newydd
Dyma rai o'r nodweddion a gwelliannau newydd cyffrous yn Wails v3 Alpha:
- Gwlnodiadau Amlwg
- Bathau System
- Cynhyrchu cysylltiadau gwell
- System adeiladu well
- System digwyddiadau gwell
Mae rhagor o wybodaeth am y nodweddion hyn a newidiadau eraill i'w chael yn yr adran [Beth sydd Newydd](whats-new.md).
## Cychwyn
I gychwyn gyda Wails v3 Alpha:
1. [Gosod](getting-started/installation.md): Dilynwch ein canllaw syml i osod Wails ar eich system.
2. [Creu Eich Cais Cyntaf](getting-started/your-first-app.md): Dysgwch sut i greu eich rhaglen Wails gyntaf gyda'n tiwtor cam-wrth-gam.
3. [Archwilio'r Cyfeirlyfr API](./API/application.md): Mynd i'r afael yn ddyfnach â dogfennaeth yr API.
## Hysbysiad Fersiwn Alpha
Sylwch fod hwn yn fersiwn alpha o Wails v3. Gall nodweddion gael eu hychwanegu, eu dileu neu eu newid mewn diweddariadau yn y dyfodol. Mae'r fersiwn hon wedi'i bwriadu ar gyfer cynnar-fabwysiadwyr a'r rheiny sy'n dymuno cyfrannu at ddatblygiad Wails.
## Adborth a Chyfraniadau
Mae eich adborth yn hanfodol i wneud Wails yn well. Os ydych yn dod ar draws unrhyw broblemau neu os oes gennych awgrymiadau, defnyddiwch ein [Proses Adborth](getting-started/feedback.md). Mae cyfraniadau at y prosiect hefyd yn croeso!
Diolch am roi cynnig ar Wails v3 Alpha!

View File

@ -0,0 +1,52 @@
# Amser Rhedeg
Mae amser rhedeg Wails yn llyfrgell safonol ar gyfer ceisiadau Wails. Mae'n darparu nifer o nodweddion y gellir eu defnyddio yn eich ceisiadau, gan gynnwys:
- Rheolaeth ffenestr
- Deialogau
- Integreiddio porwr
- Clipfwrdd
- Llusgian diframwaith
- Eiconau ardal gwaith
- Rheoli dewislen
- Gwybodaeth system
- Digwyddiadau
- Galw cod Go
- Dewislenni Cyd-destun
- Sgrîn
- WML (Iaith Marcio Wails)
Mae'r amser rhedeg yn ofynnol ar gyfer integreiddio rhwng Go a'r rhaglen blaen. Mae 2 ffordd o integreiddio'r amser rhedeg:
- Gan ddefnyddio'r pecyn `@wailsio/runtime`
- Gan ddefnyddio fersiwn wedi'i chyn-adeiladu o'r amser rhedeg
## Defnyddio'r pecyn `@wailsio/runtime`
Mae'r pecyn `@wailsio/runtime` yn becyn JavaScript sy'n darparu mynediad at amser rhedeg Wails. Fe'i defnyddir gan yr holl dempled safonol ac mae'n y ffordd a argymhellir i integreiddio'r amser rhedeg i'ch cais. Drwy ddefnyddio'r pecyn, dim ond y rhannau o'r amser rhedeg yr ydych yn eu defnyddio a gaiff eu cynnwys.
Mae'r pecyn ar gael ar npm a gellir ei osod gan ddefnyddio:
```shell
npm install --save @wailsio/runtime
```
## Defnyddio fersiwn wedi'i chyn-adeiladu o'r amser rhedeg
Bydd rhai prosiectau heb ddefnyddio pecynwr JavaScript ac efallai y byddant yn well ganddynt ddefnyddio fersiwn wedi'i chyn-adeiladu o'r amser rhedeg. Dyma'r rhagosodiad ar gyfer yr enghreifftiau yn `v3/examples`. Gellir cynhyrchu'r fersiwn wedi'i chyn-adeiladu o'r amser rhedeg gan ddefnyddio'r gorchymyn canlynol:
```shell
wails3 generate runtime
```
Bydd hyn yn cynhyrchu ffeil `runtime.js` (a `runtime.debug.js`) yn y cyfeiriadur presennol.
Gellir defnyddio'r ffeil hon gan eich cais drwy ei hychwanegu at eich cyfeiriadur asedau (fel arfer `frontend/dist`) ac yna ei chynnwys yn eich HTML:
```html
<html>
<head>
<script src="/runtime.js"></script>
</head>
<!--- ... -->
</>
```

View File

@ -0,0 +1,198 @@
# Cynllun Gweithredu
Mae'r cynllun gweithredu yn ddogfen fyw ac yn agored i newid. Os oes gennych unrhyw awgrymiadau, agorwch fater. Bydd gan bob cam bwysig gyfres o nodau yr ydym yn anelu at eu cyflawni. Mae'r rhain yn agored i newid.
## Materion Hysbys
- Nid yw cynhyrchu rhwymau ar gyfer dull sy'n mewnforio pecyn sydd â'r un enw â phecyn arall a fewnforiwyd yn cael ei gefnogi ar hyn o bryd.
## Camau Milltir Alpha
### Presennol: Alpha 5
#### Nodau
Mae cylch Alpha 5 yn anelu at ddod â Linux i gydraddoldeb (Alpha 4) â'r platfformau eraill.
#### Sut Gallaf Helpu?
!!! note
Adroddwch unrhyw faterion a ganfyddwch gan ddefnyddio [y canllaw hwn](./getting-started/feedback.md).
- Profi'r cwbl ar Linux!
#### Statws
Enghreifftiau Linux:
- :material-check-bold: - Yn gweithio
- :material-minus: - Yn gweithio'n rhannol
- :material-close: - Ddim yn gweithio
{{ read_csv("alpha5.csv") }}
## Camau Milltir Nesaf
## Alpha 6
## Camau Milltir Blaenorol
### Alpha 4 - Wedi'i Chwblhau 2024-02-01
#### Nodau
Mae cylch Alpha 4 yn anelu at ddarparu'r gorchmynion `dev` a `package`.
Dylai'r gorchymyn `wails dev` wneud y canlynol:
- Adeiladu'r cais
- Cychwyn y cais
- Cychwyn y gweinydd datblygu blaen
- Gwylio am newidiadau i'r cod cais ac ail-adeiladu/ailgychwyn yn ôl yr angen
Dylai'r gorchymyn `wails package` wneud y canlynol:
- Adeiladu'r cais
- Pecynnu'r cais mewn fformat penodol i'r platfform
- Windows: Rhaglen weithredol safonol, Gosodwr NSIS
- Linux: AppImage
- MacOS: Rhaglen weithredol safonol, Pecyn App
- Cefnogi gwrthodiad y cod cais
- Hefyd, rydym am gael pob enghraifft yn gweithio ar Linux.
#### Sut Gallaf Helpu?
!!! note
Adroddwch unrhyw faterion a ganfyddwch gan ddefnyddio [y canllaw hwn](./getting-started/feedback.md).
- Gosod y CLI gan ddefnyddio'r cyfarwyddiadau [yma](./getting-started/installation.md).
- Rhedeg `wails3 doctor` a sicrhau bod yr holl ddibyniaeth wedi'u gosod.
- Cynhyrchu project newydd gan ddefnyddio `wails3 init`.
Profi'r gorchymyn `wails3 dev`:
- Rhedeg `wails3 dev` yn y cyfeiriadur project. Dylai redeg y cais mewn modd datblygu.
- Ceisiwch newid ffeiliau a sicrhau bod y cais yn cael ei ail-adeiladu a'i ailgychwyn.
- Rhedeg `wails3 dev -help` i weld yr opsiynau.
- Ceisiwch wahanol opsiynau a sicrhau eu bod yn gweithio fel y disgwylir.
Profi'r gorchymyn `wails3 package`:
- Rhedeg `wails3 package` yn y cyfeiriadur project.
- Gwiriwch fod y cais wedi'i becynnu'n gywir ar gyfer y platfform presennol.
- Rhedeg `wails3 package -help` i weld yr opsiynau.
- Ceisiwch wahanol opsiynau a sicrhau eu bod yn gweithio fel y disgwylir.
Adolygwch y tabl isod a chwilio am senarios heb eu profi.
Yn y bôn, ceisiwch ei dorri a rhowch wybod i ni os ydych yn dod o hyd i unrhyw faterion! :smile:
#### Statws
Gorchymyn `wails3 dev`:
- :material-check-bold: - Yn gweithio
- :material-minus: - Yn gweithio'n rhannol
- :material-close: - Ddim yn gweithio
{{ read_csv("alpha4-wails3-dev.csv") }}
- Mae Windows yn gweithio'n rhannol:
- Mae newidiadau i'r blaen-ddalen yn gweithio fel y disgwylir
- Mae newidiadau i Go yn achosi i'r cais gael ei adeiladu ddwywaith
- Mae Mac yn gweithio'n rhannol:
- Mae newidiadau i'r blaen-ddalen yn gweithio fel y disgwylir
- Mae newidiadau i Go yn gorffen y broses vite
Gorchymyn `wails3 package`:
- :material-check-bold: - Yn gweithio
- :material-minus: - Yn gweithio'n rhannol
- :material-close: - Ddim yn gweithio
- :material-cancel: - Heb ei Gefnogi
{{ read_csv("alpha4-wails3-package.csv") }}
### Alpha 3 - Wedi'i Chwblhau 2024-01-14
#### Nodau
Mae cylch Alpha 3 yn anelu at ddarparu cefnogaeth rhwymau. Mae Wails 3 yn defnyddio dull dadansoddi státig newydd sy'n ein galluogi i ddarparu profiad rhwymau gwell nag yn Wails 2.
Hefyd, rydym am gael pob enghraifft yn gweithio ar Linux.
#### Sut Gallaf Helpu?
Gallwch gynhyrchu rhwymau gan ddefnyddio'r gorchymyn `wails3 generate bindings`. Bydd hyn yn cynhyrchu rhwymau ar gyfer holl fethodoedd strwythur a ranbir gyda'ch project.
Rhedeg `wails3 generate bindings -help` i weld yr opsiynau sy'n llywodraethu sut caiff rhwymau eu cynhyrchu.
Mae'r profion ar gyfer y cynhyrchwr rhwymau i'w canfod [yma](https://github.com/wailsapp/wails/tree/v3-alpha/v3/internal/parser) gyda'r data profion wedi'i leoli yn y cyfeiriadur `testdata`.
Adolygwch y tabl isod a chwilio am senarios heb eu profi. Mae'r cod parser a'r profion wedi'u lleoli yn `v3/internal/parser`. Gellir rhedeg yr holl brofion gan ddefnyddio `go test ./...` o'r cyfeiriadur `v3`.
Yn y bôn, ceisiwch ei dorri a rhowch wybod i ni os ydych yn dod o hyd i unrhyw faterion! :smile:
#### Statws
Rhwymau ar gyfer strwythur (CallByID):
- :material-check-bold: - Yn gweithio
- :material-minus: - Yn gweithio'n rhannol
- :material-close: - Ddim yn gweithio
{{ read_csv("alpha3-bindings-callbyid.csv") }}
Rhwymau ar gyfer strwythur (CallByName):
- :material-check-bold: - Yn gweithio
- :material-minus: - Yn gweithio'n rhannol
- :material-close: - Ddim yn gweithio
{{ read_csv("alpha3-bindings-callbyname.csv") }}
Modelau:
- :material-check-bold: - Yn gweithio
- :material-minus: - Yn gweithio'n rhannol
- :material-close: - Ddim yn gweithio
{{ read_csv("alpha3-models.csv") }}
Enghreifftiau:
- [ ] Pob enghraifft yn gweithio ar Linux
### Alpha 2
#### Nodau
Mae Alpha 2 yn anelu at gyflwyno cefnogaeth [Taskfile](https://taskfile.dev). Bydd hyn yn
caniatáu i ni gael system adeiladu unigol, estynnadwy sy'n gweithio ar bob platfform.
Hefyd, rydym am gael pob enghraifft yn gweithio ar Linux.
#### Statws
- [ ] Pob enghraifft yn gweithio ar Linux
- [x] Gorchmynion Cychwyn a Adeiladu
- :material-check-bold: - Yn gweithio
- :material-minus: - Yn gweithio'n rhannol
- :material-close: - Ddim yn gweithio
{{ read_csv("alpha2.csv") }}
### Alpha 1
#### Nodau
Mae Alpha 1 y rhyddhad cychwynnol. Mae'n fwriadedig i gael adborth ar yr API newydd
ac i bobl ddechreu arbrofi ag ef. Y nod pennaf yw cael y rhan fwyaf o'r
enghreifftiau yn gweithio ar bob platfform.
#### Statws
- :material-check-bold: - Yn gweithio
- :material-minus: - Yn gweithio'n rhannol
- :material-close: - Ddim yn gweithio
{{ read_csv("alpha1.csv") }}

View File

@ -0,0 +1,317 @@
# Beth sydd newydd yn Wails v3 Alpha
Mae Wails v3 Alpha yn symud o'r API sengl-ffenestr, datganiadol o v2 i un proseduraidd. Mae'r API hwn cynnil yn gwneud datblygiad cod yn haws, yn gwella darllenadwyedd, ac yn datgloi apiau amlder-ffenestr cymhleth. Nid yw Wails v3 Alpha yn wella ar fersiwnau blaenorol yn unig - mae'n ailddychmygu galluoedd datblygu rhaglenni peiriannu gweledol gyda Go a thechnolegau gwe modern.
## Amlder Ffenestri
Mae'n awr yn bosibl creu amlder ffenestri a ffurfweddu pob un ohonynt yn annibynnol.
```go
package main
import (
_ "embed"
"log"
"github.com/wailsapp/wails/v3/pkg/application"
)
//go:embed assets/*
var assets embed.FS
func main() {
app := application.New(application.Options{
Name: "Multi Window Demo",
Assets: application.AssetOptions{
Handler: application.AssetFileServerFS(assets),
},
})
window1 := app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{
Title: "Ffenest 1",
})
window2 := app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{
Title: "Ffenest 2",
})
// llwytho'r html wedi'i ymgorffori o'r embed.FS
window1.SetURL("/")
window1.Center()
// Llwytho URL allanol
window2.SetURL("https://wails.app")
err := app.Run()
if err != nil {
log.Fatal(err.Error())
}
}
```
## Systriedi
Mae systriedi yn caniatáu i chi ychwanegu eicon yn ardal y system dociau eich peiriant a chael y nodweddion canlynol:
- Atodwch ffenestr (bydd y ffenestr yn cael ei chanoli i'r eicon systrai)
- Cefnogaeth lawn ar gyfer dewislen
- Eicon modd golau/tywyll
```go
package main
import (
_ "embed"
"log"
"runtime"
"github.com/wailsapp/wails/v3/pkg/application"
"github.com/wailsapp/wails/v3/pkg/icons"
)
func main() {
app := application.New(application.Options{
Name: "Systray Demo",
Mac: application.MacOptions{
ActivationPolicy: application.ActivationPolicyAccessory,
},
})
window := app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{
Width: 500,
Height: 800,
Frameless: true,
AlwaysOnTop: true,
Hidden: true,
Windows: application.WindowsWindow{
HiddenOnTaskbar: true,
},
})
systemTray := app.NewSystemTray()
// Cefnogaeth ar gyfer eicon thema ar macOS
if runtime.GOOS == "darwin" {
systemTray.SetTemplateIcon(icons.SystrayMacTemplate)
} else {
// Cefnogaeth ar gyfer eicon modd golau/tywyll
systemTray.SetDarkModeIcon(icons.SystrayDark)
systemTray.SetIcon(icons.SystrayLight)
}
// Cefnogaeth ar gyfer dewislen
myMenu := app.NewMenu()
myMenu.Add("Hello World!").OnClick(func(_ *application.Context) {
println("Hello World!")
})
systemTray.SetMenu(myMenu)
// Bydd hyn yn canoli'r ffenestr i'r eicon systrai gyda 5px o leoliad
// Bydd yn cael ei ddangos yn awtomatig pan fo'r eicon systrai wedi'i glicio
// a'i guddio pan fo'r ffenestr yn colli ffocws
systemTray.AttachWindow(window).WindowOffset(5)
err := app.Run()
if err != nil {
log.Fatal(err)
}
}
```
## Atchwanegion
Mae Atchwanegion yn caniatáu i chi ehangu swyddogaeth y system Wails. Nid yn unig y gellir defnyddio dulliau atchwanegion yn Go, ond hefyd galw ohonynt o JavaScript. Atchwanegion a gynhwysir:
- kvstore - Storfa allwedd/gwerth
- browser - agor cysylltiadau mewn porwr
- log - logydd arferiadol
- oauth - trafod dilysu oauth a chefnogi 60 o ddarparwyr
- single_instance - dim ond caniatáu un copi o'ch ap i redeg
- sqlite - ychwanegu cronfa ddata sqlite at eich ap. Yn defnyddio'r llyfrgell fullPureGo fodern
- start_at_login - Cofrestru/Dad-gofrestru eich cais i gychwyn wrth fewngofnodi
## Genedigaeth cysylltiadau gwelledig
Mae v3 yn defnyddio dadansoddwr statif newydd i gynhyrchu cysylltiadau. Mae hyn yn ei gwneud yn eithriadol o gyflym ac yn cynnal sylwadau a enwau paramedrau yn eich cysylltiadau. Yn ddiofyn, cynhyrchir cysylltiadau gyda galwadau gan ddefnyddio ID yn hytrach na throednodiadau. Mae hyn yn darparu hwb perfformiad ac yn caniatáu i chi ddefnyddio offer cuddio fel [garble](https://github.com/burrowers/garble).
Cynhyrchir cysylltiadau trwy redeg `wails3 generate bindings` yn unig yn ystod cyfeiriadur y prosiect.
```js
// @ts-check
// Cynhyrchwyd y ffeil hon yn awtomatig. PEIDIWCH Â MODIWL
// This file is automatically generated. DO NOT EDIT
import { main } from "./models";
window.go = window.go || {};
window.go.main = {
GreetService: {
/**
* GreetService.Greet
* Greet greets a person
* @param name {string}
* @returns {Promise<string>}
**/
Greet: function (name) {
wails.CallByID(1411160069, ...Array.prototype.slice.call(arguments, 0));
},
/**
* GreetService.GreetPerson
* GreetPerson greets a person
* @param person {main.Person}
* @returns {Promise<string>}
**/
GreetPerson: function (person) {
wails.CallByID(4021313248, ...Array.prototype.slice.call(arguments, 0));
},
},
};
```
## System adeiladu gwelledig
Yn v2, roedd y system adeiladu yn gwbl anhyglyw a chaled i'w addasu. Yn v3, mae'n bosibl adeiladu popeth gan ddefnyddio offer Go safonol.
Mae'r holl waith trwm a wnaeth system adeiladu v2, fel cynhyrchu eicon, wedi'i ychwanegu fel gorchmynion offeryn yn y CLI. Rydyn ni wedi ymgorffori [Taskfile](https://taskfile.dev) yn y CLI i drefnu'r galwadau hyn i ddod â'r un profiad datblygwr â v2. Fodd bynnag, mae'r dull hwn yn dod â'r cydbwysedd perffaith o hyblygrwydd a hwylusder defnydd gan y gallwch nawr addasu'r broses adeiladu i'ch anghenion.
Gallwch hyd yn oed ddefnyddio gwneud os mai dyna eich dewis!
```yaml title="Snippet from Taskfile.yml"
build:darwin:
summary: Builds the application
platforms:
- darwin
cmds:
- task: pre-build
- task: build-frontend
- go build -gcflags=all="-N -l" -o bin/{{.APP_NAME}}
- task: post-build
env:
CGO_CFLAGS: "-mmacosx-version-min=10.13"
CGO_LDFLAGS: "-mmacosx-version-min=10.13"
MACOSX_DEPLOYMENT_TARGET: "10.13"
```
## Digwyddiadau gwelledig
Caiff digwyddiadau eu hamlygu nawr ar gyfer llawer o'r gweithrediadau amser gweithredu, gan eich galluogi i glymu i mewn i ddigwyddiadau cymhwysiad/system. Caiff digwyddiadau trawsblat (cyffredin) hefyd eu hamlygu lle ceir digwyddiadau platfform cyffredin, gan eich galluogi i ysgrifennu'r un dulliau trin digwyddiadau ar draws platfformau.
Gellir hefyd gofrestru bachau digwyddiad. Mae'r rhain fel y dull `On` ond yn synchronaidd ac yn caniatáu i chi ddiddymu'r digwyddiad. Enghraifft o hyn fyddai dangos cadarnhad cyn cau ffenestr.
```go
package main
import (
_ "embed"
"log"
"time"
"github.com/wailsapp/wails/v3/pkg/application"
"github.com/wailsapp/wails/v3/pkg/events"
)
//go:embed assets
var assets embed.FS
func main() {
app := application.New(application.Options{
Name: "Events Demo",
Description: "A demo of the Events API",
Assets: application.AssetOptions{
Handler: application.AssetFileServerFS(assets),
},
Mac: application.MacOptions{
ApplicationShouldTerminateAfterLastWindowClosed: true,
},
})
// Trin digwyddiadau cwstom
app.Events.On("myevent", func(e *application.WailsEvent) {
log.Printf("[Go] WailsEvent received: %+v\n", e)
})
// Digwyddiadau cymhwysiad penodol i'r system weithredu
app.On(events.Mac.ApplicationDidFinishLaunching, func(event *application.Event) {
println("events.Mac.ApplicationDidFinishLaunching fired!")
})
// Digwyddiadau agnostig i'r platfform
app.On(events.Common.ApplicationStarted, func(event *application.Event) {
println("events.Common.ApplicationStarted fired!")
})
win1 := app.NewWebviewWindowWithOptions(application.WebviewWindowOptions{
Title: "Takes 3 attempts to close me!",
})
var countdown = 3
// Cofrestru bachyn i ddiddymu'r ffenestr yn cau
win1.RegisterHook(events.Common.WindowClosing, func(e *application.WindowEvent) {
countdown--
if countdown == 0 {
println("Closing!")
return
}
println("Nope! Not closing!")
e.Cancel()
})
win1.On(events.Common.WindowFocus, func(e *application.WindowEvent) {
println("[Event] Window focus!")
})
err := app.Run()
if err != nil {
log.Fatal(err.Error())
}
}
```
## Iaith Marcio Wails (wml)
Nodwedd arbrofol i alw dulliau amser gweithredu gan ddefnyddio html plaen, yn debyg i
[htmx](https://htmx.org).
```html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Wails ML Demo</title>
</head>
<body style="margin-top:50px; color: white; background-color: #191919">
<h2>Wails ML Demo</h2>
<p>Mae'r cymhwysiad hwn yn cynnwys dim JavaScript!</p>
<button wml-event="button-pressed">Pwyswch fi!</button>
<button wml-event="delete-things" wml-confirm="Ydych chi'n siŵr?">
Dileu'r holl bethau!
</button>
<button wml-window="Close" wml-confirm="Ydych chi'n siŵr?">
Cau'r Ffenestr?
</button>
<button wml-window="Center">Canoli</button>
<button wml-window="Minimise">Lleihauo</button>
<button wml-window="Maximise">Mwyhau</button>
<button wml-window="UnMaximise">Dad-fwyhauo</button>
<button wml-window="Fullscreen">Sgrin lawn</button>
<button wml-window="UnFullscreen">Dad-sgrin lawn</button>
<button wml-window="Restore">Adfer</button>
<div
style="width: 200px; height: 200px; border: 2px solid white;"
wml-event="hover"
wml-trigger="mouseover"
>
Fy/Goresgyn fi
</div>
</body>
</html>
```
## Enghreifftiau
Mae mwy o enghreifftiau ar gael yn y [examples](https://github.com/wailsapp/wails/tree/v3-alpha/v3/examples) cyfeiriadur. Edrychwch arnynt!

View File

@ -0,0 +1,3 @@
module claude
go 1.22

View File

@ -0,0 +1,185 @@
package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
"os"
"path/filepath"
"strings"
"time"
)
var apiKey string
type Message struct {
Role string `json:"role"`
Content string `json:"content"`
}
type RequestBody struct {
Model string `json:"model"`
MaxTokens int `json:"max_tokens"`
Messages []Message `json:"messages"`
System string `json:"system"`
}
type Response struct {
ID string `json:"id"`
Type string `json:"type"`
Role string `json:"role"`
Content []struct {
Type string `json:"type"`
Text string `json:"text"`
} `json:"content"`
Model string `json:"model"`
StopReason string `json:"stop_reason"`
StopSequence any `json:"stop_sequence"`
Usage struct {
InputTokens int `json:"input_tokens"`
OutputTokens int `json:"output_tokens"`
} `json:"usage"`
}
func sendRequest(apiKey string, userPrompt string) (*Response, error) {
time.Sleep(2 * time.Second)
url := "https://api.anthropic.com/v1/messages"
requestBody := RequestBody{
Model: "claude-3-haiku-20240307",
MaxTokens: 4096,
System: `You are a highly skilled translator with expertise in many languages. Your task is to identify the language of the text I provide and accurately translate it into the specified target language, indicated by a language code e.g. 'zh' for chinese, while preserving the meaning, tone, and nuance of the original text. Please maintain proper grammar, spelling, and punctuation in the translated version. It will contain special Markdown syntax which must be preserved. You must also ensure that the translated text is culturally appropriate and sensitive to the target audience. You are responsible for the quality of the translation. If you are unable to provide a high-quality translation, please let me know.`,
Messages: []Message{
{
Role: "user",
Content: userPrompt,
},
},
}
jsonData, err := json.Marshal(requestBody)
if err != nil {
return nil, fmt.Errorf("Error marshalling request body")
}
req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
if err != nil {
return nil, fmt.Errorf("Error creating request")
}
req.Header.Set("x-api-key", apiKey)
req.Header.Set("anthropic-version", "2023-06-01")
req.Header.Set("content-type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
return nil, fmt.Errorf("Error sending request")
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, fmt.Errorf("Error reading response body")
}
//unmarshal the response
var response Response
err = json.Unmarshal(body, &response)
if err != nil {
return nil, fmt.Errorf("Error unmarshalling response")
}
return &response, nil
}
func translateDirectory(rootpath string, langcode string, langname string) error {
// Walk through the files in the directory
// for each file, read the file, print out the full path and filesize
// if the file is a directory, call this function recursively
err := filepath.Walk(rootpath, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if path == rootpath {
return nil
}
// Skip if not `.md` file or _category_.json
if filepath.Ext(path) != ".md" || strings.Contains(path, "_category_.json") {
return nil
}
if info.IsDir() {
return translateDirectory(path, langcode, langname)
}
// Calculate the target filename. This is the same path, but with using "../../docs/langcode" instead of "../../docs/en"
targetPath := strings.Replace(path, "/en/", "/"+langcode+"/", 1)
// If target file exists, skip it.
if _, err := os.Stat(targetPath); err == nil {
fmt.Printf("Skipping: %s\n", path)
return nil
}
fmt.Printf("Translating: %s, Size: %d\n", path, info.Size())
// Load the file
data, err := os.ReadFile(path)
if err != nil {
return err
}
user := fmt.Sprintf("Translate the following text from English to %s (%s):\n\n%s", langname, langcode, string(data))
// Send the request
response, err := sendRequest(apiKey, user)
if err != nil {
return err
}
// Create the target directory
err = os.MkdirAll(filepath.Dir(targetPath), 0755)
if err != nil {
return err
}
// Write the content
if len(response.Content) == 0 {
fmt.Printf("No content returned for: %v\n", response)
return nil
}
err = os.WriteFile(targetPath, []byte(response.Content[0].Text), 0644)
if err != nil {
return err
}
return nil
})
return err
}
func main() {
// Read the first argument. It is a language code. If it is not provided, show an error message
if len(os.Args) < 2 {
fmt.Println("Please provide the language as the first argument")
return
}
lang := os.Args[1]
if len(os.Args) < 3 {
fmt.Println("Please provide the language code as the second argument")
return
}
langcode := os.Args[2]
// load the API key from the .env file
data, err := os.ReadFile(".env")
if err != nil {
fmt.Println("Error reading .env file:", err)
return
}
apiKey = strings.TrimSpace(string(data))
rootPath := "../../docs/en"
err = translateDirectory(rootPath, langcode, lang)
if err != nil {
fmt.Println("Error translating directory:", err)
}
}

View File

@ -81,61 +81,46 @@ plugins:
default: true default: true
name: English name: English
build: true build: true
# - locale: zh - locale: cy
# name: 简体中文 name: Cymraeg
# build: true build: true
# site_description: Wails 项目 - 使用 Go 构建美观的跨平台应用程序 site_description: Y Prosiect Wails - Adeiladu cymwysiadau croesrwyd hardd gan ddefnyddio Go
# extra: extra:
# announcement: 这些文档是自动生成的。 如有错误,请告知我们。 announcement: Mae'r wefan hon wedi'i chyfieithu'n awtomatig. Rhowch wybod i ni os oes unrhyw gamgymeriadau.
# nav: nav:
# - 主页: index.md - Cartref: index.md
# - 入门: - Cychwyn:
# # - 介绍: introduction.md - Gosod: getting-started/installation.md
# - 安装: getting-started/installation.md - Eich Cais Cyntaf: getting-started/your-first-app.md
# # - 创建项目: getting-started/creating-a-project.md - Camau Nesaf: getting-started/next-steps.md
# # - 它是如何工作的: how-does-it-work.md - Dysgu Rhagor:
# # - 开发您的应用程序: getting-started/developing-your-application.md - Runtime: learn/runtime.md
# # - 编译您的项目: getting-started/compiling-your-project.md - Adborth: getting-started/feedback.md
# # - API 参考: - Adborth: getting-started/feedback.md
# # - 运行时: - Beth sydd Newydd yn v3?: whats-new.md
# # - 介绍: reference/runtime/introduction.md - API:
# # - CLI: reference/cli.md - Cais: API/application.md
# # - 社区: - Ffenestr: API/window.md
# # - 模板: community/templates.md - Bar Tasg: API/systray.md
# # - 指南: - Dewislen: API/menu.md
# # - Angular: guides/angular.md - Prif Linell: API/mainthread.md
# # - 展示: - Datblygu:
# # - Emaillit: community/showcase/emailit.md - Cyflwyniad: development/introduction.md
# # - 贡献: community/contributing.md - Status: development/status.md
# # - 链接: community/links.md - Newidiadau v3: development/changes.md
# - 下一步: getting-started/next-steps.md - Cynllun Ffordd Ymlaen: roadmap.md
# - 反馈: getting-started/feedback.md - Cofnod Newidiadau: changelog.md
# - 反馈: getting-started/feedback.md - Noddwr❤: https://github.com/sponsors/leaanthony
# - v3 版本中的新内容是什么?: whats-new.md
# - API:
# - 应用程序: API/application.md
# - 窗口: API/window.md
# - 系统托盘: API/systray.md
# - 菜单: API/menu.md
# - 主线程: API/mainthread.md
# - 完整 API: API/fullapi.md
# - 开发:
# - 介绍: development/introduction.md
# - 状态: development/status.md
# - v3 变更: development/changes.md
# - 路线图: roadmap.md
# - 更改日志: changelog.md
# - 赞助❤️: https://github.com/sponsors/leaanthony
extra: extra:
# alternate: alternate:
# - name: English - name: English
# link: / link: /
# lang: en lang: en
# - name: 简体中文 - name: Cymraeg
# link: /zh/ link: /cy/
# lang: zh lang: cy
social: social:
- icon: fontawesome/brands/github-alt - icon: fontawesome/brands/github-alt
@ -151,24 +136,7 @@ extra_css:
nav: nav:
- Home: index.md - Home: index.md
- Getting started: - Getting started:
# - Introduction: introduction.md
- Installation: getting-started/installation.md - Installation: getting-started/installation.md
# - Creating a Project: getting-started/creating-a-project.md
# - How does it work: how-does-it-work.md
# - Developing your Application: getting-started/developing-your-application.md
# - Compiling your Project: getting-started/compiling-your-project.md
# - API Reference:
# - Runtime:
# - Introduction: reference/runtime/introduction.md
# - CLI: reference/cli.md
# - Community:
# - Template: community/templates.md
# - Guides:
# - Angular: guides/angular.md
# - Showcase:
# - Emaillit: community/showcase/emailit.md
# - Contributing: community/contributing.md
# - Links: community/links.md
- Your First Application: getting-started/your-first-app.md - Your First Application: getting-started/your-first-app.md
- Next Steps: getting-started/next-steps.md - Next Steps: getting-started/next-steps.md
- Learn More: - Learn More:
@ -182,7 +150,6 @@ nav:
- System Tray: API/systray.md - System Tray: API/systray.md
- Menu: API/menu.md - Menu: API/menu.md
- Main Thread: API/mainthread.md - Main Thread: API/mainthread.md
- Full API: API/fullapi.md
- Development: - Development:
- Introduction: development/introduction.md - Introduction: development/introduction.md
- Status: development/status.md - Status: development/status.md

View File

@ -0,0 +1,60 @@
{#-
This file was automatically generated - do not edit
-#}
{% macro t(key) %}{{ {
"language": "cy",
"direction": "ltr",
"action.edit": "Golygu'r dudalen hon",
"action.skip": "Symud i'r cynnwys",
"action.view": "Gweld cod y dudalen hon",
"announce.dismiss": "Peidio â dangos hwn eto",
"blog.archive": "Archif",
"blog.categories": "Categorïau",
"blog.categories.in": "yn",
"blog.continue": "Parhau i ddarllen",
"blog.draft": "Drafft",
"blog.index": "Yn ôl i'r mynegai",
"blog.meta": "Metadata",
"blog.references": "Dolenni cysylltiedig",
"clipboard.copy": "Copïo i'r clipfwrdd",
"clipboard.copied": "Wedi'i gopïo i'r clipfwrdd",
"consent.accept": "Derbyn",
"consent.manage": "Rheoli gosodiadau",
"consent.reject": "Gwrthod",
"footer": "Troedyn",
"footer.next": "Nesaf",
"footer.previous": "Blaenorol",
"header": "Pennyn",
"meta.comments": "Sylwadau",
"meta.source": "Ffynhonnell",
"nav": "Llywio",
"readtime.one": "1 munud i'w ddarllen",
"readtime.other": "# munud i'w ddarllen",
"rss.created": "Bwydo RSS",
"rss.updated": "Bwydo RSS o gynnwys wedi'i ddiweddaru",
"search": "Chwilio",
"search.config.lang": "cy",
"search.config.pipeline": "stopWordFilter",
"search.config.separator": "[\\s\\-]+",
"search.placeholder": "Chwilio",
"search.share": "Rhannu",
"search.reset": "Clirio",
"search.result.initializer": "Yn cychwyn chwilio",
"search.result.placeholder": "Teipiwch i ddechrau chwilio",
"search.result.none": "Dim dogfennau cyfatebol",
"search.result.one": "1 dogfen gyfatebol",
"search.result.other": "# dogfen gyfatebol",
"search.result.more.one": "1 arall ar y dudalen hon",
"search.result.more.other": "# arall ar y dudalen hon",
"search.result.term.missing": "Ar goll",
"select.language": "Dewis iaith",
"select.version": "Dewis fersiwn",
"source": "Mynd i'r storfa",
"source.file.contributors": "Cyfranwyr",
"source.file.date.created": "Wedi'i greu",
"source.file.date.updated": "Diweddariad diwethaf",
"tabs": "Tabiau",
"toc": "Tabl cynnwys",
"top": "Yn ôl i'r brig"
}[key] }}{% endmacro %}