Commit graph

8636 commits

Author SHA1 Message Date
Oneric
6d9901ee3c po/make_pot: use gettext to process desktop file
gettext understands desktop files since 0.19 (2014),
so there’s no need for custom grep logic. This change
matches meson’s i18n which also uses gettext for this.

As a side efffect of this some long strings now get
broken into multiple lines (cosmetic only) and some
blank line gaps are normalised by gettext.

Cherry picks: 0e29c8d0e4
With fixups from: e98b7292f1
2023-04-30 17:38:28 +02:00
Oneric
afa290ecfb po/make_pot: don't silently omit strings if utilities are missing
Instead abort the script on any errors, which
also helps detecting other unexpected errors.

Adopts parts of: 940181c7bc
  and 4aee271d03
2023-04-30 17:10:27 +02:00
Oneric
87d810254c po/make_pot: sort lua files in POT
find may output matching files in any order.
To avoid unnecessary changes between regeneration
sort its output. For C++ sources xgettext’s --sort-by-file
already has an equivalent effect. All other files are already
statically listed in a fixed order.

Adopts part of: 4aee271d03
2023-04-30 17:10:27 +02:00
Oneric
5c00368e85 build: consider all translation keywords for C++
And document which aprts are still missing.
The keyword list is are copied from make_pot.sh.
Sorting by file helps keeping future PO(T) update diffs small'ish
and is also done in wangqr’s PO-file update procedure. (POT file
generation also sorts, but by preapplying `LC_ALL=C sort` to the
file list instead of using xgettext’s sorting option.)

Without this, meson’s aegisub-pot missed the majority of translatable
strings from C++ sources. While this brings the target much closerto
make_pot.sh, the remaining strings aren't straigthforward to integrate
unfortunately. At the time of writing meson has no support for iss files
and make_pot.sh uses custom logic to select only specific strings
from Lua and JSON files.

Even after this commit, POT updates should
thus still continue to use make_pot.sh.
2023-04-30 17:10:24 +02:00
Oneric
8c35b1d642 Integrate appdata.xml into meson build
It used to be genrated and installed by the old custom build system,
but apparently got lost in switching to meson.

Rename to .in.in instead of .template.in, since i18n otherwise gets
utterly confused failing to recognise the file type and both erroring
out with "no ITS rules found" during merge_file and failing to extract
any translatable strings.
Also drop underscores which were previously processed by intltool.

This doesn't yet automatically replace the release version and date
in the appdata file, but neither did the old build.

Note: while this slightly improves the situation, meson’s aegisub-pot
target is still missing many strings. make_pot.sh should be used.
2023-04-30 03:09:56 +02:00
Oneric
2b33e45f23 Update links in appdata.xml 2023-04-30 03:09:56 +02:00
Oneric
66efa84eed Integrate desktop file translation into meson
meson’s i18n module get’s confused by .template and fails
to extract translatable strings, thus rename to in.in.

Note: while this slightly improves the situation, meson’s aegisub-pot
target is still missing many strings. make_pot.sh should be used.
2023-04-30 03:09:56 +02:00
Oneric
429455263f Fix generation and translation of desktop file
a91c4f70c3 switched processing of the
desktop file from intltool to gettext-backed i18n.merge_file and dropped
leading underscores which used to be processed by intltool.

However, this commit omitted dropping the underscore from Keywords,
resulting in this field being stripped from the installed version.

Furthermore, make_pot.sh was broken since it too relied on the
underscore meaning POT regeneration will now remove the desktop files
strings from translation files.
Since it was not added to po/POTFILES meson’s native aegisub-pot target
also doesn't add desktop file strings to the translation pool. Though,
this target still misses a lot of other strings as well and shouldn't be
used yet anyway.

This commit removes leftover underscores and reintegrates desktop file
strings into both make_pot.sh. Integration into aegisub-pot is done in a
follow-up commit.
2023-04-30 03:09:56 +02:00
arch1t3cht
db0e79323f Merge branch 'vapoursynth' into feature 2023-04-29 21:28:36 +02:00
arch1t3cht
3d278547fe vapoursynth: Add Mac support 2023-04-29 21:24:14 +02:00
arch1t3cht
ff20805ae6 Merge branch 'vector_clip_actions' into feature 2023-04-29 01:16:08 +02:00
arch1t3cht
20cc0b8077 perspective tool: Support drawings
This will not work in more complex cases like lines containing both text
and drawings, but it's correct in simpler ones.
2023-04-29 01:11:38 +02:00
arch1t3cht
9c2d6169c6 perspective tool: Fix uninitialized variable 2023-04-29 01:11:15 +02:00
arch1t3cht
82dffcb9f9 Disallow negative spacing in style editor again
Since it turns out that this is not supported by the renderer anyway,
see arch1t3cht/Aegisub#48 .
2023-04-27 16:02:26 +02:00
arch1t3cht
00e241d74b Merge branches 'video_panning_option' and 'bestsource' into feature 2023-04-23 15:39:41 +02:00
arch1t3cht
0c057ebddb bestsource: Unify some messages with ffms2's 2023-04-23 15:39:11 +02:00
arch1t3cht
0f13a75a42 video zoom: Fix reset command capitalization 2023-04-21 22:59:02 +02:00
arch1t3cht
18fd966bd9 Merge branch 'bugfixes' into feature 2023-04-21 16:38:55 +02:00
arch1t3cht
165cb14879 Add AppImage build on linux
This consists of a meson option that
- sets a flag to make Aegisub read paths relative to the executable
- makes meson set up the symlinks like AppRun and .DirIcon as following
  the AppDir format

and a CI workflow that builds with this option, installs to an AppDir
directory, and bundles it as an AppImage.

