Compare commits

..

55 Commits

Author SHA1 Message Date
Michael Telatynski
43e3ade879 Merge branch 't3chguy/build-files-assert' into t3chguy/update-electron-builder 2025-02-18 10:40:42 +00:00
Michael Telatynski
33107ca70b Discard changes to .github/workflows/build_and_test.yaml 2025-02-18 09:49:36 +00:00
Michael Telatynski
4613559bf9 Merge remote-tracking branch 'origin/t3chguy/update-electron-builder' into t3chguy/update-electron-builder 2025-02-18 09:45:34 +00:00
Michael Telatynski
f35f0e17ab Merge branch 't3chguy/build-files-assert' of https://github.com/vector-im/element-desktop into t3chguy/update-electron-builder
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>

# Conflicts:
#	.github/workflows/build_windows.yaml
2025-02-18 09:45:29 +00:00
Michael Telatynski
58c531a7f5 Update build_windows.yaml 2025-02-18 09:44:25 +00:00
Michael Telatynski
0f100b6957 Merge branch 't3chguy/build-files-assert' of https://github.com/vector-im/element-desktop into t3chguy/update-electron-builder
# Conflicts:
#	.github/workflows/build_windows.yaml
2025-02-18 09:44:14 +00:00
Michael Telatynski
2b88c345a7 Simplify
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-18 09:41:45 +00:00
Michael Telatynski
beb9b2671b Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 23:13:56 +00:00
Michael Telatynski
b52bd45a5d Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 21:03:17 +00:00
Michael Telatynski
14888c43e4 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 16:28:37 +00:00
Michael Telatynski
bb406a8173 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 16:10:05 +00:00
Michael Telatynski
9885cab70a Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 11:56:18 +00:00
Michael Telatynski
32d67a443d Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 11:53:46 +00:00
Michael Telatynski
ba507c7c5a Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 11:24:07 +00:00
Michael Telatynski
357ec2033c Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 11:23:30 +00:00
Michael Telatynski
360bda6d4f Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 11:21:01 +00:00
Michael Telatynski
21084af22f Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 11:01:58 +00:00
Michael Telatynski
4b80d90f04 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 10:38:04 +00:00
Michael Telatynski
c5a1d95e83 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 10:07:31 +00:00
Michael Telatynski
8b515d0478 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 10:06:43 +00:00
Michael Telatynski
ac2db66507 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 09:54:46 +00:00
Michael Telatynski
962ecb9d6a Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 09:38:53 +00:00
Michael Telatynski
bccc2dbbc8 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-17 09:35:43 +00:00
Michael Telatynski
3b0729451b Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 17:58:30 +00:00
Michael Telatynski
343bfe2d52 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 17:35:02 +00:00
Michael Telatynski
0e1c861a25 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 17:18:24 +00:00
Michael Telatynski
ccc80b9bbf Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 17:05:10 +00:00
Michael Telatynski
def225bc82 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 16:46:11 +00:00
Michael Telatynski
75d8b7316e Handle spaces in executable path
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 16:16:56 +00:00
Michael Telatynski
086e9ee8df Improve CI test signing & test squirrel & msi packages
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 16:04:59 +00:00
Michael Telatynski
17c7f78985 Test
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 15:56:48 +00:00
Michael Telatynski
b845c85531 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 15:27:08 +00:00
Michael Telatynski
8598680a87 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 15:14:33 +00:00
Michael Telatynski
1b4fc88edf Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 14:30:53 +00:00
Michael Telatynski
8e06fceb6b Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 13:33:43 +00:00
Michael Telatynski
77dc96f4bb Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 12:42:21 +00:00
Michael Telatynski
dcced5ffd6 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 12:12:46 +00:00
Michael Telatynski
d20eca274e Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 11:46:13 +00:00
Michael Telatynski
042c68620b Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 11:45:38 +00:00
Michael Telatynski
068b7e32bb Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 11:11:36 +00:00
Michael Telatynski
991e78e27e Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 11:00:12 +00:00
Michael Telatynski
045da1ba04 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 10:49:51 +00:00
Michael Telatynski
83f805efb3 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 10:48:13 +00:00
Michael Telatynski
0e22ef3303 Merge branch 'develop' of https://github.com/vector-im/element-desktop into t3chguy/update-electron-builder
# Conflicts:
#	.github/workflows/build_windows.yaml
2025-02-13 10:41:52 +00:00
Michael Telatynski
85cd92f695 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 10:41:25 +00:00
Michael Telatynski
561c7f76a0 Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 10:31:46 +00:00
Michael Telatynski
931d12c488 Merge remote-tracking branch 'origin/t3chguy/update-electron-builder' into t3chguy/update-electron-builder 2025-02-13 09:07:01 +00:00
Michael Telatynski
b58d9879f2 Update patch to c2f17f257dd6d3e6acd2331f6e5664545103ac1c
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-13 09:06:53 +00:00
Michael Telatynski
56bd4ce8ee Update build_and_test.yaml 2025-02-12 17:09:52 +00:00
Michael Telatynski
3deb5db0d0 Apply patch from @mmaietta
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-12 16:42:40 +00:00
Michael Telatynski
32c902738e DEBUG electron builder and friends
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-08 17:52:08 +00:00
Michael Telatynski
49ab982ae1 Update electron-builder to 26.0.6
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-08 17:50:56 +00:00
Michael Telatynski
fce95dc58d Iterate
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 18:21:19 +00:00
Michael Telatynski
90f58de6ab Of course powershell is special
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 18:10:24 +00:00
Michael Telatynski
0aa9985ad0 Test windows signing in CI
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2025-02-07 17:58:25 +00:00
21 changed files with 413 additions and 817 deletions

