Compare commits
2570 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
f2cf2c4396 | ||
|
|
79a9ab995d | ||
|
|
f6aabb7c5d | ||
|
|
b2782daece | ||
|
|
e7fdf05b00 | ||
|
|
02c532234c | ||
|
|
6eb6241044 | ||
|
|
af205b4877 | ||
|
|
a04eaaa779 | ||
|
|
d09e04e483 | ||
|
|
f421136f75 | ||
| f78f76a679 | |||
|
|
cd3bf1b97a | ||
|
|
e4ac46eb19 | ||
|
|
0d825f5c72 | ||
|
|
84e87cc2cd | ||
|
|
096cb08e98 | ||
|
|
1728fc31ed | ||
|
|
162428d8cb | ||
|
|
24408b9440 | ||
|
|
641a402daa | ||
|
|
026f486b3e | ||
|
|
7bb3fc581b | ||
|
|
88618b4c29 | ||
|
|
70d74e675f | ||
|
|
b80b4b2534 | ||
|
|
de8b7c1ac0 | ||
|
|
ed69456064 | ||
|
|
370843c296 | ||
|
|
02edf04117 | ||
|
|
6b4a495b87 | ||
|
|
3738f7fd51 | ||
|
|
e28e5cb052 | ||
|
|
762831931b | ||
|
|
29b7e4da37 | ||
|
|
037f1bee08 | ||
|
|
b5c8a014b7 | ||
|
|
f6fa696eb4 | ||
|
|
558ac0ae0c | ||
|
|
3355b5edbe | ||
|
|
b8f14bfb5d | ||
|
|
34caa41963 | ||
|
|
12bfc634c3 | ||
|
|
6b162eb3f2 | ||
|
|
767d6c5a1d | ||
|
|
5ae0292e0b | ||
|
|
fd4333c0e4 | ||
|
|
9843084b03 | ||
|
|
824a175ec7 | ||
|
|
6d931dc89b | ||
|
|
8a89fb604b | ||
|
|
e677e99b02 | ||
|
|
76da76f3bf | ||
|
|
41ce067d43 | ||
|
|
eddb12c5fb | ||
|
|
c124bcb7c6 | ||
|
|
0120f09bb7 | ||
|
|
8430ac1e6c | ||
|
|
f5ca209c2b | ||
|
|
b529a8f40e | ||
|
|
62201a0169 | ||
|
|
1d5011e186 | ||
|
|
6ddb8e3c37 | ||
|
|
50c0d44477 | ||
|
|
b731a0cd48 | ||
|
|
7e8fbb27a3 | ||
|
|
3bfdc1d154 | ||
|
|
1136b9ecda | ||
|
|
24acf5c827 | ||
|
|
734828918b | ||
|
|
471ba7d4e1 | ||
|
|
01fc02be9a | ||
|
|
1b33496d42 | ||
|
|
0963a6475d | ||
|
|
47be9d5d02 | ||
|
|
8c3fc3f412 | ||
|
|
28c59e902c | ||
|
|
bd027e590e | ||
|
|
af8d6dbc7c | ||
|
|
9dd6d7c55f | ||
|
|
1b1e723bdf | ||
|
|
1f81dabef4 | ||
|
|
67fbd16be6 | ||
|
|
a25880462f | ||
|
|
fe6737d546 | ||
|
|
2ccbd6952e | ||
|
|
68cafd991b | ||
|
|
8c6a24dc81 | ||
|
|
d13e88e134 | ||
|
|
7a365be88a | ||
|
|
bce48181e0 | ||
|
|
5a856a00c5 | ||
|
|
f610d41661 | ||
|
|
c69bfcb8bf | ||
|
|
db4c1c730c | ||
|
|
a4a896eae2 | ||
|
|
523c760594 | ||
|
|
aa3e42735f | ||
|
|
a85e8fd11e | ||
|
|
3e4f7b40eb | ||
|
|
c21f5c28a8 | ||
|
|
b48d880933 | ||
|
|
5c8310da64 | ||
|
|
e599b99223 | ||
|
|
105b8c461c | ||
|
|
f890672849 | ||
|
|
cd93cae133 | ||
|
|
36ab573966 | ||
|
|
96f8809bd8 | ||
|
|
deb04a8e82 | ||
|
|
784793f0f5 | ||
|
|
521dc36895 | ||
|
|
97922263b7 | ||
|
|
ebd168071b | ||
|
|
c0a0fa5e2c | ||
|
|
21672a8cfb | ||
|
|
f20c31f4dd | ||
|
|
a1426b0e35 | ||
|
|
2f327fb711 | ||
|
|
c875c9abb5 | ||
|
|
0f96ae6e8c | ||
|
|
6404af1b2a | ||
|
|
a38bfa1449 | ||
|
|
52187c02ac | ||
|
|
cd6c22d461 | ||
|
|
ee590e964b | ||
|
|
abdaf9b2c8 | ||
|
|
5f54211928 | ||
|
|
9c9a294ba4 | ||
|
|
eca6ea64c1 | ||
|
|
f51e59c2e5 | ||
|
|
ff35e42a35 | ||
|
|
b77d2a217f | ||
|
|
5e0886bb85 | ||
|
|
539b84f491 | ||
|
|
535fcdbb8e | ||
|
|
688a216ad0 | ||
|
|
97a43ff02e | ||
|
|
e13241d6a8 | ||
|
|
4c3db8bb6c | ||
|
|
dd40e6d916 | ||
|
|
e9d858a815 | ||
|
|
784967f0d1 | ||
|
|
6a07d224b8 | ||
|
|
0c9f711afc | ||
|
|
4e7f7f61ab | ||
|
|
b876f253d3 | ||
|
|
b9df42d1fb | ||
|
|
6b323ecdae | ||
|
|
6649c0c06d | ||
|
|
4c11f2618c | ||
|
|
4f792d7d5f | ||
|
|
bf3366f272 | ||
|
|
2ad12d281d | ||
|
|
960eb4e867 | ||
|
|
b95b27f0d6 | ||
|
|
9531dc37d1 | ||
|
|
6706113188 | ||
|
|
4587b9b093 | ||
|
|
14e9ec64f1 | ||
|
|
ca86464716 | ||
|
|
fd162b694b | ||
|
|
6be0340161 | ||
|
|
b9e7a0ff95 | ||
|
|
693c33e83a | ||
|
|
703d449b0b | ||
|
|
b4369f4068 | ||
|
|
0ae1716a3c | ||
|
|
30943280a8 | ||
|
|
227515d750 | ||
|
|
ebc6ee4247 | ||
|
|
905b87bd57 | ||
|
|
0ccc819452 | ||
|
|
99003ce148 | ||
|
|
fd929f7c67 | ||
|
|
f4e9a62600 | ||
|
|
7e21b8ae67 | ||
|
|
de5a453ba2 | ||
|
|
e1acc7d6b0 | ||
|
|
d955f5745d | ||
|
|
a39fcb708c | ||
|
|
ac84d75e37 | ||
|
|
380e29c389 | ||
|
|
beee6a5e6a | ||
|
|
a319b6774b | ||
|
|
7443433cf5 | ||
|
|
1d2f3edf28 | ||
|
|
fc7d58f426 | ||
|
|
bff4d12865 | ||
|
|
e55b5064b0 | ||
|
|
b08f82c941 | ||
|
|
9a7204565e | ||
|
|
e72c4739c5 | ||
|
|
6b595c9443 | ||
|
|
9ce4fd42fa | ||
|
|
65adc01085 | ||
|
|
2f0e5e2579 | ||
|
|
4a229ba08d | ||
|
|
6cc2a3f484 | ||
|
|
bb22a59188 | ||
|
|
0cff3bc752 | ||
|
|
3be7f829c1 | ||
|
|
1fdc329fbc | ||
|
|
49d3118018 | ||
|
|
fa0eca6723 | ||
|
|
c375aab44e | ||
|
|
c0e6dc17e8 | ||
|
|
53241eba0a | ||
|
|
78acbff013 | ||
|
|
48a0b115f2 | ||
|
|
ababebbe3d | ||
|
|
9fe60b7249 | ||
|
|
8aa6cb2c91 | ||
|
|
9e5c0534aa | ||
|
|
b329123426 | ||
|
|
1c6787bdc3 | ||
|
|
1b4695771c | ||
|
|
29090455de | ||
|
|
bffb01401f | ||
|
|
c99584fc41 | ||
|
|
3697c190e5 | ||
|
|
8197edf722 | ||
|
|
d23795ef6c | ||
|
|
bb400cde9f | ||
|
|
b871981c8d | ||
|
|
ec99fba2fc | ||
|
|
7f977b9f4d | ||
|
|
7c4f1a8d02 | ||
|
|
a0df20e97d | ||
|
|
3ceacc3b32 | ||
|
|
dda1b3b118 | ||
|
|
ff379da2dd | ||
|
|
655253d0d7 | ||
|
|
690afc7cfb | ||
|
|
62c530a4d0 | ||
|
|
f5cd9ce15c | ||
|
|
ef0faf698e | ||
|
|
2fadf1f9c3 | ||
|
|
b44b34b982 | ||
|
|
93cfff70ba | ||
|
|
97bc544bf9 | ||
|
|
ee62544c54 | ||
|
|
a9848f47fc | ||
|
|
9107e8b335 | ||
|
|
583c806cea | ||
|
|
cd4a14f5c3 | ||
|
|
6fa8e110bc | ||
|
|
3ea0240bcc | ||
|
|
216c259770 | ||
|
|
820bfdb062 | ||
|
|
b74176b685 | ||
|
|
510e7dc0b4 | ||
|
|
562539afe5 | ||
|
|
1875336e75 | ||
|
|
6755047587 | ||
|
|
170dfda478 | ||
|
|
6f2432b5b8 | ||
|
|
63ee310f34 | ||
|
|
1215ba1be6 | ||
|
|
1230478701 | ||
|
|
97c97ba702 | ||
|
|
5e3ffaa9e0 | ||
|
|
724a8b4220 | ||
|
|
b1789baa36 | ||
|
|
9d248c1494 | ||
|
|
8f31927d01 | ||
|
|
1febb9c10d | ||
|
|
6d54677ef4 | ||
|
|
535e9b605a | ||
|
|
79482c6dde | ||
|
|
5c71649be5 | ||
|
|
23113d8053 | ||
|
|
260b45afbe | ||
|
|
20f2d8519f | ||
|
|
7be695a2f6 | ||
|
|
671def88af | ||
|
|
b63241658e | ||
|
|
4a3e01d2cb | ||
|
|
7203eebde7 | ||
|
|
3662b61406 | ||
|
|
89b11bd248 | ||
|
|
f6a90db92a | ||
|
|
00632be1fb | ||
|
|
e208af2939 | ||
|
|
9987f226bf | ||
|
|
e296d74ee0 | ||
|
|
90c9653e01 | ||
|
|
f239d2a0e3 | ||
|
|
ba3a8cae6a | ||
|
|
daee5c8727 | ||
|
|
d5fc3f5432 | ||
|
|
6f5995abdb | ||
|
|
6fad351a7a | ||
|
|
f0d1971977 | ||
|
|
29cb152be2 | ||
|
|
e8849e8682 | ||
|
|
449ca153a2 | ||
|
|
961c09100c | ||
|
|
7aeadf74ce | ||
|
|
47af31d856 | ||
|
|
8759b2332d | ||
|
|
291d85f81a | ||
|
|
110f571475 | ||
|
|
06644352dc | ||
|
|
8975d1c727 | ||
|
|
bbc89f7403 | ||
|
|
5e19c09d88 | ||
|
|
77b76d91ed | ||
|
|
2c84a6df5a | ||
|
|
b43d3f903a | ||
|
|
3a2ceeadda | ||
|
|
c14136b32a | ||
|
|
26e73056c2 | ||
|
|
a2bc170a12 | ||
|
|
2beca51c5a | ||
|
|
54505d3102 | ||
|
|
dfe2fabc69 | ||
|
|
0e101ecc8a | ||
|
|
9dad8b9e09 | ||
|
|
ca469c8c7d | ||
|
|
7a7180ad79 | ||
|
|
09e8f79519 | ||
|
|
87f242e363 | ||
|
|
504ddb532d | ||
|
|
8ef76514e2 | ||
|
|
9bd2a53f69 | ||
|
|
d8c218addd | ||
|
|
e6f4b071af | ||
|
|
7c5deeacdd | ||
|
|
b07c388fc0 | ||
|
|
35ebd43fd7 | ||
|
|
b1eb74225d | ||
|
|
04d469e884 | ||
|
|
45291c8832 | ||
|
|
a6f74184b2 | ||
|
|
56551bc84e | ||
|
|
34dcae52f2 | ||
|
|
99b7396f23 | ||
|
|
64ce8bac74 | ||
|
|
d41f3c6d76 | ||
|
|
1b4c1583b2 | ||
|
|
010a496f46 | ||
|
|
ff20a467c6 | ||
|
|
0ecfd70af9 | ||
|
|
51a5e19936 | ||
|
|
8c992955cb | ||
|
|
a23c05cc31 | ||
|
|
1984f89fad | ||
|
|
ce88a96620 | ||
|
|
3c860c34f1 | ||
|
|
514ad9aa7a | ||
|
|
d5973740f2 | ||
|
|
b9db4d3a0c | ||
|
|
adb799780e | ||
|
|
e4194105ed | ||
|
|
789337c9ed | ||
|
|
a8cb1eb2a1 | ||
|
|
68e1ec0578 | ||
|
|
3b48d79db3 | ||
|
|
8a607d7e05 | ||
|
|
1bfac93a81 | ||
|
|
d84100cef1 | ||
|
|
4d3f7158de | ||
|
|
78901cd620 | ||
|
|
fed15e5059 | ||
|
|
a083d258fa | ||
|
|
b72a1cd126 | ||
|
|
a7045e4621 | ||
|
|
75eaaf6ff0 | ||
|
|
4e3ed839c7 | ||
|
|
956f586d60 | ||
|
|
327336dcde | ||
|
|
dffc46c083 | ||
|
|
cb87b9eeb6 | ||
|
|
99b0f48d92 | ||
|
|
406f3835b1 | ||
|
|
420f123697 | ||
|
|
7a10ff55a9 | ||
|
|
b40ca7446e | ||
|
|
d1c1ae22b0 | ||
|
|
8d8ff08e3a | ||
|
|
ce5d1db1d2 | ||
|
|
2ea513c4d6 | ||
|
|
a9bde454c1 | ||
|
|
3e6d7ea615 | ||
|
|
c78a0faf69 | ||
|
|
be29d2a97c | ||
|
|
a98b445de8 | ||
|
|
cedcd48b13 | ||
|
|
acb338bc64 | ||
|
|
69f8925199 | ||
|
|
98e64c0abc | ||
|
|
a70084e671 | ||
|
|
9fe4ee1fcb | ||
|
|
12ed469007 | ||
|
|
fe78582e65 | ||
|
|
16c349548e | ||
|
|
d1867ee15a | ||
|
|
4e8a904477 | ||
|
|
779dd2ddc5 | ||
|
|
6a0244cf20 | ||
|
|
f093486734 | ||
|
|
aa99cfd5dd | ||
|
|
921c5885bf | ||
|
|
996f25d1fd | ||
|
|
d0c694b46e | ||
|
|
66d6704a08 | ||
|
|
360ce67af8 | ||
|
|
7fed72810c | ||
|
|
a1a5e75143 | ||
|
|
c8d9276926 | ||
|
|
5eff4ef959 | ||
|
|
7bb292f439 | ||
|
|
f744d860b3 | ||
|
|
0bfb8b4eed | ||
|
|
ccf09cca75 | ||
|
|
8d594ab62d | ||
|
|
334cb94c08 | ||
|
|
485a0ea202 | ||
|
|
367d28c909 | ||
|
|
b9d9436a94 | ||
|
|
ae0f629fa7 | ||
|
|
c6669df375 | ||
|
|
1f2584e093 | ||
|
|
eddb935907 | ||
|
|
fb123d2080 | ||
|
|
b55097eeca | ||
|
|
82a947201b | ||
|
|
c8421b7870 | ||
|
|
dd907871c5 | ||
|
|
07a72c3eae | ||
|
|
1ab517f8a0 | ||
|
|
8b4fcd14d8 | ||
|
|
ec77153a75 | ||
|
|
2a34485411 | ||
|
|
eae88d1cee | ||
|
|
4b40f3af0d | ||
|
|
34011b5d01 | ||
|
|
575c226a98 | ||
|
|
6b52d32ac1 | ||
|
|
b268277d9b | ||
|
|
65ebdcdd8a | ||
|
|
93122e6032 | ||
|
|
25616ee8ce | ||
|
|
c5596ba0ad | ||
|
|
348e6347c1 | ||
|
|
866cf8c704 | ||
|
|
823fdf3177 | ||
|
|
9af579f9fd | ||
|
|
a7c4f92e9a | ||
|
|
0de9223c4f | ||
|
|
0d1c73d1df | ||
|
|
f626cf0837 | ||
|
|
197903f611 | ||
|
|
d7b5cba088 | ||
|
|
6b711cebe9 | ||
|
|
b244b611b3 | ||
|
|
6bc7db501d | ||
|
|
cfedf5cd44 | ||
|
|
25f416b1fa | ||
|
|
67518be5ca | ||
|
|
1e91472b12 | ||
|
|
176a54d5be | ||
|
|
004a059504 | ||
|
|
90c5062fc7 | ||
|
|
1167c7883e | ||
|
|
8e80cb0afc | ||
|
|
fbba6c320b | ||
|
|
bba37676ad | ||
|
|
ef8c8d83b0 | ||
|
|
7c348b899a | ||
|
|
4687e8ba9d | ||
|
|
3eca53d1dc | ||
|
|
b142cd7fd4 | ||
|
|
f4d7795f1c | ||
|
|
386796a413 | ||
|
|
ed840c0c16 | ||
|
|
4aa23a9603 | ||
|
|
00ba707114 | ||
|
|
a672bbf04f | ||
|
|
eff118d1db | ||
|
|
2e5cb614a1 | ||
|
|
acc0912509 | ||
|
|
4d68042c07 | ||
|
|
8b99e9fd89 | ||
|
|
45c4aa03fb | ||
|
|
54173d51ff | ||
|
|
82f56e95e4 | ||
|
|
f7747f2865 | ||
|
|
549c827a4b | ||
|
|
367d58a632 | ||
|
|
915f72a753 | ||
|
|
7d707b7471 | ||
|
|
faaf56c93b | ||
|
|
37e6cd12ff | ||
|
|
648e687c9f | ||
|
|
4bdd69b35e | ||
|
|
6ce041ba33 | ||
|
|
1094072e9a | ||
|
|
3f22fcabc8 | ||
|
|
cfed3acd66 | ||
|
|
e2cff94a62 | ||
|
|
82d0661e37 | ||
|
|
5504d40c8f | ||
|
|
60fd1aa17b | ||
|
|
4d6ff675d0 | ||
|
|
014ae4eb03 | ||
|
|
72c395c25b | ||
|
|
abd85d2b53 | ||
|
|
66bbb8c4f8 | ||
|
|
4343425ce2 | ||
|
|
39fe6b59a1 | ||
|
|
d11e07c812 | ||
|
|
e6e57c8062 | ||
|
|
4f47ba19d6 | ||
|
|
e035e85018 | ||
|
|
42e8b2dd0c | ||
|
|
b60789c85e | ||
|
|
cb21f5acbf | ||
|
|
566e84bf25 | ||
|
|
ae487b925e | ||
|
|
d9631099cf | ||
|
|
48b58b1f30 | ||
|
|
77b7b28403 | ||
|
|
9640a57dc8 | ||
|
|
9b49734e53 | ||
|
|
739146e0fb | ||
|
|
34451a62e8 | ||
|
|
89be8c9d9c | ||
|
|
e6dcf2ef82 | ||
|
|
a16581f608 | ||
|
|
f9e6df8f92 | ||
|
|
416078506b | ||
|
|
d5be1e328c | ||
|
|
4beb064fe9 | ||
|
|
2d6dce6351 | ||
|
|
d5e0ba8013 | ||
|
|
320ce4a62d | ||
|
|
0edba02ead | ||
|
|
0a19bcbd06 | ||
|
|
38cdcc5379 | ||
|
|
1ea593b2a3 | ||
|
|
0c2bc8ad38 | ||
|
|
ba90793830 | ||
|
|
2fc97006d9 | ||
|
|
103186d088 | ||
|
|
fce340fd33 | ||
|
|
b97313914f | ||
|
|
5635c67251 | ||
|
|
2971a8473b | ||
|
|
fb59410818 | ||
|
|
eebe58ca2e | ||
|
|
397b177462 | ||
|
|
79d0e80b1c | ||
|
|
6b7bcd0314 | ||
|
|
2b811911d3 | ||
|
|
e218943c42 | ||
|
|
9d97c93ece | ||
|
|
c5c6897ee3 | ||
|
|
2fc9a59695 | ||
|
|
9a9a05cd7e | ||
|
|
dba2f9485d | ||
|
|
9ce3662681 | ||
|
|
a35258a133 | ||
|
|
ae47aaeacd | ||
|
|
dc4e96ebf2 | ||
|
|
392c3ea07c | ||
|
|
e4b5cbd0bf | ||
|
|
faa097ac37 | ||
|
|
5e5cf93699 | ||
|
|
796148f410 | ||
|
|
990c5f497c | ||
|
|
ee739884e4 | ||
|
|
31d97bb939 | ||
|
|
4a7c06e6f0 | ||
|
|
84a79686d4 | ||
|
|
9b3bb24cda | ||
|
|
1cfe00697a | ||
|
|
a57910bda7 | ||
|
|
bd04109f55 | ||
|
|
11906bab53 | ||
|
|
e51bb95fa6 | ||
|
|
f63e429c2a | ||
|
|
2b0da9beb6 | ||
|
|
8e7b8ae078 | ||
|
|
bc568a69fd | ||
|
|
163e8a75dc | ||
|
|
50ec9b42ed | ||
|
|
98b9aaab28 | ||
|
|
f8cd1d0d92 | ||
|
|
ee4555b3c6 | ||
|
|
e37801fe6d | ||
|
|
5ba6a02113 | ||
|
|
7e0428112a | ||
|
|
058d51e80e | ||
|
|
87fdf9acca | ||
|
|
4d3fa458eb | ||
|
|
9aa6f2d36b | ||
|
|
46eeeb107e | ||
|
|
a1a63d474c | ||
|
|
af15669fa6 | ||
|
|
67cebd9ca6 | ||
|
|
4a20de77f9 | ||
|
|
fee724f2d9 | ||
|
|
0044a2f731 | ||
|
|
e700176924 | ||
|
|
b2820e908f | ||
|
|
d3fc1a6582 | ||
|
|
68a376f3ae | ||
|
|
74b1640214 | ||
|
|
62b80c229b | ||
|
|
eb4dc9e66c | ||
|
|
0926d6fa37 | ||
|
|
62901ae91b | ||
|
|
e78c894fb8 | ||
|
|
f6e2051355 | ||
|
|
24ca9a3a04 | ||
|
|
f54ae5ce15 | ||
|
|
a6903612e4 | ||
|
|
3df616ef02 | ||
|
|
11f45a465c | ||
|
|
8db7b1561d | ||
|
|
5d6285e260 | ||
|
|
ec2d73bc4c | ||
|
|
797485272c | ||
|
|
fc5c079118 | ||
|
|
712c660aee | ||
|
|
b0b61b5ca7 | ||
|
|
b96d86ac82 | ||
|
|
bac5fdf824 | ||
|
|
07a9cb6256 | ||
|
|
b01f5d473a | ||
|
|
7eb105c5ed | ||
|
|
0d7d172aae | ||
|
|
233ef00989 | ||
|
|
10ffb371dc | ||
|
|
d37cbf4545 | ||
|
|
9153388c06 | ||
|
|
7a89dc7fef | ||
|
|
2391fce076 | ||
|
|
3a67535206 | ||
|
|
2f94e63381 | ||
|
|
bf2217e0b0 | ||
|
|
c31f3defaa | ||
|
|
f3fc6ae757 | ||
|
|
daaeba1bbb | ||
|
|
bd27f55d32 | ||
|
|
c1913ffde2 | ||
|
|
060ee9679a | ||
|
|
3115070aea | ||
|
|
aea9eba50b | ||
|
|
1da0265a7c | ||
|
|
186cb5e81b | ||
|
|
20e42186fb | ||
|
|
02f785dd97 | ||
|
|
7e6b98cb73 | ||
|
|
de5a9d18ba | ||
|
|
d9ea86441d | ||
|
|
0a037aaef6 | ||
|
|
c760eafd86 | ||
|
|
9f0c7ecb24 | ||
|
|
1fb952c8dc | ||
|
|
86b4bd65b8 | ||
|
|
5270379632 | ||
|
|
380ccacddf | ||
|
|
9e78e0f046 | ||
|
|
8db4bd1e5f | ||
|
|
ba64945d2d | ||
|
|
5fd4ce231f | ||
|
|
654ba50e49 | ||
|
|
dc074a07e4 | ||
|
|
38eb05efb7 | ||
|
|
1eba971031 | ||
|
|
5fa696c18a | ||
|
|
7b9a2d4b2e | ||
|
|
bad6766532 | ||
|
|
3a42cd73cb | ||
|
|
36e19acf88 | ||
|
|
c458dcc620 | ||
|
|
c24bd47163 | ||
|
|
9e1b4ba1f4 | ||
|
|
bce93a0856 | ||
|
|
ed6666e65a | ||
|
|
e3b9f7cf24 | ||
|
|
b0b32b43d8 | ||
|
|
347d7f2593 | ||
|
|
e673f36288 | ||
|
|
933c53c87b | ||
|
|
c99686d727 | ||
|
|
a1410302ce | ||
|
|
8941488682 | ||
|
|
ec8e0a7feb | ||
|
|
cb0d2e59b8 | ||
|
|
2166fa0396 | ||
|
|
bb8146e9c3 | ||
|
|
8698bf1d45 | ||
|
|
33f0fb9413 | ||
|
|
f05e726ca4 | ||
|
|
8791ca5800 | ||
|
|
8d6c8d9f61 | ||
|
|
6b0f73d41a | ||
|
|
bc7befd4a8 | ||
|
|
fc865fd5bc | ||
|
|
e4a9446e2b | ||
|
|
8abcd226e5 | ||
|
|
cd26a19c1a | ||
|
|
2cda8efec0 | ||
|
|
72e0250317 | ||
|
|
42c66426e6 | ||
|
|
e77f32d2f6 | ||
|
|
80f398c39e | ||
|
|
5570ede2a3 | ||
|
|
06122aa295 | ||
|
|
e7123b4af3 | ||
|
|
a7be4266bc | ||
|
|
d62adc4a97 | ||
|
|
4b4db26721 | ||
|
|
ca752d6edb | ||
|
|
8a6a224fda | ||
|
|
be639522fe | ||
|
|
184654c67f | ||
|
|
3dabf07a60 | ||
|
|
8ec867c2d2 | ||
|
|
75a8983c97 | ||
|
|
dac075f570 | ||
|
|
0152590bda | ||
|
|
8e06ebbda0 | ||
|
|
ee85a19b53 | ||
|
|
6a22bdf206 | ||
|
|
7e0d0e91d6 | ||
|
|
0c71605e1b | ||
|
|
5a5a0e3521 | ||
|
|
6fb18b5674 | ||
|
|
3188b9ed69 | ||
|
|
98591f74dd | ||
|
|
168a8fea72 | ||
|
|
74c9aa5a2b | ||
|
|
6c010665c1 | ||
|
|
d69c497824 | ||
|
|
f6707a2488 | ||
|
|
44cef5ec83 | ||
|
|
1390f13600 | ||
|
|
95b6b47802 | ||
|
|
aab3531a42 | ||
|
|
442264b3ab | ||
|
|
7fcc68e567 | ||
|
|
09f7fdb8df | ||
|
|
71dd9410d8 | ||
|
|
09af70d338 | ||
|
|
60444de60e | ||
|
|
c5d4d61108 | ||
|
|
3b60f6b063 | ||
|
|
f9780f08c8 | ||
|
|
d2e58deec5 | ||
|
|
4e61c3cba6 | ||
|
|
aa26e2b2c8 | ||
|
|
56c7db6e87 | ||
|
|
50675b87a8 | ||
|
|
d5ee36b65e | ||
|
|
f53cee3ca4 | ||
|
|
9a4048574c | ||
|
|
b9d427af3e | ||
|
|
3a70cfa8de | ||
|
|
f761a5a6ba | ||
|
|
16c8ccb9da | ||
|
|
f540f010c0 | ||
|
|
9b15f7269c | ||
|
|
759b30adc5 | ||
|
|
67a58e654f | ||
|
|
64dd79e8c2 | ||
|
|
74c1686418 | ||
|
|
c53ad98c0f | ||
|
|
c6b28e4385 | ||
|
|
9409c60613 | ||
|
|
6b2223c697 | ||
|
|
f6e4d27272 | ||
|
|
6d180adca9 | ||
|
|
9356a2a5dc | ||
|
|
a2bdbf6d85 | ||
|
|
d88be00fd3 | ||
|
|
c294af97a8 | ||
|
|
f7ad47e359 | ||
|
|
865919a3af | ||
|
|
9388b42001 | ||
|
|
98d0ee0dc7 | ||
|
|
f09603f2bf | ||
|
|
af131abe91 | ||
|
|
74ef69cee1 | ||
|
|
47c064046e | ||
|
|
bcdc03dd72 | ||
|
|
b8e1f9c2ee | ||
|
|
2587956fcf | ||
|
|
55c7872ed8 | ||
|
|
283a5537de | ||
|
|
d688e2dd0d | ||
|
|
a5eee6b37b | ||
|
|
b6ade82dd0 | ||
|
|
4a39a1e408 | ||
|
|
270932e40b | ||
|
|
caa6dcd053 | ||
|
|
8fb67541c1 | ||
|
|
7745a0738a | ||
|
|
3baa4dc1df | ||
|
|
032fef1092 | ||
|
|
df3e51629b | ||
|
|
fecf6233d9 | ||
|
|
fe64931f67 | ||
|
|
699a1f32f4 | ||
|
|
a551c89f3f | ||
|
|
ff9948768a | ||
|
|
baf34452fa | ||
|
|
9219209032 | ||
|
|
4251069718 | ||
|
|
f034557f17 | ||
|
|
f67d73de3e | ||
|
|
080dc05e16 | ||
|
|
0c66ba28ee | ||
|
|
f90370d01a | ||
|
|
6c22acf0e5 | ||
|
|
26a4af2a10 | ||
|
|
32a441cda9 | ||
|
|
70f2d8f3b4 | ||
|
|
7530eea63a | ||
|
|
d50bd6e777 | ||
|
|
64c3c71e08 | ||
|
|
6ed031238b | ||
|
|
0ff2ebfd2a | ||
|
|
41055f2292 | ||
|
|
bbc30d6cb9 | ||
|
|
d138e59110 | ||
|
|
eae404e3e7 | ||
|
|
bb2a2869f1 | ||
|
|
abbc413671 | ||
|
|
691f0492eb | ||
|
|
df8efe60de | ||
|
|
10304adf34 | ||
|
|
588c69102a | ||
|
|
ac3cef77ac | ||
|
|
d6c5b875d3 | ||
|
|
a43a0bf527 | ||
|
|
4fdafdd86a | ||
|
|
171631c025 | ||
|
|
34b2f6dde3 | ||
|
|
0f20459b69 | ||
|
|
0c51e1c409 | ||
|
|
be85bf5fa3 | ||
|
|
acd3bc97a0 | ||
|
|
a65aa4d828 | ||
|
|
9861ea7ddd | ||
|
|
3c58988c34 | ||
|
|
140a8da62d | ||
|
|
102a4d7af6 | ||
|
|
ce4047261c | ||
|
|
818106b0eb | ||
|
|
ddf5a0639b | ||
|
|
a2272fd4ed | ||
|
|
f834ccc653 | ||
|
|
b7e8f8a052 | ||
|
|
7d4f8a6f9f | ||
|
|
cc8badfee4 | ||
|
|
7406381094 | ||
|
|
85de937667 | ||
|
|
1a8301380c | ||
|
|
eea2c89a16 | ||
|
|
24c05e4d8f | ||
|
|
2f221b972c | ||
|
|
16b89699a0 | ||
|
|
424572375f | ||
|
|
fb77d69128 | ||
|
|
794207f6e7 | ||
|
|
f11ff0726c | ||
|
|
aeed9be8db | ||
|
|
946897527e | ||
|
|
21e924273d | ||
|
|
532b863674 | ||
|
|
133d945758 | ||
|
|
92446d1b3c | ||
|
|
7643de9ce1 | ||
|
|
1dedae4f8f | ||
|
|
050b9afd44 | ||
|
|
607098ffd7 | ||
|
|
5f07c1ee48 | ||
|
|
934ad9f298 | ||
|
|
7244367cf7 | ||
|
|
2801724f1c | ||
|
|
fe1c79e80d | ||
|
|
7b151e046f | ||
|
|
8c6e8be2e8 | ||
|
|
e6dbb9dd7c | ||
|
|
81bcd8179d | ||
|
|
41a4922088 | ||
|
|
42d701730c | ||
|
|
e39151c9d6 | ||
|
|
378c483748 | ||
|
|
ac04a61562 | ||
|
|
1abbc80c70 | ||
|
|
c456ae2e4a | ||
|
|
78407ceb87 | ||
|
|
81f6062a44 | ||
|
|
2ea7a49321 | ||
|
|
45e09c7dd3 | ||
|
|
668f6fe2f6 | ||
|
|
0b1b3ad244 | ||
|
|
cef491f96c | ||
|
|
9bca71468f | ||
|
|
c3ee1efb56 | ||
|
|
7f28b16eae | ||
|
|
f5db958f53 | ||
|
|
cad40cd369 | ||
|
|
952d92df18 | ||
|
|
4cb9c58ae6 | ||
|
|
9e80c77050 | ||
|
|
837d9bec90 | ||
|
|
ddc064e86b | ||
|
|
49f62494d6 | ||
|
|
4ff55ca4a7 | ||
|
|
9ebee3d917 | ||
|
|
d246071348 | ||
|
|
a4b6b42b56 | ||
|
|
888f22ffde | ||
|
|
05c35149a5 | ||
|
|
85b2e2db18 | ||
|
|
22803752d1 | ||
|
|
1fc8fb84a8 | ||
|
|
e4b669e8c1 | ||
|
|
a1c99ae713 | ||
|
|
caf51ea53d | ||
|
|
eead5afa67 | ||
|
|
903d886aee | ||
|
|
c7ae38df7e | ||
|
|
9175a3c553 | ||
|
|
2bff7f974b | ||
|
|
e99a9d3325 | ||
|
|
7228e2872c | ||
|
|
e02a7d5ab5 | ||
|
|
c8e729bbe4 | ||
|
|
475a9dd45d | ||
|
|
38639932d9 | ||
|
|
1c8661f8c4 | ||
|
|
fb9ab8a346 | ||
|
|
cc9b7ae58b | ||
|
|
92a9c7476b | ||
|
|
e34676ae57 | ||
|
|
4bc9aae1aa | ||
|
|
98b4248a3c | ||
|
|
37cea519e0 | ||
|
|
0587524c6c | ||
|
|
c28e1a0ba4 | ||
|
|
5e46735bb2 | ||
|
|
d9f70bdbac | ||
|
|
2dddd1c2ad | ||
|
|
8775416064 | ||
|
|
ae8d790b55 | ||
|
|
a067c4d932 | ||
|
|
5668a56e2d | ||
|
|
713b8252fe | ||
|
|
10e1b9d4d9 | ||
|
|
51ea95e79d | ||
|
|
41622806c2 | ||
|
|
b0d083bd2f | ||
|
|
2a4d44ff78 | ||
|
|
c34e525fb2 | ||
|
|
3da463382d | ||
|
|
50d65e2d7d | ||
|
|
93c1de8a3d | ||
|
|
6d56020110 | ||
|
|
2448f2cd38 | ||
|
|
cc27826a48 | ||
|
|
ad11b458f5 | ||
|
|
8c53a67e06 | ||
|
|
db1841bbf3 | ||
|
|
ff9afd0485 | ||
|
|
33470486ea | ||
|
|
6e6113b887 | ||
|
|
fd4bdd04e9 | ||
|
|
2296fe166b | ||
|
|
c7f2248eaf | ||
|
|
833f92dded | ||
|
|
89478c8dd3 | ||
|
|
ba4cd217c0 | ||
|
|
409ce4f2e9 | ||
|
|
a8690808c2 | ||
|
|
a9f4cab48b | ||
|
|
3a8a3680c5 | ||
|
|
0956b528cb | ||
|
|
3944a8c9a2 | ||
|
|
8c75e36115 | ||
|
|
e7fabab051 | ||
|
|
77f112fcb9 | ||
|
|
bc41619497 | ||
|
|
104c8b0d01 | ||
|
|
6e7e5f7840 | ||
|
|
f558f53a95 | ||
|
|
a13bafa2c0 | ||
|
|
187f53b837 | ||
|
|
5391edebc1 | ||
|
|
5d2f70a45d | ||
|
|
f28e3d1225 | ||
|
|
16c0592523 | ||
|
|
2e03a29de9 | ||
|
|
70cc564582 | ||
|
|
55f8b58c9a | ||
|
|
4c75bacca0 | ||
|
|
2bb5b677ef | ||
|
|
64bfe5a935 | ||
|
|
41f3dcd0fc | ||
|
|
8243e07448 | ||
|
|
31cf39aa91 | ||
|
|
8cedbc7469 | ||
|
|
f967b812cb | ||
|
|
21d2b5b133 | ||
|
|
fbdefac538 | ||
|
|
8deb2ff7ed | ||
|
|
bf5ce29d04 | ||
|
|
0bc2d95f15 | ||
|
|
54e23f38cd | ||
|
|
1fd23ae721 | ||
|
|
e966ffad6d | ||
|
|
4bd1a6f11b | ||
|
|
b2502ce0e8 | ||
|
|
ad649ad4f7 | ||
|
|
6e23fa7efd | ||
|
|
074357a238 | ||
|
|
d01b1c868f | ||
|
|
466d310c25 | ||
|
|
33343f64ef | ||
|
|
40daa9596f | ||
|
|
12d1b2a112 | ||
|
|
0b93d7e6c6 | ||
|
|
6d8f4f79b1 | ||
|
|
ad9d04a24e | ||
|
|
f1c6e44c5c | ||
|
|
87245f09ad | ||
|
|
f6e5202a99 | ||
|
|
a0bfd9d83f | ||
|
|
2b5ad3e4c4 | ||
|
|
0899b4f6b1 | ||
|
|
960f62d94b | ||
|
|
1dfa425889 | ||
|
|
7a347afb40 | ||
|
|
230e91b60d | ||
|
|
3092278d63 | ||
|
|
e83873bbea | ||
|
|
2bec8e4aff | ||
|
|
42ead5886d | ||
|
|
3d85401ab1 | ||
|
|
ddef31ae21 | ||
|
|
3c630657b1 | ||
|
|
61a95e781a | ||
|
|
49b363494a | ||
|
|
e234e2340d | ||
|
|
c7f8008355 | ||
|
|
caad6871ca | ||
|
|
9aadd42471 | ||
|
|
df5e135834 | ||
|
|
84fd163ca8 | ||
|
|
187190b229 | ||
|
|
92e02634e8 | ||
|
|
134b72f219 | ||
|
|
970b962208 | ||
|
|
7da4e4de59 | ||
|
|
0f72d9504a | ||
|
|
9103a95315 | ||
|
|
ffc5bd1654 | ||
|
|
ef916607d8 | ||
|
|
2b4f8f8d38 | ||
|
|
f3d0538207 | ||
|
|
b9d63340b8 | ||
|
|
ec99e41614 | ||
|
|
8101f59fc5 | ||
|
|
93c3ea2d9f | ||
|
|
3dcbecf04a | ||
|
|
a0e2e03616 | ||
|
|
aad07535fb | ||
|
|
1334aad4f6 | ||
|
|
af4239b957 | ||
|
|
8267af24c7 | ||
|
|
06e4eb5f79 | ||
|
|
5010e54b53 | ||
|
|
e53d17495e | ||
|
|
729ec29b37 | ||
|
|
26c3d53e55 | ||
|
|
b88132620d | ||
|
|
cd10bb3092 | ||
|
|
40f73dc4ef | ||
|
|
a73cf4f787 | ||
|
|
b17afcf40c | ||
|
|
05875b94b7 | ||
|
|
f7bf92885e | ||
|
|
c5f26f3e94 | ||
|
|
f6b060c0f9 | ||
|
|
4741ff1289 | ||
|
|
1337fe9816 | ||
|
|
e19308cba4 | ||
|
|
a5acdfa3da | ||
|
|
f57a6b512a | ||
|
|
5afcbfe8c6 | ||
|
|
507f1e7a92 | ||
|
|
fa5653ce16 | ||
|
|
1283a0f4b2 | ||
|
|
a27aeb6613 | ||
|
|
0e4fed94b1 | ||
|
|
df2e255129 | ||
|
|
b1fde3ff37 | ||
|
|
3d83f9a452 | ||
|
|
ccdf963847 | ||
|
|
8405411263 | ||
|
|
a343778b64 | ||
|
|
6db22271d9 | ||
|
|
f0f017aa0d | ||
|
|
0afec0b94d | ||
|
|
f3cb4d05e1 | ||
|
|
8dd2778119 | ||
|
|
970f432739 | ||
|
|
92377fdc1d | ||
|
|
e6dde015a6 | ||
|
|
5993ca4193 | ||
|
|
168ad781dc | ||
|
|
a0f36ea4ea | ||
|
|
7340da7c07 | ||
|
|
d9c7423b34 | ||
|
|
fe42c529ca | ||
|
|
815026976b | ||
|
|
fc6e9d8213 | ||
|
|
e0f53d86d3 | ||
|
|
6611b495d0 | ||
|
|
9741d083ae | ||
|
|
083abbc73b | ||
|
|
ab9be4efd4 | ||
|
|
9a8b89afa7 | ||
|
|
e20b82f802 | ||
|
|
1218b25127 | ||
|
|
d58bc8373e | ||
|
|
b6e7c9444e | ||
|
|
32e004e11a | ||
|
|
81babd8a07 | ||
|
|
9d7c0c3a29 | ||
|
|
dabcf769fb | ||
|
|
0a4269a405 | ||
|
|
9fad61bca1 | ||
|
|
10ff56bba7 | ||
|
|
36a0b024b1 | ||
|
|
7f0e5cce08 | ||
|
|
1b9ac40e38 | ||
|
|
7b078103a2 | ||
|
|
ff89d27a93 | ||
|
|
9c672ffd7b | ||
|
|
097015228b | ||
|
|
b7d87a24cc | ||
|
|
628d012c82 | ||
|
|
67c151e23e | ||
|
|
64fb934096 | ||
|
|
b9e9709f18 | ||
|
|
490527abdf | ||
|
|
a78213052a | ||
|
|
de5553647d | ||
|
|
755b63bbf6 | ||
|
|
7666dcae2b | ||
|
|
db210b1da7 | ||
|
|
dd0c71c9d6 | ||
|
|
e47dee1fac | ||
|
|
5eb45cc3ec | ||
|
|
259cc7f00c | ||
|
|
eb1ede7747 | ||
|
|
b3147b125c | ||
|
|
58fefe3182 | ||
|
|
3397319b9f | ||
|
|
3bdb5ed594 | ||
|
|
05c5915f2b | ||
|
|
07572a1e94 | ||
|
|
cd9244f0dd | ||
|
|
4347021572 | ||
|
|
98520c1816 | ||
|
|
8df5f519d2 | ||
|
|
5e5d18fc64 | ||
|
|
86b436be98 | ||
|
|
15e73a1d43 | ||
|
|
8eb5442037 | ||
|
|
56053686fb | ||
|
|
65cb006f33 | ||
|
|
d942373528 | ||
|
|
d87b1beff5 | ||
|
|
ce4a86b077 | ||
|
|
0eb33394b9 | ||
|
|
11a01eed96 | ||
|
|
347e7913b4 | ||
|
|
5d9f159a58 | ||
|
|
5a7f129822 | ||
|
|
329274876f | ||
|
|
a073665fe6 | ||
|
|
3d646474be | ||
|
|
ebca4f9c85 | ||
|
|
678b80ea27 | ||
|
|
a71a409426 | ||
|
|
bee617afaf | ||
|
|
fbf603bc58 | ||
|
|
c037b575cb | ||
|
|
0cf81d02e7 | ||
|
|
b0b9eba129 | ||
|
|
a845e9d76a | ||
|
|
8475a29441 | ||
|
|
cc2620434b | ||
|
|
0b3b73f47d | ||
|
|
e4d07783e7 | ||
|
|
0a3b4c33ec | ||
|
|
c124a19d82 | ||
|
|
435abd693a | ||
|
|
fd29539b92 | ||
|
|
31cffb153b | ||
|
|
e31cd291a7 | ||
|
|
198cbae6b4 | ||
|
|
76d7faf5ba | ||
|
|
6bf950df84 | ||
|
|
0a4521fa27 | ||
|
|
e74b232489 | ||
|
|
41828edb63 | ||
|
|
5e9e9c6ead | ||
|
|
7669dea354 | ||
|
|
4992fa73cf | ||
|
|
496da77057 | ||
|
|
1c48f6352b | ||
|
|
85f8583061 | ||
|
|
950bf4b111 | ||
|
|
e44fa78354 | ||
|
|
fda6831075 | ||
|
|
6166bab780 | ||
|
|
66023ecf65 | ||
|
|
c0bee55d82 | ||
|
|
3d715d17dc | ||
|
|
00a6a39eb3 | ||
|
|
84864c68ec | ||
|
|
da04fe3d83 | ||
|
|
b75bbaafa1 | ||
|
|
6f12fb3c5a | ||
|
|
1d37707628 | ||
|
|
207648b7ee | ||
|
|
0e7859ea89 | ||
|
|
f23c067ccd | ||
|
|
0d160f4beb | ||
|
|
c17cd2d1d3 | ||
|
|
e14bb09139 | ||
|
|
68d8002ea5 | ||
|
|
08bed0c597 | ||
|
|
16fff7431c | ||
|
|
1f0d6a123d | ||
|
|
255368cc47 | ||
|
|
64ce1c026a | ||
|
|
f053510cd5 | ||
|
|
8cf0bebe29 | ||
|
|
223bc6b12d | ||
|
|
7ede82c57d | ||
|
|
d8a71615f9 | ||
|
|
b7df56759c | ||
|
|
89103b7562 | ||
|
|
574d98da28 | ||
|
|
84d51b3cb7 | ||
|
|
f36cdaeeed | ||
|
|
64d5713041 | ||
|
|
1a0b127407 | ||
|
|
4f3dbcae88 | ||
|
|
e6d25d2204 | ||
|
|
dffd248343 | ||
|
|
44be221621 | ||
|
|
836b5a16ca | ||
|
|
4e7813aeb6 | ||
|
|
ddd9918881 | ||
|
|
095a18798c | ||
|
|
7ddeed9955 | ||
|
|
6034133565 | ||
|
|
fd8324a1f4 | ||
|
|
e0c9ae7598 | ||
|
|
879d51dff7 | ||
|
|
24987a63a8 | ||
|
|
3caa699d1a | ||
|
|
24f950e3b3 | ||
|
|
4dff137c26 | ||
|
|
fcd5d04a40 | ||
|
|
c487e88a0b | ||
|
|
602adc2309 | ||
|
|
d42b37c29c | ||
|
|
63fdd3699f | ||
|
|
bde20ec991 | ||
|
|
84eaad0775 | ||
|
|
3204959c80 | ||
|
|
0cb677664e | ||
|
|
08563ade44 | ||
|
|
14f815d0ba | ||
|
|
d8489ba0fc | ||
|
|
d633f0ad04 | ||
|
|
3f89bfb273 | ||
|
|
550fc02ef8 | ||
|
|
60277fc11a | ||
|
|
f459025f39 | ||
|
|
3fa8c16164 | ||
|
|
f0aca3a965 | ||
|
|
47afb69acc | ||
|
|
217f1a9786 | ||
|
|
c0813f037b | ||
|
|
da3688bf2e | ||
|
|
5ba3b4ea9d | ||
|
|
3e6ec4a75b | ||
|
|
c9dbb1e240 | ||
|
|
5a66c19033 | ||
|
|
e256208eb4 | ||
|
|
c72b2d5bba | ||
|
|
d1194a37cd | ||
|
|
d4cfd6ef4f | ||
|
|
b27b3ad3f8 | ||
|
|
83b1c6969a | ||
|
|
865c556da3 | ||
|
|
4efd68446e | ||
|
|
115218c8aa | ||
|
|
0f58788e26 | ||
|
|
c72bb8c196 | ||
|
|
10c8a186e5 | ||
|
|
f125908e1e | ||
|
|
89c46e989d | ||
|
|
b3803ec424 | ||
|
|
1eea25c87b | ||
|
|
880b24a929 | ||
|
|
20ecbbafaa | ||
|
|
f6f7cc9cd1 | ||
|
|
36e4f34780 | ||
|
|
ed232b2199 | ||
|
|
571e3467fc | ||
|
|
b8508b7cd8 | ||
|
|
9725b2334c | ||
|
|
eab54ef98f | ||
|
|
afaf12e4b0 | ||
|
|
0e5cd73ef0 | ||
|
|
9c972b19e1 | ||
|
|
c6487f4837 | ||
|
|
0182107bc0 | ||
|
|
7497fc12fc | ||
|
|
3ce8d08439 | ||
|
|
111db6e2d1 | ||
|
|
a990429daa | ||
|
|
b618697998 | ||
|
|
6f96ca4a62 | ||
|
|
9626917362 | ||
|
|
d4705fe5be | ||
|
|
0a6cb656c8 | ||
|
|
72097a0fbb | ||
|
|
47a2a15b59 | ||
|
|
08082cf7e2 | ||
|
|
6f1a656a9a | ||
|
|
8fb4b02ef9 | ||
|
|
9ec26d4e87 | ||
|
|
12c0e9d452 | ||
|
|
338cfa3cef | ||
|
|
7f82bcdaf6 | ||
|
|
30672945d5 | ||
|
|
dabb6f0b74 | ||
|
|
8bf8950274 | ||
|
|
e4d9582a98 | ||
|
|
0a0e4fcd06 | ||
|
|
75bac0f6ea | ||
|
|
a670d0238f | ||
|
|
861e2a9439 | ||
|
|
c81f402ae2 | ||
|
|
cc3e2e2e40 | ||
|
|
808d7db163 | ||
|
|
95c7b64de4 | ||
|
|
5265d67b7f | ||
|
|
5d2df118de | ||
|
|
13641575c2 | ||
|
|
c71dd3f3a4 | ||
|
|
7fad383060 | ||
|
|
1bab57de01 | ||
|
|
db4c50a848 | ||
|
|
743bd8db5f | ||
|
|
cffe75a6a8 | ||
|
|
ccd0d5c235 | ||
|
|
1fd48b08cd | ||
|
|
cfdfd25320 | ||
|
|
7952bd1c18 | ||
|
|
ab68cc8ecd | ||
|
|
f65cb6fc6e | ||
|
|
25b741f04e | ||
|
|
3563144a8e | ||
|
|
3e11bea0d4 | ||
|
|
d23269fb7e | ||
|
|
4568e1cdb9 | ||
|
|
bc011b2230 | ||
|
|
770bad5e10 | ||
|
|
e079831f04 | ||
|
|
7c1ed99de2 | ||
|
|
7d07929b16 | ||
|
|
dcf6bad34e | ||
|
|
2a3dc8a522 | ||
|
|
b0690a7e42 | ||
|
|
3432974340 | ||
|
|
228983dfaf | ||
|
|
0ead2f10ce | ||
|
|
4797daca72 | ||
|
|
e801867d28 | ||
|
|
13e55d8ff2 | ||
|
|
c2d8884656 | ||
|
|
c9b1eeb740 | ||
|
|
b436961875 | ||
|
|
99e11e20b5 | ||
|
|
2a8b0efb66 | ||
|
|
83a40c238c | ||
|
|
60b7040241 | ||
|
|
577773793c | ||
|
|
7045b54e8f | ||
|
|
65c5cb599e | ||
|
|
c6859d2ead | ||
|
|
57bea6b5b6 | ||
|
|
551efc940d | ||
|
|
0590e4b13e | ||
|
|
14ca5688b5 | ||
|
|
f6698f5916 | ||
|
|
4196031cdc | ||
|
|
c4627ca108 | ||
|
|
3080270067 | ||
|
|
ad0cace563 | ||
|
|
208098bfaa | ||
|
|
7c2050b374 | ||
|
|
6068d00942 | ||
|
|
9196f327f6 | ||
|
|
d90ebfc880 | ||
|
|
38f48c0101 | ||
|
|
c3bf5d97eb | ||
|
|
fbc962102d | ||
|
|
6a82bf40fc | ||
|
|
726104ddbd | ||
|
|
1e288c98e3 | ||
|
|
2303bc1048 | ||
|
|
778664a294 | ||
|
|
0bb1f9c657 | ||
|
|
1e68708a05 | ||
|
|
255fe95fe7 | ||
|
|
a9dc27eaa6 | ||
|
|
52dbe040a8 | ||
|
|
1f143bee9b | ||
|
|
ebcfaa73d7 | ||
|
|
4de4bb777e | ||
|
|
9fb7d3373b | ||
|
|
66da3ac4ad | ||
|
|
b28620e929 | ||
|
|
fbc3115415 | ||
|
|
f3b3122cff | ||
|
|
3d196d17e9 | ||
|
|
0ff003890f | ||
|
|
b050cdec42 | ||
|
|
3788a3ebb3 | ||
|
|
dd4e32c90e | ||
|
|
10685a2a20 | ||
|
|
44ba48e00d | ||
|
|
89bd79217b | ||
|
|
de186645e0 | ||
|
|
72cfda5b16 | ||
|
|
475d22e7bf | ||
|
|
be5e9558b9 | ||
|
|
9bb3620747 | ||
|
|
733ee6e17d | ||
|
|
7dd3a1c62f | ||
|
|
713667b606 | ||
|
|
7135a1fd77 | ||
|
|
f0a03fc658 | ||
|
|
6252526985 | ||
|
|
baf2e617eb | ||
|
|
1bf096d93e | ||
|
|
84187b9239 | ||
|
|
4c4a21085e | ||
|
|
dafccd5b38 | ||
|
|
016073c6a9 | ||
|
|
7e85c70646 | ||
|
|
5934bc7c02 | ||
|
|
97f84eca42 | ||
|
|
c1c29012c2 | ||
|
|
d1aaee951b | ||
|
|
cafd33a187 | ||
|
|
d9d0d400c7 | ||
|
|
41807e1e3f | ||
|
|
c97e4dc96e | ||
|
|
baa4dd9a2f | ||
|
|
e110cb8633 | ||
|
|
3b7cad254b | ||
|
|
6f9be00428 | ||
|
|
6b019edaa7 | ||
|
|
9b5a7f96f6 | ||
|
|
d952b38a0f | ||
|
|
634d513e59 | ||
|
|
5d63dfec67 | ||
|
|
08d7328051 | ||
|
|
f53af56b57 | ||
|
|
b61ec6820b | ||
|
|
0181c1209c | ||
|
|
9d5c460696 | ||
|
|
b176f60290 | ||
|
|
a4e60f7d90 | ||
|
|
96f289a081 | ||
|
|
e6d186b6c3 | ||
|
|
5b104d47a8 | ||
|
|
a93888f0c4 | ||
|
|
eb38f77c47 | ||
|
|
fb4e4e8370 | ||
|
|
776e4dbb6c | ||
|
|
5762dd333e | ||
|
|
9ea9a72d1f | ||
|
|
ff5c046544 | ||
|
|
69ac66f00e | ||
|
|
80f9c69194 | ||
|
|
f882acb7cf | ||
|
|
d01ca0e515 | ||
|
|
faae153671 | ||
|
|
60d7bd301b | ||
|
|
266618dfd3 | ||
|
|
1ed4604cb4 | ||
|
|
e49336dffb | ||
|
|
391f9bcedb | ||
|
|
a636bd88ce | ||
|
|
e8dd93189a | ||
|
|
5d1bef6903 | ||
|
|
a4ee79e285 | ||
|
|
8c798099ef | ||
|
|
5104f99684 | ||
|
|
b1a3d40d05 | ||
|
|
1d9fdb7367 | ||
|
|
5cb154ce8b | ||
|
|
8a802aca90 | ||
|
|
85e1d0966f | ||
|
|
c04764d2cb | ||
|
|
e55abe7089 | ||
|
|
3d475a2e9d | ||
|
|
aa83b5f29f | ||
|
|
d210c48d21 | ||
|
|
9b934c3476 | ||
|
|
8883a293a1 | ||
|
|
911db66cf9 | ||
|
|
ced132b282 | ||
|
|
04b49fd886 | ||
|
|
7064d61ae5 | ||
|
|
6d6bc05f6a | ||
|
|
28962fa665 | ||
|
|
1509b34a31 | ||
|
|
2b2bd5e2ff | ||
|
|
d02f1dc283 | ||
|
|
275ce2a823 | ||
|
|
d06341cf12 | ||
|
|
8a234329d6 | ||
|
|
326caa5877 | ||
|
|
bfe42710e7 | ||
|
|
a5e2531d2c | ||
|
|
13e23593ba | ||
|
|
9a58f2677c | ||
|
|
29f49660f6 | ||
|
|
c2e6cb1f44 | ||
|
|
625be3ad11 | ||
|
|
609eed9068 | ||
|
|
ddceabee6a | ||
|
|
8f01bdef78 | ||
|
|
924d3d324d | ||
|
|
b31120b271 | ||
|
|
200a77bf45 | ||
|
|
6223bf212f | ||
|
|
b1f64114dd | ||
|
|
b2148e5440 | ||
|
|
8b86f901dc | ||
|
|
830a2d9c40 | ||
|
|
2045927e95 | ||
|
|
1b871fc645 | ||
|
|
b66f00846d | ||
|
|
cf795c8f26 | ||
|
|
d894375d35 | ||
|
|
d05ed6fe3d | ||
|
|
471f841218 | ||
|
|
72880efafb | ||
|
|
9ecac4679d | ||
|
|
896269228e | ||
|
|
c0a67341f8 | ||
|
|
5efca5e542 | ||
|
|
0f4370657a | ||
|
|
e492643cc7 | ||
|
|
c49cfdcece | ||
|
|
2cea001340 | ||
|
|
e7e80a9c3b | ||
|
|
e0081130af | ||
|
|
5ff9911cc0 | ||
|
|
bde1de5630 | ||
|
|
eb3e3e5094 | ||
|
|
1033a3b3b3 | ||
|
|
498116b66e | ||
|
|
5f68db7ab7 | ||
|
|
a487d6ac02 | ||
|
|
2f92da9753 | ||
|
|
e4d08cc117 | ||
|
|
746ebb7974 | ||
|
|
2d0cf16029 | ||
|
|
c3b15d7a8b | ||
|
|
9754a9e2e5 | ||
|
|
466ade8d72 | ||
|
|
ea9b4a9952 | ||
|
|
12cee5f791 | ||
|
|
8c2ede040f | ||
|
|
4864aa6c8e | ||
|
|
f448881423 | ||
|
|
5dc0e3889e | ||
|
|
ea7101d92b | ||
|
|
5e28f6f70f | ||
|
|
b0f6f340d6 | ||
|
|
fd8f300518 | ||
|
|
16653615f2 | ||
|
|
2b5c53640d | ||
|
|
c0f85022cf | ||
|
|
7adbb9c559 | ||
|
|
d9d269d601 | ||
|
|
06101cc31e | ||
|
|
ffc3953f91 | ||
|
|
af57b9af20 | ||
|
|
48e8772813 | ||
|
|
bae385ccb0 | ||
|
|
1d28fa52f9 | ||
|
|
69ddd35cad | ||
|
|
61cbbc1b55 | ||
|
|
1d4b57b5c6 | ||
|
|
30f62a80f3 | ||
|
|
a11dd760db | ||
|
|
8d896e8be8 | ||
|
|
be9270a0f7 | ||
|
|
b7ceb1776c | ||
|
|
eb0d29c780 | ||
|
|
006c0c88ce | ||
|
|
00439369a8 | ||
|
|
d2944d5d10 | ||
|
|
f069b4e85e | ||
|
|
e6d2b0c9b3 | ||
|
|
2a5da2c155 | ||
|
|
f9e297922d | ||
|
|
cffa7c6dd8 | ||
|
|
cd7c2baf8e | ||
|
|
f960cd9589 | ||
|
|
939c58f441 | ||
|
|
1775614fe2 | ||
|
|
8c24b80950 | ||
|
|
1a62ad2608 | ||
|
|
a8138ca579 | ||
|
|
863d888717 | ||
|
|
0bf72def78 | ||
|
|
b4e4cd9e9a | ||
|
|
df7fd37214 | ||
|
|
cb36ee03eb | ||
|
|
396b874a42 | ||
|
|
16c9ce995f | ||
|
|
35a1fdddf1 | ||
|
|
703c9ade71 | ||
|
|
81ac5a4231 | ||
|
|
9982cc042f | ||
|
|
09f1793d63 | ||
|
|
d8961c4093 | ||
|
|
d830315cfc | ||
|
|
ac7e31bdd9 | ||
|
|
72e274a4c3 | ||
|
|
1fdabe3a26 | ||
|
|
df2840bf9f | ||
|
|
2b00831465 | ||
|
|
ad34d45d0b | ||
|
|
df77fb67c6 | ||
|
|
e3168163c2 | ||
|
|
2f7b04534d | ||
|
|
9628712810 | ||
|
|
e7ee41fe4e | ||
|
|
8dc21fbb66 | ||
|
|
81a95aba28 | ||
|
|
0544599303 | ||
|
|
7381a4433c | ||
|
|
b60cbdf5f1 | ||
|
|
4e61c6c4dd | ||
|
|
d2582b0118 | ||
|
|
dc89935b7f | ||
|
|
23b2ca9af4 | ||
|
|
7bbd2042ae | ||
|
|
2d191c87a0 | ||
|
|
d9d8e54ed3 | ||
|
|
d3b0a48779 | ||
|
|
a8a6d199d1 | ||
|
|
cd8cc81b5f | ||
|
|
27771f3565 | ||
|
|
bae59c07db | ||
|
|
cc72d1018b | ||
|
|
7996108e62 | ||
|
|
53522ca5b4 | ||
|
|
55df8a5adf | ||
|
|
b31eb524c3 | ||
|
|
31437f3d3e | ||
|
|
34ecfba230 | ||
|
|
75859ec106 | ||
|
|
d6911ed39b | ||
|
|
073838af6e | ||
|
|
4a94ab86c9 | ||
|
|
f74b151c53 | ||
|
|
6db67e909d | ||
|
|
2c1c46b98d | ||
|
|
ba01a2a219 | ||
|
|
0a5261a68c | ||
|
|
61d591e86e | ||
|
|
e032ef5aa5 | ||
|
|
c4e9774ffa | ||
|
|
5a4930f860 | ||
|
|
66f445c341 | ||
|
|
f2c2833985 | ||
|
|
a703e0bb7d | ||
|
|
e0bd7d82fb | ||
|
|
8b02c95f51 | ||
|
|
e492c6575d | ||
|
|
9339c9ff62 | ||
|
|
a02254f5d5 | ||
|
|
af36a3b1bf | ||
|
|
5f34e924d1 | ||
|
|
ce939a4053 | ||
|
|
c9c2b35455 | ||
|
|
1b0c339845 | ||
|
|
2d67cb7dcc | ||
|
|
1938969a63 | ||
|
|
bb1d90213b | ||
|
|
096686457d | ||
|
|
ba5b2af394 | ||
|
|
f23ce71620 | ||
|
|
10f0f6440b | ||
|
|
20e1126a62 | ||
|
|
31b512e3c9 | ||
|
|
979d65e444 | ||
|
|
59035ae96b | ||
|
|
ede6a94665 | ||
|
|
3dd86a77e2 | ||
|
|
3ceaadd0c0 | ||
|
|
9640d95cef | ||
|
|
b3c18001e2 | ||
|
|
df2766d80e | ||
|
|
e676bdc322 | ||
|
|
2d7a42d918 | ||
|
|
06cb128876 | ||
|
|
0b79bcd4b4 | ||
|
|
687bcc2779 | ||
|
|
41c58a52e3 | ||
|
|
e21d944461 | ||
|
|
359d5f36b5 | ||
|
|
e66f19914e | ||
|
|
a6e29f0ded | ||
|
|
40363068e3 | ||
|
|
af86448385 | ||
|
|
177d39c2a3 | ||
|
|
7a9464c592 | ||
|
|
4aef01ef32 | ||
|
|
b4c9d7c76c | ||
|
|
08d37dd9e8 | ||
|
|
10193520a4 | ||
|
|
c1968ba4e3 | ||
|
|
47ecf2e886 | ||
|
|
8642086d34 | ||
|
|
b04dadaa45 | ||
|
|
a5513cc504 | ||
|
|
fc622c76a4 | ||
|
|
050e3b09ad | ||
|
|
850976335c | ||
|
|
0344701f1b | ||
|
|
04198f3ede | ||
|
|
1b671abc05 | ||
|
|
0b973d5135 | ||
|
|
b2324a8689 | ||
|
|
8be0c3c9b0 | ||
|
|
2bd104705a | ||
|
|
3d55b49ee6 | ||
|
|
42352e9500 | ||
|
|
100aad1256 | ||
|
|
703d37c3e2 | ||
|
|
160d15b9b7 | ||
|
|
b3a8fc92d0 | ||
|
|
fbee69a418 | ||
|
|
31d139aecf | ||
|
|
8be040a9b4 | ||
|
|
5cb47ac5b3 | ||
|
|
b7c54779ac | ||
|
|
49d23c06a4 | ||
|
|
d0efe8d8d9 | ||
|
|
84c6faa419 | ||
|
|
b23ffd3c19 | ||
|
|
eeefa85e69 | ||
|
|
cbf055bebc | ||
|
|
eee0cc5394 | ||
|
|
a858c8b43c | ||
|
|
b7497fd669 | ||
|
|
98cdd4eedf | ||
|
|
4d398f170d | ||
|
|
f4c56a1948 | ||
|
|
e72bfe1114 | ||
|
|
f019a3cd0c | ||
|
|
a37482aaad | ||
|
|
bb01d0e5ae | ||
|
|
b61aec9212 | ||
|
|
c1d1330350 | ||
|
|
25a1ecc99b | ||
|
|
6ed29cfde9 | ||
|
|
da6b9b0980 | ||
|
|
410d8bfe13 | ||
|
|
42f0d71ecf | ||
|
|
8a01ffa832 | ||
|
|
bad03c45a0 | ||
|
|
bb876b55fc | ||
|
|
a1da73adaa | ||
|
|
37516dda0e | ||
|
|
edd31bee8e | ||
|
|
5806b9f276 | ||
|
|
96841bd7b1 | ||
|
|
67bd25145d | ||
|
|
635145ea70 | ||
|
|
85c079db70 | ||
|
|
5944984efb | ||
|
|
4c319bd068 | ||
|
|
db80a2e0f6 | ||
|
|
c2fbb5cf22 | ||
|
|
3be8eb4f87 | ||
|
|
08d2a5fa95 | ||
|
|
d69d2234c4 | ||
|
|
33b3a71ecd | ||
|
|
b093446020 | ||
|
|
4db1cdd8e4 | ||
|
|
36a5710863 | ||
|
|
bd51ccd26a | ||
|
|
d60a109ecb | ||
|
|
a293da1360 | ||
|
|
745cfeb9e6 | ||
|
|
a7a08fe28d | ||
|
|
aa83c5c1bc | ||
|
|
5dcc989535 | ||
|
|
2afbe95a9c | ||
|
|
5bdbd7c195 | ||
|
|
44d117c91d | ||
|
|
c174f8f931 | ||
|
|
84ff1f4640 | ||
|
|
26e7e70c3f | ||
|
|
b2ad021230 | ||
|
|
151f047cff | ||
|
|
04bb8f1d1a | ||
|
|
38c0d33767 | ||
|
|
493947c830 | ||
|
|
beb1ade0b5 | ||
|
|
3885500e7c | ||
|
|
9e132d5ca8 | ||
|
|
de21d4755b | ||
|
|
d50e164e68 | ||
|
|
8380a2fa53 | ||
|
|
23a0df61cd | ||
|
|
b484dd6f71 | ||
|
|
c986b311fd | ||
|
|
d1c3584651 | ||
|
|
a9069389db | ||
|
|
2bf8ca8ab6 | ||
|
|
b095b0ae12 | ||
|
|
d5a6a05fc4 | ||
|
|
c84f6b63ff | ||
|
|
92062d4829 | ||
|
|
f742e8ac11 | ||
|
|
65d2a3b313 | ||
|
|
3c7510d74f | ||
|
|
be8ec6b4ae | ||
|
|
e06cd5eba6 | ||
|
|
13775fcb68 | ||
|
|
5641fbd83c | ||
|
|
3bdb108fdb | ||
|
|
19aadd93a0 | ||
|
|
ce9be475b5 | ||
|
|
b40cd351c3 | ||
|
|
3b6ad7b851 | ||
|
|
d8ac23e398 | ||
|
|
a627eab6f1 | ||
|
|
88ddb97d43 | ||
|
|
071654fa06 | ||
|
|
ea602b5f9c | ||
|
|
b39b990eda | ||
|
|
5d7e005f7d | ||
|
|
c2627654b9 | ||
|
|
21ce030463 | ||
|
|
c203dcbbb6 | ||
|
|
435a72c76b | ||
|
|
d4fc440725 | ||
|
|
e9407e0152 | ||
|
|
033d515784 | ||
|
|
4b4825582f | ||
|
|
9d7e8959e8 | ||
|
|
9aac9301b0 | ||
|
|
df6cf331ac | ||
|
|
3e66f47c13 | ||
|
|
bca87429a6 | ||
|
|
9870fe448b | ||
|
|
379ae8ccfb | ||
|
|
c77b67fdf8 | ||
|
|
a0cbb30874 | ||
|
|
aa46be08cf | ||
|
|
f7366cb2ff | ||
|
|
4bc4c1e204 | ||
|
|
e77b71bbbc | ||
|
|
1223e6da84 | ||
|
|
d027f218f8 | ||
|
|
eb659a64bb | ||
|
|
300edc036f | ||
|
|
ee370ec8bf | ||
|
|
ebdd0dbdc0 | ||
|
|
c816b24437 | ||
|
|
20709145c8 | ||
|
|
133d3c7151 | ||
|
|
25a577e32e | ||
|
|
3c01584615 | ||
|
|
bea80e7f71 | ||
|
|
d7a6c14fe7 | ||
|
|
30008bafe7 | ||
|
|
4f5d1847e0 | ||
|
|
e7e7d7d2c0 | ||
|
|
5114f0ac24 | ||
|
|
832bf158da | ||
|
|
af83cc58cb | ||
|
|
1318a3844e | ||
|
|
ae8d7ef99f | ||
|
|
0503b02d17 | ||
|
|
9a158d76b4 | ||
|
|
2017525b77 | ||
|
|
d0b09bce20 | ||
|
|
cfd9b63190 | ||
|
|
05e865e649 | ||
|
|
f25124fd8a | ||
|
|
b92157c292 | ||
|
|
c2dcb6a075 | ||
|
|
00f0c6ea3c | ||
|
|
e92cf6c761 | ||
|
|
d0092d5a5e | ||
|
|
4a0ed710a3 | ||
|
|
df89f183e0 | ||
|
|
06b6adbcde | ||
|
|
f2b94095c3 | ||
|
|
cd474f3152 | ||
|
|
c40507addb | ||
|
|
989d655c1f | ||
|
|
094353f64e | ||
|
|
e795b345c5 | ||
|
|
4a04c24b62 | ||
|
|
36ec721b1e | ||
|
|
f1dae3e62e | ||
|
|
90860dbbf1 | ||
|
|
7d2be7da77 | ||
|
|
551a7609f8 | ||
|
|
791da75ae9 | ||
|
|
aa1fd82f3a | ||
|
|
2e8ee9dadf | ||
|
|
0b8d613044 | ||
|
|
64b0896eaf | ||
|
|
cd5151be94 | ||
|
|
367bb2e5ed | ||
|
|
a748a69de3 | ||
|
|
ec9e478399 | ||
|
|
dadc7edbd9 | ||
|
|
e41f6a5fb3 | ||
|
|
3149e7ec0d | ||
|
|
d8d60faa6b | ||
|
|
58eda950f8 | ||
|
|
ad3760762f | ||
|
|
3c8a0ace60 | ||
|
|
7a90ef8bc4 | ||
|
|
c12a864e8a | ||
|
|
5aef93245b | ||
|
|
3352a24750 | ||
|
|
590f13203a | ||
|
|
c832b2d860 | ||
|
|
8067acdc1c | ||
|
|
b3ea6af2fd | ||
|
|
30530b1b8b | ||
|
|
57bed18ccf | ||
|
|
f8a333c4ea | ||
|
|
680fc32786 | ||
|
|
9af498d69a | ||
|
|
7e2b95d390 | ||
|
|
168bb0be88 | ||
|
|
849f6c7d05 | ||
|
|
d1c3643cff | ||
|
|
5ee362dcf4 | ||
|
|
453502e1c7 | ||
|
|
0b6e2bc260 | ||
|
|
5b24d8e61a | ||
|
|
23ff933d38 | ||
|
|
da3383a67c | ||
|
|
4dd2d63d9b | ||
|
|
b16783143f | ||
|
|
590c66d1eb | ||
|
|
b4db960e68 | ||
|
|
aaf4ede04d | ||
|
|
5ae385ec02 | ||
|
|
ad2288e2fc | ||
|
|
4b5f3c8af8 | ||
|
|
c1dd2ebb92 | ||
|
|
a210a665fb | ||
|
|
979a55d24a | ||
|
|
3c474987b2 | ||
|
|
91e83305e6 | ||
|
|
cf3f6caca8 | ||
|
|
ab1d55611f | ||
|
|
aff634a970 | ||
|
|
6ed572772f | ||
|
|
cc206d5542 | ||
|
|
8001b914b1 | ||
|
|
afc3e862b0 | ||
|
|
8ea6cc8bac | ||
|
|
cdc05320d9 | ||
|
|
b64c2f3597 | ||
|
|
e1b082d189 | ||
|
|
7fdf175329 | ||
|
|
e6580d4676 | ||
|
|
b6de4fe823 | ||
|
|
51da6fe1a8 | ||
|
|
aba179d2de | ||
|
|
80cabea362 | ||
|
|
fad4210c9c | ||
|
|
32091ffd94 | ||
|
|
8d2551e0b6 | ||
|
|
0d94a84724 | ||
|
|
efa82e1761 | ||
|
|
c4cd151f2c | ||
|
|
4874c02c44 | ||
|
|
ba4fdd1f92 | ||
|
|
c598fdd009 | ||
|
|
0bbe29bc2e | ||
|
|
e690243fc3 | ||
|
|
4eaac8dbe8 | ||
|
|
dbf0b5d3f7 | ||
|
|
17e2c30f6e | ||
|
|
36b757c224 | ||
|
|
1ae77b145b | ||
|
|
87f2f0eb24 | ||
|
|
b2d31022af | ||
|
|
110d8b8e59 | ||
|
|
5a177e500e | ||
|
|
03dcb63cf6 | ||
|
|
45a41b6109 | ||
|
|
74862969e1 | ||
|
|
92ef020342 | ||
|
|
2176dd2020 | ||
|
|
bc624dc079 | ||
|
|
0b13d40516 | ||
|
|
e82c161b11 | ||
|
|
307cd0966b | ||
|
|
2ec943d118 | ||
|
|
01733bdbaa | ||
|
|
5bc39d29eb | ||
|
|
c0da955fc6 | ||
|
|
148fc68590 | ||
|
|
1c150e0011 | ||
|
|
cbc79d7082 | ||
|
|
6d04c88d83 | ||
|
|
d5dc66a33c | ||
|
|
2947721727 | ||
|
|
f6408e74d2 | ||
|
|
7a95980d2f | ||
|
|
2589c43214 | ||
|
|
5032ffdfd4 | ||
|
|
1b977e866b | ||
|
|
307e80bac9 | ||
|
|
af6b35cc43 | ||
|
|
bae654f260 | ||
|
|
ff36d38f43 | ||
|
|
88a195b4e2 | ||
|
|
2bd298e673 | ||
|
|
ad89a043c9 | ||
|
|
03506c97b0 | ||
|
|
9384b8a6b9 | ||
|
|
e3eea2628a | ||
|
|
ff85c6688f | ||
|
|
2e0ee9b75f | ||
|
|
fe46a82e63 | ||
|
|
67d49a8f2b | ||
|
|
885b669c30 | ||
|
|
5ab3736f05 | ||
|
|
968bdbf12a | ||
|
|
1608f34677 | ||
|
|
98d9853c7e | ||
|
|
aeac9840f1 | ||
|
|
6a9e268eb7 | ||
|
|
186062926a | ||
|
|
f7691f6909 | ||
|
|
4e02c8a63a | ||
|
|
bd3e23da33 | ||
|
|
045b2619b2 | ||
|
|
8c38bece3a | ||
|
|
d61329a4f3 | ||
|
|
635493f1c1 | ||
|
|
364b7bcf99 | ||
|
|
7d53c4a06b | ||
|
|
e3981aad60 | ||
|
|
f08078bd08 | ||
|
|
5d1e781d20 | ||
|
|
d1d5116536 | ||
|
|
6379f031c2 | ||
|
|
d153d80595 | ||
|
|
28c45719e2 | ||
|
|
e6befda146 | ||
|
|
910723bbcd | ||
|
|
a534e30467 | ||
|
|
dd7c8162ac | ||
|
|
2bffa83d62 | ||
|
|
01514a94e1 | ||
|
|
53355dbcc6 | ||
|
|
bf1067a346 | ||
|
|
53784b310e | ||
|
|
e816cbc51b | ||
|
|
0a37981251 | ||
|
|
d280cb510d | ||
|
|
c08771dc56 | ||
|
|
1e58c47286 | ||
|
|
8c0f3b037a | ||
|
|
550cba2f43 | ||
|
|
33f4efc5b1 | ||
|
|
a92f9d7a6f | ||
|
|
57b6b92e04 | ||
|
|
0ab33e1843 | ||
|
|
8ce6c678aa | ||
|
|
c63336ade4 | ||
|
|
e276a5d825 | ||
|
|
d06731ff19 | ||
|
|
320578a61c | ||
|
|
92f68dfd58 | ||
|
|
d850d901e9 | ||
|
|
492294163c | ||
|
|
cd38e6a6ae | ||
|
|
334f946870 | ||
|
|
bd2353f7bc | ||
|
|
f6214ae36d | ||
|
|
5fee3ecdb8 | ||
|
|
638f93499b | ||
|
|
df7a721626 | ||
|
|
60b5f660e8 | ||
|
|
82188d156b | ||
|
|
b0ea1781e7 | ||
|
|
44528b6173 | ||
|
|
059085a21a | ||
|
|
89a7c3e5cb | ||
|
|
10475f32fb | ||
|
|
55e601cf9d | ||
|
|
d0f11a2595 | ||
|
|
eed5cd1877 | ||
|
|
3258b8806f | ||
|
|
072d0f0acd | ||
|
|
04526385d1 | ||
|
|
857327e9ef | ||
|
|
1fafa0dae7 | ||
|
|
e67ae4f3bf | ||
|
|
d12113b94c | ||
|
|
682804f703 | ||
|
|
7aea5eb5af | ||
|
|
007934e538 | ||
|
|
9cec3bf4ca | ||
|
|
41b9219d66 | ||
|
|
18180b87b9 | ||
|
|
f1580928eb | ||
|
|
b4a844ea0b | ||
|
|
5489f39c0f | ||
|
|
391b72e04b | ||
|
|
15934049db | ||
|
|
0bde8b0b3c | ||
|
|
a83376d810 | ||
|
|
f405e13521 | ||
|
|
b8143154c8 | ||
|
|
480d633b13 | ||
|
|
e6f47b1908 | ||
|
|
caa1a7653d | ||
|
|
acfef7b4cb | ||
|
|
77eb377cf3 | ||
|
|
b8b0879ef2 | ||
|
|
bc6b89f399 | ||
|
|
77662f9505 | ||
|
|
d3fa06dccc | ||
|
|
b7a8664cf9 | ||
|
|
d4b9cfd0cb | ||
|
|
0c2d392166 | ||
|
|
b2f30565b1 | ||
|
|
d0c838450d | ||
|
|
60973954ef | ||
|
|
8018edb183 | ||
|
|
ff5d8c2ba0 | ||
|
|
1496fdb482 | ||
|
|
c0521833d9 | ||
|
|
b59b6e1dad | ||
|
|
7fa7fdee3f | ||
|
|
f177f82417 | ||
|
|
6b4aac0235 | ||
|
|
e7e0d6bf2b | ||
|
|
84e5ef2dcf | ||
|
|
cdb8536e8d | ||
|
|
197c5ad2d0 | ||
|
|
d033a3b23e | ||
|
|
e901c19b5b | ||
|
|
5fb45f7647 | ||
|
|
70ae2bd595 | ||
|
|
47814e35cb | ||
|
|
ceadd52d1a | ||
|
|
f22f80dafd | ||
|
|
f2f2e6cb46 | ||
|
|
779026408e | ||
|
|
bbcd11531a | ||
|
|
c2059a8701 | ||
|
|
ab328d0764 | ||
|
|
28c70dfc2e | ||
|
|
916039b420 | ||
|
|
51c7fb2614 | ||
|
|
4c16e17d44 | ||
|
|
a1aba9bed4 | ||
|
|
ca17263640 | ||
|
|
6c20847cc9 | ||
|
|
c0ac50a501 | ||
|
|
44e901ab08 | ||
|
|
6818fdd00a | ||
|
|
705eee2739 | ||
|
|
d58a883ca5 | ||
|
|
be4151c979 | ||
|
|
da698b946b | ||
|
|
9b0890c9b7 | ||
|
|
4417e275fd | ||
|
|
4e98914a8b | ||
|
|
e200e6b900 | ||
|
|
746c6f79d2 | ||
|
|
c0d9f00adb | ||
|
|
26e67c5f18 | ||
|
|
6fdc6cfaa3 | ||
|
|
5ba6dfd538 | ||
|
|
08dda5d58b | ||
|
|
c909297504 | ||
|
|
699c27e3dc | ||
|
|
39c072050b | ||
|
|
c6e50d8b25 | ||
|
|
307965a464 | ||
|
|
7c15b76c8c | ||
|
|
607001f2dd | ||
|
|
6f38867972 | ||
|
|
68cc38e443 | ||
|
|
ae5e90be02 | ||
|
|
d6fcc89da3 | ||
|
|
6d2e9d8a04 | ||
|
|
53e60c7b59 | ||
|
|
67d0b486e9 | ||
|
|
bd4a658bd9 | ||
|
|
8de6fd25e2 | ||
|
|
ba7fdb314b | ||
|
|
da84d40cd5 | ||
|
|
ea4fb4e7ff | ||
|
|
047cc75051 | ||
|
|
1ec8754456 | ||
|
|
9c8030e588 | ||
|
|
dc6259133f | ||
|
|
40441c8451 | ||
|
|
d319051942 | ||
|
|
045808b69f | ||
|
|
99918cdc17 | ||
|
|
892c1b6aa8 | ||
|
|
a4bb049eac | ||
|
|
0bb7017cf8 | ||
|
|
9a79173a46 | ||
|
|
f92a1e5995 | ||
|
|
f1b3e0b8ce | ||
|
|
529b93f154 | ||
|
|
f15ed32101 | ||
|
|
c5915664f0 | ||
|
|
d12961a9ed | ||
|
|
88ab5ae502 | ||
|
|
f458d1f9d1 | ||
|
|
6fa33b9187 | ||
|
|
f64c3bfeb2 | ||
|
|
17b3793b3b | ||
|
|
f3fe7c8d11 | ||
|
|
bced0ad474 | ||
|
|
d0ee4cfbeb | ||
|
|
047470d3b7 | ||
|
|
fcb9b60046 | ||
|
|
b75ec3677c | ||
|
|
b60ce68fcd | ||
|
|
bec414a405 | ||
|
|
1522b6b682 | ||
|
|
1b93ad7b3f | ||
|
|
e78a3e63fc | ||
|
|
8c46463204 | ||
|
|
da6cc88cd8 | ||
|
|
f72e96662a | ||
|
|
ba9adfb7f8 | ||
|
|
857856ccd3 | ||
|
|
ca90926e02 | ||
|
|
484c1958d6 | ||
|
|
312ad2a21b | ||
|
|
21431058be | ||
|
|
f8bc8d4f28 | ||
|
|
e30b69cf77 | ||
|
|
281ed74ffa | ||
|
|
5174bb0d13 | ||
|
|
9257a462d5 | ||
|
|
81b7d6fda2 | ||
|
|
0728f43d96 | ||
|
|
6dcdd34fe1 | ||
|
|
0a9c530f06 | ||
|
|
7d4ae2328c | ||
|
|
c107978173 | ||
|
|
04be98fd59 | ||
|
|
f3dd4bd8ee | ||
|
|
72652fecaa | ||
|
|
9b93736985 | ||
|
|
8ed3bd889d | ||
|
|
dab48d43a5 | ||
|
|
a760b22341 | ||
|
|
e2293e7c1e | ||
|
|
edc19187f0 | ||
|
|
c5afeda726 | ||
|
|
2975cc7f8f | ||
|
|
4a94a36a1d | ||
|
|
cbaa86dc86 | ||
|
|
6a66e06544 | ||
|
|
53a2d0e691 | ||
|
|
d2796d27c3 | ||
|
|
89b3529554 | ||
|
|
ed22432e82 | ||
|
|
717887ff7d | ||
|
|
19d01662e5 | ||
|
|
fd802d1a1e | ||
|
|
9715955618 | ||
|
|
d0c8227d15 | ||
|
|
01275876c1 | ||
|
|
15de0c8dd7 | ||
|
|
e8c4f2db25 | ||
|
|
b4b19667f4 | ||
|
|
5934700cea | ||
|
|
8ef99c4cfa | ||
|
|
bf4a923b08 | ||
|
|
d1aa576bfd | ||
|
|
799b8e24ec | ||
|
|
95bef4c6c2 | ||
|
|
43c934c9cd | ||
|
|
83d1072e6e | ||
|
|
1090a160de | ||
|
|
34a3a6e85c | ||
|
|
762efedb96 | ||
|
|
f4999df457 | ||
|
|
4d9c87b019 | ||
|
|
95d8e3ac98 | ||
|
|
9d63a018e8 | ||
|
|
04c6847590 | ||
|
|
848027856d | ||
|
|
ef652355bf | ||
|
|
9990ebf193 | ||
|
|
edf765f91f | ||
|
|
cf42eeeae3 | ||
|
|
e1cd848a77 | ||
|
|
9831fdbe0f | ||
|
|
4da120633e | ||
|
|
43e420ab0b | ||
|
|
71ad7c3229 | ||
|
|
58bbb2be38 | ||
|
|
02cb9e9090 | ||
|
|
dc3e801fd2 | ||
|
|
cfc587569a | ||
|
|
9a63a84fc1 | ||
|
|
bc26d2250e | ||
|
|
4e6a26e787 | ||
|
|
71675ee4a1 | ||
|
|
3a2440fb92 | ||
|
|
1fa7e08b17 | ||
|
|
655c9d9439 | ||
|
|
7e56174b2a | ||
|
|
05feaf7d2d | ||
|
|
9bae8f762f | ||
|
|
c377e2a26a | ||
|
|
1f14c55ce0 | ||
|
|
02fda08dab | ||
|
|
bbf18709b3 | ||
|
|
76b6759c63 | ||
|
|
c5e0258792 | ||
|
|
c0bb0fa54a | ||
|
|
8b238f3767 | ||
|
|
e9a73ee785 | ||
|
|
3ff4cc462f | ||
|
|
a6be3f9081 | ||
|
|
cd1c7a3b0b | ||
|
|
c13c90488d | ||
|
|
c9d44ccec0 | ||
|
|
96b3656176 | ||
|
|
d72c84a3d1 | ||
|
|
a0a8ea85c9 | ||
|
|
733fba09cb | ||
|
|
6d9b1f7b36 | ||
|
|
1431944c49 | ||
|
|
2157dc8a35 | ||
|
|
32feba3d17 | ||
|
|
ed1b11a932 | ||
|
|
40a41dbc6b | ||
|
|
a8416542c1 | ||
|
|
0c2c952637 | ||
|
|
c6991b36b8 | ||
|
|
ec8a6b9925 | ||
|
|
d4d258e170 | ||
|
|
bf8f6f0dd8 | ||
|
|
585f2e567b | ||
|
|
598667826f | ||
|
|
aa84d998a0 | ||
|
|
6d82d10883 | ||
|
|
c1598bccf9 | ||
|
|
43d0e0a5fd | ||
|
|
589bc7c313 | ||
|
|
08c4aea1b2 | ||
|
|
535012f8b0 | ||
|
|
85b953bbec | ||
|
|
f1fc95d82d | ||
|
|
706c61c550 | ||
|
|
a931fe5cfd | ||
|
|
67a2f634c1 | ||
|
|
ceec883d93 | ||
|
|
e8d548b24e | ||
|
|
99db1a1c3a | ||
|
|
9f9438f20b | ||
|
|
52f1c3156b | ||
|
|
dd61836a35 | ||
|
|
18f7280cf2 | ||
|
|
85af7d7f03 | ||
|
|
b0169067be | ||
|
|
92cd4e0169 | ||
|
|
4cbbe5f2e3 | ||
|
|
a87e8289f7 | ||
|
|
c1b35b6672 | ||
|
|
9e2310fdf3 | ||
|
|
47ffc83c73 | ||
|
|
7c3eb16800 | ||
|
|
a8116a0fd9 | ||
|
|
34645be975 | ||
|
|
eb34a32760 | ||
|
|
5dee5ecefe | ||
|
|
f6edda3f97 | ||
|
|
0f0b667fb8 | ||
|
|
2735f30eab | ||
|
|
033bccf242 | ||
|
|
93104d6a65 | ||
|
|
7e7bff9d06 | ||
|
|
ca046d8016 | ||
|
|
23398f2f8a | ||
|
|
41a32b4fe9 | ||
|
|
49e3403d69 | ||
|
|
5b840ada83 | ||
|
|
3672ae8be6 | ||
|
|
d39d33c6cc | ||
|
|
d9424d0362 | ||
|
|
bcd7f8350b | ||
|
|
4ec276642a | ||
|
|
15cbc8d4fe | ||
|
|
b4672759f8 | ||
|
|
8e4127fbb1 | ||
|
|
2621e0cf1b | ||
|
|
ce0f05a53a | ||
|
|
fe0d316ff6 | ||
|
|
30be5a3746 | ||
|
|
b64bd382ce | ||
|
|
707427cde4 | ||
|
|
7a52d32af9 | ||
|
|
d2e208ef26 | ||
|
|
b6778128da | ||
|
|
4e86693a97 | ||
|
|
567d61a8ea | ||
|
|
d97b985d1c | ||
|
|
6905653bdd | ||
|
|
a89058ab6c | ||
|
|
296b18ba5f | ||
|
|
f548df2e64 | ||
|
|
d7730e9b04 | ||
|
|
aabc21d611 | ||
|
|
9c04899df5 | ||
|
|
0380a7fe72 | ||
|
|
0306701e6f | ||
|
|
3ef790fbe3 | ||
|
|
c8410e8527 | ||
|
|
4bc17d42e3 | ||
|
|
9332bd882c | ||
|
|
ca70da2c28 | ||
|
|
767c22f348 | ||
|
|
931863d4ee | ||
|
|
b9602da177 | ||
|
|
eb419fc4e0 | ||
|
|
cd8da61977 | ||
|
|
9388ea12f9 | ||
|
|
4b30ce0f39 | ||
|
|
c760a22cfa | ||
|
|
9de55ca286 | ||
|
|
a20508b83d | ||
|
|
167a4baa46 | ||
|
|
ef8a54c49c | ||
|
|
5274344237 | ||
|
|
f3f7133961 | ||
|
|
785322e577 | ||
|
|
d44a5e57b2 | ||
|
|
58a0799c8e | ||
|
|
0b7c31b6a9 | ||
|
|
72ed5d84f6 | ||
|
|
7e280b2371 | ||
|
|
5027b8df19 | ||
|
|
a60e0b3c87 | ||
|
|
ca2943775d | ||
|
|
717ade24e3 | ||
|
|
0728b35735 | ||
|
|
e7a0803ca4 | ||
|
|
b83d7ca2cc | ||
|
|
1878adf78c | ||
|
|
4c2185fa1e | ||
|
|
fe064c9d99 | ||
|
|
029ac58a75 | ||
|
|
60130f067b | ||
|
|
a1d94d63a3 | ||
|
|
27a0a47aaa | ||
|
|
ff7446a2ef | ||
|
|
1307fccc59 | ||
|
|
86f210cfbf | ||
|
|
da036efdcf | ||
|
|
40c4e74d48 | ||
|
|
3ec210df9b | ||
|
|
cfb93924b0 | ||
|
|
98db7db2b1 | ||
|
|
31c58c29d5 | ||
|
|
859211fb6d | ||
|
|
30429fac58 | ||
|
|
bff341db60 | ||
|
|
92b6ed2e9e | ||
|
|
84b0553797 | ||
|
|
d9a9f39556 | ||
|
|
66c6fa5590 | ||
|
|
31ea53135f | ||
|
|
fce18689b7 | ||
|
|
5bf113de23 | ||
|
|
c3c24d5533 | ||
|
|
a54a5b3d55 | ||
|
|
1e8b33a74f | ||
|
|
22fe8f1d12 | ||
|
|
fbcf185c13 | ||
|
|
586370188b | ||
|
|
723cba5b56 | ||
|
|
ec1047207c | ||
|
|
daa916a0c4 | ||
|
|
591a17eb19 | ||
|
|
acca753a77 | ||
|
|
9e9c24d8c0 | ||
|
|
c3fc1d4e5a | ||
|
|
894c48b5b0 | ||
|
|
5503db376a | ||
|
|
a6fde426a7 | ||
|
|
a0fea3c025 | ||
|
|
5650792be8 | ||
|
|
24eb99cdaa | ||
|
|
c571d701ac | ||
|
|
f4bdf3be71 | ||
|
|
553958b952 | ||
|
|
fa046897dc | ||
|
|
5cc29a7605 | ||
|
|
b97844512a | ||
|
|
8a671dee59 | ||
|
|
486b6a19d2 | ||
|
|
fafd088751 | ||
|
|
e66288b4de | ||
|
|
89423208bb | ||
|
|
b82bead486 | ||
|
|
7233137ad3 | ||
|
|
14ca0deb00 | ||
|
|
575a046cac | ||
|
|
77246aad17 | ||
|
|
3303eb3043 | ||
|
|
04f82e5151 | ||
|
|
de9ebbf99d | ||
|
|
d6506b6430 | ||
|
|
ea7c72a509 | ||
|
|
a9314cc6d5 | ||
|
|
3da0510a8d | ||
|
|
20adf39d8b | ||
|
|
02f474504b | ||
|
|
427abafe43 |
9
.env.example
Normal file
@@ -0,0 +1,9 @@
|
||||
# Copy to .env and fill in for dev tooling
|
||||
|
||||
# Crowdin Personal Access Token scoped to at least `project.report` (Read only)
|
||||
# Needed for `qtlimport --credits-since`
|
||||
CROWDIN_REPORT_READ_TOKEN=
|
||||
|
||||
# Path for long-term cached files, like downloaded icon packs
|
||||
# Used by `icons` unless `--work-dir` is set
|
||||
CACHE_DIR=
|
||||
1
.github/CODEOWNERS
vendored
Normal file
@@ -0,0 +1 @@
|
||||
* @vkbo @saga-soft-bot
|
||||
63
.github/ISSUE_TEMPLATE/01-bug-report.yml
vendored
Normal file
@@ -0,0 +1,63 @@
|
||||
name: Bug Report
|
||||
description: Report a bug or issue.
|
||||
title: "[Bug] "
|
||||
labels: ["bug", "triage"]
|
||||
type: bug
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
Thank you for taking the time to fill out this bug report.
|
||||
Note that issues without a description will not be considered.
|
||||
Please also check if an issue already exists on this problem.
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Bug Description
|
||||
description: >
|
||||
Provide a clear and concise description of what happened.
|
||||
Include screenshots where relevant.
|
||||
placeholder: Tell us what you see.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: reproduce
|
||||
attributes:
|
||||
label: Steps to Reproduce
|
||||
description: >
|
||||
Explain what to do to reproduce the issue.
|
||||
Include screenshots where relevant.
|
||||
placeholder: Tell us what to do.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: version
|
||||
attributes:
|
||||
label: Version
|
||||
description: What version of UmbraEdit are you running?
|
||||
placeholder: "e.g. 26.2"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: input
|
||||
id: os
|
||||
attributes:
|
||||
label: Operating System
|
||||
description: What operating system are you running?
|
||||
placeholder: "e.g. Windows 11, macOS 26, Ubuntu 26.04"
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: logs
|
||||
attributes:
|
||||
label: Log or Error Output
|
||||
description: >
|
||||
If the error dialog popped up, copy/paste the content here.
|
||||
Or provide relevant log output from the console.
|
||||
render: shell
|
||||
validations:
|
||||
required: false
|
||||
34
.github/ISSUE_TEMPLATE/02-improvement.yml
vendored
Normal file
@@ -0,0 +1,34 @@
|
||||
name: Suggest Improvement
|
||||
description: Suggest something that can be improved.
|
||||
title: "[Improve] "
|
||||
labels: ["enhancement", "triage"]
|
||||
type: feature
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
Thank you for taking the time to fill out this feature request.
|
||||
Note that feature requests without a description will not be considered.
|
||||
Please also check if a request already exists for this feature.
|
||||
|
||||
- type: textarea
|
||||
id: problem
|
||||
attributes:
|
||||
label: The Problem
|
||||
description: >
|
||||
Explain the problem you're facing.
|
||||
Include screenshots where relevant.
|
||||
placeholder: Tell us about the issue.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Your Suggestion
|
||||
description: >
|
||||
Provide a clear and concise description of what you'd like to see.
|
||||
Include screenshots where relevant.
|
||||
placeholder: Tell us what you need.
|
||||
validations:
|
||||
required: true
|
||||
23
.github/ISSUE_TEMPLATE/03-feature.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
name: Feature Request
|
||||
description: Suggest a new feature you'd like added.
|
||||
title: "[Feat] "
|
||||
labels: ["enhancement", "triage"]
|
||||
type: feature
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: >
|
||||
Thank you for taking the time to fill out this feature request.
|
||||
Note that feature requests without a description will not be considered.
|
||||
Please also check if a request already exists for this feature.
|
||||
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Your Suggestion
|
||||
description: >
|
||||
Provide a clear and concise description of what you'd like to see.
|
||||
Include screenshots where relevant.
|
||||
placeholder: Tell us what you need.
|
||||
validations:
|
||||
required: true
|
||||
16
.github/ISSUE_TEMPLATE/bug-report.md
vendored
@@ -1,16 +0,0 @@
|
||||
---
|
||||
name: Bug Report
|
||||
about: Create a report to help us improve
|
||||
title: ""
|
||||
labels: bug
|
||||
---
|
||||
|
||||
**Note**: Issues without a description will not be considered.
|
||||
Please also check if an issue already exists on this problem.
|
||||
Please provide a description covering the following points, if applicable:
|
||||
|
||||
* A clear and concise description of what the bug is.
|
||||
* Steps to reproduce the behaviour
|
||||
* A clear and concise description of what you expected to happen.
|
||||
* If applicable, add screenshots to help explain your problem.
|
||||
* If the error dialog popped up, copy/paste the content here.
|
||||
5
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
blank_issues_enabled: true
|
||||
contact_links:
|
||||
- name: GitHub Community Support
|
||||
url: https://github.com/saga-soft/UmbraEdit/discussions
|
||||
about: Please ask and answer questions here.
|
||||
15
.github/ISSUE_TEMPLATE/feature-request.md
vendored
@@ -1,15 +0,0 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: Suggest an idea for this project
|
||||
title: ""
|
||||
labels: enhancement
|
||||
---
|
||||
|
||||
**Note**: Feature requests without a description will not be considered.
|
||||
Please also check if an issue already exists on this feature.
|
||||
Please provide a description covering the following points, if applicable:
|
||||
|
||||
* A clear and concise description of what the problem is. Ex. I'm always frustrated when ...
|
||||
* A clear and concise description of what you want to happen.
|
||||
* A clear and concise description of any alternative solutions or features you've considered.
|
||||
* If applicable, add screenshots to help explain your request.
|
||||
23
.github/pull_request_template.md
vendored
@@ -1,24 +1,19 @@
|
||||
<!--
|
||||
Please check the following before you make a pull request:
|
||||
### Summary
|
||||
|
||||
* The branch you are making the pull request from (in your own fork) has a unique and descriptive
|
||||
name. Do not make a pull request directly from your copy of `main`.
|
||||
* If you are submitting translation files, only submit the files that you have added translations
|
||||
to, not the other .ts files that may have been updated in the process.
|
||||
* Make sure your contribution follows the style guide and other requirements mentioned in the
|
||||
CONTRIBUTING.md file in the repository.
|
||||
* Fill in the Summary section below, and if relevant, mention the issue numbers related to the PR.
|
||||
-->
|
||||
### Related Issue(s)
|
||||
|
||||
**Summary:**
|
||||
<!-- i.e. Closes #1234 -->
|
||||
|
||||
**Related Issue(s):**
|
||||
### Submitter's Checklist
|
||||
|
||||
**Reviewer's Checklist:**
|
||||
* [ ] I am familiar with, and have followed, the [Contributing Guide](https://github.com/saga-soft/UmbraEdit/blob/main/CONTRIBUTING.md)
|
||||
* [ ] I am familiar with, and have followed, the [AI Policy](https://github.com/saga-soft/UmbraEdit/blob/main/AI_POLICY.md)
|
||||
|
||||
### Reviewer's Checklist
|
||||
|
||||
* [ ] The header of all files contain a reference to the repository license
|
||||
* [ ] The overall test coverage is increased or remains the same as before
|
||||
* [ ] All tests are passing
|
||||
* [ ] All flake8 checks are passing and the style guide is followed
|
||||
* [ ] All linting checks are passing and the style guide is followed
|
||||
* [ ] Documentation (as docstrings) is complete and understandable
|
||||
* [ ] Only files that have been actively changed are committed
|
||||
|
||||
26
.github/workflows/auto_approve.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
name: Auto-Approve
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
types:
|
||||
- opened
|
||||
- reopened
|
||||
- synchronize
|
||||
- ready_for_review
|
||||
|
||||
concurrency:
|
||||
group: auto-approve-${{ github.event.pull_request.number }}
|
||||
|
||||
permissions: {}
|
||||
|
||||
jobs:
|
||||
approve:
|
||||
name: Approve Owner PRs
|
||||
runs-on: ubuntu-latest
|
||||
if: github.event.pull_request.draft == false && github.event.pull_request.user.login == 'vkbo'
|
||||
steps:
|
||||
- name: Approve Pull Request
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.SAGA_SOFT_BOT_TOKEN }}
|
||||
PR_URL: ${{ github.event.pull_request.html_url }}
|
||||
run: gh pr review "$PR_URL" --approve
|
||||
30
.github/workflows/build_all.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
name: Build All
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
buildAssets:
|
||||
uses: ./.github/workflows/part_assets.yml
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
buildLinux-AppImage:
|
||||
needs: buildAssets
|
||||
uses: ./.github/workflows/part_appimage.yml
|
||||
secrets: inherit
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
buildLinux-Flatpak:
|
||||
needs: buildAssets
|
||||
uses: ./.github/workflows/part_flatpak.yml
|
||||
secrets: inherit
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
buildWin-X64:
|
||||
needs: buildAssets
|
||||
uses: ./.github/workflows/part_win_x64.yml
|
||||
secrets: inherit
|
||||
permissions:
|
||||
contents: read
|
||||
39
.github/workflows/build_assets.yml
vendored
@@ -1,39 +0,0 @@
|
||||
name: BuildAssets
|
||||
|
||||
on: workflow_call
|
||||
|
||||
jobs:
|
||||
buildAssets:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.12"
|
||||
architecture: x64
|
||||
|
||||
- name: Install Packages (apt)
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install qttools5-dev-tools latexmk texlive texlive-latex-extra
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Install Packages (pip)
|
||||
run: pip install -r docs/source/requirements.txt
|
||||
|
||||
- name: Build Assets
|
||||
run: |
|
||||
python pkgutils.py build-assets
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: nw-assets
|
||||
path: |
|
||||
novelwriter/assets/manual.pdf
|
||||
novelwriter/assets/sample.zip
|
||||
novelwriter/assets/i18n/*.qm
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
46
.github/workflows/build_linux.yml
vendored
@@ -1,46 +0,0 @@
|
||||
name: BuildLinux
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
buildAssets:
|
||||
uses: ./.github/workflows/build_assets.yml
|
||||
|
||||
buildLinux-AppImage:
|
||||
needs: buildAssets
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
PYTHON_VERSION: "3.12"
|
||||
LINUX_TAG: "manylinux_2_28_x86_64"
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.11"
|
||||
architecture: x64
|
||||
|
||||
- name: Install Packages (pip)
|
||||
run: pip install python-appimage
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: nw-assets
|
||||
path: novelwriter/assets
|
||||
|
||||
- name: Build AppImage
|
||||
id: build
|
||||
run: |
|
||||
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
|
||||
python pkgutils.py build-appimage --linux-tag $LINUX_TAG --python-version $PYTHON_VERSION
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Linux-AppImage
|
||||
path: dist_appimage/*.AppImage*
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
23
.github/workflows/build_linux_images.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
name: Build Linux Images
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
buildAssets:
|
||||
uses: ./.github/workflows/part_assets.yml
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
buildLinux-AppImage:
|
||||
needs: buildAssets
|
||||
uses: ./.github/workflows/part_appimage.yml
|
||||
secrets: inherit
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
buildLinux-Flatpak:
|
||||
needs: buildAssets
|
||||
uses: ./.github/workflows/part_flatpak.yml
|
||||
secrets: inherit
|
||||
permissions:
|
||||
contents: read
|
||||
147
.github/workflows/build_linux_native.yml
vendored
Normal file
@@ -0,0 +1,147 @@
|
||||
name: Build Linux Native
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
publish:
|
||||
required: false
|
||||
description: "Publish to Cloudsmith?"
|
||||
type: boolean
|
||||
default: false
|
||||
build_number:
|
||||
required: false
|
||||
description: "Build Number"
|
||||
type: string
|
||||
default: "0"
|
||||
debian12:
|
||||
required: false
|
||||
description: "Debian 12 (Bookworm)"
|
||||
type: boolean
|
||||
default: true
|
||||
debian13:
|
||||
required: false
|
||||
description: "Debian 13 (Trixie)"
|
||||
type: boolean
|
||||
default: true
|
||||
ubuntu2404:
|
||||
required: false
|
||||
description: "Ubuntu 24.04 (Noble)"
|
||||
type: boolean
|
||||
default: true
|
||||
ubuntu2604:
|
||||
required: false
|
||||
description: "Ubuntu 26.04 (Resolute)"
|
||||
type: boolean
|
||||
default: true
|
||||
ubuntu2610:
|
||||
required: false
|
||||
description: "Ubuntu 26.10 (Stonking)"
|
||||
type: boolean
|
||||
default: true
|
||||
mint22:
|
||||
required: false
|
||||
description: "Linux Mint 22 (Wilma)"
|
||||
type: boolean
|
||||
default: true
|
||||
|
||||
jobs:
|
||||
buildAssets:
|
||||
uses: ./.github/workflows/part_assets.yml
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
buildAndPublish-Debian12:
|
||||
name: Debian 12 (Bookworm)
|
||||
needs: buildAssets
|
||||
uses: ./.github/workflows/part_debian.yml
|
||||
with:
|
||||
publish: ${{ inputs.publish }}
|
||||
build_number: ${{ inputs.build_number }}
|
||||
codename: bookworm
|
||||
family: debian
|
||||
image: debian:12
|
||||
secrets: inherit
|
||||
if: ${{ inputs.debian12 }}
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
|
||||
buildAndPublish-Debian13:
|
||||
name: Debian 13 (Trixie)
|
||||
needs: buildAssets
|
||||
uses: ./.github/workflows/part_debian.yml
|
||||
with:
|
||||
publish: ${{ inputs.publish }}
|
||||
build_number: ${{ inputs.build_number }}
|
||||
codename: trixie
|
||||
family: debian
|
||||
image: debian:13
|
||||
secrets: inherit
|
||||
if: ${{ inputs.debian13 }}
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
|
||||
buildAndPublish-Ubuntu2404:
|
||||
name: Ubuntu 24.04 (Noble)
|
||||
needs: buildAssets
|
||||
uses: ./.github/workflows/part_debian.yml
|
||||
with:
|
||||
publish: ${{ inputs.publish }}
|
||||
build_number: ${{ inputs.build_number }}
|
||||
codename: noble
|
||||
family: ubuntu
|
||||
image: ubuntu:24.04
|
||||
secrets: inherit
|
||||
if: ${{ inputs.ubuntu2404 }}
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
|
||||
buildAndPublish-Ubuntu2604:
|
||||
name: Ubuntu 26.04 (Resolute)
|
||||
needs: buildAssets
|
||||
uses: ./.github/workflows/part_debian.yml
|
||||
with:
|
||||
publish: ${{ inputs.publish }}
|
||||
build_number: ${{ inputs.build_number }}
|
||||
codename: resolute
|
||||
family: ubuntu
|
||||
image: ubuntu:26.04
|
||||
secrets: inherit
|
||||
if: ${{ inputs.ubuntu2604 }}
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
|
||||
buildAndPublish-Ubuntu2610:
|
||||
name: Ubuntu 26.10 (Stonking)
|
||||
needs: buildAssets
|
||||
uses: ./.github/workflows/part_debian.yml
|
||||
with:
|
||||
publish: ${{ inputs.publish }}
|
||||
build_number: ${{ inputs.build_number }}
|
||||
codename: stonking
|
||||
family: ubuntu
|
||||
image: ubuntu:26.10
|
||||
secrets: inherit
|
||||
if: ${{ inputs.ubuntu2610 }}
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
|
||||
buildAndPublish-Mint22:
|
||||
name: Linux Mint 22 (Wilma)
|
||||
needs: buildAssets
|
||||
uses: ./.github/workflows/part_debian.yml
|
||||
with:
|
||||
publish: ${{ inputs.publish }}
|
||||
build_number: ${{ inputs.build_number }}
|
||||
codename: wilma
|
||||
family: linuxmint
|
||||
image: linuxmintd/mint22-amd64
|
||||
secrets: inherit
|
||||
if: ${{ inputs.mint22 }}
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
70
.github/workflows/build_mac.yml
vendored
@@ -1,69 +1,23 @@
|
||||
name: BuildMacOS
|
||||
name: Build MacOS
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
buildAssets:
|
||||
uses: ./.github/workflows/build_assets.yml
|
||||
uses: ./.github/workflows/part_assets.yml
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
buildMac-AMD64:
|
||||
needs: buildAssets
|
||||
runs-on: macos-latest
|
||||
env:
|
||||
PYTHON_VERSION: "3.12"
|
||||
PACKAGE_ARCH: x86_64
|
||||
MINICONDA_ARCH: x86_64
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: nw-assets
|
||||
path: novelwriter/assets
|
||||
|
||||
- name: Build App Bundle
|
||||
id: build
|
||||
run: |
|
||||
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
|
||||
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
|
||||
|
||||
- name: Upload DMG
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-AMD64-DMG
|
||||
path: dist_macos/*.dmg*
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
uses: ./.github/workflows/part_macos_amd64.yml
|
||||
secrets: inherit
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
buildMac-M1:
|
||||
needs: buildAssets
|
||||
runs-on: macos-latest
|
||||
env:
|
||||
PYTHON_VERSION: "3.12"
|
||||
PACKAGE_ARCH: aarch64
|
||||
MINICONDA_ARCH: arm64
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: nw-assets
|
||||
path: novelwriter/assets
|
||||
|
||||
- name: Build App Bundle
|
||||
id: build
|
||||
run: |
|
||||
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
|
||||
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
|
||||
|
||||
- name: Upload DMG
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-M1-DMG
|
||||
path: dist_macos/*.dmg*
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
uses: ./.github/workflows/part_macos_m1.yml
|
||||
secrets: inherit
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
26
.github/workflows/build_pypi.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
name: Build PyPI
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
publish:
|
||||
required: false
|
||||
description: "Publish to PyPI?"
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
buildAssets:
|
||||
uses: ./.github/workflows/part_assets.yml
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
buildAndPublish-PyPI:
|
||||
name: PyPI Package
|
||||
needs: buildAssets
|
||||
uses: ./.github/workflows/part_pypi.yml
|
||||
with:
|
||||
publish: ${{ inputs.publish }}
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
64
.github/workflows/build_win.yml
vendored
@@ -1,62 +1,16 @@
|
||||
name: BuildWindows
|
||||
name: Build Windows
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
buildAssets:
|
||||
uses: ./.github/workflows/build_assets.yml
|
||||
uses: ./.github/workflows/part_assets.yml
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
buildWin64:
|
||||
buildWin-X64:
|
||||
needs: buildAssets
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.12"
|
||||
architecture: x64
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v4
|
||||
with:
|
||||
name: nw-assets
|
||||
path: novelwriter/assets
|
||||
|
||||
- name: Build Setup Installer
|
||||
id: build
|
||||
run: |
|
||||
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $Env:GITHUB_OUTPUT
|
||||
python pkgutils.py build-win-exe
|
||||
|
||||
- name: Upload Unsigned Artifacts
|
||||
id: upload-unsigned-artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup
|
||||
path: dist/*.exe
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
|
||||
- name: Submit Signing Request
|
||||
uses: signpath/github-action-submit-signing-request@v1
|
||||
with:
|
||||
api-token: "${{ secrets.SIGNPATH_API_TOKEN }}"
|
||||
organization-id: "0471e52c-66fa-4e9a-bfb9-36167095ca3f"
|
||||
project-slug: "novelWriter"
|
||||
signing-policy-slug: "release-signing "
|
||||
github-artifact-id: "${{ steps.upload-unsigned-artifact.outputs.artifact-id }}"
|
||||
wait-for-completion: true
|
||||
output-artifact-directory: "dist/"
|
||||
parameters: |
|
||||
version: "${{ steps.build.outputs.BUILD_VERSION }}"
|
||||
|
||||
- name: Upload Signed Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup-Signed
|
||||
path: dist/*.exe
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
uses: ./.github/workflows/part_win_x64.yml
|
||||
secrets: inherit
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
47
.github/workflows/build_win_launcher.yml
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
name: Build Windows Launcher
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
buildLauncherWin64:
|
||||
runs-on: windows-latest
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Build Launcher
|
||||
id: build
|
||||
run: |
|
||||
Set-Location setup\windows
|
||||
.\make.ps1
|
||||
|
||||
- name: Upload Unsigned Artifacts
|
||||
id: upload-unsigned-artifact
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: launcher
|
||||
path: setup/windows/UmbraEdit.exe
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
|
||||
- name: Submit Signing Request
|
||||
uses: signpath/github-action-submit-signing-request@v2
|
||||
with:
|
||||
api-token: "${{ secrets.SIGNPATH_API_TOKEN }}"
|
||||
organization-id: "0471e52c-66fa-4e9a-bfb9-36167095ca3f"
|
||||
project-slug: "UmbraEdit"
|
||||
signing-policy-slug: "release-signing"
|
||||
artifact-configuration-slug: "launcher"
|
||||
github-artifact-id: "${{ steps.upload-unsigned-artifact.outputs.artifact-id }}"
|
||||
wait-for-completion: true
|
||||
output-artifact-directory: "."
|
||||
|
||||
- name: Upload Signed Artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: launcher-signed
|
||||
path: UmbraEdit.exe
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
29
.github/workflows/i18n.yml
vendored
@@ -1,32 +1,41 @@
|
||||
name: i18n
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
branches:
|
||||
- i18n/*
|
||||
- main
|
||||
- release
|
||||
paths:
|
||||
- i18n/*.ts
|
||||
|
||||
jobs:
|
||||
buildI18n:
|
||||
name: Build i18n
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v5
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: "3.11"
|
||||
python-version: "3.14"
|
||||
architecture: x64
|
||||
- name: Install Packages (apt)
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Install System Packages
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install qttools5-dev-tools
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v4
|
||||
|
||||
- name: Build Assets
|
||||
run: python pkgutils.py qtlrelease
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: nw-i18n
|
||||
path: |
|
||||
novelwriter/assets/i18n/*.qm
|
||||
path: umbraedit/assets/i18n/*.qm
|
||||
if-no-files-found: error
|
||||
retention-days: 7
|
||||
|
||||
141
.github/workflows/part_appimage.yml
vendored
Normal file
@@ -0,0 +1,141 @@
|
||||
name: Part AppImage
|
||||
|
||||
on: workflow_call
|
||||
|
||||
jobs:
|
||||
buildLinux-AppImage:
|
||||
# Needs to stay on 22.04 as long as we're using manylinux_2_28
|
||||
# as libxcb-cursor0 in 22.04 supports glibc >= 2.17
|
||||
name: Build AppImage
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
env:
|
||||
PYTHON_VERSION: "3.14"
|
||||
LINUX_TAG: "manylinux_2_28"
|
||||
LINUX_ARCH: "x86_64"
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: "3.14"
|
||||
architecture: x64
|
||||
|
||||
- name: Install Packages (apt)
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install libxcb-cursor0
|
||||
|
||||
- name: Install Packages (pip)
|
||||
run: pip install python-appimage setuptools
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: nw-assets
|
||||
path: umbraedit/assets
|
||||
|
||||
- name: Build AppImage
|
||||
id: build
|
||||
run: |
|
||||
wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$LINUX_ARCH.AppImage
|
||||
chmod +x appimagetool-$LINUX_ARCH.AppImage
|
||||
export APPIMAGE_TOOL_EXEC="$(pwd)/appimagetool-$LINUX_ARCH.AppImage"
|
||||
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
|
||||
python pkgutils.py build-appimage $LINUX_TAG $LINUX_ARCH $PYTHON_VERSION
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: UmbraEdit-${{ steps.build.outputs.BUILD_VERSION }}-Linux-AppImage
|
||||
path: dist_appimage/*.AppImage*
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
|
||||
smokeTest:
|
||||
name: Smoke Test AppImage (${{ matrix.distro }})
|
||||
needs: buildLinux-AppImage
|
||||
runs-on: ubuntu-22.04
|
||||
permissions:
|
||||
contents: read
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- distro: Ubuntu 22.04
|
||||
image: ubuntu:22.04
|
||||
- distro: Debian 12
|
||||
image: debian:12
|
||||
- distro: Fedora 40
|
||||
image: fedora:40
|
||||
- distro: Arch Linux
|
||||
image: archlinux:latest
|
||||
- distro: Manjaro
|
||||
image: manjarolinux/base:latest
|
||||
container:
|
||||
image: ${{ matrix.image }}
|
||||
steps:
|
||||
- name: Install Runtime Dependencies
|
||||
run: |
|
||||
if command -v apt-get >/dev/null 2>&1; then
|
||||
apt-get update
|
||||
apt-get install -y ca-certificates libgl1 libxkbcommon0 libegl1 libfontconfig1 libglib2.0-0 libdbus-1-3
|
||||
elif command -v dnf >/dev/null 2>&1; then
|
||||
dnf install -y ca-certificates coreutils mesa-libGL mesa-libEGL libxkbcommon fontconfig glib2 dbus-libs
|
||||
elif command -v pacman >/dev/null 2>&1; then
|
||||
pacman -Syu --noconfirm --needed ca-certificates coreutils mesa libxkbcommon fontconfig glib2 dbus
|
||||
fi
|
||||
|
||||
- name: Download AppImage Artifact
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
pattern: UmbraEdit-*-Linux-AppImage
|
||||
merge-multiple: true
|
||||
path: appimage-dist
|
||||
|
||||
- name: Run AppImage Smoke Test
|
||||
run: |
|
||||
set -eu
|
||||
APPIMAGE_FILE="$(find appimage-dist -maxdepth 1 -name '*.AppImage' | head -n1)"
|
||||
if [ -z "$APPIMAGE_FILE" ]; then
|
||||
echo "No AppImage artifact found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
chmod +x "$APPIMAGE_FILE"
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
export QT_NO_XDG_DESKTOP_PORTAL=1
|
||||
export APPIMAGE_EXTRACT_AND_RUN=1
|
||||
|
||||
set +e
|
||||
timeout 25s "$APPIMAGE_FILE" > smoke.log 2>&1
|
||||
EXIT_CODE=$?
|
||||
set -e
|
||||
|
||||
if [ "$EXIT_CODE" -eq 139 ]; then
|
||||
echo "AppImage crashed with segmentation fault"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if grep -Eiq 'segmentation fault|core dumped' smoke.log; then
|
||||
echo "Crash signature found in smoke log"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ "$EXIT_CODE" -ne 0 ] && [ "$EXIT_CODE" -ne 124 ]; then
|
||||
echo "Unexpected exit code: $EXIT_CODE"
|
||||
cat smoke.log
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Upload Smoke Logs
|
||||
if: always()
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: appimage-smoke-log-${{ matrix.distro }}
|
||||
path: smoke.log
|
||||
if-no-files-found: ignore
|
||||
retention-days: 14
|
||||
44
.github/workflows/part_assets.yml
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
name: Part Assets
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
|
||||
jobs:
|
||||
buildAssets:
|
||||
name: Build Assets
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Install System Packages
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y qttools5-dev-tools latexmk texlive texlive-latex-extra
|
||||
|
||||
- name: Install UV and Python
|
||||
uses: astral-sh/setup-uv@v10.2.0
|
||||
with:
|
||||
python-version: "3.14"
|
||||
enable-cache: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
uv sync --no-dev --group docs
|
||||
|
||||
- name: Build Assets
|
||||
run: |
|
||||
uv run --no-sync pkgutils.py build-assets
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: nw-assets
|
||||
path: |
|
||||
umbraedit/assets/manual*.pdf
|
||||
umbraedit/assets/sample.zip
|
||||
umbraedit/assets/i18n/*.qm
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
82
.github/workflows/part_debian.yml
vendored
Normal file
@@ -0,0 +1,82 @@
|
||||
name: Part Debian
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
publish:
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
build_number:
|
||||
required: false
|
||||
type: string
|
||||
default: "0"
|
||||
codename:
|
||||
required: true
|
||||
type: string
|
||||
family:
|
||||
required: true
|
||||
type: string
|
||||
image:
|
||||
required: true
|
||||
type: string
|
||||
secrets:
|
||||
CLOUDSMITH_API_KEY:
|
||||
required: false
|
||||
|
||||
jobs:
|
||||
buildPackage:
|
||||
name: Build Debian Package
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
container:
|
||||
image: ${{ inputs.image }}
|
||||
steps:
|
||||
- name: Install Checkout Prerequisites
|
||||
run: |
|
||||
apt-get update
|
||||
apt-get install -y git ca-certificates python3
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Download Assets Artifact
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: nw-assets
|
||||
path: umbraedit/assets
|
||||
|
||||
- name: Install Native Packages
|
||||
run: apt-get install -y $(python3 pkgutils.py build-deb-depends ${{ inputs.codename }})
|
||||
|
||||
- name: Build Package
|
||||
run: python3 pkgutils.py build-deb ${{ inputs.codename }} --build ${{ inputs.build_number }} --install-source Cloudsmith
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: nw-deb-${{ inputs.codename }}
|
||||
path: dist_upload/*
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
|
||||
- name: Set up Cloudsmith CLI with OIDC
|
||||
if: ${{ inputs.publish }}
|
||||
uses: cloudsmith-io/cloudsmith-cli-action@v3
|
||||
with:
|
||||
oidc-namespace: "saga-soft"
|
||||
oidc-service-slug: "github-actions-lcpr"
|
||||
verify-auth: true
|
||||
|
||||
- name: Publish to Cloudsmith
|
||||
if: ${{ inputs.publish }}
|
||||
run: |
|
||||
CHANNEL="$(python3 pkgutils.py channel)"
|
||||
REPO="stable"
|
||||
if [ "$CHANNEL" = "pre" ]; then
|
||||
REPO="testing"
|
||||
fi
|
||||
DEB_FILE="$(find dist_upload -name '*.deb')"
|
||||
cloudsmith push deb "saga-soft/$REPO/${{ inputs.family }}/${{ inputs.codename }}" "$DEB_FILE" --republish
|
||||
46
.github/workflows/part_flatpak.yml
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
name: Part Flatpak
|
||||
|
||||
on: workflow_call
|
||||
|
||||
jobs:
|
||||
buildLinux-Flatpak:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Install Packages
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y flatpak flatpak-builder
|
||||
flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Install UV and Python
|
||||
uses: astral-sh/setup-uv@v10.2.0
|
||||
with:
|
||||
python-version: "3.14"
|
||||
enable-cache: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
uv sync --no-dev --group build
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: nw-assets
|
||||
path: umbraedit/assets
|
||||
|
||||
- name: Build Flatpak
|
||||
id: build
|
||||
run: |
|
||||
echo "BUILD_VERSION=$(uv run pkgutils.py version)" >> $GITHUB_OUTPUT
|
||||
uv run --no-sync pkgutils.py build-flatpak
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: UmbraEdit-${{ steps.build.outputs.BUILD_VERSION }}-Linux-Flatpak
|
||||
path: dist_flatpak/*.flatpak*
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
37
.github/workflows/part_macos_amd64.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: Part MacOS AMD64
|
||||
|
||||
on: workflow_call
|
||||
|
||||
jobs:
|
||||
buildMac-AMD64:
|
||||
name: Build on MACOS AMD64
|
||||
runs-on: macos-latest
|
||||
permissions:
|
||||
contents: read
|
||||
env:
|
||||
PYTHON_VERSION: "3.13"
|
||||
PACKAGE_ARCH: x86_64
|
||||
MINICONDA_ARCH: x86_64
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: nw-assets
|
||||
path: umbraedit/assets
|
||||
|
||||
- name: Build App Bundle
|
||||
id: build
|
||||
run: |
|
||||
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
|
||||
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
|
||||
|
||||
- name: Upload DMG
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: UmbraEdit-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-AMD64-DMG
|
||||
path: dist_macos/*.dmg*
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
37
.github/workflows/part_macos_m1.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: Part MacOS M1
|
||||
|
||||
on: workflow_call
|
||||
|
||||
jobs:
|
||||
buildMac-M1:
|
||||
name: Build on MacOS AARCH64
|
||||
runs-on: macos-latest
|
||||
permissions:
|
||||
contents: read
|
||||
env:
|
||||
PYTHON_VERSION: "3.13"
|
||||
PACKAGE_ARCH: aarch64
|
||||
MINICONDA_ARCH: arm64
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: nw-assets
|
||||
path: umbraedit/assets
|
||||
|
||||
- name: Build App Bundle
|
||||
id: build
|
||||
run: |
|
||||
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
|
||||
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
|
||||
|
||||
- name: Upload DMG
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: UmbraEdit-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-M1-DMG
|
||||
path: dist_macos/*.dmg*
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
66
.github/workflows/part_pypi.yml
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
name: Part PyPI
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
publish:
|
||||
required: false
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
jobs:
|
||||
buildPackage:
|
||||
name: Build PyPI Package
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Download Assets Artifact
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: nw-assets
|
||||
path: umbraedit/assets
|
||||
|
||||
- name: Install UV and Python
|
||||
uses: astral-sh/setup-uv@v10.2.0
|
||||
with:
|
||||
python-version: "3.14"
|
||||
enable-cache: true
|
||||
|
||||
- name: Build Package
|
||||
run: uv run pkgutils.py build-pypi
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: nw-pypi
|
||||
path: |
|
||||
dist_pypi/*.whl
|
||||
dist_pypi/*.tar.gz
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
|
||||
publishPackage:
|
||||
name: Publish to PyPI
|
||||
needs: buildPackage
|
||||
if: ${{ inputs.publish }}
|
||||
runs-on: ubuntu-latest
|
||||
environment: pypi
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: read
|
||||
steps:
|
||||
- name: Download Package Artifact
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: nw-pypi
|
||||
path: dist_pypi
|
||||
|
||||
- name: Install UV
|
||||
uses: astral-sh/setup-uv@v10.2.0
|
||||
|
||||
- name: Publish Package
|
||||
run: uv publish dist_pypi/*
|
||||
64
.github/workflows/part_win_x64.yml
vendored
Normal file
@@ -0,0 +1,64 @@
|
||||
name: Part Windows X64
|
||||
|
||||
on: workflow_call
|
||||
|
||||
jobs:
|
||||
buildWin-X64:
|
||||
name: Build on Windows
|
||||
runs-on: windows-2022
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v6
|
||||
with:
|
||||
python-version: "3.14"
|
||||
architecture: x64
|
||||
|
||||
- name: Install Packages (pip)
|
||||
run: pip install tzdata
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Download Assets
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
name: nw-assets
|
||||
path: umbraedit/assets
|
||||
|
||||
- name: Build Setup Installer
|
||||
id: build
|
||||
run: |
|
||||
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $Env:GITHUB_OUTPUT
|
||||
python pkgutils.py build-win-exe
|
||||
|
||||
- name: Upload Unsigned Artifacts
|
||||
id: upload-unsigned-artifact
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: UmbraEdit-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup
|
||||
path: dist/*.exe
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
|
||||
- name: Submit Signing Request
|
||||
uses: signpath/github-action-submit-signing-request@v1
|
||||
with:
|
||||
api-token: "${{ secrets.SIGNPATH_API_TOKEN }}"
|
||||
organization-id: "0471e52c-66fa-4e9a-bfb9-36167095ca3f"
|
||||
project-slug: "UmbraEdit"
|
||||
signing-policy-slug: "release-signing "
|
||||
github-artifact-id: "${{ steps.upload-unsigned-artifact.outputs.artifact-id }}"
|
||||
wait-for-completion: true
|
||||
output-artifact-directory: "dist/"
|
||||
parameters: |
|
||||
version: "${{ steps.build.outputs.BUILD_VERSION }}"
|
||||
|
||||
- name: Upload Signed Artifacts
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: UmbraEdit-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup-Signed
|
||||
path: dist/*.exe
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
17
.github/workflows/policy.yml
vendored
Normal file
@@ -0,0 +1,17 @@
|
||||
name: Policy Checks
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- release
|
||||
|
||||
jobs:
|
||||
commitPolicy:
|
||||
name: Commit Policy
|
||||
uses: saga-soft/automation/.github/workflows/saga-soft-policy.yml@main
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
with:
|
||||
policy-url: https://github.com/saga-soft/UmbraEdit/blob/main/AI_POLICY.md
|
||||
37
.github/workflows/syntax.yml
vendored
@@ -1,4 +1,4 @@
|
||||
name: Flake8
|
||||
name: Syntax
|
||||
|
||||
on:
|
||||
push:
|
||||
@@ -12,19 +12,30 @@ on:
|
||||
|
||||
jobs:
|
||||
checkSyntax:
|
||||
name: Linting and Type Checking
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: 3
|
||||
architecture: x64
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v4
|
||||
- name: Install flake8
|
||||
run: pip install -r requirements-dev.txt
|
||||
- name: Syntax Check
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Install UV and Python
|
||||
uses: astral-sh/setup-uv@v10.2.0
|
||||
with:
|
||||
enable-cache: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
flake8 --version
|
||||
flake8 novelwriter --count --show-source --statistics
|
||||
flake8 tests --count --show-source --statistics --extend-ignore ANN
|
||||
uv sync --no-dev --group lint --group test
|
||||
|
||||
- name: Ruff Check
|
||||
run: |
|
||||
uv run --no-sync ruff --version
|
||||
uv run --no-sync ruff format --check
|
||||
uv run --no-sync ruff check --output-format github
|
||||
|
||||
- name: Pyright Check
|
||||
run: |
|
||||
uv run --no-sync pyright --version
|
||||
uv run --no-sync pyright
|
||||
|
||||
46
.github/workflows/test_linux.yml
vendored
@@ -1,46 +0,0 @@
|
||||
name: Linux
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- release
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- release
|
||||
|
||||
jobs:
|
||||
testLinux:
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
|
||||
fail-fast: false
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
architecture: x64
|
||||
- name: Install Packages (apt)
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install libenchant-2-dev qttools5-dev-tools aspell-en
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v4
|
||||
- name: Install Dependencies (pip)
|
||||
run: |
|
||||
pip install -U -r requirements.txt -r tests/requirements.txt
|
||||
- name: Run Build Commands
|
||||
run: |
|
||||
python pkgutils.py qtlrelease
|
||||
python pkgutils.py sample
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
python -m pytest -v --cov=novelwriter --timeout=60
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
37
.github/workflows/test_mac.yml
vendored
@@ -1,37 +0,0 @@
|
||||
name: MacOS
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- release
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- release
|
||||
|
||||
jobs:
|
||||
testMac:
|
||||
runs-on: macos-13
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.12"
|
||||
architecture: x64
|
||||
- name: Install Packages (brew)
|
||||
run: |
|
||||
brew install enchant
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v4
|
||||
- name: Install Dependencies (pip)
|
||||
run: |
|
||||
pip install -U pyobjc -r requirements.txt -r tests/requirements.txt
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
python -m pytest -v --cov=novelwriter --timeout=60
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
33
.github/workflows/test_win.yml
vendored
@@ -1,33 +0,0 @@
|
||||
name: Windows
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- release
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- release
|
||||
|
||||
jobs:
|
||||
testWin:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: "3.12"
|
||||
architecture: x64
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v4
|
||||
- name: Install Dependencies (pip)
|
||||
run: |
|
||||
pip install -U -r requirements.txt -r tests/requirements.txt
|
||||
- name: Run Tests
|
||||
run: |
|
||||
python -m pytest -v --cov=novelwriter --timeout=60
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v5
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
308
.github/workflows/tests.yml
vendored
Normal file
@@ -0,0 +1,308 @@
|
||||
name: Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- release
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- release
|
||||
|
||||
jobs:
|
||||
testLinux:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version:
|
||||
- "3.11"
|
||||
- "3.12"
|
||||
- "3.13"
|
||||
- "3.14"
|
||||
- "3.15"
|
||||
fail-fast: false
|
||||
name: Linux Python ${{ matrix.python-version }}
|
||||
permissions:
|
||||
contents: read
|
||||
env:
|
||||
COVERAGE_FILE: .coverage.py${{ matrix.python-version }}
|
||||
steps:
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Install System Packages
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install qttools5-dev-tools
|
||||
|
||||
- name: Install UV and Python
|
||||
uses: astral-sh/setup-uv@v10.2.0
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
enable-cache: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
uv sync --no-dev --group test
|
||||
|
||||
- name: Build Assets
|
||||
run: |
|
||||
uv run --no-sync pkgutils.py qtlrelease
|
||||
uv run --no-sync pkgutils.py sample
|
||||
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
uv run --no-sync coverage run -m pytest -v --timeout=60
|
||||
uv run --no-sync coverage report --skip-covered --show-missing
|
||||
|
||||
- name: Upload Coverage Data
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: coverage-data-py${{ matrix.python-version }}
|
||||
path: ${{ env.COVERAGE_FILE }}
|
||||
include-hidden-files: true
|
||||
retention-days: 1
|
||||
|
||||
testMac:
|
||||
runs-on: macos-latest
|
||||
name: MacOS Python 3.14
|
||||
permissions:
|
||||
contents: read
|
||||
env:
|
||||
COVERAGE_FILE: .coverage.mac
|
||||
steps:
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Install System Packages
|
||||
run: |
|
||||
brew install enchant
|
||||
|
||||
- name: Install UV and Python
|
||||
uses: astral-sh/setup-uv@v10.2.0
|
||||
with:
|
||||
python-version: "3.14"
|
||||
enable-cache: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
uv sync --no-dev --group test
|
||||
|
||||
- name: Build Assets
|
||||
run: |
|
||||
uv run --no-sync pkgutils.py sample
|
||||
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
uv run --no-sync coverage run -m pytest -v --timeout=60
|
||||
uv run --no-sync coverage report --skip-covered --show-missing
|
||||
|
||||
- name: Upload Coverage Data
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: coverage-data-mac
|
||||
path: ${{ env.COVERAGE_FILE }}
|
||||
include-hidden-files: true
|
||||
retention-days: 1
|
||||
|
||||
testWin:
|
||||
runs-on: windows-latest
|
||||
name: Windows Python 3.14
|
||||
permissions:
|
||||
contents: read
|
||||
env:
|
||||
COVERAGE_FILE: .coverage.win
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
steps:
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Install UV and Python
|
||||
uses: astral-sh/setup-uv@v10.2.0
|
||||
with:
|
||||
python-version: "3.14"
|
||||
enable-cache: true
|
||||
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
uv sync --no-dev --group test
|
||||
|
||||
- name: Build Assets
|
||||
run: |
|
||||
uv run --no-sync pkgutils.py sample
|
||||
|
||||
- name: Run Tests
|
||||
run: |
|
||||
uv run --no-sync coverage run -m pytest -v --timeout=60
|
||||
uv run --no-sync coverage report --skip-covered --show-missing
|
||||
|
||||
- name: Upload Coverage Data
|
||||
uses: actions/upload-artifact@v7
|
||||
with:
|
||||
name: coverage-data-win
|
||||
path: ${{ env.COVERAGE_FILE }}
|
||||
include-hidden-files: true
|
||||
retention-days: 1
|
||||
|
||||
coverageReport:
|
||||
name: PR Coverage Report
|
||||
needs:
|
||||
- testLinux
|
||||
- testMac
|
||||
- testWin
|
||||
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
steps:
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Download Coverage Data
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
pattern: coverage-data-*
|
||||
merge-multiple: true
|
||||
|
||||
- name: Install UV
|
||||
uses: astral-sh/setup-uv@v10.2.0
|
||||
|
||||
- name: Combine Coverage Data
|
||||
run: |
|
||||
uvx coverage combine
|
||||
uvx coverage report --skip-covered
|
||||
|
||||
- name: Build Comment Body
|
||||
run: |
|
||||
{
|
||||
echo '<!-- coverage-report -->'
|
||||
echo '### Coverage Report (Linux, macOS, Windows)'
|
||||
echo
|
||||
uvx coverage report --skip-covered --show-missing --format=markdown --precision=3
|
||||
echo
|
||||
echo "**Total: $(uvx coverage report --format=total --precision=3)%**"
|
||||
} > coverage-comment.md
|
||||
|
||||
- name: Post PR Comment
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
REPO: ${{ github.repository }}
|
||||
run: |
|
||||
comment_id=$(gh api "repos/$REPO/issues/$PR_NUMBER/comments" --paginate --jq '.[] | select(.body | startswith("<!-- coverage-report -->")) | .id' | head -n1)
|
||||
if [ -n "$comment_id" ]; then
|
||||
gh api --method PATCH "repos/$REPO/issues/comments/$comment_id" -F body=@coverage-comment.md
|
||||
else
|
||||
gh pr comment "$PR_NUMBER" --body-file coverage-comment.md
|
||||
fi
|
||||
|
||||
coverageSummary:
|
||||
name: Action Coverage Report
|
||||
needs:
|
||||
- testLinux
|
||||
- testMac
|
||||
- testWin
|
||||
if: github.event_name == 'pull_request'
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Download Coverage Data
|
||||
uses: actions/download-artifact@v8
|
||||
with:
|
||||
pattern: coverage-data-*
|
||||
merge-multiple: true
|
||||
|
||||
- name: Install UV
|
||||
uses: astral-sh/setup-uv@v10.2.0
|
||||
|
||||
- name: Combine Coverage Data
|
||||
run: |
|
||||
uvx coverage combine
|
||||
uvx coverage report --skip-covered
|
||||
|
||||
- name: Write Coverage Summary
|
||||
run: |
|
||||
{
|
||||
echo '### Coverage Report (Linux, macOS, Windows)'
|
||||
echo
|
||||
uvx coverage report --skip-covered --show-missing --format=markdown --precision=3
|
||||
echo
|
||||
echo "**Total: $(uvx coverage report --format=total --precision=3)%**"
|
||||
} >> "$GITHUB_STEP_SUMMARY"
|
||||
|
||||
testUbuntu24:
|
||||
name: Ubuntu 24.04 & Sys Packages
|
||||
runs-on: ubuntu-24.04
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Install System Packages
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install \
|
||||
python3-pyqt6 \
|
||||
python3-pyqt6.qtsvg \
|
||||
python3-pytest \
|
||||
python3-pytestqt \
|
||||
python3-enchant \
|
||||
python3-pytest-timeout \
|
||||
qt6-image-formats-plugins
|
||||
|
||||
- name: Build Assets
|
||||
run: |
|
||||
python3 pkgutils.py sample
|
||||
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
python3 -m pytest -v --timeout=60
|
||||
|
||||
testFedoraLatest:
|
||||
name: Fedora 44 & Sys Packages
|
||||
runs-on: ubuntu-latest
|
||||
container:
|
||||
image: fedora:44
|
||||
permissions:
|
||||
contents: read
|
||||
steps:
|
||||
- name: Install System Packages
|
||||
timeout-minutes: 5
|
||||
run: |
|
||||
dnf -y update
|
||||
dnf -y install \
|
||||
git \
|
||||
python3-enchant \
|
||||
python3-pyqt6 \
|
||||
python3-pytest \
|
||||
python3-pytest-qt \
|
||||
python3-pytest-timeout \
|
||||
qt6-linguist \
|
||||
qt6-qtimageformats
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v7
|
||||
|
||||
- name: Run Build Commands
|
||||
run: |
|
||||
python pkgutils.py qtlrelease
|
||||
python pkgutils.py sample
|
||||
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
python3 -m pytest -v --timeout=60
|
||||
64
.gitignore
vendored
@@ -1,55 +1,87 @@
|
||||
# Setup/Install
|
||||
/MANIFEST
|
||||
/build/
|
||||
/build_*/
|
||||
/deploy/
|
||||
/dist/
|
||||
/dist_*/
|
||||
*.spec
|
||||
*.egg-info
|
||||
setup.iss
|
||||
/novelwriter.desktop
|
||||
/novelWriter.pyw
|
||||
/umbraedit.desktop
|
||||
/UmbraEdit.pyw
|
||||
/setup/macos/Info.plist
|
||||
/setup/windows/build
|
||||
.flatpak-builder
|
||||
.venv
|
||||
.env
|
||||
|
||||
# Translations
|
||||
/novelwriter/assets/i18n/*.qm
|
||||
/umbraedit/assets/i18n/*.qm
|
||||
.qmake.stash
|
||||
i18n/*.qm
|
||||
i18n/*.qph
|
||||
|
||||
# Documentation
|
||||
/docs/build/
|
||||
/novelwriter/assets/help/
|
||||
/novelwriter/assets/manual.pdf
|
||||
*.qch
|
||||
*.qhc
|
||||
/docs/source/locales/**/*.mo
|
||||
/umbraedit/assets/manual*.pdf
|
||||
.~lock.*
|
||||
|
||||
# Python Temp
|
||||
# Python
|
||||
/.python-version
|
||||
__pycache__
|
||||
*.pyc
|
||||
|
||||
# Sample Project
|
||||
/novelwriter/assets/sample.zip
|
||||
/sample/cache
|
||||
/umbraedit/assets/sample.zip
|
||||
/sample/meta
|
||||
*.bak
|
||||
*.lock
|
||||
ToC.txt
|
||||
/sample/**/*.bak
|
||||
/sample/*.lock
|
||||
/sample/ToC.txt
|
||||
/sample/manifest.json
|
||||
|
||||
# PyTest
|
||||
/prof/
|
||||
/htmlcov/
|
||||
/tests/temp
|
||||
/tests/lipsum/cache
|
||||
/tests/lipsum/meta
|
||||
/tests/_temp
|
||||
/.pytest_cache
|
||||
/pytestdebug.log
|
||||
|
||||
# Coverage
|
||||
/.coverage
|
||||
/.coveragerc
|
||||
/coverage.*
|
||||
|
||||
# Other
|
||||
/test.py
|
||||
.config
|
||||
.local
|
||||
*.patch
|
||||
|
||||
# IDE
|
||||
.vscode
|
||||
.ruff_cache
|
||||
.nvimlog
|
||||
|
||||
# No AI files
|
||||
AGENTS.md
|
||||
CLAUSE.md
|
||||
GEMINI.md
|
||||
.claude/
|
||||
.cursor*
|
||||
.codex/
|
||||
.gemini/
|
||||
|
||||
# Debug
|
||||
/debug/
|
||||
|
||||
# Clean up accidentally committed files
|
||||
# Added by B.D. Murphy 2026: exclude files accidentally committed during branding transition
|
||||
Splh.jpeg
|
||||
Oldwelcome.webp
|
||||
.DS_Store
|
||||
UmbraEdit_Projects/
|
||||
Inner_Demon_1.2a.docm
|
||||
requirements.txt
|
||||
UmbraEdit_deb_Build_Script.txt
|
||||
|
||||
59
AI_POLICY.md
Normal file
@@ -0,0 +1,59 @@
|
||||
# AI Policy
|
||||
|
||||
This is the AI policy of UmbraEdit and associated projects.
|
||||
|
||||
|
||||
### Code Contributions
|
||||
|
||||
We consider code to be creative work, and we have a strong preference for feature contributions designed by actual
|
||||
humans over the average and mediocre output of agentic and generative AI.
|
||||
|
||||
While we do not have a strict No-AI policy, we want to limit its use in this project. In general, we expect any
|
||||
contributed code to hold up to maintainability and stability standards so that our users can rely on the software for
|
||||
their creative work. This implies careful review, thorough test coverage, and beta testing of all features before they
|
||||
reach live users. The requirements on code that isn't shipped to the user are less strict. This includes unit tests and
|
||||
build tooling.
|
||||
|
||||
We recognise that AI tools can be useful in a developer's toolbox, alongside other tools that can edit or add code. In
|
||||
addition to read-only operations, it is generally fine to use them for boilerplate, fixes, and otherwise editing and
|
||||
extending existing code. However, you must not contribute fully or predominantly AI-generated features or other
|
||||
bulk-generated code. This applies especially to core functionality.
|
||||
|
||||
In general, so-called vibe coding does not meet our code quality requirements, so this project is not suitable for such
|
||||
contributions in any case. The licensing implications around generated code are also unclear, as AI models are trained
|
||||
on material without consent or concern for original licensing.
|
||||
|
||||
No AI automation or agentic tools are used anywhere in this project on GitHub. Do not use your AI agents on your
|
||||
contributions on GitHub either. Commits listed in any way as authored by, signed off by, or assisted by, AI tools are
|
||||
explicitly not allowed. Pull requests containing such commits will be rejected. You should also not commit AI-specific
|
||||
files into the code repository. Most of the common ones are in the git ignore file.
|
||||
|
||||
|
||||
### Design Work
|
||||
|
||||
No design work generated by AI for UmbraEdit will be accepted. We do not control how third-party work like icon
|
||||
libraries are created, but any artwork added to the app must be made by actual people.
|
||||
|
||||
|
||||
### Translation Work
|
||||
|
||||
This project uses Crowdin to host the translation files for the user interface. Crowdin has a lot of AI integration and
|
||||
tooling, which we do not use. The Crowdin translation interface provides AI translated suggestions, which the
|
||||
translators may choose to use. All translations are proofread and approved by speakers of the respective languages.
|
||||
|
||||
|
||||
### Application Features
|
||||
|
||||
We do not believe creative writing and generative AI go together. Therefore, there will not be any tooling or features
|
||||
added to this project that will generate text for you. Language models have a real use case in text analysis that
|
||||
predates generative AI, and such supportive tools **may** be in scope depending on how intrusive they are.
|
||||
|
||||
|
||||
### Discussions and Comments
|
||||
|
||||
Please refrain from using AI to generate or respond to discussions, issues, and pull requests. Especially do not use AI
|
||||
tools to generate long and verbose issue reports. It is OK to use AI for translations of comments or for accessibility
|
||||
reasons. All text in the code or posted to this project must be in English.
|
||||
|
||||
|
||||
*Last updated on 2026-10-03.*
|
||||
146
BUILD_LINUX.md
Normal file
@@ -0,0 +1,146 @@
|
||||
# UmbraEdit - Linux AMD64 Build Guide
|
||||
|
||||
UmbraEdit is developed on macOS but builds natively on Linux AMD64 and ARM64.
|
||||
This guide covers building Linux install packages from source.
|
||||
|
||||
## Source Distribution
|
||||
|
||||
The source tarball (`umbraedit-2026.11.1.tar.gz`) includes everything needed to
|
||||
build Linux packages:
|
||||
|
||||
```
|
||||
umbraedit-2026.11.1/
|
||||
├── pyproject.toml # Project metadata & dependencies
|
||||
├── UmbraEdit.py # Application entry point
|
||||
├── pkgutils.py # Packaging utility
|
||||
├── run_tests.py # Test runner
|
||||
├── setup/ # Packaging assets
|
||||
│ ├── data/ # .desktop file, MIME type XML
|
||||
│ ├── macos/ # macOS-specific packaging
|
||||
│ └── windows/ # Windows-specific packaging
|
||||
├── utils/ # Build scripts
|
||||
│ ├── build_debian.py # .deb package builder
|
||||
│ ├── build_appimage.py # AppImage builder
|
||||
│ ├── build_all.py # Multi-platform build orchestrator
|
||||
│ └── ...
|
||||
├── umbraedit/ # Application source code
|
||||
└── tests/ # Test suite
|
||||
```
|
||||
|
||||
## Prerequisites on Linux
|
||||
|
||||
### Debian/Ubuntu
|
||||
|
||||
```bash
|
||||
sudo apt-get update
|
||||
sudo apt-get install \
|
||||
python3 python3-pip \
|
||||
python3-pyqt6 python3-pyqt6.qtsvg \
|
||||
python3-enchant \
|
||||
qt6-image-formats-plugins qt6-svg-plugins \
|
||||
dh-python debhelper python3-build python3-setuptools \
|
||||
python3-pytest python3-pytestqt python3-pytest-timeout \
|
||||
appimagetool
|
||||
```
|
||||
|
||||
### Fedora/RHEL
|
||||
|
||||
```bash
|
||||
sudo dnf install \
|
||||
python3 python3-pip \
|
||||
python3-pyqt6 python3-enchant \
|
||||
qt6-qtimageformats qt6-qtsvg \
|
||||
python3-build python3-setuptools \
|
||||
dpkg rpm-build appimagetool
|
||||
```
|
||||
|
||||
### Arch Linux
|
||||
|
||||
```bash
|
||||
sudo pacman -S \
|
||||
python python-pip \
|
||||
python-pyqt6 python-enchant \
|
||||
qt6-imageformats qt6-svg \
|
||||
python-build python-setuptools \
|
||||
dpkg appimagetool
|
||||
```
|
||||
|
||||
## Build Options
|
||||
|
||||
### Option 1: Install via Wheel (Simplest)
|
||||
|
||||
The pure Python wheel requires no compilation:
|
||||
|
||||
```bash
|
||||
pip install umbraedit-2026.11.1-py3-none-any.whl
|
||||
umbraedit
|
||||
```
|
||||
|
||||
### Option 2: Install from Source Tarball
|
||||
|
||||
```bash
|
||||
tar xzf umbraedit-2026.11.1.tar.gz
|
||||
cd umbraedit-2026.11.1
|
||||
pip install .
|
||||
umbraedit
|
||||
```
|
||||
|
||||
### Option 3: Build .deb Package
|
||||
|
||||
```bash
|
||||
tar xzf umbraedit-2026.11.1.tar.gz
|
||||
cd umbraedit-2026.11.1
|
||||
|
||||
# Build for Ubuntu Noble (24.04)
|
||||
python3 utils/build_debian.py --distro noble --build 1
|
||||
|
||||
# The .deb will be in dist_deb/
|
||||
sudo dpkg -i dist_deb/umbraedit_*_amd64.deb
|
||||
```
|
||||
|
||||
Available distro targets: `bookworm`, `trixie`, `noble`, `resolute`, `stonking`, `wilma`
|
||||
|
||||
### Option 4: Build AppImage
|
||||
|
||||
```bash
|
||||
pip install python-appimage
|
||||
sudo apt-get install appimagetool
|
||||
|
||||
tar xzf umbraedit-2026.11.1.tar.gz
|
||||
cd umbraedit-2026.11.1
|
||||
|
||||
python3 utils/build_appimage.py --linux ubuntu --arch amd64 --python 3.12
|
||||
|
||||
chmod +x dist_appimage/umbraedit-2026.11-amd64.AppImage
|
||||
./dist_appimage/umbraedit-2026.11-amd64.AppImage
|
||||
```
|
||||
|
||||
### Option 5: Build All Linux Packages
|
||||
|
||||
```bash
|
||||
tar xzf umbraedit-2026.11.1.tar.gz
|
||||
cd umbraedit-2026.11.1
|
||||
|
||||
python3 utils/build_all.py --platform linux --arch amd64
|
||||
```
|
||||
|
||||
## Project Storage
|
||||
|
||||
UmbraEdit projects are stored in plain folders with an `nwProject.nwx` file.
|
||||
The sample project included in the distribution can be used for testing:
|
||||
|
||||
```bash
|
||||
umbraedit # Opens the welcome dialog
|
||||
# Select "Sample Project" from the list, or browse to your .nwx file
|
||||
```
|
||||
|
||||
## Version
|
||||
|
||||
Current development version: **2026.11.0004**
|
||||
|
||||
## License
|
||||
|
||||
GPL-3.0-or-later AND Apache-2.0 AND ISC AND MIT
|
||||
|
||||
UmbraEdit is based on novelWrite 2026.02 by Veronica Berglyd Olsen
|
||||
(novelWriter.io), licenced under the same GPL v3.0 license.
|
||||
1709
CHANGELOG.md
@@ -1,132 +0,0 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, caste, color, religion, or sexual
|
||||
identity and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the overall
|
||||
community
|
||||
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery, and sexual attention or advances of
|
||||
any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or email address,
|
||||
without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at issues (at)
|
||||
novelwriter.io. All complaints will be reviewed and investigated promptly and
|
||||
fairly.
|
||||
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series of
|
||||
actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or permanent
|
||||
ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within the
|
||||
community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.1, available at
|
||||
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
||||
|
||||
Community Impact Guidelines were inspired by
|
||||
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
|
||||
[https://www.contributor-covenant.org/translations][translations].
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
||||
[Mozilla CoC]: https://github.com/mozilla/diversity
|
||||
[FAQ]: https://www.contributor-covenant.org/faq
|
||||
[translations]: https://www.contributor-covenant.org/translations
|
||||
|
||||
246
CONTRIBUTING.md
@@ -1,131 +1,179 @@
|
||||
# Contributing Guide
|
||||
|
||||
See also our [Code of Conduct](https://github.com/saga-soft/UmbraEdit?tab=coc-ov-file#code-of-conduct)
|
||||
and our [AI Policy](https://github.com/saga-soft/UmbraEdit/blob/main/AI_POLICY.md).
|
||||
|
||||
When contributing to this repository, please first discuss the change you wish to make with the
|
||||
owner. Either via the issue tracker or on the discussions page. Especially if it is regarding new
|
||||
features. If you just want to make a minor correction, like fix a typo or similar, feel free to
|
||||
just make a pull request directly.
|
||||
maintainers. For new and complex ideas, it is better to open a discussion before adding a new
|
||||
feature request. If you just want to make a minor correction, like fix a typo or similar, feel free
|
||||
to just make a pull request directly.
|
||||
|
||||
**The following contributions are welcome:**
|
||||
|
||||
* Bugfixes for new or existing bugs. Please also report new bugs in the issue tracker even if you
|
||||
also provide a fix. It makes it easier to keep track of what has been fixed and when.
|
||||
* Translations made via the [Crowdin project page](https://crowdin.com/project/novelwriter).
|
||||
also provide a fix. It makes it easier to keep track of what has been fixed and when and to
|
||||
populate our changelog.
|
||||
* Translations made via the [Crowdin project page](https://crowdin.com/project/umbraedit).
|
||||
* Translations of the documentation. These need to use Sphinx i18n tooling. Please start a
|
||||
discussion before beginning such work as it requires some coordination.
|
||||
* Improvements to the documentation. Particularly if the documentation is unclear. Please don't
|
||||
make any larger changes to the documentation without discussing if with the maintainer first.
|
||||
make any larger changes to the documentation without discussing them with a maintainer first.
|
||||
* Adaptations, installation or packaging features targeting specific operating systems.
|
||||
* Using AI as a coding assistant is fine as long as the code is of good quality and the scope of
|
||||
change is small, but do not generate large chunks of code. Generated code is not only hard to
|
||||
maintain, but also poses licensing issues.
|
||||
|
||||
**Please do not:**
|
||||
|
||||
* Make a pull request that restructures or reformats existing code. If you think some part of the
|
||||
code could be improved, please make an issue thread or start a discussion. The same applies to
|
||||
any text document in the repository.
|
||||
* Make pull requests with AI generated code. This is not a project suitable for vibe coding.
|
||||
Outright slop will result in the account being blocked.
|
||||
|
||||
|
||||
## Running from Source
|
||||
|
||||
This project uses [uv](https://docs.astral.sh/uv/) to maintain dependencies. In order to run
|
||||
UmbraEdit directly from checked out source, simply call from the root folder with:
|
||||
|
||||
```bash
|
||||
uv run umbraedit
|
||||
```
|
||||
|
||||
To set up a development environment with all needed dependencies, run:
|
||||
|
||||
```bash
|
||||
uv sync
|
||||
```
|
||||
|
||||
Many tasks, like building assets from source, are handled by the `pkgutils.py` helper tool.
|
||||
This tool requires no dependencies for most commands, so you can either run it directly with
|
||||
Python, or using `uv run`.
|
||||
|
||||
```bash
|
||||
python pkgutils.py --help
|
||||
```
|
||||
|
||||
The translation files needed at runtime can be built with:
|
||||
|
||||
```bash
|
||||
python pkgutils.py qtlrelease
|
||||
```
|
||||
|
||||
Default icon themes can be updated with:
|
||||
|
||||
```bash
|
||||
python pkgutils.py icons default
|
||||
```
|
||||
|
||||
|
||||
### Running Tests
|
||||
|
||||
* New code must not break any existing tests.
|
||||
* New code must come with tests that cover the code in full. This includes branch coverage. If the
|
||||
code has branches that only runs on some OSes, they only need to be covered when test are run on
|
||||
that OS. The test suite runs on Linux, Windows and MacOS.
|
||||
* It is ok to use `pragma` comments with `no cover` and `no branch` if the code is not expected to
|
||||
touch those areas or branches at runtime.
|
||||
|
||||
A helper script is provided for running tests. It simplifies coverage reporting and a few other
|
||||
things. Run the following to see all details:
|
||||
|
||||
```bash
|
||||
uv run run_tests.py --help
|
||||
```
|
||||
|
||||
For instance, this command will run all tests off screen (`-o`), generate a coverage XML report for
|
||||
your code editor (`-r`), and produce a terminal report with all missing lines and branches (`-l`).
|
||||
|
||||
```bash
|
||||
uv run run_tests.py -orl
|
||||
```
|
||||
|
||||
|
||||
## Picking the Correct Branch for a Pull Request
|
||||
|
||||
The `main` branch is the default branch. For general changes, please make a new branch in your own
|
||||
fork from the current `main` branch. Do not make pull requests from your copy of the `main` branch.
|
||||
Pre-releases are generally made from the `main` branch, and full releases are always made from the
|
||||
`release` branch. If you are submitting a fix to a current release you must do so from the
|
||||
`release` branch. If you make such a fix on the `main` branch, **it cannot be included in a patch
|
||||
release**. This also applies to the documentation for the latest release published on the main
|
||||
website.
|
||||
|
||||
As of April 2024, releases are made from the `release` branch. If you are submitting a fix to a
|
||||
current release you must do so from the `release` branch. If you make such a fix on the `main`
|
||||
branch, **it cannot be included in a patch release**. This also applies to the documentation for
|
||||
the latest release published on the main website.
|
||||
New features are only added in full releases, so a feature pull request must be made to the `main`
|
||||
branch. However, if the `main` branch is very close to a new full release, pull requests may not be
|
||||
merged until the release is completed.
|
||||
|
||||
**Also check the following:**
|
||||
This project uses GitHub milestones to plan releases, and only pull requests included in the
|
||||
current release cycle will be merged to `main`. Milestone tickets are not set in stone and are
|
||||
often moved to the next milestones.
|
||||
|
||||
* Make sure your code passes all tests and conforms to the style guide. You can check that the
|
||||
code generally conforms by running the Python linting tool `flake8` from the root of the project
|
||||
folder, although it doesn't check everything. The same check is also run on pull requests.
|
||||
|
||||
### Pull Request Check List
|
||||
|
||||
Make sure the pull request follows these rules:
|
||||
|
||||
* The `main` branch is the default branch. For general changes, please make a new branch in your
|
||||
own fork from the current `main` branch. Do not make pull requests from your copy of the `main`
|
||||
branch. The same applies to the `release` branch.
|
||||
* Please provide a description of the changes in the pull request under the summary section of the
|
||||
pull request template, and reference any related issues by providing the issue number.
|
||||
* Do not change the version number.
|
||||
* Do not submit files that were not actively changed but have otherwise been modified. This is
|
||||
mostly an issue with translation files. The language tool may update all files in the `i18n`
|
||||
folder.
|
||||
pull request template, and reference any related issues by providing the issue number. Do not
|
||||
post links to issue numbers as that breaks the integration. Stating the issue number on the form
|
||||
`Closes #1234` is enough.
|
||||
* Do not change the version number. This is done during the release process.
|
||||
* Make sure the formatting and linting tools have been run locally before the pull request is made.
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
There is a code of conduct. Please follow it in all your interactions with the project.
|
||||
## Code Style
|
||||
|
||||
### Our Pledge
|
||||
This code base uses camelCase convention for function and variable names. This differs from the
|
||||
common convention of snake_case in Python. The reason for this is that UmbraEdit is built on the
|
||||
Qt framework, where everything is camelCase.
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers
|
||||
pledge to making participation in our project and our community a harassment-free experience for
|
||||
everyone, regardless of age, body size, disability, ethnicity, gender identity and expression,
|
||||
level of experience, nationality, personal appearance, race, religion, or sexual identity and
|
||||
orientation.
|
||||
Pretty much everything else regarding formatting is handled by the linter and formatter. This
|
||||
project uses [ruff](https://docs.astral.sh/ruff/) for linting and formatting and
|
||||
[pyright](https://github.com/microsoft/pyright) for type checking. The settings for these tools
|
||||
are defined in `pyproject.toml`, and any submitted code must pass the following three commands:
|
||||
|
||||
Please see the [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) file for the full text.
|
||||
|
||||
## Code Style Guide
|
||||
|
||||
The source code of novelWriter broadly follows the [PEP8](https://www.python.org/dev/peps/pep-0008)
|
||||
style guide, but with a few exceptions. Some key points are listed below.
|
||||
|
||||
**Line Length:**
|
||||
|
||||
* Source code lines can extend to the upper limit of 99 characters allowed by PEP8. 79 characters
|
||||
is the recommended line length in PEP8, but this is often too restrictive. 99 characters are
|
||||
acceptable when that is more practical. Readability has priority. Generally, if a code statement
|
||||
requires multiple lines, the lines should wrap at 79 characters if possible. If wrapping can be
|
||||
avoided by going to 99, then that is generally preferable.
|
||||
* For text files, the text should be wrapped at 99 character. The exception is markdown image tags
|
||||
and urls which can run past that limit.
|
||||
|
||||
**Variable and Function Names**
|
||||
|
||||
* PEP8 allows for camelCase for consistency with existing code. The Qt library uses camelCase, so
|
||||
the novelWriter source code does too.
|
||||
* The exception to the above is for constants. They should always be in upper snake case, like PEP8
|
||||
states.
|
||||
|
||||
**Spaces, Indentation and Alignment**
|
||||
|
||||
* Only indentation by multiples of 4 spaces is allowed.
|
||||
* No trailing spaces should occur on any line in the source code, including empty lines.
|
||||
* All common line wrapping methods are allowed in the code, but avoid deep indentations.
|
||||
* Aligning operators and attributes in columns with multiple spaces is not allowed by PEP8. The
|
||||
rule is relaxed a bit here. Alignment is allowed when populating large dictionaries or setting
|
||||
many class attributes. It does improve readability in such cases, but should not be overused.
|
||||
|
||||
**Type Annotation**
|
||||
|
||||
* All functions must be properly type annotated, and a return type stated in all cases.
|
||||
* Do not use `List`, `Dict`, `Tuple`, etc, annotations that were deprecated in Python 3.9. You can
|
||||
install the `flake8-pep585` extension to make sure you don't forget. This is also checked by the
|
||||
syntax action run on pull requests.
|
||||
* If annotations require a more recent Python version than the minimum version stated in the
|
||||
project's `pyproject.toml`, hide it under an `if TYPE_CHECKING` condition so that the code can
|
||||
still run on older versions. It's OK to require a more recent version for development.
|
||||
|
||||
### Linting with `flake8`
|
||||
|
||||
A good tool for checking Python code for errors and code style is `flake8`. The documentation is
|
||||
available [here](https://flake8.pycqa.org/en/latest/).
|
||||
|
||||
The `.flake8` file in the root of this project has the following settings for that matches the
|
||||
required code style:
|
||||
|
||||
```conf
|
||||
[flake8]
|
||||
ignore = E133,E221,E226,E228,E241,W503
|
||||
max-line-length = 99
|
||||
exclude = docs/*
|
||||
```
|
||||
|
||||
The command line equivalent, with reporting, is:
|
||||
```bash
|
||||
flake8 . --count --ignore E133,E221,E226,E228,E241,W503 --max-line-length=99 --show-source --statistics
|
||||
uv run ruff check
|
||||
uv run ruff format
|
||||
uv run pyright
|
||||
```
|
||||
|
||||
Passing this check is required before contributions are merged. This is checked automatically when
|
||||
you make a pull request. You can run the `flake8` command locally to check beforehand. The full
|
||||
command will give you a detailed description of the code lines that do not conform to the standard.
|
||||
### Line Length
|
||||
|
||||
Two of the ignored errors are due to the relaxed restriction on column alignment, these are the
|
||||
E221 and E241 error codes.
|
||||
* The line length of the source code is enforced by the formatter, and is set to 120 characters.
|
||||
Docstrings should be wrapped manually at 79 characters for better readability.
|
||||
* For text files, the text should be wrapped 120 character or less. The exception is Markdown image
|
||||
tags and URLs which can run past that limit.
|
||||
|
||||
The code E226 is ignored because it doesn't actually follow the
|
||||
[PEP8 recommendation](https://www.python.org/dev/peps/pep-0008/#other-recommendations)
|
||||
of grouping longer equations by operator precedence like `2*a + 3*b` instead of `a * a + 3 * b`.
|
||||
Generally, don't use spaces around `*`, `/` and `**`, but _do_ use spaces around `+` and `-`.
|
||||
The same applies to the modulo operator `%`, hence E228 is also ignored.
|
||||
|
||||
### Internationalisation
|
||||
|
||||
* All comments and docstrings in the code must be in English.
|
||||
* All text presented to the user must be wrapped in calls to Qt's translation framework, and the
|
||||
spelling of this text **must** be British English. US English spelling **is not allowed** for
|
||||
these strings. A US English translation is provided via the translation framework.
|
||||
* Commit descriptions and pull requests must also be in English.
|
||||
|
||||
|
||||
### License Headers and Credits
|
||||
|
||||
All code should add the license header on the exact format as used in other files. Update the title
|
||||
as needed, and the copyright line. The year should be the year the code module was first created.
|
||||
The default is:
|
||||
|
||||
```
|
||||
Copyright (C) <YEAR> <Original Author Name> and UmbraEdit contributors.
|
||||
```
|
||||
|
||||
For major changes to an existing file, don't touch the year, but you can append your name. By major
|
||||
contributions is meant new code, like added new classes or larger functions, not modifications. Use
|
||||
common sense since "UmbraEdit contributors" includes most modifications and changes.
|
||||
|
||||
```
|
||||
Copyright (C) <YEAR> <Original Author Name>, <Your Name> and UmbraEdit contributors.
|
||||
```
|
||||
|
||||
Make sure the `CREDITS.md` and `credits_en.htm` files are updated too if appropriate.
|
||||
|
||||
100
CREDITS.md
@@ -1,26 +1,37 @@
|
||||
# Credits
|
||||
|
||||
## Main Developer
|
||||
## Main Developer novelWriter
|
||||
|
||||
* Veronica Berglyd Olsen
|
||||
|
||||
## Main Product Manager / Developer
|
||||
|
||||
* B.D. Murphy
|
||||
|
||||
## Contributors
|
||||
|
||||
Larger contributions were made by:
|
||||
|
||||
* Early Concept: Marian Lückhof
|
||||
* Internationalisation: Bruno Meneguello
|
||||
* Setup and Packaging: Rachel Powers
|
||||
* Vim Mode: Alexis Dumelie
|
||||
* UmbraEdit Rebranding and Word DOCX/DOCM Import: B.D. Murphy
|
||||
|
||||
For other contributions, see the project's [Contributors](https://github.com/vkbo/novelWriter/graphs/contributors) page.
|
||||
For other contributions, see the project's [Contributors](https://github.com/saga-soft/UmbraEdit/graphs/contributors) page.
|
||||
|
||||
## Artwork
|
||||
|
||||
The artwork on the Welcome dialog was created by Louis Durrant.
|
||||
The artwork on the Welcome dialog was generated with AI by B.D. Murphy. Reading print options through time.
|
||||
UmbraEdit icon by B.D. Murphy using AI.
|
||||
|
||||
## Translations
|
||||
|
||||
The default language is English (UK) with English (US) as an option. These are the original
|
||||
translators for the languages currently available:
|
||||
|
||||
* **Catalan:** Jaume Planas (jaumeplanas)
|
||||
* **Czech:** Tomáš Zmek (perteus)
|
||||
* **Dutch:** Martijn van der Kleijn (mvdkleijn)
|
||||
* **French:** Jan Lüdke (jyhelle)
|
||||
* **German:** Myian (HeyMyian)
|
||||
@@ -35,40 +46,89 @@ translators for the languages currently available:
|
||||
|
||||
Additional larger translation contributions:
|
||||
|
||||
* **Dutch:** Lise Blok (risingphoenix73)
|
||||
* **French:** Albert Aribaud (aaribaud)
|
||||
* **Portuguese:** Oli Maia (olimaia)
|
||||
|
||||
Translations are managed on [Crowdin](https://crowdin.com/project/novelwriter), and more
|
||||
contributions are listed on the project's Members page.
|
||||
Translations of the documentation:
|
||||
|
||||
* **French:** Jean-Michel Heras (Karduin)
|
||||
|
||||
After the fork to UmbraEdit translations of text in the program are done via AI.
|
||||
|
||||
## Libraries
|
||||
|
||||
The following libraries are dependencies of novelWriter:
|
||||
The following libraries are dependencies of UmbraEdit:
|
||||
|
||||
* **Qt5** by Qt Company
|
||||
* **PyQt5** by Riverbank Computing
|
||||
* **Qt6** by Qt Company
|
||||
* **PyQt6** by Riverbank Computing
|
||||
* **Enchant** by Dom Lachowicz
|
||||
* **PyEnchant** by Dimitri Merejkowsky
|
||||
|
||||
## Assets
|
||||
## Icon Themes
|
||||
|
||||
Some of the assets bundled with novelWriter were adapted from the following sources:
|
||||
The default icon themes are subsets of icons from:
|
||||
|
||||
* **Typicons** icons by Stephen Hutchings (CC BY-SA 4.0)
|
||||
* **Tomorrow** syntax themes by Chris Kempson (MIT License)
|
||||
* **Owl** syntax themes by Sarah Drasner (MIT License)
|
||||
* **Solarized** themes by Ethan Schoonover (MIT License)
|
||||
* **Cyberpunk Night** theme by Anders Lemvigh (CC BY-SA 4.0)
|
||||
* **Dracula** theme by Zeno Rocha (MIT License)
|
||||
* **Snazzy Light** theme by Florian Reuschel (MIT License)
|
||||
* **Fluent UI** by Microsoft (MIT License)
|
||||
* **Lucide** by Cole Bemis and Lucide Contributors (ISC License)
|
||||
* **Material Symbols** by Google Inc (Apache 2.0)
|
||||
|
||||
## Colour Themes
|
||||
|
||||
Colour themes included with UmbraEdit were adapted from the following sources:
|
||||
|
||||
* **Aura** themes by Dalton Menezes
|
||||
* **B2T** themes by Bram de Haan
|
||||
* **B4T** themes by Bram de Haan
|
||||
* **Catppuccin** themes by Catppuccin Org
|
||||
* **Dracula** theme by Zeno Rocha
|
||||
* **Espresso** theme by Sainnhe Park and Antoine Cotten
|
||||
* **Everforest** themes by Sainnhe Park
|
||||
* **Horizon** themes by Jonathan Olaleye
|
||||
* **New Moon** theme by Tania Rascia
|
||||
* **Noctis** themes by Liviu Schera and contributors
|
||||
* **Nord** theme by Sven Greb
|
||||
* **Owl** themes by Sarah Drasner
|
||||
* **Primer** themes by GitHub, Inc. and Myian
|
||||
* **Rosé Pine** themes by Rosé Pine
|
||||
* **Snazzy Light** theme by Florian Reuschel
|
||||
* **Solarized** themes by Ethan Schoonover
|
||||
* **Tango** themes by the Tango Desktop Project
|
||||
* **Tomorrow** themes by Chris Kempson
|
||||
|
||||
Other themes were created for UmbraEdit:
|
||||
|
||||
* **Aura Bright** theme by Myian
|
||||
* **Blue Streak** themes by Veronica Berglyd Olsen
|
||||
* **Castle** themes by Myian
|
||||
* **Chalky Soil** theme by Myian
|
||||
* **Chernozem** theme by Myian
|
||||
* **Cyberpunk Night** theme by Anders Lemvigh
|
||||
* **Dark Arts** theme by Myian
|
||||
* **Floral** themes by Myian
|
||||
* **Friendly** themes by Myian
|
||||
* **Full Moon** theme by Myian
|
||||
* **Jewel Case** themes by Myian
|
||||
* **LCARS** theme by Veronica Berglyd Olsen
|
||||
* **Nordlicht** theme by Myian
|
||||
* **Otium** themes by Myian
|
||||
* **Paragon** theme by Myian
|
||||
* **Ruby** themes by Myian
|
||||
* **Selenium** themes by Myian
|
||||
* **Sepia** themes by Myian
|
||||
* **Sultana** themes by Myian
|
||||
* **Today** themes by Veronica Berglyd Olsen
|
||||
* **Vivid** themes by Myian
|
||||
* **Warpgate** theme by Myian
|
||||
* **Waterlily** themes by Myian
|
||||
|
||||
## Fonts
|
||||
|
||||
The font used for the main novelWriter logo, mimetype and text banners is Pridi. Other fonts are
|
||||
used on buttons and icons.
|
||||
The font used for the main UmbraEdit logo, mimetype and text banners is Pridi.
|
||||
|
||||
* **Pridi** by Cadson Demak (Open Font License, Version 1.1)
|
||||
* **Source Sans Pro** by Paul D. Hunt (SIL Open Font License)
|
||||
|
||||
--> Caladea <--
|
||||
|
||||
## Special Mentions
|
||||
|
||||
|
||||
28
MANIFEST.in
@@ -1,6 +1,28 @@
|
||||
include pkgutils.py
|
||||
include README.md
|
||||
include LICENSE.md
|
||||
include CONTRIBUTING.md
|
||||
include CREDITS.md
|
||||
include CHANGELOG.md
|
||||
recursive-include novelwriter/assets *
|
||||
recursive-include setup *
|
||||
include AI_POLICY.md
|
||||
include pyproject.toml
|
||||
include UmbraEdit.py
|
||||
include pkgutils.py
|
||||
include run_tests.py
|
||||
include build-linux.sh
|
||||
|
||||
include setup/macos/*
|
||||
include setup/windows/*
|
||||
include setup/linux/*
|
||||
include setup/flatpak/*
|
||||
include setup/data/*
|
||||
include setup/appimage_launcher.sh
|
||||
|
||||
include utils/*.py
|
||||
include utils/build_*.py
|
||||
|
||||
recursive-include docs *
|
||||
recursive-include i18n *
|
||||
recursive-exclude *.pyc
|
||||
recursive-exclude __pycache__
|
||||
global-exclude .DS_Store
|
||||
global-exclude .gitkeep
|
||||
|
||||
BIN
NW_Splash.png
Normal file
|
After Width: | Height: | Size: 19 KiB |
100
README.md
@@ -1,81 +1,73 @@
|
||||
# novelWriter
|
||||
# UmbraEdit
|
||||
|
||||
[](https://github.com/vkbo/novelWriter/actions/workflows/test_linux.yml)
|
||||
[](https://github.com/vkbo/novelWriter/actions/workflows/test_win.yml)
|
||||
[](https://github.com/vkbo/novelWriter/actions/workflows/test_mac.yml)
|
||||
[](https://github.com/vkbo/novelWriter/actions)
|
||||
[](https://codecov.io/gh/vkbo/novelWriter)
|
||||
<img align="left" style="margin: 0 0 4px 0;" src="https://git.umbratools.com/umbragit/UmbraEdit/raw/main/umbraedit/assets/icons/umbraedit.svg">
|
||||
|
||||
<img align="left" style="margin: 0 0 4px 0;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/novelwriter_readme.png">
|
||||
|
||||
novelWriter is a plain text editor designed for writing novels assembled from many smaller text
|
||||
UmbraEdit is a plain text editor designed for writing novels assembled from many smaller text
|
||||
documents. It uses a minimal formatting syntax inspired by Markdown, and adds a meta data syntax
|
||||
for comments, synopsis, and cross-referencing. It's designed to be a simple text editor that allows
|
||||
for easy organisation of text and notes, using human readable text files as storage for robustness.
|
||||
The project format is well suited both for version control software and file synchronisation tools.
|
||||
|
||||
The project storage is suitable for version control software, and also well suited for file
|
||||
synchronisation tools. All text is saved as plain text files with a meta data header. The core
|
||||
project structure is stored in a single project XML file. Other meta data is primarily saved as
|
||||
JSON files.
|
||||
UmbraEdit is based on novelWrite 2026.02 by Veronica Berglyd Olsen (novelWriter.io) and is
|
||||
licensed under the same GPL v3.0 license.
|
||||
|
||||
For more details, and how to install and use novelWriter, please see the main website and
|
||||
documentation.
|
||||
B.D. Murphy is modifying the original using AI to make it part of his Umbratools publishing system.
|
||||
|
||||
The ideas:
|
||||
|
||||
1) Write the novel. Make it simple while writing. Formatting is later.
|
||||
2) Have the entire project together. Not the novel text here and metadata you need somewhere else. All together. 2.a) ePub, paperback (print pdf), audio all start with the same story text, but each needs something different. Put everything into one project ISBN, book blurb, search terms, genere/categories BISAC codes, cover, etc
|
||||
3) With everything together publishing is simpler
|
||||
4) The goal is to write (human written) a novel, then use AI to help with everything else. At the end of the process there will be ePub, Paperback/Hard cover, audio versions in 10 languages.
|
||||
|
||||
For more details, and how to install and use UmbraEdit, please see the main website and documentation.
|
||||
|
||||
This project is a fork of novelWrite. Taking the great start and extending it. I use AI to help.
|
||||
|
||||
**Project Links**
|
||||
|
||||
* Website: [novelwriter.io](https://novelwriter.io)
|
||||
* Documentation: [docs.novelwriter.io](https://docs.novelwriter.io)
|
||||
* Internationalisation: [crowdin.com/project/novelwriter](https://crowdin.com/project/novelwriter)
|
||||
* PyPi Project: [pypi.org/project/novelWriter](https://pypi.org/project/novelWriter)
|
||||
* Social Media: [fosstodon.org/@novelwriter](https://fosstodon.org/@novelwriter)
|
||||
* Website: [UmbraEdit](https://umbratools.com/umbraedit)
|
||||
* Documentation: [UmbraEdit Docs](https://umbratools.com/umbraedit/docs)
|
||||
|
||||
## Sponsors
|
||||
|
||||
<table style="border: none;">
|
||||
<tr>
|
||||
<td><img align="left" style="height: 25px;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/signpath_logo.png"></td>
|
||||
<td>Free code signing on Windows provided by <a href="https://about.signpath.io/">SignPath.io</a>, certificate by <a href="https://signpath.org/">SignPath Foundation</a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
This project is a fork of novelWrite. Taking the great start and extending it. I use AI to help._
|
||||
|
||||
## Implementation
|
||||
|
||||
novelWriter is written with Python 3 (3.9+) using Qt5 and PyQt5 (5.15 only), and is released on
|
||||
Linux, Windows and macOS. It can in principle run on any Operating System that also supports Qt,
|
||||
PyQt and Python.
|
||||
UmbraEdit is written in Python and uses Qt6 with PyQt6 Python binding as the UI framework. It
|
||||
runs on Linux, Windows and MacOS. It can in principle run on any Operating System that also
|
||||
supports Qt, PyQt and Python.
|
||||
|
||||
<p align="center">
|
||||
<img width="80%" src="https://raw.githubusercontent.com/saga-soft/UmbraEdit/main/setup/screenshot.png">
|
||||
</p>
|
||||
|
||||
|
||||
## Project Contributions
|
||||
|
||||
Please don't make feature pull requests without first having discussed them with the maintainer.
|
||||
You can make a feature request in the issue tracker, or if the idea isn't fully formed, start a
|
||||
discussion on the discussion page. Please also don't make pull requests to reformat or rewrite
|
||||
existing code unless there is a very good reason for doing so.
|
||||
You can make a feature request in the [issues tracker](https://github.com/saga-soft/UmbraEdit/issues),
|
||||
or if the idea isn't fully formed, start a [discussion](https://github.com/saga-soft/UmbraEdit/discussions).
|
||||
Please also don't make pull requests to reformat or rewrite existing code unless there is a very
|
||||
good reason for doing so. Please do not submit AI generated content.
|
||||
See our [AI Policy](https://github.com/saga-soft/UmbraEdit/blob/main/AI_POLICY.md) for details.
|
||||
|
||||
Fixes and patches are welcome. Contributions related to packaging and installing novelWriter will
|
||||
also be appreciated, but please make an issue or a discussion topic first. Before contributing any
|
||||
code, please also read the full
|
||||
[Contributing Guide](https://github.com/vkbo/novelWriter/blob/main/CONTRIBUTING.md).
|
||||
Fixes and patches are welcome. Contributions related to packaging and installing UmbraEdit will
|
||||
also be appreciated. Before contributing any code, please read the full
|
||||
[Contributing Guide](https://github.com/saga-soft/UmbraEdit/blob/main/CONTRIBUTING.md).
|
||||
|
||||
Project credits are available in [CREDITS.md](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md).
|
||||
## Original Credits
|
||||
|
||||
**Note:** As of April 2024 only pre-releases are made from the `main` branch. Full releases are
|
||||
made from the `release` branch. So if you're submitting a fix to a current release, **including
|
||||
changes to documentation**, they must be made to the `release` branch.
|
||||
Project credits are available in [CREDITS.md](https://github.com/saga-soft/novelwriter/blob/main/CREDITS.md).
|
||||
|
||||
### Translations
|
||||
**Note:** New features and most pre-releases are made on the `main` branch. Full releases are made
|
||||
from the `release` branch. So if you're submitting a fix to a current release, **including changes
|
||||
to documentation**, they must be made to the `release` branch.
|
||||
|
||||
New translations are always welcome. This project uses Crowdin to maintain translations, and you
|
||||
can contribute translations at the [Crowdin project page](https://crowdin.com/project/novelwriter).
|
||||
If you have any questions, feel free to post them to the
|
||||
[Translations of novelWriter](https://github.com/vkbo/novelWriter/issues/93) issue thread.
|
||||
|
||||
For more details, and how to use Qt Linguist for translations, see the
|
||||
[i18n instructions](https://github.com/vkbo/novelWriter/blob/main/i18n/README.md).
|
||||
|
||||
## Licence
|
||||
|
||||
This is Open Source software, and novelWriter is licenced under GPLv3. See the
|
||||
This is Open Source software, and UmbraEdit is licensed under GPLv3. See the
|
||||
[GNU General Public License website](https://www.gnu.org/licenses/gpl-3.0.en.html) for more
|
||||
details, or consult the [License](https://github.com/vkbo/novelWriter/blob/main/LICENSE.md)
|
||||
document. Bundled assets and their licences are listed in the
|
||||
[Credits](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md) document.
|
||||
details, or consult the [License](https://github.com/saga-soft/UmbraEdit/blob/main/LICENSE.md)
|
||||
document. Bundled assets and their licenses are listed in the
|
||||
[Credits](https://github.com/saga-soft/UmbraEdit/blob/main/CREDITS.md) document.
|
||||
|
||||
157
RELEASE.md
Normal file
@@ -0,0 +1,157 @@
|
||||
# UmbraEdit - Release Process
|
||||
|
||||
This document describes the release process for UmbraEdit, including versioning,
|
||||
platform support, build workflows, and publishing.
|
||||
|
||||
## Versioning
|
||||
|
||||
UmbraEdit uses a **YYYY/MM.P####** versioning scheme:
|
||||
|
||||
| Component | Meaning |
|
||||
|-----------|---------|
|
||||
| `YYYY` | Release year (e.g., 2026) |
|
||||
| `MM` | Release month (e.g., 11) |
|
||||
| `####` | Patch/build sequence (e.g., 0001) |
|
||||
|
||||
Examples:
|
||||
- `2026.11` - Major monthly release (November 2026)
|
||||
- `2026.11.0001` - First development build of November 2026
|
||||
- `2026.11.0002` - Second development build (e.g., new feature)
|
||||
|
||||
Git tags follow the format: `v2026.11`, `v2026.11.0001`, etc.
|
||||
|
||||
## Supported Platforms
|
||||
|
||||
| Platform | Architecture | Package Format | Build Host |
|
||||
|----------|-------------|----------------|------------|
|
||||
| Linux | amd64 | .deb, .rpm, AppImage | Linux |
|
||||
| Linux | arm64 | .deb, .rpm, AppImage | Linux (ARM64) |
|
||||
| macOS | arm64 | .dmg, .app | macOS (Apple Silicon) |
|
||||
| macOS | amd64 | .dmg, .app | macOS (Intel) |
|
||||
| Windows | amd64 | .msi, .exe | Windows |
|
||||
| Windows | arm64 | .msi, .exe | Windows (ARM64) |
|
||||
| iOS/iPadOS | arm64 | **NOT SUPPORTED** | N/A |
|
||||
|
||||
### iOS/iPadOS Support
|
||||
|
||||
UmbraEdit is **not available for iOS/iPadOS**. PyQt6 does not support iOS,
|
||||
and UmbraEdit requires a full desktop Qt environment with keyboard, mouse,
|
||||
and file system access. Porting to iOS would require a complete rewrite
|
||||
using SwiftUI or a different cross-platform framework.
|
||||
|
||||
Users on iPad should use UmbraEdit via a VNC/remote desktop connection to a
|
||||
desktop machine running UmbraEdit, or use a compatible web-based alternative.
|
||||
|
||||
## Release Workflow
|
||||
|
||||
### 1. Prepare Release
|
||||
|
||||
```bash
|
||||
# Ensure working tree is clean
|
||||
git status
|
||||
|
||||
# Update version in umbraedit/__init__.py
|
||||
# __version__ = "2026.12.0001"
|
||||
|
||||
# Update CHANGELOG.md with new release entry
|
||||
|
||||
# Commit and tag
|
||||
git add -A
|
||||
git commit -m "release: prepare v2026.12"
|
||||
git tag -a v2026.12 -m "Release v2026.12"
|
||||
git push origin main --tags
|
||||
```
|
||||
|
||||
### 2. Build All Platforms
|
||||
|
||||
On each target platform, run:
|
||||
|
||||
```bash
|
||||
# Clone the tagged release
|
||||
git clone https://git.umbratools.com/umbragit/UmbraEdit.git
|
||||
cd UmbraEdit
|
||||
git checkout v2026.12
|
||||
|
||||
# Build all packages for this platform
|
||||
python utils/build_all.py --platform <platform> --arch <arch>
|
||||
```
|
||||
|
||||
Available platforms: `linux`, `macos`, `windows`
|
||||
Available architectures: `amd64`, `arm64`
|
||||
|
||||
### 3. Publish
|
||||
|
||||
Upload all build artifacts to the release server:
|
||||
|
||||
```bash
|
||||
# Example: upload to Gitea releases
|
||||
# Files to upload:
|
||||
# Linux: dist_deb/umbraedit_*.deb, dist_appimage/*.AppImage
|
||||
# macOS: dist_macos/umbraedit-*.dmg
|
||||
# Windows: dist_win/umbraedit-*.exe, dist_win/umbraedit-*.msi
|
||||
# Source: dist/umbraedit-*.tar.gz, dist/umbraedit-*.whl
|
||||
```
|
||||
|
||||
Create a release on Gitea/GitHub and attach all artifacts.
|
||||
|
||||
## Build Artifacts
|
||||
|
||||
Each platform produces the following artifacts:
|
||||
|
||||
### Linux (.deb + AppImage)
|
||||
|
||||
| File | Location | Description |
|
||||
|------|----------|-------------|
|
||||
| `umbraedit_<version>_amd64.deb` | `dist_deb/` | Debian package |
|
||||
| `umbraedit-<version>-amd64.AppImage` | `dist_appimage/` | Portable AppImage |
|
||||
|
||||
### macOS (.dmg + .app)
|
||||
|
||||
| File | Location | Description |
|
||||
|------|----------|-------------|
|
||||
| `umbraedit-<version>-arm64.dmg` | `dist_macos/` | macOS disk image |
|
||||
| `UmbraEdit.app` | inside .dmg | macOS application bundle |
|
||||
|
||||
### Windows (.exe + .msi)
|
||||
|
||||
| File | Location | Description |
|
||||
|------|----------|-------------|
|
||||
| `umbraedit-<version>-amd64.exe` | `dist_win/` | Windows installer |
|
||||
| `umbraedit-<version>-amd64.msi` | `dist_win/` | Windows MSI installer |
|
||||
|
||||
### Source
|
||||
|
||||
| File | Location | Description |
|
||||
|------|----------|-------------|
|
||||
| `umbraedit-<version>.tar.gz` | `dist/` | Source tarball |
|
||||
| `umbraedit-<version>-py3-none-any.whl` | `dist/` | Pure Python wheel |
|
||||
|
||||
## Build Scripts
|
||||
|
||||
| Script | Purpose |
|
||||
|--------|---------|
|
||||
| `utils/build_all.py` | Unified build orchestrator for all platforms |
|
||||
| `utils/build_debian.py` | Debian/Ubuntu .deb package builder |
|
||||
| `utils/build_appimage.py` | AppImage builder |
|
||||
| `utils/build_windows.py` | Windows installer builder |
|
||||
| `setup/macos/build.sh` | macOS .dmg builder |
|
||||
|
||||
## Release Checklist
|
||||
|
||||
- [ ] Update version in `umbraedit/__init__.py`
|
||||
- [ ] Update `CHANGELOG.md` with release notes
|
||||
- [ ] Tag release: `git tag -a vYYYY.MM -m "Release vYYYY.MM"`
|
||||
- [ ] Push tag: `git push origin vYYYY.MM`
|
||||
- [ ] Build packages for all platforms
|
||||
- [ ] Test installation on each platform
|
||||
- [ ] Create release on Gitea/GitHub
|
||||
- [ ] Attach all build artifacts
|
||||
- [ ] Publish release notes
|
||||
- [ ] Announce release
|
||||
|
||||
## Credits
|
||||
|
||||
UmbraEdit is based on novelWrite 2026.02 by Veronica Berglyd Olsen
|
||||
(novelWriter.io), licenced under the same GPL v3.0 license.
|
||||
|
||||
Current development lead: B.D. Murphy
|
||||
213
UMBRAEDIT.md
Normal file
@@ -0,0 +1,213 @@
|
||||
# UmbraEdit — Project Scan & Structure
|
||||
|
||||
Copyright (C) 2026 B.D. Murphy and novelWriter contributors.
|
||||
Documentation for the UmbraEdit project (renamed from novelWriter).
|
||||
|
||||
This document is a structural scan of the **UmbraEdit** codebase. It is intended for developers who want to modify or extend the project.
|
||||
|
||||
> UmbraEdit was created by cloning **novelWriter** (vkbo/saga-soft) into this folder and renaming the project to `UmbraEdit`. The full upstream git history is preserved (see §6).
|
||||
|
||||
---
|
||||
|
||||
## 1. Overview
|
||||
|
||||
| Property | Value |
|
||||
|---|---|
|
||||
| **Project name** | UmbraEdit |
|
||||
| **Origin** | Renamed/rebased from [novelWriter](https://github.com/vkbo/novelWriter) (vkbo / saga-soft) |
|
||||
| **Inherited version** | 26.3b1 (novelWriter v26 series; see `umbraedit/__init__.py`) |
|
||||
| **Base version** | Based on novelWrite 2026.02 by Veronica Berglyd Olsen (novelWriter.io), GPL v3.0 |
|
||||
| **Language** | Python 3.11+ |
|
||||
| **UI framework** | Qt6 via PyQt6 |
|
||||
| **Platforms** | Linux, Windows, macOS |
|
||||
| **Storage model** | Plain-text project files (one document per scene + a project XML), well suited to Git and file-sync tools |
|
||||
| **Formatting** | Minimal Markdown-like syntax plus a metadata syntax for comments, synopsis, and cross-references |
|
||||
| **License** | `GPL-3.0-or-later AND Apache-2.0 AND ISC AND MIT` (see `pyproject.toml`, `LICENSE.md`) |
|
||||
| **Entry point** | `UmbraEdit.py` → `umbraedit:main()` |
|
||||
|
||||
**Core idea:** a novel is built from many small plain-text documents organised in a binder/tree, with a composing editor and a compile/export step (DOCX, EPUB, HTML, ODT, Markdown, raw text, QDoc).
|
||||
|
||||
---
|
||||
|
||||
## 2. Repository layout (top level)
|
||||
|
||||
```
|
||||
UmbraEdit/ <- this folder (was novelWriter2)
|
||||
├── UmbraEdit.py <- application start script (imports umbraedit, calls main)
|
||||
├── pyproject.toml <- project metadata, dependencies, ruff/pytest config
|
||||
├── uv.lock <- dependency lockfile (regenerate if deps change)
|
||||
├── run_tests.py <- pytest runner wrapper
|
||||
├── pkgutils.py <- packaging / i18n utility script
|
||||
├── README.md <- user-facing project page (mechanically renamed to UmbraEdit)
|
||||
├── LICENSE.md
|
||||
├── CHANGELOG.md <- historical novelWriter changelog (retains original attribution)
|
||||
├── CONTRIBUTING.md
|
||||
├── CREDITS.md
|
||||
├── AI_POLICY.md
|
||||
├── .gitignore
|
||||
├── .env.example
|
||||
├── docs/ <- Sphinx documentation source
|
||||
├── i18n/ <- Qt translation sources (ue_XX.ts) — compiled .qm are gitignored
|
||||
├── sample/ <- sample novel project (.nwx + content)
|
||||
├── setup/ <- packaging: deb, windows, flatpak, macOS, appimage, icons
|
||||
├── tests/ <- pytest suite (core, editor, gui, manuscript, models, story, text, tools, …)
|
||||
├── umbraedit/ <- main Python package (was novelwriter/)
|
||||
└── utils/ <- build scripts (appimage, debian, flatpak, pypi, windows, assets, docs)
|
||||
```
|
||||
|
||||
**Note:** `AGENTS.md` is gitignored by this project (`.gitignore` line 68). This scan lives in `UMBRAEDIT.md` instead.
|
||||
|
||||
---
|
||||
|
||||
## 3. Package layout — `umbraedit/`
|
||||
|
||||
| Module / package | Responsibility |
|
||||
|---|---|
|
||||
| `__init__.py` | Application bootstrap, `__version__`, `main()` entry |
|
||||
| `config.py` | Runtime configuration, paths, locale/i18n loading (`_ueLangPath`) |
|
||||
| `constants.py` | Application-wide constants |
|
||||
| `shared.py` | Shared data / singleton state |
|
||||
| `enum.py`, `types.py`, `error.py` | Enums, shared types, error handling |
|
||||
| `splash.py` | Splash screen |
|
||||
| `guimain.py` | Main window / GUI assembly |
|
||||
| `core/` | Project model: project, projectdata, projectxml, tree, item, document, storage, sessions, index, indexdata, projectsearch, spellcheck, status, options, coretools |
|
||||
| `editor/` | The composing editor: editor, editordocument, highlighter, history, hovercard, header/footer, toolbars, viewer, search, completion, vim mode |
|
||||
| `gui/` | Widgets/views: main menu, novel tree, project tree, sidebar, status bar, item details, search, theme |
|
||||
| `manuscript/` | Compile/export: manuscript build, document build, settings |
|
||||
| `models/` | Qt item models: item, novel, outline, search |
|
||||
| `story/` | Outline/story view, story settings |
|
||||
| `text/` | Text processing: counting, patterns, formats, autoreplace |
|
||||
| `tools/` | Dictionaries, lorem ipsum, welcome, writing stats |
|
||||
| `formats/` | Import/export filters: to/from DOCX, EPUB, HTML, ODT, Markdown, QDoc, raw text, TOML, QDoc |
|
||||
| `dialogs/` | Preferences, project settings, about, split/merge, labels, links, quotes, word list |
|
||||
| `extensions/` | Custom widgets: tab widget, switch, progress bars, event filters, etc. |
|
||||
| `assets/` | Icons, images, themes (`.toml`), i18n project JSON, manual, credits |
|
||||
|
||||
---
|
||||
|
||||
## 4. How to build and run
|
||||
|
||||
### Requirements
|
||||
- Python ≥ 3.11 (system Python 3.9.6 is **too old** — `match`/`case` syntax requires 3.10+)
|
||||
- `pyqt6>=6.4`, `pyenchant>=3.3.0`
|
||||
- macOS only: `pyobjc-framework-Cocoa`
|
||||
|
||||
### Run the application
|
||||
```bash
|
||||
cd /Volumes/1TB_APL_Storage/UmbraEdit
|
||||
python3 UmbraEdit.py
|
||||
# or, with the package on PYTHONPATH:
|
||||
python3 -c "import umbraedit; umbraedit.main()"
|
||||
```
|
||||
|
||||
### Syntax check (Python 3.11+)
|
||||
```bash
|
||||
/Volumes/Dock/worstauthor/.local/bin/python3.11 -m py_compile umbraedit/*.py umbraedit/**/*.py
|
||||
```
|
||||
|
||||
### Tests
|
||||
```bash
|
||||
python3 run_tests.py # full pytest suite
|
||||
python3 run_tests.py -m core # run a test marker group
|
||||
```
|
||||
Test configuration lives in `pyproject.toml` (`[tool.pytest.ini_options]`, testpaths=`tests`).
|
||||
|
||||
### Linting
|
||||
The project uses **ruff** (see `[tool.ruff]` in `pyproject.toml`) and **pyright**.
|
||||
|
||||
### Packaging
|
||||
See `setup/` and `utils/`:
|
||||
- `utils/build_debian.py`, `build_windows.py`, `build_flatpak.py`, `build_appimage.py`, `build_pypi.py`
|
||||
- `setup/windows/`, `setup/macos/`, `setup/debian/`, `setup/flatpak/`
|
||||
|
||||
---
|
||||
|
||||
## 5. i18n (translations)
|
||||
|
||||
- Translation sources: `i18n/ue_XX.ts` (renamed from `nw_XX.ts`)
|
||||
- Compiled `.qm` files are **gitignored** (`i18n/*.qm`, `/umbraedit/assets/i18n/*.qm`) and generated at build time
|
||||
- `umbraedit/config.py` loads `ue_<locale>.qm` from `_ueLangPath` (`umbraedit/assets/i18n`)
|
||||
- Add a new language: create `i18n/ue_XX.ts` and regenerate the `.qm` with Qt Linguist / `lrelease`
|
||||
|
||||
---
|
||||
|
||||
## 6. Git system & Gitea publishing
|
||||
|
||||
### Current remote state
|
||||
```
|
||||
upstream https://github.com/vkbo/novelWriter.git (original novelWriter, preserved as reference)
|
||||
```
|
||||
There is **no `origin`** yet.
|
||||
|
||||
### What was done in this session
|
||||
1. Cloned `https://github.com/vkbo/novelWriter.git` into this folder (`novelWriter2`).
|
||||
2. Renamed the project `novelWriter` → `UmbraEdit` (package `novelwriter` → `umbraedit`, entry `novelWriter.py` → `UmbraEdit.py`, i18n `nw_*.ts` → `ue_*.ts`, packaging files, all imports/docs/tests/workflows).
|
||||
3. Committed the rename:
|
||||
- `70d74e675 chore: rename project from novelWriter to UmbraEdit` (474 files, all renames detected by git)
|
||||
4. Archived the previous UmbraEdit (Rust/Tauri, pre-implementation spec project) preserving its git history:
|
||||
- `/Volumes/1TB_APL_Storage/Archive/UmbraEdit_archived_20261105/`
|
||||
5. Working tree is clean; branch is `main`.
|
||||
|
||||
### To publish as UmbraEdit on your Gitea server
|
||||
A Gitea credential is **not** configured in this environment, and the Gitea server URL is not known yet, so `origin` was intentionally left unset. When ready:
|
||||
|
||||
```bash
|
||||
# 1. Create the "UmbraEdit" repository on your Gitea server first
|
||||
# 2. Add it as origin
|
||||
git remote add origin <GITEA_URL>/UmbraEdit.git
|
||||
|
||||
# 3. Push
|
||||
git push -u origin main
|
||||
|
||||
# 4. (Optional) keep pulling upstream novelWriter improvements
|
||||
git fetch upstream
|
||||
git merge upstream/main # or cherry-pick as desired
|
||||
```
|
||||
|
||||
### Project URLs to update
|
||||
`README.md` and `pyproject.toml` currently carry mechanically-renamed GitHub URLs
|
||||
(`https://github.com/saga-soft/UmbraEdit`, etc.). Before publishing, replace these
|
||||
with your Gitee instance URLs, e.g.:
|
||||
- Repository → `https://<gitea>/<owner>/UmbraEdit`
|
||||
- Issues → `https://<gitea>/<owner>/UmbraEdit/issues`
|
||||
- Homepage / Documentation → your UmbraEdit docs site
|
||||
|
||||
---
|
||||
|
||||
## 7. Extension guidance (adding features)
|
||||
|
||||
The codebase is organised by concern, which makes it straightforward to extend:
|
||||
|
||||
| To add… | Touch… |
|
||||
|---|---|
|
||||
| New editor feature / syntax highlighting | `umbraedit/editor/` (editor, highlighter, history) |
|
||||
| New project-tree / binder operation | `umbraedit/core/` (tree, project, projectdata, projectxml) |
|
||||
| New import/export format | `umbraedit/formats/` (add a `toXxx` / `fromXxx` module) |
|
||||
| New settings / preferences UI | `umbraedit/dialogs/preferences.py`, `umbraedit/config.py` |
|
||||
| New view / dock panel | `umbraedit/gui/`, `umbraedit/guimain.py` |
|
||||
| New data model / Qt model | `umbraedit/models/`, `umbraedit/core/item.py` |
|
||||
| New compile/export target | `umbraedit/manuscript/` + a format module |
|
||||
| New theme | `umbraedit/assets/themes/*.toml` |
|
||||
| New translation | `i18n/ue_XX.ts` (§5) |
|
||||
|
||||
### Recommended workflow for new features
|
||||
1. Create a feature branch off `main`: `git checkout -b feature/<name>`
|
||||
2. Implement + add tests under `tests/` mirroring the source layout
|
||||
3. Run `python3 run_tests.py` and `ruff` lint
|
||||
4. Commit on the feature branch, then merge to `main`
|
||||
5. Never let a week of work sit uncommitted (per project convention)
|
||||
|
||||
---
|
||||
|
||||
## 8. Files intentionally left as-is
|
||||
|
||||
| File | Reason |
|
||||
|---|---|
|
||||
| `uv.lock` | Dependency lockfile; still references `novelwriter` — regenerate (`uv lock`) if dependencies change |
|
||||
| `setup/windows/novelWriter.exe` | Binary executable |
|
||||
| `umbraedit/assets/images/welcome.webp` | Binary image (may still render "novelWriter" text) |
|
||||
| `CHANGELOG.md`, `CREDITS.md` | Historical records retaining original novelWriter attribution |
|
||||
|
||||
---
|
||||
|
||||
*Generated as part of the UmbraEdit project setup. Scan date: 2026-11-05.*
|
||||
245
UMBRAEDIT_UPDATE_PLAN.md
Normal file
@@ -0,0 +1,245 @@
|
||||
# UmbraEdit — Toolchain & Dependency Update Plan
|
||||
|
||||
Copyright (C) 2026 B.D. Murphy and novelWriter contributors.
|
||||
Plan for upgrading UmbraEdit (Python/PyQt6) toolchain and dependencies.
|
||||
|
||||
**Goal:** Bring UmbraEdit (Python/PyQt6) up to the latest stable versions of its tools and dependencies, starting from the current baseline.
|
||||
|
||||
**Baseline (as of 2026-11-05):**
|
||||
- System Python: 3.9.6 (`/usr/bin/python3`) — **below** the project's `requires-python >=3.11`
|
||||
- Available runtimes: Python 3.11.15, 3.12.13 (via `uv` in `~/.local/bin`)
|
||||
- `uv`: 0.11.7 (2026-04-15) — outdated
|
||||
- PyQt6: not yet installed in the 3.11 environment
|
||||
- `pyproject.toml` deps: `pyqt6>=6.4`, `pyenchant>=3.3.0`, `pyobjc-framework-Cocoa` (darwin)
|
||||
- Lockfile: `uv.lock` (references `novelwriter` package name — will need regen)
|
||||
|
||||
---
|
||||
|
||||
## 1. Target Versions
|
||||
|
||||
| Tool | Current | Target | Source |
|
||||
|---|---|---|---|
|
||||
| Python runtime | 3.9.6 (system) | 3.12.x (latest 3.12) or 3.13.x | `uv` / python.org |
|
||||
| PyQt6 | not installed | latest 6.x | PyPI |
|
||||
| pyenchant | >=3.3.0 | latest 3.x | PyPI |
|
||||
| pyobjc-framework-Cocoa | pinned by pyproject | latest (macOS only) | PyPI |
|
||||
| uv | 0.11.7 | latest | github.com/astral-sh/uv |
|
||||
| ruff | (in `uv.lock`) | latest | PyPI |
|
||||
| pyright | (in `uv.lock`) | latest | npm/PyPI |
|
||||
| pytest | (in `uv.lock`) | latest 8.x | PyPI |
|
||||
| pytest-qt | (in `uv.lock`) | latest | PyPI |
|
||||
| coverage | (in `uv.lock`) | latest | PyPI |
|
||||
| Sphinx + theme | (in `uv.lock`) | latest | PyPI |
|
||||
| setuptools | 82.0.1 | latest | PyPI |
|
||||
| pip | 26.0.1 | latest | ensure via `uv` |
|
||||
|
||||
> Prefer Python **3.12** as the primary target (mature, PyQt6 wheels widely available). Keep **3.11** as a secondary CI matrix entry since `requires-python` is `>=3.11`.
|
||||
|
||||
---
|
||||
|
||||
## 2. Phased Execution
|
||||
|
||||
### Phase 0 — Preparation & Safety
|
||||
1. Ensure working tree is clean and all changes committed on `main` (already done).
|
||||
2. Tag the current state as a rollback point:
|
||||
```bash
|
||||
git tag umbraedit/pre-toolchain-update
|
||||
git push origin umbraedit/pre-toolchain-update
|
||||
```
|
||||
3. Record current working commands (`python3 UmbraEdit.py`, test runner) so you can compare before/after.
|
||||
4. Back up `uv.lock` and `pyproject.toml`.
|
||||
|
||||
### Phase 1 — Upgrade `uv` and Python runtimes
|
||||
1. Upgrade `uv` itself:
|
||||
```bash
|
||||
uv self upgrade
|
||||
# or: curl -LsSf https://astral.sh/uv/install.sh | sh
|
||||
```
|
||||
2. Install the target Python(s) via `uv` (so they are isolated and reproducible):
|
||||
```bash
|
||||
uv python install 3.12
|
||||
uv python install 3.11 # keep for CI matrix
|
||||
uv python list
|
||||
uv python pin 3.12 # sets default for this project (writes .python-version)
|
||||
```
|
||||
3. Verify:
|
||||
```bash
|
||||
uv run python --version # should report 3.12.x
|
||||
```
|
||||
|
||||
### Phase 2 — Upgrade core runtime dependencies
|
||||
Create a fresh virtual environment with the target Python and install the project's runtime deps at their latest compatible versions:
|
||||
|
||||
```bash
|
||||
cd /Volumes/1TB_APL_Storage/UmbraEdit
|
||||
uv venv --python 3.12
|
||||
uv pip install "pyqt6>=6.4" "pyenchant>=3.3.0"
|
||||
# macOS only:
|
||||
uv pip install "pyobjc-framework-Cocoa"
|
||||
```
|
||||
|
||||
Then:
|
||||
1. Run the app to confirm it starts:
|
||||
```bash
|
||||
uv run python UmbraEdit.py
|
||||
# or, after venv activation:
|
||||
python UmbraEdit.py
|
||||
```
|
||||
2. If `pyqt6` wheels fail on the target Python, fall back to 3.11 or file an issue.
|
||||
|
||||
### Phase 3 — Upgrade build / lint / test tooling
|
||||
Update the dependency groups in `pyproject.toml` (`build`, `docs`, `test`, `lint`) to latest, then sync:
|
||||
|
||||
```toml
|
||||
[dependency-groups]
|
||||
dev = [
|
||||
{ include-group = "build" },
|
||||
{ include-group = "docs" },
|
||||
{ include-group = "test" },
|
||||
{ include-group = "lint" },
|
||||
]
|
||||
build = ["pyyaml", "tzdata; sys_platform == 'win32'"]
|
||||
docs = [
|
||||
"docutils>=0.17.1",
|
||||
"pygments>=2.7",
|
||||
"sphinx-book-theme",
|
||||
"sphinx-copybutton",
|
||||
"sphinx-design",
|
||||
"sphinx-favicon",
|
||||
"sphinx-intl",
|
||||
"sphinx>=5.0",
|
||||
]
|
||||
test = [
|
||||
"coverage>=7.16.0",
|
||||
"pytest-qt",
|
||||
"pytest-timeout",
|
||||
"pytest>=6.0.0",
|
||||
"tzdata; sys_platform == 'win32'",
|
||||
]
|
||||
lint = ["pyright", "ruff"]
|
||||
```
|
||||
|
||||
Suggested edits:
|
||||
- Bump `pytest>=6.0.0` → `pytest>=8.0` (check PyPI for latest 8.x)
|
||||
- Bump `coverage>=7.16.0` → latest
|
||||
- Bump `sphinx>=5.0` → latest 7.x/8.x
|
||||
- Keep `ruff` and `pyright` unpinned or with generous lower bounds so `uv lock` resolves latest
|
||||
|
||||
Then sync:
|
||||
```bash
|
||||
uv lock --upgrade # resolve all groups to latest
|
||||
uv sync --all-groups # create .venv with everything
|
||||
```
|
||||
|
||||
### Phase 4 — Regenerate `uv.lock`
|
||||
`uv.lock` currently references the old `novelwriter` package name and is stale.
|
||||
```bash
|
||||
uv lock --upgrade
|
||||
git diff uv.lock # review before committing
|
||||
```
|
||||
Commit the regenerated lockfile with the toolchain update.
|
||||
|
||||
### Phase 5 — Update `requires-python` and classifiers (optional)
|
||||
If you want to drop 3.11 and standardize on 3.12+:
|
||||
```toml
|
||||
requires-python = ">=3.12"
|
||||
```
|
||||
And update classifiers accordingly. Otherwise keep `>=3.11` and test both 3.11 and 3.12 in CI.
|
||||
|
||||
### Phase 6 — Update Gitea CI workflows
|
||||
The `.github/workflows/*.yml` files reference Python setup steps. Update them to:
|
||||
- Use `actions/setup-python` with `python-version: ["3.11", "3.12"]` (or your Gitea Actions equivalent)
|
||||
- Install via `uv sync --all-groups` instead of `pip install -e .`
|
||||
- Run `uv run ruff check`, `uv run pyright`, `uv run pytest`
|
||||
|
||||
If your Gitea instance uses Gitea Actions, mirror the same matrix. If not, update the workflows to call `uv` explicitly.
|
||||
|
||||
### Phase 7 — Packaging scripts review
|
||||
The `utils/` build scripts (`build_appimage.py`, `build_debian.py`, `build_flatpak.py`, `build_pypi.py`, `build_windows.py`) and `setup/` packaging may pin Python/Qt versions. Check each for:
|
||||
- Hardcoded `python3` → should target the new runtime
|
||||
- `qt_version = "6.11"` in `[tool.novelwriter.build] flatpak` → verify against latest Qt6
|
||||
- `pyqt6>=6.4` lower bound → keep or raise
|
||||
|
||||
### Phase 8 — Validation
|
||||
1. **Syntax/compile:** `uv run python -m py_compile umbraedit/ tests/ utils/`
|
||||
2. **Import smoke:** `uv run python -c "import umbraedit; umbraedit.main(['--help'])"`
|
||||
3. **Lint:** `uv run ruff check .` and `uv run pyright`
|
||||
4. **Tests:** `uv run pytest` (or `uv run python run_tests.py`)
|
||||
5. **App launch:** `uv run python UmbraEdit.py` — confirm main window opens
|
||||
6. **Export formats:** exercise DOCX/EPUB/HTML/ODT export paths if sample data exists
|
||||
|
||||
### Phase 9 — Commit & publish
|
||||
```bash
|
||||
git add -A
|
||||
git commit -m "chore: upgrade toolchain to Python 3.12 and latest deps
|
||||
|
||||
- Upgrade uv and pin Python 3.12 via .python-version
|
||||
- Refresh pyproject.toml dependency groups to latest compatible versions
|
||||
- Regenerate uv.lock
|
||||
- Update Gitea CI workflows for uv + Python 3.11/3.12 matrix
|
||||
- Review packaging scripts for hardcoded python/qt versions"
|
||||
git push origin main
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Rollback Plan
|
||||
|
||||
If anything breaks after the update:
|
||||
|
||||
```bash
|
||||
# Restore previous state
|
||||
git checkout umbraedit/pre-toolchain-update .
|
||||
# or reset hard to the tag
|
||||
git reset --hard umbraedit/pre-toolchain-update
|
||||
git push origin main --force # only if already pushed and you need to undo
|
||||
```
|
||||
|
||||
Also keep the old system Python 3.9.6 available (do not remove `/usr/bin/python3`), and keep the `upstream` remote pointing at the original novelWriter for reference.
|
||||
|
||||
---
|
||||
|
||||
## 4. Recommended Command Sequence (copy-paste ready)
|
||||
|
||||
```bash
|
||||
cd /Volumes/1TB_APL_Storage/UmbraEdit
|
||||
|
||||
# 0. Tag rollback point
|
||||
git tag umbraedit/pre-toolchain-update
|
||||
git push origin umbraedit/pre-toolchain-update
|
||||
|
||||
# 1. Upgrade uv and pin Python 3.12
|
||||
uv self upgrade
|
||||
uv python install 3.12
|
||||
uv python pin 3.12
|
||||
uv run python --version
|
||||
|
||||
# 2. Create venv and install runtime deps at latest
|
||||
uv venv --python 3.12
|
||||
uv pip install "pyqt6>=6.4" "pyenchant>=3.3.0"
|
||||
|
||||
# 3. Smoke-test the app
|
||||
uv run python UmbraEdit.py
|
||||
|
||||
# 4. Sync dev toolchains (lint/test/docs)
|
||||
uv sync --all-groups
|
||||
|
||||
# 5. Regenerate lockfile
|
||||
uv lock --upgrade
|
||||
git diff uv.lock | head -100
|
||||
|
||||
# 6. Validate
|
||||
uv run python -m py_compile umbraedit/ tests/ utils/
|
||||
uv run ruff check .
|
||||
uv run pytest
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Notes & Risks
|
||||
|
||||
- **PyQt6 on Python 3.13:** Wheels may lag; if 3.13 is required, verify PyQt6 availability first. 3.12 is the safer target.
|
||||
- **`pyobjc-framework-Cocoa`:** macOS-only; only install/test on darwin.
|
||||
- **`uv.lock` diff:** Expect a large diff since the lockfile is stale; review that no unexpected major-version jumps occur (especially PyQt6 6.x → 7.x, which would be breaking).
|
||||
- **CI:** Gitea Actions runners must have `uv` installed, or the workflows must install it as a step.
|
||||
- **Application still runs on Python 3.9.6?** No — `match`/`case` syntax requires 3.10+, and `requires-python` is `>=3.11`. The system 3.9.6 must not be used to run UmbraEdit.
|
||||
12
UmbraEdit.command
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/bin/zsh
|
||||
# UmbraEdit Launcher for macOS
|
||||
# Double-click to launch, or run: ./UmbraEdit.command
|
||||
#
|
||||
# Copyright (C) 2026 B.D. Murphy and novelWriter contributors.
|
||||
# Created: macOS launcher script for UmbraEdit (renamed from novelWriter).
|
||||
|
||||
cd "$(dirname "$0")"
|
||||
|
||||
# Use the project's uv-managed Python 3.12 virtual environment
|
||||
export UV_PYTHON_PREFERENCE="only-managed"
|
||||
exec uv run python UmbraEdit.py "$@"
|
||||
BIN
UmbraEdit.jpg
Executable file
|
After Width: | Height: | Size: 736 KiB |
15
UmbraEdit.py
Executable file
@@ -0,0 +1,15 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
UmbraEdit - Start Script
|
||||
==========================
|
||||
""" # noqa
|
||||
|
||||
import os
|
||||
import sys
|
||||
|
||||
os.curdir = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
if __name__ == "__main__":
|
||||
import umbraedit
|
||||
|
||||
umbraedit.main(sys.argv[1:])
|
||||
221
build-linux.sh
Executable file
@@ -0,0 +1,221 @@
|
||||
#!/usr/bin/env bash
|
||||
#=============================================================================
|
||||
# UmbraEdit Linux Build Script
|
||||
# ============================================================================
|
||||
# Downloads the UmbraEdit source tarball and builds a .deb package and/or
|
||||
# AppImage for Linux AMD64/ARM64.
|
||||
#
|
||||
# Usage:
|
||||
# chmod +x build-linux.sh
|
||||
# ./build-linux.sh [--arch amd64|arm64] [--distro ubuntu|debian] [--no-deb]
|
||||
#
|
||||
# No git clone required. Downloads the source tarball automatically.
|
||||
#=============================================================================
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
#-----------------------------------------------------------------------------
|
||||
# Configuration
|
||||
#-----------------------------------------------------------------------------
|
||||
VERSION="2026.11.5"
|
||||
RELEASE_VERSION="2026.11.0007"
|
||||
GITEA_URL="http://192.168.123.18:2222/umbragit/UmbraEdit"
|
||||
TARBALL_URL="${GITEA_URL}/-/archive/v${RELEASE_VERSION}/umbraedit-${RELEASE_VERSION}.tar.gz"
|
||||
TARBALL="umbraedit-${RELEASE_VERSION}.tar.gz"
|
||||
EXTRACTED_DIR="umbraedit-${RELEASE_VERSION}"
|
||||
|
||||
ARCH="${1:-amd64}"
|
||||
DISTRO="${2:-ubuntu}"
|
||||
BUILD_DEB="${3:-yes}"
|
||||
|
||||
echo "============================================================"
|
||||
echo " UmbraEdit Linux Build Script"
|
||||
echo "============================================================"
|
||||
echo ""
|
||||
echo " Version: ${RELEASE_VERSION}"
|
||||
echo " Architecture: ${ARCH}"
|
||||
echo " Distro: ${DISTRO}"
|
||||
echo " Build .deb: ${BUILD_DEB}"
|
||||
echo ""
|
||||
|
||||
#--------------------------------------------------------------
|
||||
# Step 1: Check prerequisites
|
||||
#--------------------------------------------------------------
|
||||
echo "[1/5] Checking prerequisites..."
|
||||
|
||||
MISSING=0
|
||||
for cmd in curl tar python3; do
|
||||
if ! command -v "$cmd" &> /dev/null; then
|
||||
echo " MISSING: $cmd"
|
||||
MISSING=1
|
||||
fi
|
||||
done
|
||||
|
||||
if command -v apt-get &> /dev/null; then
|
||||
PKG_MGR="apt-get"
|
||||
elif command -v dnf &> /dev/null; then
|
||||
PKG_MGR="dnf"
|
||||
elif command -v pacman &> /dev/null; then
|
||||
PKG_MGR="pacman"
|
||||
else
|
||||
PKG_MGR=""
|
||||
fi
|
||||
|
||||
if [ "$PKG_MGR" = "" ]; then
|
||||
echo ""
|
||||
echo "ERROR: No supported package manager found (apt-get, dnf, or pacman)"
|
||||
echo "Please install: python3, python3-pip, python3-pyqt6, python3-enchant,"
|
||||
echo " dh-python, debhelper, python3-build, appimagetool"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo " Package manager: $PKG_MGR"
|
||||
echo " Prerequisites OK"
|
||||
|
||||
#--------------------------------------------------------------
|
||||
# Step 2: Install system dependencies
|
||||
#--------------------------------------------------------------
|
||||
echo ""
|
||||
echo "[2/5] Installing system dependencies..."
|
||||
|
||||
INSTALL_FAILED=0
|
||||
|
||||
if [ "$PKG_MGR" = "apt-get" ]; then
|
||||
echo " Updating package lists..."
|
||||
if ! sudo apt-get update 2>&1 | tail -5; then
|
||||
echo ""
|
||||
echo "============================================================"
|
||||
echo " ERROR: apt-get update failed!"
|
||||
echo "============================================================"
|
||||
echo ""
|
||||
echo " One of your package repositories is broken (likely a PPA or"
|
||||
echo " third-party repo like NVIDIA's)."
|
||||
echo ""
|
||||
echo " To fix:"
|
||||
echo " 1. Check /etc/apt/sources.list and /etc/apt/sources.list.d/"
|
||||
echo " 2. Remove or disable any repositories that no longer exist"
|
||||
echo " 3. Run: sudo apt-get update"
|
||||
echo " 4. Then re-run this script: ./build-linux.sh"
|
||||
echo ""
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "Installing packages..."
|
||||
install_pkg() {
|
||||
if [ "$PKG_MGR" = "apt-get" ]; then
|
||||
sudo apt-get install -y "$@" 2>&1 | tail -3
|
||||
elif [ "$PKG_MGR" = "dnf" ]; then
|
||||
sudo dnf install -y "$@" 2>&1 | tail -3
|
||||
elif [ "$PKG_MGR" = "pacman" ]; then
|
||||
sudo pacman -Sy --noconfirm "$@" 2>&1 | tail -3
|
||||
fi
|
||||
}
|
||||
|
||||
echo " Installing: python3 python3-pip python3-pyqt6 python3-enchant"
|
||||
install_pkg python3 python3-pip python3-pyqt6 python3-enchant 2>&1 | tail -3 || {
|
||||
echo ""
|
||||
echo "============================================================"
|
||||
echo " ERROR: Failed to install core dependencies"
|
||||
echo "============================================================"
|
||||
echo ""
|
||||
echo " Please install manually and re-run:"
|
||||
echo " sudo apt-get install python3 python3-pip python3-pyqt6 python3-enchant"
|
||||
echo ""
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo ""
|
||||
echo " Installing: dh-python debhelper python3-build appimagetool"
|
||||
install_pkg dh-python debhelper python3-build appimagetool 2>&1 | tail -3 || {
|
||||
echo ""
|
||||
echo "============================================================"
|
||||
echo " WARNING: Some build tools failed to install"
|
||||
echo "============================================================"
|
||||
echo ""
|
||||
echo " You may need to install these manually:"
|
||||
echo " sudo apt-get install dh-python debhelper python3-build appimagetool"
|
||||
echo ""
|
||||
echo " Continuing anyway..."
|
||||
}
|
||||
|
||||
echo " System dependencies installed"
|
||||
|
||||
#--------------------------------------------------------------
|
||||
# Step 3: Download source tarball
|
||||
#--------------------------------------------------------------
|
||||
echo ""
|
||||
echo "[3/5] Downloading source tarball..."
|
||||
echo " URL: ${TARBALL_URL}"
|
||||
|
||||
if [ -f "$TARBALL" ]; then
|
||||
echo " Archive already exists, skipping download"
|
||||
else
|
||||
curl -L -o "$TARBALL" "$TARBALL_URL"
|
||||
echo " Downloaded: $(ls -lh "$TARBALL" | awk '{print $5}')"
|
||||
fi
|
||||
|
||||
#--------------------------------------------------------------
|
||||
# Step 4: Extract source
|
||||
#--------------------------------------------------------------
|
||||
echo ""
|
||||
echo "[4/5] Extracting source..."
|
||||
|
||||
rm -rf "$EXTRACTED_DIR"
|
||||
tar xzf "$TARBALL"
|
||||
cd "$EXTRACTED_DIR"
|
||||
|
||||
echo " Extracted to: $(pwd)"
|
||||
|
||||
#--------------------------------------------------------------
|
||||
# Step 5: Install Python dependencies
|
||||
#--------------------------------------------------------------
|
||||
echo ""
|
||||
echo "[5/5] Installing Python dependencies..."
|
||||
|
||||
python3 -m pip install --user --upgrade pip setuptools wheel 2>&1 | tail -1
|
||||
python3 -m pip install --user pyqt6 pyenchant 2>&1 | tail -1
|
||||
|
||||
echo " Python dependencies installed"
|
||||
|
||||
#--------------------------------------------------------------
|
||||
# Step 6: Build packages
|
||||
#--------------------------------------------------------------
|
||||
echo ""
|
||||
echo "[6/6] Building packages..."
|
||||
|
||||
# Build .deb (Debian/Ubuntu only)
|
||||
if [ "$BUILD_DEB" = "yes" ] && [ "$PKG_MGR" = "apt-get" ]; then
|
||||
echo ""
|
||||
echo "Building .deb package..."
|
||||
python3 utils/build_debian.py --distro "$DISTRO" --build 1
|
||||
echo ""
|
||||
echo " .deb package: dist_deb/umbraedit_*_${ARCH}.deb"
|
||||
fi
|
||||
|
||||
# Build AppImage
|
||||
echo ""
|
||||
echo "Building AppImage..."
|
||||
python3 utils/build_appimage.py --linux manylinux_2_28 --arch "$ARCH" --python 3.12
|
||||
echo ""
|
||||
echo " AppImage: dist_appimage/umbraedit-${RELEASE_VERSION}-${ARCH}.AppImage"
|
||||
|
||||
#--------------------------------------------------------------
|
||||
# Done
|
||||
#--------------------------------------------------------------
|
||||
echo ""
|
||||
echo "============================================================"
|
||||
echo " Build Complete!"
|
||||
echo "============================================================"
|
||||
echo ""
|
||||
echo "Artifacts:"
|
||||
ls -la dist_deb/ 2>/dev/null || true
|
||||
ls -la dist_appimage/ 2>/dev/null || true
|
||||
echo ""
|
||||
echo "To run UmbraEdit:"
|
||||
echo " From AppImage: chmod +x dist_appimage/umbraedit-${RELEASE_VERSION}-${ARCH}.AppImage"
|
||||
echo " ./dist_appimage/umbraedit-${RELEASE_VERSION}-${ARCH}.AppImage"
|
||||
echo " From .deb: sudo dpkg -i dist_deb/umbraedit_*_${ARCH}.deb && umbraedit"
|
||||
echo ""
|
||||
echo "Source directory: $(pwd)"
|
||||
22
codecov.yml
@@ -1,22 +0,0 @@
|
||||
codecov:
|
||||
require_ci_to_pass: yes
|
||||
|
||||
coverage:
|
||||
precision: 2
|
||||
round: nearest
|
||||
range: "70...95"
|
||||
|
||||
status:
|
||||
project:
|
||||
default:
|
||||
threshold: 1%
|
||||
patch: no
|
||||
changes: no
|
||||
|
||||
parsers:
|
||||
gcov:
|
||||
branch_detection:
|
||||
conditional: yes
|
||||
loop: yes
|
||||
method: no
|
||||
macro: no
|
||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 30 KiB |
@@ -1,31 +1,35 @@
|
||||
"""
|
||||
Configuration file for the Sphinx documentation builder.
|
||||
Documentation: http://www.sphinx-doc.org/en/master/config
|
||||
"""
|
||||
""" # noqa
|
||||
|
||||
# -- Imports -----------------------------------------------------------------
|
||||
|
||||
import datetime
|
||||
import os
|
||||
import time
|
||||
import datetime
|
||||
|
||||
# -- Project Information -----------------------------------------------------
|
||||
|
||||
project = "novelWriter"
|
||||
copyright = f"{datetime.date.today().year}"
|
||||
author = "Veronica Berglyd Olsen"
|
||||
project = "UmbraEdit"
|
||||
copyright = f"{datetime.date.today().year}" # noqa: A001
|
||||
|
||||
initFile = os.path.join(
|
||||
os.path.dirname(__file__), os.pardir, os.pardir,
|
||||
"novelwriter", "__init__.py"
|
||||
)
|
||||
with open(initFile) as inFile:
|
||||
for aLine in inFile:
|
||||
if aLine.startswith("__version__"):
|
||||
release = aLine.split('"')[1].strip()
|
||||
break
|
||||
else:
|
||||
release = "unknown"
|
||||
if override_authors := os.environ.get("SPHINX_I18N_AUTHORS"):
|
||||
author = override_authors
|
||||
else:
|
||||
author = "Veronica Berglyd Olsen"
|
||||
|
||||
if override_version := os.environ.get("SPHINX_I18N_VERSION"):
|
||||
release = override_version
|
||||
else:
|
||||
initFile = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, "umbraedit", "__init__.py")
|
||||
with open(initFile, encoding="utf-8") as inFile:
|
||||
for aLine in inFile:
|
||||
if aLine.startswith("__version__"):
|
||||
release = "20" + aLine.split('"')[1].strip()
|
||||
break
|
||||
else:
|
||||
release = "unknown"
|
||||
|
||||
version = release.partition("-")[0]
|
||||
|
||||
@@ -35,12 +39,14 @@ os.environ["TZ"] = "Europe/Oslo"
|
||||
time.tzset()
|
||||
|
||||
needs_sphinx = "5.0"
|
||||
extensions = ["sphinx_design"]
|
||||
extensions = ["sphinx_design", "sphinx_copybutton"]
|
||||
templates_path = ["_templates"]
|
||||
source_suffix = ".rst"
|
||||
source_suffix = {".rst": "restructuredtext"}
|
||||
master_doc = "index"
|
||||
today_fmt = "%A, %d %B %Y at %H:%M"
|
||||
language = "en"
|
||||
locale_dirs = ["locales/"]
|
||||
gettext_compact = False
|
||||
exclude_patterns = []
|
||||
|
||||
# -- Options for HTML Output -------------------------------------------------
|
||||
@@ -51,17 +57,17 @@ html_static_path = ["_static"]
|
||||
html_css_files = ["custom.css"]
|
||||
html_theme_options = {
|
||||
"logo": {
|
||||
"image_light": "_static/novelwriter-light.png",
|
||||
"image_dark": "_static/novelwriter-dark.png",
|
||||
"image_light": "_static/umbraedit-light.png",
|
||||
"image_dark": "_static/umbraedit-dark.png",
|
||||
},
|
||||
"show_toc_level": 2,
|
||||
"show_navbar_depth": 1,
|
||||
"repository_url": "https://github.com/vkbo/novelwriter",
|
||||
"repository_url": "https://github.com/saga-soft/umbraedit",
|
||||
"navigation_with_keys": True,
|
||||
"use_repository_button": True,
|
||||
"use_issues_button": True,
|
||||
"pygment_light_style": "tango",
|
||||
"pygment_dark_style": "dracula",
|
||||
"pygments_light_style": "tango",
|
||||
"pygments_dark_style": "dracula",
|
||||
}
|
||||
html_sidebars = {
|
||||
"**": ["navbar-logo", "sidebar-title", "sbt-sidebar-nav"],
|
||||
@@ -72,13 +78,8 @@ html_sidebars = {
|
||||
latex_elements = {
|
||||
"papersize": "a4paper",
|
||||
"pointsize": "11pt",
|
||||
"preamble": (
|
||||
"\\usepackage[utf8]{inputenc}\n"
|
||||
"\\DeclareUnicodeCharacter{2212}{\\textendash}\n"
|
||||
),
|
||||
"preamble": ("\\usepackage[utf8]{inputenc}\n\\DeclareUnicodeCharacter{2212}{\\textendash}\n"),
|
||||
"figure_align": "htbp",
|
||||
}
|
||||
latex_logo = "_static/novelwriter-pdf.png"
|
||||
latex_documents = [(
|
||||
master_doc, "manual.tex", "User Guide", author, "manual"
|
||||
)]
|
||||
latex_logo = "_static/umbraedit-pdf.png"
|
||||
latex_documents = [(master_doc, "manual.tex", None, author, "manual")]
|
||||
|
||||
92
docs/source/features/dialogue.rst
Normal file
@@ -0,0 +1,92 @@
|
||||
.. _docs_features_dialogue:
|
||||
|
||||
*********************
|
||||
Dialogue Highlighting
|
||||
*********************
|
||||
|
||||
Dialogue recognition and colour highlighting is available both while you're writing and in
|
||||
generated manuscript documents.
|
||||
|
||||
The default language settings in UmbraEdit are for English. That includes the dialogue
|
||||
highlighting settings. But many dialogue styles are supported. You can tune a number of settings
|
||||
to fit your language and style preferences in the "Text Highlighting" section in **Preferences**.
|
||||
You can mix and match these settings.
|
||||
|
||||
.. figure:: images/fig_dialogue_highlighting.png
|
||||
|
||||
The **Text Highlighting** section of **Preferences**.
|
||||
|
||||
|
||||
Quoted Dialogue
|
||||
===============
|
||||
|
||||
By default, dialogue highlighting is enabled for the double quote symbols you have defined in the
|
||||
**Quotation Style** section of **Preferences**.
|
||||
|
||||
.. figure:: images/fig_dialogue_quote_styles.png
|
||||
|
||||
The **Quotation Style** section of **Preferences**.
|
||||
|
||||
You can change which quote symbols are highlighted by selecting one of "None", "Single", "Double",
|
||||
or "Both" from the "Highlight dialogue" setting under **Text Highlighting**.
|
||||
|
||||
You can also enable or disable the "Allow open-ended dialogue" setting to allow for the style where
|
||||
multi-paragraph dialogue is not closed until the last paragraph.
|
||||
|
||||
.. admonition:: Limitations
|
||||
|
||||
Dialogue highlighting for single quotes is difficult to process when the same single quote
|
||||
symbol is also used for apostrophes. There isn't a good solution to this. Your best option in
|
||||
the cases where the highlighting is wrong is to insert an alternative apostrophe symbol instead.
|
||||
See :ref:`docs_more_typographical_symbols_apostrophe` for more details.
|
||||
|
||||
|
||||
Alternative Dialogue
|
||||
====================
|
||||
|
||||
You can use the "Alternative dialogue symbols" setting for custom dialogue wrapper symbols. These
|
||||
are highlighted in a different colour than regular dialogue.
|
||||
|
||||
The intended use case here is if you use an alternative style to distinguish a different style of
|
||||
communication. The feature idea came from a science fiction series where mind-to-mind communication
|
||||
used a different quotation style.
|
||||
|
||||
|
||||
Dialogue Line Symbols
|
||||
=====================
|
||||
|
||||
In some languages, a single symbol at the start of a paragraph can indicate that the whole
|
||||
paragraph is dialogue. For instance, this symbol can be a short dash (en dash).
|
||||
|
||||
.. figure:: images/fig_dialogue_line.png
|
||||
|
||||
An example of dialogue starting with a short dash.
|
||||
|
||||
You can enable this feature by adding the symbols to the "Dialogue line symbols" setting. Multiple
|
||||
symbols are allowed.
|
||||
|
||||
|
||||
Dialogue with Narrator Break
|
||||
============================
|
||||
|
||||
The dialogue symbol setting will not detect if the dialogue ends in the paragraph. In some styles
|
||||
there is no way to actually indicate the switch from dialogue to narration; in others there are.
|
||||
These a narrator break symbols are usually dashes. You can select one of the supported dash symbols
|
||||
for narrator breaks. These can be used with any of the above dialogue recognition settings.
|
||||
|
||||
.. figure:: images/fig_dialogue_narrator_break.png
|
||||
|
||||
An example of dialogue starting with a short dash and a long dash narrator break.
|
||||
|
||||
|
||||
Alternating Dialogue and Narration
|
||||
==================================
|
||||
|
||||
The alternating dialogue and narration style is supported with the "Alternating dialogue/narration
|
||||
symbol" setting. It can be set to one of the supported dashes. This style will switch into dialogue
|
||||
mode when it first encounters the selected dash in a paragraph, and switch back out when it sees
|
||||
the next one, and so forth.
|
||||
|
||||
.. figure:: images/fig_dialogue_alternating.png
|
||||
|
||||
An example of alternating dialogue and narration using a long dash.
|
||||
BIN
docs/source/features/images/fig_dialogue_alternating.png
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
docs/source/features/images/fig_dialogue_highlighting.png
Normal file
|
After Width: | Height: | Size: 45 KiB |
BIN
docs/source/features/images/fig_dialogue_line.png
Normal file
|
After Width: | Height: | Size: 11 KiB |
BIN
docs/source/features/images/fig_dialogue_narrator_break.png
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
docs/source/features/images/fig_dialogue_quote_styles.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
BIN
docs/source/features/images/fig_story_structure_manuscript.png
Normal file
|
After Width: | Height: | Size: 81 KiB |
@@ -1,17 +1,21 @@
|
||||
.. _a_kb:
|
||||
.. _docs_features_shortcuts:
|
||||
|
||||
******************
|
||||
Keyboard Shortcuts
|
||||
******************
|
||||
|
||||
Most features in novelWriter are available as keyboard shortcuts. This is a reference list of those
|
||||
Most features in UmbraEdit are available as keyboard shortcuts. This is a reference list of those
|
||||
shortcuts. Most of them are also listed in the application's user interface.
|
||||
|
||||
.. note::
|
||||
|
||||
On MacOS, replace :kbd:`Ctrl` with :kbd:`Cmd`.
|
||||
|
||||
.. note::
|
||||
|
||||
Shortcuts marked with (*) are remapped when Vim Mode is enabled and no longer work as listed in
|
||||
the tables below. See :ref:`docs_features_vim_mode` for more details.
|
||||
|
||||
.. _a_kb_main:
|
||||
|
||||
Main Window Shortcuts
|
||||
=====================
|
||||
@@ -20,7 +24,7 @@ Main Window Shortcuts
|
||||
:header: "Shortcut", "Description"
|
||||
|
||||
":kbd:`F1`", "Open the online user manual"
|
||||
":kbd:`F5`", "Open the **Build Manuscript** tool"
|
||||
":kbd:`F5`", "Open the **Manuscript Build** tool"
|
||||
":kbd:`F6`", "Open the **Writing Statistics** tool"
|
||||
":kbd:`F8`", "Toggle **Focus Mode**"
|
||||
":kbd:`F9`", "Re-build the project's index"
|
||||
@@ -28,18 +32,16 @@ Main Window Shortcuts
|
||||
":kbd:`Ctrl+,`", "Open the **Preferences** dialog"
|
||||
":kbd:`Ctrl+E`", "Switch or toggle focus for the editor or viewer"
|
||||
":kbd:`Ctrl+T`", "Switch or toggle focus for the project tree or novel view"
|
||||
":kbd:`Ctrl+Q`", "Exit novelWriter"
|
||||
":kbd:`Ctrl+Q`", "Exit UmbraEdit"
|
||||
":kbd:`Ctrl+Shift+,`", "Open the **Project Settings** dialog"
|
||||
":kbd:`Ctrl+Shift+O`", "Open the Welcome dialog to open or create a project"
|
||||
":kbd:`Ctrl+Shift+S`", "Save the current project"
|
||||
":kbd:`Ctrl+Shift+T`", "Switch focus to the outline view"
|
||||
":kbd:`Ctrl+Shift+W`", "Close the current project"
|
||||
":kbd:`Shift+F1`", "Open the local user manual (PDF) if it is available"
|
||||
":kbd:`Shift+F6`", "Open the **Project Details** dialog"
|
||||
":kbd:`Shift+F8`", "Toggle tree pane visibility"
|
||||
|
||||
|
||||
.. _a_kb_tree:
|
||||
|
||||
Project Tree Shortcuts
|
||||
======================
|
||||
|
||||
@@ -56,14 +58,12 @@ Project Tree Shortcuts
|
||||
":kbd:`Ctrl+L`", "Open the **Quick Links** menu"
|
||||
":kbd:`Ctrl+N`", "Open the **Create New Item** menu"
|
||||
":kbd:`Ctrl+O`", "Open the selected document in the editor"
|
||||
":kbd:`Ctrl+R`", "Open the selected document in the viewer"
|
||||
":kbd:`Ctrl+R`", "Open the selected document in the viewer (*)"
|
||||
":kbd:`Ctrl+Up`", "Move selected item one step up in the tree"
|
||||
":kbd:`Ctrl+Down`", "Move selected item one step down in the tree"
|
||||
":kbd:`Ctrl+Shift+Del`", "Move the selected item to Trash"
|
||||
|
||||
|
||||
.. _a_kb_editor:
|
||||
|
||||
Document Editor Shortcuts
|
||||
=========================
|
||||
|
||||
@@ -93,7 +93,6 @@ Text Formatting Shortcuts
|
||||
":kbd:`Ctrl+'`", "Wrap selected text, or word under cursor, in single quotes"
|
||||
":kbd:`Ctrl+""`", "Wrap selected text, or word under cursor, in double quotes"
|
||||
":kbd:`Ctrl+/`", "Toggle comment format for block or selected text"
|
||||
":kbd:`Ctrl+0`", "Remove format for block or selected text"
|
||||
":kbd:`Ctrl+1`", "Change block format to heading level 1"
|
||||
":kbd:`Ctrl+2`", "Change block format to heading level 2"
|
||||
":kbd:`Ctrl+3`", "Change block format to heading level 3"
|
||||
@@ -106,6 +105,7 @@ Text Formatting Shortcuts
|
||||
":kbd:`Ctrl+B`", "Format selected text, or word under cursor, with bold"
|
||||
":kbd:`Ctrl+D`", "Format selected text, or word under cursor, with strike through"
|
||||
":kbd:`Ctrl+I`", "Format selected text, or word under cursor, with italic"
|
||||
":kbd:`Ctrl+M`", "Highlight selected text, or word under cursor"
|
||||
":kbd:`Ctrl+Shift+/`", "Remove format for block or selected text"
|
||||
":kbd:`Ctrl+Shift+D`", "Toggle ignored text format for block or selected text"
|
||||
|
||||
@@ -116,26 +116,37 @@ Other Editor Shortcuts
|
||||
.. csv-table::
|
||||
:header: "Shortcut", "Description"
|
||||
|
||||
":kbd:`F7`", "Re-run the spell checker on the document"
|
||||
":kbd:`Ctrl+.`", "Open the context menu at the current cursor location"
|
||||
":kbd:`Ctrl+A`", "Select all text in the document"
|
||||
":kbd:`Ctrl+C`", "Copy selected text to clipboard"
|
||||
":kbd:`Ctrl+K`", "Activate the insert commands (see list in :ref:`a_kb_ins`)"
|
||||
":kbd:`Ctrl+R`", "Open or reload the current document in the viewer"
|
||||
":kbd:`Ctrl+S`", "Save the current document"
|
||||
":kbd:`Ctrl+V`", "Paste text from clipboard to cursor position"
|
||||
":kbd:`Ctrl+W`", "Close the current document"
|
||||
":kbd:`Ctrl+X`", "Cut selected text to clipboard"
|
||||
":kbd:`Ctrl+Y`", "Redo latest undo"
|
||||
":kbd:`Ctrl+Z`", "Undo latest changes"
|
||||
":kbd:`Ctrl+Backspace`", "Delete the word before the cursor"
|
||||
":kbd:`Ctrl+Del`", "Delete the word after the cursor"
|
||||
":kbd:`Ctrl+F7`", "Toggle spell checking"
|
||||
":kbd:`Ctrl+Return`", "Open the tag or reference under the cursor in the viewer"
|
||||
":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph"
|
||||
":kbd:`F7`", "Re-run the spell checker on the document"
|
||||
":kbd:`Ctrl+.`", "Open the context menu at the current cursor location"
|
||||
":kbd:`Ctrl+A`", "Select all text in the document"
|
||||
":kbd:`Ctrl+C`", "Copy selected text to clipboard"
|
||||
":kbd:`Ctrl+K`", "Activate the insert commands (see list in :ref:`docs_features_shortcuts_insert`)"
|
||||
":kbd:`Ctrl+R`", "Open or reload the current document in the viewer (*)"
|
||||
":kbd:`Ctrl+S`", "Save the current document"
|
||||
":kbd:`Ctrl+V`", "Paste text from clipboard to cursor position"
|
||||
":kbd:`Ctrl+W`", "Close the current document"
|
||||
":kbd:`Ctrl+X`", "Cut selected text to clipboard"
|
||||
":kbd:`Ctrl+Y`", "Redo latest undo"
|
||||
":kbd:`Ctrl+Z`", "Undo latest changes"
|
||||
":kbd:`Ctrl+0`", "Reset zoom"
|
||||
":kbd:`Ctrl++`", "Zoom in"
|
||||
":kbd:`Ctrl+=`", "Zoom in"
|
||||
":kbd:`Ctrl+-`", "Zoom out"
|
||||
":kbd:`Ctrl+_`", "Zoom out"
|
||||
":kbd:`Ctrl+Backspace`", "Delete the word before the cursor"
|
||||
":kbd:`Ctrl+Del`", "Delete the word after the cursor"
|
||||
":kbd:`Ctrl+F7`", "Toggle spell checking"
|
||||
":kbd:`Ctrl+Return`", "Open the tag or reference under the cursor in the viewer"
|
||||
":kbd:`Ctrl+Shift+Return`", "Open the tag or reference under the cursor in the editor"
|
||||
":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph"
|
||||
":kbd:`Ctrl+Shift+V`", "Paste text as plain text from clipboard to cursor position"
|
||||
":kbd:`Ctrl+Left`", "Move to previous word."
|
||||
":kbd:`Ctrl+Right`", "Move to next word."
|
||||
":kbd:`Ctrl+Up`", "Move to previous paragraph."
|
||||
":kbd:`Ctrl+Down`", "Move to next paragraph."
|
||||
|
||||
|
||||
.. _a_kb_ins:
|
||||
.. _docs_features_shortcuts_insert:
|
||||
|
||||
Insert Shortcuts
|
||||
----------------
|
||||
@@ -151,7 +162,7 @@ a key or key combination for the inserted content.
|
||||
":kbd:`Ctrl+K`, :kbd:`_`", "Insert a long dash (em dash)"
|
||||
":kbd:`Ctrl+K`, :kbd:`.`", "Insert an ellipsis"
|
||||
":kbd:`Ctrl+K`, :kbd:`'`", "Insert a modifier apostrophe"
|
||||
":kbd:`Ctrl+K`, :kbd:`*`", "Insert a list bullet"
|
||||
":kbd:`Ctrl+K`, :kbd:`*`", "Insert a bullet symbol"
|
||||
":kbd:`Ctrl+K`, :kbd:`%`", "Insert a per mille symbol"
|
||||
":kbd:`Ctrl+K`, :kbd:`~`", "Insert a figure dash (same width as a number)"
|
||||
":kbd:`Ctrl+K`, :kbd:`−`", "Insert a short dash (en dash)"
|
||||
@@ -184,8 +195,6 @@ a key or key combination for the inserted content.
|
||||
":kbd:`Ctrl+K`, :kbd:`Shift+Space`", "Insert a thin space"
|
||||
|
||||
|
||||
.. _a_kb_viewer:
|
||||
|
||||
Document Viewer Shortcuts
|
||||
=========================
|
||||
|
||||
@@ -195,5 +204,10 @@ Document Viewer Shortcuts
|
||||
":kbd:`Alt+Left`", "Move backward in the view history"
|
||||
":kbd:`Alt+Right`", "Move forward in the view history"
|
||||
":kbd:`Ctrl+C`", "Copy selected text to clipboard"
|
||||
":kbd:`Ctrl+0`", "Reset zoom"
|
||||
":kbd:`Ctrl++`", "Zoom in"
|
||||
":kbd:`Ctrl+=`", "Zoom in"
|
||||
":kbd:`Ctrl+-`", "Zoom out"
|
||||
":kbd:`Ctrl+_`", "Zoom out"
|
||||
":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph"
|
||||
":kbd:`Ctrl+Shift+R`", "Close the document viewer"
|
||||
":kbd:`Ctrl+Shift+R`", "Close the document viewer (*)"
|
||||
110
docs/source/features/story_comments.rst
Normal file
@@ -0,0 +1,110 @@
|
||||
.. _docs_features_story:
|
||||
|
||||
**************
|
||||
Story Comments
|
||||
**************
|
||||
|
||||
A special set of comment styles allow for annotating your text with structure information. There
|
||||
are two styles of comments available. They are an extension to regular comments as described in
|
||||
:ref:`docs_usage_comments`.
|
||||
|
||||
.. versionadded:: 2.7
|
||||
|
||||
|
||||
Story Structure Comments
|
||||
========================
|
||||
|
||||
You can annotate story structure by using the ``%Story`` style of comment. To use the feature,
|
||||
make the first word of a comment ``Story``, followed by a period, a structure term, a colon, a
|
||||
space and the text for that term.
|
||||
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
The story term can be anything that you want to track in the manuscript. This construct is intended
|
||||
to make it easier to extract metadata from a work to perform a structural analysis of the story.
|
||||
|
||||
There are probably as many ways to examine story structure as there are authors and editors
|
||||
combined. For this reason the story tag is flexible. You can use any terms you want and track any
|
||||
aspect of the story that serves your purposes.
|
||||
|
||||
An example method has been advanced by Shawn Coyne in *The Story Grid*. This method asserts that a
|
||||
story is composed of "beats", and that each beat has an inciting incident, a complication, a
|
||||
crisis, and a resolution. One might capture these elements of a beat where a character overcomes
|
||||
their fear of giving a speech as:
|
||||
|
||||
:bdg-info:`Example`
|
||||
|
||||
.. code-block:: md
|
||||
|
||||
### Scene
|
||||
|
||||
%Synopsis: Carol overcomes her fear of giving a speech.
|
||||
|
||||
%Story.incite: Carol is pleased to be invited to a conference to see her boss deliver a keynote.
|
||||
%Story.complication: Carol's boss calls in sick and asks her to deliver a big speech.
|
||||
%Story.crisis: Carol has a fear of appearing on stage.
|
||||
%Story.resolution: Carol engages the help of a coach who helps her overcome her fears and delivers a great speech.
|
||||
|
||||
Other analytical models propose tracking a scene's pace, how it affects the mood of the story, or
|
||||
which element(s) of the story's genre are being satisfied. An author can use this mechanism to
|
||||
track any element of a scene. Some examples include time of day, how much time passes in the scene,
|
||||
or even the physical form of a shape-shifting character. If a story involves magic, one could track
|
||||
which wand a main character has in hand. It's up to the author.
|
||||
|
||||
When the story and other scene metadata is extracted into a tabular form, it is possible to get a
|
||||
comprehensive overview of the story and to identify possible issues. For example, so many
|
||||
fast-paced scenes without a break that readers might become fatigued or over-stimulated.
|
||||
|
||||
|
||||
Output
|
||||
------
|
||||
|
||||
The story structure comments can be included in the manuscript, and are formatted similarly to
|
||||
the synopsis comments:
|
||||
|
||||
.. figure:: images/fig_story_structure_manuscript.png
|
||||
|
||||
A set of story structure comments as shown in the Manuscript tool.
|
||||
|
||||
When you export your project data from the Outline View, all story structure terms are added as
|
||||
columns to the exported file, which can then be opened in the spread sheet software of your choice.
|
||||
|
||||
|
||||
Story Notes
|
||||
===========
|
||||
|
||||
Story notes are similar to story structure comments, but have no predefined meaning. Essentially
|
||||
they are a generalisation of the story structure comment, and the only point of having this
|
||||
additional format is to allow you do filter them in and out of your manuscript independently.
|
||||
|
||||
You can annotate story notes by using the ``%Note`` style of comment. To use the feature,
|
||||
make the first word of a comment ``Note``, followed by a period, a term, a colon, a space and the
|
||||
text for the note.
|
||||
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
These notes are free form, but one intended use case is to add consistency annotations to your text
|
||||
to remind yourself where you have described something that must be checked against other parts of
|
||||
your text later on.
|
||||
|
||||
:bdg-info:`Example`
|
||||
|
||||
.. code-block:: md
|
||||
|
||||
### Scene
|
||||
|
||||
%Synopsis: Carol overcomes her fear of giving a speech.
|
||||
|
||||
%Note.consistency: This is the first time in the story Carol gives a speech.
|
||||
|
||||
|
||||
Output
|
||||
------
|
||||
|
||||
Story notes are included in the manuscript in exactly the same way story structure comments are,
|
||||
but has a separate inclusion setting in the build settings. They are also included in CSV exports
|
||||
from the **Outline View**.
|
||||
126
docs/source/features/vim_mode.rst
Normal file
@@ -0,0 +1,126 @@
|
||||
.. _docs_features_vim_mode:
|
||||
|
||||
********
|
||||
Vim Mode
|
||||
********
|
||||
|
||||
.. _Vim: https://www.vim.org/
|
||||
|
||||
Vim_ is a keyboard-centric text editor. "Vim mode" refers to another editor implementing the
|
||||
ability to perform a subset of vim motions. This will allow you to write, select, edit, copy,
|
||||
paste, navigate, etc, efficiently by using keyboard commands.
|
||||
|
||||
Vim is modal. Three such modes have been implemented in UmbraEdit:
|
||||
|
||||
- **Normal** mode is the default mode used to navigate text.
|
||||
- **Insert** mode is where you can write text like in a 'normal' text editor.
|
||||
- **Visual** mode is for selecting text, with:
|
||||
|
||||
- **Visual** mode for per character selection.
|
||||
- **V-Line** mode for per-line selection.
|
||||
|
||||
The vim mode setting is found in the **Features** section of the **Preferences**.
|
||||
|
||||
.. note::
|
||||
|
||||
Vim mode is an advanced feature. When you enable it, the text editor will behave very
|
||||
differently than a standard text editor. A label in the footer of the editor will show which of
|
||||
the vim modes it is in.
|
||||
|
||||
|
||||
Mode Switching
|
||||
==============
|
||||
|
||||
To switch between the various vim modes, these keystrokes implemented:
|
||||
|
||||
.. csv-table::
|
||||
:header: "From Mode", "To Mode", "Keystrokes"
|
||||
|
||||
"Normal", "Insert", ":kbd:`i`, :kbd:`I`, :kbd:`a`, :kbd:`A`, :kbd:`o`, :kbd:`O`"
|
||||
"Insert", "Normal", ":kbd:`Esc`"
|
||||
"Normal", "Visual", ":kbd:`v`, :kbd:`V`"
|
||||
"Visual", "V-Line", ":kbd:`V`"
|
||||
"V-Line", "Visual", ":kbd:`v`"
|
||||
"Visual", "Normal", ":kbd:`Esc`, :kbd:`v`"
|
||||
"V-Line", "Normal", ":kbd:`Esc`, :kbd:`V`"
|
||||
|
||||
You can exit visual mode back to normal mode by pressing :kbd:`Esc`, but all visual mode commands
|
||||
that logically "terminate" the visual mode usage will return you to normal mode.
|
||||
|
||||
For instance, press :kbd:`V` to enter V-Line mode, extend the selection to the next line with
|
||||
:kbd:`j`, and press :kbd:`y` to yank (copy). You are now automatically put back in normal mode as
|
||||
you have completed selecting your text.
|
||||
|
||||
|
||||
Implemented Keystrokes (Vim Motions)
|
||||
====================================
|
||||
|
||||
The table below shows the vim motions currently implemented in UmbraEdit.
|
||||
|
||||
.. csv-table::
|
||||
:header: "Motion", "Mode(s)", "Description"
|
||||
|
||||
":kbd:`i`", "Normal → Insert", "Enter insert mode"
|
||||
":kbd:`I`", "Normal → Insert", "Jump to start of line and enter insert"
|
||||
":kbd:`v`", "Normal → Visual", "Enter character-wise visual mode"
|
||||
":kbd:`V`", "Normal → V-Line", "Enter line-wise visual mode"
|
||||
":kbd:`dd`", "Normal", "Delete (cut) current line"
|
||||
":kbd:`x`", "Normal", "Delete character under cursor"
|
||||
":kbd:`w`", "Normal / Visual", "Move to next word start"
|
||||
":kbd:`b`", "Normal / Visual", "Move to previous word start"
|
||||
":kbd:`e`", "Normal / Visual", "Move to next word end"
|
||||
":kbd:`dw`", "Normal", "Delete from cursor to next word start"
|
||||
":kbd:`de`", "Normal", "Delete from cursor to next word end"
|
||||
":kbd:`db`", "Normal", "Delete from cursor to previous word start"
|
||||
":kbd:`d$`", "Normal", "Delete from cursor to end of line"
|
||||
":kbd:`yw`", "Normal", "Yank (copy) from cursor to next word start"
|
||||
":kbd:`gg`", "Normal / Visual", "Jump to first line"
|
||||
":kbd:`G`", "Normal / Visual", "Jump to last line"
|
||||
":kbd:`yy`", "Normal", "Yank current line"
|
||||
":kbd:`p`", "Normal", "Paste after current line or cursor"
|
||||
":kbd:`P`", "Normal", "Paste before current line or at cursor"
|
||||
":kbd:`o`", "Normal → Insert", "Open new line below and enter insert"
|
||||
":kbd:`O`", "Normal → Insert", "Open new line above and enter insert"
|
||||
":kbd:`$`", "Normal / Visual", "Move to end of line"
|
||||
":kbd:`0`", "Normal / Visual", "Move to start of line"
|
||||
":kbd:`a`", "Normal → Insert", "Enter insert after cursor"
|
||||
":kbd:`A`", "Normal → Insert", "Enter insert at end of line"
|
||||
":kbd:`u`", "Normal", "Undo last change"
|
||||
":kbd:`Ctrl+R`", "Normal", "Redo last undone change (*)"
|
||||
":kbd:`zz`", "Normal", "Centre cursor vertically"
|
||||
":kbd:`h`", "Normal / Visual", "Move left"
|
||||
":kbd:`j`", "Normal / Visual", "Move down"
|
||||
":kbd:`k`", "Normal / Visual", "Move up"
|
||||
":kbd:`l`", "Normal / Visual", "Move right"
|
||||
":kbd:`d`", "Visual / V-Line", "Delete selection"
|
||||
":kbd:`x`", "Visual / V-Line", "Delete selection"
|
||||
":kbd:`y`", "Visual / V-Line", "Yank selection"
|
||||
|
||||
|
||||
.. note::
|
||||
|
||||
Shortcuts marked with (*) are remapped when Vim Mode is enabled. These are shortcuts that
|
||||
usually do other things when Vim Mode is off.
|
||||
|
||||
|
||||
Known Issues
|
||||
============
|
||||
|
||||
* Differing behaviour from vim: :kbd:`j` and :kbd:`k` move by displayed line when a line is
|
||||
wrapped, like :kbd:`gj` and :kbd:`gk` in vim. All other line commands act on the full line.
|
||||
* :kbd:`Esc` in normal mode will leave Focus Mode if there is no pending command to cancel.
|
||||
* Differing behaviour from vim: the :kbd:`e` command behaves a bit differently with regards to the
|
||||
last character of a word. The behaviour is inconsistent with vim but functional and still logical
|
||||
to use. The cursor is placed at the end of the word after the last character rather than on the
|
||||
last character.
|
||||
|
||||
.. code-block::
|
||||
|
||||
test
|
||||
^ Cursor placed here in vim
|
||||
test
|
||||
^ Cursor placed here in UmbraEdit vim mode
|
||||
|
||||
You will only really ever notice this behaviour if you try to combine the :kbd:`e` command with
|
||||
another. For instance, :kbd:`de` will not delete the last character but delete forward as it
|
||||
starts one character after the word boundary.
|
||||
|
Before Width: | Height: | Size: 63 KiB |
|
Before Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 94 KiB |
|
Before Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 516 KiB |
|
Before Width: | Height: | Size: 535 KiB |
@@ -1,11 +1,11 @@
|
||||
######################
|
||||
novelWriter User Guide
|
||||
######################
|
||||
##########
|
||||
User Guide
|
||||
##########
|
||||
|
||||
| **Release Version:** |release|
|
||||
| **Updated:** |today|
|
||||
|
||||
novelWriter is an open source plain text editor designed for writing novels assembled from
|
||||
UmbraEdit is an open source plain text editor designed for writing novels assembled from
|
||||
individual text documents. It uses a minimal formatting syntax inspired by Markdown, and adds a
|
||||
meta data syntax for comments, synopsis, and cross-referencing. It is designed to be a simple text
|
||||
editor that allows for easy organisation of text and notes, using human readable text files as
|
||||
@@ -16,80 +16,77 @@ storage for robustness.
|
||||
:align: center
|
||||
:width: 500
|
||||
|
||||
The project storage is suitable for version control software, and also well suited for file
|
||||
synchronisation tools. All text is saved as plain text files, and your project data as standard
|
||||
data formats in XML and JSON. See :ref:`a_storage` for more details.
|
||||
|
||||
Any operating system that has Python 3 and the Qt 5 libraries should be able to run novelWriter.
|
||||
It runs fine on Linux, Windows and MacOS, and users have tested it on other platforms as well.
|
||||
See :ref:`a_started` for more details.
|
||||
|
||||
**Useful Links**
|
||||
|
||||
* Website: https://novelwriter.io
|
||||
* Documentation: https://docs.novelwriter.io
|
||||
* Public Releases: https://releases.novelwriter.io
|
||||
* Internationalisation: https://crowdin.com/project/novelwriter
|
||||
* Source Code: https://github.com/vkbo/novelWriter
|
||||
* Source Releases: https://github.com/vkbo/novelWriter/releases
|
||||
* Issue Tracker: https://github.com/vkbo/novelWriter/issues
|
||||
* Feature Discussions: https://github.com/vkbo/novelWriter/discussions
|
||||
* PyPi Project: https://pypi.org/project/novelWriter
|
||||
* Social Media: https://fosstodon.org/@novelwriter
|
||||
* Website: https://umbraedit.io
|
||||
* Documentation: https://docs.umbraedit.io
|
||||
* Public Releases: https://releases.umbraedit.io
|
||||
* Internationalisation: https://crowdin.com/project/umbraedit
|
||||
* Source Code: https://github.com/saga-soft/UmbraEdit
|
||||
* Source Releases: https://github.com/saga-soft/UmbraEdit/releases
|
||||
* Issue Tracker: https://github.com/saga-soft/UmbraEdit/issues
|
||||
* Feature Discussions: https://github.com/saga-soft/UmbraEdit/discussions
|
||||
* PyPi Project: https://pypi.org/project/UmbraEdit
|
||||
* Social Media: https://fosstodon.org/@umbraedit
|
||||
|
||||
.. toctree::
|
||||
:hidden:
|
||||
|
||||
Main Page <self>
|
||||
self
|
||||
More Documents <https://umbraedit.io/more/>
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Introduction
|
||||
:caption: Getting Started
|
||||
:hidden:
|
||||
|
||||
int_introduction
|
||||
int_overview
|
||||
int_started
|
||||
int_howto
|
||||
int_glossary
|
||||
usage/introduction
|
||||
usage/organising_project
|
||||
usage/chapters_and_scenes
|
||||
usage/basic_formatting
|
||||
usage/comments
|
||||
usage/tags_and_references
|
||||
usage/alignment_and_indent
|
||||
usage/advanced_formatting
|
||||
usage/front_back_matter
|
||||
usage/howto
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Using novelWriter
|
||||
:caption: The User Interface
|
||||
:hidden:
|
||||
|
||||
usage_breakdown
|
||||
usage_project
|
||||
usage_writing
|
||||
usage_format
|
||||
usage_shortcuts
|
||||
usage_typography
|
||||
user_interface/main_window
|
||||
user_interface/projects
|
||||
user_interface/editor_viewer
|
||||
user_interface/split_and_merge
|
||||
user_interface/manuscript
|
||||
user_interface/formatting
|
||||
user_interface/statistics
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Organising Your Project
|
||||
:caption: Other Features
|
||||
:hidden:
|
||||
|
||||
project_overview
|
||||
project_structure
|
||||
project_references
|
||||
project_manuscript
|
||||
features/dialogue
|
||||
features/story_comments
|
||||
features/shortcuts
|
||||
features/vim_mode
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Additional Details
|
||||
:caption: In-Depth Topics
|
||||
:hidden:
|
||||
|
||||
more_customise
|
||||
more_projectformat
|
||||
more_counting
|
||||
more/counting
|
||||
more/typography
|
||||
more/dictionaries
|
||||
more/customise
|
||||
more/handling_errors
|
||||
more/project_format
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Technical Topics
|
||||
:hidden:
|
||||
|
||||
tech_locations
|
||||
tech_storage
|
||||
tech_source
|
||||
tech_tests
|
||||
technical/locations
|
||||
technical/storage
|
||||
technical/source
|
||||
technical/tests
|
||||
|
||||
@@ -1,64 +0,0 @@
|
||||
.. _a_glossary:
|
||||
|
||||
********
|
||||
Glossary
|
||||
********
|
||||
|
||||
.. glossary::
|
||||
:sorted:
|
||||
|
||||
Root Folder
|
||||
A "Root Folder" is a top level folder of the project tree in novelWriter. Each type of root
|
||||
folder has a specific icon to identify it. For an overview of available root folder types,
|
||||
see :ref:`a_proj_roots`.
|
||||
|
||||
Novel Documents
|
||||
These are documents that are created under a "Novel" :term:`Root Folder`. They behave
|
||||
differently than :term:`Project Notes`, and have some more restrictions. For instance, they
|
||||
can not exist in folders intended only for project notes. See the :ref:`a_struct` chapter for
|
||||
more details.
|
||||
|
||||
Project Notes
|
||||
Project Notes are unrestricted documents that can be placed anywhere in your project. You
|
||||
should not use these documents for story elements, only for notes. Project notes are the
|
||||
source files used by the Tags and References system. See the :ref:`a_references` chapter for
|
||||
more details on how to use them.
|
||||
|
||||
Tag
|
||||
A tag is a user defined value assigned as a tag to a section of your :term:`Project Notes`.
|
||||
It is optional, and can be defined once per heading. It is set using the :term:`keyword`
|
||||
syntax ``@tag: value``, where ``value`` is the user defined part. Each tag can be referenced
|
||||
in another file using one of the :term:`reference` keywords. See :ref:`a_references` chapter
|
||||
for more details.
|
||||
|
||||
Reference
|
||||
A reference is one of a set of :term:`keywords<keyword>` that can be used to link to a
|
||||
:term:`tag` in another document. The reference keywords are specific to the different
|
||||
:term:`root folder` types. A full overview is available in the :ref:`a_references` chapter.
|
||||
|
||||
Project Index
|
||||
The project index is a record of all headings in a project, with all their meta data like
|
||||
synopsis comments, :term:`tags<tag>` and :term:`references<reference>`. The project index is
|
||||
kept up to date automatically, but can also be regenerated manually from the
|
||||
:guilabel:`Tools` menu or by pressing :kbd:`F9`.
|
||||
|
||||
Context Menu
|
||||
A context menu is a menu that pops up when you right click something in the user interface.
|
||||
In novelWriter, you can often also open a context menu by pressing the keyboard shortcut
|
||||
:kbd:`Ctrl+.`.
|
||||
|
||||
Headings
|
||||
Each level of headings in :term:`Novel Documents` have a specific meaning in terms of the
|
||||
structure of the story. That is, they determine what novelWriter considers a partition, a
|
||||
chapter, a scene or a text section. For :term:`Project Notes`, the heading levels don't
|
||||
matter. For more details on headings in novel documents, see :ref:`a_struct_heads`.
|
||||
|
||||
Keyword
|
||||
A keyword in novelWriter is a special command you put in the text of your documents. They are
|
||||
not standard Markdown, but are used in novelWriter to add information that is interpreted by
|
||||
the application. For instance, keywords are used for :term:`tags<tag>` and
|
||||
:term:`references<reference>`.
|
||||
|
||||
Keywords must always be on their own line, and the first character of the line must always be
|
||||
the ``@`` character. The keyword must also always be followed by a ``:`` character, and the
|
||||
values passed to the command are added after this, separated by commas.
|
||||
@@ -1,129 +0,0 @@
|
||||
.. _a_intro:
|
||||
|
||||
********
|
||||
Overview
|
||||
********
|
||||
|
||||
.. _Snowflake: https://www.advancedfictionwriting.com/articles/snowflake-method/
|
||||
.. _Markdown: https://en.wikipedia.org/wiki/Markdown
|
||||
|
||||
At its core, novelWriter is a multi-document plain text editor. The idea is to let you edit your
|
||||
text without having to deal with formatting until you generate a draft document or manuscript.
|
||||
Instead, you can focus on the writing right from the start.
|
||||
|
||||
Of course, you probably need *some* formatting for your text. At the very least you need emphasis.
|
||||
Most people are familiar with adding emphasis using ``_underscores_`` and ``**asterisks**``. This
|
||||
formatting standard comes from Markdown_ and is supported by novelWriter. It also uses Markdown
|
||||
formatting for defining document headings. If you need more specialised formatting, additional
|
||||
formatting options are available using a shortcode format. See :ref:`a_fmt_shortcodes` for more
|
||||
details.
|
||||
|
||||
.. admonition:: Limitations
|
||||
|
||||
novelWriter is designed for writing fiction, so the formatting features available are limited to
|
||||
those relevant for this purpose. It is *not* suitable for technical writing, and it is *not* a
|
||||
full-featured Markdown editor.
|
||||
|
||||
It is also not intended as a tool for organising research for writing, and therefore lacks
|
||||
formatting features you may need for this purpose. The notes feature in novelWriter is mainly
|
||||
intended for character profiles and plot outlines.
|
||||
|
||||
Your novel project in novelWriter is organised as a collection of separate plain text documents
|
||||
instead of a single, large document. The idea is to make it easier to reorganise your project
|
||||
structure without having to cut and paste text between chapters and scenes.
|
||||
|
||||
There are two kinds of documents in your project: :term:`Novel Documents` are documents that are
|
||||
part of your story. The other kind of documents are :term:`Project Notes`, which are intended for
|
||||
your notes about your characters, your world building, and so on.
|
||||
|
||||
You can at any point split the individual documents by their headings up into multiple documents,
|
||||
or merge multiple documents into a single document. This makes it easier to use variations of the
|
||||
Snowflake_ method for writing. You can start by writing larger structure-focused documents, like
|
||||
for instance one document per act, and later effortlessly split these up into individual chapter or
|
||||
scene documents.
|
||||
|
||||
|
||||
.. _a_intro_features:
|
||||
|
||||
Key Features
|
||||
============
|
||||
|
||||
Below are some key features of novelWriter.
|
||||
|
||||
**Focus on writing**
|
||||
The aim of the user interface is to let you focus on writing instead of spending time formatting
|
||||
text. Formatting is therefore limited to a small set of formatting tags for simple things like
|
||||
text emphasis and paragraph alignment. Additional shortcodes are available for special
|
||||
formatting cases when you need them.
|
||||
|
||||
When you really want to focus on just writing, you can switch the editor into **Focus Mode**
|
||||
where only the text editor panel itself is visible, and the project structure view is hidden
|
||||
away.
|
||||
|
||||
**Keep an eye on your notes**
|
||||
The main window can optionally show a document viewer to the right of the editor. The viewer
|
||||
is intended for displaying another scene document, your character notes, plot notes, or any
|
||||
other document you may need to reference while writing. It is not intended as a preview panel
|
||||
for the document you're editing, but if you wish, you can also use it for this purpose.
|
||||
|
||||
**Organise your documents how you like**
|
||||
You can split your novel project up into as many individual documents as you want to. When you
|
||||
build the project into a manuscript, they are all glued together in the top-to-bottom order in
|
||||
which they appear in the project tree. You can use as few text documents as you like, but
|
||||
splitting the project up into chapters and scenes means you can easily reorder them using the
|
||||
drag-and-drop feature of the project tree. You can also start out with fewer documents and then
|
||||
later split them into multiple documents based on chapter and scene headings.
|
||||
|
||||
**Multi-novel project support**
|
||||
The main parts of your project is split up into top level special folders called "Root" folders.
|
||||
Your main story text lives in the "Novel" root folder. You can have multiple such folders in a
|
||||
project, and rename them to whatever you want. This allows you to keep a series of individual
|
||||
novels with the same characters and world building in the same project, and create manuscripts
|
||||
for them separately.
|
||||
|
||||
**Keep track of your story elements**
|
||||
All documents in your project can be assigned a :term:`tag` that you can then :term:`reference`
|
||||
from any other document or note. In fact, you can add a new tag under each heading of a note if
|
||||
you need to be able to reference specific sections of it, or you want to keep several topics or
|
||||
scenes in the same document.
|
||||
|
||||
**Get an overview of your story**
|
||||
It is not the documents themselves that define the chapters and scenes of your story, but the
|
||||
headings within them. In the **Outline View** on the main window you can see an outline of all
|
||||
the chapter and scene headings of each novel root folder in your project. If they have any
|
||||
references in them, like which character is in what chapter and scene, these are listed in
|
||||
additional columns.
|
||||
|
||||
You can also add a synopsis to each chapter or scene, which can be listed here as well. You have
|
||||
the option to add or remove columns of information from this outline. A subset of the outline
|
||||
information is also available in the **Novel View** as an alternative view to the project tree.
|
||||
|
||||
**Get an overview of your story elements**
|
||||
Under the document viewer panel you will find a series of tabs that show the different story
|
||||
elements you have created tags for. The tabs are sorted into **Characters**, **Plots**, etc,
|
||||
depending on which categories you are using in your story. This panel can be hidden to free up
|
||||
space when you don't need it.
|
||||
|
||||
**Assembling your manuscript**
|
||||
Whether you want to assemble a manuscript, or export all your notes, or generate an outline of
|
||||
your chapters and scenes with a synopsis included, you can use the **Build Manuscript** tool to
|
||||
do so. The tool lets you select what information you want to include in the generated document,
|
||||
and how it is formatted. You can send the result to a printer, or generate an Open Document or
|
||||
Word Document file that can be opened by most office type word processors. You can also generate
|
||||
the result as HTML, or Markdown, both suitable for further conversion to other formats.
|
||||
|
||||
|
||||
.. _a_intro_screenshots:
|
||||
|
||||
Screenshots
|
||||
===========
|
||||
|
||||
.. figure:: images/screenshot_light.png
|
||||
:class: dark-light
|
||||
|
||||
novelWriter with light colour theme
|
||||
|
||||
.. figure:: images/screenshot_dark.png
|
||||
:class: dark-light
|
||||
|
||||
novelWriter with dark colour theme
|
||||
@@ -1,88 +0,0 @@
|
||||
.. _a_reading:
|
||||
|
||||
******************
|
||||
What to Read First
|
||||
******************
|
||||
|
||||
The documentation of novelWriter is quite extensive. There are a lot of features to get used to,
|
||||
but you don't need to know all of them to get started.
|
||||
|
||||
The chapters below labelled "Essential Information" are the ones you need to know to use the
|
||||
application correctly. By "correctly" it is meant: in a way so novelWriter understands the basic
|
||||
structure of your text. It collects a lot of information from your text and uses it to display the
|
||||
structure of it in various ways to help you get an overview of your writing.
|
||||
|
||||
The chapters labelled "Recommended Reading" includes additional information on how the different
|
||||
parts if the application work and what the features do.
|
||||
|
||||
The "Optional" and "Lookup" chapters contain additional information or lookup tables that are not
|
||||
essential for using the application.
|
||||
|
||||
|
||||
Using novelWriter
|
||||
=================
|
||||
|
||||
In order to use novelWriter effectively, you need to know the basics of how it works. The following
|
||||
chapters will explain the main principles. They start with the basics, and get more detailed as you
|
||||
read on.
|
||||
|
||||
:ref:`a_breakdown` – Essential Information
|
||||
This chapter explains the basics of how the application works and what it can and cannot do.
|
||||
|
||||
:ref:`a_ui_project` – Recommended Reading
|
||||
This chapter will give you a more detailed explanation of how you can use the user interface
|
||||
components to organise and view your project work.
|
||||
|
||||
:ref:`a_ui_writing` – Recommended Reading
|
||||
This chapter will give you a more detailed explanation of how the text editor and viewer work.
|
||||
|
||||
:ref:`a_fmt` – Essential Information
|
||||
This chapter covers how you should format your text. The editor is plain text, so text
|
||||
formatting requires some basic markup. The structure of your novel is also inferred from how you
|
||||
use headings. Tags and references are implemented by special keywords.
|
||||
|
||||
:ref:`a_kb` – Optional / Lookup
|
||||
This chapter lists all the keyboard shortcuts in novelWriter and what they do. Most of the
|
||||
shortcuts are also listed next to their menu entries inside the app, or in tool tips. This
|
||||
chapter is mostly for reference.
|
||||
|
||||
:ref:`a_typ` – Optional
|
||||
This chapter gives you an overview of the special typographical symbols available in
|
||||
novelWriter. The auto-replace feature can handle the insertion of standard quote symbols for
|
||||
your language, and other special characters. If you use any symbols aside from these, their
|
||||
intended use is explained here.
|
||||
|
||||
|
||||
Organising Your Projects
|
||||
========================
|
||||
|
||||
In addition to managing a collection of plain text files, novelWriter can interpret and map the
|
||||
structure of your novel and show you additional information about its flow and content. In order
|
||||
to take advantage of these features, you must structure your text in a specific way and add some
|
||||
meta data for it to extract.
|
||||
|
||||
:ref:`a_proj` – Essential Information
|
||||
This chapter explains how you organise the content of your project, and how to set up automated
|
||||
backups of your work.
|
||||
|
||||
:ref:`a_struct` – Essential Information
|
||||
This chapter covers the way your novel's structure is encoded into the text documents. It
|
||||
explains how the different levels of headings are used, and some special formatting for
|
||||
different kinds of headings.
|
||||
|
||||
:ref:`a_references` - Recommended Reading
|
||||
This chapter explains how you organise your notes, and how the Tags and References system works.
|
||||
This system lets you cross-link your documents in your project, and display these references in
|
||||
the application interface.
|
||||
|
||||
:ref:`a_manuscript` - Recommended Reading
|
||||
This chapter explains how the **Manuscript Build** tool works, how you can control the way
|
||||
chapter titles are formatted, and how scene and section breaks are handled.
|
||||
|
||||
|
||||
Additional Details & Technical Topics
|
||||
=====================================
|
||||
|
||||
The Additional Details and the Technical Topics sections contain more in-depth information about
|
||||
how various bits of novelWriter works. This information is not essential to getting started using
|
||||
novelWriter.
|
||||
@@ -1,170 +0,0 @@
|
||||
.. _a_started:
|
||||
|
||||
**********************
|
||||
Setup and Installation
|
||||
**********************
|
||||
|
||||
.. _Enchant: http://rrthomas.github.io/enchant/
|
||||
.. _GitHub: https://github.com/vkbo/novelWriter
|
||||
.. _Downloads page: https://download.novelwriter.io
|
||||
.. _PPA: https://launchpad.net/~vkbo/+archive/ubuntu/novelwriter
|
||||
.. _Pre-Release PPA: https://launchpad.net/~vkbo/+archive/ubuntu/novelwriter-pre
|
||||
.. _PyPi: https://pypi.org/project/novelWriter/
|
||||
.. _python.org: https://www.python.org/downloads/
|
||||
.. _Releases: https://github.com/vkbo/novelWriter/releases
|
||||
.. _AppImage: https://appimage.org/
|
||||
|
||||
Ready-made packages and installers for novelWriter are available for all major platforms, including
|
||||
Linux, Windows and MacOS, from the `Downloads page`_. See below for additional install instructions
|
||||
for each platform.
|
||||
|
||||
You can also install novelWriter from the Python Package Index (PyPi_). See :ref:`a_started_pip`.
|
||||
Installing from PyPi does not set up icon launchers, so you will either have to do this yourself,
|
||||
or start novelWriter from the command line.
|
||||
|
||||
Spell checking in novelWriter is provided by a third party library called Enchant_. Generally, it
|
||||
should pull dictionaries from your operating system automatically. However, on Windows they must be
|
||||
installed manually. See :ref:`a_custom_dict` for more details.
|
||||
|
||||
|
||||
.. _a_started_windows:
|
||||
|
||||
Installing on Windows
|
||||
=====================
|
||||
|
||||
You can install novelWriter with both Python and library dependencies embedded using the Windows
|
||||
Installer (setup.exe) file from the `Downloads page`_, or from the Releases_ page on GitHub_.
|
||||
Installing it should be straightforward.
|
||||
|
||||
If you have any issues, try uninstalling the previous version and making a fresh install. If you
|
||||
already had a version installed via a different method, you should uninstall that first as having
|
||||
multiple installations has been known to cause problems.
|
||||
|
||||
|
||||
.. _a_started_linux:
|
||||
|
||||
Installing on Linux
|
||||
===================
|
||||
|
||||
A Debian package can be downloaded from the `Downloads page`_, or from the Releases_ page on
|
||||
GitHub_. This package should work on both Debian, Ubuntu and Linux Mint, at least.
|
||||
|
||||
If you prefer, you can also add the novelWriter repository on Launchpad to your package manager.
|
||||
The Launchpad packages `are signed by the author <https://launchpad.net/~vkbo>`__.
|
||||
|
||||
|
||||
Ubuntu
|
||||
------
|
||||
|
||||
You can add the Ubuntu PPA_ and install novelWriter with the following commands.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo add-apt-repository ppa:vkbo/novelwriter
|
||||
sudo apt update
|
||||
sudo apt install novelwriter
|
||||
|
||||
If you want the `Pre-Release PPA`_ instead, add the ``ppa:vkbo/novelwriter-pre`` repository.
|
||||
|
||||
|
||||
Debian and Mint
|
||||
---------------
|
||||
|
||||
Since this is a pure Python package, the Launchpad PPA can in principle also be used on Debian or
|
||||
Mint. However, the above command will fail to add the signing key, as it is Ubuntu-specific.
|
||||
|
||||
Instead, run the following commands to add the repository and key:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/novelwriter-ppa-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys F19F1FCE50043114
|
||||
echo "deb [signed-by=/usr/share/keyrings/novelwriter-ppa-keyring.gpg] http://ppa.launchpad.net/vkbo/novelwriter/ubuntu noble main" | sudo tee /etc/apt/sources.list.d/novelwriter.list
|
||||
|
||||
Then run the update and install commands as for Ubuntu:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo apt update
|
||||
sudo apt install novelwriter
|
||||
|
||||
.. tip::
|
||||
If you get an error message like ``gpg: failed to create temporary file`` when importing the key
|
||||
from the Ubuntu keyserver, try creating the folder it fails on, and import the key again:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo mkdir /root/.gnupg/
|
||||
|
||||
|
||||
AppImage Releases
|
||||
-----------------
|
||||
|
||||
For other Linux distros than the ones mentioned above, the primary option is AppImage_. These are
|
||||
completely standalone images for the app that include the necessary environment to run novelWriter.
|
||||
They can of course be run on any Linux distro, if you prefer this to native packages.
|
||||
|
||||
.. note::
|
||||
novelWriter generally doesn't support Python versions that have reached end of life. If your
|
||||
Linux distro still uses older Python versions and novelWriter won't run, you may want to try the
|
||||
AppImage instead.
|
||||
|
||||
|
||||
.. _a_started_macos:
|
||||
|
||||
Installing on MacOS
|
||||
===================
|
||||
|
||||
You can install novelWriter with both its Python and library dependencies embedded using the DMG
|
||||
application image file from the `Downloads page`_, or from the Releases_ page on GitHub_.
|
||||
Installing it should be straightforward.
|
||||
|
||||
* Download the DMG file and open it. Then drag the novelWriter icon to the :guilabel:`Applications`
|
||||
folder on the right. This will install it into your :guilabel:`Applications`.
|
||||
* The first time you try to launch it, it will say that the bundle cannot be verified, simply press
|
||||
the :guilabel:`Open` button to add an exception.
|
||||
* If you are not presented with an :guilabel:`Open` button in the dialog, launch the application
|
||||
again by right clicking on the application in Finder and selecting :guilabel:`Open` from the
|
||||
context menu.
|
||||
|
||||
The context menu can also be accessed by option-clicking if you have a one button mouse. This is
|
||||
done by holding down the option key on your keyboard and clicking on the application in Finder.
|
||||
|
||||
.. note::
|
||||
The novelWriter DMG is not signed because Apple doesn't currently provide a way for non-profit
|
||||
open source projects to properly sign their installers. The novelWriter project doesn't have the
|
||||
funding to pay for a commercial software signing certificate.
|
||||
|
||||
|
||||
.. _a_started_pip:
|
||||
|
||||
Installing from PyPi
|
||||
====================
|
||||
|
||||
novelWriter is also available on the Python Package Index, or PyPi_. This install method works on
|
||||
all supported operating systems with a suitable Python environment.
|
||||
|
||||
To install from PyPi you must first have the ``python`` and ``pip`` commands available on your
|
||||
system. You can download Python from `python.org`_. It is recommended that you install the latest
|
||||
version. If you are on Windows, also make sure to select the "Add Python to PATH" option during
|
||||
installation.
|
||||
|
||||
To install novelWriter from PyPi, use the following command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install novelwriter
|
||||
|
||||
To upgrade an existing installation, use:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install --upgrade novelwriter
|
||||
|
||||
When installing via pip, novelWriter can be launched from command line with:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
novelwriter
|
||||
|
||||
Make sure the install location for pip is in your PATH variable. This is not always the case by
|
||||
default, and then you may get a "Not Found" error when running the ``novelwriter`` command.
|
||||
3
docs/source/locales/config.toml
Normal file
@@ -0,0 +1,3 @@
|
||||
[fr]
|
||||
version = "2.7"
|
||||
authors = ["Jean-Michel Heras", "Veronica Berglyd Olsen"]
|
||||
223
docs/source/locales/fr/LC_MESSAGES/features/dialogue.po
Normal file
@@ -0,0 +1,223 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-28 22:09+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/features/dialogue.rst:5
|
||||
msgid "Dialogue Highlighting"
|
||||
msgstr "Mise en évidence du dialogue"
|
||||
|
||||
#: ../../source/features/dialogue.rst:7
|
||||
msgid ""
|
||||
"Dialogue recognition and colour highlighting is available both while "
|
||||
"you're writing and in generated manuscript documents."
|
||||
msgstr ""
|
||||
"La reconnaissance des dialogues et le surlignage des couleurs sont "
|
||||
"disponibles à la fois pendant que vous écrivez et dans les documents "
|
||||
"manuscrits générés."
|
||||
|
||||
#: ../../source/features/dialogue.rst:10
|
||||
msgid ""
|
||||
"The default language settings in UmbraEdit are for English. That "
|
||||
"includes the dialogue highlighting settings. But many dialogue styles "
|
||||
"are supported. You can tune a number of settings to fit your language "
|
||||
"and style preferences in the \"Text Highlighting\" section in "
|
||||
"**Preferences**. You can mix and match these settings."
|
||||
msgstr ""
|
||||
"Les paramètres linguistiques par défaut de UmbraEdit sont ceux de "
|
||||
"l'anglais. Cela inclut les paramètres de mise en évidence des dialogues. "
|
||||
"Mais de nombreux styles de dialogue sont pris en charge. Vous pouvez "
|
||||
"ajuster un certain nombre de paramètres en fonction de vos préférences "
|
||||
"linguistiques et stylistiques dans la section « Surlignage du texte » "
|
||||
"des **Préférences**. Vous pouvez combiner ces paramètres.\n"
|
||||
"\n"
|
||||
"Traduit avec DeepL.com (version gratuite)"
|
||||
|
||||
#: ../../source/features/dialogue.rst:17
|
||||
msgid "The **Text Highlighting** section of **Preferences**."
|
||||
msgstr "La section **Mise en évidence du texte** des **Préférences**."
|
||||
|
||||
#: ../../source/features/dialogue.rst:21
|
||||
msgid "Quoted Dialogue"
|
||||
msgstr "Dialogue entre guillemets"
|
||||
|
||||
#: ../../source/features/dialogue.rst:23
|
||||
msgid ""
|
||||
"By default, dialogue highlighting is enabled for the double quote "
|
||||
"symbols you have defined in the **Quotation Style** section of "
|
||||
"**Preferences**."
|
||||
msgstr ""
|
||||
"Par défaut, la mise en évidence du dialogue est activée pour les "
|
||||
"symboles de guillemets doubles que vous avez définis dans la section "
|
||||
"**Style de guillemets** des **Préférences**."
|
||||
|
||||
#: ../../source/features/dialogue.rst:28
|
||||
msgid "The **Quotation Style** section of **Preferences**."
|
||||
msgstr "La section **Style de guillemets** des **Préférences**."
|
||||
|
||||
#: ../../source/features/dialogue.rst:30
|
||||
msgid ""
|
||||
"You can change which quote symbols are highlighted by selecting one of "
|
||||
"\"None\", \"Single\", \"Double\", or \"Both\" from the \"Highlight "
|
||||
"dialogue\" setting under **Text Highlighting**."
|
||||
msgstr ""
|
||||
"Vous pouvez modifier les symboles de guillemets mis en évidence en "
|
||||
"sélectionnant « Aucun », « Simple », « Double » ou « Les deux » dans le "
|
||||
"paramètre « Mettre les dialogues en évidence » sous **Surlignage du "
|
||||
"texte**."
|
||||
|
||||
#: ../../source/features/dialogue.rst:33
|
||||
msgid ""
|
||||
"You can also enable or disable the \"Allow open-ended dialogue\" setting "
|
||||
"to allow for the style where multi-paragraph dialogue is not closed "
|
||||
"until the last paragraph."
|
||||
msgstr ""
|
||||
"Vous pouvez également activer ou désactiver le paramètre « Autoriser les "
|
||||
"dialogues ouverts » pour autoriser le style dans lequel les dialogues à "
|
||||
"plusieurs paragraphes ne sont pas clos avant le dernier paragraphe."
|
||||
|
||||
#: ../../source/features/dialogue.rst:36
|
||||
msgid "Limitations"
|
||||
msgstr "Restrictions"
|
||||
|
||||
#: ../../source/features/dialogue.rst:38
|
||||
msgid ""
|
||||
"Dialogue highlighting for single quotes is difficult to process when the "
|
||||
"same single quote symbol is also used for apostrophes. There isn't a "
|
||||
"good solution to this. Your best option in the cases where the "
|
||||
"highlighting is wrong is to insert an alternative apostrophe symbol "
|
||||
"instead. See :ref:`docs_more_typographical_symbols_apostrophe` for more "
|
||||
"details."
|
||||
msgstr ""
|
||||
"La mise en évidence du dialogue pour les guillemets simples est "
|
||||
"difficile à traiter lorsque le même symbole de guillemet simple est "
|
||||
"également utilisé pour les apostrophes. Il n'existe pas de bonne "
|
||||
"solution à ce problème. Votre meilleure option dans les cas où la mise "
|
||||
"en évidence est erronée est d'insérer un symbole d'apostrophe alternatif "
|
||||
"à la place. Voir :ref:`docs_more_typographical_symbols_apostrophe` pour "
|
||||
"plus de détails."
|
||||
|
||||
#: ../../source/features/dialogue.rst:45
|
||||
msgid "Alternative Dialogue"
|
||||
msgstr "Dialogue alternatif"
|
||||
|
||||
#: ../../source/features/dialogue.rst:47
|
||||
msgid ""
|
||||
"You can use the \"Alternative dialogue symbols\" setting for custom "
|
||||
"dialogue wrapper symbols. These are highlighted in a different colour "
|
||||
"than regular dialogue."
|
||||
msgstr ""
|
||||
"Vous pouvez utiliser le paramètre « Symboles de dialogue alternatifs » "
|
||||
"pour les symboles de dialogue personnalisés. Ceux-ci sont mis en "
|
||||
"évidence dans une couleur différente de celle des dialogues normaux."
|
||||
|
||||
#: ../../source/features/dialogue.rst:50
|
||||
msgid ""
|
||||
"The intended use case here is if you use an alternative style to "
|
||||
"distinguish a different style of communication. The feature idea came "
|
||||
"from a science fiction series where mind-to-mind communication used a "
|
||||
"different quotation style."
|
||||
msgstr ""
|
||||
"Le cas d'utilisation prévu ici est celui où vous utilisez un style "
|
||||
"alternatif pour distinguer un style de communication différent. L'idée "
|
||||
"est venue d'une série de science-fiction dans laquelle la communication "
|
||||
"d'esprit à esprit utilisait un style de citation différent."
|
||||
|
||||
#: ../../source/features/dialogue.rst:56
|
||||
msgid "Dialogue Line Symbols"
|
||||
msgstr "Symboles des lignes de dialogue"
|
||||
|
||||
#: ../../source/features/dialogue.rst:58
|
||||
msgid ""
|
||||
"In some languages, a single symbol at the start of a paragraph can "
|
||||
"indicate that the whole paragraph is dialogue. For instance, this symbol "
|
||||
"can be a short dash (en dash)."
|
||||
msgstr ""
|
||||
"Dans certaines langues, un seul symbole au début d'un paragraphe peut "
|
||||
"indiquer que tout le paragraphe est un dialogue. Par exemple, ce symbole "
|
||||
"peut être un tiret demi-cadratin."
|
||||
|
||||
#: ../../source/features/dialogue.rst:63
|
||||
msgid "An example of dialogue starting with a short dash."
|
||||
msgstr "Exemple de dialogue commençant par un tiret demi-cadratin."
|
||||
|
||||
#: ../../source/features/dialogue.rst:65
|
||||
msgid ""
|
||||
"You can enable this feature by adding the symbols to the \"Dialogue line "
|
||||
"symbols\" setting. Multiple symbols are allowed."
|
||||
msgstr ""
|
||||
"Vous pouvez activer cette fonction en ajoutant les symboles au paramètre "
|
||||
"« Symboles de la ligne de dialogue ». Plusieurs symboles sont autorisés."
|
||||
|
||||
#: ../../source/features/dialogue.rst:70
|
||||
msgid "Dialogue with Narrator Break"
|
||||
msgstr "Dialogue avec incise"
|
||||
|
||||
#: ../../source/features/dialogue.rst:72
|
||||
msgid ""
|
||||
"The dialogue symbol setting will not detect if the dialogue ends in the "
|
||||
"paragraph. In some styles there is no way to actually indicate the "
|
||||
"switch from dialogue to narration; in others there are. These a narrator "
|
||||
"break symbols are usually dashes. You can select one of the supported "
|
||||
"dash symbols for narrator breaks. These can be used with any of the "
|
||||
"above dialogue recognition settings."
|
||||
msgstr ""
|
||||
"Le réglage du symbole de dialogue ne détecte pas si le dialogue se "
|
||||
"termine dans le paragraphe. Dans certains styles, il n'y a aucun moyen "
|
||||
"d'indiquer le passage du dialogue à la narration ; dans d'autres, il y "
|
||||
"en a un. Ces symboles de rupture avec le narrateur sont généralement des "
|
||||
"tirets. Vous pouvez sélectionner l'un des symboles de tirets pris en "
|
||||
"charge pour les ruptures de narration. Ces symboles peuvent être "
|
||||
"utilisés avec n'importe lequel des paramètres de reconnaissance de "
|
||||
"dialogue ci-dessus."
|
||||
|
||||
#: ../../source/features/dialogue.rst:79
|
||||
msgid ""
|
||||
"An example of dialogue starting with a short dash and a long dash "
|
||||
"narrator break."
|
||||
msgstr ""
|
||||
"Exemple de dialogue commençant par un tiret demi-cadratin, une incise "
|
||||
"par un tiret cadratin."
|
||||
|
||||
#: ../../source/features/dialogue.rst:83
|
||||
msgid "Alternating Dialogue and Narration"
|
||||
msgstr "Dialogue et narration alternés"
|
||||
|
||||
#: ../../source/features/dialogue.rst:85
|
||||
msgid ""
|
||||
"The alternating dialogue and narration style is supported with the "
|
||||
"\"Alternating dialogue/narration symbol\" setting. It can be set to one "
|
||||
"of the supported dashes. This style will switch into dialogue mode when "
|
||||
"it first encounters the selected dash in a paragraph, and switch back "
|
||||
"out when it sees the next one, and so forth."
|
||||
msgstr ""
|
||||
"Le style de dialogue et de narration alternés est pris en charge par le "
|
||||
"paramètre « Symbole de dialogue/narration alternés ». Il peut être "
|
||||
"défini sur l'un des tirets pris en charge. Ce style passe en mode "
|
||||
"dialogue lorsqu'il rencontre pour la première fois le tiret sélectionné "
|
||||
"dans un paragraphe, et revient en mode dialogue lorsqu'il rencontre le "
|
||||
"tiret suivant, et ainsi de suite."
|
||||
|
||||
#: ../../source/features/dialogue.rst:92
|
||||
msgid "An example of alternating dialogue and narration using a long dash."
|
||||
msgstr ""
|
||||
"Exemple d'alternance de dialogue et de narration à l'aide d'un tiret "
|
||||
"cadratin."
|
||||
978
docs/source/locales/fr/LC_MESSAGES/features/shortcuts.po
Normal file
@@ -0,0 +1,978 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-28 22:50+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:5
|
||||
msgid "Keyboard Shortcuts"
|
||||
msgstr "Raccourcis clavier"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:7
|
||||
msgid ""
|
||||
"Most features in UmbraEdit are available as keyboard shortcuts. This "
|
||||
"is a reference list of those shortcuts. Most of them are also listed in "
|
||||
"the application's user interface."
|
||||
msgstr ""
|
||||
"La plupart des fonctionnalités de UmbraEdit sont disponibles sous "
|
||||
"forme de raccourcis clavier. Il s'agit d'une liste de référence de ces "
|
||||
"raccourcis. La plupart d'entre eux sont également listés dans "
|
||||
"l'interface utilisateur de l'application."
|
||||
|
||||
#: ../../source/features/shortcuts.rst:12
|
||||
msgid "On MacOS, replace :kbd:`Ctrl` with :kbd:`Cmd`."
|
||||
msgstr "Sous MacOS, remplacez :kbd:`Ctrl` par :kbd:`Cmd`."
|
||||
|
||||
#: ../../source/features/shortcuts.rst:16
|
||||
msgid "Main Window Shortcuts"
|
||||
msgstr "Raccourcis de la fenêtre principale"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Shortcut"
|
||||
msgstr "Raccourci"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`F1`"
|
||||
msgstr ":kbd:`F1`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the online user manual"
|
||||
msgstr "Ouvrir le manuel d'utilisation en ligne"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`F5`"
|
||||
msgstr ":kbd:`F5`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the **Build Manuscript** tool"
|
||||
msgstr "Ouvrir l'outil **Compiler le manuscrit**"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`F6`"
|
||||
msgstr ":kbd:`F6`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the **Writing Statistics** tool"
|
||||
msgstr "Ouvrir l'outil **Statistiques d'écriture**"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`F8`"
|
||||
msgstr ":kbd:`F8`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Toggle **Focus Mode**"
|
||||
msgstr "Basculer **Mode sans distraction**"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`F9`"
|
||||
msgstr ":kbd:`F9`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Re-build the project's index"
|
||||
msgstr "Reconstruire l'index du projet"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`F11`"
|
||||
msgstr ":kbd:`F11`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Toggle full screen mode"
|
||||
msgstr "Basculer en mode plein écran"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+,`"
|
||||
msgstr ":kbd:`Ctrl+,`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the **Preferences** dialog"
|
||||
msgstr "Ouvrir la boîte de dialogue **Préférences**"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+E`"
|
||||
msgstr ":kbd:`Ctrl+E`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Switch or toggle focus for the editor or viewer"
|
||||
msgstr ""
|
||||
"Changement ou basculement du focus de l'éditeur ou du visualisateur"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+T`"
|
||||
msgstr ":kbd:`Ctrl+T`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Switch or toggle focus for the project tree or novel view"
|
||||
msgstr ""
|
||||
"Changement de focalisation de l'arborescence du projet ou de la vue du "
|
||||
"roman"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Q`"
|
||||
msgstr ":kbd:`Ctrl+Q`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Exit UmbraEdit"
|
||||
msgstr "Quitter UmbraEdit"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+,`"
|
||||
msgstr ":kbd:`Ctrl+Maj+,`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the **Project Settings** dialog"
|
||||
msgstr "Ouvrir la boîte de dialogue **Paramètres du projet**"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+O`"
|
||||
msgstr ":kbd:`Ctrl+Maj+O`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the Welcome dialog to open or create a project"
|
||||
msgstr ""
|
||||
"Ouvrir la boîte de dialogue de bienvenue pour ouvrir ou créer un projet"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+S`"
|
||||
msgstr ":kbd:`Ctrl+Maj+S`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Save the current project"
|
||||
msgstr "Enregistrer le projet en cours"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+T`"
|
||||
msgstr ":kbd:`Ctrl+Maj+T`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Switch focus to the outline view"
|
||||
msgstr "Basculer vers la vue d'ensemble"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+W`"
|
||||
msgstr ":kbd:`Ctrl+Maj+W`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Close the current project"
|
||||
msgstr "Fermer le projet en cours"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Shift+F1`"
|
||||
msgstr ":kbd:`Maj+F1`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the local user manual (PDF) if it is available"
|
||||
msgstr "Ouvrir le manuel d'utilisation local (PDF) s'il est disponible"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Shift+F6`"
|
||||
msgstr ":kbd:`Maj+F6`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the **Project Details** dialog"
|
||||
msgstr "Ouvrir la boîte de dialogue **Détails du projet**"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:41
|
||||
msgid "Project Tree Shortcuts"
|
||||
msgstr "Raccourcis de l'arborescence du projet"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`F2`"
|
||||
msgstr ":kbd:`F2`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Edit the label of the selected item"
|
||||
msgstr "Modifier le libellé de l'élément sélectionné"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Return`"
|
||||
msgstr ":kbd:`Retour`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the selected document in the editor"
|
||||
msgstr "Ouvrir le document sélectionné dans l'éditeur"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Alt+Up`"
|
||||
msgstr ":kbd:`Alt+Haut`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Jump or go to the previous item at same level in the tree"
|
||||
msgstr ""
|
||||
"Sauter ou aller à l'élément précédent au même niveau dans 'l'arborescence"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Alt+Down`"
|
||||
msgstr ":kbd:`Alt+Bas`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Jump or go to the next item at same level in the tree"
|
||||
msgstr ""
|
||||
"Sauter ou aller à l'élément suivant au même niveau dans l'arborescence"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Alt+Left`"
|
||||
msgstr ":kbd:`Alt+Gauche`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Jump to the parent item in the tree"
|
||||
msgstr "Sauter à l'élément parent dans l'arborescence"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Alt+Right`"
|
||||
msgstr ":kbd:`Alt+Droite`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Jump to the first child item in the project tree"
|
||||
msgstr "Sauter au premier élément enfant dans l'arborescence du projet"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+.`"
|
||||
msgstr ":kbd:`Ctrl+.`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the context menu on the selected item"
|
||||
msgstr "Ouvrir le menu contextuel de l'élément sélectionné"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+L`"
|
||||
msgstr ":kbd:`Ctrl+L`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the **Quick Links** menu"
|
||||
msgstr "Ouvrir le menu **Liens rapides**"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+N`"
|
||||
msgstr ":kbd:`Ctrl+N`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the **Create New Item** menu"
|
||||
msgstr "Ouvrir le menu **Créer un nouvel élément**"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+O`"
|
||||
msgstr ":kbd:`Ctrl+O`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+R`"
|
||||
msgstr ":kbd:`Ctrl+R`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the selected document in the viewer"
|
||||
msgstr "Ouvrir le document sélectionné dans le visualisateur"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Up`"
|
||||
msgstr ":kbd:`Ctrl+Haut`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Move selected item one step up in the tree"
|
||||
msgstr "Déplacer l'élément sélectionné d'un cran dans l'arborescence"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Down`"
|
||||
msgstr ":kbd:`Ctrl+Bas`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Move selected item one step down in the tree"
|
||||
msgstr "Déplacer l'élément sélectionné d'un cran dans l'arborescence"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+Del`"
|
||||
msgstr ":kbd:`Ctrl+Maj+Suppr`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Move the selected item to Trash"
|
||||
msgstr "Déplacer l'élément sélectionné vers la corbeille"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:63
|
||||
msgid "Document Editor Shortcuts"
|
||||
msgstr "Raccourcis de l'éditeur de documents"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:67
|
||||
msgid "Text Search Shortcuts"
|
||||
msgstr "Raccourcis de recherche de texte"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`F3`"
|
||||
msgstr ":kbd:`F3`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Find the next occurrence of the search word"
|
||||
msgstr "Trouver la prochaine occurrence du mot recherché"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+F`"
|
||||
msgstr ":kbd:`Ctrl+F`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open search and look for the selected word"
|
||||
msgstr "Ouvrir la recherche et rechercher le mot sélectionné"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+G`"
|
||||
msgstr ":kbd:`Ctrl+G`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+H`"
|
||||
msgstr ":kbd:`Ctrl+H`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open replace and look for the selected word (Mac :kbd:`Cmd+=`)"
|
||||
msgstr ""
|
||||
"Ouvrir remplacer et rechercher le mot sélectionné (Mac :kbd:`Cmd+=`)"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+1`"
|
||||
msgstr ":kbd:`Ctrl+Maj+1`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Replace selected occurrence, and move to the next"
|
||||
msgstr "Remplacer l'occurrence sélectionnée et passer à la suivante"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+G`"
|
||||
msgstr ":kbd:`Ctrl+Maj+G`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Find the previous occurrence of the search word"
|
||||
msgstr "Trouver l'occurrence précédente du mot recherché"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+F`"
|
||||
msgstr ":kbd:`Ctrl+Maj+F`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open project search and look for the selected word"
|
||||
msgstr "Ouvrir la recherche de projet et recherchez le mot sélectionné"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Shift+F3`"
|
||||
msgstr ":kbd:`Maj+F3`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:83
|
||||
msgid "Text Formatting Shortcuts"
|
||||
msgstr "Raccourcis de mise en forme du texte"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+'`"
|
||||
msgstr ":kbd:`Ctrl+'`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Wrap selected text, or word under cursor, in single quotes"
|
||||
msgstr ""
|
||||
"Mettre le texte sélectionné, ou le mot sous le curseur, entre guillemets "
|
||||
"simples"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+\"`"
|
||||
msgstr ":kbd:`Ctrl+\"`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Wrap selected text, or word under cursor, in double quotes"
|
||||
msgstr ""
|
||||
"Mettre le texte sélectionné, ou le mot sous le curseur, entre guillemets"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+/`"
|
||||
msgstr ":kbd:`Ctrl+/`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Toggle comment format for block or selected text"
|
||||
msgstr ""
|
||||
"Modifier le format des commentaires pour le bloc ou le texte sélectionné"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+0`"
|
||||
msgstr ":kbd:`Ctrl+0`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Remove format for block or selected text"
|
||||
msgstr "Supprimer le format d'un bloc ou d'un texte sélectionné"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+1`"
|
||||
msgstr ":kbd:`Ctrl+1`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Change block format to heading level 1"
|
||||
msgstr "Modifier le format du bloc au niveau de titre 1"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+2`"
|
||||
msgstr ":kbd:`Ctrl+2`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Change block format to heading level 2"
|
||||
msgstr "Modifier le format du bloc en titre de niveau 2"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+3`"
|
||||
msgstr ":kbd:`Ctrl+3`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Change block format to heading level 3"
|
||||
msgstr "Modifier le format du bloc en titre de niveau 3"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+4`"
|
||||
msgstr ":kbd:`Ctrl+4`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Change block format to heading level 4"
|
||||
msgstr "Modifier le format du bloc en titre de niveau 4"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+5`"
|
||||
msgstr ":kbd:`Ctrl+5`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Change block alignment to left-aligned"
|
||||
msgstr "Aligner le bloc à gauche"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+6`"
|
||||
msgstr ":kbd:`Ctrl+6`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Change block alignment to centred"
|
||||
msgstr "Aligner le bloc au centre"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+7`"
|
||||
msgstr ":kbd:`Ctrl+7`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Change block alignment to right-aligned"
|
||||
msgstr "Aligner le bloc à droite"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+8`"
|
||||
msgstr ":kbd:`Ctrl+8`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Add a left margin to the block"
|
||||
msgstr "Ajouter une marge gauche au bloc"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+9`"
|
||||
msgstr ":kbd:`Ctrl+9`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Add a right margin to the block"
|
||||
msgstr "Ajouter une marge droite au bloc"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+B`"
|
||||
msgstr ":kbd:`Ctrl+B`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Format selected text, or word under cursor, with bold"
|
||||
msgstr "Formater le texte sélectionné, ou le mot sous le curseur, en gras"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+D`"
|
||||
msgstr ":kbd:`Ctrl+D`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Format selected text, or word under cursor, with strike through"
|
||||
msgstr ""
|
||||
"Formater le texte sélectionné, ou le mot sous le curseur, en le barrant"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+I`"
|
||||
msgstr ":kbd:`Ctrl+I`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Format selected text, or word under cursor, with italic"
|
||||
msgstr ""
|
||||
"Formater le texte sélectionné, ou le mot sous le curseur, avec de "
|
||||
"l'italique"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+/`"
|
||||
msgstr ":kbd:`Ctrl+Maj+/`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+D`"
|
||||
msgstr ":kbd:`Ctrl+Maj+D`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Toggle ignored text format for block or selected text"
|
||||
msgstr ""
|
||||
"Basculer le format de texte ignoré pour le bloc ou le texte sélectionné"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:109
|
||||
msgid "Other Editor Shortcuts"
|
||||
msgstr "Autres raccourcis de l'éditeur"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`F7`"
|
||||
msgstr ":kbd:`F7`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Re-run the spell checker on the document"
|
||||
msgstr "Ré-exécuter le correcteur orthographique sur le document"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the context menu at the current cursor location"
|
||||
msgstr "Ouvrir le menu contextuel à l'emplacement actuel du curseur"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+A`"
|
||||
msgstr ":kbd:`Ctrl+A`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Select all text in the document"
|
||||
msgstr "Sélectionner tout le texte dans le document"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+C`"
|
||||
msgstr ":kbd:`Ctrl+C`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Copy selected text to clipboard"
|
||||
msgstr "Copier le texte sélectionné dans le presse-papiers"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`"
|
||||
msgstr ":kbd:`Ctrl+K`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ""
|
||||
"Activate the insert commands (see list in :ref:"
|
||||
"`docs_features_shortcuts_insert`)"
|
||||
msgstr ""
|
||||
"Activer les commandes d'insertion (voir la liste dans :ref:"
|
||||
"`docs_features_shortcuts_insert`)"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open or reload the current document in the viewer"
|
||||
msgstr "Ouvrir ou recharger le document en cours dans le visualisateur"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+S`"
|
||||
msgstr ":kbd:`Ctrl+S`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Save the current document"
|
||||
msgstr "Enregistrer le document en cours"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+V`"
|
||||
msgstr ":kbd:`Ctrl+V`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Paste text from clipboard to cursor position"
|
||||
msgstr "Coller le texte du presse-papiers à la position du curseur"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+W`"
|
||||
msgstr ":kbd:`Ctrl+W`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Close the current document"
|
||||
msgstr "Fermer le document en cours"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+X`"
|
||||
msgstr ":kbd:`Ctrl+X`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Cut selected text to clipboard"
|
||||
msgstr "Couper le texte sélectionné dans le presse-papiers"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Y`"
|
||||
msgstr ":kbd:`Ctrl+Y`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Redo latest undo"
|
||||
msgstr "Rétablir la dernière annulation"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Z`"
|
||||
msgstr ":kbd:`Ctrl+Z`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Undo latest changes"
|
||||
msgstr "Annuler les dernières modifications"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Backspace`"
|
||||
msgstr ":kbd:`Ctrl+Retour arrière`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Delete the word before the cursor"
|
||||
msgstr "Supprimer le mot précédant le curseur"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Del`"
|
||||
msgstr ":kbd:`Ctrl+Suppr`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Delete the word after the cursor"
|
||||
msgstr "Supprimer le mot après le curseur"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+F7`"
|
||||
msgstr ":kbd:`Ctrl+F7`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Toggle spell checking"
|
||||
msgstr "Vérifier l'orthographe"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Return`"
|
||||
msgstr ":kbd:`Ctrl+Retour`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Open the tag or reference under the cursor in the viewer"
|
||||
msgstr ""
|
||||
"Ouvrir la balise ou la référence sous le curseur dans le visualiseur"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+A`"
|
||||
msgstr ":kbd:`Ctrl+Maj+A`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Select all text in the current paragraph"
|
||||
msgstr "Sélectionner tout le texte du paragraphe en cours"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:136
|
||||
msgid "Insert Shortcuts"
|
||||
msgstr "Raccourcis d'insertion"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:138
|
||||
msgid ""
|
||||
"A set of insert features are also available through shortcuts, but they "
|
||||
"require a double combination of key sequences. The insert feature is "
|
||||
"activated with :kbd:`Ctrl+K`, followed by a key or key combination for "
|
||||
"the inserted content."
|
||||
msgstr ""
|
||||
"Un ensemble de fonctions d'insertion sont également disponibles par le "
|
||||
"biais de raccourcis, mais elles nécessitent une double combinaison de "
|
||||
"séquences de touches. La fonction d'insertion est activée avec :kbd:"
|
||||
"`Ctrl+K`, suivi d'une touche ou d'une combinaison de touches pour le "
|
||||
"contenu inséré."
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`Space`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`Espace`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a non-breaking space"
|
||||
msgstr "Insérer un espace insécable"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`_`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`_`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a long dash (em dash)"
|
||||
msgstr "Insérer un tiret long"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`.`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`.`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert an ellipsis"
|
||||
msgstr "Insérer un point de suspension"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`'`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`'`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a modifier apostrophe"
|
||||
msgstr "Insérer une apostrophe"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`*`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`*`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a list bullet"
|
||||
msgstr "Insérer une puce de liste"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`%`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`%`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a per mille symbol"
|
||||
msgstr "Insérer un symbole pour mille"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`~`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`~`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a figure dash (same width as a number)"
|
||||
msgstr "Insérer un tiret (de la même largeur qu'un chiffre)"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`−`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`−`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a short dash (en dash)"
|
||||
msgstr "Insérer un tiret court"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`1`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`1`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a left single quote"
|
||||
msgstr "Insérer un guillemet simple gauche"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`2`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`2`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a right single quote"
|
||||
msgstr "Insérer un guillemet simple à droite"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`3`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`3`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a left double quote"
|
||||
msgstr "Insérer un double guillemet gauche"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`4`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`4`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a right double quote"
|
||||
msgstr "Insérer un double guillemet droit"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`C`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`C`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a ``@char`` keyword"
|
||||
msgstr "Insérer un mot-clé ``@char``"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`E`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`E`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert an ``@entity`` keyword"
|
||||
msgstr "Insérer un mot-clé ``@entity``"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`F`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`F`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a ``@focus`` keyword"
|
||||
msgstr "Insérer un mot-clé ``@focus``"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`G`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`G`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a ``@tag`` keyword"
|
||||
msgstr "Insérer un mot-clé ``@tag``"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`H`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`H`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a short description comment"
|
||||
msgstr "Insérer un bref commentaire de description"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`L`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`L`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a ``@location`` keyword"
|
||||
msgstr "Insérer un mot-clé ``@location``"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`M`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`M`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a ``@mention`` keyword"
|
||||
msgstr "Insérer un mot-clé ``@mention``"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`O`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`O`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert an ``@object`` keyword"
|
||||
msgstr "Insérer un mot-clé ``@object``"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`P`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`P`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a ``@plot`` keyword"
|
||||
msgstr "Insérer un mot-clé `@plot``"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`S`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`S`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a synopsis comment"
|
||||
msgstr "Insérer un commentaire de synopsis"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`T`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`T`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a ``@time`` keyword"
|
||||
msgstr "Insérer un mot-clé ``@time``"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`V`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`V`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a ``@pov`` keyword"
|
||||
msgstr "Insérer un mot-clé ``@pov``"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`X`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`X`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a ``@custom`` keyword"
|
||||
msgstr "Insérer un mot-clé ``@custom``"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+Space`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+Espace`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a thin non-breaking space"
|
||||
msgstr "Insérer un espace fin insécable"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+_`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+_`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a horizontal bar (quotation dash)"
|
||||
msgstr "Insérer une barre horizontale"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+'`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+'`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a prime"
|
||||
msgstr "Insérer une prime"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+\"`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+\"`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a double prime"
|
||||
msgstr "Insérer une double prime"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+*`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+*`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a flower mark (alternative bullet)"
|
||||
msgstr "Insérer une fleur (puce alternative)"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+−`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+−`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a hyphen bullet (alternative bullet)"
|
||||
msgstr "Insérer une puce à tiret (puce alternative)"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+D`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+D`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a division sign"
|
||||
msgstr "Insérer un signe de division"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+O`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+O`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a degree symbol"
|
||||
msgstr "Insérer un symbole de degré"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`Ctrl+X`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`Ctrl+X`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a times sign"
|
||||
msgstr "Insert a times sign"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+K`, :kbd:`Shift+Space`"
|
||||
msgstr ":kbd:`Ctrl+K`, :kbd:`Maj+Espace`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Insert a thin space"
|
||||
msgstr "Insérer un espace fin"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:183
|
||||
msgid "Document Viewer Shortcuts"
|
||||
msgstr "Raccourcis de la fenêtre de visualisation des documents"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Move backward in the view history"
|
||||
msgstr "Reculer dans l'historique des vues"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Move forward in the view history"
|
||||
msgstr "Avancer dans l'historique des vues"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid ":kbd:`Ctrl+Shift+R`"
|
||||
msgstr ":kbd:`Ctrl+Maj+R`"
|
||||
|
||||
#: ../../source/features/shortcuts.rst:1
|
||||
msgid "Close the document viewer"
|
||||
msgstr "Fermer l'afficheur de documents"
|
||||
221
docs/source/locales/fr/LC_MESSAGES/features/story_comments.po
Normal file
@@ -0,0 +1,221 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-28 22:28+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/features/story_comments.rst:5
|
||||
msgid "Story Comments"
|
||||
msgstr "Commentaires sur l'histoire"
|
||||
|
||||
#: ../../source/features/story_comments.rst:7
|
||||
msgid ""
|
||||
"A special set of comment styles allow for annotating your text with "
|
||||
"structure information. There are two styles of comments available. They "
|
||||
"are an extension to regular comments as described in :ref:"
|
||||
"`docs_usage_comments`."
|
||||
msgstr ""
|
||||
"Un ensemble spécial de styles de commentaires permet d'annoter votre "
|
||||
"texte avec des informations sur la structure. Deux styles de "
|
||||
"commentaires sont disponibles. Ils sont une extension des commentaires "
|
||||
"normaux tels que décrits dans :ref:`docs_usage_comments`."
|
||||
|
||||
#: ../../source/features/story_comments.rst:15
|
||||
msgid "Story Structure Comments"
|
||||
msgstr "Commentaires sur la structure de l'histoire"
|
||||
|
||||
#: ../../source/features/story_comments.rst:17
|
||||
msgid ""
|
||||
"You can annotate story structure by using the ``%Story`` style of "
|
||||
"comment. To use the feature, make the first word of a comment ``Story``, "
|
||||
"followed by a period, a structure term, a colon, a space and the text "
|
||||
"for that term."
|
||||
msgstr ""
|
||||
"Vous pouvez annoter la structure de l'histoire en utilisant le style de "
|
||||
"commentaire ``%Story``. Pour utiliser cette fonctionnalité, le premier "
|
||||
"mot du commentaire doit être ``Story``, suivi d'un point, d'un terme de "
|
||||
"structure, de deux points, d'un espace et du texte correspondant à ce "
|
||||
"terme."
|
||||
|
||||
#: ../../source/features/story_comments.rst:23
|
||||
#: ../../source/features/story_comments.rst:88
|
||||
msgid "Usage"
|
||||
msgstr "Utilisation"
|
||||
|
||||
#: ../../source/features/story_comments.rst:25
|
||||
msgid ""
|
||||
"The story term can be anything that you want to track in the manuscript. "
|
||||
"This construct is intended to make it easier to extract metadata from a "
|
||||
"work to perform a structural analysis of the story."
|
||||
msgstr ""
|
||||
"Le terme de l'histoire peut être n'importe quoi que vous voulez suivre "
|
||||
"dans le manuscrit. Cette construction est destinée à faciliter "
|
||||
"l'extraction des métadonnées d'une œuvre afin d'effectuer une analyse "
|
||||
"structurelle de l'histoire."
|
||||
|
||||
#: ../../source/features/story_comments.rst:28
|
||||
msgid ""
|
||||
"There are probably as many ways to examine story structure as there are "
|
||||
"authors and editors combined. For this reason the story tag is flexible. "
|
||||
"You can use any terms you want and track any aspect of the story that "
|
||||
"serves your purposes."
|
||||
msgstr ""
|
||||
"Il y a probablement autant de façons d'examiner la structure d'une "
|
||||
"histoire qu'il y a d'auteurs et d'éditeurs réunis. C'est la raison pour "
|
||||
"laquelle l'étiquette « histoire » est flexible. Vous pouvez utiliser les "
|
||||
"termes de votre choix et suivre tous les aspects de l'histoire qui vous "
|
||||
"intéressent."
|
||||
|
||||
#: ../../source/features/story_comments.rst:32
|
||||
msgid ""
|
||||
"An example method has been advanced by Shawn Coyne in *The Story Grid*. "
|
||||
"This method asserts that a story is composed of \"beats\", and that each "
|
||||
"beat has an inciting incident, a complication, a crisis, and a "
|
||||
"resolution. One might capture these elements of a beat where a character "
|
||||
"overcomes their fear of giving a speech as:"
|
||||
msgstr ""
|
||||
"Un exemple de méthode a été proposé par Shawn Coyne dans *The Story "
|
||||
"Grid*. Cette méthode affirme qu'une histoire est composée de « temps » "
|
||||
"et que chaque temps comporte un incident déclencheur, une complication, "
|
||||
"une crise et une résolution. On pourrait saisir les éléments d'un temps "
|
||||
"où un personnage surmonte sa peur de faire un discours comme suit :"
|
||||
|
||||
#: ../../source/features/story_comments.rst:37
|
||||
#: ../../source/features/story_comments.rst:94
|
||||
msgid ":bdg-info:`Example`"
|
||||
msgstr ":bdg-info:`Exemple`"
|
||||
|
||||
#: ../../source/features/story_comments.rst:50
|
||||
msgid ""
|
||||
"Other analytical models propose tracking a scene's pace, how it affects "
|
||||
"the mood of the story, or which element(s) of the story's genre are "
|
||||
"being satisfied. An author can use this mechanism to track any element "
|
||||
"of a scene. Some examples include time of day, how much time passes in "
|
||||
"the scene, or even the physical form of a shape-shifting character. If a "
|
||||
"story involves magic, one could track which wand a main character has in "
|
||||
"hand. It's up to tha author."
|
||||
msgstr ""
|
||||
"D'autres modèles analytiques proposent de suivre le rythme d'une scène, "
|
||||
"la façon dont il affecte l'ambiance de l'histoire ou les éléments du "
|
||||
"genre de l'histoire qui sont satisfaits. Un auteur peut utiliser ce "
|
||||
"mécanisme pour suivre n'importe quel élément d'une scène. Il peut "
|
||||
"s'agir, par exemple, de l'heure, du temps qui s'écoule dans la scène ou "
|
||||
"même de la forme physique d'un personnage qui change de forme. Si "
|
||||
"l'histoire fait appel à la magie, il est possible de savoir quelle "
|
||||
"baguette le personnage principal tient en main. C'est à l'auteur de "
|
||||
"décider."
|
||||
|
||||
#: ../../source/features/story_comments.rst:56
|
||||
msgid ""
|
||||
"When the story and other scene metadata is extracted into a tabular "
|
||||
"form, it is possible to get a comprehensive overview of the story and to "
|
||||
"identify possible issues. For example, so many fast-paced scenes without "
|
||||
"a break that readers might become fatigued or over-stimulated."
|
||||
msgstr ""
|
||||
"Lorsque les métadonnées de l'histoire et d'autres scènes sont extraites "
|
||||
"sous forme de tableau, il est possible d'obtenir une vue d'ensemble de "
|
||||
"l'histoire et d'identifier les problèmes éventuels. Par exemple, un si "
|
||||
"grand nombre de scènes au rythme rapide, sans pause, que les lecteurs "
|
||||
"risquent de se fatiguer ou d'être trop stimulés."
|
||||
|
||||
#: ../../source/features/story_comments.rst:62
|
||||
#: ../../source/features/story_comments.rst:106
|
||||
msgid "Output"
|
||||
msgstr "Production"
|
||||
|
||||
#: ../../source/features/story_comments.rst:64
|
||||
msgid ""
|
||||
"The story structure comments can be included in the manuscript, and are "
|
||||
"formatted similarly to the synopsis comments:"
|
||||
msgstr ""
|
||||
"Les commentaires sur la structure de l'histoire peuvent être inclus dans "
|
||||
"le manuscrit et sont formatés de la même manière que les commentaires "
|
||||
"sur le synopsis :"
|
||||
|
||||
#: ../../source/features/story_comments.rst:69
|
||||
msgid "A set of story structure comments as shown in the Manuscript tool."
|
||||
msgstr ""
|
||||
"Une série de commentaires sur la structure de l'histoire, tels qu'ils "
|
||||
"apparaissent dans l'outil Manuscrit."
|
||||
|
||||
#: ../../source/features/story_comments.rst:71
|
||||
msgid ""
|
||||
"When you export your project data from the Outline View, all story "
|
||||
"structure terms are added as columns to the exported file, which can "
|
||||
"then be opened in the spread sheet software of your choice."
|
||||
msgstr ""
|
||||
"Lorsque vous exportez les données de votre projet à partir de la vue en "
|
||||
"plan, tous les termes de la structure du récit sont ajoutés en tant que "
|
||||
"colonnes au fichier exporté, qui peut ensuite être ouvert dans le "
|
||||
"logiciel de feuille de calcul de votre choix."
|
||||
|
||||
#: ../../source/features/story_comments.rst:76
|
||||
msgid "Story Notes"
|
||||
msgstr "Notes sur l'histoire"
|
||||
|
||||
#: ../../source/features/story_comments.rst:78
|
||||
msgid ""
|
||||
"Story notes are similar to story structure comments, but have no "
|
||||
"predefined meaning. Essentially they are a generalisation of the story "
|
||||
"structure comment, and the only point of having this additional format "
|
||||
"is to allow you do filter them in and out of your manuscript "
|
||||
"independently."
|
||||
msgstr ""
|
||||
"Les notes de récit sont similaires aux commentaires de structure de "
|
||||
"récit, mais n'ont pas de signification prédéfinie. Il s'agit "
|
||||
"essentiellement d'une généralisation du commentaire de structure, et le "
|
||||
"seul intérêt de ce format supplémentaire est de vous permettre de les "
|
||||
"filtrer dans et hors de votre manuscrit de manière indépendante."
|
||||
|
||||
#: ../../source/features/story_comments.rst:82
|
||||
msgid ""
|
||||
"You can annotate story notes by using the ``%Note`` style of comment. To "
|
||||
"use the feature, make the first word of a comment ``Note``, followed by "
|
||||
"a period, a term, a colon, a space and the text for the note."
|
||||
msgstr ""
|
||||
"Vous pouvez annoter les notes d'articles en utilisant le style de "
|
||||
"commentaire ``%Note``. Pour utiliser cette fonctionnalité, le premier "
|
||||
"mot du commentaire doit être « Note », suivi d'un point, d'un terme, de "
|
||||
"deux points, d'un espace et du texte de la note."
|
||||
|
||||
#: ../../source/features/story_comments.rst:90
|
||||
msgid ""
|
||||
"These notes are free form, but one intended use case is to add "
|
||||
"consistency annotations to your text to remind yourself where you have "
|
||||
"described something that must be checked against other parts of your "
|
||||
"text later on."
|
||||
msgstr ""
|
||||
"Ces notes sont libres, mais l'une des utilisations prévues est d'ajouter "
|
||||
"des annotations de cohérence à votre texte pour vous rappeler où vous "
|
||||
"avez décrit quelque chose qui doit être vérifié ultérieurement par "
|
||||
"rapport à d'autres parties de votre texte."
|
||||
|
||||
#: ../../source/features/story_comments.rst:108
|
||||
msgid ""
|
||||
"Story notes are included in the manuscript in exactly the same way story "
|
||||
"structure comments are, but has a separate inclusion setting in the "
|
||||
"build settings. They are also included in CSV exports from the **Outline "
|
||||
"View**."
|
||||
msgstr ""
|
||||
"Les notes de récit sont incluses dans le manuscrit de la même manière "
|
||||
"que les commentaires sur la structure du récit, mais elles ont un "
|
||||
"paramètre d'inclusion distinct dans les paramètres de construction. "
|
||||
"Elles sont également incluses dans les exportations CSV à partir de la "
|
||||
"**Vue d'ensemble**."
|
||||
120
docs/source/locales/fr/LC_MESSAGES/index.po
Normal file
@@ -0,0 +1,120 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-27 20:56+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/index.rst:32
|
||||
msgid "More Documents"
|
||||
msgstr "Plus d'informations"
|
||||
|
||||
#: ../../source/index.rst:38
|
||||
msgid "Getting Started"
|
||||
msgstr "Pour commencer"
|
||||
|
||||
#: ../../source/index.rst:53
|
||||
msgid "The User Interface"
|
||||
msgstr "Interface utilisateur"
|
||||
|
||||
#: ../../source/index.rst:64
|
||||
msgid "Other Features"
|
||||
msgstr "Autres fonctionnalités"
|
||||
|
||||
#: ../../source/index.rst:72
|
||||
msgid "In-Depth Topics"
|
||||
msgstr "En détail"
|
||||
|
||||
#: ../../source/index.rst:82
|
||||
msgid "Technical Topics"
|
||||
msgstr "Rubriques techniques"
|
||||
|
||||
#: ../../source/index.rst:3
|
||||
msgid "User Guide"
|
||||
msgstr "Guide d'utilisation"
|
||||
|
||||
#: ../../source/index.rst:5
|
||||
msgid "**Release Version:** |release|"
|
||||
msgstr "**Version :** |release|"
|
||||
|
||||
#: ../../source/index.rst:6
|
||||
msgid "**Updated:** |today|"
|
||||
msgstr "**Mise à jour :** |today|"
|
||||
|
||||
#: ../../source/index.rst:8
|
||||
msgid ""
|
||||
"UmbraEdit is an open source plain text editor designed for writing "
|
||||
"novels assembled from individual text documents. It uses a minimal "
|
||||
"formatting syntax inspired by Markdown, and adds a meta data syntax for "
|
||||
"comments, synopsis, and cross-referencing. It is designed to be a simple "
|
||||
"text editor that allows for easy organisation of text and notes, using "
|
||||
"human readable text files as storage for robustness."
|
||||
msgstr ""
|
||||
"UmbraEdit est un éditeur de texte brut open source conçu pour écrire "
|
||||
"des romans assemblés à partir de documents texte individuels. Il utilise "
|
||||
"une syntaxe de formatage minimale inspirée de Markdown, et ajoute une "
|
||||
"syntaxe de métadonnées pour les commentaires, les synopsis et les "
|
||||
"références croisées. Il est conçu pour être un éditeur de texte simple "
|
||||
"qui permet d'organiser facilement le texte et les notes, en utilisant des "
|
||||
"fichiers texte lisibles par l'homme comme stockage pour plus de "
|
||||
"robustesse."
|
||||
|
||||
#: ../../source/index.rst:19
|
||||
msgid "**Useful Links**"
|
||||
msgstr "**Liens utiles**"
|
||||
|
||||
#: ../../source/index.rst:21
|
||||
msgid "Website: https://umbraedit.io"
|
||||
msgstr "Site web : https://umbraedit.io"
|
||||
|
||||
#: ../../source/index.rst:22
|
||||
msgid "Documentation: https://docs.umbraedit.io"
|
||||
msgstr "Documentation: https://docs.umbraedit.io"
|
||||
|
||||
#: ../../source/index.rst:23
|
||||
msgid "Public Releases: https://releases.umbraedit.io"
|
||||
msgstr "Public Releases: https://releases.umbraedit.io"
|
||||
|
||||
#: ../../source/index.rst:24
|
||||
msgid "Internationalisation: https://crowdin.com/project/umbraedit"
|
||||
msgstr "Internationalisation: https://crowdin.com/project/umbraedit"
|
||||
|
||||
#: ../../source/index.rst:25
|
||||
msgid "Source Code: https://github.com/saga-soft/UmbraEdit"
|
||||
msgstr "Code source : https://github.com/saga-soft/UmbraEdit"
|
||||
|
||||
#: ../../source/index.rst:26
|
||||
msgid "Source Releases: https://github.com/saga-soft/UmbraEdit/releases"
|
||||
msgstr "Source Releases: https://github.com/saga-soft/UmbraEdit/releases"
|
||||
|
||||
#: ../../source/index.rst:27
|
||||
msgid "Issue Tracker: https://github.com/saga-soft/UmbraEdit/issues"
|
||||
msgstr "Issue Tracker: https://github.com/saga-soft/UmbraEdit/issues"
|
||||
|
||||
#: ../../source/index.rst:28
|
||||
msgid "Feature Discussions: https://github.com/saga-soft/UmbraEdit/discussions"
|
||||
msgstr "Feature Discussions: https://github.com/saga-soft/UmbraEdit/discussions"
|
||||
|
||||
#: ../../source/index.rst:29
|
||||
msgid "PyPi Project: https://pypi.org/project/UmbraEdit"
|
||||
msgstr "PyPi Project: https://pypi.org/project/UmbraEdit"
|
||||
|
||||
#: ../../source/index.rst:30
|
||||
msgid "Social Media: https://fosstodon.org/@umbraedit"
|
||||
msgstr "Social Media: https://fosstodon.org/@umbraedit"
|
||||
321
docs/source/locales/fr/LC_MESSAGES/more/counting.po
Normal file
@@ -0,0 +1,321 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-28 23:00+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/more/counting.rst:5
|
||||
msgid "Word and Text Counts"
|
||||
msgstr "Décompte des mots et des textes"
|
||||
|
||||
#: ../../source/more/counting.rst:7
|
||||
msgid ""
|
||||
"This is an overview of how words and other counts of your text are performed. "
|
||||
"The counting rules should be relatively standard, and are comparable to Libre "
|
||||
"Office Writer rules."
|
||||
msgstr ""
|
||||
"Il s'agit d'une vue d'ensemble de la manière dont les mots et autres comptages "
|
||||
"de votre texte sont effectués. Les règles de comptage devraient être "
|
||||
"relativement standard, et sont comparables aux règles de Libre Office Writer."
|
||||
|
||||
#: ../../source/more/counting.rst:10
|
||||
msgid ""
|
||||
"The counts provided in the app on the raw text are meant to be approximate. For "
|
||||
"more accurate counts, you need to build your manuscript in the **Manuscript "
|
||||
"Tool** and check the counts on the generated preview."
|
||||
msgstr ""
|
||||
"Les décomptes fournis dans l'application sur le texte brut sont approximatifs. "
|
||||
"Pour des décomptes plus précis, vous devez compiler votre manuscrit avec "
|
||||
"**Compiler le manuscrit** et vérifier les décomptes sur l'aperçu généré."
|
||||
|
||||
#: ../../source/more/counting.rst:16
|
||||
msgid "Text Word Counts and Stats"
|
||||
msgstr "Décompte des mots du texte et statistiques"
|
||||
|
||||
#: ../../source/more/counting.rst:18
|
||||
msgid ""
|
||||
"These are the rules for the main counts available for for each document in a "
|
||||
"project."
|
||||
msgstr ""
|
||||
"Il s'agit des règles relatives aux principaux décomptes disponibles pour chaque "
|
||||
"document d'un projet."
|
||||
|
||||
#: ../../source/more/counting.rst:20
|
||||
msgid "For all counts, the following rules apply."
|
||||
msgstr "Pour tous les décomptes, les règles suivantes s'appliquent."
|
||||
|
||||
#: ../../source/more/counting.rst:22 ../../source/more/counting.rst:56
|
||||
msgid "Short (–) and long (—) dashes are considered word separators."
|
||||
msgstr ""
|
||||
"Les tirets demi-cadratin (–) et cadratin (—) sont considérés comme des "
|
||||
"séparateurs de mots."
|
||||
|
||||
#: ../../source/more/counting.rst:23
|
||||
msgid "Any line starting with ``%`` or ``@`` is ignored."
|
||||
msgstr "Toute ligne commençant par ``%`` ou ``@`` est ignorée."
|
||||
|
||||
#: ../../source/more/counting.rst:24
|
||||
msgid "Trailing white spaces are ignored, including line breaks."
|
||||
msgstr ""
|
||||
"Les espaces blancs de fin de ligne sont ignorés, y compris les sauts de ligne."
|
||||
|
||||
#: ../../source/more/counting.rst:25
|
||||
msgid "Leading ``>`` and trailing ``<`` are ignored with any spaces next to them."
|
||||
msgstr ""
|
||||
"Les ``>`` de début et les ``<`` de fin sont ignorés, de même que les espaces "
|
||||
"qui les accompagnent."
|
||||
|
||||
#: ../../source/more/counting.rst:26
|
||||
msgid ""
|
||||
"Valid shortcodes and other commands wrapped in brackets ``[]`` are ignored."
|
||||
msgstr ""
|
||||
"Les shortcodes valides et les autres commandes entre crochets ``[]`` sont "
|
||||
"ignorés."
|
||||
|
||||
#: ../../source/more/counting.rst:27
|
||||
msgid "In-line Markdown syntax in text paragraphs is treated as part of the text."
|
||||
msgstr ""
|
||||
"La syntaxe Markdown en ligne dans les paragraphes de texte est traitée comme "
|
||||
"faisant partie du texte."
|
||||
|
||||
#: ../../source/more/counting.rst:29
|
||||
msgid ""
|
||||
"After the above preparation of the text, the following counts are available."
|
||||
msgstr "Après la préparation du texte, les chiffres suivants sont disponibles."
|
||||
|
||||
#: ../../source/more/counting.rst:31
|
||||
msgid "**Character Count**"
|
||||
msgstr "**Décompte des caractères**"
|
||||
|
||||
#: ../../source/more/counting.rst:32
|
||||
msgid ""
|
||||
"The character count is the sum of characters per line, including leading and in-"
|
||||
"text white space characters, but excluding trailing white space characters. "
|
||||
"Shortcodes in the text are not included, but Markdown codes are. Only headings "
|
||||
"and text are counted."
|
||||
msgstr ""
|
||||
"Le nombre de caractères est la somme des caractères par ligne, y compris les "
|
||||
"caractères d'en-tête et les caractères d'espacement dans le texte, mais pas les "
|
||||
"caractères d'espacement de fin. Les Shortcodes dans le texte ne sont pas "
|
||||
"inclus, mais les codes Markdown le sont. Seuls les en-têtes et le texte sont "
|
||||
"pris en compte."
|
||||
|
||||
#: ../../source/more/counting.rst:36
|
||||
msgid "**Word Count**"
|
||||
msgstr "**Décompte des mots**"
|
||||
|
||||
#: ../../source/more/counting.rst:37
|
||||
msgid ""
|
||||
"The words count is the sum of blocks of continuous character per line separated "
|
||||
"by any number of white space characters or dashes. Only headings and text are "
|
||||
"counted."
|
||||
msgstr ""
|
||||
"Le nombre de mots est la somme des blocs de caractères continus par ligne, "
|
||||
"séparés par un nombre quelconque de caractères d'espacement ou de tirets. Seuls "
|
||||
"les titres et le texte sont comptés."
|
||||
|
||||
#: ../../source/more/counting.rst:40
|
||||
msgid "**Paragraph Count**"
|
||||
msgstr "**Décompte des paragraphes**"
|
||||
|
||||
#: ../../source/more/counting.rst:41
|
||||
msgid ""
|
||||
"The paragraph count is the number of text blocks separated by one or more empty "
|
||||
"line. A line consisting only of white spaces is considered empty."
|
||||
msgstr ""
|
||||
"Le nombre de paragraphes est le nombre de blocs de texte séparés par une ou "
|
||||
"plusieurs lignes vides. Une ligne constituée uniquement d'espaces blancs est "
|
||||
"considérée comme vide."
|
||||
|
||||
#: ../../source/more/counting.rst:46
|
||||
msgid "Manuscript Counts"
|
||||
msgstr "Décompte du manuscrit"
|
||||
|
||||
#: ../../source/more/counting.rst:48
|
||||
msgid ""
|
||||
"These are the rules for the counts available for a manuscript in the "
|
||||
"**Manuscript Tool**. The rules have been tuned to agree with LibreOffice "
|
||||
"Writer, but will vary slightly depending on the content of your text. "
|
||||
"LibreOffice Writer also counts the text in the page header, which the "
|
||||
"**Manuscript Tool** does not."
|
||||
msgstr ""
|
||||
"Voici les règles pour les décomptes disponibles pour un manuscrit dans l'outil "
|
||||
"**Outil Manuscrit**. Les règles ont été ajustées pour correspondre à "
|
||||
"LibreOffice Writer, mais varieront légèrement en fonction du contenu de votre "
|
||||
"texte. LibreOffice Writer compte également le texte dans l'en-tête de la page, "
|
||||
"ce que ne fait pas l'outil **Outil Manuscrit**."
|
||||
|
||||
#: ../../source/more/counting.rst:53
|
||||
msgid ""
|
||||
"The content of each line is counted after all formatting has been processed, so "
|
||||
"the result will be more accurate than the counts for text documents elsewhere "
|
||||
"in the app. The following rules apply:"
|
||||
msgstr ""
|
||||
"Le contenu de chaque ligne est compté après le traitement de toutes les mises "
|
||||
"en forme, de sorte que le résultat sera plus précis que les décomptes pour les "
|
||||
"documents textuels dans d'autres parties de l'application. Les règles suivantes "
|
||||
"s'appliquent :"
|
||||
|
||||
#: ../../source/more/counting.rst:57
|
||||
msgid ""
|
||||
"Leading and trailing white spaces are generally included, but paragraph breaks "
|
||||
"are not."
|
||||
msgstr ""
|
||||
"Les espaces blancs de début et de fin sont généralement inclus, mais les sauts "
|
||||
"de paragraphe ne le sont pas."
|
||||
|
||||
#: ../../source/more/counting.rst:58
|
||||
msgid "Hard line breaks within paragraph are considered white space characters."
|
||||
msgstr ""
|
||||
"Les retours à la ligne dans un paragraphe sont considérés comme des caractères "
|
||||
"d'espacement."
|
||||
|
||||
#: ../../source/more/counting.rst:59
|
||||
msgid ""
|
||||
"All formatting codes are ignored, including shortcodes, commands and Markdown."
|
||||
msgstr ""
|
||||
"Tous les codes de formatage sont ignorés, y compris les shortcodes, les "
|
||||
"commandes et Markdown."
|
||||
|
||||
#: ../../source/more/counting.rst:60
|
||||
msgid "Scene and section separators are counted."
|
||||
msgstr "Les séparateurs de scène et de section sont pris en compte."
|
||||
|
||||
#: ../../source/more/counting.rst:61
|
||||
msgid "Comments and meta data lines are counted after they are formatted."
|
||||
msgstr ""
|
||||
"Les lignes de commentaires et de métadonnées sont comptées après leur mise en "
|
||||
"forme."
|
||||
|
||||
#: ../../source/more/counting.rst:62
|
||||
msgid "Headers are counted after they are formatted with custom formats."
|
||||
msgstr ""
|
||||
"Les en-têtes sont comptés après avoir été formatés avec des formats "
|
||||
"personnalisés."
|
||||
|
||||
#: ../../source/more/counting.rst:64
|
||||
msgid "The following counts are available:"
|
||||
msgstr "Les décomptes suivants sont disponibles :"
|
||||
|
||||
#: ../../source/more/counting.rst:66
|
||||
msgid "**Headings**"
|
||||
msgstr "**En-têtes**"
|
||||
|
||||
#: ../../source/more/counting.rst:67
|
||||
msgid "The number of headings in the manuscript."
|
||||
msgstr "Le nombre d'entêtes dans le manuscrit."
|
||||
|
||||
#: ../../source/more/counting.rst:69
|
||||
msgid "**Paragraphs**"
|
||||
msgstr "**Paragraphes**"
|
||||
|
||||
#: ../../source/more/counting.rst:70
|
||||
msgid "The number of body text paragraphs in the manuscript."
|
||||
msgstr "Le nombre de paragraphes dans le manuscrit."
|
||||
|
||||
#: ../../source/more/counting.rst:72
|
||||
msgid "**Words**"
|
||||
msgstr "**Mots**"
|
||||
|
||||
#: ../../source/more/counting.rst:73
|
||||
msgid ""
|
||||
"The number of words in the manuscript, including any comments and meta data "
|
||||
"text."
|
||||
msgstr ""
|
||||
"Le nombre de mots du manuscrit, y compris les commentaires et les métadonnées."
|
||||
|
||||
#: ../../source/more/counting.rst:75
|
||||
msgid "**Words in Text**"
|
||||
msgstr "**Mots dans le texte**"
|
||||
|
||||
#: ../../source/more/counting.rst:76
|
||||
msgid "The number of words in body text paragraphs, excluding all other text."
|
||||
msgstr "Nombre de mots dans les paragraphes, à l'exclusion de tout autre texte."
|
||||
|
||||
#: ../../source/more/counting.rst:78
|
||||
msgid "**Words in Headings**"
|
||||
msgstr "**Mots dans les entêtes**"
|
||||
|
||||
#: ../../source/more/counting.rst:79
|
||||
msgid ""
|
||||
"The number of words in headings, including inserted formatting like chapter "
|
||||
"numbers, etc."
|
||||
msgstr ""
|
||||
"Le nombre de mots dans les entêtes, y compris le formatage inséré comme les "
|
||||
"numéros de chapitre, etc."
|
||||
|
||||
#: ../../source/more/counting.rst:81
|
||||
msgid "**Characters**"
|
||||
msgstr "**Caractères**"
|
||||
|
||||
#: ../../source/more/counting.rst:82
|
||||
msgid ""
|
||||
"The number of characters in all lines, including any comments and meta data "
|
||||
"text. Paragraph breaks are not counted, but in-paragraph hard line breaks are."
|
||||
msgstr ""
|
||||
"Le nombre de caractères de toutes les lignes, y compris les commentaires et le "
|
||||
"texte des métadonnées. Les sauts de paragraphe ne sont pas comptés, mais les "
|
||||
"sauts de ligne dans les paragraphes le sont."
|
||||
|
||||
#: ../../source/more/counting.rst:85
|
||||
msgid "**Character in Text**"
|
||||
msgstr "**Caractères dans le texte**"
|
||||
|
||||
#: ../../source/more/counting.rst:86
|
||||
msgid ""
|
||||
"The number of characters in body text paragraphs. Paragraph breaks are not "
|
||||
"counted, but in-paragraph hard line breaks are."
|
||||
msgstr ""
|
||||
"Nombre de caractères dans les paragraphes. Les sauts de paragraphe ne sont pas "
|
||||
"comptés, mais les sauts de ligne dans les paragraphes le sont."
|
||||
|
||||
#: ../../source/more/counting.rst:89
|
||||
msgid "**Characters in Headings**"
|
||||
msgstr "**Caractères dans les entêtes**"
|
||||
|
||||
#: ../../source/more/counting.rst:90
|
||||
msgid "The number of characters in headings."
|
||||
msgstr "Le nombre de caractères dans les en-têtes."
|
||||
|
||||
#: ../../source/more/counting.rst:92
|
||||
msgid "**Character in Text, No Spaces**"
|
||||
msgstr "**Caractères dans le texte, sans les espaces**"
|
||||
|
||||
#: ../../source/more/counting.rst:93
|
||||
msgid ""
|
||||
"The number of characters in body text paragraphs considered part of a word or "
|
||||
"punctuation. That is, white space characters are not counted."
|
||||
msgstr ""
|
||||
"Le nombre de caractères dans les paragraphes considérés comme faisant partie "
|
||||
"d'un mot ou d'une ponctuation. En d'autres termes, les caractères d'espacement "
|
||||
"ne sont pas pris en compte."
|
||||
|
||||
#: ../../source/more/counting.rst:96
|
||||
msgid "**Character in Headings, No Spaces**"
|
||||
msgstr "**Caractères dans les en-têtes, sans les espaces**"
|
||||
|
||||
#: ../../source/more/counting.rst:97
|
||||
msgid ""
|
||||
"The number of characters in headings considered part of a word or punctuation. "
|
||||
"That is, white space characters are not counted."
|
||||
msgstr ""
|
||||
"Le nombre de caractères dans les en-têtes considérés comme faisant partie d'un "
|
||||
"mot ou de la ponctuation. En d'autres termes, les caractères d'espacement ne "
|
||||
"sont pas pris en compte."
|
||||
359
docs/source/locales/fr/LC_MESSAGES/more/customise.po
Normal file
@@ -0,0 +1,359 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-29 11:05+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/more/customise.rst:5
|
||||
msgid "Customisations"
|
||||
msgstr "Personnalisations"
|
||||
|
||||
#: ../../source/more/customise.rst:10
|
||||
msgid ""
|
||||
"There are a few ways you can customise UmbraEdit yourself. Currently, "
|
||||
"you can add new GUI themes, your own syntax themes, and install additional "
|
||||
"dictionaries."
|
||||
msgstr ""
|
||||
"Vous pouvez personnaliser UmbraEdit de plusieurs façons. Actuellement, "
|
||||
"vous pouvez ajouter de nouveaux thèmes d'interface graphique, vos propres "
|
||||
"thèmes de syntaxe et installer des dictionnaires supplémentaires."
|
||||
|
||||
#: ../../source/more/customise.rst:17
|
||||
msgid "Spell Check Dictionaries"
|
||||
msgstr "Dictionnaires de vérification orthographique"
|
||||
|
||||
#: ../../source/more/customise.rst:19
|
||||
msgid ""
|
||||
"UmbraEdit uses Enchant_ as the spell checking tool. Depending on your "
|
||||
"operating system, it may or may not load all installed spell check "
|
||||
"dictionaries automatically."
|
||||
msgstr ""
|
||||
"UmbraEdit utilise Enchant_ comme outil de vérification orthographique. "
|
||||
"Selon votre système d'exploitation, il peut ou non charger automatiquement "
|
||||
"tous les dictionnaires de vérification orthographique installés."
|
||||
|
||||
#: ../../source/more/customise.rst:24
|
||||
msgid "Linux and MacOS"
|
||||
msgstr "Linux et MacOS"
|
||||
|
||||
#: ../../source/more/customise.rst:26
|
||||
msgid ""
|
||||
"On Linux and MacOS, you generally only have to install hunspell, aspell or "
|
||||
"myspell dictionaries on your system like you do for other applications. "
|
||||
"See your distro or OS documentation for how to do this. These dictionaries "
|
||||
"should show up as available spell check languages in UmbraEdit."
|
||||
msgstr ""
|
||||
"Sous Linux et MacOS, il vous suffit généralement d'installer les "
|
||||
"dictionnaires hunspell, aspell ou myspell sur votre système, comme vous le "
|
||||
"faites pour d'autres applications. Consultez la documentation de votre "
|
||||
"distro ou de votre système d'exploitation pour savoir comment procéder. "
|
||||
"Ces dictionnaires devraient apparaître comme des langues de vérification "
|
||||
"orthographique disponibles dans UmbraEdit."
|
||||
|
||||
#: ../../source/more/customise.rst:32
|
||||
msgid "Windows"
|
||||
msgstr "Windows"
|
||||
|
||||
#: ../../source/more/customise.rst:34
|
||||
msgid ""
|
||||
"For Windows, English is included with the installation. For other "
|
||||
"languages you have to download and add dictionaries yourself."
|
||||
msgstr ""
|
||||
"Pour Windows, l'anglais est inclus dans l'installation. Pour les autres "
|
||||
"langues, vous devez télécharger et ajouter les dictionnaires vous-même."
|
||||
|
||||
#: ../../source/more/customise.rst:37
|
||||
msgid "**Install Tool**"
|
||||
msgstr "**Outil d'installation**"
|
||||
|
||||
#: ../../source/more/customise.rst:39
|
||||
msgid ""
|
||||
"A small tool to assist with this can be found under **Tools > Add "
|
||||
"Dictionaries**. It will import spell checking dictionaries from Free "
|
||||
"Office or Libre Office extensions. The dictionaries are then installed in "
|
||||
"the install location for the Enchant library and should thus work for any "
|
||||
"application that uses Enchant for spell checking."
|
||||
msgstr ""
|
||||
"Un petit outil pour vous aider se trouve sous **Outils > Ajouter des "
|
||||
"dictionnaires**. Il importera des dictionnaires de vérification "
|
||||
"orthographique à partir des extensions Free Office ou Libre Office. Les "
|
||||
"dictionnaires sont alors installés dans l'emplacement d'installation de la "
|
||||
"bibliothèque Enchant et devraient donc fonctionner pour toute application "
|
||||
"qui utilise Enchant pour la vérification orthographique."
|
||||
|
||||
#: ../../source/more/customise.rst:44
|
||||
msgid "**Manual Install**"
|
||||
msgstr "**Installation manuelle**"
|
||||
|
||||
#: ../../source/more/customise.rst:46
|
||||
msgid ""
|
||||
"If you prefer to do this manually or want to use a different source than "
|
||||
"the ones mentioned above, You need to get compatible dictionary files for "
|
||||
"your language. You need two files files ending with ``.aff`` and ``.dic``. "
|
||||
"These files must then be copied to the following location:"
|
||||
msgstr ""
|
||||
"Si vous préférez le faire manuellement ou si vous voulez utiliser une "
|
||||
"source différente de celles mentionnées ci-dessus, vous devez obtenir des "
|
||||
"fichiers de dictionnaires compatibles avec votre langue. Vous avez besoin "
|
||||
"de deux fichiers se terminant par ``.aff`` et ``.dic``. Ces fichiers "
|
||||
"doivent ensuite être copiés à l'emplacement suivant :"
|
||||
|
||||
#: ../../source/more/customise.rst:50
|
||||
msgid "``C:\\Users\\<USER>\\AppData\\Local\\enchant\\hunspell``"
|
||||
msgstr "``C:\\Users\\<USER>\\AppData\\Local\\enchant\\hunspell``"
|
||||
|
||||
#: ../../source/more/customise.rst:52
|
||||
msgid ""
|
||||
"This assumes your user profile is stored at ``C:\\Users\\<USER>``. The "
|
||||
"last one or two folders may not exist, so you may need to create them."
|
||||
msgstr ""
|
||||
"Cela suppose que votre profil d'utilisateur est stocké dans ``C:"
|
||||
"\\Users\\<USER>``. Le dernier ou les deux derniers dossiers peuvent ne pas "
|
||||
"exister, vous devrez donc les créer."
|
||||
|
||||
#: ../../source/more/customise.rst:55
|
||||
msgid "You can find the various dictionaries on the `Free Desktop`_ website."
|
||||
msgstr ""
|
||||
"Vous pouvez trouver les différents dictionnaires sur le site web `Free "
|
||||
"Desktop`_."
|
||||
|
||||
#: ../../source/more/customise.rst:58
|
||||
msgid ""
|
||||
"The Free Desktop link points to a repository, and what may look like file "
|
||||
"links inside the dictionary folder are actually links to web pages. If you "
|
||||
"right-click and download those, you get HTML files, not dictionaries!"
|
||||
msgstr ""
|
||||
"Le lien Free Desktop pointe vers un référentiel, et ce qui peut ressembler "
|
||||
"à des liens de fichiers à l'intérieur du dossier du dictionnaire sont en "
|
||||
"fait des liens vers des pages web. Si vous cliquez avec le bouton droit de "
|
||||
"la souris et que vous les téléchargez, vous obtiendrez des fichiers HTML, "
|
||||
"pas des dictionnaires !"
|
||||
|
||||
#: ../../source/more/customise.rst:62
|
||||
msgid ""
|
||||
"In order to download the actual dictionary files, right-click the "
|
||||
"\"plain\" label at the end of each line and download that."
|
||||
msgstr ""
|
||||
"Pour télécharger les fichiers du dictionnaire, cliquez avec le bouton "
|
||||
"droit de la souris sur l'étiquette « plain » à la fin de chaque ligne et "
|
||||
"téléchargez-la."
|
||||
|
||||
#: ../../source/more/customise.rst:69
|
||||
msgid "Syntax and GUI Themes"
|
||||
msgstr "Syntaxe et thèmes de l'interface graphique"
|
||||
|
||||
#: ../../source/more/customise.rst:71
|
||||
msgid ""
|
||||
"Adding your own GUI and syntax themes is relatively easy, although it "
|
||||
"requires that you manually edit config files with colour values. The "
|
||||
"themes are defined by simple plain text config files with meta data and "
|
||||
"colour settings."
|
||||
msgstr ""
|
||||
"L'ajout de vos propres thèmes d'interface graphique et de syntaxe est "
|
||||
"relativement facile, bien qu'il soit nécessaire d'éditer manuellement les "
|
||||
"fichiers de configuration avec les valeurs de couleur. Les thèmes sont "
|
||||
"définis par de simples fichiers de configuration en texte brut contenant "
|
||||
"des métadonnées et des paramètres de couleur."
|
||||
|
||||
#: ../../source/more/customise.rst:75
|
||||
msgid ""
|
||||
"In order to make your own versions, first copy one of the existing files "
|
||||
"to your local computer and modify it as you like."
|
||||
msgstr ""
|
||||
"Pour créer vos propres versions, copiez d'abord l'un des fichiers "
|
||||
"existants sur votre ordinateur local et modifiez-le à votre guise."
|
||||
|
||||
#: ../../source/more/customise.rst:78
|
||||
msgid ""
|
||||
"The existing syntax themes are stored in `umbraedit/assets/syntax "
|
||||
"<https://github.com/saga-soft/UmbraEdit/tree/main/umbraedit/assets/"
|
||||
"syntax>`_."
|
||||
msgstr ""
|
||||
"Les thèmes syntaxiques existants sont stockés dans `umbraedit/assets/"
|
||||
"syntax <https://github.com/saga-soft/UmbraEdit/tree/main/umbraedit/assets/"
|
||||
"syntax>`_."
|
||||
|
||||
#: ../../source/more/customise.rst:80
|
||||
msgid ""
|
||||
"The existing GUI themes are stored in `umbraedit/assets/themes <https://"
|
||||
"github.com/saga-soft/UmbraEdit/tree/main/umbraedit/assets/themes>`_."
|
||||
msgstr ""
|
||||
"Les thèmes GUI existants sont stockés dans `umbraedit/assets/themes "
|
||||
"<https://github.com/saga-soft/UmbraEdit/tree/main/umbraedit/assets/"
|
||||
"themes>`_."
|
||||
|
||||
#: ../../source/more/customise.rst:82
|
||||
msgid ""
|
||||
"The existing icon themes are stored in `umbraedit/assets/icons <https://"
|
||||
"github.com/saga-soft/UmbraEdit/tree/main/umbraedit/assets/icons>`_."
|
||||
msgstr ""
|
||||
"Les thèmes d'icônes existants sont stockés dans `umbraedit/assets/icons "
|
||||
"<https://github.com/saga-soft/UmbraEdit/tree/main/umbraedit/assets/icons>`_."
|
||||
|
||||
#: ../../source/more/customise.rst:85
|
||||
msgid ""
|
||||
"Remember to also change the name of your theme by modifying the ``name`` "
|
||||
"setting at the top of the file, otherwise you may not be able to "
|
||||
"distinguish them in **Preferences**."
|
||||
msgstr ""
|
||||
"N'oubliez pas de changer également le nom de votre thème en modifiant le "
|
||||
"paramètre ``name`` en haut du fichier, sinon vous ne pourrez pas les "
|
||||
"distinguer dans les **Préférences**."
|
||||
|
||||
#: ../../source/more/customise.rst:88
|
||||
msgid ""
|
||||
"For UmbraEdit to be able to locate the custom theme files, you must copy "
|
||||
"them to the :ref:`docs_technical_locations_data` location in your home or "
|
||||
"user area. There should be a folder there named ``syntax`` for syntax "
|
||||
"themes, just ``themes`` for GUI themes, and ``icons`` for icon themes. "
|
||||
"These folders are created the first time you start UmbraEdit."
|
||||
msgstr ""
|
||||
"Pour que UmbraEdit puisse localiser les fichiers de thèmes "
|
||||
"personnalisés, vous devez les copier dans l'emplacement :ref:"
|
||||
"`docs_technical_locations_data` dans votre espace personnel ou "
|
||||
"utilisateur. Il devrait y avoir un dossier nommé ``syntax`` pour les "
|
||||
"thèmes de syntaxe, juste ``themes`` pour les thèmes GUI, et ``icons`` pour "
|
||||
"les thèmes d'icônes. Ces dossiers sont créés la première fois que vous "
|
||||
"démarrez UmbraEdit.\n"
|
||||
"\n"
|
||||
"Traduit avec DeepL.com (version gratuite)"
|
||||
|
||||
#: ../../source/more/customise.rst:93
|
||||
msgid ""
|
||||
"Once the files are copied there, they should show up in **Preferences** "
|
||||
"with the label you set as ``name`` inside the file."
|
||||
msgstr ""
|
||||
"Une fois les fichiers copiés, ils devraient apparaître dans les "
|
||||
"**Préférences** avec le nom que vous avez défini dans le fichier."
|
||||
|
||||
#: ../../source/more/customise.rst:98
|
||||
msgid ""
|
||||
"The theme file formats change regularly in new releases. It is up to you "
|
||||
"to keep custom theme files up to date."
|
||||
msgstr ""
|
||||
"Les formats des fichiers de thème changent régulièrement dans les "
|
||||
"nouvelles versions. C'est à vous qu'il incombe de mettre à jour les "
|
||||
"fichiers des thèmes personnalisés."
|
||||
|
||||
#: ../../source/more/customise.rst:103
|
||||
msgid "Custom GUI and Icons Theme"
|
||||
msgstr "Thème d'interface graphique et d'icônes personnalisé"
|
||||
|
||||
#: ../../source/more/customise.rst:105
|
||||
msgid "A GUI theme ``.conf`` file consists of the following settings:"
|
||||
msgstr ""
|
||||
"Le fichier ``.conf`` d'un thème GUI est constitué des paramètres suivants :"
|
||||
|
||||
#: ../../source/more/customise.rst:159
|
||||
msgid "In the Main section you must at least define the ``name`` settings."
|
||||
msgstr ""
|
||||
"Dans la section Main, vous devez au moins définir les paramètres ``name``."
|
||||
|
||||
#: ../../source/more/customise.rst:161
|
||||
msgid ""
|
||||
"The Palette values correspond to the Qt enum values for ``QPalette::"
|
||||
"ColorRole``, see the `Qt documentation <https://doc.qt.io/qt-6/qpalette."
|
||||
"html#ColorRole-enum>`_ for more details. The colour values are RGB numbers "
|
||||
"on the format ``r, g, b`` where each is an integer from ``0`` to ``255``. "
|
||||
"Omitted values are not loaded and will use default values. If the "
|
||||
"``helptext`` colour is not defined, it is computed as a colour between the "
|
||||
"``window`` and ``windowtext`` colour. Additional shades of some of the "
|
||||
"colours are also computed. These are mainly used for 3D effects."
|
||||
msgstr ""
|
||||
"Les valeurs de la palette correspondent aux valeurs de l'enum Qt pour "
|
||||
"``QPalette::ColorRole``, voir la documentation Qt <https://doc.qt.io/qt-6/"
|
||||
"qpalette.html#ColorRole-enum>`_ pour plus de détails. Les valeurs de "
|
||||
"couleur sont des nombres RVB au format ``r, g, b`` où chacun est un entier "
|
||||
"de ``0`` à ``255``. Les valeurs omises ne sont pas chargées et utilisent "
|
||||
"les valeurs par défaut. Si la couleur ``helptext`` n'est pas définie, elle "
|
||||
"est calculée comme une couleur comprise entre les couleurs ``window`` et "
|
||||
"``windowtext``. Des nuances supplémentaires de certaines couleurs sont "
|
||||
"également calculées. Elles sont principalement utilisées pour les effets "
|
||||
"3D."
|
||||
|
||||
#: ../../source/more/customise.rst:168
|
||||
msgid "The ``fadedtext`` and ``errortext`` theme colour entries were added."
|
||||
msgstr ""
|
||||
"Les entrées de couleur des thèmes ``fadedtext`` et ``errortext`` ont été "
|
||||
"ajoutées."
|
||||
|
||||
#: ../../source/more/customise.rst:171
|
||||
msgid ""
|
||||
"The ``icontheme`` setting was dropped as the icon theme is now its own "
|
||||
"setting. The ``[Icons]`` and ``[Project]`` sections were added, and the "
|
||||
"``status*`` settings removed."
|
||||
msgstr ""
|
||||
"Le paramètre ``icontheme`` a été supprimé car le thème des icônes a "
|
||||
"maintenant son propre paramètre. Les sections ``[Icons]`` et ``[Project]`` "
|
||||
"ont été ajoutées, et le paramètre ``status*`` a été supprimé."
|
||||
|
||||
#: ../../source/more/customise.rst:177
|
||||
msgid "Custom Syntax Theme"
|
||||
msgstr "Syntaxe des thèmes personnalisés"
|
||||
|
||||
#: ../../source/more/customise.rst:179
|
||||
msgid "A syntax theme ``.conf`` file consists of the following settings:"
|
||||
msgstr ""
|
||||
"Un fichier ``.conf`` de thème est constitué des paramètres suivants :"
|
||||
|
||||
#: ../../source/more/customise.rst:213
|
||||
msgid ""
|
||||
"In the Main section, you must define at least the ``name`` setting. The "
|
||||
"Syntax colour values are RGB(A) numbers of the format ``r, g, b, a`` where "
|
||||
"each is an integer from ``0`` to ``255``. The fourth value is the alpha "
|
||||
"channel, which can be omitted."
|
||||
msgstr ""
|
||||
"Dans la section Main, vous devez définir au moins le paramètre ``name``. "
|
||||
"Les valeurs de couleur de la syntaxe sont des nombres RVB(A) du format "
|
||||
"``r, g, b, a`` où chacun est un entier de ``0`` à ``255``. La quatrième "
|
||||
"valeur est le canal alpha, qui peut être omis."
|
||||
|
||||
#: ../../source/more/customise.rst:217
|
||||
msgid ""
|
||||
"Omitted syntax colours default to black, except ``background`` which "
|
||||
"defaults to white, and ``texthighlight`` which defaults to white with half "
|
||||
"transparency."
|
||||
msgstr ""
|
||||
"Les couleurs omises dans la syntaxe prennent par défaut la couleur noire, "
|
||||
"à l'exception de ``background`` qui prend par défaut la couleur blanche, "
|
||||
"et de ``texthighlight`` qui prend par défaut la couleur blanche avec une "
|
||||
"demi-transparence."
|
||||
|
||||
#: ../../source/more/customise.rst:220
|
||||
msgid "The ``shortcode`` syntax colour entry was added."
|
||||
msgstr "Le paramètre de couleur ``shortcode`` a été ajouté."
|
||||
|
||||
#: ../../source/more/customise.rst:223
|
||||
msgid "The ``optional`` syntax colour entry was added."
|
||||
msgstr "Le paramètre de couleur ``optional`` a été ajouté."
|
||||
|
||||
#: ../../source/more/customise.rst:226
|
||||
msgid "The ``texthighlight`` syntax colour entry was added."
|
||||
msgstr "Le paramètre de couleur ``texthighlight`` a été ajouté."
|
||||
|
||||
#: ../../source/more/customise.rst:229
|
||||
msgid ""
|
||||
"The ``dialog``, ``altdialog``, ``note`` and ``tag`` syntax colour entries "
|
||||
"were added. ``straightquotes``, ``doublequotes`` and ``singlequotes`` were "
|
||||
"removed."
|
||||
msgstr ""
|
||||
"Les paramètres de couleur ``dialog``, ``altdialog``, ``note`` et ``tag`` "
|
||||
"ont été ajoutés. Les paramètres ``guillemets droits``, ``guillemets "
|
||||
"doubles`` et ``guillemets simples`` ont été supprimés."
|
||||
159
docs/source/locales/fr/LC_MESSAGES/more/handling_errors.po
Normal file
@@ -0,0 +1,159 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-29 11:11+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/more/handling_errors.rst:5
|
||||
msgid "Handling Errors"
|
||||
msgstr "Traitement des erreurs"
|
||||
|
||||
#: ../../source/more/handling_errors.rst:7
|
||||
msgid ""
|
||||
"In case something goes wrong, UmbraEdit has a few built-in features to "
|
||||
"reduce the chance your work is lost. In case of a crash, it will also "
|
||||
"try to save whatever changes you have made before exiting, if this is at "
|
||||
"all possible."
|
||||
msgstr ""
|
||||
"En cas de problème, UmbraEdit dispose de quelques fonctions intégrées "
|
||||
"pour réduire le risque de perte de votre travail. En cas de panne, il "
|
||||
"essaiera également d'enregistrer les modifications que vous avez "
|
||||
"apportées avant de quitter, si cela est possible."
|
||||
|
||||
#: ../../source/more/handling_errors.rst:11
|
||||
msgid ""
|
||||
"The storage solution is designed to save each text document "
|
||||
"independently, so only the document you're working on is actually at a "
|
||||
"risk of losing data in the event of a crash."
|
||||
msgstr ""
|
||||
"La solution de stockage est conçue pour sauvegarder chaque document "
|
||||
"texte indépendamment, de sorte que seul le document sur lequel vous "
|
||||
"travaillez risque de perdre des données en cas de panne."
|
||||
|
||||
#: ../../source/more/handling_errors.rst:18
|
||||
msgid "Recovered Documents"
|
||||
msgstr "Documents récupérés"
|
||||
|
||||
#: ../../source/more/handling_errors.rst:20
|
||||
msgid ""
|
||||
"If UmbraEdit crashes or otherwise exits without saving the project "
|
||||
"state, or if you're using a file synchronisation tool that runs out of "
|
||||
"sync, there may be files in the project storage folder that aren't "
|
||||
"tracked in the core project file. These files, when discovered, are "
|
||||
"recovered and added back into the project when a project is opened."
|
||||
msgstr ""
|
||||
"Si UmbraEdit se plante ou se termine sans sauvegarder l'état du "
|
||||
"projet, ou si vous utilisez un outil de synchronisation de fichiers qui "
|
||||
"se désynchronise, il peut y avoir des fichiers dans le dossier de "
|
||||
"stockage du projet qui ne sont pas suivis dans le fichier de base du "
|
||||
"projet. Ces fichiers, lorsqu'ils sont découverts, sont récupérés et "
|
||||
"ajoutés au projet lorsqu'un projet est ouvert."
|
||||
|
||||
#: ../../source/more/handling_errors.rst:25
|
||||
msgid ""
|
||||
"The discovered files are scanned for metadata that give clues as to "
|
||||
"where the document may previously have been located in the project. The "
|
||||
"project loading routine will try to put them back as close as possible "
|
||||
"to this location, if it still exists. Generally, it will be appended to "
|
||||
"the end of the folder where it previously was located. If that folder "
|
||||
"doesn't exist, it will try to add it to the correct root folder type. If "
|
||||
"it cannot figure out which root folder is correct, the document will be "
|
||||
"added to the **Novel** root folder. Finally, if a **Novel** does not "
|
||||
"exist, one will be created."
|
||||
msgstr ""
|
||||
"Les fichiers découverts sont analysés à la recherche de métadonnées qui "
|
||||
"donnent des indices sur l'emplacement antérieur du document dans le "
|
||||
"projet. La routine de chargement du projet essaiera de les replacer "
|
||||
"aussi près que possible de cet emplacement, s'il existe toujours. En "
|
||||
"général, le document sera ajouté à la fin du dossier où il se trouvait "
|
||||
"auparavant. Si ce dossier n'existe pas, il essaiera de l'ajouter au type "
|
||||
"de dossier racine correct. S'il ne parvient pas à déterminer quel est le "
|
||||
"bon dossier racine, le document sera ajouté au dossier racine "
|
||||
"**Nouveau**. Enfin, si un **Nouveau** n'existe pas, il en sera créé un."
|
||||
|
||||
#: ../../source/more/handling_errors.rst:33
|
||||
msgid ""
|
||||
"If the title of the document can be recovered, the word \"Recovered:\" "
|
||||
"will be added as a prefix to indicate that it may need further "
|
||||
"attention. If the title cannot be determined, the document will be named "
|
||||
"after its internal key, which is a string of characters and numbers."
|
||||
msgstr ""
|
||||
"Si le titre du document peut être récupéré, le mot « Récupéré : » sera "
|
||||
"ajouté comme préfixe pour indiquer qu'il peut nécessiter une attention "
|
||||
"supplémentaire. Si le titre ne peut être déterminé, le document sera "
|
||||
"nommé d'après sa clé interne, qui est une chaîne de caractères et de "
|
||||
"chiffres."
|
||||
|
||||
#: ../../source/more/handling_errors.rst:41
|
||||
msgid "Project Lockfile"
|
||||
msgstr "Fichier de verrouillage du projet"
|
||||
|
||||
#: ../../source/more/handling_errors.rst:43
|
||||
msgid ""
|
||||
"To prevent data loss caused by file conflicts when UmbraEdit projects "
|
||||
"are synchronised via file synchronisation tools, a project lockfile is "
|
||||
"written to the project storage folder when a project is open. If you try "
|
||||
"to open a project that already has such a file present, you will be "
|
||||
"presented with a warning, and some information about where else "
|
||||
"UmbraEdit thinks the project is also open. You will be given the "
|
||||
"option to ignore this warning, and continue opening the project at your "
|
||||
"own risk."
|
||||
msgstr ""
|
||||
"Pour éviter la perte de données causée par des conflits de fichiers "
|
||||
"lorsque les projets UmbraEdit sont synchronisés via des outils de "
|
||||
"synchronisation de fichiers, un fichier de verrouillage de projet est "
|
||||
"écrit dans le dossier de stockage du projet lorsqu'un projet est ouvert. "
|
||||
"Si vous essayez d'ouvrir un projet dans lequel un tel fichier est déjà "
|
||||
"présent, vous recevrez un avertissement et des informations sur "
|
||||
"l'endroit où UmbraEdit pense que le projet est également ouvert. Vous "
|
||||
"aurez la possibilité d'ignorer cet avertissement et de continuer à "
|
||||
"ouvrir le projet à vos risques et périls."
|
||||
|
||||
#: ../../source/more/handling_errors.rst:52
|
||||
msgid ""
|
||||
"If, for some reason, UmbraEdit or your computer crashes, the lock file "
|
||||
"may remain even if there are no other instances keeping the project "
|
||||
"open. In such a case it is safe to ignore the lock file warning when re-"
|
||||
"opening the project."
|
||||
msgstr ""
|
||||
"Si, pour une raison quelconque, UmbraEdit ou votre ordinateur tombe en "
|
||||
"panne, le fichier de verrouillage peut subsister même si aucune autre "
|
||||
"instance ne maintient le projet ouvert. Dans ce cas, il est prudent "
|
||||
"d'ignorer l'avertissement relatif au fichier de verrouillage lors de la "
|
||||
"réouverture du projet."
|
||||
|
||||
#: ../../source/more/handling_errors.rst:58
|
||||
msgid ""
|
||||
"If you choose to ignore the warning and continue opening the project, "
|
||||
"and multiple instances of the project are in fact open, you are likely "
|
||||
"to cause inconsistencies and create diverging project files, potentially "
|
||||
"resulting in loss of data and orphaned files. You are not likely to lose "
|
||||
"any actual text unless both instances have the same document open in the "
|
||||
"editor, and UmbraEdit will try to resolve project inconsistencies the "
|
||||
"next time you open the project."
|
||||
msgstr ""
|
||||
"Si vous choisissez d'ignorer l'avertissement et de continuer à ouvrir le "
|
||||
"projet, et que plusieurs instances du projet sont en fait ouvertes, vous "
|
||||
"risquez de provoquer des incohérences et de créer des fichiers de projet "
|
||||
"divergents, ce qui peut entraîner une perte de données et des fichiers "
|
||||
"orphelins. Il est peu probable que vous perdiez du texte à moins que les "
|
||||
"deux instances aient le même document ouvert dans l'éditeur, et "
|
||||
"UmbraEdit essaiera de résoudre les incohérences du projet la prochaine "
|
||||
"fois que vous l'ouvrirez."
|
||||
298
docs/source/locales/fr/LC_MESSAGES/more/project_format.po
Normal file
@@ -0,0 +1,298 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-29 11:21+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/more/project_format.rst:5
|
||||
msgid "Project Format Changes"
|
||||
msgstr "Modifications du format des projets"
|
||||
|
||||
#: ../../source/more/project_format.rst:7
|
||||
msgid ""
|
||||
"Most of the changes to the file formats over the history of UmbraEdit "
|
||||
"have no impact on the user side of things. The project files are "
|
||||
"generally updated automatically. However, some of the changes require "
|
||||
"minor actions from the user."
|
||||
msgstr ""
|
||||
"La plupart des modifications apportées aux formats de fichiers au cours "
|
||||
"de l'histoire de UmbraEdit n'ont pas d'impact sur l'utilisateur. Les "
|
||||
"fichiers de projet sont généralement mis à jour automatiquement. "
|
||||
"Cependant, certains changements nécessitent des actions mineures de la "
|
||||
"part de l'utilisateur."
|
||||
|
||||
#: ../../source/more/project_format.rst:11
|
||||
msgid ""
|
||||
"The key changes in the formats are listed in this chapter, as well as "
|
||||
"the user actions required, where applicable."
|
||||
msgstr ""
|
||||
"Les principales modifications apportées aux formats sont énumérées dans "
|
||||
"ce chapitre, ainsi que les actions requises de la part de l'utilisateur, "
|
||||
"le cas échéant."
|
||||
|
||||
#: ../../source/more/project_format.rst:14
|
||||
msgid ""
|
||||
"A full project file format specification is available under \"More "
|
||||
"Documents\"."
|
||||
msgstr ""
|
||||
"Une spécification complète du format de fichier du projet est disponible "
|
||||
"sous « Plus d'informations »."
|
||||
|
||||
#: ../../source/more/project_format.rst:18
|
||||
msgid ""
|
||||
"When you update a project from one format version to the next, the "
|
||||
"project can no longer be opened by a version of UmbraEdit prior to the "
|
||||
"version where the new file format was introduced. You will get a "
|
||||
"notification about any updates to your project file format and will have "
|
||||
"the option to decline the upgrade."
|
||||
msgstr ""
|
||||
"Lorsque vous mettez à jour un projet d'une version de format à la "
|
||||
"suivante, le projet ne peut plus être ouvert par une version de "
|
||||
"UmbraEdit antérieure à la version où le nouveau format de fichier a "
|
||||
"été introduit. Vous recevrez une notification concernant toute mise à "
|
||||
"jour du format de fichier de votre projet et vous aurez la possibilité "
|
||||
"de refuser la mise à jour."
|
||||
|
||||
#: ../../source/more/project_format.rst:27
|
||||
msgid "Format 1.5 Changes"
|
||||
msgstr "Format 1.5 Modifications"
|
||||
|
||||
#: ../../source/more/project_format.rst:29
|
||||
msgid "This project format was introduced in UmbraEdit version 2.0 RC 2."
|
||||
msgstr ""
|
||||
"Ce format de projet a été introduit dans la version 2.0 RC 2 de "
|
||||
"UmbraEdit."
|
||||
|
||||
#: ../../source/more/project_format.rst:31
|
||||
msgid ""
|
||||
"This is a modification of the 1.4 format. It makes the XML more "
|
||||
"consistent in that meta data have been moved to their respective section "
|
||||
"nodes as attributes, and key/value settings now have a consistent "
|
||||
"format. Logical flags are saved as yes/no instead of Python True/False, "
|
||||
"and the main heading of the document is now saved to the item rather "
|
||||
"than in the index. The conversion is done automatically the first time a "
|
||||
"project is loaded. No user action is required."
|
||||
msgstr ""
|
||||
"Il s'agit d'une modification du format 1.4. Il rend le XML plus cohérent "
|
||||
"en ce sens que les métadonnées ont été déplacées vers leurs nœuds de "
|
||||
"section respectifs en tant qu'attributs, et que les paramètres clé/"
|
||||
"valeur ont désormais un format cohérent. Les indicateurs logiques sont "
|
||||
"sauvegardés sous forme de oui/non au lieu de True/False de Python, et le "
|
||||
"titre principal du document est désormais sauvegardé dans l'article "
|
||||
"plutôt que dans l'index. La conversion est effectuée automatiquement "
|
||||
"lors du premier chargement d'un projet. Aucune action de l'utilisateur "
|
||||
"n'est nécessaire."
|
||||
|
||||
#: ../../source/more/project_format.rst:41
|
||||
msgid "Format 1.4 Changes"
|
||||
msgstr "Format 1.4 Modifications"
|
||||
|
||||
#: ../../source/more/project_format.rst:43
|
||||
msgid ""
|
||||
"This project format was introduced in UmbraEdit version 2.0 RC 1. "
|
||||
"Since this was a release candidate, it is unlikely that your project "
|
||||
"uses it, but it may be the case if you've installed a pre-release."
|
||||
msgstr ""
|
||||
"Ce format de projet a été introduit dans la version 2.0 RC 1 de "
|
||||
"UmbraEdit. Comme il s'agissait d'une version candidate, il est peu "
|
||||
"probable que votre projet l'utilise, mais c'est peut-être le cas si vous "
|
||||
"avez installé une préversion."
|
||||
|
||||
#: ../../source/more/project_format.rst:47
|
||||
msgid ""
|
||||
"This format changes the way project items (folders, documents and notes) "
|
||||
"are stored. It is a more compact format that is simpler and faster to "
|
||||
"parse, and easier to extend. The conversion is done automatically the "
|
||||
"first time a project is loaded. No user action is required."
|
||||
msgstr ""
|
||||
"Ce format modifie la manière dont les éléments du projet (dossiers, "
|
||||
"documents et notes) sont stockés. Il s'agit d'un format plus compact, "
|
||||
"plus simple et plus rapide à analyser, et plus facile à étendre. La "
|
||||
"conversion se fait automatiquement lors du premier chargement d'un "
|
||||
"projet. Aucune action de l'utilisateur n'est nécessaire."
|
||||
|
||||
#: ../../source/more/project_format.rst:55
|
||||
msgid "Format 1.3 Changes"
|
||||
msgstr "Format 1.3 Modifications"
|
||||
|
||||
#: ../../source/more/project_format.rst:57
|
||||
msgid "This project format was introduced in UmbraEdit version 1.5."
|
||||
msgstr ""
|
||||
"Ce format de projet a été introduit dans la version 1.5 de UmbraEdit."
|
||||
|
||||
#: ../../source/more/project_format.rst:59
|
||||
msgid ""
|
||||
"With this format, the number of document layouts was reduced from eight "
|
||||
"to two. The conversion of document layouts is performed automatically "
|
||||
"when the project is opened."
|
||||
msgstr ""
|
||||
"Avec ce format, le nombre de présentations de documents a été réduit de "
|
||||
"huit à deux. La conversion des présentations de documents s'effectue "
|
||||
"automatiquement lors de l'ouverture du projet."
|
||||
|
||||
#: ../../source/more/project_format.rst:62
|
||||
msgid ""
|
||||
"Due to the reduction of layouts, some features that were previously "
|
||||
"controlled by these layouts will be lost. These features are instead now "
|
||||
"controlled by syntax codes, so to recover these features, some minor "
|
||||
"modification must be made to select documents by the user."
|
||||
msgstr ""
|
||||
"En raison de la réduction des présentations, certaines caractéristiques "
|
||||
"qui étaient auparavant contrôlées par ces présentations seront perdues. "
|
||||
"Ces fonctionnalités sont désormais contrôlées par des codes syntaxiques. "
|
||||
"Pour les récupérer, l'utilisateur doit donc apporter quelques "
|
||||
"modifications mineures aux documents sélectionnés."
|
||||
|
||||
#: ../../source/more/project_format.rst:66
|
||||
msgid ""
|
||||
"The manual changes the user must make should be very few as they apply "
|
||||
"to document layouts that should be used only a few places in any given "
|
||||
"project. These are as follows:"
|
||||
msgstr ""
|
||||
"Les modifications manuelles que l'utilisateur doit apporter sont très "
|
||||
"peu nombreuses car elles s'appliquent à des mises en page de documents "
|
||||
"qui ne doivent être utilisées qu'à quelques endroits dans un projet "
|
||||
"donné. Ces modifications sont les suivantes :"
|
||||
|
||||
#: ../../source/more/project_format.rst:69
|
||||
msgid "**Title Pages**"
|
||||
msgstr "**Pages de titres**"
|
||||
|
||||
#: ../../source/more/project_format.rst:71
|
||||
msgid ""
|
||||
"The formatting of the level one title on the title page must be changed "
|
||||
"from ``# Title Text`` to ``#! Title Text`` in order to retain the "
|
||||
"previous functionality. See :ref:`docs_usage_headings_levels`."
|
||||
msgstr ""
|
||||
"Le formatage du titre de niveau 1 sur la page de titre doit être modifié "
|
||||
"de ``# Title Text`` à ``# ! Title Text`` afin de conserver la "
|
||||
"fonctionnalité précédente. Voir :ref:`docs_usage_headings_levels`."
|
||||
|
||||
#: ../../source/more/project_format.rst:74
|
||||
msgid ""
|
||||
"Any text that was previously centred on the page must be manually "
|
||||
"centred using the text alignment feature. See :ref:"
|
||||
"`docs_usage_align_indent`."
|
||||
msgstr ""
|
||||
"Tout texte qui était précédemment centré sur la page doit être centré "
|
||||
"manuellement en utilisant la fonction d'alignement du texte. Voir :ref:"
|
||||
"`docs_usage_align_indent`."
|
||||
|
||||
#: ../../source/more/project_format.rst:77
|
||||
msgid "**Unnumbered Chapters**"
|
||||
msgstr "**Chapitres non numérotés**"
|
||||
|
||||
#: ../../source/more/project_format.rst:79
|
||||
msgid ""
|
||||
"Since the specific layout for unnumbered chapters has been dropped, such "
|
||||
"chapters must all use the ``##! Chapter Name`` formatting code instead "
|
||||
"of ``## Chapter Name``. This also includes chapters marked by an "
|
||||
"asterisk: ``## *Chapter Name``, as this feature has also been dropped. "
|
||||
"See :ref:`docs_usage_headings_levels`."
|
||||
msgstr ""
|
||||
"La mise en page spécifique pour les chapitres non numérotés ayant été "
|
||||
"abandonnée, ces chapitres doivent tous utiliser le code de formatage "
|
||||
"``# ! Nom du chapitre`` au lieu de `## Nom du chapitre``. Cela inclut "
|
||||
"également les chapitres marqués d'un astérisque : `## *Nom de "
|
||||
"chapitre``, car cette fonctionnalité a également été abandonnée. Voir :"
|
||||
"ref:`docs_usage_headings_levels`."
|
||||
|
||||
#: ../../source/more/project_format.rst:84
|
||||
msgid "**Plain Pages**"
|
||||
msgstr "**Pages vierges**"
|
||||
|
||||
#: ../../source/more/project_format.rst:86
|
||||
msgid ""
|
||||
"The layout named \"Plain Page\" has also been removed. The only feature "
|
||||
"of this layout was that it ensured that the content always started on a "
|
||||
"fresh page. In the new format, fresh pages can be set anywhere in the "
|
||||
"text with the ``[new page]`` code. See :ref:"
|
||||
"`docs_usage_formatting_breaks`."
|
||||
msgstr ""
|
||||
"La mise en page appelée « page simple » a également été supprimée. La "
|
||||
"seule caractéristique de cette mise en page était qu'elle garantissait "
|
||||
"que le contenu commençait toujours sur une nouvelle page. Dans le "
|
||||
"nouveau format, les nouvelles pages peuvent être placées n'importe où "
|
||||
"dans le texte avec le code ``[new page]``. Voir :ref:"
|
||||
"`docs_usage_formatting_breaks`."
|
||||
|
||||
#: ../../source/more/project_format.rst:94
|
||||
msgid "Format 1.2 Changes"
|
||||
msgstr "Format 1.2 Modifications"
|
||||
|
||||
#: ../../source/more/project_format.rst:96
|
||||
msgid "This project format was introduced in UmbraEdit version 0.10."
|
||||
msgstr ""
|
||||
"Ce format de projet a été introduit dans la version 0.10 de UmbraEdit."
|
||||
|
||||
#: ../../source/more/project_format.rst:98
|
||||
msgid ""
|
||||
"With this format, the way auto-replace entries were stored in the main "
|
||||
"project XML file changed. Conversion from this format is done "
|
||||
"automatically."
|
||||
msgstr ""
|
||||
"Avec ce format, la façon dont les entrées de remplacement automatique "
|
||||
"étaient stockées dans le fichier XML du projet principal a changé. La "
|
||||
"conversion de ce format se fait automatiquement."
|
||||
|
||||
#: ../../source/more/project_format.rst:105
|
||||
msgid "Format 1.1 Changes"
|
||||
msgstr "Format 1.1 Modifications"
|
||||
|
||||
#: ../../source/more/project_format.rst:107
|
||||
msgid "This project format was introduced in UmbraEdit version 0.7."
|
||||
msgstr ""
|
||||
"Ce format de projet a été introduit dans la version 0.7 de UmbraEdit."
|
||||
|
||||
#: ../../source/more/project_format.rst:109
|
||||
msgid ""
|
||||
"With this format, the ``content`` folder was introduced in the project "
|
||||
"storage. Previously, all UmbraEdit documents were saved in a series of "
|
||||
"folders numbered from ``data_0`` to ``data_f``."
|
||||
msgstr ""
|
||||
"Avec ce format, le dossier ``content`` a été introduit dans le stockage "
|
||||
"du projet. Auparavant, tous les documents de UmbraEdit étaient "
|
||||
"sauvegardés dans une série de dossiers numérotés de ``data_0`` à "
|
||||
"``data_f``."
|
||||
|
||||
#: ../../source/more/project_format.rst:112
|
||||
msgid ""
|
||||
"It also reduces the number of meta data and cache files. These files are "
|
||||
"automatically deleted if an old project is opened. This was also when "
|
||||
"the Table of Contents file was introduced. Conversion from this format "
|
||||
"is done automatically."
|
||||
msgstr ""
|
||||
"Il réduit également le nombre de métadonnées et de fichiers de cache. "
|
||||
"Ces fichiers sont automatiquement supprimés lorsqu'un ancien projet est "
|
||||
"ouvert. C'est également à cette époque que le fichier de table des "
|
||||
"matières a été introduit. La conversion de ce format se fait "
|
||||
"automatiquement."
|
||||
|
||||
#: ../../source/more/project_format.rst:120
|
||||
msgid "Format 1.0 Changes"
|
||||
msgstr "Format 1.0 Modifications"
|
||||
|
||||
#: ../../source/more/project_format.rst:122
|
||||
msgid ""
|
||||
"This is the original file format and project structure. It was in use up "
|
||||
"to version 0.6.3."
|
||||
msgstr ""
|
||||
"Il s'agit du format de fichier et de la structure de projet d'origine. "
|
||||
"Il a été utilisé jusqu'à la version 0.6.3."
|
||||
267
docs/source/locales/fr/LC_MESSAGES/more/typography.po
Normal file
@@ -0,0 +1,267 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-28 23:17+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/more/typography.rst:5
|
||||
msgid "Typographical Notes"
|
||||
msgstr "Notes typographiques"
|
||||
|
||||
#: ../../source/more/typography.rst:12
|
||||
msgid ""
|
||||
"UmbraEdit has some support for typographical symbols that are not usually "
|
||||
"easily available in many text editors. This includes for instance the "
|
||||
"proper unicode quotation marks, dashes, ellipsis, thin spaces, etc. All "
|
||||
"these symbols are available from the **Insert** menu, and via keyboard "
|
||||
"shortcuts. See :ref:`docs_features_shortcuts_insert`."
|
||||
msgstr ""
|
||||
"UmbraEdit prend en charge certains symboles typographiques qui ne sont "
|
||||
"généralement pas disponibles dans de nombreux éditeurs de texte. Cela "
|
||||
"inclut par exemple les guillemets unicode, les tirets, les ellipses, les "
|
||||
"espaces fins, etc. Tous ces symboles sont disponibles dans le menu "
|
||||
"**Insérer**, et via des raccourcis clavier. Voir :ref:"
|
||||
"`docs_features_shortcuts_insert`."
|
||||
|
||||
#: ../../source/more/typography.rst:17
|
||||
msgid ""
|
||||
"This chapter provides some additional information on how UmbraEdit "
|
||||
"handles these symbols."
|
||||
msgstr ""
|
||||
"Ce chapitre fournit des informations supplémentaires sur la manière dont "
|
||||
"UmbraEdit gère ces symboles."
|
||||
|
||||
#: ../../source/more/typography.rst:21
|
||||
msgid "Dashes and Ellipsis"
|
||||
msgstr "Tirets et points de suspension"
|
||||
|
||||
#: ../../source/more/typography.rst:23
|
||||
msgid ""
|
||||
"With the auto-replace feature enabled (see :ref:`docs_ui_edit_view_auto`), "
|
||||
"two and three hyphens are converted automatically to short and long dashes, "
|
||||
"four hyphens to a horizontal bar, and three dots to ellipsis."
|
||||
msgstr ""
|
||||
"Lorsque la fonction de remplacement automatique est activée (voir :ref:"
|
||||
"`docs_ui_edit_view_auto`), les deux et trois traits d'union sont "
|
||||
"automatiquement convertis en tirets demi-cadratin et cadratin, les quatre "
|
||||
"traits d'union en barre horizontale et les trois points en points de "
|
||||
"suspension."
|
||||
|
||||
#: ../../source/more/typography.rst:29
|
||||
msgid ""
|
||||
"The last auto-replace can always be reverted with the undo command :kbd:"
|
||||
"`Ctrl+Z`, reverting the text to what you typed before the automatic "
|
||||
"replacement occurred."
|
||||
msgstr ""
|
||||
"Le dernier remplacement automatique peut toujours être annulé avec la "
|
||||
"commande d'annulation :kbd:`Ctrl+Z`, rétablissant le texte tel qu'il était "
|
||||
"avant le remplacement automatique."
|
||||
|
||||
#: ../../source/more/typography.rst:32
|
||||
msgid ""
|
||||
"In addition, \"Figure Dash\" is available. The Figure Dash is a dash that "
|
||||
"has the same width as the numbers of the same font, for most fonts. It "
|
||||
"helps to align numbers nicely in columns when you need to use a dash in "
|
||||
"them."
|
||||
msgstr ""
|
||||
"En outre, le « tiret chiffré » est disponible. Il s'agit d'un tiret de la "
|
||||
"même largeur que les chiffres de la même police, pour la plupart des "
|
||||
"polices. Il permet de bien aligner les chiffres dans les colonnes lorsque "
|
||||
"vous devez utiliser un tiret."
|
||||
|
||||
#: ../../source/more/typography.rst:38
|
||||
msgid "Single and Double Quotes"
|
||||
msgstr "Guillemets simples et doubles"
|
||||
|
||||
#: ../../source/more/typography.rst:40
|
||||
msgid ""
|
||||
"All the different quotation marks listed on the `Quotation Mark`_ Wikipedia "
|
||||
"page are available, and can be selected as auto-replaced symbols for "
|
||||
"straight single and double quote key strokes. The settings can be found in "
|
||||
"**Preferences**."
|
||||
msgstr ""
|
||||
"Tous les différents guillemets listés sur la page Wikipedia `Quotation "
|
||||
"Mark`_ sont disponibles, et peuvent être sélectionnés comme symboles auto-"
|
||||
"remplacés pour les touches de guillemets simples et doubles. Les réglages "
|
||||
"se trouvent dans les **Préférences**."
|
||||
|
||||
#: ../../source/more/typography.rst:44
|
||||
msgid ""
|
||||
"If your text contains straight single and double quotes, there are two "
|
||||
"convenience functions in the **Format** menu that can be used to re-format "
|
||||
"a selected section of text with the correct quote symbols."
|
||||
msgstr ""
|
||||
"Si votre texte contient des guillemets simples et doubles, deux fonctions "
|
||||
"pratiques du menu **Format** permettent de reformater une section de texte "
|
||||
"sélectionnée avec les symboles de guillemets corrects."
|
||||
|
||||
#: ../../source/more/typography.rst:48
|
||||
msgid ""
|
||||
"You can enable dialogue recognition and colour highlighting for novel "
|
||||
"documents. See :ref:`docs_features_dialogue` for more details."
|
||||
msgstr ""
|
||||
"Vous pouvez activer la reconnaissance du dialogue et la mise en évidence "
|
||||
"des couleurs pour les nouveaux documents. Voir :ref:"
|
||||
"`docs_features_dialogue` pour plus de détails."
|
||||
|
||||
#: ../../source/more/typography.rst:53
|
||||
msgid "Single and Double Prime"
|
||||
msgstr "Simple et double prime"
|
||||
|
||||
#: ../../source/more/typography.rst:55
|
||||
msgid ""
|
||||
"Both single and double prime symbols are available in the **Insert** menu. "
|
||||
"These symbols are the correct symbols to use for unit symbols for feet, "
|
||||
"inches, minutes, and seconds. The usage of these is described in more "
|
||||
"detail on the Wikipedia Prime_ page. They look very similar to single and "
|
||||
"double straight quotes, and may be rendered similarly by the font, but they "
|
||||
"have different codes. Using these correctly will also prevent the auto-"
|
||||
"replace and dialogue highlighting features misunderstanding their meaning "
|
||||
"in the text."
|
||||
msgstr ""
|
||||
"Les symboles de prime simple et double sont disponibles dans le menu "
|
||||
"**Insérer**. Ces symboles sont les symboles corrects à utiliser pour les "
|
||||
"symboles d'unités pour les pieds, les pouces, les minutes et les secondes. "
|
||||
"L'utilisation de ces symboles est décrite plus en détail sur la page Prime_ "
|
||||
"de Wikipedia. Ils ressemblent beaucoup aux guillemets simples et doubles et "
|
||||
"peuvent être rendus de la même manière par la police, mais ils ont des "
|
||||
"codes différents. En les utilisant correctement, vous éviterez que les "
|
||||
"fonctions de remplacement automatique et de mise en évidence des dialogues "
|
||||
"ne se méprennent sur leur signification dans le texte."
|
||||
|
||||
#: ../../source/more/typography.rst:66
|
||||
msgid "Modifier Letter Apostrophe"
|
||||
msgstr "Modificateur Lettre Apostrophe"
|
||||
|
||||
#: ../../source/more/typography.rst:68
|
||||
msgid ""
|
||||
"The auto-replace feature will consider any right-facing single straight "
|
||||
"quote as a quote symbol, even if it is intended as an apostrophe. This also "
|
||||
"includes the syntax highlighter, which may assume the first following "
|
||||
"apostrophe is the closing symbol of a single quoted region of text."
|
||||
msgstr ""
|
||||
"La fonction de remplacement automatique considère tout guillemet droit "
|
||||
"simple orienté vers la droite comme un symbole de guillemet, même s'il "
|
||||
"s'agit d'une apostrophe. Cela s'applique également à l'outil de mise en "
|
||||
"évidence de la syntaxe, qui peut supposer que la première apostrophe qui "
|
||||
"suit est le symbole de fermeture d'une région de texte entre guillemets."
|
||||
|
||||
#: ../../source/more/typography.rst:72
|
||||
msgid ""
|
||||
"To get around this, an alternative apostrophe is available. It is a special "
|
||||
"Unicode character that is not categorised as punctuation, but as a "
|
||||
"modifier. It is usually rendered the same way as the right single quotation "
|
||||
"marks, depending on the font. There is a Wikipedia article for the "
|
||||
"`Modifier letter apostrophe`_ with more details."
|
||||
msgstr ""
|
||||
"Pour contourner ce problème, il existe une apostrophe alternative. Il "
|
||||
"s'agit d'un caractère Unicode spécial qui n'est pas considéré comme une "
|
||||
"ponctuation, mais comme un modificateur. Il est généralement rendu de la "
|
||||
"même manière que les guillemets simples de droite, en fonction de la police "
|
||||
"de caractères. Il existe un article de Wikipédia sur la `lettre "
|
||||
"modificatrice apostrophe`_ avec plus de détails."
|
||||
|
||||
#: ../../source/more/typography.rst:79
|
||||
msgid ""
|
||||
"On export with the **Build Manuscript** tool, these apostrophes will be "
|
||||
"replaced automatically with the corresponding right hand single quote "
|
||||
"symbol as is generally recommended. Therefore it doesn't really matter if "
|
||||
"you only use them to correct syntax highlighting in some places, and not "
|
||||
"others."
|
||||
msgstr ""
|
||||
"Lors de l'exportation à l'aide de l'outil **Compiler le manuscrit**, ces "
|
||||
"apostrophes seront automatiquement remplacées par le symbole de guillemet "
|
||||
"simple de droite correspondant, comme cela est généralement recommandé. Par "
|
||||
"conséquent, il importe peu que vous les utilisiez uniquement pour corriger "
|
||||
"la coloration syntaxique à certains endroits, et pas à d'autres."
|
||||
|
||||
#: ../../source/more/typography.rst:86
|
||||
msgid "White Space Symbols"
|
||||
msgstr "Symboles de l'espace"
|
||||
|
||||
#: ../../source/more/typography.rst:88
|
||||
msgid ""
|
||||
"A few variations of the regular space character is supported. The correct "
|
||||
"typographical way to separate a number from its unit is with a `thin "
|
||||
"space`_. It is usually 2/3 the width of a regular space. For numbers and "
|
||||
"units, this should in addition be a non-breaking space, that is, the text "
|
||||
"wrapping should not add a line break on this particular space."
|
||||
msgstr ""
|
||||
"Quelques variations du caractère espace régulier sont prises en charge. La "
|
||||
"manière typographique correcte de séparer un nombre de son unité est "
|
||||
"d'utiliser une `espace fine`_. Sa largeur est généralement égale aux deux "
|
||||
"tiers de celle d'une espace normale. Pour les nombres et les unités, il "
|
||||
"doit en outre s'agir d'un espace insécable, c'est-à-dire que l'habillage du "
|
||||
"texte ne doit pas ajouter de saut de ligne sur cet espace particulier."
|
||||
|
||||
#: ../../source/more/typography.rst:93
|
||||
msgid "A regular space can also be made into a non-breaking space if needed."
|
||||
msgstr ""
|
||||
"Un espace régulier peut également être transformé en espace insécable si "
|
||||
"nécessaire."
|
||||
|
||||
#: ../../source/more/typography.rst:95
|
||||
msgid ""
|
||||
"All non-breaking spaces are highlighted with a differently coloured "
|
||||
"background to make it easier to spot them in the text. The colour will "
|
||||
"depend on the selected colour theme."
|
||||
msgstr ""
|
||||
"Tous les espaces insécables sont mis en évidence par un arrière-plan de "
|
||||
"couleur différente pour faciliter leur repérage dans le texte. La couleur "
|
||||
"dépend du thème de couleur sélectionné."
|
||||
|
||||
#: ../../source/more/typography.rst:98
|
||||
msgid ""
|
||||
"You can insert these spaces in your text using the following keyboard "
|
||||
"combinations:"
|
||||
msgstr ""
|
||||
"Vous pouvez insérer ces espaces dans votre texte en utilisant les "
|
||||
"combinaisons de clavier suivantes :"
|
||||
|
||||
#: ../../source/more/typography.rst:100
|
||||
msgid "A non-breaking space can be inserted with :kbd:`Ctrl+K`, :kbd:`Space`."
|
||||
msgstr ""
|
||||
"Un espace insécable peut être inséré avec :kbd:`Ctrl+K`, :kbd:`Espace`."
|
||||
|
||||
#: ../../source/more/typography.rst:101
|
||||
msgid ""
|
||||
"Thin spaces are also supported, and can be inserted with :kbd:`Ctrl+K`, :"
|
||||
"kbd:`Shift+Space`."
|
||||
msgstr ""
|
||||
"Les espaces courtes sont également supportés, et peuvent être insérés avec :"
|
||||
"kbd:`Ctrl+K`, :kbd:`Maj+Espace`."
|
||||
|
||||
#: ../../source/more/typography.rst:102
|
||||
msgid ""
|
||||
"Non-breaking thin space can be inserted with :kbd:`Ctrl+K`, :kbd:"
|
||||
"`Ctrl+Space`."
|
||||
msgstr ""
|
||||
"Une espace courte insécable peut être insérée avec :kbd:`Ctrl+K`, :kbd:"
|
||||
"`Ctrl+Espace`."
|
||||
|
||||
#: ../../source/more/typography.rst:104
|
||||
msgid ""
|
||||
"These are all insert features, and the **Insert** menu has more. The "
|
||||
"keyboard shortcuts for them are also listed in :ref:"
|
||||
"`docs_features_shortcuts`."
|
||||
msgstr ""
|
||||
"Ce sont toutes des fonctions d'insertion, et le menu **Insérer** en propose "
|
||||
"d'autres. Les raccourcis clavier sont également listés dans :ref:"
|
||||
"`docs_features_shortcuts`."
|
||||
158
docs/source/locales/fr/LC_MESSAGES/technical/locations.po
Normal file
@@ -0,0 +1,158 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-29 11:25+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/technical/locations.rst:5
|
||||
msgid "File Locations"
|
||||
msgstr "Emplacement des fichiers"
|
||||
|
||||
#: ../../source/technical/locations.rst:9
|
||||
msgid ""
|
||||
"UmbraEdit will create a few files on your system outside of the "
|
||||
"application folder itself. These file locations are described in this "
|
||||
"chapter."
|
||||
msgstr ""
|
||||
"UmbraEdit créera quelques fichiers sur votre système en dehors du "
|
||||
"dossier de l'application elle-même. L'emplacement de ces fichiers est "
|
||||
"décrit dans ce chapitre."
|
||||
|
||||
#: ../../source/technical/locations.rst:16
|
||||
msgid "Configuration"
|
||||
msgstr "Configuration"
|
||||
|
||||
#: ../../source/technical/locations.rst:18
|
||||
msgid ""
|
||||
"The general configuration of UmbraEdit, including everything that is "
|
||||
"in **Preferences**, is saved in one central configuration file. The "
|
||||
"location of this file depends on your operating system. The system paths "
|
||||
"are provided by the Qt QStandardPaths_ class and its ``ConfigLocation`` "
|
||||
"value."
|
||||
msgstr ""
|
||||
"La configuration générale de UmbraEdit, y compris tout ce qui se "
|
||||
"trouve dans les **Préférences**, est enregistrée dans un fichier de "
|
||||
"configuration central. L'emplacement de ce fichier dépend de votre "
|
||||
"système d'exploitation. Les chemins d'accès au système sont fournis par "
|
||||
"la classe Qt QStandardPaths_ et sa valeur ``ConfigLocation``."
|
||||
|
||||
#: ../../source/technical/locations.rst:22
|
||||
#: ../../source/technical/locations.rst:45
|
||||
msgid "The standard paths are:"
|
||||
msgstr "Les chemins standard sont les suivants :"
|
||||
|
||||
#: ../../source/technical/locations.rst:24
|
||||
msgid "Linux: ``~/.config/umbraedit/umbraedit.conf``"
|
||||
msgstr "Linux : ``~/.config/umbraedit/umbraedit.conf``"
|
||||
|
||||
#: ../../source/technical/locations.rst:25
|
||||
msgid "MacOS: ``~/Library/Preferences/umbraedit/umbraedit.conf``"
|
||||
msgstr "MacOS: ``~/Library/Preferences/umbraedit/umbraedit.conf``"
|
||||
|
||||
#: ../../source/technical/locations.rst:26
|
||||
msgid ""
|
||||
"Windows: ``C:\\Users\\<USER>\\AppData\\Local\\umbraedit\\umbraedit."
|
||||
"conf``"
|
||||
msgstr ""
|
||||
"Windows: ``C:\\Users\\<USER>\\AppData\\Local\\umbraedit\\umbraedit."
|
||||
"conf``"
|
||||
|
||||
#: ../../source/technical/locations.rst:28
|
||||
#: ../../source/technical/locations.rst:51
|
||||
msgid ""
|
||||
"Here, ``~`` corresponds to the user's home directory on Linux and MacOS, "
|
||||
"and ``<USER>`` is the user's username on Windows."
|
||||
msgstr ""
|
||||
"Ici, ``~`` correspond au répertoire personnel de l'utilisateur sous "
|
||||
"Linux et MacOS, et ``<USER>`` est le nom d'utilisateur de l'utilisateur "
|
||||
"sous Windows."
|
||||
|
||||
#: ../../source/technical/locations.rst:32
|
||||
#: ../../source/technical/locations.rst:55
|
||||
msgid ""
|
||||
"These are the standard operating system defined locations. If your "
|
||||
"system has been set up in a different way, these locations may also be "
|
||||
"different."
|
||||
msgstr ""
|
||||
"Il s'agit des emplacements standard définis par le système "
|
||||
"d'exploitation. Si votre système a été configuré différemment, ces "
|
||||
"emplacements peuvent également être différents."
|
||||
|
||||
#: ../../source/technical/locations.rst:39
|
||||
msgid "Application Data"
|
||||
msgstr "Données d'application"
|
||||
|
||||
#: ../../source/technical/locations.rst:41
|
||||
msgid ""
|
||||
"UmbraEdit also stores a bit of data that is generated by the user's "
|
||||
"actions. This includes the list of recent projects form the **Welcome** "
|
||||
"dialog. Custom themes should also be saved here. The system paths are "
|
||||
"provided by the Qt QStandardPaths_ class and its ``AppDataLocation`` "
|
||||
"value."
|
||||
msgstr ""
|
||||
"UmbraEdit stocke également un certain nombre de données générées par "
|
||||
"les actions de l'utilisateur. Cela inclut la liste des projets récents "
|
||||
"de la boîte de dialogue **Bienvenue**. Les thèmes personnalisés "
|
||||
"devraient également être sauvegardés ici. Les chemins d'accès au système "
|
||||
"sont fournis par la classe Qt QStandardPaths_ et sa valeur "
|
||||
"``AppDataLocation``."
|
||||
|
||||
#: ../../source/technical/locations.rst:47
|
||||
msgid "Linux: ``~/.local/share/umbraedit/``"
|
||||
msgstr "Linux: ``~/.local/share/umbraedit/``"
|
||||
|
||||
#: ../../source/technical/locations.rst:48
|
||||
msgid "MacOS: ``~/Library/Application Support/umbraedit/``"
|
||||
msgstr "MacOS: ``~/Library/Application Support/umbraedit/``"
|
||||
|
||||
#: ../../source/technical/locations.rst:49
|
||||
msgid "Windows: ``C:\\Users\\<USER>\\AppData\\Roaming\\umbraedit\\``"
|
||||
msgstr "Windows: ``C:\\Users\\<USER>\\AppData\\Roaming\\umbraedit\\``"
|
||||
|
||||
#: ../../source/technical/locations.rst:58
|
||||
msgid "The Application Data location also holds several folders:"
|
||||
msgstr ""
|
||||
"L'emplacement des données d'application contient également plusieurs "
|
||||
"dossiers :"
|
||||
|
||||
#: ../../source/technical/locations.rst:60
|
||||
msgid "``cache``"
|
||||
msgstr "``cache``"
|
||||
|
||||
#: ../../source/technical/locations.rst:61
|
||||
msgid ""
|
||||
"This folder is used to save the preview data for the **Manuscript "
|
||||
"Build** tool."
|
||||
msgstr ""
|
||||
"Ce dossier est utilisé pour enregistrer les données de prévisualisation "
|
||||
"pour l'outil **Compilation de manuscrit**."
|
||||
|
||||
#: ../../source/technical/locations.rst:63
|
||||
msgid "``icons``, ``syntax`` and ``themes``"
|
||||
msgstr "``icons``, ``syntax`` and ``themes``"
|
||||
|
||||
#: ../../source/technical/locations.rst:64
|
||||
msgid ""
|
||||
"These folders are empty by default, but this is where the user can store "
|
||||
"custom theme files. See :ref:`docs_more_custom` for more details."
|
||||
msgstr ""
|
||||
"Ces dossiers sont vides par défaut, mais c'est là que l'utilisateur peut "
|
||||
"stocker des fichiers de thèmes personnalisés. Voir :ref:"
|
||||
"`docs_more_custom` pour plus de détails."
|
||||
283
docs/source/locales/fr/LC_MESSAGES/technical/source.po
Normal file
@@ -0,0 +1,283 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-29 11:39+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/technical/source.rst:5
|
||||
msgid "Running from Source"
|
||||
msgstr "Exécuter depuis la source"
|
||||
|
||||
#: ../../source/technical/source.rst:11
|
||||
msgid ""
|
||||
"This chapter describes various ways of running UmbraEdit directly from "
|
||||
"the source code, and how to build the various components like the "
|
||||
"translation files and documentation."
|
||||
msgstr ""
|
||||
"Ce chapitre décrit les différentes façons d'exécuter UmbraEdit "
|
||||
"directement à partir du code source, et comment construire les "
|
||||
"différents composants tels que les fichiers de traduction et la "
|
||||
"documentation."
|
||||
|
||||
#: ../../source/technical/source.rst:16
|
||||
msgid ""
|
||||
"The text below assumes the command ``python`` corresponds to a Python 3 "
|
||||
"executable. Python 2 is now deprecated, but on many systems the command "
|
||||
"``python3`` may be needed instead. Likewise, ``pip`` may need to be "
|
||||
"replaced with ``pip3``."
|
||||
msgstr ""
|
||||
"Le texte ci-dessous suppose que la commande ``python`` correspond à un "
|
||||
"exécutable Python 3. Python 2 est maintenant déprécié, mais sur de "
|
||||
"nombreux systèmes, la commande ``python3`` peut être utilisée à la "
|
||||
"place. De même, ``pip`` peut être remplacé par ``pip3``."
|
||||
|
||||
#: ../../source/technical/source.rst:20
|
||||
msgid ""
|
||||
"Most of the custom commands for building packages of UmbraEdit, or "
|
||||
"building assets, are contained in the ``pkgutils.py`` script in the root "
|
||||
"of the source code. You can list the available commands by running:"
|
||||
msgstr ""
|
||||
"La plupart des commandes personnalisées pour construire des paquets de "
|
||||
"UmbraEdit, ou pour construire des actifs, sont contenues dans le "
|
||||
"script ``pkgutils.py`` à la racine du code source. Vous pouvez lister "
|
||||
"les commandes disponibles en lançant :"
|
||||
|
||||
#: ../../source/technical/source.rst:32
|
||||
msgid "Dependencies"
|
||||
msgstr "Dépendances"
|
||||
|
||||
#: ../../source/technical/source.rst:34
|
||||
msgid ""
|
||||
"UmbraEdit has been designed to rely on as few dependencies as "
|
||||
"possible. Only the Python wrapper for the Qt GUI libraries is required. "
|
||||
"The package for spell checking is optional, but recommended. Everything "
|
||||
"else is handled with standard Python libraries."
|
||||
msgstr ""
|
||||
"UmbraEdit a été conçu pour s'appuyer sur le moins de dépendances "
|
||||
"possible. Seul le wrapper Python pour les bibliothèques Qt GUI est "
|
||||
"nécessaire. Le paquetage pour la vérification orthographique est "
|
||||
"optionnel, mais recommandé. Tout le reste est géré par les bibliothèques "
|
||||
"Python standard."
|
||||
|
||||
#: ../../source/technical/source.rst:38
|
||||
msgid ""
|
||||
"The following Python packages are needed to run all features of "
|
||||
"UmbraEdit:"
|
||||
msgstr ""
|
||||
"Les paquets Python suivants sont nécessaires pour exécuter toutes les "
|
||||
"fonctionnalités de UmbraEdit :"
|
||||
|
||||
#: ../../source/technical/source.rst:40
|
||||
msgid "``PyQt6`` – needed for connecting with the Qt6 libraries."
|
||||
msgstr "``PyQt6`` - nécessaire pour se connecter aux bibliothèques Qt6."
|
||||
|
||||
#: ../../source/technical/source.rst:41
|
||||
msgid "``PyEnchant`` – needed for spell checking (optional)."
|
||||
msgstr ""
|
||||
"``PyEnchant`` - nécessaire pour la vérification orthographique "
|
||||
"(optionnel)."
|
||||
|
||||
#: ../../source/technical/source.rst:43
|
||||
msgid ""
|
||||
"If you want spell checking, you must install the ``PyEnchant`` package. "
|
||||
"The spell check library must be at least 3.0 to work with Windows. On "
|
||||
"Linux, 2.0 also works fine."
|
||||
msgstr ""
|
||||
"Si vous voulez un correcteur orthographique, vous devez installer le "
|
||||
"paquet ``PyEnchant``. La bibliothèque de vérification orthographique "
|
||||
"doit être au moins en version 3.0 pour fonctionner sous Windows. Sous "
|
||||
"Linux, la version 2.0 fonctionne également très bien."
|
||||
|
||||
#: ../../source/technical/source.rst:46
|
||||
msgid ""
|
||||
"If you install from PyPi, these dependencies should be installed "
|
||||
"automatically. If you install from source, dependencies can still be "
|
||||
"installed from PyPi with:"
|
||||
msgstr ""
|
||||
"Si vous installez à partir de PyPi, ces dépendances devraient être "
|
||||
"installées automatiquement. Si vous installez à partir des sources, les "
|
||||
"dépendances peuvent toujours être installées à partir de PyPi avec :"
|
||||
|
||||
#: ../../source/technical/source.rst:55
|
||||
msgid ""
|
||||
"On Linux distros, the Qt library is usually split up into multiple "
|
||||
"packages. In some cases, secondary dependencies may not be installed "
|
||||
"automatically. For UmbraEdit, the library files for rendering the SVG "
|
||||
"icons may be left out and needs to be installed manually. This is the "
|
||||
"case on for instance Arch Linux."
|
||||
msgstr ""
|
||||
"Sur les distributions Linux, la bibliothèque Qt est généralement divisée "
|
||||
"en plusieurs paquets. Dans certains cas, des dépendances secondaires "
|
||||
"peuvent ne pas être installées automatiquement. Pour UmbraEdit, les "
|
||||
"fichiers de la bibliothèque pour le rendu des icônes SVG peuvent être "
|
||||
"omis et doivent être installés manuellement. C'est le cas, par exemple, "
|
||||
"sous Arch Linux."
|
||||
|
||||
#: ../../source/technical/source.rst:64
|
||||
msgid "Build and Install from Source"
|
||||
msgstr "Compiler et installer à partir des sources"
|
||||
|
||||
#: ../../source/technical/source.rst:66
|
||||
msgid ""
|
||||
"If you want to install UmbraEdit directly from the source available on "
|
||||
"GitHub_, you must first build the package using the Python Packaging "
|
||||
"Authority's build tool. It can be installed with:"
|
||||
msgstr ""
|
||||
"Si vous souhaitez installer UmbraEdit directement à partir des sources "
|
||||
"disponibles sur GitHub_, vous devez d'abord construire le paquet à "
|
||||
"l'aide de l'outil de construction de la Python Packaging Authority. Il "
|
||||
"peut être installé avec :"
|
||||
|
||||
#: ../../source/technical/source.rst:73
|
||||
msgid "On Debian-based systems the tool can also be installed with:"
|
||||
msgstr ""
|
||||
"Sur les systèmes basés sur Debian, l'outil peut également être installé "
|
||||
"avec :"
|
||||
|
||||
#: ../../source/technical/source.rst:79
|
||||
msgid ""
|
||||
"With the tool installed, run the following command from the root of the "
|
||||
"UmbraEdit source code:"
|
||||
msgstr ""
|
||||
"Une fois l'outil installé, exécutez la commande suivante à partir de la "
|
||||
"racine du code source de UmbraEdit :"
|
||||
|
||||
#: ../../source/technical/source.rst:85
|
||||
msgid ""
|
||||
"This should generate a ``.whl`` file in the ``dist/`` folder at your "
|
||||
"current location. The wheel file can then be installed on your system. "
|
||||
"Here with example version number 2.0.7, but yours may be different:"
|
||||
msgstr ""
|
||||
"Cela devrait générer un fichier ``.whl`` dans le dossier ``dist/`` de "
|
||||
"votre emplacement actuel. Le fichier wheel peut alors être installé sur "
|
||||
"votre système. Ici avec l'exemple de la version numéro 2.0.7, mais la "
|
||||
"vôtre peut être différente :"
|
||||
|
||||
#: ../../source/technical/source.rst:97
|
||||
msgid "Building the Translation Files"
|
||||
msgstr "Création des fichiers de traduction"
|
||||
|
||||
#: ../../source/technical/source.rst:99
|
||||
msgid ""
|
||||
"If you installed UmbraEdit from a package, the translation files "
|
||||
"should be pre-built and included. If you're running UmbraEdit from the "
|
||||
"source code, you will need to generate the files yourself. The files you "
|
||||
"need will be written to the ``umbraedit/assets/i18n`` folder, and will "
|
||||
"have the ``.qm`` file extension."
|
||||
msgstr ""
|
||||
"Si vous avez installé UmbraEdit à partir d'un paquetage, les fichiers "
|
||||
"de traduction devraient être préconstruits et inclus. Si vous exécutez "
|
||||
"UmbraEdit à partir du code source, vous devrez générer les fichiers "
|
||||
"vous-même. Les fichiers dont vous avez besoin seront écrits dans le "
|
||||
"dossier ``umbraedit/assets/i18n``, et auront l'extension ``.qm``."
|
||||
|
||||
#: ../../source/technical/source.rst:104
|
||||
msgid "You can build the ``.qm`` files with:"
|
||||
msgstr "Vous pouvez construire les fichiers ``.qm`` avec :"
|
||||
|
||||
#: ../../source/technical/source.rst:110
|
||||
msgid ""
|
||||
"This requires that the Qt Linguist tool is installed on your system. On "
|
||||
"Ubuntu and Debian, the needed package is called ``qttools5-dev-tools``."
|
||||
msgstr ""
|
||||
"Cela nécessite que l'outil Qt Linguist soit installé sur votre système. "
|
||||
"Sur Ubuntu et Debian, le paquet nécessaire s'appelle ``qttools5-dev-"
|
||||
"tools``."
|
||||
|
||||
#: ../../source/technical/source.rst:115
|
||||
msgid ""
|
||||
"If you want to improve UmbraEdit with translation files for another "
|
||||
"language, or update an existing translation, instructions for how to "
|
||||
"contribute can be found in the ``README.md`` file in the ``i18n`` folder "
|
||||
"of the source code."
|
||||
msgstr ""
|
||||
"Si vous voulez améliorer UmbraEdit avec des fichiers de traduction "
|
||||
"pour une autre langue, ou mettre à jour une traduction existante, les "
|
||||
"instructions pour contribuer peuvent être trouvées dans le fichier "
|
||||
"``README.md`` dans le dossier ``i18n`` du code source."
|
||||
|
||||
#: ../../source/technical/source.rst:123
|
||||
msgid "Building the Example Project"
|
||||
msgstr "Construction du projet d'exemple"
|
||||
|
||||
#: ../../source/technical/source.rst:125
|
||||
msgid ""
|
||||
"In order to be able to create new projects from example files, you need "
|
||||
"a ``sample.zip`` file in the ``assets`` folder of the source. This file "
|
||||
"can be built from the ``pkgutils.py`` script by running:"
|
||||
msgstr ""
|
||||
"Afin de pouvoir créer de nouveaux projets à partir des fichiers "
|
||||
"d'exemple, vous avez besoin d'un fichier ``sample.zip`` dans le dossier "
|
||||
"``assets`` de la source. Ce fichier peut être construit à partir du "
|
||||
"script ``pkgutils.py`` en exécutant :"
|
||||
|
||||
#: ../../source/technical/source.rst:137
|
||||
msgid "Building the Documentation"
|
||||
msgstr "Élaboration de la documentation"
|
||||
|
||||
#: ../../source/technical/source.rst:139
|
||||
msgid ""
|
||||
"A local copy of this documentation can be generated as HTML. This "
|
||||
"requires installing some Python packages from PyPi:"
|
||||
msgstr ""
|
||||
"Une copie locale de cette documentation peut être générée au format "
|
||||
"HTML. Cela nécessite l'installation de certains paquets Python à partir "
|
||||
"de PyPi :"
|
||||
|
||||
#: ../../source/technical/source.rst:146
|
||||
msgid ""
|
||||
"The documentation can then be built from the root folder in the source "
|
||||
"code by running:"
|
||||
msgstr ""
|
||||
"La documentation peut ensuite être créée à partir du dossier racine du "
|
||||
"code source en lançant le programme :"
|
||||
|
||||
#: ../../source/technical/source.rst:152
|
||||
msgid ""
|
||||
"If successful, the documentation should be available in the ``docs/build/"
|
||||
"html`` folder and you can open the ``index.html`` file in your browser."
|
||||
msgstr ""
|
||||
"En cas de succès, la documentation devrait être disponible dans le "
|
||||
"dossier `docs/build/html` et vous pouvez ouvrir le fichier `index.html` "
|
||||
"dans votre navigateur."
|
||||
|
||||
#: ../../source/technical/source.rst:155
|
||||
msgid ""
|
||||
"You can also build a PDF manual from the documentation using the "
|
||||
"``pkgutils.py`` script:"
|
||||
msgstr ""
|
||||
"Vous pouvez également créer un manuel PDF à partir de la documentation "
|
||||
"en utilisant le script ``pkgutils.py`` :"
|
||||
|
||||
#: ../../source/technical/source.rst:161
|
||||
msgid ""
|
||||
"This will build the English documentation as a PDF using LaTeX. The file "
|
||||
"will then be copied into the assets folder and made available in the "
|
||||
"**Help** menu in UmbraEdit. Replace ``en`` with ``all`` to build for "
|
||||
"all languages. The Sphinx build system has a few extra dependencies when "
|
||||
"building the PDF. Please check the `Sphinx Docs`_ for more details."
|
||||
msgstr ""
|
||||
"Cela permettra de créer la documentation anglaise au format PDF en "
|
||||
"utilisant LaTeX. Le fichier sera ensuite copié dans le dossier assets et "
|
||||
"rendu disponible dans le menu **Aide** de UmbraEdit. Remplacez ``en`` "
|
||||
"par ``all`` pour construire pour toutes les langues. Le système de "
|
||||
"construction Sphinx a quelques dépendances supplémentaires lors de la "
|
||||
"construction du PDF. Veuillez consulter la `Docs Sphinx`_ pour plus de "
|
||||
"détails."
|
||||
501
docs/source/locales/fr/LC_MESSAGES/technical/storage.po
Normal file
@@ -0,0 +1,501 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-29 11:33+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/technical/storage.rst:5
|
||||
msgid "How Data is Stored"
|
||||
msgstr "Comment les données sont stockées"
|
||||
|
||||
#: ../../source/technical/storage.rst:9
|
||||
msgid ""
|
||||
"This chapter contains details of how UmbraEdit stores and handles the "
|
||||
"project data."
|
||||
msgstr ""
|
||||
"Ce chapitre contient des détails sur la manière dont UmbraEdit stocke "
|
||||
"et gère les données du projet."
|
||||
|
||||
#: ../../source/technical/storage.rst:13
|
||||
msgid "Overview"
|
||||
msgstr "Présentation générale"
|
||||
|
||||
#: ../../source/technical/storage.rst:15
|
||||
msgid ""
|
||||
"The files of a UmbraEdit project are stored in a dedicated project "
|
||||
"folder. The project structure is kept in a file at the root of this "
|
||||
"folder called ``nwProject.nwx``. All the document files and associated "
|
||||
"meta data are stored in other folders below the project folder."
|
||||
msgstr ""
|
||||
"Les fichiers d'un projet UmbraEdit sont stockés dans un dossier dédié "
|
||||
"au projet. La structure du projet est conservée dans un fichier à la "
|
||||
"racine de ce dossier appelé ``nwProject.nwx``. Tous les fichiers de "
|
||||
"documents et les métadonnées associées sont stockés dans d'autres "
|
||||
"dossiers sous le dossier du projet."
|
||||
|
||||
#: ../../source/technical/storage.rst:19
|
||||
msgid "This way of storing data was chosen for several reasons."
|
||||
msgstr ""
|
||||
"Ce mode de stockage des données a été choisi pour plusieurs raisons."
|
||||
|
||||
#: ../../source/technical/storage.rst:21
|
||||
msgid ""
|
||||
"Firstly, all the text you add to your project is saved directly to your "
|
||||
"project folder in separate files. Only the project structure and the "
|
||||
"text you are currently editing is stored in memory at any given time, "
|
||||
"which means there is a smaller risk of losing data if the application or "
|
||||
"your computer crashes."
|
||||
msgstr ""
|
||||
"Tout d'abord, tout le texte que vous ajoutez à votre projet est "
|
||||
"enregistré directement dans le dossier de votre projet, dans des "
|
||||
"fichiers séparés. Seule la structure du projet et le texte que vous êtes "
|
||||
"en train d'éditer sont stockés en mémoire à un moment donné, ce qui "
|
||||
"signifie qu'il y a moins de risque de perdre des données si "
|
||||
"l'application ou votre ordinateur tombe en panne."
|
||||
|
||||
#: ../../source/technical/storage.rst:26
|
||||
msgid ""
|
||||
"Secondly, having multiple small files means it is very easy to "
|
||||
"synchronise them between computers with standard file synchronisation "
|
||||
"tools."
|
||||
msgstr ""
|
||||
"Deuxièmement, le fait d'avoir plusieurs petits fichiers signifie qu'il "
|
||||
"est très facile de les synchroniser entre ordinateurs à l'aide d'outils "
|
||||
"de synchronisation de fichiers standard."
|
||||
|
||||
#: ../../source/technical/storage.rst:29
|
||||
msgid ""
|
||||
"Thirdly, if you use `version control`_ software to track the changes to "
|
||||
"your project, the file formats used for the files are well suited. All "
|
||||
"the JSON documents have line breaks and indents as well, which makes it "
|
||||
"easier to track them with version control software."
|
||||
msgstr ""
|
||||
"Troisièmement, si vous utilisez un logiciel de `contrôle de version`_ "
|
||||
"pour suivre les modifications apportées à votre projet, les formats "
|
||||
"utilisés pour les fichiers sont bien adaptés. Tous les documents JSON "
|
||||
"comportent des sauts de ligne et des retraits, ce qui facilite leur "
|
||||
"suivi avec un logiciel de contrôle de version."
|
||||
|
||||
#: ../../source/technical/storage.rst:35
|
||||
msgid ""
|
||||
"Since UmbraEdit has to keep track of a bunch of files and folders when "
|
||||
"a project is open, it may not run well on some virtual file systems. A "
|
||||
"file or folder must be accessible with exactly the path it was saved or "
|
||||
"created with. An example where this is not the case is the way Google "
|
||||
"Drive is mapped on Linux Gnome desktops using gvfs/gio."
|
||||
msgstr ""
|
||||
"Comme UmbraEdit doit garder la trace d'un grand nombre de fichiers et "
|
||||
"de dossiers lorsqu'un projet est ouvert, il peut ne pas fonctionner "
|
||||
"correctement sur certains systèmes de fichiers virtuels. Un fichier ou "
|
||||
"un dossier doit être accessible avec exactement le chemin avec lequel il "
|
||||
"a été sauvegardé ou créé. Un exemple où ce n'est pas le cas est la façon "
|
||||
"dont Google Drive est mappé sur les bureaux Linux Gnome en utilisant "
|
||||
"gvfs/gio."
|
||||
|
||||
#: ../../source/technical/storage.rst:42
|
||||
msgid ""
|
||||
"You should not add additional files to the project folder yourself. Nor "
|
||||
"should you, as a rule, manually edit files within it. If you really must "
|
||||
"manually edit the text files, e.g. with some automated task you want to "
|
||||
"perform, you need to rebuild the Project Index when you open the project "
|
||||
"again."
|
||||
msgstr ""
|
||||
"Vous ne devez pas ajouter vous-même des fichiers supplémentaires au "
|
||||
"dossier du projet. En règle générale, vous ne devez pas non plus "
|
||||
"modifier manuellement les fichiers qui s'y trouvent. Si vous devez "
|
||||
"vraiment modifier manuellement les fichiers texte, par exemple dans le "
|
||||
"cadre d'une tâche automatisée, vous devez reconstruire l'index du projet "
|
||||
"lorsque vous ouvrez à nouveau le projet."
|
||||
|
||||
#: ../../source/technical/storage.rst:47
|
||||
msgid ""
|
||||
"Editing text files in the ``content`` folder is less risky as these are "
|
||||
"just plain text. Editing the main project XML file, however, may make "
|
||||
"the project file unreadable and you may crash UmbraEdit and lose "
|
||||
"project structure information and project settings."
|
||||
msgstr ""
|
||||
"L'édition de fichiers texte dans le dossier ``content`` est moins "
|
||||
"risquée car il s'agit de texte simple. Cependant, éditer le fichier XML "
|
||||
"du projet principal peut rendre le fichier du projet illisible et vous "
|
||||
"risquez de planter UmbraEdit et de perdre les informations sur la "
|
||||
"structure et les paramètres du projet."
|
||||
|
||||
#: ../../source/technical/storage.rst:53
|
||||
msgid "Project Structure"
|
||||
msgstr "Structure du projet"
|
||||
|
||||
#: ../../source/technical/storage.rst:55
|
||||
msgid ""
|
||||
"All UmbraEdit files are written with utf-8 encoding. Since Python "
|
||||
"automatically converts Unix line endings to Windows line endings on "
|
||||
"Windows systems, UmbraEdit does not make any adaptations to the "
|
||||
"formatting on Windows systems. This is handled entirely by the Python "
|
||||
"standard library. Python also handles this when working on the same "
|
||||
"files on both Windows and Unix-based operating systems."
|
||||
msgstr ""
|
||||
"Tous les fichiers UmbraEdit sont écrits avec l'encodage utf-8. Comme "
|
||||
"Python convertit automatiquement les fins de ligne Unix en fins de ligne "
|
||||
"Windows sur les systèmes Windows, UmbraEdit ne fait aucune adaptation "
|
||||
"au formatage sur les systèmes Windows. Ceci est entièrement géré par la "
|
||||
"bibliothèque standard de Python. Python s'en occupe également lorsqu'il "
|
||||
"travaille sur les mêmes fichiers sur les systèmes d'exploitation Windows "
|
||||
"et Unix."
|
||||
|
||||
#: ../../source/technical/storage.rst:63
|
||||
msgid "Main Project File"
|
||||
msgstr "Fichier principal du projet"
|
||||
|
||||
#: ../../source/technical/storage.rst:65
|
||||
msgid ""
|
||||
"The project itself requires a dedicated folder for storing its files, "
|
||||
"where UmbraEdit will create its own \"file system\" where the "
|
||||
"project's folder and file hierarchy is described in a project XML file. "
|
||||
"This is the main project file in the project's root folder with the name "
|
||||
"``nwProject.nwx``. This file also contains all the meta data required "
|
||||
"for the project (except the index data), and a number of related project "
|
||||
"settings."
|
||||
msgstr ""
|
||||
"Le projet lui-même nécessite un dossier dédié pour stocker ses fichiers, "
|
||||
"où UmbraEdit créera son propre « système de fichiers » où la "
|
||||
"hiérarchie des dossiers et des fichiers du projet est décrite dans un "
|
||||
"fichier XML du projet. C'est le fichier principal du projet dans le "
|
||||
"dossier racine du projet avec le nom ``nwProject.nwx``. Ce fichier "
|
||||
"contient également toutes les métadonnées requises pour le projet (à "
|
||||
"l'exception des données d'index), ainsi qu'un certain nombre de "
|
||||
"paramètres liés au projet."
|
||||
|
||||
#: ../../source/technical/storage.rst:71
|
||||
msgid ""
|
||||
"If this file is lost or corrupted, the structure of the project is lost, "
|
||||
"although not the text itself. It is important to keep this file backed "
|
||||
"up, either through the built-in backup tool, or your own backup solution."
|
||||
msgstr ""
|
||||
"Si ce fichier est perdu ou corrompu, la structure du projet est perdue, "
|
||||
"mais pas le texte lui-même. Il est important de sauvegarder ce fichier, "
|
||||
"soit à l'aide de l'outil de sauvegarde intégré, soit à l'aide de votre "
|
||||
"propre solution de sauvegarde."
|
||||
|
||||
#: ../../source/technical/storage.rst:75
|
||||
msgid ""
|
||||
"The project XML file is indent-formatted, and is suitable for diff tools "
|
||||
"and version control since most of the file will stay static, although a "
|
||||
"timestamp is set in the meta section on line 2, and various meta data "
|
||||
"entries incremented, on each save."
|
||||
msgstr ""
|
||||
"Le fichier XML du projet est formaté en indentation et convient aux "
|
||||
"outils de comparaison et de contrôle de version, car la majeure partie "
|
||||
"du fichier reste statique, bien qu'un horodatage soit défini dans la "
|
||||
"section méta à la ligne 2 et que diverses entrées de données méta soient "
|
||||
"incrémentées à chaque enregistrement."
|
||||
|
||||
#: ../../source/technical/storage.rst:79
|
||||
msgid ""
|
||||
"A full project file format specification is available under \"More "
|
||||
"Documents\"."
|
||||
msgstr ""
|
||||
"Une spécification complète du format de fichier du projet est disponible "
|
||||
"sous « Plus d'informations »."
|
||||
|
||||
#: ../../source/technical/storage.rst:83
|
||||
msgid "Project Documents"
|
||||
msgstr "Documents de projet"
|
||||
|
||||
#: ../../source/technical/storage.rst:85
|
||||
msgid ""
|
||||
"All the project documents are saved in a subfolder of the main project "
|
||||
"folder named ``content``. Each document has a file handle based on a 52 "
|
||||
"bit random number, represented as a hexadecimal string. The documents "
|
||||
"are saved with a filename assembled from this handle and the file "
|
||||
"extension ``.nwd``."
|
||||
msgstr ""
|
||||
"Tous les documents du projet sont enregistrés dans un sous-dossier du "
|
||||
"dossier principal du projet nommé ``content``. Chaque document possède "
|
||||
"un identifiant de fichier basé sur un nombre aléatoire de 52 bits, "
|
||||
"représenté sous la forme d'une chaîne hexadécimale. Les documents sont "
|
||||
"enregistrés avec un nom de fichier assemblé à partir de cet identifiant "
|
||||
"et de l'extension ``.nwd``."
|
||||
|
||||
#: ../../source/technical/storage.rst:90
|
||||
msgid ""
|
||||
"If you wish to find the file system location of a document in the "
|
||||
"project, you can either look it up in the project XML file, select "
|
||||
"**Show File Details** from the **Document** menu when having the "
|
||||
"document open in the editor, or look in the ``ToC.txt`` file in the root "
|
||||
"of the project folder. The ``ToC.txt`` file has a list of all documents "
|
||||
"in the project, referenced by their label, and where they are saved."
|
||||
msgstr ""
|
||||
"Si vous souhaitez trouver l'emplacement du système de fichiers d'un "
|
||||
"document dans le projet, vous pouvez soit le rechercher dans le fichier "
|
||||
"XML du projet, soit sélectionner **Afficher les détails du fichier** "
|
||||
"dans le menu **Document** lorsque le document est ouvert dans l'éditeur, "
|
||||
"soit rechercher dans le fichier ``ToC.txt`` à la racine du dossier du "
|
||||
"projet. Le fichier ``ToC.txt`` contient une liste de tous les documents "
|
||||
"du projet, référencés par leur étiquette, et l'endroit où ils sont "
|
||||
"sauvegardés."
|
||||
|
||||
#: ../../source/technical/storage.rst:96
|
||||
msgid ""
|
||||
"The reason for this cryptic file naming is to avoid issues with file "
|
||||
"naming conventions and restrictions on different operating systems, and "
|
||||
"also to have a file name that does not depend on what you name the "
|
||||
"document within the project, or changes it to. This is particularly "
|
||||
"useful when using a versioning system."
|
||||
msgstr ""
|
||||
"La raison de ce nom de fichier cryptique est d'éviter les problèmes liés "
|
||||
"aux conventions de dénomination des fichiers et aux restrictions sur les "
|
||||
"différents systèmes d'exploitation, et aussi d'avoir un nom de fichier "
|
||||
"qui ne dépend pas du nom que vous donnez au document dans le projet, ou "
|
||||
"des modifications que vous lui apportez. Ceci est particulièrement utile "
|
||||
"lors de l'utilisation d'un système de gestion des versions."
|
||||
|
||||
#: ../../source/technical/storage.rst:101
|
||||
msgid ""
|
||||
"Each document file contains a plain text version of the text from the "
|
||||
"editor. The file can in principle be edited in any text editor, and is "
|
||||
"suitable for diffing and version control if so desired. Just make sure "
|
||||
"the file remains in utf-8 encoding, otherwise unicode characters may "
|
||||
"become mangled when the file is opened in UmbraEdit again."
|
||||
msgstr ""
|
||||
"Chaque fichier de document contient une version en texte brut du texte "
|
||||
"de l'éditeur. Le fichier peut en principe être édité dans n'importe quel "
|
||||
"éditeur de texte, et convient pour le diffing et le contrôle de version "
|
||||
"si on le souhaite. Assurez-vous simplement que le fichier reste en "
|
||||
"encodage utf-8, sinon les caractères unicode risquent d'être altérés "
|
||||
"lorsque le fichier est ouvert dans UmbraEdit."
|
||||
|
||||
#: ../../source/technical/storage.rst:106
|
||||
msgid ""
|
||||
"Editing these files is generally not recommended. The reason for this is "
|
||||
"that the index will not be automatically updated when doing so, which "
|
||||
"means UmbraEdit doesn't know you've altered the file. If you *do* edit "
|
||||
"a file in this manner, you should rebuild the index when you next open "
|
||||
"the project in UmbraEdit."
|
||||
msgstr ""
|
||||
"Il est généralement déconseillé de modifier ces fichiers. La raison en "
|
||||
"est que l'index ne sera pas automatiquement mis à jour, ce qui signifie "
|
||||
"que UmbraEdit ne sait pas que vous avez modifié le fichier. Si vous "
|
||||
"modifiez un fichier de cette manière, vous devez reconstruire l'index "
|
||||
"lorsque vous ouvrez le projet dans UmbraEdit."
|
||||
|
||||
#: ../../source/technical/storage.rst:111
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The first lines of the file may contain some meta data starting with the "
|
||||
"characters ``%%~``. These lines are mainly there to restore some "
|
||||
"information if the file is lost from the main project file, and the "
|
||||
"information may be helpful if you do open the file in an external editor "
|
||||
"as it contains the document label and the document class and layout. The "
|
||||
"lines can be deleted without any consequences to the rest of the content "
|
||||
"of the file, and will be added back the next time the document is saved "
|
||||
"in UmbraEdit."
|
||||
msgstr ""
|
||||
"Les premières lignes du fichier peuvent contenir des métadonnées "
|
||||
"commençant par les caractères ``%%~``. Ces lignes sont principalement là "
|
||||
"pour restaurer certaines informations si le fichier est perdu dans le "
|
||||
"fichier principal du projet, et ces informations peuvent être utiles si "
|
||||
"vous ouvrez le fichier dans un éditeur externe car elles contiennent "
|
||||
"l'étiquette du document ainsi que la classe et la mise en page du "
|
||||
"document. Les lignes peuvent être supprimées sans conséquences pour le "
|
||||
"reste du contenu du fichier, et seront ajoutées la prochaine fois que le "
|
||||
"document sera sauvegardé dans UmbraEdit."
|
||||
|
||||
#: ../../source/technical/storage.rst:120
|
||||
msgid "The File Saving Process"
|
||||
msgstr "Le processus d'enregistrement des fichiers"
|
||||
|
||||
#: ../../source/technical/storage.rst:122
|
||||
msgid ""
|
||||
"When saving the project file, or any of the documents, the data is first "
|
||||
"saved to a temporary file. If successful, the old data file is then "
|
||||
"removed, and the temporary file replaces it. This ensures that the "
|
||||
"previously saved data is only replaced when the new data has been "
|
||||
"successfully saved to the storage medium."
|
||||
msgstr ""
|
||||
"Lors de l'enregistrement du fichier de projet ou de l'un des documents, "
|
||||
"les données sont d'abord enregistrées dans un fichier temporaire. En cas "
|
||||
"de succès, l'ancien fichier de données est alors supprimé et remplacé "
|
||||
"par le fichier temporaire. Cela garantit que les données précédemment "
|
||||
"enregistrées ne sont remplacées que lorsque les nouvelles données ont "
|
||||
"été enregistrées avec succès sur le support de stockage."
|
||||
|
||||
#: ../../source/technical/storage.rst:129
|
||||
msgid "Project Meta Data"
|
||||
msgstr "Métadonnées du projet"
|
||||
|
||||
#: ../../source/technical/storage.rst:131
|
||||
msgid ""
|
||||
"The project folder contains a subfolder named ``meta``, containing a "
|
||||
"number of files. The meta folder contains semi-important files. That is, "
|
||||
"they can be lost with only minor impact to the project. All files in "
|
||||
"this folder are JSON or JSON Lines files, although some other files may "
|
||||
"remain from earlier versions of UmbraEdit as they haven't all been "
|
||||
"JSON files in the past."
|
||||
msgstr ""
|
||||
"Le dossier du projet contient un sous-dossier nommé ``meta``, contenant "
|
||||
"un certain nombre de fichiers. Le dossier meta contient des fichiers "
|
||||
"semi-importants. C'est-à-dire qu'ils peuvent être perdus avec un impact "
|
||||
"mineur sur le projet. Tous les fichiers de ce dossier sont des fichiers "
|
||||
"JSON ou JSON Lines, bien que certains autres fichiers puissent provenir "
|
||||
"de versions antérieures de UmbraEdit, car ils n'ont pas tous été des "
|
||||
"fichiers JSON dans le passé."
|
||||
|
||||
#: ../../source/technical/storage.rst:136
|
||||
msgid ""
|
||||
"If you use version control software on your project, you can exclude "
|
||||
"this folder, although you may want to track the session log file and the "
|
||||
"custom words list."
|
||||
msgstr ""
|
||||
"Si vous utilisez un logiciel de contrôle de version pour votre projet, "
|
||||
"vous pouvez exclure ce dossier, même si vous souhaitez suivre le fichier "
|
||||
"journal de la session et la liste des mots personnalisés."
|
||||
|
||||
#: ../../source/technical/storage.rst:141
|
||||
msgid "The Project Index"
|
||||
msgstr "L'index des projets"
|
||||
|
||||
#: ../../source/technical/storage.rst:143
|
||||
msgid ""
|
||||
"Between writing sessions, the project index is saved in a JSON file in "
|
||||
"``meta/index.json``. This file is not critical. If it is lost, it can be "
|
||||
"completely rebuilt from within UmbraEdit from the **Tools** menu."
|
||||
msgstr ""
|
||||
"Entre les sessions d'écriture, l'index du projet est sauvegardé dans un "
|
||||
"fichier JSON dans ``meta/index.json``. Ce fichier n'est pas critique. "
|
||||
"S'il est perdu, il peut être complètement reconstruit à partir de "
|
||||
"UmbraEdit dans le menu **Outils**."
|
||||
|
||||
#: ../../source/technical/storage.rst:147
|
||||
msgid ""
|
||||
"The index is maintained and updated whenever a document or note is saved "
|
||||
"in the editor. It contains all references and tags in documents and "
|
||||
"notes, as well as the location of all headers in the project, and the "
|
||||
"word counts within each header section."
|
||||
msgstr ""
|
||||
"L'index est maintenu et mis à jour chaque fois qu'un document ou une "
|
||||
"note est enregistré dans l'éditeur. Il contient toutes les références et "
|
||||
"les balises des documents et des notes, ainsi que l'emplacement de tous "
|
||||
"les en-têtes dans le projet et le nombre de mots dans chaque section de "
|
||||
"l'en-tête."
|
||||
|
||||
#: ../../source/technical/storage.rst:151
|
||||
msgid ""
|
||||
"The integrity of the index is checked when the file is loaded. It is "
|
||||
"possible to corrupt the index if the file is manually edited and "
|
||||
"manipulated, so the check is important to avoid sudden crashes of "
|
||||
"UmbraEdit. If the file contains errors, UmbraEdit will automatically "
|
||||
"build it anew. If the check somehow fails and UmbraEdit keeps "
|
||||
"crashing, you can delete the file manually and rebuild the index. If "
|
||||
"this too fails, you have likely encountered a bug."
|
||||
msgstr ""
|
||||
"L'intégrité de l'index est vérifiée lorsque le fichier est chargé. Il "
|
||||
"est possible de corrompre l'index si le fichier est édité et manipulé "
|
||||
"manuellement, c'est pourquoi cette vérification est importante pour "
|
||||
"éviter les plantages soudains de UmbraEdit. Si le fichier contient des "
|
||||
"erreurs, UmbraEdit le reconstruira automatiquement. Si la vérification "
|
||||
"échoue d'une manière ou d'une autre et que UmbraEdit continue à se "
|
||||
"bloquer, vous pouvez supprimer le fichier manuellement et reconstruire "
|
||||
"l'index. Si cela échoue également, vous avez probablement rencontré un "
|
||||
"bogue."
|
||||
|
||||
#: ../../source/technical/storage.rst:159
|
||||
msgid "Build Definitions"
|
||||
msgstr "Définitions des compilations"
|
||||
|
||||
#: ../../source/technical/storage.rst:161
|
||||
msgid ""
|
||||
"The build definitions from the **Manuscript Build** tool are kept in the "
|
||||
"``meta/builds.json`` file. If this file is lost, all custom build "
|
||||
"definitions are lost too."
|
||||
msgstr ""
|
||||
"Les définitions de construction de l'outil **Compilation du manuscrit** "
|
||||
"sont conservées dans le fichier ``meta/builds.json``. Si ce fichier est "
|
||||
"perdu, toutes les définitions de construction personnalisées sont "
|
||||
"également perdues."
|
||||
|
||||
#: ../../source/technical/storage.rst:166
|
||||
msgid "Cached GUI Options"
|
||||
msgstr "Options de l'interface graphique mises en cache"
|
||||
|
||||
#: ../../source/technical/storage.rst:168
|
||||
msgid ""
|
||||
"A file named ``meta/options.json`` contains the latest state of various "
|
||||
"GUI buttons, switches, dialog window sizes, column sizes, etc, from the "
|
||||
"GUI. These are the GUI settings that are specific to the project. Global "
|
||||
"GUI settings are stored in the main config file."
|
||||
msgstr ""
|
||||
"Un fichier nommé ``meta/options.json`` contient le dernier état des "
|
||||
"différents boutons de l'interface graphique, des commutateurs, de la "
|
||||
"taille des fenêtres de dialogue, de la taille des colonnes, etc, de "
|
||||
"l'interface graphique. Ce sont les paramètres de l'interface graphique "
|
||||
"qui sont spécifiques au projet. Les paramètres globaux de l'interface "
|
||||
"graphique sont stockés dans le fichier de configuration principal."
|
||||
|
||||
#: ../../source/technical/storage.rst:172
|
||||
msgid ""
|
||||
"The file is not critical, but if it is lost, all such GUI options will "
|
||||
"revert back to their default settings."
|
||||
msgstr ""
|
||||
"Le fichier n'est pas critique, mais s'il est perdu, toutes les options "
|
||||
"de l'interface graphique reviendront à leurs paramètres par défaut."
|
||||
|
||||
#: ../../source/technical/storage.rst:177
|
||||
msgid "Custom Word List"
|
||||
msgstr "Liste des mots personnalisés"
|
||||
|
||||
#: ../../source/technical/storage.rst:179
|
||||
msgid ""
|
||||
"A file named ``meta/userdict.json`` contains all the custom words you've "
|
||||
"added to the project for spell checking purposes. The content of the "
|
||||
"file can be edited from the **Tools** menu. If you lose this file, all "
|
||||
"your custom spell check words will be lost too."
|
||||
msgstr ""
|
||||
"Un fichier nommé ``meta/userdict.json`` contient tous les mots "
|
||||
"personnalisés que vous avez ajoutés au projet à des fins de vérification "
|
||||
"orthographique. Le contenu de ce fichier peut être édité à partir du "
|
||||
"menu **Outils**. Si vous perdez ce fichier, tous vos mots personnalisés "
|
||||
"pour la vérification orthographique seront également perdus."
|
||||
|
||||
#: ../../source/technical/storage.rst:185
|
||||
msgid "Session Stats"
|
||||
msgstr "Statistiques de la session"
|
||||
|
||||
#: ../../source/technical/storage.rst:187
|
||||
msgid ""
|
||||
"The writing progress is saved in the ``meta/sessions.jsonl`` file. This "
|
||||
"file records the length and word counts of each writing session on the "
|
||||
"given project. The file is used by the **Writing Statistics** tool. If "
|
||||
"this file is lost, the history it contains is also lost, but it has "
|
||||
"otherwise no impact on the project."
|
||||
msgstr ""
|
||||
"La progression de l'écriture est sauvegardée dans le fichier ``meta/"
|
||||
"sessions.jsonl``. Ce fichier enregistre la durée et le nombre de mots de "
|
||||
"chaque session d'écriture sur le projet donné. Ce fichier est utilisé "
|
||||
"par l'outil **Statistiques d'écriture**. Si ce fichier est perdu, "
|
||||
"l'historique qu'il contient est également perdu, mais cela n'a par "
|
||||
"ailleurs aucun impact sur le projet."
|
||||
|
||||
#: ../../source/technical/storage.rst:192
|
||||
msgid ""
|
||||
"Each session is recorded as a JSON object on a single line of the file. "
|
||||
"Each session record is appended tot he file."
|
||||
msgstr ""
|
||||
"Chaque session est enregistrée sous la forme d'un objet JSON sur une "
|
||||
"seule ligne du fichier. Chaque enregistrement de session est ajouté au "
|
||||
"fichier."
|
||||
160
docs/source/locales/fr/LC_MESSAGES/technical/tests.po
Normal file
@@ -0,0 +1,160 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-29 11:41+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/technical/tests.rst:5
|
||||
msgid "Running Tests"
|
||||
msgstr "Exécution des tests"
|
||||
|
||||
#: ../../source/technical/tests.rst:7
|
||||
msgid ""
|
||||
"The UmbraEdit source code is well covered by tests. The test framework used "
|
||||
"for the development is ``pytest`` with the use of an extension for Qt."
|
||||
msgstr ""
|
||||
"Le code source de UmbraEdit est bien couvert par des tests. Le cadre de test "
|
||||
"utilisé pour le développement est ``pytest`` avec l'utilisation d'une extension "
|
||||
"pour Qt."
|
||||
|
||||
#: ../../source/technical/tests.rst:12
|
||||
msgid "Dependencies"
|
||||
msgstr "Dépendances"
|
||||
|
||||
#: ../../source/technical/tests.rst:14
|
||||
msgid "The dependencies for running the tests can be installed with:"
|
||||
msgstr ""
|
||||
"Les dépendances nécessaires à l'exécution des tests peuvent être installées "
|
||||
"avec :"
|
||||
|
||||
#: ../../source/technical/tests.rst:20
|
||||
msgid ""
|
||||
"This will install a couple of extra packages for coverage and test management. "
|
||||
"The minimum requirement is ``pytest`` and ``pytest-qt``."
|
||||
msgstr ""
|
||||
"Cela installera quelques paquets supplémentaires pour la couverture et la "
|
||||
"gestion des tests. Le minimum requis est ``pytest`` et ``pytest-qt``."
|
||||
|
||||
#: ../../source/technical/tests.rst:25
|
||||
msgid "Simple Test Run"
|
||||
msgstr "Test simple"
|
||||
|
||||
#: ../../source/technical/tests.rst:27
|
||||
msgid ""
|
||||
"To run the tests, you simply need to execute the following from the root of the "
|
||||
"source folder:"
|
||||
msgstr ""
|
||||
"Pour exécuter les tests, il suffit d'exécuter ce qui suit à partir de la racine "
|
||||
"du dossier source :"
|
||||
|
||||
#: ../../source/technical/tests.rst:33
|
||||
msgid ""
|
||||
"Since several of the tests involve opening up the UmbraEdit GUI, you may want "
|
||||
"to disable the GUI for the duration of the test run. Moving your mouse while "
|
||||
"the tests are running may otherwise interfere with the execution of some tests."
|
||||
msgstr ""
|
||||
"Puisque plusieurs des tests impliquent l'ouverture de l'interface graphique de "
|
||||
"UmbraEdit, vous pouvez désactiver l'interface graphique pour la durée de "
|
||||
"l'exécution du test. Si vous déplacez votre souris pendant que les tests sont "
|
||||
"en cours d'exécution, vous risquez d'interférer avec l'exécution de certains "
|
||||
"tests."
|
||||
|
||||
#: ../../source/technical/tests.rst:37
|
||||
msgid ""
|
||||
"You can disable the renderring of the GUI by setting the flag "
|
||||
"``QT_QPA_PLATFORM=offscreen``:"
|
||||
msgstr ""
|
||||
"Vous pouvez désactiver le rendu de l'interface graphique en définissant le "
|
||||
"drapeau ``QT_QPA_PLATFORM=offscreen`` :"
|
||||
|
||||
#: ../../source/technical/tests.rst:45
|
||||
msgid "Advanced Options"
|
||||
msgstr "Options avancées"
|
||||
|
||||
#: ../../source/technical/tests.rst:47
|
||||
msgid ""
|
||||
"Adding the flag ``-v`` to the ``pytest`` command will increase verbosity of the "
|
||||
"test execution."
|
||||
msgstr ""
|
||||
"L'ajout du drapeau ``-v`` à la commande ``pytest`` augmente la verbosité de "
|
||||
"l'exécution du test."
|
||||
|
||||
#: ../../source/technical/tests.rst:49
|
||||
msgid "You can also add coverage report generation. For instance to HTML:"
|
||||
msgstr ""
|
||||
"Vous pouvez également ajouter la génération de rapports de couverture. Par "
|
||||
"exemple en HTML :"
|
||||
|
||||
#: ../../source/technical/tests.rst:55
|
||||
msgid "Other useful report formats are ``xml``, and ``term`` for terminal output."
|
||||
msgstr ""
|
||||
"D'autres formats de rapport utiles sont ``xml``, et ``term`` pour la sortie "
|
||||
"terminal."
|
||||
|
||||
#: ../../source/technical/tests.rst:57
|
||||
msgid ""
|
||||
"You can also run tests per subpackage of UmbraEdit with the ``-m`` command. "
|
||||
"The available subpackage groups are ``base``, ``core``, and ``gui``. Consider "
|
||||
"for instance:"
|
||||
msgstr ""
|
||||
"Vous pouvez aussi lancer des tests par sous-paquet de UmbraEdit avec la "
|
||||
"commande ``-m``. Les groupes de sous-paquetages disponibles sont ``base``, "
|
||||
"``core``, et ``gui``. Prenons un exemple :"
|
||||
|
||||
#: ../../source/technical/tests.rst:64
|
||||
msgid ""
|
||||
"This will only run the tests of the \"core\" package, that is, all the classes "
|
||||
"that deal with the project data of a UmbraEdit project. The \"gui\" tests, "
|
||||
"likewise, will run the tests for the GUI components, and the \"base\" tests "
|
||||
"cover the bits in-between."
|
||||
msgstr ""
|
||||
"Ceci n'exécutera que les tests du paquet « core », c'est-à-dire toutes les "
|
||||
"classes qui traitent les données d'un projet UmbraEdit. Les tests « gui », de "
|
||||
"même, exécuteront les tests des composants de l'interface graphique, et les "
|
||||
"tests « base » couvriront les éléments intermédiaires."
|
||||
|
||||
#: ../../source/technical/tests.rst:68
|
||||
msgid ""
|
||||
"You can also filter the tests with the ``-k`` switch. The following will do the "
|
||||
"same as ``-m core``:"
|
||||
msgstr ""
|
||||
"Vous pouvez également filtrer les tests avec le commutateur ``-k``. Ce qui suit "
|
||||
"fera la même chose que ``-m core`` :"
|
||||
|
||||
#: ../../source/technical/tests.rst:75
|
||||
msgid ""
|
||||
"All tests are named in such a way that you can filter them by adding more bits "
|
||||
"of the test names. They all start with the word \"test\". Then comes the group: "
|
||||
"\"Core\", \"Base\", \"Dlg\", \"Tool\", or \"Gui\". Finally comes the name of "
|
||||
"the class or module, which generally corresponds to a single source code file. "
|
||||
"For instance, running the following will run all tests for the document editor:"
|
||||
msgstr ""
|
||||
"Tous les tests sont nommés de manière à ce que vous puissiez les filtrer en "
|
||||
"ajoutant d'autres éléments aux noms des tests. Ils commencent tous par le mot « "
|
||||
"test ». Vient ensuite le groupe : « Core », “Base”, “Dlg”, “Tool” ou “Gui”. "
|
||||
"Enfin, vient le nom de la classe ou du module, qui correspond généralement à un "
|
||||
"seul fichier de code source. Par exemple, l'exécution de ce qui suit lancera "
|
||||
"tous les tests pour l'éditeur de documents :"
|
||||
|
||||
#: ../../source/technical/tests.rst:84
|
||||
msgid "To run a single test, simply add the full test name to the ``-k`` switch."
|
||||
msgstr ""
|
||||
"Pour lancer un seul test, il suffit d'ajouter le nom complet du test au "
|
||||
"commutateur ``-k``."
|
||||
392
docs/source/locales/fr/LC_MESSAGES/usage/advanced_formatting.po
Normal file
@@ -0,0 +1,392 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-28 16:04+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:5
|
||||
msgid "Advanced Formatting"
|
||||
msgstr "Mise en forme avancée"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:7
|
||||
msgid ""
|
||||
"Standard Markdown formatting is somewhat limited, so UmbraEdit has some "
|
||||
"additional formatting codes for special use cases. These codes are all based "
|
||||
"on brackets, and some allow an additional value to be set after a colon."
|
||||
msgstr ""
|
||||
"Le formatage Markdown standard est quelque peu limité, c'est pourquoi "
|
||||
"UmbraEdit dispose de quelques codes de formatage supplémentaires pour des "
|
||||
"cas d'utilisation particuliers. Ces codes sont tous basés sur les crochets, et "
|
||||
"certains permettent de définir une valeur supplémentaire après les deux points."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:11
|
||||
msgid "This section covers all these formatting codes."
|
||||
msgstr "Cette section couvre tous ces codes de formatage."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:17
|
||||
msgid "Formatting with Shortcodes"
|
||||
msgstr "Mise en forme avec les shortcodes"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:19
|
||||
msgid ""
|
||||
"For basic formatting, like emphasis, you should use the standard Markdown "
|
||||
"style formatting tags descried in :ref:`docs_usage_basics_emphasis` whenever "
|
||||
"possible."
|
||||
msgstr ""
|
||||
"Pour le formatage de base, comme la mise en valeur, vous devriez utiliser les "
|
||||
"balises de formatage standard du style Markdown décrites dans :ref:"
|
||||
"`docs_usage_basics_emphasis` chaque fois que possible."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:22
|
||||
msgid ""
|
||||
"For additional formatting options, you can use shortcodes. Shortcodes is a "
|
||||
"form of in-line codes that wrap the section of text to be formatted. "
|
||||
"Shortcodes can be nested to apply multiple formats to the same piece of text."
|
||||
msgstr ""
|
||||
"Pour des options de formatage supplémentaires, vous pouvez utiliser des "
|
||||
"shortcodes. Les shortcodes sont une forme de codes en ligne qui enveloppent la "
|
||||
"section de texte à mettre en forme. Les shortcodes peuvent être imbriqués pour "
|
||||
"appliquer plusieurs formats à la même partie de texte."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:26
|
||||
msgid ""
|
||||
"These shortcodes are intended for special formatting cases, or more complex "
|
||||
"cases that cannot be solved with simple Markdown-like formatting codes. "
|
||||
"Available shortcodes are listed below."
|
||||
msgstr ""
|
||||
"Ces shortcodes sont destinés à des cas de formatage spéciaux ou à des cas plus "
|
||||
"complexes qui ne peuvent pas être résolus avec de simples codes de formatage "
|
||||
"de type Markdown. Les shortcodes disponibles sont énumérés ci-dessous."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:29
|
||||
msgid "Shortcodes Formats"
|
||||
msgstr "Formats des shortcodes"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Syntax"
|
||||
msgstr "Syntaxe"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[b]text[/b]``"
|
||||
msgstr "``[b]texte[/b]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Text is displayed as bold text."
|
||||
msgstr "Le texte est affiché en gras."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[i]text[/i]``"
|
||||
msgstr "``[i]texte[/i]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Text is displayed as italicised text."
|
||||
msgstr "Le texte est affiché en italique."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[s]text[/s]``"
|
||||
msgstr "``[s]texte[/s]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Text is displayed as strike through text."
|
||||
msgstr "Le texte est affiché sous forme de texte barré."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[u]text[/u]``"
|
||||
msgstr "``[u]texte[/u]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Text is displayed as underlined text."
|
||||
msgstr "Le texte est affiché sous forme de texte souligné."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[m]text[/m]``"
|
||||
msgstr "``[m]texte[/m]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Text is displayed as highlighted text."
|
||||
msgstr "Le texte est affiché en surbrillance."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[sup]text[/sup]``"
|
||||
msgstr "``[sup]texte[/sup]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Text is displayed as superscript text."
|
||||
msgstr "Le texte est affiché en exposant."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[sub]text[/sub]``"
|
||||
msgstr "``[sub]texte[/sub]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Text is displayed as subscript text."
|
||||
msgstr "Le texte est affiché en indice."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[footnote:key]``"
|
||||
msgstr "``[footnote:clé]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "A reference to a :ref:`footnote comment <docs_usage_comments_footnotes>`."
|
||||
msgstr ""
|
||||
"Une référence à un :ref:`commentaire de note de bas de page "
|
||||
"<docs_usage_comments_footnotes>`."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:43
|
||||
msgid ""
|
||||
"Unlike Markdown style codes, these can be used anywhere within a paragraph. "
|
||||
"Even in the middle of a word if you need to. You can also freely combine them "
|
||||
"to form more complex formatting."
|
||||
msgstr ""
|
||||
"Contrairement aux codes de style Markdown, ces codes peuvent être utilisés "
|
||||
"n'importe où dans un paragraphe. Même au milieu d'un mot si nécessaire. Vous "
|
||||
"pouvez également les combiner librement pour obtenir une mise en forme plus "
|
||||
"complexe."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:46
|
||||
msgid ""
|
||||
"The shortcodes are available from the **Format** menu and in the editor "
|
||||
"toolbar, which can be activated by clicking the left-most icon button in the "
|
||||
"editor header."
|
||||
msgstr ""
|
||||
"Les shortcodes sont disponibles dans le menu **Format** et dans la barre "
|
||||
"d'outils de l'éditeur, qui peut être activée en cliquant sur l'icône la plus à "
|
||||
"gauche dans l'en-tête de l'éditeur."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:51
|
||||
msgid ""
|
||||
"Shortcodes are not processed until you generate a preview or generate a "
|
||||
"manuscript document. So there is no highlighting of the text between the "
|
||||
"formatting markers. There is also no check that your markers make sense. You "
|
||||
"must ensure that you have both the opening and closing formatting markers "
|
||||
"where you want them."
|
||||
msgstr ""
|
||||
"Les shortcodes ne sont pas traités tant que vous n'avez pas généré un aperçu "
|
||||
"ou un document manuscrit. Il n'y a donc pas de mise en évidence du texte entre "
|
||||
"les marqueurs de formatage. Il n'y a pas non plus de vérification de la "
|
||||
"logique de vos marqueurs. Vous devez vous assurer que les marqueurs de "
|
||||
"formatage d'ouverture et de fermeture se trouvent à l'endroit voulu."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:62
|
||||
msgid "Vertical Space and Page Breaks"
|
||||
msgstr "Espace vertical et sauts de page"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:64
|
||||
msgid ""
|
||||
"You can apply page breaks to partition, chapter and scene headings for novel "
|
||||
"documents from the **Manuscript Build** tool. If you need to add a page break "
|
||||
"or additional vertical spacing in other places, there are special codes "
|
||||
"available for this purpose."
|
||||
msgstr ""
|
||||
"Vous pouvez appliquer des sauts de page aux en-têtes de partition, de chapitre "
|
||||
"et de scène pour les documents de roman à partir de l'outil **Compiler le "
|
||||
"manuscrit**. Si vous avez besoin d'ajouter un saut de page ou un espacement "
|
||||
"vertical supplémentaire à d'autres endroits, il existe des codes spéciaux à "
|
||||
"cet effet."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:68
|
||||
msgid ""
|
||||
"Adding more than one line break between paragraphs will **not** increase the "
|
||||
"space between those paragraphs when generating a manuscript document. To add "
|
||||
"additional space between paragraphs, add the text ``[vspace]`` on a line of "
|
||||
"its own, and the **Manuscript Build** tool will insert a blank paragraph in "
|
||||
"its place."
|
||||
msgstr ""
|
||||
"L'ajout de plus d'un saut de ligne entre les paragraphes n'augmentera **pas** "
|
||||
"l'espace entre ces paragraphes lors de la génération d'un document manuscrit. "
|
||||
"Pour ajouter de l'espace entre les paragraphes, ajoutez le texte ``[vspace]`` "
|
||||
"sur une ligne distincte, et l'outil **Compilation du manuscrit** insérera un "
|
||||
"paragraphe vide à sa place."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:73
|
||||
msgid ""
|
||||
"If you need multiple blank paragraphs just add a colon and a number to the "
|
||||
"above code. For instance, writing ``[vspace:3]`` will insert three blank "
|
||||
"paragraphs."
|
||||
msgstr ""
|
||||
"Si vous avez besoin de plusieurs paragraphes vides, il suffit d'ajouter deux "
|
||||
"points et un chiffre au code ci-dessus. Par exemple, en écrivant "
|
||||
"``[vspace:3]``, vous insérerez trois paragraphes vides."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:76
|
||||
msgid ""
|
||||
"If you need to add a page break somewhere, put the text ``[new page]`` on a "
|
||||
"line by itself before the text you wish to start on a new page."
|
||||
msgstr ""
|
||||
"Si vous devez ajouter un saut de page quelque part, placez le texte ``[ new "
|
||||
"page]`` sur une ligne isolée avant le texte que vous souhaitez faire commencer "
|
||||
"sur une nouvelle page."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:81
|
||||
msgid ""
|
||||
"The page break code is applied to the text that follows it. It adds a \"page "
|
||||
"break before\" mark to the text when exporting to HTML or Open Document. This "
|
||||
"means that a ``[new page]`` code which has no text following it will not "
|
||||
"result in a page break."
|
||||
msgstr ""
|
||||
"Le code de saut de page est appliqué au texte qui le suit. Il ajoute une "
|
||||
"marque de « saut de page avant » au texte lors de l'exportation vers HTML ou "
|
||||
"Open Document. Cela signifie qu'un code ``[ new page]`` qui n'est suivi "
|
||||
"d'aucun texte n'entraînera pas de saut de page."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:85
|
||||
#: ../../source/usage/advanced_formatting.rst:132
|
||||
msgid ":bdg-info:`Example`"
|
||||
msgstr ":bdg-info:`Exemple`"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:104
|
||||
msgid "Inserting Word Counts in the Text"
|
||||
msgstr "Insérer le nombre de mots dans le texte"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:106
|
||||
msgid ""
|
||||
"The cover page of a manuscript normally has the word count stated on it. Any "
|
||||
"statistics value collected by UmbraEdit can be inserted into any document "
|
||||
"using a special shortcode. You can insert the code for any of the available "
|
||||
"statistics values from the **Insert** menu under **Word/Character Count**."
|
||||
msgstr ""
|
||||
"La page de couverture d'un manuscrit indique normalement le nombre de mots. "
|
||||
"Toute valeur statistique collectée par UmbraEdit peut être insérée dans "
|
||||
"n'importe quel document à l'aide d'un shortcode spécial. Vous pouvez insérer "
|
||||
"le code pour n'importe quelle valeur statistique disponible dans le menu "
|
||||
"**Insérer** sous **Nombre de mots/caractères**."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:111
|
||||
msgid ""
|
||||
"The value inserted is the actual count for your entire manuscript, so it is "
|
||||
"not populated until you run the **Manuscript Build** tool. Until then they "
|
||||
"will show up as \"0\" in the viewer panel."
|
||||
msgstr ""
|
||||
"La valeur insérée est le nombre réel pour l'ensemble de votre manuscrit, elle "
|
||||
"n'est donc pas renseignée tant que vous n'avez pas exécuté l'outil "
|
||||
"**Compilation du manuscrit**. Jusqu'à ce moment-là, ils apparaîtront sous la "
|
||||
"forme d'un « 0 » dans le panneau de visualisation."
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:114
|
||||
msgid "The available codes are:"
|
||||
msgstr "Les codes disponibles sont les suivants :"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:116
|
||||
msgid "Stats Shortcodes"
|
||||
msgstr "Shortcodes de statistiques"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Code"
|
||||
msgstr "Code"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[field:allChars]``"
|
||||
msgstr "``[field:allChars]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Characters"
|
||||
msgstr "Personnages"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[field:textChars]``"
|
||||
msgstr "``[field:textChars]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Characters in Text"
|
||||
msgstr "Caractères dans un texte"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[field:titleChars]``"
|
||||
msgstr "``[field:titleChars]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Characters in Headings"
|
||||
msgstr "Caractères dans les titres"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[field:paragraphCount]``"
|
||||
msgstr "``[field:paragraphCount]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Paragraphs"
|
||||
msgstr "Paragraphes"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[field:titleCount]``"
|
||||
msgstr "``[field:titleCount]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Headings"
|
||||
msgstr "En-têtes"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[field:allWordChars]``"
|
||||
msgstr "``[field:allWordChars]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Characters, No Spaces"
|
||||
msgstr "Caractères, sans les espaces"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[field:textWordChars]``"
|
||||
msgstr "``[field:textWordChars]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Characters in Text, No Spaces"
|
||||
msgstr "Caractères dans le texte, sans les espaces"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[field:titleWordChars]``"
|
||||
msgstr "``[field:titleWordChars]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Characters in Headings, No Spaces"
|
||||
msgstr "Caractères dans les titres, sans les espaces"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[field:allWords]``"
|
||||
msgstr "``[field:allWords]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Words"
|
||||
msgstr "Mots"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[field:textWords]``"
|
||||
msgstr "``[field:textWords]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Words in Text"
|
||||
msgstr "Mots dans le texte"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "``[field:titleWords]``"
|
||||
msgstr "``[field:titleWords]``"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:1
|
||||
msgid "Words in Headings"
|
||||
msgstr "Mots dans les entêtes"
|
||||
|
||||
#: ../../source/usage/advanced_formatting.rst:134
|
||||
msgid ""
|
||||
"This is an example cover page. A similar page is automatically generated when "
|
||||
"you create a new project."
|
||||
msgstr ""
|
||||
"Il s'agit d'un exemple de page de couverture. Une page similaire est "
|
||||
"automatiquement générée lorsque vous créez un nouveau projet."
|
||||
185
docs/source/locales/fr/LC_MESSAGES/usage/alignment_and_indent.po
Normal file
@@ -0,0 +1,185 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-28 14:45+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:5
|
||||
msgid "Alignment and Indentation"
|
||||
msgstr "Alignement et indentation"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:7
|
||||
msgid ""
|
||||
"The Markdown standard doesn't have commands for aligning text, so "
|
||||
"UmbraEdit adds its own syntax for this. It also has syntax for "
|
||||
"indentation, which is similar to Markdown block quotes."
|
||||
msgstr ""
|
||||
"Le standard Markdown n'a pas de commandes pour aligner le texte, donc "
|
||||
"UmbraEdit ajoute sa propre syntaxe pour cela. Il dispose également "
|
||||
"d'une syntaxe pour l'indentation, qui est similaire aux guillemets de "
|
||||
"bloc de Markdown."
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:12
|
||||
msgid "Paragraph Alignment and Indentation"
|
||||
msgstr "Alignement et indentation des paragraphes"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:14
|
||||
msgid ""
|
||||
"All documents have the text by default aligned to the left or justified, "
|
||||
"depending on your setting in **Preferences**."
|
||||
msgstr ""
|
||||
"Le texte de tous les documents est par défaut aligné à gauche ou "
|
||||
"justifié, selon les paramètres définis dans les **Préférences**."
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:17
|
||||
msgid ""
|
||||
"You can override the default text alignment on individual paragraphs by "
|
||||
"specifying alignment tags. These tags are double angle brackets. Either "
|
||||
"``>>`` or ``<<``. You put them either before or after the paragraph, and "
|
||||
"they will \"push\" the text towards the edge the brackets point towards. "
|
||||
"This should be fairly intuitive."
|
||||
msgstr ""
|
||||
"Vous pouvez remplacer l'alignement par défaut du texte sur des "
|
||||
"paragraphes individuels en spécifiant des balises d'alignement. Ces "
|
||||
"balises sont des doubles chevrons. Il peut s'agir de ``>>`` ou de "
|
||||
"``<<``. Vous les placez avant ou après le paragraphe, et elles « "
|
||||
"pousseront » le texte vers le bord vers lequel les crochets pointent. "
|
||||
"Cela devrait être assez intuitif."
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:22
|
||||
msgid ""
|
||||
"Indentation uses a similar syntax. But here you use a single ``>`` or "
|
||||
"``<`` to \"push\" the text away from the edge."
|
||||
msgstr ""
|
||||
"L'indentation utilise une syntaxe similaire. Mais ici, vous utilisez un "
|
||||
"seul ``>`` ou ``<`` pour éloigner le texte du bord."
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:25
|
||||
#: ../../source/usage/alignment_and_indent.rst:52
|
||||
#: ../../source/usage/alignment_and_indent.rst:69
|
||||
msgid ":bdg-info:`Example`"
|
||||
msgstr ":bdg-info:`Exemple`"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:27
|
||||
msgid "Text Alignment and Indentation"
|
||||
msgstr "Alignement et indentation du texte"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "Syntax"
|
||||
msgstr "Syntaxe"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "Description"
|
||||
msgstr "Description"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "``>> Right aligned text``"
|
||||
msgstr "``>> Texte aligné à droite``"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "The text paragraph is right-aligned."
|
||||
msgstr "Le paragraphe est aligné à droite."
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "``Left aligned text <<``"
|
||||
msgstr "``Texte aligné à gauche <<``"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "The text paragraph is left-aligned."
|
||||
msgstr "Le paragraphe est aligné à gauche."
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "``>> Centred text <<``"
|
||||
msgstr "``>> Texte centré <<``"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "The text paragraph is centred."
|
||||
msgstr "Le paragraphe est centré."
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "``> Left indented text``"
|
||||
msgstr "``> Texte en retrait à gauche``"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "The text has an increased left margin."
|
||||
msgstr "Le texte a une marge gauche plus importante."
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "``Right indented text <``"
|
||||
msgstr "``Texte en retrait à droite <``"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "The text has an increased right margin."
|
||||
msgstr "Le texte a une marge droite plus importante."
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "``> Left/right indented text <``"
|
||||
msgstr "``> Texte indenté gauche/droite <```"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:1
|
||||
msgid "The text has both margins increased."
|
||||
msgstr "Les deux marges du texte ont été augmentées."
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:41
|
||||
msgid ""
|
||||
"The text editor will not show the alignment and indentation live. But "
|
||||
"the viewer will show them when you open the document there. It will of "
|
||||
"course also be reflected in the document generated from the **Manuscript "
|
||||
"Build** tool as long as the format supports paragraph alignment."
|
||||
msgstr ""
|
||||
"L'éditeur de texte n'affiche pas l'alignement et l'indentation en "
|
||||
"direct. Mais l'afficheur les affichera lorsque vous y ouvrirez le "
|
||||
"document. Ils seront bien sûr également reflétés dans le document généré "
|
||||
"par l'outil de compilation de manuscrits, à condition que le format "
|
||||
"prenne en charge l'alignement des paragraphes."
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:47
|
||||
msgid "Alignment with Line Breaks"
|
||||
msgstr "Alignement avec les sauts de ligne"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:49
|
||||
msgid ""
|
||||
"If you have line breaks in the paragraph, the markers for all the lines "
|
||||
"are combined and used for the entire paragraph. For the following text, "
|
||||
"all lines will be centred:"
|
||||
msgstr ""
|
||||
"Si le paragraphe comporte des retours à la ligne, les marqueurs de "
|
||||
"toutes les lignes sont combinés et utilisés pour l'ensemble du "
|
||||
"paragraphe. Pour le texte suivant, toutes les lignes seront centrées :"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:63
|
||||
msgid "Alignment with First Line Indent"
|
||||
msgstr "Alignement sur le retrait de la première ligne"
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:65
|
||||
msgid ""
|
||||
"If you have first line indent enabled in your manuscript build settings, "
|
||||
"you probably want to disable it for text in verses. Adding any alignment "
|
||||
"tags will cause the first line indent to be switched off for that "
|
||||
"paragraph."
|
||||
msgstr ""
|
||||
"Si vous avez activé le retrait de première ligne dans les paramètres de "
|
||||
"compilation de votre Manuscrit, vous voudrez probablement le désactiver "
|
||||
"pour le texte en vers. L'ajout de balises d'alignement entraînera la "
|
||||
"désactivation du retrait de première ligne pour ce paragraphe."
|
||||
|
||||
#: ../../source/usage/alignment_and_indent.rst:71
|
||||
msgid "The following text will always be aligned against the left margin:"
|
||||
msgstr "Le texte suivant sera toujours aligné sur la marge de gauche :"
|
||||
219
docs/source/locales/fr/LC_MESSAGES/usage/basic_formatting.po
Normal file
@@ -0,0 +1,219 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-28 10:44+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:5
|
||||
msgid "Basic Formatting"
|
||||
msgstr "Mise en forme de base"
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:9
|
||||
msgid ""
|
||||
"The basic text formatting syntax of UmbraEdit is based on Markdown_. "
|
||||
"It is only a subset of the Markdown syntax though. Lists, images, and "
|
||||
"links are not supported."
|
||||
msgstr ""
|
||||
"La syntaxe de formatage de texte de base de UmbraEdit est basée sur "
|
||||
"Markdown_. Il ne s'agit toutefois que d'un sous-ensemble de la syntaxe "
|
||||
"Markdown. Les listes, les images et les liens ne sont pas pris en charge."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:12
|
||||
msgid ""
|
||||
"That said, URLs in the text should automatically be highlighted and "
|
||||
"become clickable. However, only URLs starting with \"http\" or \"https\" "
|
||||
"are recognised. In the editor, you must hold down the :kbd:`Ctrl` key "
|
||||
"when clicking a URL to follow it."
|
||||
msgstr ""
|
||||
"Cela dit, les URL dans le texte devraient automatiquement être mis en "
|
||||
"évidence et devenir cliquables. Cependant, seules les URL commençant par "
|
||||
"« http » ou « https » sont reconnues. Dans l'éditeur, vous devez "
|
||||
"maintenir la touche :kbd:`Ctrl` enfoncée lorsque vous cliquez sur une "
|
||||
"URL pour la suivre."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:20
|
||||
msgid "Text Paragraphs"
|
||||
msgstr "Paragraphes du texte"
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:22
|
||||
msgid ""
|
||||
"A text paragraph is indicated by a blank line. That is, you need two "
|
||||
"line breaks to separate two fragments of text into two paragraphs. "
|
||||
"Single line breaks are treated as line breaks within a paragraph."
|
||||
msgstr ""
|
||||
"Un paragraphe de texte est indiqué par une ligne blanche. En d'autres "
|
||||
"termes, il faut deux sauts de ligne pour séparer deux fragments de texte "
|
||||
"en deux paragraphes. Les sauts de ligne simples sont traités comme des "
|
||||
"sauts de ligne à l'intérieur d'un paragraphe."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:26
|
||||
msgid ""
|
||||
"It is important that you actually follow this rule. You should not, for "
|
||||
"instance, mimic indented paragraphs manually in the editor. This, and a "
|
||||
"lot of other formatting options that can be applied to text paragraphs "
|
||||
"in the :ref:`Manuscript Tool <docs_ui_manuscript>` depend on paragraphs "
|
||||
"being separated by blank lines."
|
||||
msgstr ""
|
||||
"Il est important de respecter cette règle. Vous ne devez pas, par "
|
||||
"exemple, imiter les paragraphes indentés manuellement dans l'éditeur. "
|
||||
"Ceci, ainsi que beaucoup d'autres options de formatage qui peuvent être "
|
||||
"appliquées aux paragraphes de texte dans l'outil :ref:`Manuscript Tool "
|
||||
"<docs_ui_manuscript>`, dépendent du fait que les paragraphes sont "
|
||||
"séparés par des lignes vides."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:31
|
||||
msgid ":bdg-success:`Correct`"
|
||||
msgstr ":bdg-success:`Correct`"
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:41
|
||||
msgid ":bdg-danger:`Incorrect`"
|
||||
msgstr ":bdg-danger:`Incorrect`"
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:50
|
||||
msgid ""
|
||||
"If you do as shown in the \"Incorrect\" example, UmbraEdit will "
|
||||
"understand this as a single paragraph with two lines."
|
||||
msgstr ""
|
||||
"Si vous procédez comme dans l'exemple « Incorrect », UmbraEdit "
|
||||
"comprendra qu'il s'agit d'un seul paragraphe de deux lignes."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:57
|
||||
msgid "Text Emphasis with Markdown"
|
||||
msgstr "Mise en valeur du texte avec Markdown"
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:59
|
||||
msgid ""
|
||||
"A minimal set of Markdown text emphasis styles are supported for text "
|
||||
"paragraphs."
|
||||
msgstr ""
|
||||
"Un ensemble minimal de styles d'accentuation de texte Markdown est pris "
|
||||
"en charge pour les paragraphes de texte."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:61
|
||||
msgid "``_text_``"
|
||||
msgstr "``_texte_``"
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:62
|
||||
msgid "The text is rendered as emphasised text (italicised)."
|
||||
msgstr "Le texte est rendu en italique."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:64
|
||||
msgid "``**text**``"
|
||||
msgstr "``**texte**``"
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:65
|
||||
msgid "The text is rendered as strongly emphasised text (bold)."
|
||||
msgstr "Le texte est rendu en gras."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:67
|
||||
msgid "``~~text~~``"
|
||||
msgstr "``~~texte~~``"
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:68
|
||||
msgid "Strike through text."
|
||||
msgstr "Barrer le texte."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:70
|
||||
msgid ""
|
||||
"In Markdown guides it is often recommended to differentiate between "
|
||||
"strong emphasis and emphasis by using ``**`` for strong and ``_`` for "
|
||||
"emphasis, although Markdown generally also supports ``__`` for strong "
|
||||
"and ``*`` for emphasis. However, since the differentiation makes the "
|
||||
"highlighting and conversion significantly simpler and faster, in "
|
||||
"UmbraEdit this is a rule, not just a recommendation."
|
||||
msgstr ""
|
||||
"Dans les guides Markdown, il est souvent recommandé de différencier le "
|
||||
"gras de l'italique en utilisant ``**`` pour le gras et ``_`` pour "
|
||||
"l'italique, bien que Markdown supporte également ``__`` pour le gras et "
|
||||
"``*`` pour l'italique. Cependant, puisque la différenciation rend la "
|
||||
"mise en évidence et la conversion significativement plus simple et plus "
|
||||
"rapide, dans UmbraEdit il s'agit d'une règle et non d'une simple "
|
||||
"recommandation."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:76
|
||||
msgid "In addition, the following rules apply:"
|
||||
msgstr "En outre, les règles suivantes s'appliquent :"
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:78
|
||||
msgid ""
|
||||
"The emphasis and strike through formatting tags do not allow spaces "
|
||||
"between the words and the tag itself. That is, ``**text**`` is valid, "
|
||||
"``**text **`` is not."
|
||||
msgstr ""
|
||||
"Les balises de mise en valeur et de biffage n'autorisent pas les espaces "
|
||||
"entre les mots et la balise elle-même. Autrement dit, ``**texte**`` est "
|
||||
"valide, ``**texte **`` ne l'est pas."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:80
|
||||
msgid ""
|
||||
"More generally, the delimiters must be on the outer edge of words. That "
|
||||
"is, ``some **text in bold** here`` is valid, ``some** text in bold** "
|
||||
"here`` is not."
|
||||
msgstr ""
|
||||
"Plus généralement, les délimiteurs doivent se trouver aux bords des "
|
||||
"mots. Autrement dit, « certains **textes en gras** ici » sont valides, « "
|
||||
"certains** textes en gras** ici » ne le sont pas."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:82
|
||||
msgid ""
|
||||
"If using both ``**`` and ``_`` to wrap the same text, the underscore "
|
||||
"must be the **inner** wrapper. This is due to the underscore also being "
|
||||
"a valid word character, so if they are on the outside, they violate rule "
|
||||
"2."
|
||||
msgstr ""
|
||||
"Si vous utilisez à la fois ``**`` et ``_`` pour envelopper le même "
|
||||
"texte, le trait de soulignement doit être à **l'intérieure**. Ceci est "
|
||||
"dû au fait que le trait de soulignement est également un caractère "
|
||||
"verbal valide, donc s'il est à l'extérieur, il viole la règle 2."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:85
|
||||
msgid ""
|
||||
"Text emphasis does not span past line breaks. If you need to add "
|
||||
"emphasis to multiple lines or paragraphs, you must apply it to each of "
|
||||
"them in turn."
|
||||
msgstr ""
|
||||
"L'accentuation du texte ne s'étend pas au-delà des sauts de ligne. Si "
|
||||
"vous devez ajouter une emphase à plusieurs lignes ou paragraphes, vous "
|
||||
"devez l'appliquer à chacun d'entre eux à tour de rôle."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:87
|
||||
msgid ""
|
||||
"Text emphasis can only be used in comments and paragraphs. Headings and "
|
||||
"meta data tags don't allow for formatting, and any formatting markup "
|
||||
"will be displayed as-is."
|
||||
msgstr ""
|
||||
"Cette mise en valeur du texte ne peut être utilisée que dans les "
|
||||
"commentaires et les paragraphes. Les titres et les balises de "
|
||||
"métadonnées ne permettent pas la mise en forme, et toute marque de mise "
|
||||
"en forme sera affichée telle quelle."
|
||||
|
||||
#: ../../source/usage/basic_formatting.rst:92
|
||||
msgid ""
|
||||
"UmbraEdit supports standard escape syntax for the emphasis markup "
|
||||
"characters in case the editor misunderstands your intended usage of "
|
||||
"them. That is, ``\\*``, ``\\_`` and ``\\~`` will generate a plain ``*``, "
|
||||
"``_`` and ``~``, respectively, without interpreting them as part of the "
|
||||
"markup."
|
||||
msgstr ""
|
||||
"UmbraEdit supporte la syntaxe d'échappement standard pour les "
|
||||
"caractères d'accentuation au cas où l'éditeur ne comprendrait pas "
|
||||
"l'usage que vous voulez en faire. C'est-à-dire que ``\\*``, ``\\_`` et "
|
||||
"``\\~`` généreront respectivement un ``*``, ``_`` et ``~``, sans les "
|
||||
"interpréter comme faisant partie du balisage."
|
||||
261
docs/source/locales/fr/LC_MESSAGES/usage/chapters_and_scenes.po
Normal file
@@ -0,0 +1,261 @@
|
||||
# SOME DESCRIPTIVE TITLE.
|
||||
# Copyright (C) 2025
|
||||
# This file is distributed under the same license as the UmbraEdit
|
||||
# package.
|
||||
# FIRST AUTHOR <EMAIL@ADDRESS>, 2025.
|
||||
#
|
||||
#, fuzzy
|
||||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: UmbraEdit 2.7rc1\n"
|
||||
"Report-Msgid-Bugs-To: \n"
|
||||
"POT-Creation-Date: 2025-05-27 19:59+0200\n"
|
||||
"PO-Revision-Date: 2025-05-29 14:27+0200\n"
|
||||
"Last-Translator: \n"
|
||||
"Language-Team: fr <LL@li.org>\n"
|
||||
"Language: fr\n"
|
||||
"MIME-Version: 1.0\n"
|
||||
"Content-Type: text/plain; charset=utf-8\n"
|
||||
"Content-Transfer-Encoding: 8bit\n"
|
||||
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
|
||||
"Generated-By: Babel 2.16.0\n"
|
||||
"X-Generator: Poedit 3.4.2\n"
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:5
|
||||
msgid "Chapters and Scenes"
|
||||
msgstr "Chapitres et scènes"
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:9
|
||||
msgid ""
|
||||
"Since UmbraEdit uses a plain text format, the structure of your novel must "
|
||||
"follow a certain set of simple rules. For documents in a **Novel** type root "
|
||||
"folder, it is the heading that determines if the document is a chapter or a "
|
||||
"scene."
|
||||
msgstr ""
|
||||
"Comme UmbraEdit utilise un format de texte brut, la structure de votre "
|
||||
"roman doit suivre un certain nombre de règles simples. Pour les documents "
|
||||
"situés dans un dossier racine de type **Roman**, c'est le titre qui détermine "
|
||||
"s'il s'agit d'un chapitre ou d'une scène."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:13
|
||||
msgid ""
|
||||
"The formatting of headings is based on Markdown_. A heading is indicated by a "
|
||||
"line starting with one or more ``#`` characters. It accepts up to four of "
|
||||
"these. You can use multiple headings in the same document, but it is the "
|
||||
"first heading that determines which icon and information is displayed in the "
|
||||
"project tree."
|
||||
msgstr ""
|
||||
"Le formatage des titres est basé sur Markdown_. Un titre est indiqué par une "
|
||||
"ligne commençant par un ou plusieurs caractères ``#``. Il en accepte jusqu'à "
|
||||
"quatre. Vous pouvez utiliser plusieurs titres dans le même document, mais "
|
||||
"c'est le premier titre qui détermine l'icône et les informations affichées "
|
||||
"dans l'arborescence du projet."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:20
|
||||
msgid ""
|
||||
"You can use the same heading levels for your notes in the other root folders, "
|
||||
"but they aren't treated as chapters or scenes, so there you are free to use "
|
||||
"them as you want."
|
||||
msgstr ""
|
||||
"Vous pouvez utiliser les mêmes niveaux de titres pour vos notes dans les "
|
||||
"autres dossiers racines, mais ils ne sont pas traités comme des chapitres ou "
|
||||
"des scènes, et vous êtes donc libre de les utiliser comme vous le souhaitez."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:27
|
||||
msgid "Heading Levels"
|
||||
msgstr "Niveaux d'en-tête"
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:31
|
||||
msgid "An illustration of how heading levels correspond to the novel structure."
|
||||
msgstr ""
|
||||
"Illustration de la correspondance entre les niveaux d'en-tête et la structure "
|
||||
"du roman."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:33
|
||||
msgid ""
|
||||
"Four levels of headings are understood for novel documents. You can pick and "
|
||||
"choose from these as you want, but if your story has chapters, you should use "
|
||||
"these headings to indicate them. If you also add scene headings, you have "
|
||||
"better control of how your scene separators are formatted in your manuscript. "
|
||||
"The chapter and scenes headings are also displayed in the :ref:`Novel View "
|
||||
"<docs_ui_main_novel>` and :ref:`Outline View <docs_ui_main_outline>`."
|
||||
msgstr ""
|
||||
"Quatre niveaux d'en-têtes sont prévus pour les documents de roman. Vous "
|
||||
"pouvez les choisir à votre guise, mais si votre histoire comporte des "
|
||||
"chapitres, vous devez utiliser ces titres pour les indiquer. Si vous ajoutez "
|
||||
"également des titres de scènes, vous pourrez mieux contrôler la façon dont "
|
||||
"vos séparateurs de scènes sont formatés dans votre manuscrit. Les titres de "
|
||||
"chapitres et de scènes sont également affichés dans les vues :ref:`Novel View "
|
||||
"<docs_ui_main_novel>` et :ref:`Outline View <docs_ui_main_outline>`."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:39
|
||||
msgid "``# Title Text``"
|
||||
msgstr "``# Texte de titre``"
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:40
|
||||
msgid ""
|
||||
"This is a heading level one. This heading indicates the start of a new "
|
||||
"partition. Partitions are for when you want to split your story into \"Part "
|
||||
"1\", \"Part 2\", etc. You can also choose to use them for splitting the text "
|
||||
"up into acts, and then hide these headings in your manuscript so that they "
|
||||
"are not included in the output."
|
||||
msgstr ""
|
||||
"Il s'agit d'une en-tête de niveau un. Ce titre indique le début d'une "
|
||||
"nouvelle partie. Les parties sont utilisées lorsque vous souhaitez diviser "
|
||||
"votre histoire en « Partie 1 », « Partie 2 », etc. Vous pouvez également "
|
||||
"choisir de les utiliser pour diviser le texte en actes, puis de masquer ces "
|
||||
"titres dans votre manuscrit afin qu'ils ne soient pas inclus dans la sortie."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:45
|
||||
msgid "``## Chapter Title``"
|
||||
msgstr "``## Titre de chapitre``"
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:46
|
||||
msgid ""
|
||||
"This is a heading level two. This heading indicates the start of a new "
|
||||
"chapter. Chapter numbers can be inserted automatically when building the "
|
||||
"manuscript, so you don't have to do this in the title. See :ref:"
|
||||
"`docs_ui_manuscript_head_numbers` for more details."
|
||||
msgstr ""
|
||||
"Il s'agit d'une en-tête de niveau deux. Ce titre indique le début d'un "
|
||||
"nouveau chapitre. Les numéros de chapitre peuvent être insérés "
|
||||
"automatiquement lors de la construction du manuscrit, de sorte que vous "
|
||||
"n'avez pas à le faire dans le titre. Voir :ref:"
|
||||
"`docs_ui_manuscript_head_numbers` pour plus de détails."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:50
|
||||
msgid "``### Scene Title``"
|
||||
msgstr "``### Titre de scène``"
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:51
|
||||
msgid ""
|
||||
"This is a heading level three. This heading indicates the start of a new "
|
||||
"scene. Scene numbers or scene separators can be inserted automatically when "
|
||||
"building the manuscript, so you can use the title field as a working title "
|
||||
"for your scenes if you wish, but you must provide a minimal title."
|
||||
msgstr ""
|
||||
"Il s'agit d'une en-tête de niveau trois. Ce titre indique le début d'une "
|
||||
"nouvelle scène. Des numéros de scène ou des séparateurs de scène peuvent être "
|
||||
"insérés automatiquement lors de la construction du manuscrit. Vous pouvez "
|
||||
"donc utiliser le champ titre comme titre de travail pour vos scènes si vous "
|
||||
"le souhaitez, mais vous devez fournir un titre minimal."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:56
|
||||
msgid "``#### Section Title``"
|
||||
msgstr "``#### Titre de section``"
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:57
|
||||
msgid ""
|
||||
"This is a heading level four. This heading indicates the start of a new "
|
||||
"section. Section titles can be replaced by separators or ignored completely "
|
||||
"when building the manuscript. The meaning of a section is really whatever you "
|
||||
"want it to be. You can use it to split your scenes up into chunks, or into "
|
||||
"separate documents."
|
||||
msgstr ""
|
||||
"Il s'agit d'une en-tête de niveau quatre. Ce titre indique le début d'une "
|
||||
"nouvelle section. Les titres de section peuvent être remplacés par des "
|
||||
"séparateurs ou ignorés complètement lors de la construction du manuscrit. La "
|
||||
"signification d'une section est en fait celle que vous voulez lui donner. "
|
||||
"Vous pouvez l'utiliser pour diviser vos scènes en morceaux ou en documents "
|
||||
"distincts."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:62
|
||||
msgid ""
|
||||
"For headings level one through three, adding a ``!`` modifies the meaning of "
|
||||
"the heading. The alternative meaning of the heading is only relevant when you "
|
||||
"generate your manuscript, but you may want to keep the use cases in mind "
|
||||
"while writing."
|
||||
msgstr ""
|
||||
"Pour les en-têtes de niveau un à trois, l'ajout d'un ``!`` modifie la "
|
||||
"signification de l'en-tête. La signification alternative de l'en-tête n'est "
|
||||
"pertinente que lorsque vous générez votre manuscrit, mais vous pouvez garder "
|
||||
"à l'esprit les cas d'utilisation lors de la rédaction."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:66
|
||||
msgid "``#! Title Text``"
|
||||
msgstr "``#! Texte de titre``"
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:67
|
||||
msgid ""
|
||||
"This tells the **Manuscript Build** tool that the level one heading is "
|
||||
"intended to be used for the novel or notes folder's main title, like for "
|
||||
"instance the novel title on the cover page. When building the manuscript, "
|
||||
"this will use a different styling of the title, which you can modify "
|
||||
"independently from how partition titles are styled. See :ref:"
|
||||
"`docs_usage_front_back_matter_title` for more details."
|
||||
msgstr ""
|
||||
"Cela indique à l'outil **Compiler le manuscrit** que l'en-tête de niveau un "
|
||||
"est destiné à être utilisé pour le titre principal du roman ou du dossier de "
|
||||
"notes, comme par exemple le titre du roman sur la page de couverture. Lors de "
|
||||
"la compilation du manuscrit, l'outil utilisera un style différent pour le "
|
||||
"titre, que vous pouvez modifier indépendamment de la façon dont les titres "
|
||||
"des parties sont stylisés. Voir :ref:`docs_usage_front_back_matter_title` "
|
||||
"pour plus de détails."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:73
|
||||
msgid "``##! Chapter Title``"
|
||||
msgstr "``## ! Titre de chapitre``"
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:74
|
||||
msgid ""
|
||||
"This tells the **Manuscript Build** tool to not assign a chapter number to "
|
||||
"this chapter title if automatic chapter numbers are enabled. Such titles are "
|
||||
"useful for prologues and epilogues for instance. See :ref:"
|
||||
"`docs_usage_front_back_matter_unnumbered` for more details."
|
||||
msgstr ""
|
||||
"Cette option indique à l'outil **Compilation du manuscrit** de ne pas "
|
||||
"attribuer de numéro de chapitre à ce titre de chapitre si la numérotation "
|
||||
"automatique des chapitres est activée. De tels titres sont utiles pour les "
|
||||
"prologues et les épilogues par exemple. Voir :ref:"
|
||||
"`docs_usage_front_back_matter_unnumbered` pour plus de détails."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:78
|
||||
msgid "``###! Scene Title``"
|
||||
msgstr "``###! Titre de scène``"
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:79
|
||||
msgid ""
|
||||
"This is an alternative scene heading that can be formatted differently in the "
|
||||
"**Manuscript Build** tool. It is intended for separating \"soft\" and "
|
||||
"\"hard\" scene breaks. Aside from this, it behaves identically to a regular "
|
||||
"scene heading. See :ref:`docs_ui_manuscript_head_hard_soft` for more details."
|
||||
msgstr ""
|
||||
"Il s'agit d'un titre de scène alternatif qui peut être formaté différemment "
|
||||
"dans l'outil **Compilation du manuscrit**. Il est destiné à séparer les "
|
||||
"coupures de scène « douces » et « dures ». A part cela, il se comporte de la "
|
||||
"même manière qu'un titre de scène normal. Voir :ref:"
|
||||
"`docs_ui_manuscript_head_hard_soft` pour plus de détails."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:84
|
||||
msgid ""
|
||||
"The formatting of these headings can be customised quite extensively in the :"
|
||||
"ref:`Manuscript Tool <docs_ui_manuscript>`, which is covered in a separate "
|
||||
"part of the documentation."
|
||||
msgstr ""
|
||||
"Le formatage de ces en-têtes peut être personnalisé de manière assez poussée "
|
||||
"dans l'outil :ref:`Manuscript Tool <docs_ui_manuscript>`, qui fait l'objet "
|
||||
"d'une partie distincte de la documentation."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:90
|
||||
msgid ""
|
||||
"The space after the ``#`` or ``!`` character is mandatory. The editor will "
|
||||
"change colour and font size when the heading is correctly formatted."
|
||||
msgstr ""
|
||||
"L'espace après le caractère ``#`` ou ``!`` est obligatoire. L'éditeur "
|
||||
"changera de couleur et de taille de police lorsque le titre sera correctement "
|
||||
"formaté."
|
||||
|
||||
#: ../../source/usage/chapters_and_scenes.rst:93
|
||||
msgid ""
|
||||
"Page breaks can be automatically added before titles, partition, chapter and "
|
||||
"scene headings from the **Manuscript Build** tool when you build your project "
|
||||
"to a format that supports page breaks. If you want page breaks in other "
|
||||
"places, you have to specify them manually. See :ref:"
|
||||
"`docs_usage_formatting_breaks` for more details."
|
||||
msgstr ""
|
||||
"Les sauts de page peuvent être automatiquement ajoutés avant les titres, les "
|
||||
"parties, les chapitres et les scènes à partir de l'outil **Compilation du "
|
||||
"manuscrit** lorsque vous créez votre projet dans un format qui prend en "
|
||||
"charge les sauts de page. Si vous voulez des sauts de page à d'autres "
|
||||
"endroits, vous devez les spécifier manuellement. Voir :ref:"
|
||||
"`docs_usage_formatting_breaks` pour plus de détails."
|
||||