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
@@ -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<--
@@ -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.
@@ -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.
@@ -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`.
@@ -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()
```
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -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.
@@ -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
@@ -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>
```
@@ -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
```
@@ -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