Compare commits
38 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| eee341e907 | |||
| aad96bb1c4 | |||
| 50d3ee5703 | |||
| 08dfb78815 | |||
| 6949a5d075 | |||
| 893d3b0473 | |||
| f5128e13f2 | |||
| 8318ea919f | |||
| bde20e78f0 | |||
| 02db9525e7 | |||
| 8d4586bd57 | |||
| 8872659621 | |||
| 46c7677643 | |||
| 4b9f4b1b63 | |||
| b64c93897b | |||
| a7939f18d1 | |||
| 15efbc29be | |||
| 6e5466a4ec | |||
| 737c897624 | |||
| c317a876dd | |||
| 72c67aacc4 | |||
| ba7e3fc0b5 | |||
| 61cf679b8c | |||
| ba55bacab4 | |||
| 9445bd2205 | |||
| 6ed1f45ffd | |||
| 81be1d2e2f | |||
| 52abf74088 | |||
| 623bc6dbf3 | |||
| 04b23ec68f | |||
| b65f362f0d | |||
| 7c30f35b12 | |||
| 9e976f06b4 | |||
| 369801dbeb | |||
| 2c3c7e8a73 | |||
| bb8f34de83 | |||
| 6c98658fe1 | |||
| 3f06c2bc04 |
+65
-17
@@ -1,33 +1,81 @@
|
|||||||
image: registry.gitlab.gnome.org/gnome/gnome-shell/extension-ci:v2
|
include:
|
||||||
|
- remote: "https://gitlab.freedesktop.org/freedesktop/ci-templates/-/raw/8445ff7af2a68795afb98f486251f2ef8f90621c/templates/ci-fairy.yml"
|
||||||
|
|
||||||
|
image: registry.gitlab.gnome.org/gnome/gnome-shell/fedora/33:2020-11-17.0
|
||||||
|
|
||||||
stages:
|
stages:
|
||||||
|
- pre_review
|
||||||
- review
|
- review
|
||||||
- build
|
- build
|
||||||
|
|
||||||
|
default:
|
||||||
|
# Cancel jobs if newer commits are pushed to the branch
|
||||||
|
interruptible: true
|
||||||
|
# Auto-retry jobs in case of infra failures
|
||||||
|
retry:
|
||||||
|
max: 1
|
||||||
|
when:
|
||||||
|
- 'runner_system_failure'
|
||||||
|
- 'stuck_or_timeout_failure'
|
||||||
|
- 'scheduler_failure'
|
||||||
|
- 'api_failure'
|
||||||
|
|
||||||
variables:
|
variables:
|
||||||
LINT_LOG: "eslint-report.txt"
|
LINT_LOG: "eslint-report.xml"
|
||||||
JS_LOG: "js-report.txt"
|
JS_LOG: "js-report.txt"
|
||||||
|
|
||||||
.only_default: &only_default
|
workflow:
|
||||||
only:
|
rules:
|
||||||
- branches
|
- if: '$CI_MERGE_REQUEST_IID'
|
||||||
- tags
|
- if: '$CI_COMMIT_TAG'
|
||||||
- merge_requests
|
- if: '$CI_COMMIT_BRANCH'
|
||||||
|
|
||||||
|
.pipeline_guard: &pipeline_guard
|
||||||
|
rules:
|
||||||
|
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
|
||||||
|
- if: '$CI_COMMIT_TAG'
|
||||||
|
- if: '$CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH'
|
||||||
|
- if: '$CI_COMMIT_BRANCH =~ /^gnome-[0-9-]+$/'
|
||||||
|
- when: 'manual'
|
||||||
|
|
||||||
check_commit_log:
|
check_commit_log:
|
||||||
image: registry.gitlab.gnome.org/gnome/gjs:fedora.static-analysis
|
extends:
|
||||||
stage: review
|
- .fdo.ci-fairy
|
||||||
|
stage: pre_review
|
||||||
script:
|
script:
|
||||||
- ./.gitlab-ci/check-commit-log.sh
|
- ./.gitlab-ci/check-commit-log.sh
|
||||||
only:
|
<<: *pipeline_guard
|
||||||
- merge_requests
|
artifacts:
|
||||||
|
expire_in: 1 week
|
||||||
|
paths:
|
||||||
|
- commit-message-junit-report.xml
|
||||||
|
reports:
|
||||||
|
junit: commit-message-junit-report.xml
|
||||||
|
|
||||||
|
check-merge-request:
|
||||||
|
extends:
|
||||||
|
- .fdo.ci-fairy
|
||||||
|
stage: pre_review
|
||||||
|
script:
|
||||||
|
- if [[ x"$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" != "x" ]] ;
|
||||||
|
then
|
||||||
|
ci-fairy check-merge-request --require-allow-collaboration --junit-xml=check-merge-request-report.xml ;
|
||||||
|
else
|
||||||
|
echo "Not a merge request" ;
|
||||||
|
fi
|
||||||
|
<<: *pipeline_guard
|
||||||
|
artifacts:
|
||||||
|
expire_in: 1 week
|
||||||
|
paths:
|
||||||
|
- check-merge-request-report.xml
|
||||||
|
reports:
|
||||||
|
junit: check-merge-request-report.xml
|
||||||
|
|
||||||
js_check:
|
js_check:
|
||||||
stage: review
|
stage: review
|
||||||
script:
|
script:
|
||||||
- find extensions -name '*.js' -exec js68 -c -s '{}' ';' 2>&1 | tee $JS_LOG
|
- find extensions -name '*.js' -exec js78 -c '{}' ';' 2>&1 | tee $JS_LOG
|
||||||
- (! grep -q . $JS_LOG)
|
- (! grep -q . $JS_LOG)
|
||||||
<<: *only_default
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- ${JS_LOG}
|
- ${JS_LOG}
|
||||||
@@ -36,18 +84,18 @@ js_check:
|
|||||||
eslint:
|
eslint:
|
||||||
stage: review
|
stage: review
|
||||||
script:
|
script:
|
||||||
- eslint -o $LINT_LOG extensions --no-color || { cat $LINT_LOG; false; }
|
- eslint -o $LINT_LOG -f junit extensions
|
||||||
<<: *only_default
|
|
||||||
artifacts:
|
artifacts:
|
||||||
paths:
|
paths:
|
||||||
- ${LINT_LOG}
|
- ${LINT_LOG}
|
||||||
when: on_failure
|
reports:
|
||||||
|
junit: ${LINT_LOG}
|
||||||
|
|
||||||
build-bundles:
|
build-bundles:
|
||||||
stage: build
|
stage: build
|
||||||
|
needs: ["check_commit_log"]
|
||||||
script:
|
script:
|
||||||
- ./export-zips.sh
|
- ./export-zips.sh
|
||||||
<<: *only_default
|
|
||||||
artifacts:
|
artifacts:
|
||||||
name: 'Extension bundles'
|
name: 'Extension bundles'
|
||||||
expose_as: 'Get Extension bundles here'
|
expose_as: 'Get Extension bundles here'
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
|
if [ -z "$CI_MERGE_REQUEST_TARGET_BRANCH_NAME" ]; then
|
||||||
echo Cannot review non-merge request
|
echo This is not a merge request, skipping
|
||||||
exit 1
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
git fetch $CI_MERGE_REQUEST_PROJECT_URL.git $CI_MERGE_REQUEST_TARGET_BRANCH_NAME
|
||||||
@@ -16,16 +16,59 @@ if [ -z "$commits" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
function commit_message_has_url() {
|
JUNIT_REPORT_TESTS_FILE=$(mktemp)
|
||||||
|
|
||||||
|
function append_failed_test_case() {
|
||||||
|
test_name="$1"
|
||||||
|
commit="$2"
|
||||||
|
test_message="$3"
|
||||||
|
commit_short=${commit:0:8}
|
||||||
|
|
||||||
|
echo "<testcase name=\"$test_name: $commit_short\"><failure message=\"$commit_short: $test_message\"/></testcase>" >> $JUNIT_REPORT_TESTS_FILE
|
||||||
|
echo &>2 "Commit check failed: $commit_short: $test_message"
|
||||||
|
}
|
||||||
|
|
||||||
|
function append_passed_test_case() {
|
||||||
|
test_name="$1"
|
||||||
|
commit="$2"
|
||||||
|
commit_short=${commit:0:8}
|
||||||
|
echo "<testcase name=\"$test_name: $commit_short\"></testcase>" >> $JUNIT_REPORT_TESTS_FILE
|
||||||
|
}
|
||||||
|
|
||||||
|
function generate_junit_report() {
|
||||||
|
junit_report_file="$1"
|
||||||
|
num_tests=$(cat "$JUNIT_REPORT_TESTS_FILE" | wc -l)
|
||||||
|
num_failures=$(grep '<failure />' "$JUNIT_REPORT_TESTS_FILE" | wc -l )
|
||||||
|
|
||||||
|
echo Generating JUnit report \"$(pwd)/$junit_report_file\" with $num_tests tests and $num_failures failures.
|
||||||
|
|
||||||
|
cat > $junit_report_file << __EOF__
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<testsuites tests="$num_tests" errors="0" failures="$num_failures">
|
||||||
|
<testsuite name="commit-review" tests="$num_tests" errors="0" failures="$num_failures" skipped="0">
|
||||||
|
$(< $JUNIT_REPORT_TESTS_FILE)
|
||||||
|
</testsuite>
|
||||||
|
</testsuites>
|
||||||
|
__EOF__
|
||||||
|
}
|
||||||
|
|
||||||
|
function commit_message_has_mr_url() {
|
||||||
commit=$1
|
commit=$1
|
||||||
commit_message=$(git show -s --format='format:%b' $commit)
|
commit_message=$(git show -s --format='format:%b' $commit)
|
||||||
echo "$commit_message" | grep -qe "\($CI_MERGE_REQUEST_PROJECT_URL/\(-/\)\?\(issues\|merge_requests\)/[0-9]\+\|https://bugzilla.gnome.org/show_bug.cgi?id=[0-9]\+\)"
|
echo "$commit_message" | grep -qe "^$CI_MERGE_REQUEST_PROJECT_URL\/\(-\/\)\?merge_requests\/$CI_MERGE_REQUEST_IID$"
|
||||||
return $?
|
return $?
|
||||||
}
|
}
|
||||||
|
|
||||||
for commit in $commits; do
|
for commit in $commits; do
|
||||||
if ! commit_message_has_url $commit; then
|
if commit_message_has_mr_url $commit; then
|
||||||
echo "Missing merge request or issue URL on commit $(echo $commit | cut -c -8)"
|
append_failed_test_case superfluous_url $commit \
|
||||||
exit 1
|
"Commit message must not contain a link to its own merge request"
|
||||||
|
else
|
||||||
|
append_passed_test_case superfluous_url $commit
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
generate_junit_report commit-message-junit-report.xml
|
||||||
|
|
||||||
|
! grep -q '<failure' commit-message-junit-report.xml
|
||||||
|
exit $?
|
||||||
|
|||||||
@@ -1,3 +1,31 @@
|
|||||||
|
40.alpha
|
||||||
|
========
|
||||||
|
* window-list: Honor changes in skip-taskbar property [Sergio; !130]
|
||||||
|
* window-list, workspace-indicator: Adjust to 3.38 changes [Florian; !133]
|
||||||
|
* window-list, workspace-indicator: Improve previews in workspace thumbs
|
||||||
|
[Florian; #260, !142]
|
||||||
|
* auto-move: Improve behavior on multi-monitor setups [Florian; !135]
|
||||||
|
* windowNavigator: Adjust to 3.38 changes [Thun; #259]
|
||||||
|
* Misc. bug fixes and cleanups [Florian, Jonas Å, Jordan, Ray; !131, !136,
|
||||||
|
!137, !140, !141, !144, !146, !145]
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Sergio Costas, Florian Müllner, Jordan Petridis, Thun Pin, Ray Strode,
|
||||||
|
Jonas Ådahl
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Fabio Tomat [fur], Jordi Mas [ca]
|
||||||
|
|
||||||
|
3.38.1
|
||||||
|
======
|
||||||
|
|
||||||
|
Contributors:
|
||||||
|
Yacine Bouklif, Florian Müllner
|
||||||
|
|
||||||
|
Translators:
|
||||||
|
Yacine Bouklif [kab], Cheng-Chia Tseng [zh_TW], Stas Solovey [ru],
|
||||||
|
Yosef Or Boczko [he]
|
||||||
|
|
||||||
3.38.0
|
3.38.0
|
||||||
======
|
======
|
||||||
|
|
||||||
|
|||||||
+1
-1
Submodule data/gnome-shell-sass updated: 03c1f82039...710fc54a26
@@ -116,10 +116,12 @@ function myCheckWorkspaces() {
|
|||||||
let keepAliveWorkspaces = [];
|
let keepAliveWorkspaces = [];
|
||||||
let foundNonEmpty = false;
|
let foundNonEmpty = false;
|
||||||
for (let i = this._workspaces.length - 1; i >= 0; i--) {
|
for (let i = this._workspaces.length - 1; i >= 0; i--) {
|
||||||
if (!foundNonEmpty)
|
if (!foundNonEmpty) {
|
||||||
foundNonEmpty = this._workspaces[i].list_windows().length > 0;
|
foundNonEmpty = this._workspaces[i].list_windows().some(
|
||||||
else if (!this._workspaces[i]._keepAliveId)
|
w => !w.is_on_all_workspaces());
|
||||||
|
} else if (!this._workspaces[i]._keepAliveId) {
|
||||||
keepAliveWorkspaces.push(this._workspaces[i]);
|
keepAliveWorkspaces.push(this._workspaces[i]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// make sure the original method only removes empty workspaces at the end
|
// make sure the original method only removes empty workspaces at the end
|
||||||
|
|||||||
@@ -103,7 +103,6 @@ class NaturalLayoutStrategy extends Workspace.LayoutStrategy {
|
|||||||
direction++;
|
direction++;
|
||||||
if (direction === 4)
|
if (direction === 4)
|
||||||
direction = 0;
|
direction = 0;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let loopCounter = 0;
|
let loopCounter = 0;
|
||||||
|
|||||||
@@ -486,7 +486,6 @@ var PlacesManager = class {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_reloadBookmarks() {
|
_reloadBookmarks() {
|
||||||
|
|
||||||
this._bookmarks = [];
|
this._bookmarks = [];
|
||||||
|
|
||||||
let content = Shell.get_file_contents_utf8_sync(this._bookmarksFile.get_path());
|
let content = Shell.get_file_contents_utf8_sync(this._bookmarksFile.get_path());
|
||||||
|
|||||||
@@ -352,6 +352,9 @@ class WindowButton extends BaseButton {
|
|||||||
super._init(perMonitor, monitorIndex);
|
super._init(perMonitor, monitorIndex);
|
||||||
|
|
||||||
this.metaWindow = metaWindow;
|
this.metaWindow = metaWindow;
|
||||||
|
this._skipTaskbarId = metaWindow.connect('notify::skip-taskbar', () => {
|
||||||
|
this._updateVisibility();
|
||||||
|
});
|
||||||
this._updateVisibility();
|
this._updateVisibility();
|
||||||
|
|
||||||
this._windowTitle = new WindowTitle(this.metaWindow);
|
this._windowTitle = new WindowTitle(this.metaWindow);
|
||||||
@@ -412,6 +415,7 @@ class WindowButton extends BaseButton {
|
|||||||
|
|
||||||
_onDestroy() {
|
_onDestroy() {
|
||||||
super._onDestroy();
|
super._onDestroy();
|
||||||
|
this.metaWindow.disconnect(this._skipTaskbarId);
|
||||||
this.metaWindow.disconnect(this._workspaceChangedId);
|
this.metaWindow.disconnect(this._workspaceChangedId);
|
||||||
global.display.disconnect(this._notifyFocusId);
|
global.display.disconnect(this._notifyFocusId);
|
||||||
this._contextMenu.destroy();
|
this._contextMenu.destroy();
|
||||||
@@ -608,7 +612,6 @@ class AppButton extends BaseButton {
|
|||||||
this._contextMenuManager.addMenu(this._appContextMenu);
|
this._contextMenuManager.addMenu(this._appContextMenu);
|
||||||
this.label_actor = this._multiWindowTitle.label_actor;
|
this.label_actor = this._multiWindowTitle.label_actor;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_onClicked(actor, button) {
|
_onClicked(actor, button) {
|
||||||
@@ -783,9 +786,9 @@ class WindowList extends St.Widget {
|
|||||||
});
|
});
|
||||||
|
|
||||||
this._dragBeginId = Main.xdndHandler.connect('drag-begin',
|
this._dragBeginId = Main.xdndHandler.connect('drag-begin',
|
||||||
this._onDragBegin.bind(this));
|
this._monitorDrag.bind(this));
|
||||||
this._dragEndId = Main.xdndHandler.connect('drag-end',
|
this._dragEndId = Main.xdndHandler.connect('drag-end',
|
||||||
this._onDragEnd.bind(this));
|
this._stopMonitoringDrag.bind(this));
|
||||||
this._dragMonitor = {
|
this._dragMonitor = {
|
||||||
dragMotion: this._onDragMotion.bind(this),
|
dragMotion: this._onDragMotion.bind(this),
|
||||||
};
|
};
|
||||||
@@ -948,9 +951,6 @@ class WindowList extends St.Widget {
|
|||||||
}
|
}
|
||||||
|
|
||||||
_onWindowAdded(ws, win) {
|
_onWindowAdded(ws, win) {
|
||||||
if (win.skip_taskbar)
|
|
||||||
return;
|
|
||||||
|
|
||||||
if (!this._grouped)
|
if (!this._grouped)
|
||||||
this._checkGrouping();
|
this._checkGrouping();
|
||||||
|
|
||||||
@@ -1016,11 +1016,11 @@ class WindowList extends St.Widget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_onDragBegin() {
|
_monitorDrag() {
|
||||||
DND.addDragMonitor(this._dragMonitor);
|
DND.addDragMonitor(this._dragMonitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
_onDragEnd() {
|
_stopMonitoringDrag() {
|
||||||
DND.removeDragMonitor(this._dragMonitor);
|
DND.removeDragMonitor(this._dragMonitor);
|
||||||
this._removeActivateTimeout();
|
this._removeActivateTimeout();
|
||||||
}
|
}
|
||||||
@@ -1094,6 +1094,7 @@ class WindowList extends St.Widget {
|
|||||||
|
|
||||||
global.display.disconnect(this._fullscreenChangedId);
|
global.display.disconnect(this._fullscreenChangedId);
|
||||||
|
|
||||||
|
this._stopMonitoringDrag();
|
||||||
Main.xdndHandler.disconnect(this._dragBeginId);
|
Main.xdndHandler.disconnect(this._dragBeginId);
|
||||||
Main.xdndHandler.disconnect(this._dragEndId);
|
Main.xdndHandler.disconnect(this._dragEndId);
|
||||||
|
|
||||||
|
|||||||
@@ -24,27 +24,14 @@ class WindowPreview extends St.Button {
|
|||||||
this.connect('destroy', this._onDestroy.bind(this));
|
this.connect('destroy', this._onDestroy.bind(this));
|
||||||
|
|
||||||
this._sizeChangedId = this._window.connect('size-changed',
|
this._sizeChangedId = this._window.connect('size-changed',
|
||||||
this._relayout.bind(this));
|
() => this.queue_relayout());
|
||||||
this._positionChangedId = this._window.connect('position-changed',
|
this._positionChangedId = this._window.connect('position-changed',
|
||||||
this._relayout.bind(this));
|
() => {
|
||||||
this._minimizedChangedId = this._window.connect('notify::minimized',
|
this._updateVisible();
|
||||||
this._relayout.bind(this));
|
this.queue_relayout();
|
||||||
this._monitorEnteredId = global.display.connect('window-entered-monitor',
|
|
||||||
this._relayout.bind(this));
|
|
||||||
this._monitorLeftId = global.display.connect('window-left-monitor',
|
|
||||||
this._relayout.bind(this));
|
|
||||||
|
|
||||||
// Do initial layout when we get a parent
|
|
||||||
let id = this.connect('parent-set', () => {
|
|
||||||
this.disconnect(id);
|
|
||||||
if (!this.get_parent())
|
|
||||||
return;
|
|
||||||
this._laterId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
|
|
||||||
this._laterId = 0;
|
|
||||||
this._relayout();
|
|
||||||
return false;
|
|
||||||
});
|
});
|
||||||
});
|
this._minimizedChangedId = this._window.connect('notify::minimized',
|
||||||
|
this._updateVisible.bind(this));
|
||||||
|
|
||||||
this._focusChangedId = global.display.connect('notify::focus-window',
|
this._focusChangedId = global.display.connect('notify::focus-window',
|
||||||
this._onFocusChanged.bind(this));
|
this._onFocusChanged.bind(this));
|
||||||
@@ -52,19 +39,15 @@ class WindowPreview extends St.Button {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// needed for DND
|
// needed for DND
|
||||||
get realWindow() {
|
get metaWindow() {
|
||||||
return this._window.get_compositor_private();
|
return this._window;
|
||||||
}
|
}
|
||||||
|
|
||||||
_onDestroy() {
|
_onDestroy() {
|
||||||
this._window.disconnect(this._sizeChangedId);
|
this._window.disconnect(this._sizeChangedId);
|
||||||
this._window.disconnect(this._positionChangedId);
|
this._window.disconnect(this._positionChangedId);
|
||||||
this._window.disconnect(this._minimizedChangedId);
|
this._window.disconnect(this._minimizedChangedId);
|
||||||
global.display.disconnect(this._monitorEnteredId);
|
|
||||||
global.display.disconnect(this._monitorLeftId);
|
|
||||||
global.display.disconnect(this._focusChangedId);
|
global.display.disconnect(this._focusChangedId);
|
||||||
if (this._laterId)
|
|
||||||
Meta.later_remove(this._laterId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_onFocusChanged() {
|
_onFocusChanged() {
|
||||||
@@ -74,26 +57,42 @@ class WindowPreview extends St.Button {
|
|||||||
this.remove_style_class_name('active');
|
this.remove_style_class_name('active');
|
||||||
}
|
}
|
||||||
|
|
||||||
_relayout() {
|
_updateVisible() {
|
||||||
let monitor = Main.layoutManager.findIndexForActor(this);
|
const monitor = Main.layoutManager.findIndexForActor(this);
|
||||||
this.visible = monitor === this._window.get_monitor() &&
|
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||||
|
this.visible = this._window.get_frame_rect().overlap(workArea) &&
|
||||||
this._window.window_type !== Meta.WindowType.DESKTOP &&
|
this._window.window_type !== Meta.WindowType.DESKTOP &&
|
||||||
this._window.showing_on_its_workspace();
|
this._window.showing_on_its_workspace();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (!this.visible)
|
let WorkspaceLayout = GObject.registerClass(
|
||||||
return;
|
class WorkspaceLayout extends Clutter.LayoutManager {
|
||||||
|
vfunc_get_preferred_width() {
|
||||||
|
return [0, 0];
|
||||||
|
}
|
||||||
|
|
||||||
let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
vfunc_get_preferred_height() {
|
||||||
let hscale = this.get_parent().allocation.get_width() / workArea.width;
|
return [0, 0];
|
||||||
let vscale = this.get_parent().allocation.get_height() / workArea.height;
|
}
|
||||||
|
|
||||||
let frameRect = this._window.get_frame_rect();
|
vfunc_allocate(container, box) {
|
||||||
this.set_size(
|
const monitor = Main.layoutManager.findIndexForActor(container);
|
||||||
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
|
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||||
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
|
const hscale = box.get_width() / workArea.width;
|
||||||
this.set_position(
|
const vscale = box.get_height() / workArea.height;
|
||||||
Math.round(frameRect.x * hscale),
|
|
||||||
Math.round(frameRect.y * vscale));
|
for (const child of container) {
|
||||||
|
const childBox = new Clutter.ActorBox();
|
||||||
|
const frameRect = child.metaWindow.get_frame_rect();
|
||||||
|
childBox.set_size(
|
||||||
|
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
|
||||||
|
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
|
||||||
|
childBox.set_origin(
|
||||||
|
Math.round((frameRect.x - workArea.x) * hscale),
|
||||||
|
Math.round((frameRect.y - workArea.y) * vscale));
|
||||||
|
child.allocate(childBox);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -103,7 +102,7 @@ class WorkspaceThumbnail extends St.Button {
|
|||||||
super._init({
|
super._init({
|
||||||
style_class: 'workspace',
|
style_class: 'workspace',
|
||||||
child: new Clutter.Actor({
|
child: new Clutter.Actor({
|
||||||
layout_manager: new Clutter.BinLayout(),
|
layout_manager: new WorkspaceLayout(),
|
||||||
clip_to_allocation: true,
|
clip_to_allocation: true,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
@@ -134,16 +133,15 @@ class WorkspaceThumbnail extends St.Button {
|
|||||||
}
|
}
|
||||||
|
|
||||||
acceptDrop(source) {
|
acceptDrop(source) {
|
||||||
if (!source.realWindow)
|
if (!source.metaWindow)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
let window = source.realWindow.get_meta_window();
|
this._moveWindow(source.metaWindow);
|
||||||
this._moveWindow(window);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
handleDragOver(source) {
|
handleDragOver(source) {
|
||||||
if (source.realWindow)
|
if (source.metaWindow)
|
||||||
return DND.DragMotionResult.MOVE_DROP;
|
return DND.DragMotionResult.MOVE_DROP;
|
||||||
else
|
else
|
||||||
return DND.DragMotionResult.CONTINUE;
|
return DND.DragMotionResult.CONTINUE;
|
||||||
|
|||||||
@@ -1,45 +1,12 @@
|
|||||||
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
/* -*- mode: js2; js2-basic-offset: 4; indent-tabs-mode: nil -*- */
|
||||||
/* exported init */
|
/* exported init */
|
||||||
const { Clutter, GObject, St } = imports.gi;
|
const { Clutter, Graphene, GObject, St } = imports.gi;
|
||||||
|
|
||||||
const Main = imports.ui.main;
|
const Main = imports.ui.main;
|
||||||
const Workspace = imports.ui.workspace;
|
const Workspace = imports.ui.workspace;
|
||||||
const WorkspacesView = imports.ui.workspacesView;
|
const WorkspacesView = imports.ui.workspacesView;
|
||||||
|
|
||||||
class MyWindowOverlay extends Workspace.WindowOverlay {
|
const WINDOW_SLOT = 4;
|
||||||
constructor(windowClone, parentActor) {
|
|
||||||
super(windowClone, parentActor);
|
|
||||||
|
|
||||||
this._id = null;
|
|
||||||
this._text = new St.Label({
|
|
||||||
style_class: 'extension-windowsNavigator-window-tooltip',
|
|
||||||
visible: false,
|
|
||||||
});
|
|
||||||
parentActor.add_actor(this._text);
|
|
||||||
}
|
|
||||||
|
|
||||||
showTooltip() {
|
|
||||||
this._parentActor.set_child_below_sibling(this._text, null);
|
|
||||||
this._text.show();
|
|
||||||
this._text.text = (this._windowClone.slotId + 1).toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
hideTooltip() {
|
|
||||||
if (this._text && this._text.visible)
|
|
||||||
this._text.hide();
|
|
||||||
}
|
|
||||||
|
|
||||||
relayout(animate) {
|
|
||||||
super.relayout(animate);
|
|
||||||
|
|
||||||
let [cloneX, cloneY, cloneWidth_, cloneHeight_] = this._windowClone.slot;
|
|
||||||
|
|
||||||
let textX = cloneX - 2;
|
|
||||||
let textY = cloneY - 2;
|
|
||||||
this._text.set_position(Math.floor(textX) + 5, Math.floor(textY) + 5);
|
|
||||||
this._parentActor.set_child_below_sibling(this._text, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
var MyWorkspace = GObject.registerClass(
|
var MyWorkspace = GObject.registerClass(
|
||||||
class MyWorkspace extends Workspace.Workspace {
|
class MyWorkspace extends Workspace.Workspace {
|
||||||
@@ -61,57 +28,89 @@ class MyWorkspace extends Workspace.Workspace {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vfunc_allocate(box) {
|
||||||
|
super.vfunc_allocate(box);
|
||||||
|
|
||||||
|
if (this._tip)
|
||||||
|
this._tip.allocate_preferred_size(0, 0);
|
||||||
|
}
|
||||||
|
|
||||||
showTooltip() {
|
showTooltip() {
|
||||||
if (!this._tip || !this._actualGeometry)
|
if (!this._tip)
|
||||||
return;
|
return;
|
||||||
this._tip.text = (this.metaWorkspace.index() + 1).toString();
|
this._tip.text = (this.metaWorkspace.index() + 1).toString();
|
||||||
|
|
||||||
// Hand code this instead of using _getSpacingAndPadding
|
|
||||||
// because that fails on empty workspaces
|
|
||||||
let node = this.get_theme_node();
|
|
||||||
let padding = {
|
|
||||||
left: node.get_padding(St.Side.LEFT),
|
|
||||||
top: node.get_padding(St.Side.TOP),
|
|
||||||
bottom: node.get_padding(St.Side.BOTTOM),
|
|
||||||
right: node.get_padding(St.Side.RIGHT),
|
|
||||||
};
|
|
||||||
|
|
||||||
let area = Workspace.padArea(this._actualGeometry, padding);
|
|
||||||
this._tip.x = area.x;
|
|
||||||
this._tip.y = area.y;
|
|
||||||
this._tip.show();
|
this._tip.show();
|
||||||
this.set_child_below_sibling(this._tip, null);
|
this.set_child_below_sibling(this._tip, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
hideTooltip() {
|
hideTooltip() {
|
||||||
if (!this._tip)
|
if (this._tip)
|
||||||
return;
|
this._tip.hide();
|
||||||
if (!this._tip.get_parent())
|
|
||||||
return;
|
|
||||||
this._tip.hide();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
getWindowWithTooltip(id) {
|
getWindowWithTooltip(id) {
|
||||||
for (let i = 0; i < this._windows.length; i++) {
|
const slot = this.layout_manager._windowSlots[id - 1];
|
||||||
if (this._windows[i].slotId + 1 === id)
|
return slot ? slot[WINDOW_SLOT].metaWindow : null;
|
||||||
return this._windows[i].metaWindow;
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
showWindowsTooltips() {
|
showWindowsTooltips() {
|
||||||
for (let i in this._windowOverlays) {
|
for (let i = 0; i < this.layout_manager._windowSlots.length; i++) {
|
||||||
if (this._windowOverlays[i])
|
if (this.layout_manager._windowSlots[i])
|
||||||
this._windowOverlays[i].showTooltip();
|
this.layout_manager._windowSlots[i][WINDOW_SLOT].showTooltip(`${i + 1}`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
hideWindowsTooltips() {
|
hideWindowsTooltips() {
|
||||||
for (let i in this._windowOverlays) {
|
for (let i in this.layout_manager._windowSlots) {
|
||||||
if (this._windowOverlays[i])
|
if (this.layout_manager._windowSlots[i])
|
||||||
this._windowOverlays[i].hideTooltip();
|
this.layout_manager._windowSlots[i][WINDOW_SLOT].hideTooltip();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// overriding _addWindowClone to apply the tooltip patch on the cloned
|
||||||
|
// windowPreview
|
||||||
|
_addWindowClone(metaWindow) {
|
||||||
|
const clone = super._addWindowClone(metaWindow);
|
||||||
|
|
||||||
|
// appling the tooltip patch
|
||||||
|
(function patchPreview() {
|
||||||
|
this._text = new St.Label({
|
||||||
|
style_class: 'extension-windowsNavigator-window-tooltip',
|
||||||
|
visible: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
this._text.add_constraint(new Clutter.BindConstraint({
|
||||||
|
source: this._borderCenter,
|
||||||
|
coordinate: Clutter.BindCoordinate.POSITION,
|
||||||
|
}));
|
||||||
|
this._text.add_constraint(new Clutter.AlignConstraint({
|
||||||
|
source: this._borderCenter,
|
||||||
|
align_axis: Clutter.AlignAxis.X_AXIS,
|
||||||
|
pivot_point: new Graphene.Point({ x: 0.5, y: -1 }),
|
||||||
|
factor: this._closeButtonSide === St.Side.LEFT ? 1 : 0,
|
||||||
|
}));
|
||||||
|
this._text.add_constraint(new Clutter.AlignConstraint({
|
||||||
|
source: this._borderCenter,
|
||||||
|
align_axis: Clutter.AlignAxis.Y_AXIS,
|
||||||
|
pivot_point: new Graphene.Point({ x: -1, y: 0.5 }),
|
||||||
|
factor: 0,
|
||||||
|
}));
|
||||||
|
|
||||||
|
this.add_child(this._text);
|
||||||
|
}).call(clone);
|
||||||
|
|
||||||
|
clone.showTooltip = function (text) {
|
||||||
|
this._text.set({ text });
|
||||||
|
this._text.show();
|
||||||
|
};
|
||||||
|
|
||||||
|
clone.hideTooltip = function () {
|
||||||
|
if (this._text && this._text.visible)
|
||||||
|
this._text.hide();
|
||||||
|
};
|
||||||
|
|
||||||
|
return clone;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var MyWorkspacesView = GObject.registerClass(
|
var MyWorkspacesView = GObject.registerClass(
|
||||||
@@ -244,19 +243,16 @@ class MyWorkspacesView extends WorkspacesView.WorkspacesView {
|
|||||||
|
|
||||||
class Extension {
|
class Extension {
|
||||||
constructor() {
|
constructor() {
|
||||||
this._origWindowOverlay = Workspace.WindowOverlay;
|
|
||||||
this._origWorkspace = Workspace.Workspace;
|
this._origWorkspace = Workspace.Workspace;
|
||||||
this._origWorkspacesView = WorkspacesView.WorkspacesView;
|
this._origWorkspacesView = WorkspacesView.WorkspacesView;
|
||||||
}
|
}
|
||||||
|
|
||||||
enable() {
|
enable() {
|
||||||
Workspace.WindowOverlay = MyWindowOverlay;
|
|
||||||
Workspace.Workspace = MyWorkspace;
|
Workspace.Workspace = MyWorkspace;
|
||||||
WorkspacesView.WorkspacesView = MyWorkspacesView;
|
WorkspacesView.WorkspacesView = MyWorkspacesView;
|
||||||
}
|
}
|
||||||
|
|
||||||
disable() {
|
disable() {
|
||||||
Workspace.WindowOverlay = this._origWindowOverlay;
|
|
||||||
Workspace.Workspace = this._origWorkspace;
|
Workspace.Workspace = this._origWorkspace;
|
||||||
WorkspacesView.WorkspacesView = this._origWorkspacesView;
|
WorkspacesView.WorkspacesView = this._origWorkspacesView;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -30,27 +30,14 @@ class WindowPreview extends St.Button {
|
|||||||
this.connect('destroy', this._onDestroy.bind(this));
|
this.connect('destroy', this._onDestroy.bind(this));
|
||||||
|
|
||||||
this._sizeChangedId = this._window.connect('size-changed',
|
this._sizeChangedId = this._window.connect('size-changed',
|
||||||
this._relayout.bind(this));
|
() => this.queue_relayout());
|
||||||
this._positionChangedId = this._window.connect('position-changed',
|
this._positionChangedId = this._window.connect('position-changed',
|
||||||
this._relayout.bind(this));
|
() => {
|
||||||
this._minimizedChangedId = this._window.connect('notify::minimized',
|
this._updateVisible();
|
||||||
this._relayout.bind(this));
|
this.queue_relayout();
|
||||||
this._monitorEnteredId = global.display.connect('window-entered-monitor',
|
|
||||||
this._relayout.bind(this));
|
|
||||||
this._monitorLeftId = global.display.connect('window-left-monitor',
|
|
||||||
this._relayout.bind(this));
|
|
||||||
|
|
||||||
// Do initial layout when we get a parent
|
|
||||||
let id = this.connect('parent-set', () => {
|
|
||||||
this.disconnect(id);
|
|
||||||
if (!this.get_parent())
|
|
||||||
return;
|
|
||||||
this._laterId = Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
|
|
||||||
this._laterId = 0;
|
|
||||||
this._relayout();
|
|
||||||
return false;
|
|
||||||
});
|
});
|
||||||
});
|
this._minimizedChangedId = this._window.connect('notify::minimized',
|
||||||
|
this._updateVisible.bind(this));
|
||||||
|
|
||||||
this._focusChangedId = global.display.connect('notify::focus-window',
|
this._focusChangedId = global.display.connect('notify::focus-window',
|
||||||
this._onFocusChanged.bind(this));
|
this._onFocusChanged.bind(this));
|
||||||
@@ -58,19 +45,15 @@ class WindowPreview extends St.Button {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// needed for DND
|
// needed for DND
|
||||||
get realWindow() {
|
get metaWindow() {
|
||||||
return this._window.get_compositor_private();
|
return this._window;
|
||||||
}
|
}
|
||||||
|
|
||||||
_onDestroy() {
|
_onDestroy() {
|
||||||
this._window.disconnect(this._sizeChangedId);
|
this._window.disconnect(this._sizeChangedId);
|
||||||
this._window.disconnect(this._positionChangedId);
|
this._window.disconnect(this._positionChangedId);
|
||||||
this._window.disconnect(this._minimizedChangedId);
|
this._window.disconnect(this._minimizedChangedId);
|
||||||
global.display.disconnect(this._monitorEnteredId);
|
|
||||||
global.display.disconnect(this._monitorLeftId);
|
|
||||||
global.display.disconnect(this._focusChangedId);
|
global.display.disconnect(this._focusChangedId);
|
||||||
if (this._laterId)
|
|
||||||
Meta.later_remove(this._laterId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
_onFocusChanged() {
|
_onFocusChanged() {
|
||||||
@@ -80,26 +63,42 @@ class WindowPreview extends St.Button {
|
|||||||
this.remove_style_class_name('active');
|
this.remove_style_class_name('active');
|
||||||
}
|
}
|
||||||
|
|
||||||
_relayout() {
|
_updateVisible() {
|
||||||
let monitor = Main.layoutManager.findIndexForActor(this);
|
const monitor = Main.layoutManager.findIndexForActor(this);
|
||||||
this.visible = monitor === this._window.get_monitor() &&
|
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||||
|
this.visible = this._window.get_frame_rect().overlap(workArea) &&
|
||||||
this._window.window_type !== Meta.WindowType.DESKTOP &&
|
this._window.window_type !== Meta.WindowType.DESKTOP &&
|
||||||
this._window.showing_on_its_workspace();
|
this._window.showing_on_its_workspace();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
if (!this.visible)
|
let WorkspaceLayout = GObject.registerClass(
|
||||||
return;
|
class WorkspaceLayout extends Clutter.LayoutManager {
|
||||||
|
vfunc_get_preferred_width() {
|
||||||
|
return [0, 0];
|
||||||
|
}
|
||||||
|
|
||||||
let workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
vfunc_get_preferred_height() {
|
||||||
let hscale = this.get_parent().allocation.get_width() / workArea.width;
|
return [0, 0];
|
||||||
let vscale = this.get_parent().allocation.get_height() / workArea.height;
|
}
|
||||||
|
|
||||||
let frameRect = this._window.get_frame_rect();
|
vfunc_allocate(container, box) {
|
||||||
this.set_size(
|
const monitor = Main.layoutManager.findIndexForActor(container);
|
||||||
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
|
const workArea = Main.layoutManager.getWorkAreaForMonitor(monitor);
|
||||||
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
|
const hscale = box.get_width() / workArea.width;
|
||||||
this.set_position(
|
const vscale = box.get_height() / workArea.height;
|
||||||
Math.round(frameRect.x * hscale),
|
|
||||||
Math.round(frameRect.y * vscale));
|
for (const child of container) {
|
||||||
|
const childBox = new Clutter.ActorBox();
|
||||||
|
const frameRect = child.metaWindow.get_frame_rect();
|
||||||
|
childBox.set_size(
|
||||||
|
Math.round(Math.min(frameRect.width, workArea.width) * hscale),
|
||||||
|
Math.round(Math.min(frameRect.height, workArea.height) * vscale));
|
||||||
|
childBox.set_origin(
|
||||||
|
Math.round((frameRect.x - workArea.x) * hscale),
|
||||||
|
Math.round((frameRect.y - workArea.y) * vscale));
|
||||||
|
child.allocate(childBox);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -109,7 +108,7 @@ class WorkspaceThumbnail extends St.Button {
|
|||||||
super._init({
|
super._init({
|
||||||
style_class: 'workspace',
|
style_class: 'workspace',
|
||||||
child: new Clutter.Actor({
|
child: new Clutter.Actor({
|
||||||
layout_manager: new Clutter.BinLayout(),
|
layout_manager: new WorkspaceLayout(),
|
||||||
clip_to_allocation: true,
|
clip_to_allocation: true,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
@@ -140,16 +139,15 @@ class WorkspaceThumbnail extends St.Button {
|
|||||||
}
|
}
|
||||||
|
|
||||||
acceptDrop(source) {
|
acceptDrop(source) {
|
||||||
if (!source.realWindow)
|
if (!source.metaWindow)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
let window = source.realWindow.get_meta_window();
|
this._moveWindow(source.metaWindow);
|
||||||
this._moveWindow(window);
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
handleDragOver(source) {
|
handleDragOver(source) {
|
||||||
if (source.realWindow)
|
if (source.metaWindow)
|
||||||
return DND.DragMotionResult.MOVE_DROP;
|
return DND.DragMotionResult.MOVE_DROP;
|
||||||
else
|
else
|
||||||
return DND.DragMotionResult.CONTINUE;
|
return DND.DragMotionResult.CONTINUE;
|
||||||
|
|||||||
@@ -34,4 +34,10 @@ and will be picked automatically at next login.
|
|||||||
<gnome:userid>fmuellner</gnome:userid>
|
<gnome:userid>fmuellner</gnome:userid>
|
||||||
</foaf:Person>
|
</foaf:Person>
|
||||||
</maintainer>
|
</maintainer>
|
||||||
|
<maintainer>
|
||||||
|
<foaf:Person>
|
||||||
|
<foaf:name>Marge Bot</foaf:name>
|
||||||
|
<gnome:userid>marge-bot</gnome:userid>
|
||||||
|
</foaf:Person>
|
||||||
|
</maintainer>
|
||||||
</Project>
|
</Project>
|
||||||
|
|||||||
+15
-6
@@ -1,4 +1,5 @@
|
|||||||
---
|
---
|
||||||
|
# SPDX-License-Identifier: MIT OR LGPL-2.0-or-later
|
||||||
env:
|
env:
|
||||||
es6: true
|
es6: true
|
||||||
extends: 'eslint:recommended'
|
extends: 'eslint:recommended'
|
||||||
@@ -24,7 +25,9 @@ rules:
|
|||||||
# allow: [^vfunc_, ^on_, _instance_init]
|
# allow: [^vfunc_, ^on_, _instance_init]
|
||||||
comma-dangle:
|
comma-dangle:
|
||||||
- error
|
- error
|
||||||
- always-multiline
|
- arrays: always-multiline
|
||||||
|
objects: always-multiline
|
||||||
|
functions: never
|
||||||
comma-spacing:
|
comma-spacing:
|
||||||
- error
|
- error
|
||||||
- before: false
|
- before: false
|
||||||
@@ -87,6 +90,7 @@ rules:
|
|||||||
- error
|
- error
|
||||||
- all
|
- all
|
||||||
- conditionalAssign: false
|
- conditionalAssign: false
|
||||||
|
nestedBinaryExpressions: false
|
||||||
returnAssign: false
|
returnAssign: false
|
||||||
no-implicit-coercion:
|
no-implicit-coercion:
|
||||||
- error
|
- error
|
||||||
@@ -105,15 +109,15 @@ rules:
|
|||||||
no-prototype-builtins: 'off'
|
no-prototype-builtins: 'off'
|
||||||
no-restricted-properties:
|
no-restricted-properties:
|
||||||
- error
|
- error
|
||||||
|
- object: Lang
|
||||||
|
property: copyProperties
|
||||||
|
message: Use Object.assign()
|
||||||
- object: Lang
|
- object: Lang
|
||||||
property: bind
|
property: bind
|
||||||
message: Use arrow notation or Function.prototype.bind()
|
message: Use arrow notation or Function.prototype.bind()
|
||||||
- object: Lang
|
- object: Lang
|
||||||
property: Class
|
property: Class
|
||||||
message: Use ES6 classes
|
message: Use ES6 classes
|
||||||
- object: imports
|
|
||||||
property: mainloop
|
|
||||||
message: Use GLib main loops and timeouts
|
|
||||||
no-restricted-syntax:
|
no-restricted-syntax:
|
||||||
- error
|
- error
|
||||||
- selector: >-
|
- selector: >-
|
||||||
@@ -129,6 +133,8 @@ rules:
|
|||||||
BlockStatement[body.length=1]
|
BlockStatement[body.length=1]
|
||||||
CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"]
|
CallExpression[arguments.length=0][callee.object.type="Super"][callee.property.name="_init"]
|
||||||
message: _init() that only calls super._init() is unnecessary
|
message: _init() that only calls super._init() is unnecessary
|
||||||
|
- selector: BinaryExpression[operator="instanceof"][right.name="Array"]
|
||||||
|
message: Use Array.isArray()
|
||||||
no-return-assign: error
|
no-return-assign: error
|
||||||
no-return-await: error
|
no-return-await: error
|
||||||
no-self-compare: error
|
no-self-compare: error
|
||||||
@@ -165,6 +171,9 @@ rules:
|
|||||||
object-shorthand: error
|
object-shorthand: error
|
||||||
operator-assignment: error
|
operator-assignment: error
|
||||||
operator-linebreak: error
|
operator-linebreak: error
|
||||||
|
padded-blocks:
|
||||||
|
- error
|
||||||
|
- never
|
||||||
# These may be a bit controversial, we can try them out and enable them later
|
# These may be a bit controversial, we can try them out and enable them later
|
||||||
# prefer-const: error
|
# prefer-const: error
|
||||||
# prefer-destructuring: error
|
# prefer-destructuring: error
|
||||||
@@ -217,12 +226,12 @@ globals:
|
|||||||
ARGV: readonly
|
ARGV: readonly
|
||||||
Debugger: readonly
|
Debugger: readonly
|
||||||
GIRepositoryGType: readonly
|
GIRepositoryGType: readonly
|
||||||
|
globalThis: readonly
|
||||||
imports: readonly
|
imports: readonly
|
||||||
Intl: readonly
|
Intl: readonly
|
||||||
log: readonly
|
log: readonly
|
||||||
logError: readonly
|
logError: readonly
|
||||||
print: readonly
|
print: readonly
|
||||||
printerr: readonly
|
printerr: readonly
|
||||||
window: readonly
|
|
||||||
parserOptions:
|
parserOptions:
|
||||||
ecmaVersion: 2017
|
ecmaVersion: 2020
|
||||||
|
|||||||
+4
-4
@@ -1,5 +1,5 @@
|
|||||||
project('gnome-shell-extensions',
|
project('gnome-shell-extensions',
|
||||||
version: '3.38.0',
|
version: '40.alpha',
|
||||||
meson_version: '>= 0.44.0',
|
meson_version: '>= 0.44.0',
|
||||||
license: 'GPL2+'
|
license: 'GPL2+'
|
||||||
)
|
)
|
||||||
@@ -21,9 +21,9 @@ sessiondir = join_paths(datadir, 'gnome-session', 'sessions')
|
|||||||
xsessiondir = join_paths(datadir, 'xsessions')
|
xsessiondir = join_paths(datadir, 'xsessions')
|
||||||
|
|
||||||
ver_arr = meson.project_version().split('.')
|
ver_arr = meson.project_version().split('.')
|
||||||
if ver_arr[1].to_int().is_even()
|
if ver_arr[1].version_compare('>=0')
|
||||||
shell_version = '@0@.@1@'.format(ver_arr[0], ver_arr[1])
|
shell_version = ver_arr[0]
|
||||||
else
|
else # pre-release (alpha, beta, rc)
|
||||||
shell_version = '.'.join(ver_arr)
|
shell_version = '.'.join(ver_arr)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ id
|
|||||||
is
|
is
|
||||||
it
|
it
|
||||||
ja
|
ja
|
||||||
|
kab
|
||||||
kk
|
kk
|
||||||
km
|
km
|
||||||
kn
|
kn
|
||||||
|
|||||||
@@ -83,7 +83,7 @@ msgid ""
|
|||||||
msgstr ""
|
msgstr ""
|
||||||
"Intenta utilitzar més espai de la pantalla per a posicionar les miniatures de "
|
"Intenta utilitzar més espai de la pantalla per a posicionar les miniatures de "
|
||||||
"les finestres adaptant-les a la ràtio d'aspecte de la pantalla, consolidant-"
|
"les finestres adaptant-les a la ràtio d'aspecte de la pantalla, consolidant-"
|
||||||
"les més per a reduir la capsa que les envolta. Aquest paràmetre de "
|
"les més per a reduir la caixa que les envolta. Aquest paràmetre de "
|
||||||
"configuració només s'aplica a l'estratègia de posicionament de finestres "
|
"configuració només s'aplica a l'estratègia de posicionament de finestres "
|
||||||
"natural."
|
"natural."
|
||||||
|
|
||||||
|
|||||||
@@ -8,23 +8,23 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell-extensions master\n"
|
"Project-Id-Version: gnome-shell-extensions master\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||||
"issues\n"
|
"issues\n"
|
||||||
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
|
"POT-Creation-Date: 2020-10-08 21:24+0000\n"
|
||||||
"PO-Revision-Date: 2020-07-12 18:10+0200\n"
|
"PO-Revision-Date: 2020-10-17 22:14+0200\n"
|
||||||
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
|
"Last-Translator: Fabio Tomat <f.t.public@gmail.com>\n"
|
||||||
"Language-Team: Friulian <fur@li.org>\n"
|
"Language-Team: Friulian <fur@li.org>\n"
|
||||||
"Language: fur\n"
|
"Language: fur\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.3.1\n"
|
"X-Generator: Poedit 2.4.1\n"
|
||||||
|
|
||||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
|
#: data/gnome-classic.desktop.in:3
|
||||||
msgid "GNOME Classic"
|
msgid "GNOME Classic"
|
||||||
msgstr "GNOME Classic"
|
msgstr "GNOME Classic"
|
||||||
|
|
||||||
#: data/gnome-classic.desktop.in:4
|
#: data/gnome-classic.desktop.in:4
|
||||||
msgid "This session logs you into GNOME Classic"
|
msgid "This session logs you into GNOME Classic"
|
||||||
msgstr "Cheste session a si invie cun GNOME classic"
|
msgstr "Cheste session ti fâs jentrâ in GNOME Classic"
|
||||||
|
|
||||||
#: extensions/apps-menu/extension.js:113
|
#: extensions/apps-menu/extension.js:113
|
||||||
msgid "Favorites"
|
msgid "Favorites"
|
||||||
@@ -43,8 +43,8 @@ msgid ""
|
|||||||
"A list of strings, each containing an application id (desktop file name), "
|
"A list of strings, each containing an application id (desktop file name), "
|
||||||
"followed by a colon and the workspace number"
|
"followed by a colon and the workspace number"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Une liste di stringhis, ogniune a ten il ID di une aplicazion (non dal file ."
|
"Une liste di stringhis, ogniune e ten il ID di une aplicazion (non dal file ."
|
||||||
"desktop), seguît di doi ponts e il numar dal spazi di lavôr"
|
"desktop), cun daûr doi ponts e il numar dal spazi di lavôr"
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:35
|
#: extensions/auto-move-windows/prefs.js:35
|
||||||
msgid "Workspace Rules"
|
msgid "Workspace Rules"
|
||||||
@@ -63,15 +63,15 @@ msgstr "No si è rivâts a parâ fûr la unitât “%s”»:"
|
|||||||
|
|
||||||
#: extensions/drive-menu/extension.js:128
|
#: extensions/drive-menu/extension.js:128
|
||||||
msgid "Removable devices"
|
msgid "Removable devices"
|
||||||
msgstr "Argagn rimovibil"
|
msgstr "Dispositîfs estraibii"
|
||||||
|
|
||||||
#: extensions/drive-menu/extension.js:155
|
#: extensions/drive-menu/extension.js:155
|
||||||
msgid "Open Files"
|
msgid "Open Files"
|
||||||
msgstr "Vierç i file"
|
msgstr "Vierç i files"
|
||||||
|
|
||||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||||
msgid "Use more screen for windows"
|
msgid "Use more screen for windows"
|
||||||
msgstr "Dopre plui spazi par i balcons"
|
msgstr "Dopre plui schermi pai barcons"
|
||||||
|
|
||||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -79,14 +79,14 @@ msgid ""
|
|||||||
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||||
"This setting applies only with the natural placement strategy."
|
"This setting applies only with the natural placement strategy."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Cîr di doprâ plui puest par plaçâ lis miniaturis dai balcons, adatânsi al "
|
"Cîr di doprâ plui schermi par plaçâ lis miniaturis dai barcons, adatant il "
|
||||||
"rapuart di aspiet dal visôr e consolidanlis ancjemo di plui par ridusi il "
|
"rapuart di aspiet dal visôr e consolidant ancjemo di plui lis miniaturis par "
|
||||||
"spazi complessîf. Cheste impostazion a si apliche dome se l'algoritmo di "
|
"ridusi il spazi complessîf. Cheste impostazion si apliche dome se "
|
||||||
"posizionament al è \"natural\"."
|
"l'algoritmi di plaçament al è naturâl."
|
||||||
|
|
||||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||||
msgid "Place window captions on top"
|
msgid "Place window captions on top"
|
||||||
msgstr "Met il titul dal balcon insomp"
|
msgstr "Met il titul dal barcon parsore"
|
||||||
|
|
||||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||||
msgid ""
|
msgid ""
|
||||||
@@ -94,9 +94,9 @@ msgid ""
|
|||||||
"shell default of placing it at the bottom. Changing this setting requires "
|
"shell default of placing it at the bottom. Changing this setting requires "
|
||||||
"restarting the shell to have any effect."
|
"restarting the shell to have any effect."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Se VÊR, al place i titui dai balcons insomp as relativis miniaturis, lant in "
|
"Se VÊR, al place i titui dai barcons denant des relativis miniaturis, "
|
||||||
"volte al compuartament normâl de shell, che lis place in bas.Cambiant cheste "
|
"sorpassant il compuartament predefinît de shell, che lis place in bas. "
|
||||||
"impostazion a si scugne tornâ a inviâ la shell."
|
"Cambiant cheste impostazion si scugne tornâ a inviâ la shell."
|
||||||
|
|
||||||
#: extensions/places-menu/extension.js:89
|
#: extensions/places-menu/extension.js:89
|
||||||
#: extensions/places-menu/extension.js:93
|
#: extensions/places-menu/extension.js:93
|
||||||
@@ -120,7 +120,7 @@ msgstr "Computer"
|
|||||||
|
|
||||||
#: extensions/places-menu/placeDisplay.js:359
|
#: extensions/places-menu/placeDisplay.js:359
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr "Cjase"
|
msgstr "Home"
|
||||||
|
|
||||||
#: extensions/places-menu/placeDisplay.js:404
|
#: extensions/places-menu/placeDisplay.js:404
|
||||||
msgid "Browse Network"
|
msgid "Browse Network"
|
||||||
@@ -128,11 +128,11 @@ msgstr "Esplore rêt"
|
|||||||
|
|
||||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||||
msgid "Cycle Screenshot Sizes"
|
msgid "Cycle Screenshot Sizes"
|
||||||
msgstr "Dimensions caturis di schermi ciclichis"
|
msgstr "Dimensions videadis catuardis ciclichis"
|
||||||
|
|
||||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||||
msgid "Cycle Screenshot Sizes Backward"
|
msgid "Cycle Screenshot Sizes Backward"
|
||||||
msgstr "Dimensions caturis di schermi ciclichis indaûr"
|
msgstr "Dimensions videadis caturadis ciclichis indaûr"
|
||||||
|
|
||||||
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||||
msgid "Theme name"
|
msgid "Theme name"
|
||||||
@@ -184,19 +184,19 @@ msgstr "Siere ducj"
|
|||||||
|
|
||||||
#: extensions/window-list/extension.js:734
|
#: extensions/window-list/extension.js:734
|
||||||
msgid "Window List"
|
msgid "Window List"
|
||||||
msgstr "Liste balcons"
|
msgstr "Liste barcons"
|
||||||
|
|
||||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||||
msgid "When to group windows"
|
msgid "When to group windows"
|
||||||
msgstr "Quant ingrumâ i balcons"
|
msgstr "Cuant meti in grup i barcons"
|
||||||
|
|
||||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||||
msgid ""
|
msgid ""
|
||||||
"Decides when to group windows from the same application on the window list. "
|
"Decides when to group windows from the same application on the window list. "
|
||||||
"Possible values are “never”, “auto” and “always”."
|
"Possible values are “never”, “auto” and “always”."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Al decît cuant intropâ i balcons de stesse aplicazion su le liste dai "
|
"Al decît cuant meti dongje i barcons de stesse aplicazion su la liste dai "
|
||||||
"balcons. I pussibii valôrs a son “never”, “auto” e “always”."
|
"barcons. I valôrs pussibii a son “never”, “auto” e “always”."
|
||||||
|
|
||||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||||
#: extensions/window-list/prefs.js:100
|
#: extensions/window-list/prefs.js:100
|
||||||
@@ -218,23 +218,23 @@ msgid ""
|
|||||||
"primary one."
|
"primary one."
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Indiche se mostrâ la liste dai barcons su ducj i visôrs tacâts o nome sul "
|
"Indiche se mostrâ la liste dai barcons su ducj i visôrs tacâts o nome sul "
|
||||||
"principâl."
|
"chel principâl."
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:29
|
#: extensions/window-list/prefs.js:29
|
||||||
msgid "Window Grouping"
|
msgid "Window Grouping"
|
||||||
msgstr "Ingrumament balcons"
|
msgstr "Intropament di barcons"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:58
|
#: extensions/window-list/prefs.js:58
|
||||||
msgid "Never group windows"
|
msgid "Never group windows"
|
||||||
msgstr "No ingrumâ i balcons"
|
msgstr "No sta meti mai in grup i barcons"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:59
|
#: extensions/window-list/prefs.js:59
|
||||||
msgid "Group windows when space is limited"
|
msgid "Group windows when space is limited"
|
||||||
msgstr "Ingrume i balcons quanche al'è pôc puest"
|
msgstr "Met dongje i barcons cuant che il spazi al è limitât"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:60
|
#: extensions/window-list/prefs.js:60
|
||||||
msgid "Always group windows"
|
msgid "Always group windows"
|
||||||
msgstr "Ingrume simpri i balcons"
|
msgstr "Met simpri in grup i barcons"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:94
|
#: extensions/window-list/prefs.js:94
|
||||||
msgid "Show on all monitors"
|
msgid "Show on all monitors"
|
||||||
|
|||||||
@@ -9,8 +9,8 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell-extensions\n"
|
"Project-Id-Version: gnome-shell-extensions\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||||
"issues\n"
|
"issues\n"
|
||||||
"POT-Creation-Date: 2020-03-31 07:16+0000\n"
|
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
|
||||||
"PO-Revision-Date: 2020-04-01 18:20+0300\n"
|
"PO-Revision-Date: 2020-09-28 22:04+0300\n"
|
||||||
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
|
"Last-Translator: Yosef Or Boczko <yoseforb@gmail.com>\n"
|
||||||
"Language-Team: Hebrew <yoseforb@gmail.com>\n"
|
"Language-Team: Hebrew <yoseforb@gmail.com>\n"
|
||||||
"Language: he\n"
|
"Language: he\n"
|
||||||
@@ -49,41 +49,27 @@ msgstr ""
|
|||||||
"A list of strings, each containing an application id (desktop file name), "
|
"A list of strings, each containing an application id (desktop file name), "
|
||||||
"followed by a colon and the workspace number"
|
"followed by a colon and the workspace number"
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:59
|
#: extensions/auto-move-windows/prefs.js:35
|
||||||
msgid "Application"
|
#| msgid "Workspace Names"
|
||||||
msgstr "יישום"
|
msgid "Workspace Rules"
|
||||||
|
msgstr "כללי מרחב העבודה"
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:70
|
#: extensions/auto-move-windows/prefs.js:243
|
||||||
#: extensions/auto-move-windows/prefs.js:133
|
|
||||||
msgid "Workspace"
|
|
||||||
msgstr "מרחב עבודה"
|
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:88
|
|
||||||
msgid "Add Rule"
|
msgid "Add Rule"
|
||||||
msgstr "הוספת כלל"
|
msgstr "הוספת כלל"
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:110
|
|
||||||
msgid "Create new matching rule"
|
|
||||||
msgstr "יצירת כלל חדש תואם"
|
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:116
|
|
||||||
msgid "Add"
|
|
||||||
msgstr "הוספה"
|
|
||||||
|
|
||||||
#. TRANSLATORS: %s is the filesystem name
|
#. TRANSLATORS: %s is the filesystem name
|
||||||
#: extensions/drive-menu/extension.js:103
|
#: extensions/drive-menu/extension.js:112
|
||||||
#: extensions/places-menu/placeDisplay.js:233
|
#: extensions/places-menu/placeDisplay.js:233
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
#| msgid "Ejecting drive '%s' failed:"
|
|
||||||
msgid "Ejecting drive “%s” failed:"
|
msgid "Ejecting drive “%s” failed:"
|
||||||
msgstr "שליפת הכונן „%s” נכשלה:"
|
msgstr "שליפת הכונן „%s” נכשלה:"
|
||||||
|
|
||||||
#: extensions/drive-menu/extension.js:119
|
#: extensions/drive-menu/extension.js:128
|
||||||
msgid "Removable devices"
|
msgid "Removable devices"
|
||||||
msgstr "התקנים נתיקים"
|
msgstr "התקנים נתיקים"
|
||||||
|
|
||||||
#: extensions/drive-menu/extension.js:146
|
#: extensions/drive-menu/extension.js:155
|
||||||
#| msgid "Open File"
|
|
||||||
msgid "Open Files"
|
msgid "Open Files"
|
||||||
msgstr "פתיחת קבצים"
|
msgstr "פתיחת קבצים"
|
||||||
|
|
||||||
@@ -115,14 +101,13 @@ msgstr ""
|
|||||||
"shell default of placing it at the bottom. Changing this setting requires "
|
"shell default of placing it at the bottom. Changing this setting requires "
|
||||||
"restarting the shell to have any effect."
|
"restarting the shell to have any effect."
|
||||||
|
|
||||||
#: extensions/places-menu/extension.js:80
|
#: extensions/places-menu/extension.js:89
|
||||||
#: extensions/places-menu/extension.js:84
|
#: extensions/places-menu/extension.js:93
|
||||||
msgid "Places"
|
msgid "Places"
|
||||||
msgstr "מיקומים"
|
msgstr "מיקומים"
|
||||||
|
|
||||||
#: extensions/places-menu/placeDisplay.js:46
|
#: extensions/places-menu/placeDisplay.js:46
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
#| msgid "Failed to launch \"%s\""
|
|
||||||
msgid "Failed to launch “%s”"
|
msgid "Failed to launch “%s”"
|
||||||
msgstr "שיגור „%s” נכשל"
|
msgstr "שיגור „%s” נכשל"
|
||||||
|
|
||||||
@@ -149,7 +134,6 @@ msgid "Cycle Screenshot Sizes"
|
|||||||
msgstr "Cycle Screenshot Sizes"
|
msgstr "Cycle Screenshot Sizes"
|
||||||
|
|
||||||
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||||
#| msgid "Cycle Screenshot Sizes"
|
|
||||||
msgid "Cycle Screenshot Sizes Backward"
|
msgid "Cycle Screenshot Sizes Backward"
|
||||||
msgstr "Cycle Screenshot Sizes Backward"
|
msgstr "Cycle Screenshot Sizes Backward"
|
||||||
|
|
||||||
@@ -181,27 +165,27 @@ msgstr "ביטול ההגדלה"
|
|||||||
msgid "Maximize"
|
msgid "Maximize"
|
||||||
msgstr "הגדלה"
|
msgstr "הגדלה"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:429
|
#: extensions/window-list/extension.js:428
|
||||||
msgid "Minimize all"
|
msgid "Minimize all"
|
||||||
msgstr "מזעור הכל"
|
msgstr "מזעור הכל"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:435
|
#: extensions/window-list/extension.js:434
|
||||||
msgid "Unminimize all"
|
msgid "Unminimize all"
|
||||||
msgstr "ביטול מזעור הכל"
|
msgstr "ביטול מזעור הכל"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:441
|
#: extensions/window-list/extension.js:440
|
||||||
msgid "Maximize all"
|
msgid "Maximize all"
|
||||||
msgstr "הגדלת הכל"
|
msgstr "הגדלת הכל"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:449
|
#: extensions/window-list/extension.js:448
|
||||||
msgid "Unmaximize all"
|
msgid "Unmaximize all"
|
||||||
msgstr "ביטול הגדלת הכל"
|
msgstr "ביטול הגדלת הכל"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:457
|
#: extensions/window-list/extension.js:456
|
||||||
msgid "Close all"
|
msgid "Close all"
|
||||||
msgstr "סגירת הכל"
|
msgstr "סגירת הכל"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:737
|
#: extensions/window-list/extension.js:734
|
||||||
msgid "Window List"
|
msgid "Window List"
|
||||||
msgstr "רשימת חלונות"
|
msgstr "רשימת חלונות"
|
||||||
|
|
||||||
@@ -210,9 +194,6 @@ msgid "When to group windows"
|
|||||||
msgstr "מתי לקבץ חלונות"
|
msgstr "מתי לקבץ חלונות"
|
||||||
|
|
||||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||||
#| msgid ""
|
|
||||||
#| "Decides when to group windows from the same application on the window "
|
|
||||||
#| "list. Possible values are \"never\", \"auto\" and \"always\"."
|
|
||||||
msgid ""
|
msgid ""
|
||||||
"Decides when to group windows from the same application on the window list. "
|
"Decides when to group windows from the same application on the window list. "
|
||||||
"Possible values are “never”, “auto” and “always”."
|
"Possible values are “never”, “auto” and “always”."
|
||||||
@@ -221,15 +202,11 @@ msgstr ""
|
|||||||
"Possible values are “never”, “auto” and “always”."
|
"Possible values are “never”, “auto” and “always”."
|
||||||
|
|
||||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||||
#: extensions/window-list/prefs.js:82
|
#: extensions/window-list/prefs.js:100
|
||||||
#| msgid "Show only windows in the current workspace"
|
|
||||||
msgid "Show windows from all workspaces"
|
msgid "Show windows from all workspaces"
|
||||||
msgstr "הצגת חלונות מכל מרחבי העבודה"
|
msgstr "הצגת חלונות מכל מרחבי העבודה"
|
||||||
|
|
||||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||||
#| msgid ""
|
|
||||||
#| "Whether to show the window list on all connected monitors or only on the "
|
|
||||||
#| "primary one."
|
|
||||||
msgid "Whether to show windows from all workspaces or only the current one."
|
msgid "Whether to show windows from all workspaces or only the current one."
|
||||||
msgstr "Whether to show windows from all workspaces or only the current one."
|
msgstr "Whether to show windows from all workspaces or only the current one."
|
||||||
|
|
||||||
@@ -245,44 +222,57 @@ msgstr ""
|
|||||||
"Whether to show the window list on all connected monitors or only on the "
|
"Whether to show the window list on all connected monitors or only on the "
|
||||||
"primary one."
|
"primary one."
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:25
|
#: extensions/window-list/prefs.js:29
|
||||||
msgid "Window Grouping"
|
msgid "Window Grouping"
|
||||||
msgstr "קיבוץ חלונות"
|
msgstr "קיבוץ חלונות"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:47
|
#: extensions/window-list/prefs.js:58
|
||||||
msgid "Never group windows"
|
msgid "Never group windows"
|
||||||
msgstr "לעולם לא לקבץ חלונות"
|
msgstr "לעולם לא לקבץ חלונות"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:48
|
#: extensions/window-list/prefs.js:59
|
||||||
msgid "Group windows when space is limited"
|
msgid "Group windows when space is limited"
|
||||||
msgstr "קיבוץ חלונות כאשר המקום מוגבל"
|
msgstr "קיבוץ חלונות כאשר המקום מוגבל"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:49
|
#: extensions/window-list/prefs.js:60
|
||||||
msgid "Always group windows"
|
msgid "Always group windows"
|
||||||
msgstr "תמיד לקבץ חלונות"
|
msgstr "תמיד לקבץ חלונות"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:75
|
#: extensions/window-list/prefs.js:94
|
||||||
msgid "Show on all monitors"
|
msgid "Show on all monitors"
|
||||||
msgstr "הצגה בכל הצגים"
|
msgstr "הצגה בכל הצגים"
|
||||||
|
|
||||||
#: extensions/window-list/workspaceIndicator.js:209
|
#: extensions/window-list/workspaceIndicator.js:207
|
||||||
#: extensions/workspace-indicator/extension.js:215
|
#: extensions/workspace-indicator/extension.js:213
|
||||||
msgid "Workspace Indicator"
|
msgid "Workspace Indicator"
|
||||||
msgstr "מחוון מרחבי עבודה"
|
msgstr "מחוון מרחבי עבודה"
|
||||||
|
|
||||||
#: extensions/workspace-indicator/prefs.js:129
|
#: extensions/workspace-indicator/prefs.js:34
|
||||||
msgid "Workspace Names"
|
msgid "Workspace Names"
|
||||||
msgstr "שם מרחב העבודה"
|
msgstr "שם מרחב העבודה"
|
||||||
|
|
||||||
#: extensions/workspace-indicator/prefs.js:149
|
#: extensions/workspace-indicator/prefs.js:67
|
||||||
msgid "Name"
|
|
||||||
msgstr "שם"
|
|
||||||
|
|
||||||
#: extensions/workspace-indicator/prefs.js:189
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "מרחב עבודה %d"
|
msgstr "מרחב עבודה %d"
|
||||||
|
|
||||||
|
#: extensions/workspace-indicator/prefs.js:218
|
||||||
|
#| msgid "Workspace"
|
||||||
|
msgid "Add Workspace"
|
||||||
|
msgstr "הוספת מרחב עבודה"
|
||||||
|
|
||||||
|
#~ msgid "Application"
|
||||||
|
#~ msgstr "יישום"
|
||||||
|
|
||||||
|
#~ msgid "Create new matching rule"
|
||||||
|
#~ msgstr "יצירת כלל חדש תואם"
|
||||||
|
|
||||||
|
#~ msgid "Add"
|
||||||
|
#~ msgstr "הוספה"
|
||||||
|
|
||||||
|
#~ msgid "Name"
|
||||||
|
#~ msgstr "שם"
|
||||||
|
|
||||||
#~ msgid "Attach modal dialog to the parent window"
|
#~ msgid "Attach modal dialog to the parent window"
|
||||||
#~ msgstr "Attach modal dialog to the parent window"
|
#~ msgstr "Attach modal dialog to the parent window"
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,254 @@
|
|||||||
|
# SOME DESCRIPTIVE TITLE.
|
||||||
|
# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
|
||||||
|
# This file is distributed under the same license as the PACKAGE package.
|
||||||
|
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
|
||||||
|
#
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: \n"
|
||||||
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||||
|
"issues\n"
|
||||||
|
"POT-Creation-Date: 2020-09-14 20:54+0000\n"
|
||||||
|
"PO-Revision-Date: 2020-09-19 12:50+0100\n"
|
||||||
|
"Language: kab_DZ\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"
|
||||||
|
"Last-Translator: Yacine Bouklif <yacinebouklif@gmail.com>\n"
|
||||||
|
"Language-Team: \n"
|
||||||
|
"X-Generator: Poedit 2.4.1\n"
|
||||||
|
|
||||||
|
#: data/gnome-classic.desktop.in:3
|
||||||
|
msgid "GNOME Classic"
|
||||||
|
msgstr "GNOME aklasiki"
|
||||||
|
|
||||||
|
#: data/gnome-classic.desktop.in:4
|
||||||
|
msgid "This session logs you into GNOME Classic"
|
||||||
|
msgstr "Tiɣimit-agi ak-teqqen ɣer GNOME aklasiki"
|
||||||
|
|
||||||
|
#: extensions/apps-menu/extension.js:113
|
||||||
|
msgid "Favorites"
|
||||||
|
msgstr "Inurifen"
|
||||||
|
|
||||||
|
#: extensions/apps-menu/extension.js:369
|
||||||
|
msgid "Applications"
|
||||||
|
msgstr "Isnasen"
|
||||||
|
|
||||||
|
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:6
|
||||||
|
msgid "Application and workspace list"
|
||||||
|
msgstr "Tabdart n yisnasen akked tallunt n umahil"
|
||||||
|
|
||||||
|
#: extensions/auto-move-windows/org.gnome.shell.extensions.auto-move-windows.gschema.xml:7
|
||||||
|
msgid ""
|
||||||
|
"A list of strings, each containing an application id (desktop file name), "
|
||||||
|
"followed by a colon and the workspace number"
|
||||||
|
msgstr ""
|
||||||
|
"Tabdart n yiɣewwaren, yal yiwet tesɛa id n usnas (isem n ufaylu n desktop), "
|
||||||
|
"ad ḍefrent snat n tenqiḍin akked wuḍḍun n tallunt n umahil"
|
||||||
|
|
||||||
|
#: extensions/auto-move-windows/prefs.js:35
|
||||||
|
msgid "Workspace Rules"
|
||||||
|
msgstr "Ilugan n tallunt n umahil"
|
||||||
|
|
||||||
|
#: extensions/auto-move-windows/prefs.js:243
|
||||||
|
msgid "Add Rule"
|
||||||
|
msgstr "Rnu alugen"
|
||||||
|
|
||||||
|
#. TRANSLATORS: %s is the filesystem name
|
||||||
|
#: extensions/drive-menu/extension.js:112
|
||||||
|
#: extensions/places-menu/placeDisplay.js:233
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Ejecting drive “%s” failed:"
|
||||||
|
msgstr "Aḍeqqer n uḍebsi “%s” ur yeddi ara:"
|
||||||
|
|
||||||
|
#: extensions/drive-menu/extension.js:128
|
||||||
|
msgid "Removable devices"
|
||||||
|
msgstr "Ibenkan izirazen"
|
||||||
|
|
||||||
|
#: extensions/drive-menu/extension.js:155
|
||||||
|
msgid "Open Files"
|
||||||
|
msgstr "Ldi ifuyla"
|
||||||
|
|
||||||
|
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||||
|
msgid "Use more screen for windows"
|
||||||
|
msgstr "Seqdec ugar n yigdilen i yisfuyla"
|
||||||
|
|
||||||
|
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:6
|
||||||
|
msgid ""
|
||||||
|
"Try to use more screen for placing window thumbnails by adapting to screen "
|
||||||
|
"aspect ratio, and consolidating them further to reduce the bounding box. "
|
||||||
|
"This setting applies only with the natural placement strategy."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:11
|
||||||
|
msgid "Place window captions on top"
|
||||||
|
msgstr "Sers tawaṭṭfa n usfaylu uksawen"
|
||||||
|
|
||||||
|
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:12
|
||||||
|
msgid ""
|
||||||
|
"If true, place window captions on top the respective thumbnail, overriding "
|
||||||
|
"shell default of placing it at the bottom. Changing this setting requires "
|
||||||
|
"restarting the shell to have any effect."
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: extensions/places-menu/extension.js:89
|
||||||
|
#: extensions/places-menu/extension.js:93
|
||||||
|
msgid "Places"
|
||||||
|
msgstr "Imeḍqan"
|
||||||
|
|
||||||
|
#: extensions/places-menu/placeDisplay.js:46
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Failed to launch “%s”"
|
||||||
|
msgstr "Asekker n “%s” ur yeddi ara"
|
||||||
|
|
||||||
|
#: extensions/places-menu/placeDisplay.js:61
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Failed to mount volume for “%s”"
|
||||||
|
msgstr "Aserkeb n ubleɣ “%s” ur yeddi ara"
|
||||||
|
|
||||||
|
#: extensions/places-menu/placeDisplay.js:148
|
||||||
|
#: extensions/places-menu/placeDisplay.js:171
|
||||||
|
msgid "Computer"
|
||||||
|
msgstr "Aselkim"
|
||||||
|
|
||||||
|
#: extensions/places-menu/placeDisplay.js:359
|
||||||
|
msgid "Home"
|
||||||
|
msgstr "Asebter agejdan"
|
||||||
|
|
||||||
|
#: extensions/places-menu/placeDisplay.js:404
|
||||||
|
msgid "Browse Network"
|
||||||
|
msgstr "Snirem azeḍḍa"
|
||||||
|
|
||||||
|
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:7
|
||||||
|
msgid "Cycle Screenshot Sizes"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: extensions/screenshot-window-sizer/org.gnome.shell.extensions.screenshot-window-sizer.gschema.xml:11
|
||||||
|
msgid "Cycle Screenshot Sizes Backward"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:5
|
||||||
|
msgid "Theme name"
|
||||||
|
msgstr "Isem n usentel"
|
||||||
|
|
||||||
|
#: extensions/user-theme/org.gnome.shell.extensions.user-theme.gschema.xml:6
|
||||||
|
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||||
|
msgstr "Isem n usentel ara yettusidren si ~/.themes/name/gnome-shell"
|
||||||
|
|
||||||
|
#: extensions/window-list/extension.js:98
|
||||||
|
msgid "Close"
|
||||||
|
msgstr "Mdel"
|
||||||
|
|
||||||
|
#: extensions/window-list/extension.js:118
|
||||||
|
msgid "Unminimize"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: extensions/window-list/extension.js:118
|
||||||
|
msgid "Minimize"
|
||||||
|
msgstr "Semẓi"
|
||||||
|
|
||||||
|
#: extensions/window-list/extension.js:125
|
||||||
|
msgid "Unmaximize"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: extensions/window-list/extension.js:125
|
||||||
|
msgid "Maximize"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: extensions/window-list/extension.js:428
|
||||||
|
msgid "Minimize all"
|
||||||
|
msgstr "Semẓi akk"
|
||||||
|
|
||||||
|
#: extensions/window-list/extension.js:434
|
||||||
|
msgid "Unminimize all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: extensions/window-list/extension.js:440
|
||||||
|
msgid "Maximize all"
|
||||||
|
msgstr "Semɣer akk"
|
||||||
|
|
||||||
|
#: extensions/window-list/extension.js:448
|
||||||
|
msgid "Unmaximize all"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: extensions/window-list/extension.js:456
|
||||||
|
msgid "Close all"
|
||||||
|
msgstr "Mdel akk"
|
||||||
|
|
||||||
|
#: extensions/window-list/extension.js:734
|
||||||
|
msgid "Window List"
|
||||||
|
msgstr "Tabdart n yisfuyla"
|
||||||
|
|
||||||
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:12
|
||||||
|
msgid "When to group windows"
|
||||||
|
msgstr "Melmi ara ttusgerwen yisfuyla"
|
||||||
|
|
||||||
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:13
|
||||||
|
msgid ""
|
||||||
|
"Decides when to group windows from the same application on the window list. "
|
||||||
|
"Possible values are “never”, “auto” and “always”."
|
||||||
|
msgstr ""
|
||||||
|
"Ad iwali ma ad isegrew isfuyla seg yiwen n usnas di tebdart n yisfuyla. "
|
||||||
|
"Azalen yellan: “never”, “auto” akked “always”."
|
||||||
|
|
||||||
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||||
|
#: extensions/window-list/prefs.js:100
|
||||||
|
msgid "Show windows from all workspaces"
|
||||||
|
msgstr "Sken isfuyla si meṛṛa tallunin n umahil"
|
||||||
|
|
||||||
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||||
|
msgid "Whether to show windows from all workspaces or only the current one."
|
||||||
|
msgstr ""
|
||||||
|
"Ma yella ad ttwaseknen yisfuyla si meṛṛa tallunin n umahil neɣ ala seg win "
|
||||||
|
"iremden."
|
||||||
|
|
||||||
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||||
|
msgid "Show the window list on all monitors"
|
||||||
|
msgstr "Sken tabdart n yisfuyla ɣef yigdilen meṛṛa"
|
||||||
|
|
||||||
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||||
|
msgid ""
|
||||||
|
"Whether to show the window list on all connected monitors or only on the "
|
||||||
|
"primary one."
|
||||||
|
msgstr ""
|
||||||
|
"Ma yella ad ttwaseknen yisfuyla si meṛṛa tallunin n umahil neɣ ala ɣef "
|
||||||
|
"uzwaran."
|
||||||
|
|
||||||
|
#: extensions/window-list/prefs.js:29
|
||||||
|
msgid "Window Grouping"
|
||||||
|
msgstr "Asegrew n yisfuyla"
|
||||||
|
|
||||||
|
#: extensions/window-list/prefs.js:58
|
||||||
|
msgid "Never group windows"
|
||||||
|
msgstr "Werǧin ad tesgerweḍ isfuyla"
|
||||||
|
|
||||||
|
#: extensions/window-list/prefs.js:59
|
||||||
|
msgid "Group windows when space is limited"
|
||||||
|
msgstr "Segrew isfuyla ticki tallunt txuṣ"
|
||||||
|
|
||||||
|
#: extensions/window-list/prefs.js:60
|
||||||
|
msgid "Always group windows"
|
||||||
|
msgstr "Yalas ssegraw isfuyla"
|
||||||
|
|
||||||
|
#: extensions/window-list/prefs.js:94
|
||||||
|
msgid "Show on all monitors"
|
||||||
|
msgstr "Sken ɣef yigdilen meṛṛa"
|
||||||
|
|
||||||
|
#: extensions/window-list/workspaceIndicator.js:207
|
||||||
|
#: extensions/workspace-indicator/extension.js:213
|
||||||
|
msgid "Workspace Indicator"
|
||||||
|
msgstr ""
|
||||||
|
|
||||||
|
#: extensions/workspace-indicator/prefs.js:34
|
||||||
|
msgid "Workspace Names"
|
||||||
|
msgstr "Ismawen n tallunin n umahil"
|
||||||
|
|
||||||
|
#: extensions/workspace-indicator/prefs.js:67
|
||||||
|
#, javascript-format
|
||||||
|
msgid "Workspace %d"
|
||||||
|
msgstr "Tallunt n umahil %d"
|
||||||
|
|
||||||
|
#: extensions/workspace-indicator/prefs.js:218
|
||||||
|
msgid "Add Workspace"
|
||||||
|
msgstr "Rnu tallunt n umahil"
|
||||||
@@ -7,11 +7,11 @@
|
|||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
|
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
|
||||||
"Report-Msgid-Bugs-To: https://bugzilla.gnome.org/enter_bug.cgi?product=gnome-"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||||
"shell&keywords=I18N+L10N&component=extensions\n"
|
"issues\n"
|
||||||
"POT-Creation-Date: 2017-08-11 01:33+0000\n"
|
"POT-Creation-Date: 2020-05-28 00:55+0000\n"
|
||||||
"PO-Revision-Date: 2017-09-20 11:37+0300\n"
|
"PO-Revision-Date: 2020-09-21 16:55+0300\n"
|
||||||
"Last-Translator: Stas Solovey <whats_up@tut.by>\n"
|
"Last-Translator: Alexey Rubtsov <rushills@gmail.com>\n"
|
||||||
"Language-Team: Русский <gnome-cyr@gnome.org>\n"
|
"Language-Team: Русский <gnome-cyr@gnome.org>\n"
|
||||||
"Language: ru\n"
|
"Language: ru\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
@@ -19,7 +19,7 @@ msgstr ""
|
|||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && 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"
|
"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
|
||||||
"X-Generator: Poedit 2.0.3\n"
|
"X-Generator: Poedit 2.4.1\n"
|
||||||
|
|
||||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
|
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
|
||||||
msgid "GNOME Classic"
|
msgid "GNOME Classic"
|
||||||
@@ -29,73 +29,11 @@ msgstr "Классический GNOME"
|
|||||||
msgid "This session logs you into GNOME Classic"
|
msgid "This session logs you into GNOME Classic"
|
||||||
msgstr "Данный сеанс использует классический рабочий стол GNOME"
|
msgstr "Данный сеанс использует классический рабочий стол GNOME"
|
||||||
|
|
||||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:7
|
#: extensions/apps-menu/extension.js:113
|
||||||
msgid "Attach modal dialog to the parent window"
|
|
||||||
msgstr "Прикреплять модальное диалоговое окно к родительскому окну"
|
|
||||||
|
|
||||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:8
|
|
||||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:25
|
|
||||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:33
|
|
||||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:41
|
|
||||||
msgid ""
|
|
||||||
"This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
|
||||||
msgstr ""
|
|
||||||
"Этот ключ переопределяет ключ в org.gnome.mutter при запуске GNOME Shell."
|
|
||||||
|
|
||||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:16
|
|
||||||
msgid "Arrangement of buttons on the titlebar"
|
|
||||||
msgstr "Расположение кнопок в заголовке"
|
|
||||||
|
|
||||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:17
|
|
||||||
msgid ""
|
|
||||||
"This key overrides the key in org.gnome.desktop.wm.preferences when running "
|
|
||||||
"GNOME Shell."
|
|
||||||
msgstr ""
|
|
||||||
"Этот ключ переопределяет ключ в org.gnome.desktop.wm.preferences при запуске "
|
|
||||||
"GNOME Shell."
|
|
||||||
|
|
||||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:24
|
|
||||||
msgid "Enable edge tiling when dropping windows on screen edges"
|
|
||||||
msgstr ""
|
|
||||||
"Автоматически изменять размеры окна при перемещении окна к краям экрана"
|
|
||||||
|
|
||||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:32
|
|
||||||
msgid "Workspaces only on primary monitor"
|
|
||||||
msgstr "Рабочие места только на основном мониторе"
|
|
||||||
|
|
||||||
#: data/org.gnome.shell.extensions.classic-overrides.gschema.xml:40
|
|
||||||
msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
|
||||||
msgstr "Задержка изменения фокуса в режиме мыши после остановки указателя"
|
|
||||||
|
|
||||||
#: extensions/alternate-tab/prefs.js:20
|
|
||||||
msgid "Thumbnail only"
|
|
||||||
msgstr "Только миниатюры"
|
|
||||||
|
|
||||||
#: extensions/alternate-tab/prefs.js:21
|
|
||||||
msgid "Application icon only"
|
|
||||||
msgstr "Только значок приложения"
|
|
||||||
|
|
||||||
#: extensions/alternate-tab/prefs.js:22
|
|
||||||
msgid "Thumbnail and application icon"
|
|
||||||
msgstr "Миниатюра и значок приложения"
|
|
||||||
|
|
||||||
#: extensions/alternate-tab/prefs.js:38
|
|
||||||
msgid "Present windows as"
|
|
||||||
msgstr "Отображать окна как"
|
|
||||||
|
|
||||||
#: extensions/alternate-tab/prefs.js:69
|
|
||||||
msgid "Show only windows in the current workspace"
|
|
||||||
msgstr "Отображать окна только текущей рабочей области"
|
|
||||||
|
|
||||||
#: extensions/apps-menu/extension.js:41
|
|
||||||
msgid "Activities Overview"
|
|
||||||
msgstr "Обзор"
|
|
||||||
|
|
||||||
#: extensions/apps-menu/extension.js:141
|
|
||||||
msgid "Favorites"
|
msgid "Favorites"
|
||||||
msgstr "Избранное"
|
msgstr "Избранное"
|
||||||
|
|
||||||
#: extensions/apps-menu/extension.js:436
|
#: extensions/apps-menu/extension.js:369
|
||||||
msgid "Applications"
|
msgid "Applications"
|
||||||
msgstr "Приложения"
|
msgstr "Приложения"
|
||||||
|
|
||||||
@@ -111,73 +49,29 @@ msgstr ""
|
|||||||
"Список строк, содержащих идентификатор приложения (имя desktop-файла), за "
|
"Список строк, содержащих идентификатор приложения (имя desktop-файла), за "
|
||||||
"которым следует двоеточие и номер рабочего места"
|
"которым следует двоеточие и номер рабочего места"
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:60
|
#: extensions/auto-move-windows/prefs.js:35
|
||||||
msgid "Application"
|
msgid "Workspace Rules"
|
||||||
msgstr "Приложение"
|
msgstr "Правила для рабочей области"
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:69
|
#: extensions/auto-move-windows/prefs.js:243
|
||||||
#: extensions/auto-move-windows/prefs.js:127
|
|
||||||
msgid "Workspace"
|
|
||||||
msgstr "Рабочая область"
|
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:85
|
|
||||||
msgid "Add Rule"
|
msgid "Add Rule"
|
||||||
msgstr "Добавить правило"
|
msgstr "Добавить правило"
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:106
|
|
||||||
msgid "Create new matching rule"
|
|
||||||
msgstr "Создать новое правило соответствия"
|
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:111
|
|
||||||
msgid "Add"
|
|
||||||
msgstr "Добавить"
|
|
||||||
|
|
||||||
#. TRANSLATORS: %s is the filesystem name
|
#. TRANSLATORS: %s is the filesystem name
|
||||||
#: extensions/drive-menu/extension.js:107
|
#: extensions/drive-menu/extension.js:112
|
||||||
|
#: extensions/places-menu/placeDisplay.js:233
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Ejecting drive “%s” failed:"
|
msgid "Ejecting drive “%s” failed:"
|
||||||
msgstr "Не удалось извлечь диск «%s»:"
|
msgstr "Не удалось извлечь диск «%s»:"
|
||||||
|
|
||||||
#: extensions/drive-menu/extension.js:125
|
#: extensions/drive-menu/extension.js:128
|
||||||
msgid "Removable devices"
|
msgid "Removable devices"
|
||||||
msgstr "Съёмные устройства"
|
msgstr "Съёмные устройства"
|
||||||
|
|
||||||
#: extensions/drive-menu/extension.js:150
|
#: extensions/drive-menu/extension.js:155
|
||||||
msgid "Open Files"
|
msgid "Open Files"
|
||||||
msgstr "Открыть файлы"
|
msgstr "Открыть файлы"
|
||||||
|
|
||||||
#: extensions/example/extension.js:17
|
|
||||||
msgid "Hello, world!"
|
|
||||||
msgstr "Привет, мир!"
|
|
||||||
|
|
||||||
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:5
|
|
||||||
msgid "Alternative greeting text."
|
|
||||||
msgstr "Альтернативный текст приветствия."
|
|
||||||
|
|
||||||
#: extensions/example/org.gnome.shell.extensions.example.gschema.xml:6
|
|
||||||
msgid ""
|
|
||||||
"If not empty, it contains the text that will be shown when clicking on the "
|
|
||||||
"panel."
|
|
||||||
msgstr ""
|
|
||||||
"Если строка не пуста, то содержащийся в ней текст будет показан при нажатии "
|
|
||||||
"на панель."
|
|
||||||
|
|
||||||
#: extensions/example/prefs.js:30
|
|
||||||
msgid "Message"
|
|
||||||
msgstr "Сообщение"
|
|
||||||
|
|
||||||
#. TRANSLATORS: Example is the name of the extension, should not be
|
|
||||||
#. translated
|
|
||||||
#: extensions/example/prefs.js:43
|
|
||||||
msgid ""
|
|
||||||
"Example aims to show how to build well behaved extensions for the Shell and "
|
|
||||||
"as such it has little functionality on its own.\n"
|
|
||||||
"Nevertheless it’s possible to customize the greeting message."
|
|
||||||
msgstr ""
|
|
||||||
"Цель расширения Example — показать, как создавать расширения для Shell, само "
|
|
||||||
"по себе оно имеет малую функциональность.\n"
|
|
||||||
"Тем не менее, можно настроить приветственное сообщение."
|
|
||||||
|
|
||||||
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
#: extensions/native-window-placement/org.gnome.shell.extensions.native-window-placement.gschema.xml:5
|
||||||
msgid "Use more screen for windows"
|
msgid "Use more screen for windows"
|
||||||
msgstr "Использовать дополнительную область экрана для окон"
|
msgstr "Использовать дополнительную область экрана для окон"
|
||||||
@@ -207,31 +101,31 @@ msgstr ""
|
|||||||
"умолчанию заголовки располагаются снизу). При изменении этого параметра, "
|
"умолчанию заголовки располагаются снизу). При изменении этого параметра, "
|
||||||
"чтобы оно вступило в силу, необходимо перезапустить Shell."
|
"чтобы оно вступило в силу, необходимо перезапустить Shell."
|
||||||
|
|
||||||
#: extensions/places-menu/extension.js:78
|
#: extensions/places-menu/extension.js:89
|
||||||
#: extensions/places-menu/extension.js:81
|
#: extensions/places-menu/extension.js:93
|
||||||
msgid "Places"
|
msgid "Places"
|
||||||
msgstr "Места"
|
msgstr "Места"
|
||||||
|
|
||||||
#: extensions/places-menu/placeDisplay.js:65
|
#: extensions/places-menu/placeDisplay.js:46
|
||||||
#, javascript-format
|
|
||||||
msgid "Failed to mount volume for “%s”"
|
|
||||||
msgstr "Не удалось смонтировать том для «%s»"
|
|
||||||
|
|
||||||
#: extensions/places-menu/placeDisplay.js:78
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Failed to launch “%s”"
|
msgid "Failed to launch “%s”"
|
||||||
msgstr "Не удалось запустить «%s»"
|
msgstr "Не удалось запустить «%s»"
|
||||||
|
|
||||||
#: extensions/places-menu/placeDisplay.js:137
|
#: extensions/places-menu/placeDisplay.js:61
|
||||||
#: extensions/places-menu/placeDisplay.js:160
|
#, javascript-format
|
||||||
|
msgid "Failed to mount volume for “%s”"
|
||||||
|
msgstr "Не удалось смонтировать том для «%s»"
|
||||||
|
|
||||||
|
#: extensions/places-menu/placeDisplay.js:148
|
||||||
|
#: extensions/places-menu/placeDisplay.js:171
|
||||||
msgid "Computer"
|
msgid "Computer"
|
||||||
msgstr "Компьютер"
|
msgstr "Компьютер"
|
||||||
|
|
||||||
#: extensions/places-menu/placeDisplay.js:303
|
#: extensions/places-menu/placeDisplay.js:359
|
||||||
msgid "Home"
|
msgid "Home"
|
||||||
msgstr "Домашняя папка"
|
msgstr "Домашняя папка"
|
||||||
|
|
||||||
#: extensions/places-menu/placeDisplay.js:347
|
#: extensions/places-menu/placeDisplay.js:404
|
||||||
msgid "Browse Network"
|
msgid "Browse Network"
|
||||||
msgstr "Обзор сети"
|
msgstr "Обзор сети"
|
||||||
|
|
||||||
@@ -251,54 +145,49 @@ msgstr "Название темы"
|
|||||||
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
msgid "The name of the theme, to be loaded from ~/.themes/name/gnome-shell"
|
||||||
msgstr "Название темы, загружаемой из ~/.themes/name/gnome-shell"
|
msgstr "Название темы, загружаемой из ~/.themes/name/gnome-shell"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:110
|
#: extensions/window-list/extension.js:98
|
||||||
msgid "Close"
|
msgid "Close"
|
||||||
msgstr "Закрыть"
|
msgstr "Закрыть"
|
||||||
|
|
||||||
# ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize)
|
# ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize)
|
||||||
#: extensions/window-list/extension.js:129
|
#: extensions/window-list/extension.js:118
|
||||||
msgid "Unminimize"
|
msgid "Unminimize"
|
||||||
msgstr "Вернуть"
|
msgstr "Вернуть"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:130
|
#: extensions/window-list/extension.js:118
|
||||||
msgid "Minimize"
|
msgid "Minimize"
|
||||||
msgstr "Свернуть"
|
msgstr "Свернуть"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:136
|
#: extensions/window-list/extension.js:125
|
||||||
msgid "Unmaximize"
|
msgid "Unmaximize"
|
||||||
msgstr "Восстановить"
|
msgstr "Восстановить"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:137
|
#: extensions/window-list/extension.js:125
|
||||||
msgid "Maximize"
|
msgid "Maximize"
|
||||||
msgstr "Развернуть"
|
msgstr "Развернуть"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:420
|
#: extensions/window-list/extension.js:428
|
||||||
msgid "Minimize all"
|
msgid "Minimize all"
|
||||||
msgstr "Свернуть все"
|
msgstr "Свернуть все"
|
||||||
|
|
||||||
# ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize)
|
# ну или "восстановить", правда тогда появляется неоднозначный повтор (unmaximize)
|
||||||
#: extensions/window-list/extension.js:428
|
#: extensions/window-list/extension.js:434
|
||||||
msgid "Unminimize all"
|
msgid "Unminimize all"
|
||||||
msgstr "Вернуть все"
|
msgstr "Вернуть все"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:436
|
#: extensions/window-list/extension.js:440
|
||||||
msgid "Maximize all"
|
msgid "Maximize all"
|
||||||
msgstr "Развернуть все"
|
msgstr "Развернуть все"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:445
|
#: extensions/window-list/extension.js:448
|
||||||
msgid "Unmaximize all"
|
msgid "Unmaximize all"
|
||||||
msgstr "Восстановить все"
|
msgstr "Восстановить все"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:454
|
#: extensions/window-list/extension.js:456
|
||||||
msgid "Close all"
|
msgid "Close all"
|
||||||
msgstr "Закрыть все"
|
msgstr "Закрыть все"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:678
|
#: extensions/window-list/extension.js:734
|
||||||
#: extensions/workspace-indicator/extension.js:30
|
|
||||||
msgid "Workspace Indicator"
|
|
||||||
msgstr "Индикатор рабочей области"
|
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:842
|
|
||||||
msgid "Window List"
|
msgid "Window List"
|
||||||
msgstr "Список окон"
|
msgstr "Список окон"
|
||||||
|
|
||||||
@@ -316,10 +205,20 @@ msgstr ""
|
|||||||
"«always» — всегда."
|
"«always» — всегда."
|
||||||
|
|
||||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||||
|
#: extensions/window-list/prefs.js:100
|
||||||
|
msgid "Show windows from all workspaces"
|
||||||
|
msgstr "Отображать окна со всех рабочих областей"
|
||||||
|
|
||||||
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
||||||
|
msgid "Whether to show windows from all workspaces or only the current one."
|
||||||
|
msgstr ""
|
||||||
|
"Показывать ли список окон со всех рабочих областей или только с текущей."
|
||||||
|
|
||||||
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:27
|
||||||
msgid "Show the window list on all monitors"
|
msgid "Show the window list on all monitors"
|
||||||
msgstr "Показывать список окон на всех мониторах"
|
msgstr "Показывать список окон на всех мониторах"
|
||||||
|
|
||||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:21
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:28
|
||||||
msgid ""
|
msgid ""
|
||||||
"Whether to show the window list on all connected monitors or only on the "
|
"Whether to show the window list on all connected monitors or only on the "
|
||||||
"primary one."
|
"primary one."
|
||||||
@@ -327,39 +226,124 @@ msgstr ""
|
|||||||
"Показывать ли список окон на всех подключенных мониторах или только на "
|
"Показывать ли список окон на всех подключенных мониторах или только на "
|
||||||
"основном."
|
"основном."
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:32
|
#: extensions/window-list/prefs.js:29
|
||||||
msgid "Window Grouping"
|
msgid "Window Grouping"
|
||||||
msgstr "Группировка окон"
|
msgstr "Группировка окон"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:50
|
#: extensions/window-list/prefs.js:58
|
||||||
msgid "Never group windows"
|
msgid "Never group windows"
|
||||||
msgstr "Никогда не группировать окна"
|
msgstr "Никогда не группировать окна"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:51
|
#: extensions/window-list/prefs.js:59
|
||||||
msgid "Group windows when space is limited"
|
msgid "Group windows when space is limited"
|
||||||
msgstr "Группировать окна, если место ограничено"
|
msgstr "Группировать окна, если место ограничено"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:52
|
#: extensions/window-list/prefs.js:60
|
||||||
msgid "Always group windows"
|
msgid "Always group windows"
|
||||||
msgstr "Всегда группировать окна"
|
msgstr "Всегда группировать окна"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:75
|
#: extensions/window-list/prefs.js:94
|
||||||
msgid "Show on all monitors"
|
msgid "Show on all monitors"
|
||||||
msgstr "Показывать на всех мониторах"
|
msgstr "Показывать на всех мониторах"
|
||||||
|
|
||||||
#: extensions/workspace-indicator/prefs.js:141
|
#: extensions/window-list/workspaceIndicator.js:207
|
||||||
|
#: extensions/workspace-indicator/extension.js:213
|
||||||
|
msgid "Workspace Indicator"
|
||||||
|
msgstr "Индикатор рабочей области"
|
||||||
|
|
||||||
|
#: extensions/workspace-indicator/prefs.js:34
|
||||||
msgid "Workspace Names"
|
msgid "Workspace Names"
|
||||||
msgstr "Названия рабочих областей"
|
msgstr "Названия рабочих областей"
|
||||||
|
|
||||||
#: extensions/workspace-indicator/prefs.js:157
|
#: extensions/workspace-indicator/prefs.js:67
|
||||||
msgid "Name"
|
|
||||||
msgstr "Название"
|
|
||||||
|
|
||||||
#: extensions/workspace-indicator/prefs.js:198
|
|
||||||
#, javascript-format
|
#, javascript-format
|
||||||
msgid "Workspace %d"
|
msgid "Workspace %d"
|
||||||
msgstr "Рабочая область %d"
|
msgstr "Рабочая область %d"
|
||||||
|
|
||||||
|
#: extensions/workspace-indicator/prefs.js:218
|
||||||
|
msgid "Add Workspace"
|
||||||
|
msgstr "Добавить рабочую область"
|
||||||
|
|
||||||
|
#~ msgid "Attach modal dialog to the parent window"
|
||||||
|
#~ msgstr "Прикреплять модальное диалоговое окно к родительскому окну"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This key overrides the key in org.gnome.mutter when running GNOME Shell."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Этот ключ переопределяет ключ в org.gnome.mutter при запуске GNOME Shell."
|
||||||
|
|
||||||
|
#~ msgid "Arrangement of buttons on the titlebar"
|
||||||
|
#~ msgstr "Расположение кнопок в заголовке"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "This key overrides the key in org.gnome.desktop.wm.preferences when "
|
||||||
|
#~ "running GNOME Shell."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Этот ключ переопределяет ключ в org.gnome.desktop.wm.preferences при "
|
||||||
|
#~ "запуске GNOME Shell."
|
||||||
|
|
||||||
|
#~ msgid "Enable edge tiling when dropping windows on screen edges"
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Автоматически изменять размеры окна при перемещении окна к краям экрана"
|
||||||
|
|
||||||
|
#~ msgid "Workspaces only on primary monitor"
|
||||||
|
#~ msgstr "Рабочие места только на основном мониторе"
|
||||||
|
|
||||||
|
#~ msgid "Delay focus changes in mouse mode until the pointer stops moving"
|
||||||
|
#~ msgstr "Задержка изменения фокуса в режиме мыши после остановки указателя"
|
||||||
|
|
||||||
|
#~ msgid "Thumbnail only"
|
||||||
|
#~ msgstr "Только миниатюры"
|
||||||
|
|
||||||
|
#~ msgid "Application icon only"
|
||||||
|
#~ msgstr "Только значок приложения"
|
||||||
|
|
||||||
|
#~ msgid "Thumbnail and application icon"
|
||||||
|
#~ msgstr "Миниатюра и значок приложения"
|
||||||
|
|
||||||
|
#~ msgid "Present windows as"
|
||||||
|
#~ msgstr "Отображать окна как"
|
||||||
|
|
||||||
|
#~ msgid "Activities Overview"
|
||||||
|
#~ msgstr "Обзор"
|
||||||
|
|
||||||
|
#~ msgid "Application"
|
||||||
|
#~ msgstr "Приложение"
|
||||||
|
|
||||||
|
#~ msgid "Create new matching rule"
|
||||||
|
#~ msgstr "Создать новое правило соответствия"
|
||||||
|
|
||||||
|
#~ msgid "Add"
|
||||||
|
#~ msgstr "Добавить"
|
||||||
|
|
||||||
|
#~ msgid "Hello, world!"
|
||||||
|
#~ msgstr "Привет, мир!"
|
||||||
|
|
||||||
|
#~ msgid "Alternative greeting text."
|
||||||
|
#~ msgstr "Альтернативный текст приветствия."
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "If not empty, it contains the text that will be shown when clicking on "
|
||||||
|
#~ "the panel."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Если строка не пуста, то содержащийся в ней текст будет показан при "
|
||||||
|
#~ "нажатии на панель."
|
||||||
|
|
||||||
|
#~ msgid "Message"
|
||||||
|
#~ msgstr "Сообщение"
|
||||||
|
|
||||||
|
#~ msgid ""
|
||||||
|
#~ "Example aims to show how to build well behaved extensions for the Shell "
|
||||||
|
#~ "and as such it has little functionality on its own.\n"
|
||||||
|
#~ "Nevertheless it’s possible to customize the greeting message."
|
||||||
|
#~ msgstr ""
|
||||||
|
#~ "Цель расширения Example — показать, как создавать расширения для Shell, "
|
||||||
|
#~ "само по себе оно имеет малую функциональность.\n"
|
||||||
|
#~ "Тем не менее, можно настроить приветственное сообщение."
|
||||||
|
|
||||||
|
#~ msgid "Name"
|
||||||
|
#~ msgstr "Название"
|
||||||
|
|
||||||
#~ msgid "CPU"
|
#~ msgid "CPU"
|
||||||
#~ msgstr "ЦП"
|
#~ msgstr "ЦП"
|
||||||
|
|
||||||
|
|||||||
+34
-35
@@ -9,18 +9,18 @@ msgstr ""
|
|||||||
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
|
"Project-Id-Version: gnome-shell-extensions gnome-3-0\n"
|
||||||
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
"Report-Msgid-Bugs-To: https://gitlab.gnome.org/GNOME/gnome-shell-extensions/"
|
||||||
"issues\n"
|
"issues\n"
|
||||||
"POT-Creation-Date: 2020-04-17 16:03+0000\n"
|
"POT-Creation-Date: 2020-08-12 23:03+0000\n"
|
||||||
"PO-Revision-Date: 2020-05-02 16:06+0800\n"
|
"PO-Revision-Date: 2020-09-22 23:06+0800\n"
|
||||||
"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
|
"Last-Translator: Cheng-Chia Tseng <pswo10680@gmail.com>\n"
|
||||||
"Language-Team: Chinese <zh-l10n@linux.org.tw>\n"
|
"Language-Team: Chinese <zh-l10n@linux.org.tw>\n"
|
||||||
"Language: zh_TW\n"
|
"Language: zh_TW\n"
|
||||||
"MIME-Version: 1.0\n"
|
"MIME-Version: 1.0\n"
|
||||||
"Content-Type: text/plain; charset=UTF-8\n"
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
"Content-Transfer-Encoding: 8bit\n"
|
"Content-Transfer-Encoding: 8bit\n"
|
||||||
"X-Generator: Poedit 2.3\n"
|
"X-Generator: Poedit 2.4.1\n"
|
||||||
"Plural-Forms: nplurals=1; plural=0;\n"
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
#: data/gnome-classic.desktop.in:3 data/gnome-classic.session.desktop.in:3
|
#: data/gnome-classic.desktop.in:3
|
||||||
msgid "GNOME Classic"
|
msgid "GNOME Classic"
|
||||||
msgstr "GNOME Classic"
|
msgstr "GNOME Classic"
|
||||||
|
|
||||||
@@ -48,27 +48,14 @@ msgstr ""
|
|||||||
"字串的列表,每個都包含一個應用程式 id (桌面檔名稱),後面接著半形分號 \";\" 與"
|
"字串的列表,每個都包含一個應用程式 id (桌面檔名稱),後面接著半形分號 \";\" 與"
|
||||||
"工作區號碼"
|
"工作區號碼"
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:59
|
#: extensions/auto-move-windows/prefs.js:35
|
||||||
msgid "Application"
|
msgid "Workspace Rules"
|
||||||
msgstr "應用程式"
|
msgstr "工作區規則"
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:70
|
#: extensions/auto-move-windows/prefs.js:243
|
||||||
#: extensions/auto-move-windows/prefs.js:133
|
|
||||||
msgid "Workspace"
|
|
||||||
msgstr "工作區"
|
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:88
|
|
||||||
msgid "Add Rule"
|
msgid "Add Rule"
|
||||||
msgstr "加入規則"
|
msgstr "加入規則"
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:110
|
|
||||||
msgid "Create new matching rule"
|
|
||||||
msgstr "建立新的比對規則"
|
|
||||||
|
|
||||||
#: extensions/auto-move-windows/prefs.js:116
|
|
||||||
msgid "Add"
|
|
||||||
msgstr "加入"
|
|
||||||
|
|
||||||
#. TRANSLATORS: %s is the filesystem name
|
#. TRANSLATORS: %s is the filesystem name
|
||||||
#: extensions/drive-menu/extension.js:112
|
#: extensions/drive-menu/extension.js:112
|
||||||
#: extensions/places-menu/placeDisplay.js:233
|
#: extensions/places-menu/placeDisplay.js:233
|
||||||
@@ -174,27 +161,27 @@ msgstr "取消最大化"
|
|||||||
msgid "Maximize"
|
msgid "Maximize"
|
||||||
msgstr "最大化"
|
msgstr "最大化"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:429
|
#: extensions/window-list/extension.js:428
|
||||||
msgid "Minimize all"
|
msgid "Minimize all"
|
||||||
msgstr "全部最小化"
|
msgstr "全部最小化"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:435
|
#: extensions/window-list/extension.js:434
|
||||||
msgid "Unminimize all"
|
msgid "Unminimize all"
|
||||||
msgstr "全部取消最小化"
|
msgstr "全部取消最小化"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:441
|
#: extensions/window-list/extension.js:440
|
||||||
msgid "Maximize all"
|
msgid "Maximize all"
|
||||||
msgstr "全部最大化"
|
msgstr "全部最大化"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:449
|
#: extensions/window-list/extension.js:448
|
||||||
msgid "Unmaximize all"
|
msgid "Unmaximize all"
|
||||||
msgstr "全部取消最大化"
|
msgstr "全部取消最大化"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:457
|
#: extensions/window-list/extension.js:456
|
||||||
msgid "Close all"
|
msgid "Close all"
|
||||||
msgstr "全部關閉"
|
msgstr "全部關閉"
|
||||||
|
|
||||||
#: extensions/window-list/extension.js:737
|
#: extensions/window-list/extension.js:734
|
||||||
msgid "Window List"
|
msgid "Window List"
|
||||||
msgstr "視窗列表"
|
msgstr "視窗列表"
|
||||||
|
|
||||||
@@ -210,7 +197,7 @@ msgstr ""
|
|||||||
"決定在視窗列表中何時群組視窗。可能的數值有「never」、「auto」、「always」。"
|
"決定在視窗列表中何時群組視窗。可能的數值有「never」、「auto」、「always」。"
|
||||||
|
|
||||||
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
#: extensions/window-list/org.gnome.shell.extensions.window-list.gschema.xml:20
|
||||||
#: extensions/window-list/prefs.js:89
|
#: extensions/window-list/prefs.js:100
|
||||||
msgid "Show windows from all workspaces"
|
msgid "Show windows from all workspaces"
|
||||||
msgstr "顯示所有工作區的視窗"
|
msgstr "顯示所有工作區的視窗"
|
||||||
|
|
||||||
@@ -228,28 +215,28 @@ msgid ""
|
|||||||
"primary one."
|
"primary one."
|
||||||
msgstr "是否在所有連接的螢幕顯示視窗列表或是只出現在主要螢幕上。"
|
msgstr "是否在所有連接的螢幕顯示視窗列表或是只出現在主要螢幕上。"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:25
|
#: extensions/window-list/prefs.js:29
|
||||||
msgid "Window Grouping"
|
msgid "Window Grouping"
|
||||||
msgstr "視窗群組"
|
msgstr "視窗群組"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:47
|
#: extensions/window-list/prefs.js:58
|
||||||
msgid "Never group windows"
|
msgid "Never group windows"
|
||||||
msgstr "永不群組視窗"
|
msgstr "永不群組視窗"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:48
|
#: extensions/window-list/prefs.js:59
|
||||||
msgid "Group windows when space is limited"
|
msgid "Group windows when space is limited"
|
||||||
msgstr "當空間受限時群組視窗"
|
msgstr "當空間受限時群組視窗"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:49
|
#: extensions/window-list/prefs.js:60
|
||||||
msgid "Always group windows"
|
msgid "Always group windows"
|
||||||
msgstr "永遠群組視窗"
|
msgstr "永遠群組視窗"
|
||||||
|
|
||||||
#: extensions/window-list/prefs.js:82
|
#: extensions/window-list/prefs.js:94
|
||||||
msgid "Show on all monitors"
|
msgid "Show on all monitors"
|
||||||
msgstr "顯示於所有螢幕"
|
msgstr "顯示於所有螢幕"
|
||||||
|
|
||||||
#: extensions/window-list/workspaceIndicator.js:209
|
#: extensions/window-list/workspaceIndicator.js:207
|
||||||
#: extensions/workspace-indicator/extension.js:215
|
#: extensions/workspace-indicator/extension.js:213
|
||||||
msgid "Workspace Indicator"
|
msgid "Workspace Indicator"
|
||||||
msgstr "工作區指示器"
|
msgstr "工作區指示器"
|
||||||
|
|
||||||
@@ -266,6 +253,18 @@ msgstr "工作區 %d"
|
|||||||
msgid "Add Workspace"
|
msgid "Add Workspace"
|
||||||
msgstr "新增工作區"
|
msgstr "新增工作區"
|
||||||
|
|
||||||
|
#~ msgid "Application"
|
||||||
|
#~ msgstr "應用程式"
|
||||||
|
|
||||||
|
#~ msgid "Workspace"
|
||||||
|
#~ msgstr "工作區"
|
||||||
|
|
||||||
|
#~ msgid "Create new matching rule"
|
||||||
|
#~ msgstr "建立新的比對規則"
|
||||||
|
|
||||||
|
#~ msgid "Add"
|
||||||
|
#~ msgstr "加入"
|
||||||
|
|
||||||
#~ msgid "Name"
|
#~ msgid "Name"
|
||||||
#~ msgstr "名稱"
|
#~ msgstr "名稱"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user