Modified from arch1t3cht/Aegisub#12 .

Co-authored-by: Fred Brennan <copypaste@kittens.ph>
2023-04-21 16:23:01 +02:00
arch1t3cht
43d65b906b Also detect fonts used in drawings in font collector 2023-04-07 18:49:09 +02:00
arch1t3cht
26a5f00c8a Merge branch 'bugfixes' into feature 2023-03-28 08:40:58 +02:00
arch1t3cht
8633e2c4ae mac: Statically link ffms2
This is to make sure we're building the git version that fixes the
PAFF seeking regression and contains the workarounds for VPX/AV1.
2023-03-28 08:39:04 +02:00
arch1t3cht
1de8d04a43 Merge branches 'bugfixes' and 'vapoursynth' into feature 2023-03-24 20:31:07 +01:00
arch1t3cht
883a1b2a73 installer and ci: Throw more errors on failure
This makes it easier to notice when installer generation failed.
2023-03-24 20:30:17 +01:00
arch1t3cht
0d5063bf79 Ship en_US hunspell dictionaries on Windows and OSX
For now, this uses the same OpenOffice dictionaries that were used in
previous official releases, downloaded from
https://sourceforge.net/projects/openofficeorg.mirror/files/contrib/dictionaries/
In the future this could be updated to some newer dictionary like
SCOWL's.

Fixes arch1t3cht/Aegisub#21.
2023-03-24 20:30:17 +01:00
LightArrowsEXE
178551071e make_keyframes: Set default format to GRAY8
This will allow clips with non-standard resolutions to be downscaled without any concerns.
2023-03-24 01:01:29 +01:00
arch1t3cht
9a7314015f vapoursynth: Unify capitalization 2023-03-24 01:01:29 +01:00
arch1t3cht
af9d659c93 vapoursynth: Add try_get_keyframes function to aegisub_vs.py 2023-03-24 01:01:29 +01:00
LightArrowsEXE
84d67c73b0 make_keyframes: Set default format to GRAY8
This will allow clips with non-standard resolutions to be downscaled without any concerns.
2023-03-16 15:14:08 +01:00
arch1t3cht
256ddab369 vapoursynth: Ship plugins on windows and add ensure_plugin function 2023-03-16 02:26:10 +01:00
arch1t3cht
61b8a16cd8 vapoursynth: Unify capitalization 2023-03-16 02:26:10 +01:00
arch1t3cht
041e9fc70c vapoursynth: Add try_get_keyframes function to aegisub_vs.py 2023-03-16 02:26:10 +01:00
arch1t3cht
e7e56ef5e0 Fix validation for perspective/lock_outer 2023-03-04 13:32:55 +01:00
arch1t3cht
5050bad8ac lua: Scroll large dialogs automatically 2023-03-04 12:52:46 +01:00
arch1t3cht
d2c46f5dca bestsource: Forward error messages 2023-02-28 15:17:11 +01:00
arch1t3cht
798262ff1c Merge branch 'fixes' into feature 2023-02-25 12:33:15 +01:00
arch1t3cht
15d215f36d lua: Interact with clipboard on main gui thread
Fixes arch1t3cht/Aegisub#22 .
2023-02-25 12:31:27 +01:00
arch1t3cht
fde3dd0dbf Merge branch 'fixes' into feature 2023-02-25 02:24:28 +01:00
arch1t3cht
7f52346f06 lua: Handle file dialogs completely on main gui thread
wx doesn't seem to like the dialogs being created on some other worker
thread, which makes file dialogs opened by lua scripts crash in various
ways on Linux. Doing everything on the main thread hopefully fixes this.

Fixes TypesettingTools/Aegisub#51 .
2023-02-25 02:22:13 +01:00
arch1t3cht
6f073c6a31 Merge branch 'vapoursynth' into feature 2023-02-24 01:42:58 +01:00
arch1t3cht
1f2eaaf6e4 vapoursynth: Show logged messages in progress window 2023-02-24 01:42:30 +01:00
arch1t3cht
097a0f45be vapoursynth: Remove file access checks
These are broken in some edge cases, such as smb mounts on Windows.
Paired with d96fc1f70d.
2023-02-24 01:42:30 +01:00
arch1t3cht
628d740108 vapoursynth: Add status dialog when running script 2023-02-24 01:42:30 +01:00
arch1t3cht
ad38400ab9 vapoursynth: Improve default scripts and add utility functions
Add a utility library that wraps LWLibavSource and can parse its .lwi
file to obtain timecodes and keyframes. It also contains a function to
generate and save keyframes using WWXD or Scxvid. Update the default
scripts to use these functions.
2023-02-24 01:42:30 +01:00
arch1t3cht
b5a646de66 Merge branch 'vapoursynth' (early part) into feature 2023-02-24 00:30:21 +01:00
arch1t3cht
8b605c8fb5 Merge branches 'workarounds', 'bestsource', 'misc', 'info', 'wangqr_gui', 'fixes' and 'avisynth' into feature 2023-02-24 00:29:28 +01:00
wangqr
bf240c9770 Add Apply button to select lines dialog
Allow modifying selection without closing dialog.

Fix wangqr/Aegisub#49
2023-02-24 00:13:22 +01:00
wangqr
c7d757b91e Save state of "show original"
Fix wangqr/Aegisub#41
2023-02-24 00:11:12 +01:00
arch1t3cht
e425ce4d9e vapoursynth: Allow __aegi_timecodes to be a path to a timecodes file 2023-02-23 23:55:00 +01:00
arch1t3cht
29ba61e55d vapoursynth: Allow __aegi_keyframes to be a path to a keyframes file 2023-02-23 23:55:00 +01:00