Compare commits

...

45 Commits

Author SHA1 Message Date
ANIGO R. (AR) a0d087be33 🌐 Translated using Weblate (Russian)
Deploy / Extension Bundle (push) Has been cancelled
2022-03-29 20:28:04 +02:00
ANIGO R. (AR) dd80db09e9 🌐 Added translation using Weblate (Russian) 2022-03-29 20:28:04 +02:00
Simon Schneegans 653d680347 💞 Update credits 2022-03-29 20:26:41 +02:00
Simon Schneegans ee584ab15e 📝 Add changelog entry 2022-03-29 20:26:25 +02:00
Simon Schneegans 82e2738f33 💞 Add new sponsor 2022-03-29 17:02:49 +02:00
Simon Schneegans 45d52842cf 📝 Add changelog entries 2022-03-29 11:57:28 +02:00
Simon Schneegans f738f648d8 🔧 Resolve #115 2022-03-29 11:54:39 +02:00
Simon Schneegans 0cf53c5a5d 🪲 Fix #118 (again) 2022-03-29 11:53:54 +02:00
Simon Schneegans 6f5bcc6681 🎉 Bump version number 2022-03-27 13:49:39 +02:00
Simon Schneegans 1a84ad337d 🔥 Undo commit
Deploy / Extension Bundle (push) Has been cancelled
2022-03-27 13:48:08 +02:00
Simon Schneegans 6a003f8bfb 📝 Add changelog entry 2022-03-27 13:45:07 +02:00
Simon Schneegans adc906006b 💞 Update credits 2022-03-27 13:44:17 +02:00
Simon Schneegans 9b46b9b009 📝 Set release date 2022-03-27 13:38:08 +02:00
Simon Schneegans d24dc6030d 📝 Add changelog entry 2022-03-27 13:23:23 +02:00
Simon Schneegans 26e4a32fe4 🪲 Fix version check 2022-03-27 13:23:12 +02:00
Simon Schneegans 376a3899e9 🔥 Remove liberapay donation option 2022-03-27 07:32:46 +02:00
Simon Schneegans 486f6b4c74 🔧 Use new version of dynamic badges action 2022-03-27 06:56:10 +02:00
Muha Aliss c43579974d 🌐 Translated using Weblate (Turkish) 2022-03-21 07:25:53 +01:00
Muha Aliss fbd02bb22c 🌐 Added translation using Weblate (Turkish) 2022-03-21 07:25:53 +01:00
Adolfo Jayme Barrientos beddd689c7 🌐 Translated using Weblate (Spanish) 2022-03-16 10:54:50 +01:00
Simon Schneegans 77310f9e65 ✨ Tweak clang-format style 2022-03-04 20:39:12 +01:00
刘韬 28c1cb6d72 🌐 Translated using Weblate (Chinese (Simplified)) 2022-03-04 05:04:22 +01:00
刘韬 9bdcea1dea 🌐 Translated using Weblate (Chinese (Simplified)) 2022-03-04 05:04:22 +01:00
刘韬 5e737ffd3a 🌐 Added translation using Weblate (Chinese (Simplified)) 2022-03-04 05:04:22 +01:00
Simon Schneegans 474f6cff25 🔀 Merge pull request #113 from Schneegans/feature/advanced-ci 2022-03-04 04:53:36 +01:00
Simon Schneegans 35c91cf925 🔧 Fix shellcheck issue [run-ci] 2022-03-03 21:31:51 +01:00
Simon Schneegans 0facae304b 🔧 Use imagemagick for comparisons [run-ci] 2022-03-03 21:25:47 +01:00
Simon Schneegans 31fa0f54bd 📝 Fix comment 2022-03-03 21:25:25 +01:00
Simon Schneegans 6c2f9d1553 🎉 Add reference generator script [run-ci] 2022-03-03 20:20:57 +01:00
Simon Schneegans 81a0e18c79 🔧 Tweak fuzzyness 2022-03-03 20:20:38 +01:00
Simon Schneegans 3caf2a176d 🎉 Add advanced CI tests [run-ci] 2022-03-03 20:01:37 +01:00
Simon Schneegans b48b6bb39b 📝 Add changelog entry 2022-03-03 20:00:36 +01:00
Simon Schneegans 69aadfd643 🎉 Add test mode 2022-03-03 20:00:24 +01:00
Simon Schneegans 59c01999b2 🔧 Update action version 2022-03-01 20:45:55 +01:00
Simon Schneegans c431437c34 🔧 Use more generic makefile 2022-03-01 16:05:09 +01:00
Simon Schneegans 312be215a0 🎉 Run tests on GNOME 42 as well 2022-02-28 21:21:33 +01:00
albanobattistella e1fcfb5d25 🌐 Translated using Weblate (Italian) 2022-02-28 20:04:14 +01:00
Simon Schneegans 4410aeac3b 📝 Add video teaser 2022-02-27 21:31:17 +01:00
Simon Schneegans f77aeded5e 🎨 Add teaser image 2022-02-27 21:30:55 +01:00
Heimen Stoffels 1d0dd3e8da 🌐 Translated using Weblate (Dutch) 2022-02-23 07:44:05 +01:00
Ulices cc916886c5 🌐 Translated using Weblate (Spanish) 2022-02-23 07:44:05 +01:00
albanobattistella 41648f2496 🌐 Translated using Weblate (Italian) 2022-02-23 07:44:05 +01:00
Nathan 8b79995723 🌐 Translated using Weblate (French) 2022-02-23 07:44:05 +01:00
Simon Schneegans f35cda20a8 📝 Set release date 2022-02-19 13:20:16 +01:00
Simon Schneegans 73c237aaa4 🎉 Bump version number 2022-02-19 13:19:40 +01:00
182 changed files with 56558 additions and 291 deletions
+2
View File
@@ -1,4 +1,6 @@
BasedOnStyle: Google
AlignConsecutiveAssignments: true
AlignAfterOpenBracket: Align
ContinuationIndentWidth: 2
KeepEmptyLinesAtTheStartOfBlocks: true
ColumnLimit: 90
+1 -1
View File
@@ -6,7 +6,7 @@ open_collective: # Replace with a single Open Collective username
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: Schneegans
liberapay: # Schneegans
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: ['https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE']
+2 -2
View File
@@ -19,7 +19,7 @@ jobs:
echo "CODE_LINES=$(scripts/cloc.sh --loc)" >> $GITHUB_ENV
echo "COMMENT_LINES=$(scripts/cloc.sh --percentage)%" >> $GITHUB_ENV
- name: Create Lines-of-Code-Badge
uses: schneegans/dynamic-badges-action@v1.1.0
uses: schneegans/dynamic-badges-action@v1.2.0
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: 8cf45f23253ff09b21196e7271378762
@@ -29,7 +29,7 @@ jobs:
color: lightgrey
labelColor: 303030
- name: Create Comments-Badge
uses: schneegans/dynamic-badges-action@v1.1.0
uses: schneegans/dynamic-badges-action@v1.2.0
with:
auth: ${{ secrets.GIST_SECRET }}
gistID: 8cf45f23253ff09b21196e7271378762
+1
View File
@@ -84,6 +84,7 @@ jobs:
- '33'
- '34'
- '35'
- '36'
session:
- 'gnome-xsession'
- 'gnome-wayland-nested'
+2 -3
View File
@@ -6,7 +6,7 @@ on:
- '**'
jobs:
source_code:
extension_bundle:
name: Extension Bundle
runs-on: ubuntu-latest
steps:
@@ -20,10 +20,9 @@ jobs:
run: |
make zip
- name: Upload Release
uses: svenstaro/upload-release-action@v1-release
uses: svenstaro/upload-release-action@2.2.1
with:
repo_token: ${{ secrets.GITHUB_TOKEN }}
file: burn-my-windows@schneegans.github.com.zip
asset_name: burn-my-windows@schneegans.github.com.zip
tag: ${{ github.ref }}
overwrite: true
+86 -49
View File
@@ -1,74 +1,111 @@
SHELL := /bin/bash
JS_FILES = $(shell find -type f -and \( -name "*.js" \))
UI_FILES = $(shell find -type f -and \( -name "*.ui" \))
# We define these here to make the makefile easier to port to another extension.
NAME := burn-my-windows
DOMAIN := schneegans.github.com
ZIP_NAME := $(NAME)@$(DOMAIN).zip
# Some of the recipes below depend on some of these files.
JS_FILES = $(shell find -type f -and \( -name "*.js" \))
UI_FILES = $(shell find -type f -and \( -name "*.ui" \))
RESOURCE_FILES = $(shell find resources -mindepth 2 -type f)
LOCALES_PO = $(wildcard po/*.po)
LOCALES_MO = $(patsubst po/%.po,locale/%/LC_MESSAGES/$(NAME).mo,$(LOCALES_PO))
LOCALES_PO = $(wildcard po/*.po)
LOCALES_MO = $(patsubst po/%.po,locale/%/LC_MESSAGES/burn-my-windows.mo,$(LOCALES_PO))
# These files will be included in the extension zip file.
ZIP_CONTENT = $(JS_FILES) $(LOCALES_MO) resources/$(NAME).gresource \
schemas/gschemas.compiled metadata.json LICENSE
.PHONY: zip install uninstall all-po pot clean
# These seven recipes can be invoked by the user.
.PHONY: zip install uninstall pot clean test references
zip: burn-my-windows@schneegans.github.com.zip
# The zip recipes only bundles the extension without installing it.
zip: $(ZIP_NAME)
install: burn-my-windows@schneegans.github.com.zip
gnome-extensions install "burn-my-windows@schneegans.github.com.zip" --force
# The install recipes creates the extension zip and installs it.
install: $(ZIP_NAME)
gnome-extensions install "$(ZIP_NAME)" --force
@echo "Extension installed successfully! Now restart the Shell ('Alt'+'F2', then 'r')."
# This uninstalls the previously installed extension.
uninstall:
gnome-extensions uninstall "burn-my-windows@schneegans.github.com"
all-po: $(LOCALES_PO)
gnome-extensions uninstall "$(NAME)@$(DOMAIN)"
# Use gettext to generate a translation template file.
pot: $(JS_FILES) $(UI_FILES)
@echo "Generating 'burn-my-windows.pot'..."
@echo "Generating '$(NAME).pot'..."
@xgettext --from-code=UTF-8 \
--add-comments=Translators \
--copyright-holder="Simon Schneegans" \
--package-name="Burn-My-Windows" \
--output=po/burn-my-windows.pot \
$(JS_FILES) $(UI_FILES)
--add-comments=Translators \
--copyright-holder="Simon Schneegans" \
--package-name="$(NAME)" \
--output=po/$(NAME).pot \
$(JS_FILES) $(UI_FILES)
# This runs several tests in containerized versions of GNOME Shell.
test:
@ for version in 32 33 34 35 36 ; do \
for session in "gnome-xsession" "gnome-wayland-nested" ; do \
echo ; \
echo "Running Tests on Fedora $$version ($$session)." ; \
echo ; \
./tests/run-test.sh -s $$session -v $$version ; \
done \
done
# This re-generates all reference images required by the tests.
references:
@ for version in 32 33 34 35 36 ; do \
for session in "gnome-xsession" "gnome-wayland-nested" ; do \
echo ; \
echo "Generating References for Fedora $$version ($$session)." ; \
echo ; \
./tests/generate-references.sh -s $$session -v $$version ; \
done \
done
# This removes all temporary files created with the other recipes.
clean:
rm -rf \
burn-my-windows@schneegans.github.com.zip \
resources/burn-my-windows.gresource \
resources/burn-my-windows.gresource.xml \
schemas/gschemas.compiled \
locale \
ui/*.ui~ \
po/*.po~
rm -rf $(ZIP_NAME) \
resources/$(NAME).gresource \
resources/$(NAME).gresource.xml \
schemas/gschemas.compiled \
locale
burn-my-windows@schneegans.github.com.zip: schemas/gschemas.compiled resources/burn-my-windows.gresource $(JS_FILES) $(LOCALES_MO)
# This bundles the extension and checks whether it is small enough to be uploaded to
# extensions.gnome.org. We do not use "gnome-extensions pack" for this, as this is not
# readily available on the GitHub runners.
$(ZIP_NAME): $(ZIP_CONTENT)
@echo "Packing zip file..."
@rm --force burn-my-windows@schneegans.github.com.zip
@zip -r burn-my-windows@schneegans.github.com.zip -- *.js src/*.js resources/burn-my-windows.gresource schemas/gschemas.compiled $(LOCALES_MO) metadata.json LICENSE
@rm --force $(ZIP_NAME)
@zip $(ZIP_NAME) -- $(ZIP_CONTENT)
@#Check if the zip size is too big to be uploaded
@if [[ "$$(stat -c %s burn-my-windows@schneegans.github.com.zip)" -gt 4096000 ]]; then \
echo "ERROR! The extension is too big to be uploaded to the extensions website, keep it smaller than 4096 KB!"; exit 1; \
fi
@SIZE=$$(unzip -Zt $(ZIP_NAME) | awk '{print $$3}') ; \
if [[ $$SIZE -gt 5242880 ]]; then \
echo "ERROR! The extension is too big to be uploaded to" \
"the extensions website, keep it smaller than 5 MB!"; \
exit 1; \
fi
resources/burn-my-windows.gresource: resources/burn-my-windows.gresource.xml
@echo "Compiling resources..."
@glib-compile-resources --sourcedir="resources" --generate resources/burn-my-windows.gresource.xml
resources/burn-my-windows.gresource.xml: $(RESOURCE_FILES)
@echo "Creating resources xml..."
@FILES=$$(find "resources" -mindepth 2 -type f -printf "%P\n" | xargs -i echo "<file>{}</file>") ; \
echo "<?xml version='1.0' encoding='UTF-8'?><gresources><gresource> $$FILES </gresource></gresources>" > resources/burn-my-windows.gresource.xml
schemas/gschemas.compiled: schemas/org.gnome.shell.extensions.burn-my-windows.gschema.xml
# Compiles the gschemas.compiled file from the gschema.xml file.
schemas/gschemas.compiled: schemas/org.gnome.shell.extensions.$(NAME).gschema.xml
@echo "Compiling schemas..."
@glib-compile-schemas schemas
locale/%/LC_MESSAGES/burn-my-windows.mo: po/%.po
# Compiles the gresource file from the gresources.xml.
resources/$(NAME).gresource: resources/$(NAME).gresource.xml
@echo "Compiling resources..."
@glib-compile-resources --sourcedir="resources" --generate resources/$(NAME).gresource.xml
# Generates the gresources.xml based on all files in the resources subdirectory.
resources/$(NAME).gresource.xml: $(RESOURCE_FILES)
@echo "Creating resources xml..."
@FILES=$$(find "resources" -mindepth 2 -type f -printf "%P\n" | xargs -i echo "<file>{}</file>") ; \
echo "<?xml version='1.0' encoding='UTF-8'?><gresources><gresource> $$FILES </gresource></gresources>" \
> resources/$(NAME).gresource.xml
# Compiles all *.po files to *.mo files.
locale/%/LC_MESSAGES/$(NAME).mo: po/%.po
@echo "Compiling $@"
@mkdir -p locale/$*/LC_MESSAGES
@msgfmt -c -o $@ $<
po/%.po:
@echo "Updating $@"
msgmerge --previous --update $@ po/burn-my-windows.pot
@# Output translation progress
@msgfmt --check --verbose --output-file=/dev/null $@
+5
View File
@@ -1,3 +1,7 @@
<p align="center">
<a href="https://www.youtube.com/watch?v=L2aaNF_rPHo"><img src ="docs/pics/teaser.jpg" /></a>
</p>
<h1 align="center">🔥 Set GNOME Shell on Fire!</h1>
<p align="center">
@@ -51,6 +55,7 @@ While [coding new features](docs/how-to-create-new-effects.md) or [translating t
<h3 align="center">🏅 Previous Sponsors and One-Time Donators</h3>
<p align="center">
<a href="https://github.com/MrTomRod">@MrTomRod</a><br>
Pouhiou<br>
DAPREMONT Christophe<br>
<a href="https://github.com/manero6">@manero6</a><br>
+54986
View File
File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 4.1 MiB

+32 -1
View File
@@ -1,8 +1,39 @@
# Changelog of the Burn-My-Windows Extension
## [Burn My Window 14](https://github.com/schneegans/Burn-My-Windows/releases/tag/v14)
**Release Date:** 2022-03-29
#### Enhancements
* Reduced the lower animation time limits for all effects to 100 ms. This should now allow for very snappy animations!
* A completely new Russian translation. Thank you, ANIGO R.!
#### Bug Fixes
* Fixed the version check for GNOME Shell `42.rc` (before it only worked on `42.alpha` and `42.beta`)
## [Burn My Window 13](https://github.com/schneegans/Burn-My-Windows/releases/tag/v13)
**Release Date:** 2022-03-27
#### Enhancements
* The continuous integration tests have been significantly enhanced. Now, all window-open and window-close animations are visually tested on all supported GNOME versions and on X11 / Wayland (summing up to a total of 136 test cases).
* Many translation updates, including a completely new Turkish and Chinese translation. A BIG THANKS to all translators!
#### Other Changes
* Removed the Liberapay donation option as it does not work properly.
#### Bug Fixes
* Fixed the version check for GNOME Shell 42.
## [Burn My Window 12](https://github.com/schneegans/Burn-My-Windows/releases/tag/v12)
**Release Date:** TBD
**Release Date:** 2022-02-19
#### New Features
Binary file not shown.

After

Width:  |  Height:  |  Size: 136 KiB

+34 -27
View File
@@ -101,26 +101,26 @@ class Extension {
// anyways, we override the actors ease() method once - the next time it will be
// called by the _mapWindow(), we will intercept it!
this._windowCreatedConnection =
global.display.connect('window-created', (d, metaWin) => {
let actor = metaWin.get_compositor_private();
global.display.connect('window-created', (d, metaWin) => {
let actor = metaWin.get_compositor_private();
const orig = actor.ease;
actor.ease = function(...params) {
orig.apply(actor, params);
actor.ease = orig;
const orig = actor.ease;
actor.ease = function(...params) {
orig.apply(actor, params);
actor.ease = orig;
// There are cases where the ease() is called prior to mapping the actor. If
// the actor is not yet mapped, we defer the effect creation.
if (actor.mapped) {
// There are cases where the ease() is called prior to mapping the actor. If
// the actor is not yet mapped, we defer the effect creation.
if (actor.mapped) {
extensionThis._setupEffect(actor, true);
} else {
const connectionID = actor.connect('notify::mapped', () => {
extensionThis._setupEffect(actor, true);
} else {
const connectionID = actor.connect('notify::mapped', () => {
extensionThis._setupEffect(actor, true);
actor.disconnect(connectionID);
});
}
};
});
actor.disconnect(connectionID);
});
}
};
});
// Some of the effects require that the window's actor is enlarged to provide a bigger
// canvas to draw the effects. Outside the overview we can simply increase the scale
@@ -324,8 +324,8 @@ class Extension {
// Only add effects to normal windows and dialog windows.
const isNormalWindow = actor.meta_window.window_type == Meta.WindowType.NORMAL;
const isDialogWindow =
actor.meta_window.window_type == Meta.WindowType.MODAL_DIALOG ||
actor.meta_window.window_type == Meta.WindowType.DIALOG;
actor.meta_window.window_type == Meta.WindowType.MODAL_DIALOG ||
actor.meta_window.window_type == Meta.WindowType.DIALOG;
if (!isNormalWindow && !isDialogWindow) {
return;
@@ -381,12 +381,17 @@ class Extension {
// ----------------------------------------------------------- tweak actor transitions
// If we are currently performing integration test, all animations are set to a fixed
// duration and show a fixed frame from the middle of the animation.
const testMode = this._settings.get_boolean('test-mode');
// The following is used to tweak the ongoing transitions of a window actor. Usually
// windows are faded in / out scaled up / down slightly by GNOME Shell. Here, we allow
// modifications to this behavior by the effects.
const config = this._currentEffect.tweakTransition(actor, this._settings, forOpening);
const duration =
this._settings.get_int(this._currentEffect.getNick() + '-animation-time');
const duration = testMode ?
5000 :
this._settings.get_int(this._currentEffect.getNick() + '-animation-time');
// All animations are relative to the window's center.
actor.set_pivot_point(0.5, 0.5);
@@ -416,9 +421,10 @@ class Extension {
// Tweak the transition according to the config object. For some reason, there are
// rare cases, where no transition is set up. This happens from time to time...
if (transition) {
const middle = (config[property].to + config[property].from) / 2;
transition.set_duration(duration);
transition.set_to(config[property].to);
transition.set_from(config[property].from);
transition.set_to(testMode ? middle : config[property].to);
transition.set_from(testMode ? middle : config[property].from);
transition.set_progress_mode(config[property].mode);
}
}
@@ -454,8 +460,9 @@ class Extension {
// Update uniforms at each frame.
transition.connect('new-frame', (t) => {
shader.set_uniform_value('uProgress', t.get_progress());
shader.set_uniform_value('uTime', 0.001 * t.get_elapsed_time());
shader.set_uniform_value('uProgress', testMode ? 0.5 : t.get_progress());
shader.set_uniform_value('uTime',
testMode ? duration / 2 : 0.001 * t.get_elapsed_time());
shader.set_uniform_value('uSizeX', actor.width);
shader.set_uniform_value('uSizeY', actor.height);
});
@@ -484,10 +491,10 @@ class Extension {
if (!forOpening) {
if (isDialogWindow) {
imports.ui.windowManager.DIALOG_DESTROY_WINDOW_ANIMATION_TIME =
duration != null ? duration : this._origDialogTime;
duration != null ? duration : this._origDialogTime;
} else {
imports.ui.windowManager.DESTROY_WINDOW_ANIMATION_TIME =
duration != null ? duration : this._origWindowTime;
duration != null ? duration : this._origWindowTime;
}
}
}
+2 -2
View File
@@ -12,5 +12,5 @@
"42"
],
"url": "https://github.com/Schneegans/Burn-My-Windows",
"version": 12
}
"version": 14
}
+15 -15
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"PO-Revision-Date: 2022-02-09 18:53+0000\n"
"Last-Translator: Ulices <ulicesah@gmail.com>\n"
"PO-Revision-Date: 2022-03-15 06:54+0000\n"
"Last-Translator: Adolfo Jayme Barrientos <fitojb@ubuntu.com>\n"
"Language-Team: Spanish <https://hosted.weblate.org/projects/burn-my-windows/"
"core/es/>\n"
"Language: es\n"
@@ -17,15 +17,15 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.11-dev\n"
"X-Generator: Weblate 4.12-dev\n"
#: prefs.js:111
msgid "Effect Options"
msgstr ""
msgstr "Opciones de efecto"
#: prefs.js:139
msgid "Go Back"
msgstr ""
msgstr "Volver"
#: prefs.js:181
msgid "General Options"
@@ -51,7 +51,7 @@ msgstr "Patrocinadores anteriores"
#: prefs.js:512
#, javascript-format
msgid "Preview for %s"
msgstr "Vista previa de %s"
msgstr "Previsualización de %s"
#: prefs.js:534
msgid "Close this Window to Preview the Effect!"
@@ -63,7 +63,7 @@ msgstr "Cristales rotos"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "Efecto TV"
msgstr "Efecto televisor"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
@@ -83,11 +83,11 @@ msgstr "Fuego predeterminado"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Fuego del infierno"
msgstr "Fuego infernal"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Oscuro y obscuro"
msgstr "Oscuro y obsceno"
#: src/Fire.js:160
msgid "Cold Breeze"
@@ -228,7 +228,7 @@ msgstr "Color"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Plantillas"
msgstr "Preselecciones"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
@@ -244,7 +244,7 @@ msgstr "Crea un fuego más dinámico pero requiere más potencia de la GPU."
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr "Gradiente"
msgstr "Degradado"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
@@ -264,15 +264,15 @@ msgstr "Color del flash"
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect"
msgstr "Vista previa del efecto"
msgstr "Previsualizar este efecto"
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "¡Bienvenido/a a Burn-My-Windows!"
msgstr "Le damos la bienvenida a Burn-My-Windows."
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)"
msgstr "Si le gusta esta extensión, recomiéndela a sus amigos :)"
msgstr "Si le gusta esta extensión, recomiéndela a sus amistades :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
@@ -298,7 +298,7 @@ msgstr "Añadir también efectos a los diálogos"
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Elegir una plantilla"
msgstr "Elija una preselección"
#~ msgid "Via PayPal"
#~ msgstr "Vía PayPal"
+4 -4
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"PO-Revision-Date: 2022-02-05 12:53+0000\n"
"Last-Translator: Reda <redxxiii@zaclys.net>\n"
"PO-Revision-Date: 2022-02-21 11:58+0000\n"
"Last-Translator: Nathan <bonnemainsnathan@gmail.com>\n"
"Language-Team: French <https://hosted.weblate.org/projects/burn-my-windows/"
"core/fr/>\n"
"Language: fr\n"
@@ -21,11 +21,11 @@ msgstr ""
#: prefs.js:111
msgid "Effect Options"
msgstr ""
msgstr "Options de l'effet"
#: prefs.js:139
msgid "Go Back"
msgstr ""
msgstr "Retour"
#: prefs.js:181
msgid "General Options"
+7 -7
View File
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"PO-Revision-Date: 2022-02-13 14:57+0000\n"
"Last-Translator: Mario <mario03@gmail.com>\n"
"PO-Revision-Date: 2022-02-28 12:56+0000\n"
"Last-Translator: albanobattistella <albano_battistella@hotmail.com>\n"
"Language-Team: Italian <https://hosted.weblate.org/projects/burn-my-windows/"
"core/it/>\n"
"Language: it\n"
@@ -17,15 +17,15 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 4.11-dev\n"
"X-Generator: Weblate 4.11.1-dev\n"
#: prefs.js:111
msgid "Effect Options"
msgstr ""
msgstr "Opzioni effetto"
#: prefs.js:139
msgid "Go Back"
msgstr ""
msgstr "Indietro"
#: prefs.js:181
msgid "General Options"
@@ -99,11 +99,11 @@ msgstr "Babbo Natale sta arrivando"
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Energizzare A"
msgstr "Energia A"
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Energizzare B"
msgstr "Energia B"
#: src/Matrix.js:58
msgid "Matrix"
+3 -3
View File
@@ -8,7 +8,7 @@ msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"PO-Revision-Date: 2022-02-05 12:53+0000\n"
"PO-Revision-Date: 2022-02-21 11:58+0000\n"
"Last-Translator: Heimen Stoffels <vistausss@fastmail.com>\n"
"Language-Team: Dutch <https://hosted.weblate.org/projects/burn-my-windows/"
"core/nl/>\n"
@@ -21,11 +21,11 @@ msgstr ""
#: prefs.js:111
msgid "Effect Options"
msgstr ""
msgstr "Effectvoorkeuren"
#: prefs.js:139
msgid "Go Back"
msgstr ""
msgstr "Scherm sluiten"
#: prefs.js:181
msgid "General Options"
+304
View File
@@ -0,0 +1,304 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Simon Schneegans
# This file is distributed under the same license as the Burn-My-Windows package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"PO-Revision-Date: 2022-03-29 18:24+0000\n"
"Last-Translator: ANIGO R. (AR) <franigoyt@gmail.com>\n"
"Language-Team: Russian <https://hosted.weblate.org/projects/burn-my-windows/"
"core/ru/>\n"
"Language: ru\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n"
"X-Generator: Weblate 4.12-dev\n"
#: prefs.js:111
msgid "Effect Options"
msgstr "Параметры эффекта"
#: prefs.js:139
msgid "Go Back"
msgstr "Назад"
#: prefs.js:181
msgid "General Options"
msgstr "Общие настройки"
#: prefs.js:276
msgid "Gold Sponsors"
msgstr "Золотые спонсоры"
#: prefs.js:279
msgid "Silver Sponsors"
msgstr "Серебряные спонсоры"
#: prefs.js:282
msgid "Bronze Sponsors"
msgstr "Бронзовые спонсоры"
#: prefs.js:285
msgid "Past Sponsors"
msgstr "Прошлые спонсоры"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:512
#, javascript-format
msgid "Preview for %s"
msgstr "Предварительный просмотр %s"
#: prefs.js:534
msgid "Close this Window to Preview the Effect!"
msgstr "Закройте это окно для предварительного просмотра эффекта!"
#: src/BrokenGlass.js:57
msgid "Broken Glass"
msgstr "Разбитое стекло"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "Телевизионный эффект"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
msgstr "T-Rex атака"
#: src/Wisps.js:55
msgid "Wisps"
msgstr "Огоньки"
#: src/Fire.js:58
msgid "Fire"
msgstr "Огонь"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "по умолчанию FIRE"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Адский Огонь"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Тёмный и развратный"
#: src/Fire.js:160
msgid "Cold Breeze"
msgstr "Холодный ветер"
#: src/Fire.js:170
msgid "Santa is Coming"
msgstr "Дед мороз приходит"
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Заряжение A"
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Энергия B"
#: src/Matrix.js:58
msgid "Matrix"
msgstr "Матрица"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "Перейти на главную страницу"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Просмотреть список изменений"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Сообщить об ошибке"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Создать эффект"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Перевести"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Пожертвовать"
#: resources/ui/common/main-menu.ui:45
msgid "About Burn-My-Windows"
msgstr "О Burn-My-Windows"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/EnergizeB.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/EnergizeB.ui:42
msgid "Animation Time [ms]"
msgstr "Время анимации (mc)"
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk3/Wisps.ui:68
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219
msgid "Reset to Default Value"
msgstr "Сброс на значение по умолчанию"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Масштаб"
#: resources/ui/gtk4/Matrix.ui:116
msgid "Randomness"
msgstr "Случайность"
#: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting"
msgstr "Вертикальное превышение"
#: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color"
msgstr "Цвет следа"
#: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color"
msgstr "Цвет наконечника"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "Сила тяжести"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr "Сила удара"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr "Разбить из местоположения указателя"
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
msgstr ""
"Осколки разлетятся в стороны от того места, где находился указатель мыши при "
"закрытии окна."
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Цвет"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Заготовки"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Скорость"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise"
msgstr "3D Шум"
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr "Создает более динамичный огонь, но требует большей мощности GPU."
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr "Градиент"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr "царапины"
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr "Количество царапин от когтей"
#: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect"
msgstr "Эффект искривления"
#: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color"
msgstr "Цвет вспышки"
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect"
msgstr "Предварительный просмотр этого эффекта"
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Добро пожаловать в Burn-My-Windows!"
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)"
msgstr ""
"Если вам нравится это расширение, порекомендуйте или поделитесь его своим "
"друзьям :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr "Анимация открытого окна"
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
msgid "If multiple are selected, one is chosen randomly."
msgstr "Если выбрано несколько, то один выбирается случайным образом."
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
msgid "Choose Effects"
msgstr "Выберите эффекты"
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr "Анимация закрытия окна"
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs"
msgstr "Также добавьте эффекты к диалогам"
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Выберите заготовку"
+301
View File
@@ -0,0 +1,301 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Simon Schneegans
# This file is distributed under the same license as the Burn-My-Windows package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"PO-Revision-Date: 2022-03-21 05:57+0000\n"
"Last-Translator: Muha Aliss <muhaaliss@pm.me>\n"
"Language-Team: Turkish <https://hosted.weblate.org/projects/burn-my-windows/"
"core/tr/>\n"
"Language: tr\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"
"X-Generator: Weblate 4.12-dev\n"
#: prefs.js:111
msgid "Effect Options"
msgstr "Efekt Seçenekleri"
#: prefs.js:139
msgid "Go Back"
msgstr "Geri Dön"
#: prefs.js:181
msgid "General Options"
msgstr "Genel Ayarlar"
#: prefs.js:276
msgid "Gold Sponsors"
msgstr "Altın Sponsorlar"
#: prefs.js:279
msgid "Silver Sponsors"
msgstr "Gümüş Sponsorlar"
#: prefs.js:282
msgid "Bronze Sponsors"
msgstr "Bronz Sponsorlar"
#: prefs.js:285
msgid "Past Sponsors"
msgstr "Eski Sponsorlar"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:512
#, javascript-format
msgid "Preview for %s"
msgstr "%s ön izleme"
#: prefs.js:534
msgid "Close this Window to Preview the Effect!"
msgstr "Efekti Ön izlemek İçin Bu Pencereyi Kapatın!"
#: src/BrokenGlass.js:57
msgid "Broken Glass"
msgstr "Kırılan Cam"
#: src/TVEffect.js:56
msgid "TV Effect"
msgstr "TV Efekti"
#: src/TRexAttack.js:56
msgid "T-Rex Attack"
msgstr "T-Rex Saldırısı"
#: src/Wisps.js:55
msgid "Wisps"
msgstr ""
#: src/Fire.js:58
msgid "Fire"
msgstr "Ateş"
#: src/Fire.js:130
msgid "Default Fire"
msgstr "Varsayılan Ateş"
#: src/Fire.js:140
msgid "Hell Fire"
msgstr "Cehennem Ateşi"
#: src/Fire.js:150
msgid "Dark and Smutty"
msgstr "Karanlık ve Sürmeli"
#: src/Fire.js:160
msgid "Cold Breeze"
msgstr "Soğuk Esinti"
#: src/Fire.js:170
msgid "Santa is Coming"
msgstr "Noel Baba Geliyor"
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr "Enerji A"
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr "Enerji B"
#: src/Matrix.js:58
msgid "Matrix"
msgstr "Matrix"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "Ana Sayfaya Git"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "Değişim Günlüğü"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "Hata Bildir"
#: resources/ui/common/main-menu.ui:20
msgid "Create an Effect"
msgstr "Efekt Oluştur"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "Çevir"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "Bağış"
#: resources/ui/common/main-menu.ui:45
msgid "About Burn-My-Windows"
msgstr "Burn-My-Windows Hakkında"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/EnergizeB.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/EnergizeB.ui:42
msgid "Animation Time [ms]"
msgstr "Animasyon Süresi [ms]"
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk3/Wisps.ui:68
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219
msgid "Reset to Default Value"
msgstr "Varsayılan Değere Sıfırla"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91
msgid "Scale"
msgstr "Ölçek"
#: resources/ui/gtk4/Matrix.ui:116
msgid "Randomness"
msgstr "Rastgelelik"
#: resources/ui/gtk4/Matrix.ui:162
msgid "Vertical Overshooting"
msgstr "Dikey Taşma"
#: resources/ui/gtk4/Matrix.ui:208
msgid "Trail Color"
msgstr "İz Rengi"
#: resources/ui/gtk4/Matrix.ui:242
msgid "Tip Color"
msgstr "Yazı Rengi"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "Yer Çekimi"
#: resources/ui/gtk4/BrokenGlass.ui:162
msgid "Blow Force"
msgstr "Darbe Kuvveti"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr "İşaretçi Konumundan Parçalanma"
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
msgstr ""
"Parçalar, pencereyi kapatırken fare işaretçinizin bulunduğu yerden uzağa "
"uçacaktır."
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "Renk"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "Şablon"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "Hız"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
msgid "3D Noise"
msgstr ""
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr "Daha dinamik bir ateş oluşturur ancak daha fazla GPU gücü gerektirir."
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr "Gradyan"
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr "Pençe Çizik Ölçeği"
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr "Pençe Çizik Sayısı"
#: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect"
msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color"
msgstr "Flaş Rengi"
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect"
msgstr "Bu Efekti Önizle"
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr "Burn-My-Windows'a Hoş Geldiniz!"
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)"
msgstr "Bu uzantıyı beğendiyseniz, arkadaşlarınıza tavsiye edin :)"
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr "Pencere Animasyonunu Aç"
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
msgid "If multiple are selected, one is chosen randomly."
msgstr "Birden fazla seçilirse, rastgele biri uygulanır."
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
msgid "Choose Effects"
msgstr "Efektleri Seçin"
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr "Pencere Animasyonunu Kapat"
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs"
msgstr "Ayrıca Diyaloglara Efektler Ekle"
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr "Bir Şablon Seçin"
+322
View File
@@ -0,0 +1,322 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Simon Schneegans
# This file is distributed under the same license as the Burn-My-Windows package.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
msgid ""
msgstr ""
"Project-Id-Version: Burn-My-Windows\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2022-02-18 20:33+0100\n"
"PO-Revision-Date: 2022-03-01 15:05+0000\n"
"Last-Translator: 刘韬 <lyuutau@outlook.com>\n"
"Language-Team: Chinese (Simplified) <https://hosted.weblate.org/projects/"
"burn-my-windows/core/zh_Hans/>\n"
"Language: zh_Hans\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
"X-Generator: Weblate 4.11.1-dev\n"
#: prefs.js:111
#, fuzzy
msgid "Effect Options"
msgstr "效果选项"
#: prefs.js:139
msgid "Go Back"
msgstr ""
#: prefs.js:181
#, fuzzy
msgid "General Options"
msgstr "一般选项"
#: prefs.js:276
#, fuzzy
msgid "Gold Sponsors"
msgstr "金牌赞助商"
#: prefs.js:279
#, fuzzy
msgid "Silver Sponsors"
msgstr "银牌赞助商"
#: prefs.js:282
#, fuzzy
msgid "Bronze Sponsors"
msgstr "铜牌赞助商"
#: prefs.js:285
#, fuzzy
msgid "Past Sponsors"
msgstr "往届赞助商"
#. Translators: %s will be replaced by the effect's name.
#: prefs.js:512
#, fuzzy, javascript-format
msgid "Preview for %s"
msgstr "%s 的预览"
#: prefs.js:534
#, fuzzy
msgid "Close this Window to Preview the Effect!"
msgstr "关闭此窗口,预览效果!"
#: src/BrokenGlass.js:57
#, fuzzy
msgid "Broken Glass"
msgstr "破碎的玻璃"
#: src/TVEffect.js:56
#, fuzzy
msgid "TV Effect"
msgstr "电视效果"
#: src/TRexAttack.js:56
#, fuzzy
msgid "T-Rex Attack"
msgstr "霸王龙攻击"
#: src/Wisps.js:55
msgid "Wisps"
msgstr ""
#: src/Fire.js:58
msgid "Fire"
msgstr ""
#: src/Fire.js:130
msgid "Default Fire"
msgstr ""
#: src/Fire.js:140
#, fuzzy
msgid "Hell Fire"
msgstr "地狱之火"
#: src/Fire.js:150
#, fuzzy
msgid "Dark and Smutty"
msgstr "黑暗和污秽"
#: src/Fire.js:160
#, fuzzy
msgid "Cold Breeze"
msgstr "寒风"
#: src/Fire.js:170
#, fuzzy
msgid "Santa is Coming"
msgstr "圣诞老人来了"
#: src/EnergizeA.js:54
msgid "Energize A"
msgstr ""
#: src/EnergizeB.js:54
msgid "Energize B"
msgstr ""
#: src/Matrix.js:58
msgid "Matrix"
msgstr "矩阵"
#: resources/ui/common/main-menu.ui:6
msgid "Visit Homepage"
msgstr "访问主页"
#: resources/ui/common/main-menu.ui:10
msgid "View Changelog"
msgstr "查看更新日志"
#: resources/ui/common/main-menu.ui:16
msgid "Report a Bug"
msgstr "报告错误"
#: resources/ui/common/main-menu.ui:20
#, fuzzy
msgid "Create an Effect"
msgstr "创建效果"
#: resources/ui/common/main-menu.ui:24
msgid "Translate"
msgstr "翻译"
#: resources/ui/common/main-menu.ui:28
msgid "Donate"
msgstr "捐赠"
#: resources/ui/common/main-menu.ui:45
msgid "About Burn-My-Windows"
msgstr "关于 Burn-My-Windows"
#: resources/ui/gtk4/Matrix.ui:24 resources/ui/gtk4/BrokenGlass.ui:24
#: resources/ui/gtk4/Wisps.ui:24 resources/ui/gtk4/Fire.ui:49
#: resources/ui/gtk4/TRexAttack.ui:24 resources/ui/gtk4/TVEffect.ui:24
#: resources/ui/gtk4/EnergizeA.ui:24 resources/ui/gtk4/EnergizeB.ui:24
#: resources/ui/gtk3/Wisps.ui:42 resources/ui/gtk3/Fire.ui:93
#: resources/ui/gtk3/TVEffect.ui:35 resources/ui/gtk3/EnergizeA.ui:42
#: resources/ui/gtk3/EnergizeB.ui:42
#, fuzzy
msgid "Animation Time [ms]"
msgstr "动画时间 [毫秒]"
#: resources/ui/gtk4/Matrix.ui:52 resources/ui/gtk4/Matrix.ui:98
#: resources/ui/gtk4/Matrix.ui:144 resources/ui/gtk4/Matrix.ui:190
#: resources/ui/gtk4/Matrix.ui:224 resources/ui/gtk4/Matrix.ui:258
#: resources/ui/gtk4/BrokenGlass.ui:52 resources/ui/gtk4/BrokenGlass.ui:98
#: resources/ui/gtk4/BrokenGlass.ui:144 resources/ui/gtk4/BrokenGlass.ui:190
#: resources/ui/gtk4/BrokenGlass.ui:244 resources/ui/gtk4/Wisps.ui:52
#: resources/ui/gtk4/Wisps.ui:98 resources/ui/gtk4/Wisps.ui:132
#: resources/ui/gtk4/Fire.ui:77 resources/ui/gtk4/Fire.ui:123
#: resources/ui/gtk4/Fire.ui:169 resources/ui/gtk4/Fire.ui:222
#: resources/ui/gtk4/Fire.ui:280 resources/ui/gtk4/TRexAttack.ui:52
#: resources/ui/gtk4/TRexAttack.ui:98 resources/ui/gtk4/TRexAttack.ui:144
#: resources/ui/gtk4/TRexAttack.ui:190 resources/ui/gtk4/TRexAttack.ui:224
#: resources/ui/gtk4/TVEffect.ui:52 resources/ui/gtk4/TVEffect.ui:86
#: resources/ui/gtk4/EnergizeA.ui:52 resources/ui/gtk4/EnergizeA.ui:98
#: resources/ui/gtk4/EnergizeA.ui:132 resources/ui/gtk4/EnergizeB.ui:52
#: resources/ui/gtk4/EnergizeB.ui:98 resources/ui/gtk4/EnergizeB.ui:132
#: resources/ui/gtk4/prefs.ui:166 resources/ui/gtk3/Wisps.ui:68
#: resources/ui/gtk3/Wisps.ui:117 resources/ui/gtk3/Wisps.ui:160
#: resources/ui/gtk3/Fire.ui:119 resources/ui/gtk3/Fire.ui:167
#: resources/ui/gtk3/Fire.ui:215 resources/ui/gtk3/Fire.ui:277
#: resources/ui/gtk3/Fire.ui:345 resources/ui/gtk3/TVEffect.ui:61
#: resources/ui/gtk3/TVEffect.ui:104 resources/ui/gtk3/EnergizeA.ui:68
#: resources/ui/gtk3/EnergizeA.ui:117 resources/ui/gtk3/EnergizeA.ui:160
#: resources/ui/gtk3/EnergizeB.ui:68 resources/ui/gtk3/EnergizeB.ui:117
#: resources/ui/gtk3/EnergizeB.ui:160 resources/ui/gtk3/prefs.ui:219
msgid "Reset to Default Value"
msgstr "重置为默认值"
#: resources/ui/gtk4/Matrix.ui:70 resources/ui/gtk4/BrokenGlass.ui:70
#: resources/ui/gtk4/Wisps.ui:70 resources/ui/gtk4/Fire.ui:95
#: resources/ui/gtk4/EnergizeA.ui:70 resources/ui/gtk4/EnergizeB.ui:70
#: resources/ui/gtk3/Wisps.ui:91 resources/ui/gtk3/Fire.ui:141
#: resources/ui/gtk3/EnergizeA.ui:91 resources/ui/gtk3/EnergizeB.ui:91
#, fuzzy
msgid "Scale"
msgstr "规模"
#: resources/ui/gtk4/Matrix.ui:116
#, fuzzy
msgid "Randomness"
msgstr "随机性"
#: resources/ui/gtk4/Matrix.ui:162
#, fuzzy
msgid "Vertical Overshooting"
msgstr "垂直过冲"
#: resources/ui/gtk4/Matrix.ui:208
#, fuzzy
msgid "Trail Color"
msgstr "尾迹颜色"
#: resources/ui/gtk4/Matrix.ui:242
#, fuzzy
msgid "Tip Color"
msgstr "提示颜色"
#: resources/ui/gtk4/BrokenGlass.ui:116
msgid "Gravity"
msgstr "重力"
#: resources/ui/gtk4/BrokenGlass.ui:162
#, fuzzy
msgid "Blow Force"
msgstr "吹力"
#: resources/ui/gtk4/BrokenGlass.ui:212
msgid "Shatter From Pointer Location"
msgstr ""
#: resources/ui/gtk4/BrokenGlass.ui:221
msgid ""
"The shards will fly away from where your mouse pointer was when closing the "
"window."
msgstr ""
#: resources/ui/gtk4/Wisps.ui:116 resources/ui/gtk4/TVEffect.ui:70
#: resources/ui/gtk4/EnergizeA.ui:116 resources/ui/gtk4/EnergizeB.ui:116
#: resources/ui/gtk3/Wisps.ui:139 resources/ui/gtk3/TVEffect.ui:83
#: resources/ui/gtk3/EnergizeA.ui:139 resources/ui/gtk3/EnergizeB.ui:139
msgid "Color"
msgstr "颜色"
#: resources/ui/gtk4/Fire.ui:25 resources/ui/gtk3/Fire.ui:49
msgid "Presets"
msgstr "预设"
#: resources/ui/gtk4/Fire.ui:141 resources/ui/gtk3/Fire.ui:189
msgid "Speed"
msgstr "速度"
#: resources/ui/gtk4/Fire.ui:191 resources/ui/gtk3/Fire.ui:241
#, fuzzy
msgid "3D Noise"
msgstr "3D 噪点"
#: resources/ui/gtk4/Fire.ui:200 resources/ui/gtk3/Fire.ui:250
msgid "Creates a more dynamic fire but requires more GPU power."
msgstr ""
#: resources/ui/gtk4/Fire.ui:240 resources/ui/gtk3/Fire.ui:300
msgid "Gradient"
msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:70
msgid "Claw Scratch Scale"
msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:116
msgid "Claw Scratch Count"
msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:162
msgid "Warp Effect"
msgstr ""
#: resources/ui/gtk4/TRexAttack.ui:208
msgid "Flash Color"
msgstr ""
#: resources/ui/gtk4/effectPage.ui:37 resources/ui/gtk3/effectPage.ui:37
msgid "Preview this Effect"
msgstr ""
#: resources/ui/gtk4/prefs.ui:28 resources/ui/gtk3/prefs.ui:35
msgid "Welcome to Burn-My-Windows!"
msgstr ""
#: resources/ui/gtk4/prefs.ui:39 resources/ui/gtk3/prefs.ui:46
msgid "If you like this extension, recommend it to your friends :)"
msgstr ""
#: resources/ui/gtk4/prefs.ui:66 resources/ui/gtk3/prefs.ui:74
msgid "Open Window Animation"
msgstr ""
#: resources/ui/gtk4/prefs.ui:75 resources/ui/gtk4/prefs.ui:119
#: resources/ui/gtk3/prefs.ui:83 resources/ui/gtk3/prefs.ui:147
msgid "If multiple are selected, one is chosen randomly."
msgstr ""
#: resources/ui/gtk4/prefs.ui:90 resources/ui/gtk4/prefs.ui:134
#: resources/ui/gtk3/prefs.ui:104 resources/ui/gtk3/prefs.ui:168
msgid "Choose Effects"
msgstr ""
#: resources/ui/gtk4/prefs.ui:110 resources/ui/gtk3/prefs.ui:138
msgid "Close Window Animation"
msgstr ""
#: resources/ui/gtk4/prefs.ui:150 resources/ui/gtk3/prefs.ui:198
msgid "Also Add Effects to Dialogs"
msgstr ""
#: resources/ui/gtk3/Fire.ui:63
msgid "Choose a Preset"
msgstr ""
+75 -81
View File
@@ -64,13 +64,11 @@ var PreferencesDialog = class PreferencesDialog {
const styleProvider = Gtk.CssProvider.new();
styleProvider.load_from_resource('/css/gtk.css');
if (utils.isGTK4()) {
Gtk.StyleContext.add_provider_for_display(
Gdk.Display.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
Gtk.StyleContext.add_provider_for_display(Gdk.Display.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
} else {
Gtk.StyleContext.add_provider_for_screen(
Gdk.Screen.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
Gtk.StyleContext.add_provider_for_screen(Gdk.Screen.get_default(), styleProvider,
Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION);
}
// Make sure custom icons are found.
@@ -241,14 +239,13 @@ var PreferencesDialog = class PreferencesDialog {
};
// clang-format off
addURIAction('homepage', 'https://github.com/Schneegans/Burn-My-Windows');
addURIAction('changelog', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/changelog.md');
addURIAction('bugs', 'https://github.com/Schneegans/Burn-My-Windows/issues');
addURIAction('new-effect', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/how-to-create-new-effects.md');
addURIAction('translate', 'https://hosted.weblate.org/engage/burn-my-windows/');
addURIAction('donate-paypal', 'https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE');
addURIAction('donate-github', 'https://github.com/sponsors/Schneegans');
addURIAction('donate-liberapay', 'https://liberapay.com/Schneegans');
addURIAction('homepage', 'https://github.com/Schneegans/Burn-My-Windows');
addURIAction('changelog', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/changelog.md');
addURIAction('bugs', 'https://github.com/Schneegans/Burn-My-Windows/issues');
addURIAction('new-effect', 'https://github.com/Schneegans/Burn-My-Windows/blob/main/docs/how-to-create-new-effects.md');
addURIAction('translate', 'https://hosted.weblate.org/engage/burn-my-windows/');
addURIAction('donate-paypal', 'https://www.paypal.com/donate/?hosted_button_id=3F7UFL8KLVPXE');
addURIAction('donate-github', 'https://github.com/sponsors/Schneegans');
// clang-format on
// Add the about dialog.
@@ -481,80 +478,77 @@ var PreferencesDialog = class PreferencesDialog {
// Each effect page is based on a template widget. This template contains the title
// and the preview button.
// clang-format off
if (GObject.type_from_name('BurnMyWindowsEffectPage') == null) {
BurnMyWindowsEffectPage =
GObject.registerClass({
GTypeName: 'BurnMyWindowsEffectPage',
Template: `resource:///ui/${utils.getGTKString()}/effectPage.ui`,
InternalChildren: ['label', 'button'],
},
class BurnMyWindowsEffectPage extends Gtk.Box {
_init(Effect, dialog) {
super._init();
BurnMyWindowsEffectPage = GObject.registerClass(
{
GTypeName: 'BurnMyWindowsEffectPage',
Template: `resource:///ui/${utils.getGTKString()}/effectPage.ui`,
InternalChildren: ['label', 'button'],
},
class BurnMyWindowsEffectPage extends Gtk.Box { // ------------------------------
_init(Effect, dialog) {
super._init();
// Set the effect's name as label.
this._label.label = Effect.getLabel();
// Set the effect's name as label.
this._label.label = Effect.getLabel();
// Open the preview window once the preview button is clicked.
this._button.connect('clicked', () => {
// Open the preview window once the preview button is clicked.
this._button.connect('clicked', () => {
// Set the to-be-previewed effect.
dialog.getSettings().set_string('open-preview-effect', Effect.getNick());
dialog.getSettings().set_string('close-preview-effect', Effect.getNick());
// Set the to-be-previewed effect.
dialog.getSettings().set_string('open-preview-effect', Effect.getNick());
dialog.getSettings().set_string('close-preview-effect', Effect.getNick());
// Make sure that the window.show() firther below "sees" this change.
Gio.Settings.sync();
// Make sure that the window.show() firther below "sees" this change.
Gio.Settings.sync();
// Create the preview-window.
const window = new Gtk.Window({
// Translators: %s will be replaced by the effect's name.
title: _('Preview for %s').replace('%s', Effect.getLabel()),
default_width: 800,
default_height: 450,
modal: true,
transient_for: utils.isGTK4() ? this._button.get_root() :
this._button.get_toplevel()
});
// Create the preview-window.
const window = new Gtk.Window({
// Translators: %s will be replaced by the effect's name.
title: _('Preview for %s').replace("%s", Effect.getLabel()),
default_width: 800,
default_height: 450,
modal: true,
transient_for: utils.isGTK4() ? this._button.get_root() :
this._button.get_toplevel()
// Add a header bar to the window.
if (utils.isGTK4()) {
const header = Gtk.HeaderBar.new();
window.set_titlebar(header);
}
const box = new Gtk.Box({
orientation: Gtk.Orientation.VERTICAL,
valign: Gtk.Align.CENTER,
spacing: 10,
margin_start: 50,
margin_end: 50
});
const label = Gtk.Label.new(_('Close this Window to Preview the Effect!'));
label.wrap = true;
label.justify = Gtk.Justification.CENTER;
label.get_style_context().add_class('large-title');
const image = new Gtk.Image({
icon_name: 'burn-my-windows-symbolic',
pixel_size: 128,
});
dialog.gtkBoxAppend(box, image);
dialog.gtkBoxAppend(box, label);
if (utils.isGTK4()) {
window.set_child(box);
window.show();
} else {
window.add(box);
window.show_all();
}
});
// Add a header bar to the window.
if (utils.isGTK4()) {
const header = Gtk.HeaderBar.new();
window.set_titlebar(header);
}
const box = new Gtk.Box({
orientation: Gtk.Orientation.VERTICAL,
valign: Gtk.Align.CENTER,
spacing: 10,
margin_start:50,
margin_end:50
});
const label = Gtk.Label.new(_('Close this Window to Preview the Effect!'));
label.wrap = true;
label.justify = Gtk.Justification.CENTER;
label.get_style_context().add_class('large-title');
const image = new Gtk.Image({
icon_name: 'burn-my-windows-symbolic',
pixel_size: 128,
});
dialog.gtkBoxAppend(box, image);
dialog.gtkBoxAppend(box, label);
if (utils.isGTK4()) {
window.set_child(box);
window.show();
} else {
window.add(box);
window.show_all();
}
});
}
});
// clang-format on
}
});
}
}
}
+1
View File
@@ -11,6 +11,7 @@
"<a href='https://github.com/danielheadbang'>@danielheadbang</a>"
],
"past": [
"<a href='https://github.com/MrTomRod'>@MrTomRod</a>",
"Pouhiou",
"DAPREMONT Christophe",
"<a href='https://github.com/manero6'>@manero6</a>",
+35 -3
View File
@@ -17,6 +17,15 @@
]
]
},
{
"Russian": [
[
"franigoyt@gmail.com",
"ANIGO R. (AR)",
59
]
]
},
{
"Czech": [
[
@@ -26,6 +35,15 @@
]
]
},
{
"Turkish": [
[
"muhaaliss@pm.me",
"Muha Aliss",
57
]
]
},
{
"Italian": [
[
@@ -36,7 +54,16 @@
[
"albano_battistella@hotmail.com",
"albanobattistella",
59
63
]
]
},
{
"Chinese (Simplified)": [
[
"lyuutau@outlook.com",
"\u5218\u97ec",
36
]
]
},
@@ -64,7 +91,7 @@
[
"bonnemainsnathan@gmail.com",
"Nathan",
40
42
]
]
},
@@ -73,7 +100,12 @@
[
"ulicesah@gmail.com",
"Ulices",
5
7
],
[
"fitojb@ubuntu.com",
"Adolfo Jayme Barrientos",
11
],
[
"oscfdezdz@tuta.io",
-4
View File
@@ -34,10 +34,6 @@
<attribute name="label">GitHub</attribute>
<attribute name="action">prefs.donate-github</attribute>
</item>
<item>
<attribute name="label">Liberapay</attribute>
<attribute name="action">prefs.donate-liberapay</attribute>
</item>
</submenu>
</section>
<section>
+2 -2
View File
@@ -3,8 +3,8 @@
<object class="GtkAdjustment" id="energize-a-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
+2 -2
View File
@@ -3,8 +3,8 @@
<object class="GtkAdjustment" id="energize-b-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
+2 -2
View File
@@ -3,8 +3,8 @@
<object class="GtkAdjustment" id="fire-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
+2 -2
View File
@@ -3,8 +3,8 @@
<object class="GtkAdjustment" id="wisps-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="broken-glass-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="energize-a-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="energize-b-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+2 -2
View File
@@ -64,8 +64,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="fire-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="matrix-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="trex-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
+2 -2
View File
@@ -39,8 +39,8 @@
<property name="adjustment">
<object class="GtkAdjustment" id="wisps-animation-time">
<property name="upper">10000</property>
<property name="lower">500</property>
<property name="step-increment">10</property>
<property name="lower">100</property>
<property name="step-increment">1</property>
<property name="page-increment">100</property>
</object>
</property>
@@ -25,6 +25,12 @@
<description>The effect with this nick will be used for the next window-open animation.</description>
</key>
<key name="test-mode" type="b">
<default>false</default>
<summary>Test Mode</summary>
<description>If set to true, all animations will show only one still frame to allow for continuous integration tests.</description>
</key>
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
<!-- Fire Options -->
<!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+9 -6
View File
@@ -134,9 +134,8 @@ if (utils.isInShellProcess()) {
// this texture is also re-created each time. This could be improved in the future!
const shardData = GdkPixbuf.Pixbuf.new_from_resource('/img/shards.png');
this._shardTexture = new Clutter.Image();
this._shardTexture.set_data(
shardData.get_pixels(), Cogl.PixelFormat.RGB_888, shardData.width,
shardData.height, shardData.rowstride);
this._shardTexture.set_data(shardData.get_pixels(), Cogl.PixelFormat.RGB_888,
shardData.width, shardData.height, shardData.rowstride);
// Usually, the shards fly away from the center of the window.
let epicenterX = 0.5;
@@ -150,6 +149,9 @@ if (utils.isInShellProcess()) {
epicenterY = localY / actor.height;
}
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
this.set_shader_source(`
// Inject some common shader snippets.
@@ -157,7 +159,8 @@ if (utils.isInShellProcess()) {
uniform sampler2D uShardTexture;
const vec2 SEED = vec2(${Math.random()}, ${Math.random()});
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float SHARD_SCALE = ${settings.get_double('broken-glass-scale')};
const float SHARD_LAYERS = 5;
const float BLOW_FORCE = ${settings.get_double('broken-glass-blow-force')};
@@ -228,8 +231,8 @@ if (utils.isInShellProcess()) {
const pipeline = this.get_pipeline();
// Use linear filtering for the window texture.
pipeline.set_layer_filters(
0, Cogl.PipelineFilter.LINEAR, Cogl.PipelineFilter.LINEAR);
pipeline.set_layer_filters(0, Cogl.PipelineFilter.LINEAR,
Cogl.PipelineFilter.LINEAR);
// Bind the shard texture.
pipeline.set_layer_texture(1, this._shardTexture.get_texture());
+5 -1
View File
@@ -117,6 +117,9 @@ if (utils.isInShellProcess()) {
const color = Clutter.Color.from_string(settings.get_string('energize-a-color'))[1];
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
this.set_shader_source(`
// Inject some common shader snippets.
@@ -124,7 +127,8 @@ if (utils.isInShellProcess()) {
${shaderSnippets.noise()}
${shaderSnippets.edgeMask()}
const vec2 SEED = vec2(${Math.random()}, ${Math.random()});
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float FADE_IN_TIME = 0.3;
const float FADE_OUT_TIME = 0.6;
const float HEART_FADE_TIME = 0.3;
+5 -1
View File
@@ -117,6 +117,9 @@ if (utils.isInShellProcess()) {
const color = Clutter.Color.from_string(settings.get_string('energize-b-color'))[1];
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
this.set_shader_source(`
// Inject some common shader snippets.
@@ -124,7 +127,8 @@ if (utils.isInShellProcess()) {
${shaderSnippets.noise()}
${shaderSnippets.edgeMask()}
const vec2 SEED = vec2(${Math.random()}, ${Math.random()});
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float SHOWER_TIME = 0.3;
const float SHOWER_WIDTH = 0.3;
const float STREAK_TIME = 0.6;
+2 -2
View File
@@ -233,9 +233,9 @@ if (utils.isInShellProcess()) {
const gradient = [];
for (let i = 1; i <= 5; i++) {
const color =
Clutter.Color.from_string(settings.get_string('fire-color-' + i))[1];
Clutter.Color.from_string(settings.get_string('fire-color-' + i))[1];
gradient.push(`vec4(${color.red / 255}, ${color.green / 255}, ${
color.blue / 255}, ${color.alpha / 255})`);
color.blue / 255}, ${color.alpha / 255})`);
}
this.set_shader_source(`
+5 -5
View File
@@ -129,14 +129,14 @@ if (utils.isInShellProcess()) {
const fontData = GdkPixbuf.Pixbuf.new_from_resource('/img/matrixFont.png');
this._fontTexture = new Clutter.Image();
this._fontTexture.set_data(
fontData.get_pixels(),
fontData.has_alpha ? Cogl.PixelFormat.RGBA_8888 : Cogl.PixelFormat.RGB_888,
fontData.width, fontData.height, fontData.rowstride);
fontData.get_pixels(),
fontData.has_alpha ? Cogl.PixelFormat.RGBA_8888 : Cogl.PixelFormat.RGB_888,
fontData.width, fontData.height, fontData.rowstride);
const trailColor =
Clutter.Color.from_string(settings.get_string('matrix-trail-color'))[1];
Clutter.Color.from_string(settings.get_string('matrix-trail-color'))[1];
const tipColor =
Clutter.Color.from_string(settings.get_string('matrix-tip-color'))[1];
Clutter.Color.from_string(settings.get_string('matrix-tip-color'))[1];
// The technique for this effect was inspired by
// https://www.shadertoy.com/view/ldccW4, however the implementation is quite
+8 -5
View File
@@ -125,12 +125,14 @@ if (utils.isInShellProcess()) {
// See assets/README.md for how this texture was created.
const clawData = GdkPixbuf.Pixbuf.new_from_resource('/img/claws.png');
this._clawTexture = new Clutter.Image();
this._clawTexture.set_data(
clawData.get_pixels(), Cogl.PixelFormat.RGB_888, clawData.width,
clawData.height, clawData.rowstride);
this._clawTexture.set_data(clawData.get_pixels(), Cogl.PixelFormat.RGB_888,
clawData.width, clawData.height, clawData.rowstride);
const color =
Clutter.Color.from_string(settings.get_string('claw-scratch-color'))[1];
Clutter.Color.from_string(settings.get_string('claw-scratch-color'))[1];
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
this.set_shader_source(`
@@ -141,7 +143,8 @@ if (utils.isInShellProcess()) {
// See assets/README.md for how this texture was created.
uniform sampler2D uClawTexture;
const vec2 SEED = vec2(${Math.random()}, ${Math.random()});
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float CLAW_SIZE = ${settings.get_double('claw-scratch-scale')};
const float NUM_CLAWS = ${settings.get_int('claw-scratch-count')};
const float WARP_INTENSITY = 1.0 + ${settings.get_double('claw-scratch-warp')};
+5 -1
View File
@@ -118,6 +118,9 @@ if (utils.isInShellProcess()) {
const color = Clutter.Color.from_string(settings.get_string('wisps-color'))[1];
// If we are currently performing integration test, the animation uses a fixed seed.
const testMode = settings.get_boolean('test-mode');
this.set_shader_source(`
// Inject some common shader snippets.
@@ -125,7 +128,8 @@ if (utils.isInShellProcess()) {
${shaderSnippets.noise()}
${shaderSnippets.edgeMask()}
const vec2 SEED = vec2(${Math.random()}, ${Math.random()});
const vec2 SEED = vec2(${testMode ? 0 : Math.random()},
${testMode ? 0 : Math.random()});
const float WISPS_RADIUS = 20.0;
const float WISPS_SPEED = 10.0;
const float WISPS_SPACING = 40 + WISPS_RADIUS;
+18 -8
View File
@@ -15,8 +15,22 @@
const {Gtk} = imports.gi;
// Returns the given argument, except for "alpha", "beta", and "rc". In these cases -3,
// -2, and -1 are returned respectively.
function toNumericVersion(x) {
switch (x) {
case 'alpha':
return -3;
case 'beta':
return -2;
case 'rc':
return -1;
}
return x;
}
const Config = imports.misc.config;
const [GS_MAJOR, GS_MINOR] = Config.PACKAGE_VERSION.split('.');
const [GS_MAJOR, GS_MINOR] = Config.PACKAGE_VERSION.split('.').map(toNumericVersion);
const ExtensionUtils = imports.misc.extensionUtils;
const Me = imports.misc.extensionUtils.getCurrentExtension();
@@ -60,22 +74,18 @@ function isInShellProcess() {
// This method returns true if the current GNOME Shell version matches the given
// arguments.
function shellVersionIs(major, minor) {
return GS_MAJOR == major && GS_MINOR == minor;
return GS_MAJOR == major && GS_MINOR == toNumericVersion(minor);
}
// This method returns true if the current GNOME Shell version is at least as high as the
// given arguments.
// given arguments. Supports "alpha" and "beta" for the minor version number.
function shellVersionIsAtLeast(major, minor) {
if (GS_MAJOR > major) {
return true;
}
if (GS_MAJOR == major) {
if (minor == 'alpha') return true;
if (minor == 'beta' && GS_MINOR == 'alpha') return false;
if (minor == 'beta' && GS_MINOR == 'beta') return true;
return GS_MINOR >= minor;
return GS_MINOR >= toNumericVersion(minor);
}
return false;
+183
View File
@@ -0,0 +1,183 @@
#!/bin/bash
# -------------------------------------------------------------------------------------- #
# ) ( #
# ( /( ( ( ) ( ( ( ( )\ ) ( ( #
# )\()) ))\ )( ( ( )\ ) )\))( )\ ( (()/( ( )\))( ( #
# ((_)\ /((_|()\ )\ ) )\ '(()/( ((_)()((_) )\ ) ((_)))\((_)()\ )\ #
# | |(_|_))( ((_)_(_/( _((_)) )(_)) _(()((_|_)_(_/( _| |((_)(()((_|(_) #
# | '_ \ || | '_| ' \)) | ' \()| || | \ V V / | ' \)) _` / _ \ V V (_-< #
# |_.__/\_,_|_| |_||_| |_|_|_| \_, | \_/\_/|_|_||_|\__,_\___/\_/\_//__/ #
# |__/ #
# Copyright (c) 2021 Simon Schneegans #
# Released under the GPLv3 or later. See LICENSE file for details. #
# -------------------------------------------------------------------------------------- #
# This script is used to generate the reference images required for the run-tests.sh
# script. To do this, it installs the extension in a fedora-based container running GNOME
# Shell on xvfb. It requires the burn-my-windows@schneegans.github.com.zip file which is
# expected to be present in the repository root. Therefore you have to call "make" before
# this script.
#
# The scripts supports two arguments:
#
# -v fedora_version: This determines the version of GNOME Shell to test agains.
# -v 32: GNOME Shell 3.36
# -v 33: GNOME Shell 3.38
# -v 34: GNOME Shell 40
# -v 35: GNOME Shell 41
# -s session: This can either be "gnome-xsession" or "gnome-wayland-nested".
# Exit on error.
set -e
usage() {
echo "Usage: $0 -v fedora_version -s session" >&2
}
FEDORA_VERSION=33
SESSION="gnome-xsession"
while getopts "v:s:h" opt; do
case $opt in
v) FEDORA_VERSION="${OPTARG}";;
s) SESSION="${OPTARG}";;
h) usage; exit 0;;
*) usage; exit 1;;
esac
done
# Go to the repo root.
cd "$( cd "$( dirname "$0" )" && pwd )/.." || \
{ echo "ERROR: Could not find the repo root."; exit 1; }
IMAGE="ghcr.io/schneegans/gnome-shell-pod-${FEDORA_VERSION}"
EXTENSION="burn-my-windows@schneegans.github.com"
# All references images of the effects are captured at & cropped to this region
# in the center of the screen. This is kind of arbitrary, but has been choosen so that
# something is visible from each effect.
CROP="100x100+910+480"
# Run the container. For more info, visit https://github.com/Schneegans/gnome-shell-pod.
POD=$(podman run --rm --cap-add=SYS_NICE --cap-add=IPC_LOCK -td "${IMAGE}")
# Properly shutdown podman when this script is exited.
quit() {
podman kill "${POD}"
wait
}
trap quit INT TERM EXIT
# -------------------------------------------------------------------------------- methods
# This function is used below to execute any shell command inside the running container.
do_in_pod() {
podman exec --user gnomeshell --workdir /home/gnomeshell "${POD}" set-env.sh "$@"
}
# This simulates the given keystroke in the container. Simply calling "xdotool key $1"
# sometimes fails to be recognized. Maybe the default 12ms between key-down and key-up
# are too short for xvfb...
send_keystroke() {
do_in_pod xdotool keydown "${1}"
sleep 0.5
do_in_pod xdotool keyup "${1}"
}
# This can be used to set a gsettings key of the extension.
set_setting() {
do_in_pod gsettings --schemadir /home/gnomeshell/.local/share/gnome-shell/extensions/burn-my-windows@schneegans.github.com/schemas \
set org.gnome.shell.extensions.burn-my-windows "${1}" "${2}"
}
# This makes a screen capture (cropped to $CROP) inside the container and stores it
# on the host relative to this script with the given file name.
capture() {
do_in_pod import -window root -crop $CROP out.png
podman cp "${POD}":/home/gnomeshell/out.png "${1}"
}
# This opens the extensions preferences dialog and captures two images: One during the
# window-open animation, and one during the window-close animation. The sleeps are a bit
# excessive, but it's difficult to get consistent results with shorter sleeps. The
# animations are shown for five seconds, so we also have to make sure that one animation
# is finished before starting the next one.
capture_effect() {
echo "Capturing ${1} effect."
set_setting "open-preview-effect" "${1}"
set_setting "close-preview-effect" "${1}"
sleep 2
do_in_pod gnome-extensions prefs "${EXTENSION}"
sleep 2
capture "tests/references/${1}-open-${SESSION}-${FEDORA_VERSION}.png"
send_keystroke "Alt+F4"
sleep 2
capture "tests/references/${1}-close-${SESSION}-${FEDORA_VERSION}.png"
sleep 2
}
# ----------------------------------------------------- wait for the container to start up
echo "Waiting for D-Bus."
do_in_pod wait-user-bus.sh > /dev/null 2>&1
# ----------------------------------------------------- install the to-be-tested extension
echo "Installing extension."
podman cp "tests/references" "${POD}:/home/gnomeshell/references"
podman cp "${EXTENSION}.zip" "${POD}:/home/gnomeshell"
do_in_pod gnome-extensions install "${EXTENSION}.zip"
# ---------------------------------------------------------------------- start GNOME Shell
# Starting with GNOME 40, there is a "Welcome Tour" dialog popping up at first launch.
# We disable this beforehand.
if [[ "${FEDORA_VERSION}" -gt 33 ]]; then
echo "Disabling welcome tour."
do_in_pod gsettings set org.gnome.shell welcome-dialog-last-shown-version "999" || true
fi
echo "Starting $(do_in_pod gnome-shell --version)."
do_in_pod systemctl --user start "${SESSION}@:99"
sleep 10
# Enable the extension.
do_in_pod gnome-extensions enable "${EXTENSION}"
# Starting with GNOME 40, the overview is the default mode. We close this here by hitting
# the super key.
if [[ "${FEDORA_VERSION}" -gt 33 ]]; then
echo "Closing Overview."
send_keystroke "super"
fi
# Wait until the extension is enabled and the overview closed.
sleep 3
# --------------------------------------------------------------------- capture the images
# The test mode ensures that the animations are "frozen" and do not change in time.
echo "Entering test mode."
set_setting "test-mode" true
do_in_pod gsettings set org.gnome.mutter center-new-windows true
capture_effect "energize-a"
capture_effect "energize-b"
capture_effect "fire"
capture_effect "tv"
capture_effect "wisps"
if [[ "${FEDORA_VERSION}" -gt 33 ]]; then
capture_effect "trex"
capture_effect "broken-glass"
capture_effect "matrix"
fi
echo "All reference images generated successfully."
Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.6 KiB

Some files were not shown because too many files have changed in this diff Show More