diff --git a/.gitignore b/.gitignore index 1937f78..5f833c9 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ release.mk /release /local-pkgbuild +bom.lock diff --git a/Makefile b/Makefile index 9e111bc..95fd274 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ -.PHONY: all setup regenerate-i18n reskindex web desktop-common linux debian pacman local-pkgbuild local-pkgbuild-install windows windows-portable -.PHONY: web-release debian-release pacman-release windows-setup-release windows-unpacked-release windows-portable-release windows-release +.PHONY: all setup regenerate-i18n web desktop-common linux debian rpm pacman local-pkgbuild local-pkgbuild-install windows windows-portable +.PHONY: web-release debian-release rpm-release pacman-release windows-setup-release windows-unpacked-release windows-portable-release windows-release +.PHONY: macos-common macos macos-mas macos-release macos-mas-release icns .PHONY: clean CFGDIR ?= configs/sc @@ -19,6 +20,7 @@ OUT_WEB := $(WEB_OUT)/$(WEB_APP_NAME)-$(WEB_OUT_DIST_VERSION).tar.gz DESKTOP_OUT := element-desktop/dist OUT_DEB64 := $(DESKTOP_OUT)/$(DESKTOP_APP_NAME)_$(VERSION)_amd64.deb +OUT_RPM64 := $(DESKTOP_OUT)/$(DESKTOP_APP_NAME)-$(VERSION).x86_64.rpm OUT_PAC64 := $(DESKTOP_OUT)/$(DESKTOP_APP_NAME)-$(VERSION).pacman OUT_APPIMAGE64 := $(DESKTOP_OUT)/$(PRODUCT_NAME)-$(VERSION).AppImage OUT_TARXZ64 := $(DESKTOP_OUT)/$(DESKTOP_APP_NAME)-$(VERSION).tar.xz @@ -27,54 +29,82 @@ OUT_WIN64_PORTABLE := $(DESKTOP_OUT)/$(PRODUCT_NAME)\ $(VERSION).exe OUT_WIN64_BETTER_NAME := $(PRODUCT_NAME)_Setup_v$(VERSION).exe OUT_WIN64_UNPACKED_BETTER_NAME := $(PRODUCT_NAME)_win-unpacked_v$(VERSION).zip OUT_WIN64_PORTABLE_BETTER_NAME := $(PRODUCT_NAME)_win-portable_v$(VERSION) -OUT_MACOS := $(DESKTOP_OUT)/$(PRODUCT_NAME)-$(VERSION).dmg +OUT_MACOS := $(DESKTOP_OUT)/$(PRODUCT_NAME)-$(VERSION)-universal.dmg +OUT_MACOS_MAS := $(DESKTOP_OUT)/mas-universal/$(PRODUCT_NAME).app RELEASE_DIR := release CURRENT_RELEASE_DIR := $(RELEASE_DIR)/$(VERSION) +# macOS Codesigning +CSC_IDENTITY_AUTO_DISCOVERY ?= false +NOTARIZE_APPLE_ID ?= +CSC_NAME ?= -include release.mk setup: - if [ ! -L "element-desktop/webapp" ]; then ./setup.sh; fi + ./setup.sh + +element-desktop/build/SchildiChat.xcassets/SchildiChat.iconset: $(wildcard element-desktop/build/SchildiChat.xcassets/SchildiChat.iconset/*) + +element-desktop/build/icon.icns: element-desktop/build/SchildiChat.xcassets/SchildiChat.iconset + iconutil -c icns -o $@ $< + +element-desktop/build/SchildiChat.xcassets/SchildiChatDMG.iconset: $(wildcard element-desktop/build/SchildiChat.xcassets/SchildiChatDMG.iconset/*) + +element-desktop/build/dmg.icns: element-desktop/build/SchildiChat.xcassets/SchildiChatDMG.iconset + iconutil -c icns -o $@ $< + +icns: element-desktop/build/icon.icns element-desktop/build/dmg.icns regenerate-i18n: setup ./regenerate_i18n.sh -reskindex: setup - $(YARN) --cwd matrix-react-sdk reskindex - $(YARN) --cwd element-web reskindex - web: export DIST_VERSION=$(WEB_OUT_DIST_VERSION) -web: setup reskindex +web: setup cp $(CFGDIR)/config.json element-web/ $(YARN) --cwd element-web dist echo "$(VERSION)" > element-web/webapp/version desktop-common: web $(YARN) --cwd element-desktop run fetch --cfgdir '' - $(YARN) --cwd element-desktop run build:native + SQLCIPHER_STATIC=1 $(YARN) --cwd element-desktop run build:native + +macos-common: web icns + $(YARN) --cwd element-desktop run fetch --cfgdir '' + $(YARN) --cwd element-desktop run build:native:universal linux: desktop-common - $(YARN) --cwd element-desktop run build64linux + $(YARN) --cwd element-desktop run build:64 --linux deb pacman tar.xz debian: desktop-common - $(YARN) --cwd element-desktop run build64deb + $(YARN) --cwd element-desktop run build:64 --linux deb + +rpm: desktop-common + $(YARN) --cwd element-desktop run build:64 --linux rpm pacman: desktop-common - $(YARN) --cwd element-desktop run build64pacman + $(YARN) --cwd element-desktop run build:64 --linux pacman appimage: desktop-common - $(YARN) --cwd element-desktop run build64appimage + $(YARN) --cwd element-desktop run build:64 --linux AppImage windows: desktop-common - $(YARN) --cwd element-desktop run build64windows + $(YARN) --cwd element-desktop run build:64 --windows nsis windows-portable: desktop-common - $(YARN) --cwd element-desktop run build64windows-portable + $(YARN) --cwd element-desktop run build:64 --windows portable -macos: desktop-common - $(YARN) --cwd element-desktop run build --mac dmg -c.mac.identity=null +macos: macos-common + export CSC_IDENTITY_AUTO_DISCOVERY + export NOTARIZE_APPLE_ID + export CSC_NAME + $(YARN) --cwd element-desktop run build:universal --mac dmg + +macos-mas: macos-common + export NOTARIZE_APPLE_ID + export CSC_NAME + $(YARN) --cwd element-desktop run build:universal --mac mas local-pkgbuild: debian ./create_local_pkgbuild.sh $(VERSION) $(DESKTOP_APP_NAME) $(PRODUCT_NAME) $(OUT_DEB64) @@ -90,6 +120,10 @@ debian-release: debian mkdir -p $(CURRENT_RELEASE_DIR) cp $(OUT_DEB64) $(CURRENT_RELEASE_DIR) +rpm-release: rpm + mkdir -p $(CURRENT_RELEASE_DIR) + cp $(OUT_RPM64) $(CURRENT_RELEASE_DIR) + pacman-release: pacman mkdir -p $(CURRENT_RELEASE_DIR) cp $(OUT_PAC64) $(CURRENT_RELEASE_DIR) @@ -115,6 +149,14 @@ macos-release: macos mkdir -p $(CURRENT_RELEASE_DIR) cp $(OUT_MACOS) $(CURRENT_RELEASE_DIR) +macos-mas-release: macos-mas + mkdir -p $(CURRENT_RELEASE_DIR) + cp $(OUT_MACOS_MAS) $(CURRENT_RELEASE_DIR) + +bom.lock: element-desktop/yarn.lock element-web/yarn.lock matrix-js-sdk/yarn.lock matrix-react-sdk/yarn.lock + ./build-bom.sh +bom: bom.lock + clean: $(YARN) --cwd matrix-js-sdk clean $(YARN) --cwd matrix-react-sdk clean @@ -123,3 +165,4 @@ clean: rm -f element-desktop/webapp rm -rf element-web/dist rm -rf local-pkgbuild + rm -f bom.lock diff --git a/README.md b/README.md index 4f6500d..f4d437d 100644 --- a/README.md +++ b/README.md @@ -3,9 +3,10 @@ SchildiChat Web/Desktop is a fork of Element [Web](https://github.com/vector-im/element-web)/[Desktop](https://github.com/vector-im/element-desktop). The most important changes of SchildiChat Web/Desktop compared to Element Web/Desktop are: -- A unifed chat list for both direct and group chats +- Customizable room list style (compact single line, intermediate and roomy with two line preview) +- Option to show direct and group chats in a combined list +- Improved theming options - Message bubbles -- Bigger items in the room list - … and more! Desktop downloads with installation instructions are listed on our website: [https://schildi.chat/desktop](https://schildi.chat/desktop) @@ -15,10 +16,32 @@ Feel free to [join the discussion on matrix](https://matrix.to/#/#schildichat-we +
+Public key used to sign the Debian packages + +``` +pub rsa4096 2020-12-08 [SC] + 560BB70DA86A6633A39CEC6023358905FE294D01 +uid Super apt repo key +sub rsa4096 2020-12-08 [E] +``` + +
+ ## Building SchildiChat Web/Desktop -This particular repo is a wrapper project for element-desktop, element-web, matrix-react-sdk and matrix-js-sdk in order to build SchildiChat Web **and** Desktop. +This particular repo is a wrapper project for element-desktop, element-web, matrix-react-sdk and matrix-js-sdk. It's the recommended starting point to build SchildiChat for Web **and** Desktop. + +The `master` branch contains the latest release. +Development happens in the `sc` branch, which might be **broken at any time**! + +
schildichat-desktop <-- this repo (recommended starting point to build SchildiChat for Web and Desktop)
+|-- element-desktop (electron wrapper)
+|-- element-web ("skin" for matrix-react-sdk)
+|-- matrix-react-sdk (most of the development happens here)
+`-- matrix-js-sdk (Matrix client js sdk)
+
### Install dependencies @@ -26,10 +49,11 @@ This particular repo is a wrapper project for element-desktop, element-web, matr Since Debian is usually slow to update packages on its stable releases, some dependencies might not be recent enough to build SchildiChat. -The following are the dependencies required to build SchildiChat Web/Desktop on Debian 10: +The following are the dependencies required to build SchildiChat Web/Desktop on Debian 11 (bullseye): ``` -# apt install vim curl git make gcc g++ libsqlcipher-dev pkg-config libsecret-1-dev bsdtar +# apt install vim curl git make gcc g++ python jq libsqlcipher-dev pkg-config libsecret-1-dev libarchive-tools openssl libssl-dev tcl + # curl -sL https://deb.nodesource.com/setup_14.x | bash - # apt update # apt install nodejs @@ -57,34 +81,46 @@ $ source .bashrc brew install tcl rust node gpg vim curl git yarn git make gcc ``` +#### Signed macOS builds + +To sign a macOS build set the environment or make variable `CSC_IDENTITY_AUTO_DISCOVERY` to true +or set `CSC_NAME` to your certificate name or id. + +To notarize a build with Apple set `NOTARIZE_APPLE_ID` to your AppleID and set the keychain item +`NOTARIZE_CREDS` to an App specific AppleID password. + ### Initial setup +As already noted above, **`master` contains the latest release** and **`sc` is the development branch**! + ``` -git clone --recurse-submodules https://github.com/SchildiChat/schildichat-desktop.git +git clone -b master --recurse-submodules https://github.com/SchildiChat/schildichat-desktop.git cd schildichat-desktop make setup # optional step if using the other make targets ``` ### Create release builds -Those are the builds distributed via GitHub releases. - ``` # The single make targets are explained below -make [{web|debian|windows-setup|windows-portable|macos}-release] +make {web|debian|windows-setup|windows-portable|macos|...}-release ``` -After that these packages which belong to to their respective make target should appear in release/\/: -- `web`: _schildichat-web-\.tar.gz_: archive that can be unpacked and served by a **web** server (copy `config.sample.json` to `config.json` and adjust the [configuration](https://github.com/SchildiChat/element-web/blob/sc/docs/config.md) to your likings) -- `debian`: file ready for installation on a **Debian Linux** (based) system via `dpkg -i schildichat-desktop__amd64.deb` -- `windows-setup`: _SchildiChat_Setup_v\.exe_: file ready for **installation** on a **Windows** system -- `windows-portable`: _SchildiChat_win-portable_v\.zip_: **portable** version for a **Windows** system – take SchildiChat together with your login data around with you (the archive contains a readme with **instructions** and **notes**) -- `macos`: Build a *.dmg for macOS +After that these packages which belong to their respective make target should appear in release/\/. -#### Additional make targets not used for GitHub releases -- `pacman`: file ready for installation on an **Arch Linux** (based) system via `pacman -U schildichat-desktop-.pacman` +#### Builds distributed via GitHub releases +- `web`: _schildichat-web-\.tar.gz_: Archive that can be unpacked and served by a **web** server (copy `config.sample.json` to `config.json` and adjust the [configuration](https://github.com/SchildiChat/element-web/blob/sc/docs/config.md) to your likings) +- `debian`: File ready for installation on a **Debian Linux** (based) system via `dpkg -i schildichat-desktop__amd64.deb` +- `windows-setup`: _SchildiChat_Setup_v\.exe_: File ready for **installation** on a **Windows** system +- `windows-portable`: _SchildiChat_win-portable_v\.zip_: **Portable** version for a **Windows** system – take SchildiChat together with your login data around with you (the archive contains a readme with **instructions** and **notes**) +- `macos`: Build a *.dmg for **macOS** + +#### Additional `{...}-release` targets not used for GitHub releases +- `pacman`: File ready for installation on an **Arch Linux** (based) system via `pacman -U schildichat-desktop-.pacman` +- `rpm`: Build a *.rpm for Linux - `windows-unpacked`: _SchildiChat_win-unpacked_v\.zip_: **unpacked** archive for a **Windows** system +- `macos-mas`: Build a *.pkg for release in the Mac App Store ### Build SchildiChat Web and deploy it directly to your web server diff --git a/build-bom.sh b/build-bom.sh new file mode 100755 index 0000000..4032fa4 --- /dev/null +++ b/build-bom.sh @@ -0,0 +1,46 @@ +# /usr/bin/env bash +cat element-desktop/yarn.lock > bom.lock +echo "" >> bom.lock +cat element-web/yarn.lock >> bom.lock +echo "" >> bom.lock +cat matrix-js-sdk/yarn.lock >> bom.lock +echo "" >> bom.lock +cat matrix-react-sdk/yarn.lock >> bom.lock +echo "" >> bom.lock + +# matrix-seshat +cat << EOF >> bom.lock +matrix-seshat@2.3.0: + version "2.3.0" + resolved "https://github.com/matrix-org/seshat/archive/refs/heads/master.tar.gz" + integrity sha512-y4xtZViRX/h0zczl5hiqWyFNK7np0vVujQ/l47g1Mm7B7mDTHAneSSy/d5GADeUIsezZyvT3qKhSCwSSyqS8Xw== + dependencies: + sqlcipher "~m1" + openssl "~1.1.1f" + +sqlcipher@m1: + version "m1" + resolved "https://github.com/SchildiChat/sqlcipher/archive/refs/heads/m1.tar.gz" + integrity sha512-1Nk7J0dQyVedFLqnxUJQWrf/VBsUsfC5vAYaHDH3LRbWarfKDGYduZrhdBuzgAF+kMA237HaDt9Tq+CcXV0EJA== + +openssl@1.1.1f: + version "1.1.1f" + resolved "https://www.openssl.org/source/openssl-1.1.1f.tar.gz" + integrity sha512-sAvZta1SmPvO7sa7GcGrDBBspc+zEXhJfFi/fg4M8w/MGcIPhOI68xzBJr8kR9Pk+EYduXuvp7149pVhky8ADA== +EOF +echo "" >> bom.lock + +# keytar +cat << EOF >> bom.lock +keytar@^5.6.0: + version "5.6.0" + resolved "https://github.com/atom/node-keytar/archive/refs/tags/v5.6.0.tar.gz" + integrity sha512-dPdXLrm8AlqooT0ZS7y/mYif0DmQXoGGrqomwfl6ugIEHlpL1D+hJYhjyMC00TK924vOGD1a6OhDS2+RKEffXA== + dependencies: + libsecret "~0.20.3" + +libsecret@0.20.3: + version "0.20.3" + resolved "https://gitlab.gnome.org/GNOME/libsecret/-/archive/0.20.3/libsecret-0.20.3.tar.gz" + integrity sha512-tbD1jNKEEW9bPWuyd5YZ68eQjHhXOsy5PseVwleWYMEXgrrPPGnGGrLzSFUXRzNulFceLMeUG49Qr1rnyvfa1A== +EOF diff --git a/bump_release_version.sh b/bump_release_version.sh new file mode 100755 index 0000000..92b5cac --- /dev/null +++ b/bump_release_version.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -e + +mydir="$(dirname "$(realpath "$0")")" + +pushd "$mydir" > /dev/null + +source ./merge_helpers.sh + +# Check branch +check_branch $branch +forall_repos check_branch $branch + +# Ensure clean git state +forall_repos check_clean_git + +bump_release_version + +# Get version string +get_current_versions +get_versions_string + +# Add everything +git add -A +git commit --allow-empty -m "New release v$versions_string" +git tag -s "v$versions_string" -m "New release v$versions_string" + +popd > /dev/null diff --git a/bump_test_version.sh b/bump_test_version.sh new file mode 100755 index 0000000..bffb851 --- /dev/null +++ b/bump_test_version.sh @@ -0,0 +1,29 @@ +#!/bin/bash + +set -e + +mydir="$(dirname "$(realpath "$0")")" + +pushd "$mydir" > /dev/null + +source ./merge_helpers.sh + +# Check branch +check_branch $branch +forall_repos check_branch $branch + +# Ensure clean git state +forall_repos check_clean_git + +bump_test_version + +# Get version string +get_current_versions +get_versions_string + +# Add everything +git add -A +git commit --allow-empty -m "New test release v$versions_string" +git tag -s "v$versions_string" -m "New test release v$versions_string" + +popd > /dev/null diff --git a/configs/sc/config.json b/configs/sc/config.json index dfc32f4..2916dee 100644 --- a/configs/sc/config.json +++ b/configs/sc/config.json @@ -26,5 +26,6 @@ "url": "https://schildi.chat/desktop/privacy", "text": "Privacy Policy" } - ] + ], + "map_style_url": "https://api.maptiler.com/maps/streets/style.json?key=fU3vlMsMn4Jb6dnEIFsx" } diff --git a/deploy/create-github-release.sh b/deploy/create-github-release.sh index d0cab53..b93f7d5 100755 --- a/deploy/create-github-release.sh +++ b/deploy/create-github-release.sh @@ -15,7 +15,7 @@ release_notes_file="/tmp/scrn.md" owner=SchildiChat repo=schildichat-desktop -target=sc +target=master # Define variables GH_API="https://api.github.com" diff --git a/deploy/update-aur-bin.sh b/deploy/update-aur-bin.sh index 81b999d..f5d2213 100755 --- a/deploy/update-aur-bin.sh +++ b/deploy/update-aur-bin.sh @@ -21,6 +21,7 @@ git fetch git reset --hard origin/master sed -i "s|^_pkgver=.*$|_pkgver=$version|" PKGBUILD +sed -i "s|^pkgrel=.*$|pkgrel=1|" PKGBUILD sed -i "s|^sha256sums=('.*'$|sha256sums=('$sha256sum'|" PKGBUILD makepkg --printsrcinfo > .SRCINFO diff --git a/deploy/update-flathub.sh b/deploy/update-flathub.sh index da21f06..31c4ce5 100755 --- a/deploy/update-flathub.sh +++ b/deploy/update-flathub.sh @@ -13,7 +13,6 @@ repourl="git@github.com:flathub/chat.schildi.desktop.git" downloadurl="https://github.com/SchildiChat/schildichat-desktop/releases/download/v${version}/schildichat-desktop_${version}_amd64.deb" sha256sum=($(sha256sum $debpath)) -debsize=($(wc -c $debpath)) debdate=$(date +%Y-%m-%d -r $debpath) [ -d "$repopath" ] || git clone $repourl $repopath @@ -23,20 +22,15 @@ pushd "$repopath" > /dev/null git fetch git reset --hard origin/master -jsonFile="chat.schildi.desktop.json" -jsonString=$(jq -r "." $jsonFile) +yamlFile="chat.schildi.desktop.yaml" +xmlFile="chat.schildi.desktop.metainfo.xml" -xmlFile="chat.schildi.desktop.appdata.xml" +sed -i "s|url: .* #SC:url|url: $downloadurl #SC:url|" "$yamlFile" +sed -i "s|sha256: .* #SC:sha256|sha256: $sha256sum #SC:sha256|" "$yamlFile" -jsonString=$(echo $jsonString | jq -r ".modules[]? |= ((select(.name?==\"schildichat\") | .sources[0].url = \"${downloadurl}\") // .)") -jsonString=$(echo $jsonString | jq -r ".modules[]? |= ((select(.name?==\"schildichat\") | .sources[0].sha256 = \"${sha256sum}\") // .)") -jsonString=$(echo $jsonString | jq -r ".modules[]? |= ((select(.name?==\"schildichat\") | .sources[0].size = ${debsize}) // .)") +sed -i "s|^\s\s$| \n |" "$xmlFile" -echo $jsonString | jq --indent 4 "." > $jsonFile - -sed -i "s|^\s\s$| \n |" $xmlFile - -git add $jsonFile $xmlFile +git add $yamlFile $xmlFile git commit -m "Bump version to v$version" git push diff --git a/element-desktop b/element-desktop index 820d349..1d3a14d 160000 --- a/element-desktop +++ b/element-desktop @@ -1 +1 @@ -Subproject commit 820d3496094c6396509d048a83b6cb3e99a51fb3 +Subproject commit 1d3a14db9c017d935085611c3259f386e19a366b diff --git a/element-web b/element-web index 37703fb..11fedf6 160000 --- a/element-web +++ b/element-web @@ -1 +1 @@ -Subproject commit 37703fbbcdd3b032361efa72ec6a8ae491e428df +Subproject commit 11fedf60a5067b7139a90b70b0e672acd4e8f82a diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..271a3d0 --- /dev/null +++ b/flake.lock @@ -0,0 +1,26 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1633901457, + "narHash": "sha256-GNJLwKENqEA4xlzkWI76VLHBAua4LUIlTeeiH4FR7Gc=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f358794824b4595d77fec93732485d329ed7b0e0", + "type": "github" + }, + "original": { + "owner": "NixOS", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..d621243 --- /dev/null +++ b/flake.nix @@ -0,0 +1,44 @@ +{ + description = "The SchildiChat Matrix client"; + + inputs.nixpkgs.url = github:NixOS/nixpkgs; + + outputs = { self, nixpkgs }: let + systems = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ]; + forAllSystems = f: nixpkgs.lib.genAttrs systems (system: f system); + + overlay = import ./nix/overlay.nix; + + # Memoize nixpkgs for different platforms for efficiency. + nixpkgsFor = forAllSystems (system: + import nixpkgs { + inherit system; + overlays = [ overlay ]; + }); + in { + inherit overlay; + + packages = builtins.mapAttrs (system: pkgs: { + inherit (pkgs) + schildichat-web + schildichat-desktop + schildichat-desktop-wayland + ; + }) nixpkgsFor; + + defaultPackage = forAllSystems (system: self.packages.${system}.schildichat-desktop); + + apps = forAllSystems(system: { + schildichat-desktop = { + type = "app"; + program = "${self.packages.${system}.schildichat-desktop}/bin/schildichat-desktop"; + }; + schildichat-desktop-wayland = { + type = "app"; + program = "${self.packages.${system}.schildichat-desktop-wayland}/bin/schildichat-desktop"; + }; + }); + + defaultApp = forAllSystems (system: self.apps.${system}.schildichat-desktop); + }; +} diff --git a/i18n-overlays/element-desktop/bg.json b/i18n-overlays/element-desktop/bg.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-desktop/bg.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-desktop/es.json b/i18n-overlays/element-desktop/es.json new file mode 100644 index 0000000..928eceb --- /dev/null +++ b/i18n-overlays/element-desktop/es.json @@ -0,0 +1,3 @@ +{ + "Show": "Mostrar" +} diff --git a/i18n-overlays/element-desktop/et.json b/i18n-overlays/element-desktop/et.json new file mode 100644 index 0000000..949f6a3 --- /dev/null +++ b/i18n-overlays/element-desktop/et.json @@ -0,0 +1,3 @@ +{ + "Show": "Näita" +} diff --git a/i18n-overlays/element-desktop/eu.json b/i18n-overlays/element-desktop/eu.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-desktop/eu.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-desktop/fa.json b/i18n-overlays/element-desktop/fa.json new file mode 100644 index 0000000..1cb3a76 --- /dev/null +++ b/i18n-overlays/element-desktop/fa.json @@ -0,0 +1,3 @@ +{ + "Show": "نشان دادن" +} diff --git a/i18n-overlays/element-desktop/fr.json b/i18n-overlays/element-desktop/fr.json new file mode 100644 index 0000000..e611c40 --- /dev/null +++ b/i18n-overlays/element-desktop/fr.json @@ -0,0 +1,3 @@ +{ + "Show": "Afficher" +} diff --git a/i18n-overlays/element-desktop/hu.json b/i18n-overlays/element-desktop/hu.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-desktop/hu.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-desktop/id.json b/i18n-overlays/element-desktop/id.json new file mode 100644 index 0000000..79c1ad7 --- /dev/null +++ b/i18n-overlays/element-desktop/id.json @@ -0,0 +1,3 @@ +{ + "Show": "Tampilkan" +} diff --git a/i18n-overlays/element-desktop/it.json b/i18n-overlays/element-desktop/it.json new file mode 100644 index 0000000..e147bd9 --- /dev/null +++ b/i18n-overlays/element-desktop/it.json @@ -0,0 +1,3 @@ +{ + "Show": "Visualizza" +} diff --git a/i18n-overlays/element-desktop/lt.json b/i18n-overlays/element-desktop/lt.json new file mode 100644 index 0000000..4eb3e4a --- /dev/null +++ b/i18n-overlays/element-desktop/lt.json @@ -0,0 +1,3 @@ +{ + "Show": "Rodyti" +} diff --git a/i18n-overlays/element-desktop/nb_NO.json b/i18n-overlays/element-desktop/nb_NO.json new file mode 100644 index 0000000..640dd4a --- /dev/null +++ b/i18n-overlays/element-desktop/nb_NO.json @@ -0,0 +1,3 @@ +{ + "Show": "Vis" +} diff --git a/i18n-overlays/element-desktop/nl.json b/i18n-overlays/element-desktop/nl.json new file mode 100644 index 0000000..58f6006 --- /dev/null +++ b/i18n-overlays/element-desktop/nl.json @@ -0,0 +1,3 @@ +{ + "Show": "Tonen" +} diff --git a/i18n-overlays/element-desktop/pl.json b/i18n-overlays/element-desktop/pl.json new file mode 100644 index 0000000..b1e2f15 --- /dev/null +++ b/i18n-overlays/element-desktop/pl.json @@ -0,0 +1,3 @@ +{ + "Show": "Pokaż" +} diff --git a/i18n-overlays/element-desktop/pt_BR.json b/i18n-overlays/element-desktop/pt_BR.json new file mode 100644 index 0000000..928eceb --- /dev/null +++ b/i18n-overlays/element-desktop/pt_BR.json @@ -0,0 +1,3 @@ +{ + "Show": "Mostrar" +} diff --git a/i18n-overlays/element-desktop/ro.json b/i18n-overlays/element-desktop/ro.json new file mode 100644 index 0000000..b358cc2 --- /dev/null +++ b/i18n-overlays/element-desktop/ro.json @@ -0,0 +1,3 @@ +{ + "Show": "Arată" +} diff --git a/i18n-overlays/element-desktop/ru.json b/i18n-overlays/element-desktop/ru.json new file mode 100644 index 0000000..cec22f6 --- /dev/null +++ b/i18n-overlays/element-desktop/ru.json @@ -0,0 +1,3 @@ +{ + "Show": "Показать" +} diff --git a/i18n-overlays/element-desktop/sk.json b/i18n-overlays/element-desktop/sk.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-desktop/sk.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-desktop/sv.json b/i18n-overlays/element-desktop/sv.json new file mode 100644 index 0000000..97bf809 --- /dev/null +++ b/i18n-overlays/element-desktop/sv.json @@ -0,0 +1,3 @@ +{ + "Show": "Visa" +} diff --git a/i18n-overlays/element-desktop/vi.json b/i18n-overlays/element-desktop/vi.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-desktop/vi.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-desktop/zh_Hans.json b/i18n-overlays/element-desktop/zh_Hans.json new file mode 100644 index 0000000..7377015 --- /dev/null +++ b/i18n-overlays/element-desktop/zh_Hans.json @@ -0,0 +1,3 @@ +{ + "Show": "显示" +} diff --git a/i18n-overlays/element-desktop/zh_Hant.json b/i18n-overlays/element-desktop/zh_Hant.json new file mode 100644 index 0000000..ad1129c --- /dev/null +++ b/i18n-overlays/element-desktop/zh_Hant.json @@ -0,0 +1,3 @@ +{ + "Show": "顯示" +} diff --git a/i18n-overlays/element-web/bg.json b/i18n-overlays/element-web/bg.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/bg.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/en_EN.json b/i18n-overlays/element-web/en_EN.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/en_EN.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/es.json b/i18n-overlays/element-web/es.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/es.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/et.json b/i18n-overlays/element-web/et.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/et.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/eu.json b/i18n-overlays/element-web/eu.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/eu.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/fa.json b/i18n-overlays/element-web/fa.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/fa.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/fr.json b/i18n-overlays/element-web/fr.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/fr.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/hu.json b/i18n-overlays/element-web/hu.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/hu.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/id.json b/i18n-overlays/element-web/id.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/id.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/it.json b/i18n-overlays/element-web/it.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/it.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/lt.json b/i18n-overlays/element-web/lt.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/lt.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/nb_NO.json b/i18n-overlays/element-web/nb_NO.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/nb_NO.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/nl.json b/i18n-overlays/element-web/nl.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/nl.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/pl.json b/i18n-overlays/element-web/pl.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/pl.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/pt_BR.json b/i18n-overlays/element-web/pt_BR.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/pt_BR.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/ro.json b/i18n-overlays/element-web/ro.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/ro.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/ru.json b/i18n-overlays/element-web/ru.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/ru.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/sk.json b/i18n-overlays/element-web/sk.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/sk.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/sv.json b/i18n-overlays/element-web/sv.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/sv.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/vi.json b/i18n-overlays/element-web/vi.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/vi.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/zh_Hans.json b/i18n-overlays/element-web/zh_Hans.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/zh_Hans.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/element-web/zh_Hant.json b/i18n-overlays/element-web/zh_Hant.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/element-web/zh_Hant.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/matrix-react-sdk/bg.json b/i18n-overlays/matrix-react-sdk/bg.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/bg.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/matrix-react-sdk/cs.json b/i18n-overlays/matrix-react-sdk/cs.json index f221168..f4e03bb 100644 --- a/i18n-overlays/matrix-react-sdk/cs.json +++ b/i18n-overlays/matrix-react-sdk/cs.json @@ -1,7 +1,47 @@ { "Enable layout with message bubbles": "Povolit bubliny zpráv", "Show message bubbles on one side only": "Bubliny zpráv zobrazit pouze na jedné straně", - "Show message bubbles depending on the width either on both sides or only on one side": "Bubliny zpráv zobrazit v závislosti na šířce stránky buď na obou stranách, nebo pouze na jedné straně.", + "Show message bubbles depending on the width either on both sides or only on one side": "Bubliny zpráv zobrazit v závislosti na šířce stránky buď na obou stranách, nebo pouze na jedné straně", "Message bubbles": "Bubliny zpráv", - "Normal priority": "Normální priorita" + "Normal priority": "Normální priorita", + "Message layout": "Vzhled zpráv", + "Modern": "Moderní", + "Show people and rooms in a combined list": "Zobrazit lidi a místnosti v kombinovaném seznamu", + "Update notifications": "Aktualizace oznámení", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Chcete se připojit k místnosti, která vás bude informovat o nových verzích? To je užitečné zejména v případě, že vaše platforma nepodporuje automatické aktualizace SchildiChatu (např. Windows a macOS).", + "Don't ask again": "Neptat se znovu", + "System": "Systém", + "Light theme": "Světlý motiv", + "Dark theme": "Tmavý motiv", + "Add custom theme": "Přidat vlastní motiv", + "Theme in use": "Používaný motiv", + "User name color mode": "Barevný režim uživatelského jména", + "Uniform": "Jednotný", + "PowerLevel": "Úroveň oprávnění", + "MXID": "MXID", + "In group chats": "Ve skupinových chatech", + "In public rooms": "Ve veřejných místnostech", + "All rooms you're in will appear in Home.": "Všechny místnosti, ve kterých se nacházíte, se zobrazí v domovském zobrazení.", + "Show all rooms in Home": "Ukázat všechny místnosti v domovském zobrazení", + "Show people in spaces": "Ukázat lidi v prostorech", + "Show notification badges for People in Spaces": "Zobrazit odznaky oznámení pro Lidé v prostorech", + "Return to the room previously opened in a space": "Návrat do dříve otevřené místnosti v prostoru", + "If disabled, the space overview will be shown when switching to another space.": "Pokud je vypnuto, zobrazí se při přepnutí do jiného prostoru přehled prostorů.", + "For people": "Pro osoby", + "If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.": "Pokud je zakázáno, můžete stále přidávat chaty s lidmi do osobních prostorů. Pokud je povoleno, automaticky se zobrazí všichni, kteří jsou členy daného prostoru.", + "Intermediate: medium sized avatar with single-line preview": "Střední: středně velký avatar s jednořádkovým náhledem", + "Roomy: big avatar with two-line preview": "Prostorný: velký avatar s dvouřádkovým náhledem", + "Room list style": "Styl seznamu místností", + "Compact: tiny avatar together with name and preview in one line": "Kompaktní: malý avatar spolu se jménem a náhledem v jednom řádku", + "Show advanced theme settings": "Zobrazit pokročilá nastavení motivu", + "Theme": "Motiv", + "Room list": "Seznam místností", + "Font size and typeface": "Velikost a typ písma", + "Hide advanced theme settings": "Skrýt pokročilá nastavení motivu", + "Mark rooms as unread": "Povolit označování chatů jako nepřečtených", + "Mark as unread": "Označit jako nepřečtené", + "Mark as read": "Označit jako přečtené", + "Enable YouTube embed player": "Povolí vložený přehrávač YouTube", + "Collapse additional buttons": "Sbalit další tlačítka", + "Home is useful for getting an overview of everything. Keep in mind that disabling it could leave you unable to see certain rooms.": "Úvod je užitečný pro získání přehledu o všem. Mějte na paměti, že její vypnutí může způsobit, že nebudete moci zobrazit některé místnosti." } diff --git a/i18n-overlays/matrix-react-sdk/de_DE.json b/i18n-overlays/matrix-react-sdk/de_DE.json index 0d4dd1b..02c1ee5 100644 --- a/i18n-overlays/matrix-react-sdk/de_DE.json +++ b/i18n-overlays/matrix-react-sdk/de_DE.json @@ -86,7 +86,7 @@ "Enable experimental, compact IRC style layout": "Kompaktes, experimentelles Layout im IRC-Stil aktivieren", "Enable layout with message bubbles": "Layout mit Sprechblasen aktivieren", "Show message bubbles on one side only": "Sprechblasen nur auf einer Seite anzeigen", - "Show message bubbles depending on the width either on both sides or only on one side": "Sprechblasen abhänging von der Breite auf beiden Seiten oder nur einer Seite anzeigen", + "Show message bubbles depending on the width either on both sides or only on one side": "Sprechblasen abhängig von der Breite auf beiden Seiten oder nur einer Seite anzeigen", "%(brand)s can't securely cache encrypted messages locally while running in a web browser. Use %(brand)s Desktop for encrypted messages to appear in search results.": "%(brand)s kann verschlüsselte Nachrichten nicht sicher während der Ausführung im Browser durchsuchen. Benutze %(brand)s Desktop, um verschlüsselte Nachrichten in den Suchergebnissen angezeigt zu bekommen.", "Use default": "Standardeinstellungen benutzen", "Your firewall or anti-virus is blocking the request.": "Deine Firewall oder dein Antivirenprogramm blockiert die Anfrage.", @@ -103,5 +103,45 @@ "Unable to look up phone number": "Telefonnummer kann nicht gefunden werden", "The widget will verify your user ID, but won't be able to perform actions for you:": "Das Widget überprüft deine Benutzer-ID, kann jedoch keine Aktionen für dich ausführen:", "Abort": "Abbrechen", - "Add existing room": "Existierenden Raum hinzufügen" + "Add existing room": "Existierenden Raum hinzufügen", + "Message layout": "Nachrichtenlayout", + "Modern": "Modern", + "Show people and rooms in a combined list": "Personen und Räume in einer gemeinsamen Liste anzeigen", + "Update notifications": "Updatebenachrichtigungen", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Möchtest du einem Raum beitreten, der dich über neue Updates informiert? Das ist besonders nützlich, wenn deine Plattform keine automatischen Updates für SchildiChat unterstützt (z. B. Windows und macOS).", + "Don't ask again": "Nicht erneut fragen", + "Light theme": "Helles Design", + "Dark theme": "Dunkles Design", + "System": "System", + "Add custom theme": "Benutzerdefiniertes Design hinzufügen", + "Theme in use": "Design in Verwendung", + "Uniform": "Einfarbig", + "PowerLevel": "Berechtigungslevel", + "MXID": "MXID", + "In direct chats": "In direkten Chats", + "In group chats": "In Gruppenchats", + "Show all rooms in Home": "Alle Räume auf der Startseite zeigen", + "Show notification badges for People in Spaces": "Benachrichtigungssymbol für Personen in Spaces zeigen", + "Return to the room previously opened in a space": "In den zuvor geöffneten Raum in einem Space zurückkehren", + "If disabled, the space overview will be shown when switching to another space.": "Wenn deaktiviert, wird die Space-Übersicht beim Wechsel zu einem anderen Space angezeigt.", + "User name color mode": "Farbmodus der Benutzernamen", + "In public rooms": "In öffentlichen Räumen", + "All rooms you're in will appear in Home.": "Alle Räume, in denen du dich befindest, werden auf der Startseite angezeigt.", + "Show people in spaces": "Personen in Spaces anzeigen", + "If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.": "Falls deaktiviert, kannst du trotzdem Direktnachrichten in privaten Spaces hinzufügen. Falls aktiviert, wirst du alle Mitglieder des Spaces sehen.", + "For people": "Für Personen", + "Intermediate: medium sized avatar with single-line preview": "Zwischending: mittelgroßer Avatar mit einer einzeiligen Vorschau", + "Roomy: big avatar with two-line preview": "Geräumig: großer Avatar mit einer zweizeiligen Vorschau", + "Room list style": "Stil der Raumliste", + "Compact: tiny avatar together with name and preview in one line": "Kompakt: winziger Avatar zusammen mit dem Namen und der Vorschau in einer Zeile", + "Hide advanced theme settings": "Erweiterte Designeinstellungen ausblenden", + "Theme": "Design", + "Room list": "Raumliste", + "Font size and typeface": "Schriftgröße und Schriftart", + "Show advanced theme settings": "Erweiterte Designeinstellungen anzeigen", + "Mark rooms as unread": "Erlaube Chats als ungelesen zu markieren", + "Mark as read": "Als gelesen markieren", + "Mark as unread": "Als ungelesen markieren", + "Enable YouTube embed player": "Eingebetteten YouTube-Player aktivieren", + "Collapse additional buttons": "Zusätzliche Buttons einklappen" } diff --git a/i18n-overlays/matrix-react-sdk/en_EN.json b/i18n-overlays/matrix-react-sdk/en_EN.json index 943ae0a..8d07295 100644 --- a/i18n-overlays/matrix-react-sdk/en_EN.json +++ b/i18n-overlays/matrix-react-sdk/en_EN.json @@ -1,7 +1,46 @@ { - "Enable layout with message bubbles": "Enable layout with message bubbles", "Show message bubbles on one side only": "Show message bubbles on one side only", "Show message bubbles depending on the width either on both sides or only on one side": "Show message bubbles depending on the width either on both sides or only on one side", "Message bubbles": "Message bubbles", - "Normal priority": "Normal priority" + "Normal priority": "Normal priority", + "Message layout": "Message layout", + "Modern": "Modern", + "Show people and rooms in a combined list": "Show people and rooms in a combined list", + "Update notifications": "Update notifications", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).", + "Don't ask again": "Don't ask again", + "System": "System", + "Add custom theme": "Add custom theme", + "Theme in use": "Theme in use", + "Light theme": "Light theme", + "Dark theme": "Dark theme", + "User name color mode": "User name color mode", + "Uniform": "Uniform", + "PowerLevel": "PowerLevel", + "MXID": "MXID", + "For people": "For people", + "In group chats": "In group chats", + "In public rooms": "In public rooms", + "Show all rooms in Home": "Show all rooms in Home", + "All rooms you're in will appear in Home.": "All rooms you're in will appear in Home.", + "Show people in spaces": "Show people in spaces", + "If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.": "If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.", + "Show notification badges for People in Spaces": "Show notification badges for People in Spaces", + "Return to the room previously opened in a space": "Return to the room previously opened in a space", + "If disabled, the space overview will be shown when switching to another space.": "If disabled, the space overview will be shown when switching to another space.", + "Compact: tiny avatar together with name and preview in one line": "Compact: tiny avatar together with name and preview in one line", + "Intermediate: medium sized avatar with single-line preview": "Intermediate: medium sized avatar with single-line preview", + "Roomy: big avatar with two-line preview": "Roomy: big avatar with two-line preview", + "Room list style": "Room list style", + "Hide advanced theme settings": "Hide advanced theme settings", + "Show advanced theme settings": "Show advanced theme settings", + "Theme": "Theme", + "Room list": "Room list", + "Font size and typeface": "Font size and typeface", + "Mark rooms as unread": "Allow marking chats as unread", + "Mark as unread": "Mark as unread", + "Mark as read": "Mark as read", + "Enable YouTube embed player": "Enable YouTube embed player", + "Collapse additional buttons": "Collapse additional buttons", + "Home is useful for getting an overview of everything. Keep in mind that disabling it could leave you unable to see certain rooms.": "Home is useful for getting an overview of everything. Keep in mind that disabling it could leave you unable to see certain rooms." } diff --git a/i18n-overlays/matrix-react-sdk/es.json b/i18n-overlays/matrix-react-sdk/es.json new file mode 100644 index 0000000..4db1f36 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/es.json @@ -0,0 +1,7 @@ +{ + "Show message bubbles on one side only": "mostrar las burbujas de mensajes en un solo lado", + "Message bubbles": "Burbujas de mensajes", + "Normal priority": "Prioridad normal", + "Enable layout with message bubbles": "Activar diseño con mensajes de burbujas", + "Show message bubbles depending on the width either on both sides or only on one side": "Mostrar mensajes de burbuja dependiendo del tamaño tanto en ambos lados o solo en un lado" +} diff --git a/i18n-overlays/matrix-react-sdk/et.json b/i18n-overlays/matrix-react-sdk/et.json new file mode 100644 index 0000000..3532664 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/et.json @@ -0,0 +1,7 @@ +{ + "Enable layout with message bubbles": "Sõnumimullidega paigutuse lubamine", + "Show message bubbles on one side only": "Näita sõnumimulle ainult ühel poolel", + "Show message bubbles depending on the width either on both sides or only on one side": "Näita sõnumimullid sõltuvalt laiusest kas mõlemal või ainult ühel küljel", + "Normal priority": "Tavaline prioriteet", + "Message bubbles": "Sõnumimullid" +} diff --git a/i18n-overlays/matrix-react-sdk/eu.json b/i18n-overlays/matrix-react-sdk/eu.json new file mode 100644 index 0000000..fdfdaab --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/eu.json @@ -0,0 +1,7 @@ +{ + "Show message bubbles on one side only": "Erakutsi mezu burbuilak alde batetik bakarrik", + "Message bubbles": "Mezu burbuilak", + "Normal priority": "Normala lehentasuna", + "Enable layout with message bubbles": "Gaitu diseinua batera mezua burbuilak", + "Show message bubbles depending on the width either on both sides or only on one side": "Erakutsi mezu burbuilak arabera zabalera bai, bi aldeetatik edo alde batetik bakarrik" +} diff --git a/i18n-overlays/matrix-react-sdk/fa.json b/i18n-overlays/matrix-react-sdk/fa.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/fa.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/matrix-react-sdk/fr.json b/i18n-overlays/matrix-react-sdk/fr.json new file mode 100644 index 0000000..07a15dc --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/fr.json @@ -0,0 +1,28 @@ +{ + "Show message bubbles on one side only": "Afficher les bulles de message sur un seul côté", + "Show message bubbles depending on the width either on both sides or only on one side": "Afficher les bulles de message selon la largeur soit sur un seul côté, soit sur les deux", + "Message bubbles": "Bulles de message", + "Normal priority": "Priorité normale", + "Message layout": "Disposition des messages", + "Modern": "Moderne", + "Show people and rooms in a combined list": "Afficher les personnes et les salons dans une liste combinée", + "Update notifications": "Mettre à jour les notifications", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Souhaitez-vous rejoindre un salon vous notifiant à propos des nouvelles versions ? Cela est surtout utile si votre plateforme ne supporte pas les mises à jour automatiques pour SchildiChat (par ex. Windows et macOS).", + "Don't ask again": "Ne plus demander", + "System": "Système", + "Add custom theme": "Ajouter un thème personnalisé", + "Theme in use": "Thème utilisé", + "Light theme": "Thème lumineux", + "Dark theme": "Thème sombre", + "Uniform": "Uniforme", + "MXID": "MXID", + "In group chats": "Dans les chats de groupe", + "In public rooms": "Dans les salons publiques", + "All rooms you're in will appear in Home.": "Tous les salons dans lesquels vous êtes apparaîtront dans Accueil", + "Show people in spaces": "Afficher les personnes dans les espaces", + "Show notification badges for People in Spaces": "Afficher les badges de notifications pour les Personnes dans les Espaces", + "User name color mode": "Mode de couleur des noms d'utilisateur", + "If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.": "Si désactivé, vous pouvez toujours ajouter Messages Directs à votre Espace Personnel. Si activé, vous verrez automatiquement toutes les personnes qui sont membres de l'Espace.", + "For people": "Pour les personnes", + "Show all rooms in Home": "Afficher tous les salons dans Accueil" +} diff --git a/i18n-overlays/matrix-react-sdk/hu.json b/i18n-overlays/matrix-react-sdk/hu.json new file mode 100644 index 0000000..a048d36 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/hu.json @@ -0,0 +1,7 @@ +{ + "Enable layout with message bubbles": "Üzenetbuborékos elrendezés engedélyezése", + "Show message bubbles on one side only": "Üzenetbuborékok megjelenítése csak az egyik oldalon", + "Message bubbles": "Üzenet buborékok", + "Show message bubbles depending on the width either on both sides or only on one side": "Üzenetbuborékok megjelenítése a szélességtől függően mindkét oldalon vagy csak az egyik oldalon", + "Normal priority": "Normál prioritás" +} diff --git a/i18n-overlays/matrix-react-sdk/id.json b/i18n-overlays/matrix-react-sdk/id.json new file mode 100644 index 0000000..a986a4d --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/id.json @@ -0,0 +1,46 @@ +{ + "Normal priority": "Prioritas normal", + "Message layout": "Tata letak pesan", + "Modern": "Modern", + "Show people and rooms in a combined list": "Tampilkan pengguna dan ruangan di daftar gabungan", + "Don't ask again": "Jangan tanya lagi", + "System": "Sistem", + "Add custom theme": "Tambahkan tema kustom", + "Theme in use": "Tema digunakan", + "Light theme": "Tema terang", + "Dark theme": "Tema gelap", + "User name color mode": "Mode warna nama pengguna", + "Uniform": "Seragam", + "PowerLevel": "TingkatDaya", + "MXID": "MXID", + "In group chats": "Di grup", + "In public rooms": "Di ruangan publik", + "Show all rooms in Home": "Tampilkan semua ruangan di Beranda", + "All rooms you're in will appear in Home.": "Semua ruangan yang Anda bergabung akan ditampilkan di Beranda.", + "Show notification badges for People in Spaces": "Tampilkan lencana pemberitahuan untuk Orang di Space", + "Show people in spaces": "Tampilkan orang di space", + "For people": "Untuk orang-orang", + "Return to the room previously opened in a space": "Kembali ke ruangan yang sebelumnya dibuka di sebuah space", + "If disabled, the space overview will be shown when switching to another space.": "Jika dinonaktifkan, ikhtisar space akan ditampilkan saat ganti ke space yang lain.", + "Compact: tiny avatar together with name and preview in one line": "Kecil: avatar kecil dengan nama dan tampilan di satu baris", + "Roomy: big avatar with two-line preview": "Luas: avatar besar dengan tampilan dua baris", + "Room list style": "Gaya daftar ruangan", + "Hide advanced theme settings": "Sembunyikan pengaturan tema lanjutan", + "Show advanced theme settings": "Tampilkan pengaturan tema lanjutan", + "Theme": "Tema", + "Room list": "Daftar ruangan", + "Font size and typeface": "Ukuran fon dan jenis huruf", + "Show message bubbles on one side only": "Tampilkan gelembung pesan di satu sisi saja", + "Show message bubbles depending on the width either on both sides or only on one side": "Tampilkan gelembung pesan tergantung pada lebarnya baik di kedua sisi atau hanya di satu sisi", + "Message bubbles": "Gelembung pesan", + "Update notifications": "Notifikasi peningkatan", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Apakah Anda ingin bergabung ke ruangan yang memberitahu Anda tentang rilis yang baru? Ini sangat berguna jika platform Anda tidak mendukung pembaruan otomatis untuk SchildiChat (mis. Windows dan macOS).", + "If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.": "Jika dinonaktifkan, Anda masih dapat menambahkan Pesan Langsung ke Space Personal. Jika diaktifkan, Anda akan otomatis melihat semua orang yang juga ada di Spacenya.", + "Intermediate: medium sized avatar with single-line preview": "Sedang: avatar sedang dengan tampilan satu baris", + "Mark rooms as unread": "Perbolehkan menandai obrolan sebagai dibaca", + "Mark as unread": "Tandai sebagai belum dibaca", + "Mark as read": "Tandai sebagai dibaca", + "Enable YouTube embed player": "Aktifkan pemain YouTube tersemat", + "Collapse additional buttons": "Sembunyikan tombol tambahan", + "Home is useful for getting an overview of everything. Keep in mind that disabling it could leave you unable to see certain rooms.": "Beranda berguna untuk mendapatkan ikhtisar segalanya. Menonaktifkan Beranda mungkin dapat membuat Anda tidak dapat melihat beberapa ruangan." +} diff --git a/i18n-overlays/matrix-react-sdk/it.json b/i18n-overlays/matrix-react-sdk/it.json new file mode 100644 index 0000000..72a5b3a --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/it.json @@ -0,0 +1,13 @@ +{ + "Modern": "Moderno", + "Show people and rooms in a combined list": "Visualizza persone e stanze in una lista combinata", + "Update notifications": "Aggiorna notifiche", + "Don't ask again": "Non chiedere di nuovo", + "System": "Sistema", + "Add custom theme": "Aggiungi tema personalizzato", + "Theme in use": "Tema in uso", + "Light theme": "Tema chiaro", + "Dark theme": "Tema scuro", + "Normal priority": "Priorità normale", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Vuoi entrare in una stanza che ti notificherà riguardo nuove release? Sarebbe comodo particolarmente se la tua piattaforma non supporta aggiornamenti automatici (Come per esempio Windows o MacOS.)" +} diff --git a/i18n-overlays/matrix-react-sdk/lt.json b/i18n-overlays/matrix-react-sdk/lt.json new file mode 100644 index 0000000..2b32484 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/lt.json @@ -0,0 +1,21 @@ +{ + "Normal priority": "Normalaus prioriteto", + "Modern": "Modernus", + "Message bubbles": "Žinučių burbulai", + "Message layout": "Žinučių išdėstymas", + "Show people and rooms in a combined list": "Asmenų ir kambarių rodymas bendrame sąraše", + "Room list": "Kambarių sąrašas", + "Show message bubbles on one side only": "Rodyti žinučių burbulus tik vienoje pusėje", + "Update notifications": "Atnaujinimų pranešimai", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Ar jūs norite prisijungti prie kambario kuris praneš jums apie atnaujinimus? Tai yra labai naudinga jei jūsų platforma nepalaiko automatinių SchildiChat atnaujinimų (pvz. Windows ir macOS).", + "Don't ask again": "Nebeklausti", + "System": "Sistema", + "Theme in use": "Tema naudojama", + "Light theme": "Šviesi tema", + "Dark theme": "Tamsi tema", + "MXID": "MXID", + "In group chats": "Pokalbių grupėse", + "In public rooms": "Viešuose kambariuose", + "Show all rooms in Home": "Rodyti visus kambarius Pradžioje", + "All rooms you're in will appear in Home.": "Visi kambariai kuriuose esate bus rodomi Pradžioje." +} diff --git a/i18n-overlays/matrix-react-sdk/nb_NO.json b/i18n-overlays/matrix-react-sdk/nb_NO.json new file mode 100644 index 0000000..cd11a91 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/nb_NO.json @@ -0,0 +1,12 @@ +{ + "Message bubbles": "Meldingsbobler", + "Normal priority": "Normal prioritet", + "Message layout": "Meldingsvisning", + "Modern": "Moderne", + "Show people and rooms in a combined list": "Vis folk og rom i kombinert liste", + "Update notifications": "Oppdater merknader", + "Show message bubbles on one side only": "Vis meldingsbobler kun på én side", + "Show message bubbles depending on the width either on both sides or only on one side": "Vis meldingsbobler avhengig av bredden enten på begge sider eller kun på én side", + "Don't ask again": "Ikke spør igjen", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Ønsker du at et rom skal gi deg merknader om nye utgivelser? Dette er spesielt nyttig hvis din plattform ikke støtter automatiske oppdateringer for SchildiChat (f.eks. Windows og macOS)." +} diff --git a/i18n-overlays/matrix-react-sdk/nl.json b/i18n-overlays/matrix-react-sdk/nl.json new file mode 100644 index 0000000..f98fbac --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/nl.json @@ -0,0 +1,13 @@ +{ + "Show message bubbles on one side only": "Boodschappenbubbels slechts aan één kant tonen", + "Show message bubbles depending on the width either on both sides or only on one side": "Toon berichtbubbels, afhankelijk van de breedte, aan beide zijden of slechts aan één zijde", + "Message bubbles": "Boodschap bellen", + "Normal priority": "Normale prioriteit", + "Enable layout with message bubbles": "Schakel lay-out in met tekstballonnen", + "Update notifications": "Update meldingen", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Wilt u lid worden van een kamer waarin u wordt geïnformeerd over nieuwe releases? Dit is vooral handig als uw platform geen automatische updates voor SchildiChat ondersteunt (bijv. Windows en macOS).", + "Don't ask again": "Niet nogmaals vragen", + "Modern": "Modern", + "Message layout": "Berichtlayout", + "Show people and rooms in a combined list": "Toon personen en kamers in een gecombineerde lijst" +} diff --git a/i18n-overlays/matrix-react-sdk/pl.json b/i18n-overlays/matrix-react-sdk/pl.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/pl.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/matrix-react-sdk/pt_BR.json b/i18n-overlays/matrix-react-sdk/pt_BR.json new file mode 100644 index 0000000..5bac536 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/pt_BR.json @@ -0,0 +1,44 @@ +{ + "Enable layout with message bubbles": "Habilitar layout com bolhas de mensagem", + "Message bubbles": "Bolhas de mensagens", + "Normal priority": "Prioridade normal", + "Show message bubbles on one side only": "Mostrar bolhas de mensagem em apenas um lado", + "Show message bubbles depending on the width either on both sides or only on one side": "Mostrar bolhas de mensagem dependendo da largura de ambos os lados ou somente de um lado", + "Hide advanced theme settings": "Ocultar configurações de tema avançadas", + "Show advanced theme settings": "Mostrar configurações de tema avançadas", + "Theme": "Tema", + "Room list": "Lista de salas", + "Font size and typeface": "Tamanho da fonte e tipo de letra", + "Message layout": "Layout da mensagem", + "Modern": "Moderno", + "Show people and rooms in a combined list": "Mostrar pessoas e salas em uma lista combinada", + "Update notifications": "Atualizar notificações", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Você quer participar numa sala para ser notificado sobre novos lançamentos? Isto é especialmente útil se a sua plataforma não suportar atualizações automáticas para SchildiChat (tipo Windows e macOS).", + "Don't ask again": "Não pergunte novamente", + "System": "Sistema", + "Add custom theme": "Adicionar tema personalizado", + "Theme in use": "Tema em uso", + "Dark theme": "Tema escuro", + "Light theme": "Tema claro", + "Uniform": "comum", + "PowerLevel": "Nível de poder", + "MXID": "MXID", + "In group chats": "Em conversas de grupo", + "In public rooms": "Em salas públicas", + "All rooms you're in will appear in Home.": "Todos as salas em que você estiver aparecerão em Início.", + "Show all rooms in Home": "Mostrar todos as salas em Início", + "Show people in spaces": "Mostrar as pessoas em espaços", + "Show notification badges for People in Spaces": "Mostrar símbolo de notificação para Pessoas em Espaços", + "Return to the room previously opened in a space": "Retornar à sala previamente aberta em um espaço", + "If disabled, the space overview will be shown when switching to another space.": "Se desativado, a visão geral do espaço será mostrada ao mudar para outro espaço.", + "For people": "Para pessoas", + "User name color mode": "Modo de cor baseado em nome do usuário", + "If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.": "Se estiver desativado, você ainda pode adicionar Mensagens Diretas aos Espaços Pessoais. Se ativado, você verá automaticamente todos os que são membros do Espaço.", + "Compact: tiny avatar together with name and preview in one line": "Compacto: avatar minúsculo junto com o nome e visualização em uma linha", + "Intermediate: medium sized avatar with single-line preview": "Intermédio: avatar de tamanho médio com visualização de uma linha", + "Roomy: big avatar with two-line preview": "Amplo: grande avatar com visualização em duas linhas", + "Room list style": "Estilo da lista de salas", + "Mark rooms as unread": "Permitir markar conversas como não lidos", + "Mark as unread": "Markar como não lido", + "Mark as read": "Markar como lido" +} diff --git a/i18n-overlays/matrix-react-sdk/ro.json b/i18n-overlays/matrix-react-sdk/ro.json new file mode 100644 index 0000000..08e7981 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/ro.json @@ -0,0 +1,28 @@ +{ + "Show message bubbles on one side only": "Arata bulele mesajelor pe o singură parte", + "Show message bubbles depending on the width either on both sides or only on one side": "Arată bulele mesajelor bazat fie pe lățimea ambelor părți sau o singură parte", + "Message bubbles": "Bulele mesajelor", + "Normal priority": "Prioritate normală", + "Message layout": "Așezarea mesajului", + "Modern": "Modern", + "Show people and rooms in a combined list": "Arată persoanele și camerele într-o listă combinată", + "Update notifications": "Actualizează notificările", + "Don't ask again": "Nu întreba din nou", + "System": "Sistem", + "Add custom theme": "Adaugă o temă proprie", + "Theme in use": "Temă în folosință", + "Light theme": "Temă luminoasă", + "Dark theme": "Temă întunecată", + "Uniform": "Uniform", + "In group chats": "În chaturile de grup", + "In public rooms": "În camerele publice", + "All rooms you're in will appear in Home.": "Toate camerele în care te afli vor apărea în Pagina principala", + "Show people in spaces": "Arată persoanele în spații", + "Show notification badges for People in Spaces": "Arată simboluri de notificare pentru Persoanele din Spații", + "Return to the room previously opened in a space": "Întoarce-te spre camera deschisă ultima oară într-un spațiu", + "If disabled, the space overview will be shown when switching to another space.": "Dacă e dezactivat, se va arăta vederea de ansamblu a spațiului când schimbi pe alt spațiu.", + "For people": "Pentru persoane", + "User name color mode": "Modul culorilor utilizatorilor", + "Show all rooms in Home": "Arată toate camerele în Pagina principală", + "If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.": "Dacă e dezactivat, încă poți adăuga Mesaje Directe în Spații Personale. Dacă e activat, vei vedea toți membrii Spațiului automat." +} diff --git a/i18n-overlays/matrix-react-sdk/ru.json b/i18n-overlays/matrix-react-sdk/ru.json new file mode 100644 index 0000000..3a8cdac --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/ru.json @@ -0,0 +1,41 @@ +{ + "Message bubbles": "Пузырьки сообщений", + "Normal priority": "Нормальный приоритет", + "Enable layout with message bubbles": "Включение макета с пузырьками сообщений", + "Show message bubbles on one side only": "Показывайте пузырьки с сообщениями только на одной стороне", + "Show message bubbles depending on the width either on both sides or only on one side": "Показывать пузырьки сообщений в зависимости от ширины либо с обеих сторон, либо только с одной стороны", + "Modern": "Современное", + "Message layout": "Оформление сообщений", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Вы хотите присоединиться к комнате, уведомляющей вас о новых релизах? Это особенно полезно, если ваша платформа не поддерживает автоматические обновления для SchildiChat (например, Windows и macOS).", + "Show people and rooms in a combined list": "Показать людей и комнаты в объединенном списке", + "Update notifications": "Уведомления об обновлениях", + "Don't ask again": "Не спрашивать больше", + "Hide advanced theme settings": "Скрыть расширенные настройки темы", + "Show advanced theme settings": "Показать расширенные настройки темы", + "Theme": "Тема", + "Room list": "Список комнат", + "Font size and typeface": "Размер и начертание шрифта", + "Light theme": "Светлая тема", + "Dark theme": "Тёмная тема", + "System": "Система", + "Add custom theme": "Добавить пользовательскую тему", + "Theme in use": "Используемая тема", + "In group chats": "В групповых чатах", + "In public rooms": "В публичных комнатах", + "PowerLevel": "Уровень прав", + "MXID": "MXID", + "Show all rooms in Home": "Показать все комнаты в Начале", + "Show notification badges for People in Spaces": "Показывать значки уведомлений для людей в пространствах", + "Return to the room previously opened in a space": "Возврат в комнату, ранее открытую в пространстве", + "If disabled, the space overview will be shown when switching to another space.": "Если отключить, то при переключении на другое пространство будет отображаться обзор пространства.", + "Uniform": "Одинаковый", + "All rooms you're in will appear in Home.": "Все комнаты, в которых вы находитесь, будут отображаться в Начале.", + "Show people in spaces": "Показать людей в пространствах", + "If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.": "Если этот параметр отключен, вы по-прежнему можете добавлять личные сообщения в личные пространства. Если включено, вы будете автоматически видеть всех, кто является членом пространства.", + "Compact: tiny avatar together with name and preview in one line": "Компактный: крошечный аватар вместе с именем и превью в одной строке", + "User name color mode": "Имя пользователя цветовой режим", + "For people": "Для людей", + "Room list style": "Стиль списка комнат", + "Intermediate: medium sized avatar with single-line preview": "Средний: аватар среднего размера с однострочным превью", + "Roomy: big avatar with two-line preview": "Вместительный: большой аватар с двухстрочным превью" +} diff --git a/i18n-overlays/matrix-react-sdk/sk.json b/i18n-overlays/matrix-react-sdk/sk.json new file mode 100644 index 0000000..7b17898 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/sk.json @@ -0,0 +1,7 @@ +{ + "Enable layout with message bubbles": "Povolenie rozloženia s bublinami správ", + "Show message bubbles on one side only": "Zobrazenie bublín správ len na jednej strane", + "Show message bubbles depending on the width either on both sides or only on one side": "Zobrazenie bublín správ v závislosti od šírky buď na oboch stranách, alebo len na jednej strane", + "Message bubbles": "Bubliny správ", + "Normal priority": "Normálna priorita" +} diff --git a/i18n-overlays/matrix-react-sdk/sv.json b/i18n-overlays/matrix-react-sdk/sv.json new file mode 100644 index 0000000..7282f7f --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/sv.json @@ -0,0 +1,46 @@ +{ + "Message bubbles": "Meddelandebubblor", + "Normal priority": "Normal prioritet", + "Message layout": "Meddelande layout", + "Modern": "Modern", + "Show people and rooms in a combined list": "Visa personer och rum i en kombinerad lista", + "Update notifications": "Uppdatera meddelanden", + "Don't ask again": "Fråga inte igen", + "System": "System", + "Add custom theme": "Lägg till anpassat tema", + "Theme in use": "Tema i bruk", + "Light theme": "Ljus tema", + "Dark theme": "Mörkt tema", + "Show message bubbles on one side only": "Visa meddelandebubblor bara på ena sidan", + "Show message bubbles depending on the width either on both sides or only on one side": "Visa meddelandebubblor beroende på bredden antingen på båda sidor eller bara på ena sidan", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "Vill du gå med i ett rum som informerar dig om nya utgåvor? Detta är särskilt användbart om din plattform inte stöder automatiska uppdateringar för SchildiChat (t.ex.Windows och macOS).", + "Uniform": "Enhetlig", + "PowerLevel": "PowerLevel", + "MXID": "MXID", + "In group chats": "I gruppchattar", + "In public rooms": "I offentliga rum", + "Show all rooms in Home": "Visa alla rum i Home", + "Show people in spaces": "Visa människor i Spaces", + "If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.": "Om den är inaktiverad kan du fortfarande lägga till direktmeddelanden till personliga utrymmen. Om den är aktiverad ser du automatiskt alla som är medlem i Space.", + "Show notification badges for People in Spaces": "Visa meddelandemärken för personer in Spaces", + "Return to the room previously opened in a space": "Återgå till rummet som tidigare öppnats i ett Space", + "If disabled, the space overview will be shown when switching to another space.": "Om den är inaktiverad visas utrymmeöversikten när du byter till ett annat utrymme.", + "For people": "För folk", + "User name color mode": "Användarnamns färgläge", + "All rooms you're in will appear in Home.": "Alla rum du befinner dig i visas i Home.", + "Show advanced theme settings": "Visa avancerade temainställningar", + "Theme": "tema", + "Room list": "Rumslista", + "Font size and typeface": "Teckenstorlek och typsnitt", + "Hide advanced theme settings": "Dölj avancerade temainställningar", + "Compact: tiny avatar together with name and preview in one line": "Kompakt: liten avatar tillsammans med namn och förhandsvisning på en rad", + "Intermediate: medium sized avatar with single-line preview": "Medel: medelstor avatar med enradig förhandsvisning", + "Roomy: big avatar with two-line preview": "Rymlig: stor avatar med förhandsvisning med två rader", + "Room list style": "Rumslista stil", + "Mark as unread": "markera som oläst", + "Mark as read": "markera som läst", + "Mark rooms as unread": "Tillåt att chattar markeras som olästa", + "Enable YouTube embed player": "Aktivera inbäddad YouTube-spelare", + "Collapse additional buttons": "Dölj ytterligare knappar", + "Home is useful for getting an overview of everything. Keep in mind that disabling it could leave you unable to see certain rooms.": "Home är användbart för att få en överblick över allt. Tänk på att om du inaktiverar den kan du inte se vissa rum." +} diff --git a/i18n-overlays/matrix-react-sdk/vi.json b/i18n-overlays/matrix-react-sdk/vi.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/vi.json @@ -0,0 +1 @@ +{} diff --git a/i18n-overlays/matrix-react-sdk/zh_Hans.json b/i18n-overlays/matrix-react-sdk/zh_Hans.json new file mode 100644 index 0000000..aef112a --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/zh_Hans.json @@ -0,0 +1,46 @@ +{ + "Message bubbles": "消息气泡", + "Normal priority": "正常优先级", + "Message layout": "消息布局", + "Modern": "现代", + "Show people and rooms in a combined list": "使用组合列表显示所有人员和房间", + "Update notifications": "更新通知", + "Don't ask again": "不再询问", + "System": "系统", + "Add custom theme": "添加自定义主题", + "Theme in use": "当前主题", + "User name color mode": "用户名颜色模式", + "Light theme": "浅色主题", + "Dark theme": "深色主题", + "Uniform": "单色", + "In group chats": "群聊", + "For people": "私聊", + "All rooms you're in will appear in Home.": "你加入的所有聊天室都会显示在主页。", + "In public rooms": "公共聊天室", + "Show people in spaces": "显示空间中的人", + "Show all rooms in Home": "在主页显示所有聊天室", + "If disabled, you can still add Direct Messages to Personal Spaces. If enabled, you'll automatically see everyone who is a member of the Space.": "如果禁用,你仍可以将私聊添加至个人空间。若启用,你将自动看见空间中的每位成员。", + "Show notification badges for People in Spaces": "为空间中的人显示通知标志", + "PowerLevel": "根据权限等级自动设定", + "MXID": "根据 Matrix ID 自动设定", + "Return to the room previously opened in a space": "返回先前在空间中打开的聊天室", + "If disabled, the space overview will be shown when switching to another space.": "如果禁用,切换到其他空间时将显示空间概览。", + "Compact: tiny avatar together with name and preview in one line": "紧凑:在一行中包含小头像、用户名和消息预览", + "Intermediate: medium sized avatar with single-line preview": "中等:中等大小头像,用户名与消息预览在头像旁以单行宽度分列", + "Roomy: big avatar with two-line preview": "宽敞:大尺寸头像,用户名与消息预览在头像旁以双行宽度分列", + "Hide advanced theme settings": "隐藏高级主题设置", + "Show advanced theme settings": "显示高级主题设置", + "Theme": "主题", + "Room list": "聊天室列表", + "Font size and typeface": "字号与字型", + "Show message bubbles on one side only": "仅在一侧显示消息气泡", + "Room list style": "聊天室列表样式", + "Show message bubbles depending on the width either on both sides or only on one side": "根据窗口大小智能切换消息气泡的显示样式", + "Do you want to join a room notifying you about new releases? This is especially useful if your platform doesn't support automatic updates for SchildiChat (e.g. Windows and macOS).": "您想加入一个用来通知版本更新的房间吗?如果您的平台不支持自动更新 SchildiChat(例如 Windows 和 macOS),这将非常有用。", + "Mark as read": "标记为已读", + "Mark rooms as unread": "允许将聊天记录标记为未读", + "Mark as unread": "标记为未读", + "Home is useful for getting an overview of everything. Keep in mind that disabling it could leave you unable to see certain rooms.": "主页对于概览所有消息来说非常有用。请注意:禁用主页可能会让您无法看到某些房间。", + "Enable YouTube embed player": "启用 YouTube 嵌入式播放器", + "Collapse additional buttons": "折叠额外的按钮" +} diff --git a/i18n-overlays/matrix-react-sdk/zh_Hant.json b/i18n-overlays/matrix-react-sdk/zh_Hant.json new file mode 100644 index 0000000..0967ef4 --- /dev/null +++ b/i18n-overlays/matrix-react-sdk/zh_Hant.json @@ -0,0 +1 @@ +{} diff --git a/local-pkgbuild-template/PKGBUILD b/local-pkgbuild-template/PKGBUILD index df4c516..ff49e1f 100644 --- a/local-pkgbuild-template/PKGBUILD +++ b/local-pkgbuild-template/PKGBUILD @@ -10,7 +10,7 @@ pkgdesc="SchildiChat is a Matrix client based on Element with a more traditional arch=('x86_64') url="https://schildi.chat" license=('Apache') -depends=('sqlcipher') +depends=() provides=('---appName---') conflicts=('---appName---') source=("---debName---" @@ -22,4 +22,5 @@ package() { msg2 "Extracting the data.tar.xz..." bsdtar -xf data.tar.xz -C "$pkgdir/" install -Dm755 "${srcdir}"/---appName---.sh "${pkgdir}"/usr/bin/---appName--- + sed -i 's|^Exec=.*|Exec=/usr/bin/---appName--- %u|' "${pkgdir}"/usr/share/applications/---appName---.desktop } diff --git a/matrix-js-sdk b/matrix-js-sdk index a563025..ee15b18 160000 --- a/matrix-js-sdk +++ b/matrix-js-sdk @@ -1 +1 @@ -Subproject commit a563025c04de1b3ee164c4985fe998054fd997f2 +Subproject commit ee15b188973d85c3e23a169e0b79f4bda58aa35f diff --git a/matrix-react-sdk b/matrix-react-sdk index 60ac218..f167688 160000 --- a/matrix-react-sdk +++ b/matrix-react-sdk @@ -1 +1 @@ -Subproject commit 60ac2184de12b7705820db02da6c909c6318c92e +Subproject commit f1676885198c4544e73a103571c0d14dcfcadeef diff --git a/merge_helpers.sh b/merge_helpers.sh index a0d4bd4..3808eab 100755 --- a/merge_helpers.sh +++ b/merge_helpers.sh @@ -2,10 +2,14 @@ SCHILDI_ROOT="$(dirname "$(realpath "$0")")" +branch=${BRANCH:-"sc"} + i18n_helper_path="$SCHILDI_ROOT/i18n-helper/index.js" i18n_path="src/i18n/strings" i18n_overlay_path="$SCHILDI_ROOT/i18n-overlays" +yarn=yarnpkg + add_upstream() { if git remote | grep -q upstream; then echo "Remote named upstream already exists!" @@ -28,18 +32,31 @@ add_upstream() { } forall_repos() { - pushd "$SCHILDI_ROOT/matrix-js-sdk" + pushd "$SCHILDI_ROOT/matrix-js-sdk" > /dev/null "$@" - popd - pushd "$SCHILDI_ROOT/matrix-react-sdk" + popd > /dev/null + + pushd "$SCHILDI_ROOT/matrix-react-sdk" > /dev/null "$@" - popd - pushd "$SCHILDI_ROOT/element-web" + popd > /dev/null + + pushd "$SCHILDI_ROOT/element-web" > /dev/null "$@" - popd - pushd "$SCHILDI_ROOT/element-desktop" + popd > /dev/null + + pushd "$SCHILDI_ROOT/element-desktop" > /dev/null "$@" - popd + popd > /dev/null +} + +forelement_repos() { + pushd "$SCHILDI_ROOT/element-web" > /dev/null + "$@" + popd > /dev/null + + pushd "$SCHILDI_ROOT/element-desktop" > /dev/null + "$@" + popd > /dev/null } ensure_yes() { @@ -68,9 +85,10 @@ check_clean_git() { revert_i18n_changes() { local i18n_path="$1" - local skip_commit="$2" + local revision="$2" + local skip_commit="$3" - git checkout upstream/master -- "$i18n_path" + git checkout "$revision" -- "$i18n_path" if [[ "$skip_commit" != [Yy]* ]]; then git commit -m "Automatic i18n reversion" || true @@ -87,32 +105,159 @@ apply_i18n_changes() { automatic_i18n_reversion() { local skip_commit="$1" + local current_upstream_tag + get_current_upstream_tag + + local current_mxjssdk_tag + local current_mxreactsdk_tag + get_current_mxsdk_tags + pushd "$SCHILDI_ROOT/matrix-react-sdk" > /dev/null - revert_i18n_changes "$i18n_path" $skip_commit + revert_i18n_changes "$i18n_path" "$current_mxreactsdk_tag" "$skip_commit" popd > /dev/null pushd "$SCHILDI_ROOT/element-web" > /dev/null - revert_i18n_changes "$i18n_path" $skip_commit + revert_i18n_changes "$i18n_path" "$current_upstream_tag" "$skip_commit" popd > /dev/null pushd "$SCHILDI_ROOT/element-desktop" > /dev/null - revert_i18n_changes "$i18n_path" $skip_commit + revert_i18n_changes "$i18n_path" "$current_upstream_tag" "$skip_commit" popd > /dev/null } automatic_i18n_adjustment() { - node "$i18n_helper_path" "$SCHILDI_ROOT/matrix-react-sdk/$i18n_path" "$i18n_overlay_path/matrix-react-sdk" + # matrix-react-sdk pushd "$SCHILDI_ROOT/matrix-react-sdk" > /dev/null + $yarn i18n + node "$i18n_helper_path" "$SCHILDI_ROOT/matrix-react-sdk/$i18n_path" "$i18n_overlay_path/matrix-react-sdk" apply_i18n_changes "$i18n_path" popd > /dev/null - node "$i18n_helper_path" "$SCHILDI_ROOT/element-web/$i18n_path" "$i18n_overlay_path/element-web" + # element-web pushd "$SCHILDI_ROOT/element-web" > /dev/null + $yarn i18n + node "$i18n_helper_path" "$SCHILDI_ROOT/element-web/$i18n_path" "$i18n_overlay_path/element-web" apply_i18n_changes "$i18n_path" popd > /dev/null - node "$i18n_helper_path" "$SCHILDI_ROOT/element-desktop/$i18n_path" "$i18n_overlay_path/element-desktop" + # element-desktop pushd "$SCHILDI_ROOT/element-desktop" > /dev/null + $yarn i18n + node "$i18n_helper_path" "$SCHILDI_ROOT/element-desktop/$i18n_path" "$i18n_overlay_path/element-desktop" apply_i18n_changes "$i18n_path" popd > /dev/null } + +get_current_versions() { + local version=`cat "$SCHILDI_ROOT/element-web/package.json" | jq .version -r` + if [[ "$version" =~ ([0-9\.]*)(-sc\.([0-9]+)(\.test.([0-9]+))?)? ]]; then + upstream="${BASH_REMATCH[1]}" + release="${BASH_REMATCH[3]}" + test="${BASH_REMATCH[5]}" + fi + + versions=("${upstream:-"0.0.1"}" "${release:-"0"}" "${test:-"0"}") +} + +get_versions_string() { + versions_string="${versions[0]}-sc.${versions[1]}" + + # both zero means the initial version after a merge + if [[ ${versions[1]} -eq 0 || ${versions[2]} -gt 0 ]]; then + versions_string+=".test.${versions[2]}" + fi +} + +write_version() { + local file="$1" + local versions_string + get_versions_string + + new_content=`jq --arg version "$versions_string" '.version = $version' "$file"` + echo "$new_content" > "$file" + + git add "$file" + git commit -m "Update version to $versions_string" || true +} + +bump_test_version() { + local versions + get_current_versions + + # increment test version + versions[2]=$((versions[2] + 1)) + + forelement_repos write_version "package.json" +} + +bump_release_version() { + local versions + get_current_versions + + # increment release version + versions[1]=$((versions[1] + 1)) + + # set test version to 0 + versions[2]=0 + + forelement_repos write_version "package.json" +} + +revert_packagejson_changes() { + local path="$1" + local revision="$2" + local skip_commit="$3" + + git checkout "$revision" -- "$path" + + if [[ "$skip_commit" != [Yy]* ]]; then + git commit -m "Automatic package.json reversion" || true + fi +} + +apply_packagejson_overlay() { + local orig_path="$1" + local overlay_path="$2" + + # see: https://stackoverflow.com/a/24904276 + new_content=`jq -s '.[0] * .[1]' "$orig_path" "$overlay_path"` + + echo "$new_content" > "$orig_path" + git add "$orig_path" + git commit -m "Automatic package.json adjustment" || true +} + +automatic_packagejson_reversion() { + local skip_commit="$1" + + local current_upstream_tag + get_current_upstream_tag + + forelement_repos revert_packagejson_changes "package.json" "$current_upstream_tag" "$skip_commit" +} + +automatic_packagejson_adjustment() { + local versions + get_current_versions + + forelement_repos apply_packagejson_overlay "package.json" "overlay-package.json" + forelement_repos write_version "package.json" +} + +get_latest_upstream_tag() { + pushd "$SCHILDI_ROOT/element-web" > /dev/null + git fetch upstream + latest_upstream_tag=`git for-each-ref --sort=creatordate --format '%(refname) %(creatordate)' refs/tags | sed -nr 's|refs/tags/(v[0-9]+(\.[0-9]+(\.[0-9]+)?)?) .*|\1|p' | tail -n 1` + popd > /dev/null +} + +get_current_upstream_tag() { + local versions + get_current_versions + current_upstream_tag="v${versions[0]}" +} + +get_current_mxsdk_tags() { + current_mxreactsdk_tag="v$(cat "$SCHILDI_ROOT/element-web/package.json" | jq '.dependencies["matrix-react-sdk"]' -r)" + current_mxjssdk_tag="v$(cat "$SCHILDI_ROOT/element-web/package.json" | jq '.dependencies["matrix-js-sdk"]' -r)" +} diff --git a/merge_upstream.sh b/merge_upstream.sh index db2b383..cfbea1f 100755 --- a/merge_upstream.sh +++ b/merge_upstream.sh @@ -3,7 +3,6 @@ set -e mydir="$(dirname "$(realpath "$0")")" -branch=${BRANCH:-"sc"} pushd "$mydir" > /dev/null @@ -16,23 +15,38 @@ forall_repos check_branch $branch # Ensure clean git state forall_repos check_clean_git -# Automatic i18n reversion -automatic_i18n_reversion - -# Merge +# Fetch upstream forall_repos git fetch upstream -forall_repos git merge upstream/master + +# Automatic reversions +automatic_i18n_reversion +automatic_packagejson_reversion + +# Merge upstream +get_latest_upstream_tag +forelement_repos git merge "$latest_upstream_tag" + +get_current_mxsdk_tags + +pushd "matrix-js-sdk" > /dev/null +git merge "$current_mxjssdk_tag" +popd > /dev/null + +pushd "matrix-react-sdk" > /dev/null +git merge "$current_mxreactsdk_tag" +popd > /dev/null # Refresh environment make clean make setup -# Automatic i18n adjustment +# Automatic adjustments automatic_i18n_adjustment +automatic_packagejson_adjustment # Automatic theme update pushd "matrix-react-sdk" > /dev/null -./theme.sh +./theme.sh y popd > /dev/null popd > /dev/null diff --git a/nix/overlay.nix b/nix/overlay.nix new file mode 100644 index 0000000..8c763e7 --- /dev/null +++ b/nix/overlay.nix @@ -0,0 +1,18 @@ +final: prev: { + cleanSchildichatDesktopSource = src: with final.lib; cleanSourceWith { + filter = name: type: cleanSourceFilter name type + && !(hasInfix "/node_modules/" name) + && !(hasInfix "/nix/" name && hasSuffix ".nix" name) + ; + inherit src; + }; + schildichat-web = final.callPackage ./schildichat-web.nix { + }; + schildichat-desktop = final.callPackage ./schildichat-desktop.nix { + inherit (final.darwin.apple_sdk.frameworks) Security AppKit CoreServices; + }; + schildichat-desktop-wayland = final.callPackage ./schildichat-desktop.nix { + inherit (final.darwin.apple_sdk.frameworks) Security AppKit CoreServices; + useWayland = true; + }; +} diff --git a/nix/schildichat-desktop.nix b/nix/schildichat-desktop.nix new file mode 100644 index 0000000..ab1daa4 --- /dev/null +++ b/nix/schildichat-desktop.nix @@ -0,0 +1,109 @@ +{ lib +, stdenv +, fetchFromGitHub +, makeWrapper +, makeDesktopItem +, mkYarnPackage +, electron +, element-desktop # for native modules +, schildichat-web +, callPackage +, Security +, AppKit +, CoreServices + +, useWayland ? false + +, cleanSchildichatDesktopSource +, schildichat-desktop-src ? ../. +}: + +let + packageJSON = schildichat-desktop-src + "/element-desktop/package.json"; + yarnLock = schildichat-desktop-src + "/element-desktop/yarn.lock"; + + package = builtins.fromJSON (builtins.readFile packageJSON); + + pname = "schildichat-desktop"; + version = package.version; + + executableName = pname; + + electron_exec = if stdenv.isDarwin then "${electron}/Applications/Electron.app/Contents/MacOS/Electron" else "${electron}/bin/electron"; + +in mkYarnPackage rec { + inherit pname version packageJSON; + + src = cleanSchildichatDesktopSource (schildichat-desktop-src + "/element-desktop"); + + nativeBuildInputs = [ makeWrapper ]; + + inherit (element-desktop) seshat keytar; + + buildPhase = '' + runHook preBuild + + export HOME=$(mktemp -d) + pushd deps/schildichat-desktop/ + npx tsc + yarn run i18n + node ./scripts/copy-res.js + popd + rm -rf node_modules/matrix-seshat node_modules/keytar + ln -s $keytar node_modules/keytar + ln -s $seshat node_modules/matrix-seshat + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + # resources + mkdir -p "$out/share/element" + ln -s '${schildichat-web}' "$out/share/element/webapp" + cp -r './deps/schildichat-desktop' "$out/share/element/electron" + cp -r './deps/schildichat-desktop/res/img' "$out/share/element" + rm "$out/share/element/electron/node_modules" + cp -r './node_modules' "$out/share/element/electron" + cp $out/share/element/electron/lib/i18n/strings/en_EN.json $out/share/element/electron/lib/i18n/strings/en-us.json + ln -s $out/share/element/electron/lib/i18n/strings/en{-us,}.json + + # icons + for icon in $out/share/element/electron/build/icons/*.png; do + mkdir -p "$out/share/icons/hicolor/$(basename $icon .png)/apps" + ln -s "$icon" "$out/share/icons/hicolor/$(basename $icon .png)/apps/element.png" + done + + # desktop item + mkdir -p "$out/share" + ln -s "${desktopItem}/share/applications" "$out/share/applications" + + # executable wrapper + makeWrapper '${electron_exec}' "$out/bin/${executableName}" \ + --add-flags "$out/share/element/electron${lib.optionalString useWayland " --enable-features=UseOzonePlatform --ozone-platform=wayland"}" + + runHook postInstall + ''; + + # Do not attempt generating a tarball for element-web again. + # note: `doDist = false;` does not work. + distPhase = '' + true + ''; + + # The desktop item properties should be kept in sync with data from upstream: + # https://github.com/vector-im/element-desktop/blob/develop/package.json + desktopItem = makeDesktopItem { + name = "schildichat-desktop"; + exec = "${executableName} %u"; + icon = "schildichat"; + desktopName = "SchildiChat"; + genericName = "Matrix Client"; + categories = "Network;InstantMessaging;Chat;"; + extraEntries = '' + StartupWMClass=schildichat + MimeType=x-scheme-handler/element; + ''; + }; +} diff --git a/nix/schildichat-web.nix b/nix/schildichat-web.nix new file mode 100644 index 0000000..e10071c --- /dev/null +++ b/nix/schildichat-web.nix @@ -0,0 +1,75 @@ +{ stdenv +, mkYarnModules +, nodejs +, cleanSchildichatDesktopSource +, schildichat-desktop-src ? ../. +, ... +}: + +let + packageJSON = schildichat-desktop-src + "/element-web/package.json"; + yarnLock = schildichat-desktop-src + "/element-web/yarn.lock"; + + package = builtins.fromJSON (builtins.readFile packageJSON); + + pname = "schildichat-web"; + version = package.version; + + modules = mkYarnModules { + name = "${pname}-modules-${version}"; + inherit pname version packageJSON yarnLock; + }; + +in stdenv.mkDerivation { + inherit pname version; + + src = cleanSchildichatDesktopSource schildichat-desktop-src; + + buildInputs = [ nodejs ]; + + postPatch = '' + patchShebangs . + ''; + + configurePhase = '' + runHook preConfigure + + cp configs/sc/config.json element-web/ + cp -r ${modules}/node_modules node_modules + chmod u+rwX -R node_modules + rm -rf node_modules/matrix-react-sdk + ln -s $PWD/matrix-react-sdk node_modules/ + ln -s $PWD/node_modules matrix-react-sdk/ + ln -s $PWD/node_modules element-web/ + + runHook postConfigure + ''; + + buildPhase = '' + runHook preBuild + + pushd matrix-react-sdk + node_modules/.bin/reskindex -h ../element-web/src/header + popd + + pushd element-web + node scripts/copy-res.js + node_modules/.bin/reskindex -h ../element-web/src/header + node_modules/.bin/webpack --progress --mode production + popd + + runHook postBuild + ''; + + installPhase = '' + runHook preInstall + + cp -r element-web/webapp $out + + runHook postInstall + ''; + + passthru = { + inherit modules; + }; +} diff --git a/publish_release.sh b/publish_release.sh new file mode 100755 index 0000000..cd5874c --- /dev/null +++ b/publish_release.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +set -e + +mydir="$(dirname "$(realpath "$0")")" + +pushd "$mydir" > /dev/null + +source ./merge_helpers.sh + +# Check branch +check_branch $branch +forall_repos check_branch $branch + +# Ensure clean git state +forall_repos check_clean_git + +git fetch origin +git branch -D master || true +git checkout -b master --track origin/master +git merge --ff-only sc +git push +git checkout sc +forall_repos git fetch origin +forall_repos git branch -D master || true +forall_repos git checkout -b master --track origin/master +forall_repos git merge --ff-only sc +forall_repos git push +forall_repos git checkout sc + +popd > /dev/null diff --git a/regenerate_i18n.sh b/regenerate_i18n.sh index 8c13ab6..1e6c300 100755 --- a/regenerate_i18n.sh +++ b/regenerate_i18n.sh @@ -9,6 +9,9 @@ pushd "$mydir" > /dev/null source ./merge_helpers.sh +# Fetch to get upstream strings for current version +forall_repos git fetch upstream + # Check branch check_branch $branch forall_repos check_branch $branch