View File

@@ -62,7 +62,7 @@ jobs:
name: Windows ${{ matrix.arch }}
strategy:
matrix:
arch: [ia32, x64, arm64]
arch: [ia32, x64]
uses: ./.github/workflows/build_windows.yaml
secrets: inherit
with:

View File

@@ -22,7 +22,7 @@ jobs:
uses: ./.github/workflows/build_windows.yaml
strategy:
matrix:
arch: [x64, ia32, arm64]
arch: [x64, ia32]
with:
arch: ${{ matrix.arch }}
@@ -43,9 +43,6 @@ jobs:
needs: fetch
name: macOS
uses: ./.github/workflows/build_macos.yaml
secrets: inherit
with:
sign: true
test:
needs:

View File

@@ -88,7 +88,7 @@ jobs:
- name: "Get modified files"
id: changed_files
if: steps.cache.outputs.cache-hit != 'true' && github.event_name == 'pull_request'
uses: tj-actions/changed-files@dcc7a0cba800f454d79fff4b993e8c3555bcc0a8 # v45
uses: tj-actions/changed-files@d6e91a2266cdb9d62096cebf1e8546899c6aa18f # v45
with:
files: |
dockerbuild/**
@@ -123,6 +123,11 @@ jobs:
./scripts/glibc-check.sh $filename
done
- name: "[Nightly] Resolve version"
if: inputs.version != ''
run: |
echo "ED_NIGHTLY=${{ inputs.version }}" >> $GITHUB_ENV
- name: Generate debian files and arguments
run: |
if [ -f changelog.Debian ]; then
@@ -139,9 +144,6 @@ jobs:
- name: Build App
run: yarn build --publish never -l ${{ steps.config.outputs.build-args }}
env:
# Only set for Nightly builds
ED_NIGHTLY: ${{ inputs.version }}
- name: Check native libraries
run: |

View File

@@ -65,6 +65,7 @@ jobs:
node-version-file: package.json
cache: "yarn"
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --frozen-lockfile"
@@ -75,6 +76,11 @@ jobs:
pip3 install setuptools
yarn build:native:universal
- name: "[Nightly] Resolve version"
if: inputs.version != ''
run: |
echo "ED_NIGHTLY=${{ inputs.version }}" >> $GITHUB_ENV
# We split these because electron-builder gets upset if we set CSC_LINK even to an empty string
- name: "[Signed] Build App"
if: inputs.sign != ''
@@ -86,8 +92,6 @@ jobs:
APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
CSC_KEY_PASSWORD: ${{ secrets.APPLE_CSC_KEY_PASSWORD }}
CSC_LINK: ${{ secrets.APPLE_CSC_LINK }}
# TODO REMOVE
CSC_FOR_PULL_REQUEST: true
- name: Check app was signed & notarised successfully
if: inputs.sign != ''
@@ -103,8 +107,6 @@ jobs:
yarn build:universal --publish never
env:
CSC_IDENTITY_AUTO_DISCOVERY: false
# Only set for Nightly builds
ED_NIGHTLY: ${{ inputs.version }}
- name: Generate releases.json
if: inputs.base-url

View File

@@ -74,6 +74,11 @@ jobs:
path: |
./.hak
- name: Set up build tools
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
with:
arch: ${{ steps.config.outputs.arch || inputs.arch }}
# ActiveTCL package on choco is from 2015,
# this one is newer but includes more than we need
- name: Choco install tclsh
@@ -102,21 +107,10 @@ jobs:
node-version-file: package.json
cache: "yarn"
# Does not need branch matching as only analyses this layer
- name: Install Deps
run: "yarn install --frozen-lockfile"
- name: Set up sqlcipher macros
if: steps.cache.outputs.cache-hit != 'true' && contains(inputs.arch, 'arm')
shell: pwsh
run: |
echo "NCC=${{ github.workspace }}\scripts\cl.bat" | Out-File -FilePath $env:GITHUB_ENV -Encoding utf8 -Append
- name: Set up build tools
if: steps.cache.outputs.cache-hit != 'true'
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0
with:
arch: ${{ steps.config.outputs.arch || inputs.arch }}
- name: Build Natives
if: steps.cache.outputs.cache-hit != 'true'
run: |
@@ -166,11 +160,19 @@ jobs:
INSTALL_DIR: C:\Users\runneradmin\eSignerCKA
MASTER_KEY_FILE: C:\Users\runneradmin\eSignerCKA\master.key
- name: "[Nightly] Resolve version"
if: inputs.version != ''
shell: bash
run: |
echo "ED_NIGHTLY=${{ inputs.version }}" >> $GITHUB_ENV
# XXX: For whatever reason if we use `yarn build ...` it freezes, but splitting it into parts it is fine
- run: yarn run build:ts
- run: yarn run build:res
- name: Build App
run: yarn build --publish never -w ${{ steps.config.outputs.build-args }}
env:
# Only set for Nightly builds
ED_NIGHTLY: ${{ inputs.version }}
run: |
yarn electron-builder --publish never -w ${{ steps.config.outputs.build-args }}
- name: Trust eSigner sandbox cert
if: inputs.sign == ''
@@ -184,7 +186,7 @@ jobs:
Get-ChildItem `
-Recurse dist `
-Include *.exe, *.msi `
| ForEach-Object -Process {. $env:SIGNTOOL_PATH verify /pa $_.FullName; if(!$?) { throw }}
| ForEach-Object -Process {. 'C:\Program Files (x86)\Windows Kits\10\bin\10.0.22000.0\x64\signtool.exe' verify /pa $_.FullName; if(!$?) { throw }}
- name: Upload Artifacts
uses: actions/upload-artifact@v4

View File

@@ -22,10 +22,10 @@ jobs:
- uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@4574d27a4764455b42196d70a065bc6853246a25 # v3
uses: docker/setup-qemu-action@53851d14592bedcffcf25ea515637cff71ef929a # v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@f7ce87c1d6bead3e36075b2ce75da1f6cc28aaca # v3
uses: docker/setup-buildx-action@6524bf65af31da8d45b59e8c27de4bd072b392f5 # v3
with:
install: true

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- https://github.com/electron/electron-notarize#prerequisites -->
<key>com.apple.security.cs.allow-jit</key>
<true/>
<!-- https://github.com/electron-userland/electron-builder/issues/3940 -->
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<!-- Enable the app sandbox -->
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.inherit</key>
<true/>
<!-- Allow opening outgoing network connections -->
<key>com.apple.security.network.client</key>
<true/>
<!-- Allow opening & saving files for upload & download -->
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<!-- Access to camera & microphone for calls -->
<key>com.apple.security.device.camera</key>
<true/>
<key>com.apple.security.device.audio-input</key>
<true/>
</dict>
</plist>

View File

@@ -2,6 +2,14 @@
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<!-- Entitlements from electron-builder's defaults
(https://github.com/electron-userland/electron-builder/blob/master/packages/app-builder-lib/templates/entitlements.mac.plist)
nb. This does *not* include the app sandbox: at the time of adding this file,
we were using electron-builder 21.2.0 which does not have the sandbox entitlement.
Latest electron-builder does, but it appears to be causing issues:
(https://github.com/electron-userland/electron-builder/issues/4390)
-->
<!-- https://github.com/electron/electron-notarize#prerequisites -->
<key>com.apple.security.cs.allow-jit</key>
<true/>
@@ -10,15 +18,8 @@
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<!-- Allow opening outgoing network connections -->
<key>com.apple.security.network.client</key>
<true/>
<!-- Allow opening & saving files for upload & download -->
<key>com.apple.security.files.user-selected.read-write</key>
<true/>
<!-- Access to camera & microphone for calls -->
<!-- Our own additional entitlements (we need to access the camera and
mic for VoIP calls -->
<key>com.apple.security.device.camera</key>
<true/>
<key>com.apple.security.device.audio-input</key>

View File

@@ -12,13 +12,6 @@ If you want to build native modules, make sure that the following tools are inst
- [Strawberry Perl](https://strawberryperl.com/)
- [Rustup](https://rustup.rs/)
- [NASM](https://www.nasm.us/)
You can install the above tools using [Chocolatey](https://chocolatey.org/install):
```cmd
choco install --no-progress -y git nodejs-lts yarn python StrawberryPerl rustup.install nasm magicsplat-tcl-tk
```
- [Build Tools for Visual Studio 2019](https://visualstudio.microsoft.com/downloads/#build-tools-for-visual-studio-2019) with the following configuration:
- On the Workloads tab:
- Desktop & Mobile -> C++ build tools

View File

@@ -18,9 +18,6 @@ import { readFile, writeFile } from "node:fs/promises";
* Replaces spaces in the product name with dashes as spaces in paths can cause issues
* Removes libsqlcipher0 recommended dependency if env SQLCIPHER_BUNDLED is asserted.
* Passes $ED_DEBIAN_CHANGELOG to build.deb.fpm if specified
*
* On macOS:
* Passes $APPLE_TEAM_ID to build.mac.extendInfo["ElectronTeamID"] if specified.
*/
const NIGHTLY_APP_ID = "im.riot.nightly";
@@ -189,18 +186,6 @@ if (process.env.ED_SIGNTOOL_SUBJECT_NAME && process.env.ED_SIGNTOOL_THUMBPRINT)
config.win.signtoolOptions!.certificateSha1 = process.env.ED_SIGNTOOL_THUMBPRINT;
}
/**
* Allow specifying ElectronTeamID via env vars
* @param {string} process.env.APPLE_TEAM_ID
* Workaround for https://github.com/electron-userland/electron-builder/issues/7995
*/
if (process.env.APPLE_TEAM_ID) {
config.mac.extendInfo = {
ElectronTeamID: process.env.APPLE_TEAM_ID,
};
config.mac.entitlements = "./build/entitlements-sandbox.mac.plist";
}
/**
* Allow specifying nightly version via env var
* @param {string} process.env.ED_NIGHTLY

View File

@@ -72,20 +72,20 @@
"@babel/core": "^7.18.10",
"@babel/preset-env": "^7.18.10",
"@babel/preset-typescript": "^7.18.6",
"@electron/asar": "3.3.1",
"@electron/asar": "3.2.18",
"@playwright/test": "1.50.1",
"@stylistic/eslint-plugin": "^3.0.0",
"@types/auto-launch": "^5.0.1",
"@types/counterpart": "^0.18.1",
"@types/minimist": "^1.2.1",
"@types/node": "18.19.76",
"@types/node": "18.19.74",
"@types/pacote": "^11.1.1",
"@typescript-eslint/eslint-plugin": "^8.0.0",
"@typescript-eslint/parser": "^8.0.0",
"app-builder-lib": "26.0.7",
"chokidar": "^4.0.0",
"detect-libc": "^2.0.0",
"electron": "34.2.0",
"electron": "34.0.2",
"electron-builder": "26.0.7",
"electron-builder-squirrel-windows": "26.0.7",
"electron-devtools-installer": "^4.0.0",
@@ -111,11 +111,11 @@
"typescript": "5.7.3"
},
"hakDependencies": {
"matrix-seshat": "^4.0.1",
"matrix-seshat": "^4.0.0",
"keytar": "^7.9.0"
},
"resolutions": {
"@types/node": "18.19.76",
"@types/node": "18.19.74",
"config-file-ts": "0.2.8-rc1"
}
}

View File

@@ -1,7 +0,0 @@
REM Batch file to aid in cross-compiling sqlcipher for Windows ARM64
REM Full path should be passed to Makefile.msc as NCC env var
setlocal
call "C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsall.bat" %VSCMD_ARG_HOST_ARCH%
cl.exe %*
endlocal

View File

@@ -1,63 +0,0 @@
{
"action": {
"cancel": "Diddymu",
"close": "Cau",
"close_brand": "Cau %(brand)s",
"copy": "Copïo",
"cut": "Torri",
"delete": "Dileu",
"edit": "Golygu",
"minimise": "Lleihau",
"paste": "Gludo",
"paste_match_style": "Gludo a Chyfateb Arddull",
"quit": "Gadael",
"redo": "Ail-wneud",
"select_all": "Dewis y Cyfan",
"show_hide": "Dangos/Cuddio",
"undo": "Dadwneud",
"zoom_in": "Chwyddo i Mewn",
"zoom_out": "Chwyddo Allan"
},
"common": {
"about": "Ynghylch",
"brand_help": "%(brand)s Cymorth",
"help": "Cymorth",
"preferences": "Dewisiadau"
},
"confirm_quit": "Ydych chi'n siŵr eich bod am roi'r gorau iddi?",
"edit_menu": {
"speech": "Lleferydd",
"speech_start_speaking": "Cychwyn Llefaru",
"speech_stop_speaking": "Peidio Llefaru"
},
"file_menu": {
"label": "Ffeil"
},
"menu": {
"hide": "Cuddio",
"hide_others": "Cuddio'r Gweddill",
"services": "Gwasanaethau",
"unhide": "Datguddio"
},
"right_click_menu": {
"add_to_dictionary": "Ychwanegu i'r Geiriadur",
"copy_email": "Copïo cyfeiriad e-bost",
"copy_image": "Copïo delwedd",
"copy_image_url": "Copïo cyfeiriad delwedd",
"copy_link_url": "Copïo cyfeiriad y ddolen",
"save_image_as": "Cadw delwedd fel...",
"save_image_as_error_description": "Methodd y ddelwedd â chadw",
"save_image_as_error_title": "Wedi methu cadw'r ddelwedd"
},
"view_menu": {
"actual_size": "Maint Gwirioneddol",
"toggle_developer_tools": "Toggle Developer Tools",
"toggle_full_screen": "Toglo Sgrin Lawn",
"view": "Golwg"
},
"window_menu": {
"bring_all_to_front": "Popeth i'r Blaen",
"label": "Ffenestr",
"zoom": "Chwyddo"
}
}

View File

@@ -2,7 +2,7 @@
"action": {
"cancel": "Mégse",
"close": "Bezárás",
"close_brand": "Az %(brand)s bezárása",
"close_brand": "%(brand)s bezárása",
"copy": "Másolás",
"cut": "Kivágás",
"delete": "Törlés",
@@ -56,7 +56,7 @@
"view": "Megtekintés"
},
"window_menu": {
"bring_all_to_front": "Minden előtérbe hozása",
"bring_all_to_front": "Mindent előtérbe hoz",
"label": "Ablak",
"zoom": "Nagyítás"
}

View File

@@ -1,63 +0,0 @@
{
"action": {
"cancel": "გაუქმება",
"close": "დახურვა",
"close_brand": "დახურვა %(brand)s",
"copy": "კოპირება",
"cut": "მოჭრა",
"delete": "წაშალეთ",
"edit": "რედაქტირება",
"minimise": "შეამცირეთ",
"paste": "პასტა",
"paste_match_style": "ჩასვით და მატჩის სტილი",
"quit": "თავი დაანებე",
"redo": "რედო",
"select_all": "აირჩიეთ ყველა",
"show_hide": "ჩვენება/დამალვა",
"undo": "გაუქმება",
"zoom_in": "გაზარდოთ",
"zoom_out": "გაფართოება"
},
"common": {
"about": "შესახებ",
"brand_help": "%(brand)sდახმარება",
"help": "დახმარება",
"preferences": "პრეფერენციები"
},
"confirm_quit": "დარწმუნებული ხართ, რომ გსურთ დატოვება?",
"edit_menu": {
"speech": "გამოსვლა",
"speech_start_speaking": "დაიწყეთ საუბარი",
"speech_stop_speaking": "შეწყვიტე ლაპარ"
},
"file_menu": {
"label": "ფაილი"
},
"menu": {
"hide": "დამალვა",
"hide_others": "სხვების დამალვა",
"services": "მომსახურება",
"unhide": "გამოხატე"
},
"right_click_menu": {
"add_to_dictionary": "ლექსიკონში დამატება",
"copy_email": "ელ. ფოსტის მისამართის",
"copy_image": "სურათის დაკოპირება",
"copy_image_url": "გამოსახულების მისამართის კოპირ",
"copy_link_url": "ბმულის მისამართის კოპირება",
"save_image_as": "შეინახეთ სურათი როგორც...",
"save_image_as_error_description": "სურათის შენახვა ვერ შეძლო",
"save_image_as_error_title": "სურათის შენახვა ვერ შეძლ"
},
"view_menu": {
"actual_size": "რეალური ზომა",
"toggle_developer_tools": "დეველოპერის ინსტრუმენტების",
"toggle_full_screen": "სრული ეკრანის გადართვა",
"view": "ნახვა"
},
"window_menu": {
"bring_all_to_front": "ყველაფერი წინ წამოიყვანეთ",
"label": "ფანჯარა",
"zoom": "გაზუსტება"
}
}

View File

@@ -1,63 +0,0 @@
{
"action": {
"cancel": "Atcelt",
"close": "Aizvērt",
"close_brand": "Aizvērt %(brand)s",
"copy": "Kopēt",
"cut": "Izgriezt",
"delete": "Dzēst",
"edit": "Labot",
"minimise": "Samazināt",
"paste": "Ielīmēt",
"paste_match_style": "Ielīmēt un pielāgot stilu",
"quit": "Iziet",
"redo": "Atatsaukt",
"select_all": "Atzīmēt visu",
"show_hide": "Parādīt/paslēpt",
"undo": "Atsaukt",
"zoom_in": "Tuvināt",
"zoom_out": "Tālināt"
},
"common": {
"about": "Par",
"brand_help": "%(brand)s palīdzība",
"help": "Palīdzība",
"preferences": "Iestatījumi"
},
"confirm_quit": "Vai tiešām iziet?",
"edit_menu": {
"speech": "Runa",
"speech_start_speaking": "Uzsākt runāšanu",
"speech_stop_speaking": "Pārtraukt runāšanu"
},
"file_menu": {
"label": "Datne"
},
"menu": {
"hide": "Paslēpt",
"hide_others": "Paslēpt citus",
"services": "Pakalpojumi",
"unhide": "Rādīt"
},
"right_click_menu": {
"add_to_dictionary": "Pievienot vārdnīcai",
"copy_email": "Ievietot e-pasta adresi starpliktuvē",
"copy_image": "Ievietot attēlu starpliktuvē",
"copy_image_url": "Ievietot attēla adresi starpliktuvē",
"copy_link_url": "Ievietot saites adresi starpliktuvē",
"save_image_as": "Saglabāt attēlu kā...",
"save_image_as_error_description": "Attēlu neizdevās saglabāt",
"save_image_as_error_title": "Neizdevās saglabāt attēlu"
},
"view_menu": {
"actual_size": "Īstais izmērs",
"toggle_developer_tools": "Pārslēgt izstrādātāja rīkus",
"toggle_full_screen": "Pārslēgt pilnekrānu",
"view": "Skats"
},
"window_menu": {
"bring_all_to_front": "Iznest visu priekšplānā",
"label": "Logs",
"zoom": "Tālummaiņa"
}
}

View File

@@ -1,63 +0,0 @@
{
"action": {
"cancel": "Hanafoana",
"close": "Akatona",
"close_brand": "Anakatona%(brand)s",
"copy": "Dika Mitovy",
"cut": "Tapaina",
"delete": "Fafaina",
"edit": "Anova",
"minimise": "Manamaivana",
"paste": "Koba",
"paste_match_style": "Mametaka sy Mampifanandrify ny fomba",
"quit": "Mialà",
"redo": "Averina atao",
"select_all": "Isafidy ny rehetra",
"show_hide": "Aneho/Anafina",
"undo": "Ravao",
"zoom_in": "Angedao",
"zoom_out": "Hahelezo"
},
"common": {
"about": "Mombamomba",
"brand_help": "%(marques)Fanampiana",
"help": "Fanampiana",
"preferences": "Safidy manokana"
},
"confirm_quit": "Azo Antoka ve fa tena hiala ianao",
"edit_menu": {
"speech": "Fitenenana",
"speech_start_speaking": "Atomboy ny resaka/Manomboha fitenenena",
"speech_stop_speaking": "Atsaharo ny fitenenana"
},
"file_menu": {
"label": "Manapetraka/apetrao"
},
"menu": {
"hide": "Afeno",
"hide_others": "Afeno ny hafa",
"services": "Tolotra",
"unhide": "Asehoy"
},
"right_click_menu": {
"add_to_dictionary": "Ampio ao amin'ny rakibolana",
"copy_email": "Adikao ny adiresy imailaka",
"copy_image": "Andika ny sary",
"copy_image_url": "Adikao ny adiresin'ny sary",
"copy_link_url": "Adikao ny adiresy rohy",
"save_image_as": "Hitahiry ny sary ho",
"save_image_as_error_description": "Tsy voatahiry ilay sary",
"save_image_as_error_title": "Tsy nahahomby ny fitahirizana an'ilay sary"
},
"view_menu": {
"actual_size": "Habe Ankehitriny",
"toggle_developer_tools": "Amadika fitaovana fampandrosoana",
"toggle_full_screen": "Hamadika amin'ny efijery feno",
"view": "Hijery"
},
"window_menu": {
"bring_all_to_front": "Ataovy aloha ny zava-drehetra",
"label": "Varavarankely",
"zoom": "Anakaiky fahitana"
}
}

View File

@@ -1,63 +0,0 @@
{
"action": {
"cancel": "Avbryt",
"close": "Lukk",
"close_brand": "Avslutt %(brand)s",
"copy": "Kopier",
"cut": "Klipp",
"delete": "Slett",
"edit": "Rediger",
"minimise": "Minimere",
"paste": "Lim inn",
"paste_match_style": "Lim inn og match stil",
"quit": "Avslutt",
"redo": "Gjør om",
"select_all": "Velg alle",
"show_hide": "Vis/Skjul",
"undo": "Angre",
"zoom_in": "Zoom inn",
"zoom_out": "Zoom ut"
},
"common": {
"about": "Om",
"brand_help": "%(brand)s Hjelp",
"help": "Hjelp",
"preferences": "Brukervalg"
},
"confirm_quit": "Er du sikker på at du vil slutte?",
"edit_menu": {
"speech": "Tale",
"speech_start_speaking": "Begynn å snakke",
"speech_stop_speaking": "Slutt å snakke"
},
"file_menu": {
"label": "Fil"
},
"menu": {
"hide": "Skjul",
"hide_others": "Skjul andre",
"services": "Tjenester",
"unhide": "Slutt å skjule"
},
"right_click_menu": {
"add_to_dictionary": "Legg til i ordbok",
"copy_email": "Kopier e-postadressen",
"copy_image": "Kopier bildet",
"copy_image_url": "Kopier bildeadresse",
"copy_link_url": "Kopier link adresse",
"save_image_as": "Lagre bildet som...",
"save_image_as_error_description": "Bildet kunne ikke lagres",
"save_image_as_error_title": "Kunne ikke lagre bildet"
},
"view_menu": {
"actual_size": "Faktisk størrelse",
"toggle_developer_tools": "Veksle Utvikleralternativer",
"toggle_full_screen": "Veksle Fullskjerm",
"view": "Vis"
},
"window_menu": {
"bring_all_to_front": "Flytt Alt Frem",
"label": "Vindu",
"zoom": "Forstørr"
}
}

View File

@@ -20,7 +20,6 @@
},
"common": {
"about": "Sobre",
"brand_help": "%(brand)s Ajuda",
"help": "Ajuda",
"preferences": "Preferências"
},
@@ -57,7 +56,6 @@
},
"window_menu": {
"bring_all_to_front": "Trazer Todas Para Frente",
"label": "Janela",
"zoom": "Zoom"
"label": "Janela"
}
}

View File

@@ -1,63 +0,0 @@
{
"action": {
"cancel": "İptal",
"close": "Kapat",
"close_brand": "Kapat %(brand)s",
"copy": "Kopyala",
"cut": "Kes",
"delete": "Sil",
"edit": "Düzenle",
"minimise": "Küçült",
"paste": "Yapıştır",
"paste_match_style": "Stili Yapıştır ve Eşleştir",
"quit": ık",
"redo": "Yeniden yap",
"select_all": "Tümünü seç",
"show_hide": "Göster/Gizle",
"undo": "Geri al",
"zoom_in": "Yakınlaştır",
"zoom_out": "Uzaklaştır"
},
"common": {
"about": "Hakkında",
"brand_help": "%(brand)s Yardım",
"help": "Yardım",
"preferences": "Tercihler"
},
"confirm_quit": ıkmak istediğinizden emin misiniz?",
"edit_menu": {
"speech": "Konuşma",
"speech_start_speaking": "Konuşmaya başla",
"speech_stop_speaking": "Konuşmayı durdur"
},
"file_menu": {
"label": "Dosya"
},
"menu": {
"hide": "Gizle",
"hide_others": "Diğerlerini gizle",
"services": "Hizmetler",
"unhide": "Göster"
},
"right_click_menu": {
"add_to_dictionary": "Sözlüğe ekle",
"copy_email": "E-posta adresini kopyala",
"copy_image": "Resmi kopyala",
"copy_image_url": "Görsel adresini kopyala",
"copy_link_url": "Bağlantılı adresi kopyala",
"save_image_as": "Resmi farklı kaydet...",
"save_image_as_error_description": "Görüntü kaydedilemedi",
"save_image_as_error_title": "Resim kaydedilemedi"
},
"view_menu": {
"actual_size": "Gerçek boyut",
"toggle_developer_tools": "Geliştirici araçları",
"toggle_full_screen": "Tam ekran",
"view": "Görüntüle"
},
"window_menu": {
"bring_all_to_front": "Hepsini öne getir",
"label": "Pencere",
"zoom": "Yaklaştır"
}
}

686
yarn.lock
View File

File diff suppressed because it is too large Load Diff