mirror of
https://github.com/ArcaneChat/android.git
synced 2026-07-03 14:05:24 +02:00
Merge remote-tracking branch 'upstream/master' into lite
This commit is contained in:
@@ -40,8 +40,11 @@ jobs:
|
||||
env:
|
||||
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
|
||||
run: |
|
||||
export PATH="${PATH}:${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/:${ANDROID_NDK_ROOT}"
|
||||
./scripts/install-toolchains.sh && ./ndk-make.sh
|
||||
export PATH="${PATH}:${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/"
|
||||
scripts/install-toolchains.sh && scripts/ndk-make.sh
|
||||
|
||||
- name: Validate Gradle Wrapper
|
||||
uses: gradle/wrapper-validation-action@v1
|
||||
|
||||
- name: Build APK
|
||||
run: ./gradlew --no-daemon assembleGplayDebug
|
||||
|
||||
+3
-1
@@ -27,6 +27,7 @@
|
||||
<uses-permission android:name="android.permission.WAKE_LOCK" />
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<uses-permission android:name="android.permission.INSTALL_SHORTCUT" />
|
||||
<uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" />
|
||||
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
|
||||
<uses-permission android:name="android.permission.RAISED_THREAD_PRIORITY" />
|
||||
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
|
||||
@@ -283,7 +284,8 @@
|
||||
<activity android:name=".WebxdcActivity"
|
||||
android:label=""
|
||||
android:theme="@style/TextSecure.LightTheme"
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize">
|
||||
android:configChanges="touchscreen|keyboard|keyboardHidden|orientation|screenLayout|screenSize"
|
||||
android:exported="true">
|
||||
</activity>
|
||||
|
||||
<activity android:name=".FullMsgActivity"
|
||||
|
||||
@@ -1,5 +1,25 @@
|
||||
# Delta Chat Android Changelog
|
||||
|
||||
## v1.32.0
|
||||
2022-07
|
||||
|
||||
* update Maplibre
|
||||
* update translations
|
||||
* using core90
|
||||
|
||||
|
||||
## v1.31.1 Testrun
|
||||
2022-07
|
||||
|
||||
* AEAP: show confirmation dialog before changing e-mail address
|
||||
* AEAP: add a device message after changing e-mail address
|
||||
* AEAP replaces e-mail addresses only in verified groups for now
|
||||
* fix: handle updates for not yet downloaded webxdc instances
|
||||
* fix: better information on several configuration and non-delivery errors
|
||||
* update translations, revise english source
|
||||
* update to core90
|
||||
|
||||
|
||||
## v1.31.0 Testrun
|
||||
2022-07
|
||||
|
||||
|
||||
+1
-1
@@ -37,7 +37,7 @@ ENV PATH ${PATH}:${ANDROID_SDK_ROOT}/cmdline-tools/bin
|
||||
RUN sdkmanager --sdk_root=${ANDROID_SDK_ROOT} 'ndk;23.2.8568313'
|
||||
|
||||
ENV ANDROID_NDK_ROOT ${ANDROID_SDK_ROOT}/ndk/23.2.8568313
|
||||
ENV PATH ${PATH}:${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/:${ANDROID_NDK_ROOT}
|
||||
ENV PATH ${PATH}:${ANDROID_NDK_ROOT}/toolchains/llvm/prebuilt/linux-x86_64/bin/
|
||||
|
||||
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y --default-toolchain none
|
||||
ENV PATH ${PATH}:/home/${USER}/.cargo/bin
|
||||
|
||||
@@ -57,7 +57,7 @@ You can leave the container with Ctrl+D or by typing `exit` and re-enter it with
|
||||
Within the container, install toolchains and build the native library:
|
||||
```
|
||||
deltachat@6012dcb974fe:/home/app$ scripts/install-toolchains.sh
|
||||
deltachat@6012dcb974fe:/home/app$ ./ndk-make.sh
|
||||
deltachat@6012dcb974fe:/home/app$ scripts/ndk-make.sh
|
||||
```
|
||||
|
||||
Then, [build an APK](https://developer.android.com/studio/build/building-cmdline):
|
||||
@@ -118,7 +118,7 @@ done with care.
|
||||
Then, install Rust using [rustup](https://rustup.rs/). Install Rust
|
||||
toolchains for cross-compilation by executing `scripts/install-toolchains.sh`.
|
||||
|
||||
After that, call `./ndk-make.sh` in the root directory to build core-rust.
|
||||
After that, call `scripts/ndk-make.sh` in the root directory to build core-rust.
|
||||
Afterwards run the project in Android Studio. The project requires API 25.
|
||||
|
||||
With chance, that's it :) - if not, read on how to set up a proper development
|
||||
|
||||
+4
-10
@@ -1,13 +1,7 @@
|
||||
buildscript {
|
||||
repositories {
|
||||
maven {
|
||||
url 'https://maven.google.com/'
|
||||
name 'Google'
|
||||
}
|
||||
maven {
|
||||
url "https://repo1.maven.org/maven2"
|
||||
jcenter()
|
||||
}
|
||||
google()
|
||||
mavenCentral()
|
||||
}
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:7.0.3'
|
||||
@@ -94,8 +88,8 @@ android {
|
||||
useLibrary 'org.apache.http.legacy'
|
||||
|
||||
defaultConfig {
|
||||
versionCode 633
|
||||
versionName "1.31.0"
|
||||
versionCode 635
|
||||
versionName "1.32.0"
|
||||
|
||||
applicationId "com.b44t.messenger"
|
||||
multiDexEnabled true
|
||||
|
||||
Vendored
BIN
Binary file not shown.
+3
-3
@@ -1,6 +1,6 @@
|
||||
#Wed Oct 27 11:37:14 CEST 2021
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.2-bin.zip
|
||||
distributionPath=wrapper/dists
|
||||
zipStorePath=wrapper/dists
|
||||
distributionSha256Sum=cb87f222c5585bd46838ad4db78463a5c5f3d336e5e2b98dc7c0c586527351c2
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-bin.zip
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
|
||||
@@ -1,78 +1,129 @@
|
||||
#!/usr/bin/env sh
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright © 2015-2021 the original authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
##
|
||||
#
|
||||
# Gradle start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||
# noncompliant, but you have some other compliant shell such as ksh or
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh Gradle
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
# * functions;
|
||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||
# * compound commands having a testable exit status, especially «case»;
|
||||
# * various built-in commands including «command», «set», and «ulimit».
|
||||
#
|
||||
# Important for patching:
|
||||
#
|
||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||
#
|
||||
# The "traditional" practice of packing multiple parameters into a
|
||||
# space-separated string is a well documented source of bugs and security
|
||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||
# options in "$@", and eventually passing that to Java.
|
||||
#
|
||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||
# see the in-line comments for details.
|
||||
#
|
||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/master/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
app_path=$0
|
||||
|
||||
# Need this for daisy-chained symlinks.
|
||||
while
|
||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||
[ -h "$app_path" ]
|
||||
do
|
||||
ls=$( ls -ld "$app_path" )
|
||||
link=${ls#*' -> '}
|
||||
case $link in #(
|
||||
/*) app_path=$link ;; #(
|
||||
*) app_path=$APP_HOME$link ;;
|
||||
esac
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" && pwd -P ) || exit
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
APP_BASE_NAME=${0##*/}
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS=""
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
MAX_FD=maximum
|
||||
|
||||
warn ( ) {
|
||||
warn () {
|
||||
echo "$*"
|
||||
}
|
||||
} >&2
|
||||
|
||||
die ( ) {
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
} >&2
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
nonstop=true
|
||||
;;
|
||||
case "$( uname )" in #(
|
||||
CYGWIN* ) cygwin=true ;; #(
|
||||
Darwin* ) darwin=true ;; #(
|
||||
MSYS* | MINGW* ) msys=true ;; #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
JAVACMD=$JAVA_HOME/bin/java
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
@@ -81,7 +132,7 @@ Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
JAVACMD=java
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
@@ -89,84 +140,101 @@ location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Darwin, add options to specify how the application appears in the dock
|
||||
if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin, switch paths to Windows format before running java
|
||||
if $cygwin ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=$((i+1))
|
||||
done
|
||||
case $i in
|
||||
(0) set -- ;;
|
||||
(1) set -- "$args0" ;;
|
||||
(2) set -- "$args0" "$args1" ;;
|
||||
(3) set -- "$args0" "$args1" "$args2" ;;
|
||||
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
fi
|
||||
|
||||
# Escape application args
|
||||
save ( ) {
|
||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
APP_ARGS=$(save "$@")
|
||||
# Collect all arguments for the java command, stacking in reverse order:
|
||||
# * args from the command line
|
||||
# * the main class name
|
||||
# * -classpath
|
||||
# * -D...appname settings
|
||||
# * --module-path (only if needed)
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||
|
||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||
|
||||
# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
|
||||
if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
|
||||
cd "$(dirname "$0")"
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
for arg do
|
||||
if
|
||||
case $arg in #(
|
||||
-*) false ;; # don't mess with options #(
|
||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||
[ -e "$t" ] ;; #(
|
||||
*) false ;;
|
||||
esac
|
||||
then
|
||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||
fi
|
||||
# Roll the args list around exactly as many times as the number of
|
||||
# args, so each arg winds up back in the position where it started, but
|
||||
# possibly modified.
|
||||
#
|
||||
# NB: a `for` loop captures its iteration list before it begins, so
|
||||
# changing the positional parameters here affects neither the number of
|
||||
# iterations, nor the values presented in `arg`.
|
||||
shift # remove old arg
|
||||
set -- "$@" "$arg" # push replacement arg
|
||||
done
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command;
|
||||
# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of
|
||||
# shell script including quotes and variable substitutions, so put them in
|
||||
# double quotes to make sure that they get re-expanded; and
|
||||
# * put everything else in single quotes, so that it's not re-expanded.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-classpath "$CLASSPATH" \
|
||||
org.gradle.wrapper.GradleWrapperMain \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
if ! command -v xargs >/dev/null 2>&1
|
||||
then
|
||||
die "xargs is not available"
|
||||
fi
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
#
|
||||
# In Bash we could simply go:
|
||||
#
|
||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||
# set -- "${ARGS[@]}" "$@"
|
||||
#
|
||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||
# character that might be a shell metacharacter, then use eval to reverse
|
||||
# that process (while maintaining the separation between arguments), and wrap
|
||||
# the whole thing up as a single "set" statement.
|
||||
#
|
||||
# This will of course break if any of these variables contains a newline or
|
||||
# an unmatched quote.
|
||||
#
|
||||
|
||||
eval "set -- $(
|
||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||
xargs -n1 |
|
||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||
tr '\n' ' '
|
||||
)" '"$@"'
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
|
||||
Vendored
+31
-24
@@ -1,4 +1,20 @@
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@@ -9,19 +25,22 @@
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS=
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
@@ -35,7 +54,7 @@ goto fail
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
@@ -45,38 +64,26 @@ echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
set EXIT_CODE=%ERRORLEVEL%
|
||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||
exit /b %EXIT_CODE%
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
@@ -1289,6 +1289,15 @@ JNIEXPORT jstring Java_com_b44t_messenger_DcChat_getName(JNIEnv *env, jobject ob
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jstring Java_com_b44t_messenger_DcChat_getMailinglistAddr(JNIEnv *env, jobject obj)
|
||||
{
|
||||
char* temp = dc_chat_get_mailinglist_addr(get_dc_chat(env, obj));
|
||||
jstring ret = JSTRING_NEW(temp);
|
||||
dc_str_unref(temp);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
JNIEXPORT jstring Java_com_b44t_messenger_DcChat_getProfileImage(JNIEnv *env, jobject obj)
|
||||
{
|
||||
char* temp = dc_chat_get_profile_image(get_dc_chat(env, obj));
|
||||
|
||||
+1
-1
Submodule jni/deltachat-core-rust updated: b3e2e3dfe5...9cb0fa7d58
@@ -20,6 +20,11 @@
|
||||
android:icon="@drawable/ic_share_white_24dp"
|
||||
app:showAsAction="always" />
|
||||
|
||||
<item android:title="@string/add_to_home_screen"
|
||||
android:id="@+id/menu_add_to_home_screen"
|
||||
android:visible="false"
|
||||
app:showAsAction="never" />
|
||||
|
||||
<item android:title="@string/menu_copy_to_clipboard"
|
||||
android:id="@+id/menu_context_copy"
|
||||
android:icon="?menu_copy_icon"
|
||||
|
||||
@@ -15,6 +15,11 @@
|
||||
android:icon="@drawable/ic_share_white_24dp"
|
||||
app:showAsAction="always" />
|
||||
|
||||
<item android:id="@+id/menu_add_to_home_screen"
|
||||
android:title="@string/add_to_home_screen"
|
||||
android:visible="false"
|
||||
app:showAsAction="never"/>
|
||||
|
||||
<item android:id="@+id/show_in_chat"
|
||||
android:title="@string/show_in_chat"
|
||||
app:showAsAction="never"/>
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
<menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
|
||||
|
||||
<item android:title="@string/add_to_home_screen"
|
||||
android:id="@+id/menu_add_to_home_screen" />
|
||||
<item android:title="@string/source_code"
|
||||
android:id="@+id/source_code" />
|
||||
|
||||
|
||||
@@ -422,7 +422,6 @@
|
||||
<string name="tab_docs_empty_hint">Документите, музикалните файлове и други файлове, споделени в този чат, ще се показват тук.</string>
|
||||
<string name="media_preview">Предварителен преглед на медия</string>
|
||||
<string name="send_message">Изпращане на съобщение</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
<string name="incoming_messages">Входящи съобщения</string>
|
||||
|
||||
@@ -430,7 +430,6 @@
|
||||
<string name="tab_map">Mapa</string>
|
||||
<string name="media_preview">Previsualització multimèdia</string>
|
||||
<string name="send_message">Envia el missatge</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
<string name="incoming_messages">Missatges entrants</string>
|
||||
|
||||
@@ -341,7 +341,6 @@
|
||||
<string name="tab_docs_empty_hint">بەڵگە و مۆسیقا و هەموو پەڕگە هاوبەشکراوەکانی نێو ئەم وتووێژە، لێرەدا پیشان دەدرێن.</string>
|
||||
<string name="media_preview">پێشدیتنی ڕەنگاڵە</string>
|
||||
<string name="send_message">پەیام بنێرە</string>
|
||||
|
||||
<string name="login_title">بچۆ ژوورەوە</string>
|
||||
<string name="login_header">بچۆ ژوورەوە بۆ سێرڤێرەکەی خۆت</string>
|
||||
<string name="login_explain">بچۆ ژوورەوە بە ناونیشانی ئیمەیلێکەوە</string>
|
||||
|
||||
@@ -374,7 +374,6 @@
|
||||
<string name="tab_docs_empty_hint">Documenty, hudba a další soubory sdílené v tomto hovoru budou zobrazeny zde.</string>
|
||||
<string name="media_preview">Náhled multimedia</string>
|
||||
<string name="send_message">Pošli zprávu</string>
|
||||
|
||||
<string name="welcome_intro1_message">Messenger s nejširší základnou na světě. Svobodný a nezávislý.</string>
|
||||
<string name="login_title">Přihlaš se</string>
|
||||
<string name="login_header">Přihlaš se na váš server</string>
|
||||
|
||||
@@ -365,7 +365,6 @@
|
||||
<string name="tab_docs_empty_hint">Dokumenter, musik og andre filer delt i denne samtale vises her.</string>
|
||||
<string name="media_preview">Medie forhåndsvisning</string>
|
||||
<string name="send_message">Send besked</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
<string name="incoming_messages">Indkommende beskeder</string>
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
<string name="unarchive">Dearchivieren</string>
|
||||
<string name="mute">Stumm</string>
|
||||
<string name="ephemeral_messages">Verschwindende Nachrichten</string>
|
||||
<string name="ephemeral_messages_hint">Diese Einstellungen gelten für alle Gruppenmitglieder, die Delta Chat verwenden. Nachrichten können jedoch kopiert, gespeichert und weitergeleitet werden oder es können andere E-Mail-Clients verwenden werden.</string>
|
||||
<string name="ephemeral_messages_hint">Gilt für alle Gruppenmitglieder, die Delta Chat verwenden. Nachrichten können kopiert, gespeichert und weitergeleitet werden oder es können andere E-Mail-Clients verwendet werden.</string>
|
||||
<string name="save">Speichern</string>
|
||||
<string name="chat">Chat</string>
|
||||
<string name="media">Medien</string>
|
||||
@@ -131,7 +131,7 @@
|
||||
<string name="image">Bild</string>
|
||||
<!-- Used in summaries as "Draft: Reply", similar as "Draft: Image". Use a noun here, not a verb (not: "to reply") -->
|
||||
<string name="reply_noun">Antwort</string>
|
||||
<string name="gif">Gif</string>
|
||||
<string name="gif">GIF</string>
|
||||
<!-- "Stickers" as known from other messengers; in some languages, the English "Sticker" is fine. -->
|
||||
<string name="sticker">Sticker</string>
|
||||
<string name="images">Bilder</string>
|
||||
@@ -293,7 +293,7 @@
|
||||
<string name="videochat_instance">Videochat-Instanz</string>
|
||||
<string name="videochat_instance_placeholder">Videochat-Instanz</string>
|
||||
<string name="videochat_instance_example">Beispiele: https://meet.jit.si/$ROOM oder basicwebrtc:https://your-server</string>
|
||||
<string name="videochat_instance_explain_2">Wenn Videochat eingeschaltet ist, können Sie einen Videochat von jedem Chat aus starten. Videochats erfordern beidseitig eine kompatible App oder einen kompatiblen Browser.</string>
|
||||
<string name="videochat_instance_explain_2">Wenn aktiv, können Sie einen Videochat aus jedem Chat starten. Videochats erfordern beidseitig eine kompatible App oder einen kompatiblen Browser.</string>
|
||||
<string name="videochat_instance_from_qr">\"%1$s\" verwenden, um andere zu Videochats einzuladen?\n\nWenn Sie diese Einstellung vornehmen, können Sie von jedem Chat aus einen Videochat starten. Dies überschreibt, falls vorhanden, die bisherige Einstellung zu Videochats.</string>
|
||||
<string name="videochat_invitation">Videochat-Einladung</string>
|
||||
<string name="videochat_invitation_body">Sie sind zu einem Videochat eingeladen, klicken Sie auf %1$s , um teilzunehmen.</string>
|
||||
@@ -368,8 +368,8 @@
|
||||
<string name="chat_archived_label">Archiviert</string>
|
||||
<string name="chat_request_label">Anfrage</string>
|
||||
<string name="chat_no_messages">Keine Nachrichten.</string>
|
||||
<string name="chat_self_talk_subtitle">Nachrichten, die ich mir selber geschickt habe</string>
|
||||
<string name="archive_empty_hint">Wenn Sie Chats archivieren, werden diese hier angezeigt.</string>
|
||||
<string name="chat_self_talk_subtitle">Nachrichten an mich selbst</string>
|
||||
<string name="archive_empty_hint">Archivierte Chats werden hier angezeigt.</string>
|
||||
<string name="saved_messages">Gespeicherte Nachrichten</string>
|
||||
<string name="saved_messages_explain">• Nachrichten zum Merken hierher weiterleiten\n\n• Notizen oder Sprachmemos machen\n\n• Medien zum Speichern einfügen</string>
|
||||
<!-- Should match "Saved" from "Saved messages" -->
|
||||
@@ -439,13 +439,17 @@
|
||||
<string name="tab_links">Links</string>
|
||||
<string name="tab_map">Karte</string>
|
||||
<string name="tab_gallery_empty_hint">In diesem Chat geteilte Bilder und Videos werden hier angezeigt.</string>
|
||||
<string name="tab_docs_empty_hint">In diesem Chat geteilte Dokumente, Musik und Dateien werden hier angezeigt.</string>
|
||||
<string name="tab_docs_empty_hint">In diesem Chat geteilte Dokumente und Dateien werden hier angezeigt.</string>
|
||||
<string name="tab_image_empty_hint">In diesem Chat geteilte Bilder werden hier angezeigt.</string>
|
||||
<string name="tab_video_empty_hint">In diesem Chat geteilte Videos werden hier angezeigt.</string>
|
||||
<string name="tab_audio_empty_hint">In diesem Chat geteilte Audiodateien und Sprachnachrichten werden hier angezeigt.</string>
|
||||
<string name="tab_webxdc_empty_hint">In diesem Chat geteilte Webxdc werden hier angezeigt.</string>
|
||||
<string name="media_preview">Medien-Vorschau</string>
|
||||
<string name="send_message">Nachricht senden</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s hat die E-Mail-Adresse von %2$s nach %3$s geändert</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Sie haben Ihre E-Mail-Adresse von %1$s auf %2$s geändert.\n\nWenn Sie jetzt eine Nachricht an eine verifizierte Gruppe senden, wird dort automatisch die alte durch die neue Adresse ersetzt.\n\nEs wird dringend empfohlen, Ihren alten E-Mail-Anbieter so einzurichten, dass er alle E-Mails an Ihre neue E-Mail-Adresse weiterleitet. Andernfalls könnten Sie Nachrichten von Kontakten verpassen, die Ihre neue E-Mail-Adresse noch nicht erhalten haben.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
|
||||
@@ -268,7 +268,6 @@
|
||||
<string name="tab_map">Mapo</string>
|
||||
<string name="media_preview">Aŭdvida antaŭrigardo</string>
|
||||
<string name="send_message">Sendi mesaĝon</string>
|
||||
|
||||
<string name="login_title">Ensaluti</string>
|
||||
<string name="login_header">Ensaluti al via servilo</string>
|
||||
<string name="login_inbox">Ricevujo</string>
|
||||
|
||||
@@ -427,7 +427,7 @@
|
||||
<!-- placeholder contains the hostname converted to ascii -->
|
||||
<string name="puny_code_warning_question">¿Estás seguro de que quieres visitar %1$s?</string>
|
||||
<!-- this message is shown whenever a link with non-latin characters is clicked. first placeholder is original hostname with special chars, second placeholder is hostname encoded in ascii -->
|
||||
<string name="puny_code_warning_description">Siguió un enlace que podría estar tergiversando caracteres al usar caracteres de diferentes alfabetos con un aspecto similar. Seguir el enlace etiquetado %1$s conducirá a %2$s, que es normal para caracteres no latinos. Si no esperaba tales caracteres, este enlace podría ser dañino</string>
|
||||
<string name="puny_code_warning_description">Siguió un enlace que podría estar tergiversando caracteres al usar caracteres de diferentes alfabetos con un aspecto similar. Seguir el enlace etiquetado %1$s conducirá a %2$s, que es normal para caracteres no latinos. Si no esperaba tales caracteres, este enlace podría ser dañino.</string>
|
||||
|
||||
|
||||
<!-- search -->
|
||||
@@ -461,6 +461,10 @@
|
||||
<string name="tab_webxdc_empty_hint">El contenido de Webxdc compartido en este chat se mostrará aquí.</string>
|
||||
<string name="media_preview">Vista previa de multimedia</string>
|
||||
<string name="send_message">Enviar mensaje</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s cambió su dirección de %2$s a %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Has cambiado tu dirección de correo electrónico de %1$s a %2$s.\n\nSi ahora envías un mensaje a un grupo verificado, los contactos de éste sustituirán automáticamente la antigua por tu nueva dirección.\n\nEs muy recomendable que configures tu antiguo proveedor de correo electrónico para que reenvíe todos los mensajes a tu nueva dirección. De lo contrario, podrías perderte los mensajes de los contactos que aún no han recibido tu nueva dirección.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
|
||||
@@ -281,7 +281,6 @@
|
||||
<string name="tab_docs_empty_hint">Txat honetan partekatutako dokumentuak, musika, eta bestelako fitxategiak agertuko dira hemen</string>
|
||||
<string name="media_preview">Multimediaren aurrebista</string>
|
||||
<string name="send_message">Bidali mezua</string>
|
||||
|
||||
<string name="welcome_intro1_message">Munduan erabiltzaile gehien dituen mezularitza aplikazioa. Librea eta independentea.</string>
|
||||
<string name="login_title">Hasi saioa</string>
|
||||
<string name="login_header">Hasi saioa zure zerbitzarian</string>
|
||||
|
||||
@@ -31,6 +31,8 @@
|
||||
<string name="back">بازگشت</string>
|
||||
<string name="close">بستن</string>
|
||||
<string name="forward">هدایت</string>
|
||||
<!-- "Resend" means "Sending the selected message(s) again to the same chat". The string is used in a menu and should be as short as possible. Resending may be needed after failures or to repost old messages to new members. -->
|
||||
<string name="resend">ارسال مجدد</string>
|
||||
<!-- Verb "to archive", as in "put a chat in the archive", not a noun "The Archive". -->
|
||||
<string name="archive">بایگانی</string>
|
||||
<!-- Verb "to unarchive", as in "remove a chat from the archive", opposite of the previous string -->
|
||||
@@ -118,6 +120,12 @@
|
||||
<item quantity="one">%d گیرنده</item>
|
||||
<item quantity="other">%d گیرنده </item>
|
||||
</plurals>
|
||||
<!-- Short form for "N Chats Selected" or "N Messages Selected": in English, "N Selected" -->
|
||||
<plurals name="n_selected">
|
||||
<item quantity="one">تعداد %d انتخاب شده است</item>
|
||||
<item quantity="other">تعداد %dانتخاب شده است</item>
|
||||
</plurals>
|
||||
|
||||
<string name="self">من</string>
|
||||
<string name="draft">پیشنویس</string>
|
||||
<string name="image">تصویر</string>
|
||||
@@ -256,6 +264,8 @@
|
||||
<string name="unpin">سنجاق برداری</string>
|
||||
<string name="ConversationFragment_quoted_message_not_found">پیام اصلی یافت نشد</string>
|
||||
<string name="reply_privately">پاسخ دادن به صورت خصوصی</string>
|
||||
<string name="source_code">کد منبع</string>
|
||||
|
||||
<string name="mute_for_one_hour">ساکت کردن به مدت۱ ساعت</string>
|
||||
<string name="mute_for_two_hours">ساکت کردن به مدت ۲ ساعت</string>
|
||||
<string name="mute_for_one_day">ساکت کردن به مدت ۱ روز</string>
|
||||
@@ -283,6 +293,11 @@
|
||||
<string name="videochat_tap_to_open">برای باز کردن ضربه بزنید. </string>
|
||||
<string name="videochat_instance">جلسه تماس تصویری</string>
|
||||
<string name="videochat_instance_placeholder">جلسه تماس تصویری شما</string>
|
||||
<string name="videochat_instance_example">مثالها:
|
||||
https://meet.jit.si/$ROOM
|
||||
یا
|
||||
basicwebrtc:https://your-server</string>
|
||||
<string name="videochat_instance_explain_2">در صورت فعالسازی میتوانید یک مکالمه تصویری را در هر گفتگو شروع کنید. نیازمند نرمافزار مورد نیاز یا مرورگر در هر دو طرف است. </string>
|
||||
<string name="videochat_instance_from_qr">میخواهید از \"%1$s\" برای دعوت دیگران به گفتگوی تصویری استفاده کنید؟/n/n وقتی تعیین شد، میتوانید در هر گفتگوی فرد به فرد یک مکالمه تصویری شروع کنید. این کار، تنظیمات قبلی تماس تصویری(در صورت وجود تنظیمات قبلی) را تغییر میدهد.</string>
|
||||
<string name="videochat_invitation">دعوت به مکالمه تصویری.</string>
|
||||
<string name="videochat_invitation_body">شما به مکالمه تصویری دعوت شده اید برای پیوستن%1$s را بزنید.</string>
|
||||
@@ -364,6 +379,7 @@
|
||||
<string name="saved_messages_explain">برای دسترسی راحتتر پیامها را به اینجا هدایت کنید\n\n• میتوانید یادداشت متنی یا صوتی تهیه کنید\n\n• برای ذخیره رسانه آن را ضمیمه کنید. </string>
|
||||
<!-- Should match "Saved" from "Saved messages" -->
|
||||
<string name="saved">ذخیره شد</string>
|
||||
<string name="save_as">ذخیره به عنوان</string>
|
||||
<string name="retry_send">برای ارسال پیام دوباره تلاش کنید. </string>
|
||||
<!-- reasons for a disabled message composer -->
|
||||
<string name="messaging_disabled_not_in_group">نمیتوانید بنویسید چرا که در این گروه نیستید. برای عضو شدن از یکی از اعضا درخواست کنید. </string>
|
||||
@@ -429,8 +445,18 @@
|
||||
<string name="tab_map">نقشه</string>
|
||||
<string name="tab_gallery_empty_hint">عکسها و فیلمهایی که در این گفتگو به اشتراک گذاشته شدهاند در اینجا نمایش داده خواهد شد. </string>
|
||||
<string name="tab_docs_empty_hint">اسناد، آهنگها و دیگر فایلهایی که در این گفتگو به اشتراک گذاشته شده باشند در اینجا نمایش داده خواهند شد. </string>
|
||||
<string name="tab_image_empty_hint">تصاوری که در این گفتگو اشتراک گذاری شده باشند در اینجا نمایش داده میشوند. </string>
|
||||
<string name="tab_video_empty_hint">فیلمهایی که در این گفتگو اشتراک گذاری شده باشند در اینجا نمایش داده میشوند. </string>
|
||||
<string name="tab_audio_empty_hint">فایلها و پیامهای صوتی که در این گفتگو اشتراک گذاری شدهاند در اینجا نمایش داده میشوند.</string>
|
||||
<string name="tab_webxdc_empty_hint">محتوای Webxdc اشتراک گذاری شده در این گفتگو در اینجا نمایش داده میشود. </string>
|
||||
<string name="media_preview">نمایش رسانه</string>
|
||||
<string name="send_message">ارسال پیام</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">مخاطب %1$s نشانی خود را از %2$s به %3$s تغییر داده است. </string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">شما نشانی رایانامه خود را از %1$s به %2$s تغییر دادهاید.
|
||||
اگر به گروههای تایید شده یا مخاطبین خود پیامی ارسال کنید؛ به صورت خودکار نشانی جدید را جایگزین نشانی پیشین میکنند.
|
||||
به شدت توصیه میشود که نشانی رایانامه پیشین خود را به نحوی تنظیم کنید که همه رایانامهها را به نشانی جدید شما هدایت کند؛ در غیر این صورت ممکن است پیامهای مخاطبینی که از تغییر نشانی شما مطلع نشدهاند را از دست بدهید. </string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
@@ -457,6 +483,9 @@
|
||||
<string name="part_of_total_used">مقدار %1$s از %2$s استفاده شده است. </string>
|
||||
|
||||
|
||||
<!-- welcome and login -->
|
||||
<string name="welcome_chat_over_email">گفتگو از طریق رایانامه</string>
|
||||
<string name="scan_invitation_code">اسکن کردن کد دعوت</string>
|
||||
<string name="welcome_intro1_message">پیامرسانی با وسیعترین طیف مخاطبین در جهان. آزاد و مستقل. </string>
|
||||
<string name="login_title">ورود</string>
|
||||
<string name="login_header">به سرور خود وارد شوید</string>
|
||||
@@ -517,7 +546,7 @@
|
||||
<!-- share and forward messages -->
|
||||
<!-- Translators: shown above a chat/contact list when selecting recipients to forward messages -->
|
||||
<string name="forward_to">هدایت به...</string>
|
||||
<string name="share_multiple_attachments">ارسال %1$dفابل به گفتگوی انتخاب شده؟ n/n/ فایلها بدون تغییر و در اندازه اصلی ارسال شده و تصاویر و فیلم ها فشرده نمیشوند.</string>
|
||||
<string name="share_multiple_attachments">ارسال %1$dفایل به گفتگوی انتخاب شده؟ n/n/ فایلها بدون تغییر و در اندازه اصلی ارسال شده و تصاویر و فیلم ها فشرده نمیشوند.</string>
|
||||
<string name="share_multiple_attachments_multiple_chats">ارسال %1$dفایل به %2$d گفتگو؟n/n/ فایل(ها) بدون تغییر ارسال میشوند به این معنا که تصاویر و فیلمها فشرده نمیشوند. </string>
|
||||
<string name="share_text_multiple_chats">ارسال این متن به %1$d گفتگو؟n/n/ \"%2$s\"</string>
|
||||
<string name="share_abort">اشتراک گذاری به دلیل نبود مجوزها متوقف شد.</string>
|
||||
@@ -604,6 +633,7 @@
|
||||
<string name="pref_imap_folder_warn_disable_defaults">اگر این گزینه را غیر فعال میکنید از اینکه سرور شما و حسابهایتان هم بر این اساس تنظیم شده باشند.\n\n در غیر این صورت ممکن است هیچ چیز کار نکند. </string>
|
||||
<string name="pref_watch_sent_folder">پوشه ارسال شدهها را نگاه کن</string>
|
||||
<string name="pref_send_copy_to_self">ارسال رونوشت به خودم</string>
|
||||
<string name="pref_send_copy_to_self_explain">درصورت استفاده از این حساب در چند دستگاه مورد نیاز است. </string>
|
||||
<string name="pref_auto_folder_moves">انتقال خودکار به پوشه دلتاچت</string>
|
||||
<string name="pref_auto_folder_moves_explain">گفتگوها برای جلوگیری از پر شدن صندوق ورودی جابجا شدهاند</string>
|
||||
<string name="pref_only_fetch_mvbox_title">فقط پوشه دلتاچت را بررسی کن</string>
|
||||
@@ -729,9 +759,9 @@
|
||||
<string name="devicemsg_self_deleted">شما گفتگوی «پیامهای ذخیره شده» را پاک کردید.
|
||||
ℹ️ برای استفاده مجدد از «پیامهای ذخیره شده» کافی است یک گفتگوی جدید با خودتان درست کنید. </string>
|
||||
<!-- %1$s will be replaced by the amount of storage already used, sth. as '500 MB'. If you want to use a percentage sign, type in two of them, eg. %1$s %% -->
|
||||
<string name="devicemsg_storage_exceeding">هشدار⚠️، میزان حجم در دسترس ارایهدهنده شما در حال تمام شدن است. %1$s از %% استفاده شده است.
|
||||
اگر ۱۰۰%% استفاده شود ممکن است دیگر نتوانید پیامی دریافت کنید.
|
||||
👉 لطفا پیامهای قدیمی در رایانامه خود را از طریق نسخه وب رایانامه پاک کنید. همچنین میتوانید گزینه پاک کردن پیامهای قدیمی در دلتا چت را فعال نمایید. هروقت خواستید میتوانید حجم در دسترس را از تنظیمات/اتصالات بررسی کنید. </string>
|
||||
<string name="devicemsg_storage_exceeding">هشدار⚠️، میزان فضای در دسترس ارایهدهنده شما در حال تمام شدن است. %1$s از %% استفاده شده است.
|
||||
اگر فضای ذخیره کاملا پر شده باشد دیگر امکان دریافت پیام را نخواهید داشت.
|
||||
👉 لطفا پیامهای قدیمی در رایانامه خود را از طریق نسخه وب رایانامه پاک کنید. همچنین میتوانید گزینه پاک کردن پیامهای قدیمی در دلتا چت را فعال نمایید. هروقت خواستید میتوانید فضای در دسترس را از تنظیمات/اتصالات بررسی کنید. </string>
|
||||
<!-- %1%s will be replaced by date and time in some human-readable format -->
|
||||
<string name="devicemsg_bad_time">هشدار⚠️ به نظر میرسد زمان و تاریخ دستگاه شما دقیق نیست(%1$s).
|
||||
ساعت دستگاه خود را تنظیم کنید ⏰🔧 تا پیامها به درستی دریافت شوند. </string>
|
||||
@@ -774,7 +804,8 @@
|
||||
<string name="qrshow_join_contact_hint">برای ارتباط با %1$s این را اسکن کنید.</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">اتصال اینترنت نیست. نمیتوان نصب کد کیوآر را انجام داد. </string>
|
||||
<string name="qraccount_ask_create_and_login">ایجاد ایمیل جدید روی \"%1$s\" و ورود در آنجا؟</string>
|
||||
<string name="qraccount_ask_create_and_login_another">ایجاد آدرس ایمیل جدید روی \"%1$s\" وارد شدن به آن؟/n/n حساب فعلی شما پاک نمیشود. از بخش \"تغییر حساب کاربری\" برای جابجایی بین حسابها استفاده کنید</string>
|
||||
<string name="qraccount_ask_create_and_login_another">نشانی جدید رایانامه روی «%1$s» ایجاد شده و به آن وارد شود؟
|
||||
حساب فعلی شما پاک نمیشود. از بخش «تغییر حساب کاربری» برای جابجایی بین حسابها استفاده کنید</string>
|
||||
<string name="qraccount_success_enter_name">ورود موفق—آدرس ایمیل شما %1$sاست.\n\n اگر دوست دارید میتوانید اکنون یک اسم وارد کرده و تصویر نمایهای که هنگام نوشتن برای دیگران نشان داده میشود را انتخاب نمایید. </string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">این کد کیوآر اسکن شده را نمیتوان برای راه اندازی اکانت جدید استفاده کرد. </string>
|
||||
<string name="qraccount_use_on_new_install">کد کیوآر اسکن شده برای راه اندازی یک اکانت جدید است. میتوانید در حال تنظیم یک دلتاچت تازه نصب شده کیوآر را اسکن کنید.</string>
|
||||
@@ -906,6 +937,17 @@ GNU GPL ورژن ۳
|
||||
<string name="show_window">نمایش پنجره</string>
|
||||
<string name="login_socks5_experimental_warning">پشتیبانی از قابلیت SOCKS5 هنوز آزمایشی است. لطفا در صورت استفاده،خطرات را بپذیرید. اگر یک آدرس را در بخش رایانامه وارد کنید همچنان DNS lookup رخ میدهد که ممکن است از طریق SOCKS5 صورت نگیرد. </string>
|
||||
|
||||
<!-- title of the "keybindings" dialog (for the keybindings names as such, where possible the normal command strings are used) -->
|
||||
<string name="keybindings">کلیدهای میانبر</string>
|
||||
<string name="switch_between_chats">جابجا شدن میان گفتگوها</string>
|
||||
<string name="scroll_messages">حرکت کردن میان پیامها</string>
|
||||
<!-- command to put the cursor to the search input field -->
|
||||
<string name="focus_search_input">تمرکز نشانگر بر بخش جستجو</string>
|
||||
<!-- command to put the cursor to the message input field -->
|
||||
<string name="focus_message_input">تمرکز نشانگر بر بخش پیام</string>
|
||||
<string name="force_refresh_network">تازه کردن اجباری شبکه</string>
|
||||
<string name="insert_newline">افزودن خط جدید</string>
|
||||
|
||||
<!-- accessibility, the general idea is to use the normal strings for accessibility hints wherever possible -->
|
||||
<string name="a11y_delivery_status_error">وضعیت ارسال: خطا</string>
|
||||
<string name="a11y_encryption_padlock">قفل رمزگذاری</string>
|
||||
@@ -918,9 +960,33 @@ GNU GPL ورژن ۳
|
||||
<string name="a11y_background_preview_label">نمایش پس زمینه</string>
|
||||
<string name="a11y_disappearing_messages_activated">پیامهای ناپدید شونده فعال شدند</string>
|
||||
|
||||
<!-- iOS specific strings, developers: please take care to remove strings that are no longer used! -->
|
||||
<string name="stop_sharing_location">توقف اشتراک موقعیت مکانی</string>
|
||||
<string name="a11y_voice_message_hint_ios">پس از ضبط کردن برای ارسال دوبار ضربه بزنید. برای حذف و رد ضبط کردن با دو انگشت خود بکشید. </string>
|
||||
<string name="a11y_connectivity_hint">برای مشاهده اطلاعات اتصال دوبار ضربه بزنید</string>
|
||||
<string name="login_error_no_internet_connection">بدون اتصال اینترنت. ورود ناموفق</string>
|
||||
<string name="share_account_not_configured">حساب تنظیم نشده است</string>
|
||||
<string name="cannot_play_audio_file">امکان پخش کردن فایل صوتی وجود ندارد</string>
|
||||
<!-- iOS camera permission alert -->
|
||||
<string name="perm_ios_explain_access_to_camera_denied">برای عکس یا فیلم گرفتن یا اسکن کردن کد کیو آر، وارد تنظیمات سیستم شده و دسترسی به دوربین را فعال کنید. </string>
|
||||
<string name="open_settings">تنظیمات را باز کنید</string>
|
||||
<!-- iOS device contact alert -->
|
||||
<string name="import_device_contacts">وارد کردن مخاطبین</string>
|
||||
<string name="import_device_contacts_hint">برای شروع گفتگو با مخاطبین دستگاه خود، تنظیمات را باز کرده و دسترسی به مخاطبین را روشن کنید. </string>
|
||||
<!-- iOS notification settings -->
|
||||
<string name="disabled_in_dc">در دلتاچت غیر فعال شده است. </string>
|
||||
<string name="disabled_in_system_settings">در تنظیمات سیستم غیر فعال شده است. </string>
|
||||
<string name="bg_app_refresh_disabled">گزینه «Background App Refresh» در تنظیمات سیستم غیر فعال شده است. </string>
|
||||
<!-- iOS connectivity view -->
|
||||
<string name="delayed">دارای تاخیر</string>
|
||||
<string name="notifications_avg_minutes">به صورت متوسط هر%1$d دقیقه</string>
|
||||
<string name="notifications_avg_hours">به صورت متوسط هر %1$d ساعت</string>
|
||||
<string name="last_check_at">بررسی شده در %1$s</string>
|
||||
<!-- iOS permissions, copy from "deltachat-ios/Info.plist", which is used on missing translations in "deltachat-ios/LANG.lproj/InfoPlist.strings" -->
|
||||
<string name="InfoPlist_NSCameraUsageDescription">دلتاچت برای گرفتن و ارسال عکس و فیلم و برای اسکن کردن کیوآر کد از دوربین شما استفاده میکند. </string>
|
||||
<string name="InfoPlist_NSContactsUsageDescription">دلتاچت از مخاطبین شما برای نمایش لیست ایمیلهایی که میتوانید برایشان پیام ارسال کنید استفاده میکند. دلتاچت سرور ندارد مخاطبین شما به جایی ارسال نمیشوند. </string>
|
||||
<string name="InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription">دلتا چت برای اشتراک موقعیت مکانی شما در زمانی که اشتراک موقعیت مکانی را فعال کرده باشید به مجوز نیاز دارد. </string>
|
||||
<string name="InfoPlist_NSLocationWhenInUseUsageDescription">دلتا چت برای اشتراک موقعیت مکانی شما در زمانی که اشتراک موقعیت مکانی را فعال کرده باشید به مجوز نیاز دارد. </string>
|
||||
<string name="InfoPlist_NSMicrophoneUsageDescription">دلتاچت از میکروفون برای ذخیره و ارسال پیام صوتی یا فیلم دارای صدا استفاده میکند.</string>
|
||||
<string name="InfoPlist_NSPhotoLibraryUsageDescription">دلتاچت به شما اجازه می دهد تصویر موردنظر برای ارسال را انتخاب کنید.</string>
|
||||
<string name="InfoPlist_NSPhotoLibraryAddUsageDescription">دلتاچت میخواهد تصاویر را در آلبوم شما ذخیره کند.</string>
|
||||
@@ -937,4 +1003,10 @@ GNU GPL ورژن ۳
|
||||
<string name="perm_enable_bg_already_done">قبلا اجازه دسترسی به فعالیت در پس زمینه را به دلتاچت دادهاید. \n\n اگر پیامها هنوز هم در شرایط پس زمینه نمیآمد لطفا تنظیمات سیستم را نیز بررسی نمایید. </string>
|
||||
|
||||
|
||||
</resources>
|
||||
<!-- device messages for updates -->
|
||||
<string name="update_1_30">سریعتر و پایدارتر
|
||||
|
||||
در نسخههای ۱.۳۰ بر سرعت، قابلیت اطمینان و بر طرف کردن دهها اشکال تمرکز کردهایم. اگر میخواهید ببینید یکی از مشکلات شما رفع شده است به شرح تغییرات مراجعه کنید:
|
||||
https://get.delta.chat/#changelogs 🚀</string>
|
||||
|
||||
</resources>
|
||||
|
||||
@@ -446,6 +446,10 @@
|
||||
<string name="tab_webxdc_empty_hint">Tässä keskustelussa jaettu webxdc-sisältö näkyy tässä.</string>
|
||||
<string name="media_preview">Median esikatselu</string>
|
||||
<string name="send_message">Lähetä viesti</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s vaihtui osoitteesta %2$s osoitteeksi %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Vaihdoit sähköpostiosoitteesi osoitteesta %1$s osoitteeksi %2$s.\n\nJos lähetät viestin vahvistettuun ryhmään, ryhmän jäsenet saavat automaattisesti uuden osoitteesi.\n\nOn suositeltavaa asettaa vanha tilisi välittämään kaikki viestit uuteen osoitteeseesi. Muuten et välttämättä saa viestejä niiltä yhteystiedoiltasi, joilla ei ole uutta osoitettasi.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
|
||||
+14
-10
@@ -54,7 +54,7 @@
|
||||
<string name="activate">Activer</string>
|
||||
<string name="load_remote_content">Charger les images distantes</string>
|
||||
<!-- Possible answers to the question are: Never, Always, Once -->
|
||||
<string name="load_remote_content_ask">Les images distantes peuvent être utilisées pour vous pister. Ce paramètre autorise également le chargement de polices ou d\'autres contenus. S\'il est désactivé, vous pouvez tout de même voir les images ancrées ou en cache. Souhaitez-vous charger les images distantes ?</string>
|
||||
<string name="load_remote_content_ask">Les images distantes peuvent être utilisées pour vous pister. Ce paramètre autorise également le chargement de police d\'écriture ou d\'autres contenus. S\'il est désactivé, vous pouvez tout de même voir les images ancrées ou en cache. Souhaitez-vous charger les images distantes ?</string>
|
||||
<string name="always">Toujours</string>
|
||||
<string name="once">Une fois</string>
|
||||
<string name="show_password">Afficher le mot de passe</string>
|
||||
@@ -258,7 +258,7 @@
|
||||
<string name="title_share_location">Partager la position avec tous les membres du groupe</string>
|
||||
<string name="device_talk">Messages de l\'appareil</string>
|
||||
<string name="device_talk_subtitle">Messages générés localement</string>
|
||||
<string name="device_talk_explain">Les messages dans cette discussion sont générés localement par votre application Delta Chat. Ses créateurs l\'utilise pour informer des mises à jour et problèmes rencontrés lors de l\'utilisation.</string>
|
||||
<string name="device_talk_explain">Les messages dans cette discussion sont générés localement pour informer à propos des mises à jour et des problèmes rencontrés lors de l\'utilisation.</string>
|
||||
<string name="device_talk_welcome_message">Bienvenue sur Delta Chat ! - Delta Chat ressemble à d\'autres applications de messagerie populaires, mais n\'implique pas un contrôle centralisé, le traçage ou la revente de vos données, de vos amis, collègues ou famille à de grandes organisations. Techniquement, Delta Chat est une application de messagerie électronique avec une interface de tchate moderne. Un courriel retoiletté si vous voulez 👻\n\nUtilisez Delta Chat avec n\'importe qui parmi des milliards de personnes : utilisez simplement leur adresse électronique. Les destinataires n\'ont pas besoin d\'installer Delta Chat, de visiter des sites web ou de s\'inscrire où que ce soit - cependant, bien sûr, s\'ils le souhaitent, vous pouvez les diriger vers 👉 https://get.delta.chat</string>
|
||||
<string name="edit_contact">Mettre à jour le contact</string>
|
||||
<!-- Verb "to pin", making something sticky, not a noun or appreviation for "pin number". -->
|
||||
@@ -296,14 +296,14 @@
|
||||
<string name="videochat_invite_user_to_videochat">Inviter %1$s à une discussion vidéo ?</string>
|
||||
<string name="videochat_invite_user_hint">Cela requiert une application compatible ou un navigateur compatible des deux côtés.</string>
|
||||
<string name="videochat_contact_invited_hint">%1$s est invité à une discussion vidéo.</string>
|
||||
<string name="videochat_you_invited_hint">Vous êtes invité à une discussion vidéo.</string>
|
||||
<string name="videochat_you_invited_hint">Vous avez envoyez une invitation de discussion de vidéo.</string>
|
||||
<string name="videochat_tap_to_join">Appuyez pour rejoindre</string>
|
||||
<string name="videochat_tap_to_open">Appuyez pour ouvrir</string>
|
||||
<string name="videochat_instance">Instance de discussion vidéo</string>
|
||||
<string name="videochat_instance_placeholder">Votre instance de discussion vidéo</string>
|
||||
<string name="videochat_instance_example">Exemples : https://meet.jit.si/$ROOM ou basicwebrtc:https://your-server</string>
|
||||
<string name="videochat_instance_explain_2">Si vous avez activé les discussions vidéo, vous pouvez démarrer une conversation vidéo dans chacune de vos discussions. Il faut que chaque participant-e ait une application ou un navigateur compatibles pour pouvoir utiliser cette option.</string>
|
||||
<string name="videochat_instance_from_qr">Utiliser « %1$s » pour inviter les autres à des discussions vidéos ?\n\nUne fois configuré, vous pouvez démarrer une discussion vidéo depuis chaque discussion privée. Ceci va remplacer la précédente configuration pour les discussions vidéos, s\'il y en a une.</string>
|
||||
<string name="videochat_instance_explain_2">Lorsque activé, vous pouvez démarrer une discussion de vidéo dans chacune de vos conversations. Nécessite une application ou un navigateur compatible des deux côtés.</string>
|
||||
<string name="videochat_instance_from_qr">Utiliser « %1$s » pour inviter les autres à des discussions de vidéo ?\n\nUne fois configuré, vous pouvez démarrer une discussion vidéo de chaque discussion privée. Ceci va remplacer la précédente configuration pour les discussions vidéos, s\'il y en a une.</string>
|
||||
<string name="videochat_invitation">Invitation de discussion vidéo</string>
|
||||
<string name="videochat_invitation_body">Vous êtes invité à une discussion vidéo, cliquez sur %1$s pour la rejoindre.</string>
|
||||
|
||||
@@ -330,7 +330,7 @@
|
||||
<string name="ask_export_attachment">Exporter une pièce jointe ? L\'exportation des pièces jointes permettra à toute autre application sur votre appareil d\'y accéder. Continuer ?</string>
|
||||
<string name="ask_block_contact">Bloquer ce contact ? Vous ne recevrez plus ses messages.</string>
|
||||
<string name="ask_unblock_contact">Débloquer ce contact ? Vous recevrez à nouveau ses messages.</string>
|
||||
<string name="ask_delete_contacts">Effacer ces contacts? Cela supprimera définitivement les contacts sélectionnés.\n\nLes contacts avec des conversations en cours et ceux venant du carnet d\'adresses du système ne peuvent pas être définitivement effacés.</string>
|
||||
<string name="ask_delete_contacts">Effacer ces contacts?\n\nLes contacts avec des conversations en cours et ceux venant du carnet d\'adresses du système ne peuvent pas être définitivement effacés.</string>
|
||||
<string name="ask_delete_contact">Supprimer le contact %1$s ?\n\nLes contacts dans les discussions en cours et les contacts du carnet d\'adresses du système ne peuvent pas être supprimés définitivement.</string>
|
||||
<string name="cannot_delete_contacts_in_use">Impossible d\'effacer des contacts ayant une discussion active.</string>
|
||||
<string name="ask_start_chat_with">Discuter avec %1$s ?</string>
|
||||
@@ -393,7 +393,7 @@
|
||||
<string name="retry_send">Réessayer d\'envoyer le message</string>
|
||||
<!-- reasons for a disabled message composer -->
|
||||
<string name="messaging_disabled_not_in_group">Vous ne pouvez pas écrire car vous ne faites pas partie de ce groupe. Pour le rejoindre, demandez à un membre.</string>
|
||||
<string name="messaging_disabled_device_chat">Cette discussion contient des messages générés localement. Par conséquent, vous ne pouvez pas écrire le moindre message.</string>
|
||||
<string name="messaging_disabled_device_chat">Cette discussion contient des messages générés localement. Par conséquent, l\'écriture est désactivée.</string>
|
||||
<string name="messaging_disabled_mailing_list">Envoyer des messages dans des listes de diffusion n\'est pas encore possible</string>
|
||||
<string name="cannot_display_unsuported_file_type">Impossible d\'afficher ce type de fichier : %s</string>
|
||||
<string name="attachment_failed_to_load">Échec du chargement de la pièce jointe</string>
|
||||
@@ -427,7 +427,7 @@
|
||||
<!-- placeholder contains the hostname converted to ascii -->
|
||||
<string name="puny_code_warning_question">Voulez-vous vraiment visiter %1$s ?</string>
|
||||
<!-- this message is shown whenever a link with non-latin characters is clicked. first placeholder is original hostname with special chars, second placeholder is hostname encoded in ascii -->
|
||||
<string name="puny_code_warning_description">Vous avez cliqué sur un lien qui pourait avoir des caractères mal représentés du à l\'utilisation de caractères similaires provenant d\'alphabets différents. Suivre le lien marqué comme %1$s aménera à %2$s qui est le lien avec des caractères latins normaux. Si vous ne vous attendez pas à de tel caractères ce lien est potentiellement dangereux</string>
|
||||
<string name="puny_code_warning_description">Ce lien pourait avoir des caractères mal représentés dû à l\'utilisation de caractères similaires des alphabets différents. Suivre le lien marqué %1$s aménera à %2$s qui est normale avec des caractères non-latins. Si vous ne vous attendez pas à de tel caractères ce lien est potentiellement dangereux</string>
|
||||
|
||||
|
||||
<!-- search -->
|
||||
@@ -461,6 +461,10 @@
|
||||
<string name="tab_webxdc_empty_hint">Les contenus Webxdc partagés dans cette discussion seront affichés ici.</string>
|
||||
<string name="media_preview">Prévisualiser le fichier multimédia</string>
|
||||
<string name="send_message">Envoyer message</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s a changé son adresse de %2$s à %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Vous avez changé votre adresse e-mail de %1$s à %2$s.\n\nSi vous envoyez maintenant un message à un groupe vérifié, les contacts de ce groupe remplaceront automatiquement l\'ancienne adresse par la nouvelle.\n\nIl est fortement conseillé de configurer votre ancien fournisseur d\'e-mail pour qu\'il transfère tous les e-mails à votre nouvelle adresse. Sinon, vous risquez de manquer des messages de contacts qui n\'ont pas encore reçu votre nouvelle adresse.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
@@ -547,8 +551,8 @@
|
||||
<!-- share and forward messages -->
|
||||
<!-- Translators: shown above a chat/contact list when selecting recipients to forward messages -->
|
||||
<string name="forward_to">Transférer à …</string>
|
||||
<string name="share_multiple_attachments">Envoyer %1$d fichiers à la discussion sélectionnée ?\n\nLes fichiers sont envoyés sans modification, à leur taille originale, ie. les images et les vidéos ne sont pas réencodées.</string>
|
||||
<string name="share_multiple_attachments_multiple_chats">Envoyer %1$d fichier(s) à %2$d discussions ?\n\nLes fichiers sont envoyés sans modification, à leur taille originale, ie. les images et les vidéos ne sont pas réencodées.</string>
|
||||
<string name="share_multiple_attachments">Envoyer %1$d fichiers à la discussion sélectionnée ?\n\nLes fichiers sont envoyés sans modification, à leur taille originale (ie. les images et les vidéos ne sont pas réencodées).</string>
|
||||
<string name="share_multiple_attachments_multiple_chats">Envoyer %1$d fichier(s) à %2$d discussions ?\n\nLes fichiers sont envoyés sans modification, à leur taille originale (ie. les images et les vidéos ne sont pas réencodées).</string>
|
||||
<string name="share_text_multiple_chats">Envoyer ce texte à %1$d discussions ?\n\n« %2$s »</string>
|
||||
<string name="share_abort">Partage annulé en raison de permissions manquantes.</string>
|
||||
|
||||
|
||||
@@ -446,6 +446,10 @@
|
||||
<string name="tab_webxdc_empty_hint">Contido Webxdc compartido neste chat será mostrado aquí.</string>
|
||||
<string name="media_preview">Vista previa dos medios</string>
|
||||
<string name="send_message">Enviar mensaxe</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s cambiou o seu enderezo de %2$s a %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Cambiaches o teu enderezo de email de %1$s a %2$s.\n\nSe envías unha mensaxe a un grupo verificado os contactos cambiarán automáticamente o enderezo antigo polo novo.\n\nÉ moi recomendable que configures o email antigo para que che reenvíe todo o correo ao novo enderezo. De non facelo poderías perder mensaxes de contactos que aínda non coñezan o teu novo enderezo.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
|
||||
@@ -331,7 +331,6 @@
|
||||
<string name="tab_docs_empty_hint">Dokumen, musik dan berkas yang dibagikan di obrolan ini akan ditampilkan disini.</string>
|
||||
<string name="media_preview">Tampilan media</string>
|
||||
<string name="send_message">Kirim pesan</string>
|
||||
|
||||
<string name="welcome_intro1_message">Percakapan dengan pemirsa terluas di dunia. Gratis dan independen.</string>
|
||||
<string name="login_title">Masuk</string>
|
||||
<string name="login_header">Masuk ke server Anda</string>
|
||||
|
||||
@@ -461,6 +461,10 @@
|
||||
<string name="tab_webxdc_empty_hint">I contenuti Webxdc condivisi in questa chat saranno visualizzati qui.</string>
|
||||
<string name="media_preview">Anteprima dei Media</string>
|
||||
<string name="send_message">Invia Messaggio</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s hanno cambiato il loro indirizzo da %2$s a %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Hai cambiato il tuo indirizzo email da %1$s a %2$s.\n\nSe ora invii un messaggio a un gruppo verificato, i contatti sostituiranno automaticamente il vecchio indirizzo con il tuo nuovo.\n\nSi consiglia vivamente di impostare il tuo vecchio provider email per inoltrare tutte le email al tuo nuovo indirizzo email. Altrimenti potresti perdere i messaggi di contatti che non hanno ancora ricevuto il tuo nuovo indirizzo.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
|
||||
@@ -358,7 +358,6 @@
|
||||
<string name="tab_docs_empty_hint">このチャットで共有されたドキュメントや音楽などがここに表示されます。</string>
|
||||
<string name="media_preview">メディアのプレビュー</string>
|
||||
<string name="send_message">送る</string>
|
||||
|
||||
<string name="connectivity">接続性</string>
|
||||
<!-- Shown in the title bar if the app is "Not connected"; prefer short strings. -->
|
||||
<string name="connectivity_not_connected">未接続</string>
|
||||
|
||||
@@ -401,7 +401,6 @@
|
||||
<string name="tab_docs_empty_hint">ឯកសារ និងសំលេងដែលបានចែករំលែកនៅក្នុងការសន្ទនានេះ បង្ហាញនៅទីនេះ។</string>
|
||||
<string name="media_preview">ការមើលប្រព័ន្ធផ្សព្វផ្សាយជាមុន</string>
|
||||
<string name="send_message">ផ្ញើសារ</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
<string name="incoming_messages">សារចូល</string>
|
||||
|
||||
@@ -381,7 +381,6 @@
|
||||
<string name="tab_docs_empty_hint">Čia bus rodomi šiame pokalbyje bendrinami dokumentai, muzika ir kiti failai.</string>
|
||||
<string name="media_preview">Medijos peržiūra</string>
|
||||
<string name="send_message">Siųsti žinutę</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
<string name="incoming_messages">Gaunamosios žinutės</string>
|
||||
|
||||
@@ -446,6 +446,10 @@
|
||||
<string name="tab_webxdc_empty_hint">De in dit gesprek gedeelde webxdc-inhoud verschijnt hier.</string>
|
||||
<string name="media_preview">Mediavoorbeeld</string>
|
||||
<string name="send_message">Bericht versturen</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s heeft zijn/haar adres veranderd van %2$s naar %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Je hebt je e-mailadres veranderd van %1$s naar %2$s.\n\nAls je een bericht stuurt aan een goedgekeurde groep, dan zien contactpersonen in de groep je nieuwe adres.\n\nWel raden we aan om bij je oude provider in te stellen dat je e-mails wilt doorsturen naar je nieuwe adres, anders missen sommige contactpersonen mogelijk je berichten.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
|
||||
@@ -476,6 +476,10 @@
|
||||
<string name="tab_webxdc_empty_hint">Tutaj będzie wyświetlona treść Webxdc udostępniona na tym czacie.</string>
|
||||
<string name="media_preview">Podgląd multimediów</string>
|
||||
<string name="send_message">Wyślij wiadomość</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s zmieniła swój adres z %2$s na %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Zmieniłeś swój adres e-mail z %1$s na %2$s.\n\nJeśli teraz wyślesz wiadomość do zweryfikowanej grupy, kontakty tam zawarte automatycznie zastąpią stary adres Twoim nowym.\n\nBardzo zalecane jest, aby ustawić swojego starego dostawcę emaila tak, aby przekazywał wszystkie emaile na Twój nowy adres email. W przeciwnym razie możesz przegapić wiadomości od kontaktów, które jeszcze nie dostały Twojego nowego adresu.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
@@ -857,7 +861,7 @@
|
||||
<string name="ImageEditorHud_brush_marker">Marker</string>
|
||||
<string name="ImageEditorHud_brush_highlight">Podkreślacz</string>
|
||||
<string name="ImageEditorHud_crop">Przytnij</string>
|
||||
<string name="ImageEditorHud_flip">Odwróć</string>
|
||||
<string name="ImageEditorHud_flip">Przełącz</string>
|
||||
<string name="ImageEditorHud_rotate">Obróć</string>
|
||||
|
||||
<!-- dc_str_* resources -->
|
||||
|
||||
@@ -461,6 +461,10 @@
|
||||
<string name="tab_webxdc_empty_hint">O conteúdo Webxdc compartilhado neste chat será exibido aqui.</string>
|
||||
<string name="media_preview">Pré-visualização.</string>
|
||||
<string name="send_message">Enviar mensagem</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s mudou seu endereço de %2$s para %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Você mudou seu endereço de e-mail de %1$s para %2$s.\n\nSe você agora enviar uma mensagem para um grupo verificado, os contatos lá substituirão automaticamente o antigo por seu novo endereço.\n\nÉ altamente recomendável configurar seu antigo provedor de e-mail para encaminhar todos os e-mails para seu novo endereço de e-mail. Caso contrário, você pode perder mensagens de contatos que ainda não receberam seu novo endereço.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
@@ -832,7 +836,7 @@
|
||||
<string name="perm_continue">Continuar</string>
|
||||
<string name="perm_explain_access_to_camera_denied">O Delta Chat precisa acessar sua câmera para tirar fotos e gravar vídeos, mas o acesso foi negado. Por favor, habilite a câmera nas configurações de permissões do aplicativo.</string>
|
||||
<string name="perm_explain_access_to_mic_denied">O Delta Chat precisa acessar seu microfone para que você possa enviar mensagens de voz, mas o acesso foi negado. Por favor, habilite o microfone nas configurações de permissões do aplicativo.</string>
|
||||
<string name="perm_explain_access_to_storage_denied">O Delta Chat precisa acessar seu armazenamento para que você possa enviar e salvar fotos, vídeos, músicas e outras mídias, mas o acesso foi negado. Por favor, habilite o seu acesso nas configurações de permissões do aplicativo.</string>
|
||||
<string name="perm_explain_access_to_storage_denied">Para receber o enviar arquivos, vai nas configurações do aplicativo, escolhe \"Permissões\", e ativar \"Armazenamento\".</string>
|
||||
<string name="perm_explain_access_to_location_denied">O Delta Chat precisa acessar sua localização para que você possa enviá-la, mas o acesso foi negado. Por favor, habilite o seu acesso nas configurações de permissões do aplicativo.</string>
|
||||
|
||||
<!-- ImageEditorHud -->
|
||||
@@ -951,8 +955,8 @@
|
||||
<!-- iOS permissions, copy from "deltachat-ios/Info.plist", which is used on missing translations in "deltachat-ios/LANG.lproj/InfoPlist.strings" -->
|
||||
<string name="InfoPlist_NSCameraUsageDescription">Delta Chat usa sua câmera para tirar e enviar fotos e vídeos e para escanear códigos QR.</string>
|
||||
<string name="InfoPlist_NSContactsUsageDescription">O Delta Chat usa seus contatos para mostrar uma lista de endereços de e-mail para os quais você pode escrever. O Delta Chat não tem servidor, seus contatos não são enviados a lugar nenhum.</string>
|
||||
<string name="InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription">O Delta Chat precisa da permissão de localização para compartilhar sua localização durante o período de tempo em que você ativou o compartilhamento de localização.</string>
|
||||
<string name="InfoPlist_NSLocationWhenInUseUsageDescription">O Delta Chat precisa de permissão de localização para compartilhar sua localização durante o período em que o compartilhamento de localização estiver ativado.</string>
|
||||
<string name="InfoPlist_NSLocationAlwaysAndWhenInUseUsageDescription">O Delta Chat precisa da permissão para compartilhar sua localização durante o período de tempo em que você ativou o compartilhamento de localização.</string>
|
||||
<string name="InfoPlist_NSLocationWhenInUseUsageDescription">O Delta Chat precisa de permissão para compartilhar sua localização durante o período em que o compartilhamento de localização estiver ativado.</string>
|
||||
<string name="InfoPlist_NSMicrophoneUsageDescription">O Delta Chat usa seu microfone para gravar e enviar mensagens de voz e vídeos com som.</string>
|
||||
<string name="InfoPlist_NSPhotoLibraryUsageDescription">O Delta Chat permite que você escolha fotos de sua biblioteca para enviar.</string>
|
||||
<string name="InfoPlist_NSPhotoLibraryAddUsageDescription">O Delta Chat deseja salvar imagens em sua biblioteca de fotos.</string>
|
||||
|
||||
@@ -476,6 +476,10 @@
|
||||
<string name="tab_webxdc_empty_hint">Содержимое Webxdc-приложения, размещённые в этом чате, будут отображаться здесь.</string>
|
||||
<string name="media_preview">Предпросмотр медиафайлов</string>
|
||||
<string name="send_message">Отправить сообщение</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s изменила свой адрес с %2$s на %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Вы изменили свой адрес электронной почты с %1$s на %2$s.\n\nЕсли теперь вы отправите сообщение в проверенную группу, контакты там автоматически заменят старый адрес на ваш новый.\n\nНастоятельно рекомендуется настроить вашего старого поставщика услуг электронной почты на пересылку всех писем на ваш новый адрес электронной почты. В противном случае вы можете пропустить сообщения контактов, которые еще не получили ваш новый адрес.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
|
||||
@@ -321,7 +321,6 @@
|
||||
<string name="tab_docs_empty_hint">Sos documentos editàbiles, cussos musicales e totu sas àteras castas de documentos cumpartzidos in custa tzarrada ant a èssere ammustrados inoghe.</string>
|
||||
<string name="media_preview">Anteprima de su documentu multimediale</string>
|
||||
<string name="send_message">Imbia messàgiu</string>
|
||||
|
||||
<string name="welcome_intro1_message">S\'aplicatzione de messagìstica cun prus impreadores in su mundu. Lìbera e indipendente.</string>
|
||||
<string name="login_title">Intra</string>
|
||||
<string name="login_header">Intra in su servidore tuo</string>
|
||||
|
||||
@@ -461,7 +461,6 @@
|
||||
<string name="tab_docs_empty_hint">Tu sa zobrazia dokumenty, hudba a ďalšie súbory zdieľané v tejto konverzácii.</string>
|
||||
<string name="media_preview">Ukážka pre médiá</string>
|
||||
<string name="send_message">Poslať správu</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
<string name="incoming_messages">Prichádzajúce Správy</string>
|
||||
|
||||
@@ -444,6 +444,10 @@
|
||||
<string name="tab_webxdc_empty_hint">Lëndë Webxdc e dhënë në këtë fjalosje do të shfaqet këtu.</string>
|
||||
<string name="media_preview">Paraparje media</string>
|
||||
<string name="send_message">Dërgo mesazh</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s ndryshoi adresën e vet nga %2$s në %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Ndryshuat adresën tuaj nga %1$s në %2$s.\n\nNëse dërgoni tani një mesazh te një grup i verifikuar, kontaktet atje do të zëvendësojnë automatikisht adresën tuaj të vjetër me të renë.\n\nËshtë tejet e këshillueshme të ujdisni shërbimin tuaj të vjetër të email-it të përcjellë krejt email-et te adresa juaj e re email. Përndryshme, mund të humbni mesazhe të kontakteve që s’e kanë marrë ende adresën tuaj të re.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
|
||||
@@ -375,7 +375,6 @@
|
||||
<string name="tab_docs_empty_hint">Dokument, musik och andra filer som delas i denna chatt kommer att visas här.</string>
|
||||
<string name="media_preview">Förhandsvisning av media</string>
|
||||
<string name="send_message">Skicka meddelande</string>
|
||||
|
||||
<string name="welcome_intro1_message">Chattappen med den bredaste publiken i världen. Fri och oberoende.</string>
|
||||
<string name="login_title">Logga in</string>
|
||||
<string name="login_header">Logga in på din server</string>
|
||||
|
||||
+15
-11
@@ -439,13 +439,17 @@
|
||||
<string name="tab_links">Bağlantılar</string>
|
||||
<string name="tab_map">Harita</string>
|
||||
<string name="tab_gallery_empty_hint">Bu sohbette paylaşılan görseller ve videolar burada görünecek.</string>
|
||||
<string name="tab_docs_empty_hint">Bu sohbette paylaşılan belgeler, müzik ve diğer dosyalar burada görünecek.</string>
|
||||
<string name="tab_docs_empty_hint">Bu sohbette paylaşılan belgeler ve diğer dosyalar burada görünecek.</string>
|
||||
<string name="tab_image_empty_hint">Bu sohbette paylaşılan görseller burada görünecek.</string>
|
||||
<string name="tab_video_empty_hint">Bu sohbette paylaşılan videolar burada görünecek.</string>
|
||||
<string name="tab_audio_empty_hint">Bu sohbette paylaşılan ses dosyaları ve sesli iletiler burada görünecek.</string>
|
||||
<string name="tab_webxdc_empty_hint">Bu sohbette paylaşılan Webxdc içeriği burada görünecek.</string>
|
||||
<string name="media_preview">Ortam Önizlemesi</string>
|
||||
<string name="send_message">İleti Gönder</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s, %2$s adresini %3$s olarak değiştirdi</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">%1$s e-posta adresinizi %2$s olarak değiştirdiniz.\n\nŞimdi bir doğrulanan gruba ileti gönderirseniz, oradaki kişiler yeni adresinizle eskisini otomatik olarak değiştirecek.\n\nTüm e-postaları yeni e-posta adresinize iletmek için eski e-posta sağlayıcınızı ayarlamanız önemle önerilir. Yoksa henüz yeni adresinizi almamış olan kişilerin iletilerini kaçırabilirsiniz.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
@@ -479,7 +483,7 @@
|
||||
<string name="login_title">Oturum Aç</string>
|
||||
<string name="login_header">E-Posta Hesabınıza Oturum Açın</string>
|
||||
<string name="login_explain">Varolan bir e-posta hesabıyla oturum açın</string>
|
||||
<string name="login_subheader">Bilinen e-posta sağlayıcıları için ek ayarlar otomatik olarak ayarlanır. Bazen IMAP\'nin web ayarlarından etkinleştirilmesi gerekir. Yardım için e-posta sağlayıcınıza ya da arkadaşlarınıza danışın.</string>
|
||||
<string name="login_subheader">Bilinen e-posta sağlayıcıları için ek ayarlar otomatik olarak ayarlanır. Bazen IMAP\'in web ayarlarından etkinleştirilmesi gerekir. Yardım için e-posta sağlayıcınıza ya da arkadaşlarınıza danışın.</string>
|
||||
<string name="login_no_servers_hint">Delta Chat sunucuları yoktur; verileriniz aygıtınızda kalır.</string>
|
||||
<string name="login_inbox">Gelen Kutusu</string>
|
||||
<string name="login_imap_login">IMAP Oturum Açma Adı</string>
|
||||
@@ -517,7 +521,7 @@
|
||||
<!-- TLS certificate checks -->
|
||||
<string name="accept_invalid_certificates">Geçersiz sertifikaları kabul et</string>
|
||||
<string name="used_settings">Kullanılan ayarlar:</string>
|
||||
<string name="switch_account">Hesap Değiştir</string>
|
||||
<string name="switch_account">Hesabı Değiştir</string>
|
||||
<string name="add_account">Hesap Ekle</string>
|
||||
<string name="delete_account">Hesabı Sil</string>
|
||||
<string name="delete_account_ask">Hesap verilerinizi silmek istediğinizden emin misiniz?</string>
|
||||
@@ -546,7 +550,7 @@
|
||||
<string name="pref_blocked_contacts">Engellenen Kişiler</string>
|
||||
<string name="blocked_empty_hint">Engellenen kişiler burada görünecek.</string>
|
||||
<string name="pref_password_and_account_settings">Parola ve Hesap</string>
|
||||
<string name="pref_who_can_see_profile_explain">Diğer kullanıcılarla iletişim kurulurken; profil görseliniz, adınız ve imzanız iletilerinizle birlikte gönderilecek.</string>
|
||||
<string name="pref_who_can_see_profile_explain">Profil görseliniz, adınız ve imzanız diğer kullanıcılarla iletişim kurulurken iletilerinizle birlikte gönderilecek.</string>
|
||||
<string name="pref_your_name">Adınız</string>
|
||||
<!-- Translators: Visible only to recipients who DO NOT use Delta Chat, so it's the last line in an E-mail and not a "Status". -->
|
||||
<string name="pref_default_status_label">İmza Metni</string>
|
||||
@@ -620,7 +624,7 @@
|
||||
<string name="pref_auto_folder_moves">DeltaChat Klasörüne Otomatik Olarak Taşı</string>
|
||||
<string name="pref_auto_folder_moves_explain">Sohbet görüşmeleri, Gelen Kutusu\'ndaki dağınıklığı önlemek için taşınır</string>
|
||||
<string name="pref_only_fetch_mvbox_title">Yalnızca DeltaChat Klasöründen Getir</string>
|
||||
<string name="pref_only_fetch_mvbox_explain">Diğer klasörleri yoksay. Sunucunuzun sohbet iletilerini DeltaChat klasörüne taşımasını gerektirir.</string>
|
||||
<string name="pref_only_fetch_mvbox_explain">Diğer klasörleri yok sayar. Sunucunuzun sohbet iletilerini DeltaChat klasörüne taşımasını gerektirir.</string>
|
||||
<string name="pref_show_emails">Klasik E-Postaları Göster</string>
|
||||
<string name="pref_show_emails_no">Hayır, yalnızca sohbetler</string>
|
||||
<string name="pref_show_emails_accepted_contacts">Kabul edilen kişiler için</string>
|
||||
@@ -706,8 +710,8 @@
|
||||
|
||||
|
||||
<!-- system messages -->
|
||||
<string name="systemmsg_group_name_changed">\"%1$s\" grup adı \"%2$s\" olarak değişti.</string>
|
||||
<string name="systemmsg_group_image_changed">Grup görseli değişti.</string>
|
||||
<string name="systemmsg_group_name_changed">\"%1$s\" grup adı \"%2$s\" olarak değiştirildi.</string>
|
||||
<string name="systemmsg_group_image_changed">Grup görseli değiştirildi.</string>
|
||||
<string name="systemmsg_group_image_deleted">Grup görseli silindi.</string>
|
||||
<string name="systemmsg_member_added">%1$s üyesi eklendi.</string>
|
||||
<string name="systemmsg_member_removed">%1$s üyesi kaldırıldı.</string>
|
||||
@@ -781,7 +785,7 @@
|
||||
<string name="qrshow_join_contact_hint">%1$s ile sohbet etmek için bunu tarayın</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">Internet bağlantısı yok; QR kodu ayarlaması gerçekleştirilemiyor.</string>
|
||||
<string name="qraccount_ask_create_and_login">\"%1$s\" üzerinde yeni e-posta adresi oluşturulsun ve oturum açılsın mı?</string>
|
||||
<string name="qraccount_ask_create_and_login_another">\"%1$s\" üzerinde yeni e-posta adresi oluşturulsun ve oturum açılsın mı?\n\nVarolan hesabınız silinmeyecek. Hesaplarınız arasında geçiş yapmak için \"Hesap değiştir\" öğesini kullanın.</string>
|
||||
<string name="qraccount_ask_create_and_login_another">\"%1$s\" üzerinde yeni e-posta adresi oluşturulsun ve oturum açılsın mı?\n\nVarolan hesabınız silinmeyecek. Hesaplarınız arasında geçiş yapmak için \"Hesabı Değiştir\" öğesini kullanın.</string>
|
||||
<string name="qraccount_success_enter_name">Oturum açma başarılı—e-posta adresiniz %1$s\n\nİsterseniz şimdi yazdığınız insanlara görüntülenecek bir ad ve bir profil görseli girebilirsiniz.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">Taranan QR kodu, yeni bir hesap ayarlamak için kullanılamıyor.</string>
|
||||
<string name="qraccount_use_on_new_install">Taranan QR kodu, yeni bir hesap ayarlamak içindir. QR kodunu yeni bir Delta Chat kurulumu ayarlanırken tarayabilirsiniz.</string>
|
||||
@@ -792,7 +796,7 @@
|
||||
<string name="contact_verified">%1$s doğrulandı.</string>
|
||||
<string name="contact_not_verified">%1$s doğrulanamıyor.</string>
|
||||
<!-- translators: "setup" is the "encryption setup" here, as in "Autocrypt Setup Message" -->
|
||||
<string name="contact_setup_changed">%1$s için ayarlama değişti.</string>
|
||||
<string name="contact_setup_changed">%1$s için ayarlama değiştirildi.</string>
|
||||
<string name="verified_group_explain">Doğrulanan gruplar (deneysel), etkin saldırılar karşısında güvenlik sağlar. Üyeler, diğer üyeler tarafından ikinci bir etkenle doğrulanır ve iletiler her zaman uçtan uca şifrelenir.</string>
|
||||
<string name="copy_qr_data_success">QR URL\'si panoya kopyalandı</string>
|
||||
<string name="mailto_dialog_header_select_chat">İletiyi göndermek için sohbet seçin</string>
|
||||
@@ -945,8 +949,8 @@
|
||||
|
||||
<!-- android specific strings, developers: please take care to remove strings that are no longer used! -->
|
||||
<string name="pref_background_notifications">Arka Plan Bildirimleri</string>
|
||||
<string name="pref_background_notifications_explain">Sunucunuza bir arka plan bağlantısı kullanır ve pil iyileştirmelerinin yoksayılmasını gerektirir.</string>
|
||||
<string name="pref_background_notifications_rationale">E-posta sunucunuza bağlantıyı sürdürmek ve arka planda iletileri almak için sonraki adımda pil iyileştirmelerini yoksayın.\n\nDelta Chat, kaynakların en azını kullanır ve pilinizi boşaltmamaya özen gösterir.</string>
|
||||
<string name="pref_background_notifications_explain">Sunucunuza bir arka plan bağlantısı kullanır ve pil iyileştirmelerinin yok sayılmasını gerektirir.</string>
|
||||
<string name="pref_background_notifications_rationale">E-posta sunucunuza bağlantıyı sürdürmek ve arka planda iletileri almak için sonraki adımda pil iyileştirmelerini yok sayın.\n\nDelta Chat, kaynakların en azını kullanır ve pilinizi boşaltmamaya özen gösterir.</string>
|
||||
<!-- disabling "Reliable service" will hide a the maybe annoying permanent-notification with the drawback that new-message-notifications get potentially unreliable -->
|
||||
<string name="pref_reliable_service">Güvenilir Arka Plan Bağlantısı</string>
|
||||
<string name="pref_reliable_service_explain">Kalıcı bir bildirim gerektirir</string>
|
||||
|
||||
+23
-19
@@ -54,7 +54,7 @@
|
||||
<string name="activate">Активувати</string>
|
||||
<string name="load_remote_content">Завантажувати віддалені зображення</string>
|
||||
<!-- Possible answers to the question are: Never, Always, Once -->
|
||||
<string name="load_remote_content_ask">Віддалені зображення можна використовувати для слідкування за вами.\n\nЦе налаштування також дозволяє завантажувати шрифти та інший вміст. Навіть якщо воно вимкнене, ви можете побачити вбудовані або кешовані зображення.\n\nЗавантажувати віддалені зображення?</string>
|
||||
<string name="load_remote_content_ask">Віддалені зображення можна використовувати для слідкування за вами.\n\nЦе налаштування також дозволяє завантажувати шрифти та інший вміст. Якщо воно вимкнене, ви можете побачити вбудовані або кешовані зображення.\n\nЗавантажувати віддалені зображення?</string>
|
||||
<string name="always">Завжди</string>
|
||||
<string name="once">Один раз</string>
|
||||
<string name="show_password">Показати пароль</string>
|
||||
@@ -147,7 +147,7 @@
|
||||
<string name="image">Зображення</string>
|
||||
<!-- Used in summaries as "Draft: Reply", similar as "Draft: Image". Use a noun here, not a verb (not: "to reply") -->
|
||||
<string name="reply_noun">Відповідь</string>
|
||||
<string name="gif">Gif</string>
|
||||
<string name="gif">GIF</string>
|
||||
<!-- "Stickers" as known from other messengers; in some languages, the English "Sticker" is fine. -->
|
||||
<string name="sticker">Стікер</string>
|
||||
<string name="images">Зображення</string>
|
||||
@@ -266,7 +266,7 @@
|
||||
<string name="title_share_location">Ділитися геоданими з усіма членами групи</string>
|
||||
<string name="device_talk">Повідомлення пристрою</string>
|
||||
<string name="device_talk_subtitle">Локально згенеровані повідомлення</string>
|
||||
<string name="device_talk_explain">Повідомлення у цьому чаті згенеровані локально вашим додатком Delta Chat. Його розробники використовують його для інформування про оновлення додатку та проблеми при використанні.</string>
|
||||
<string name="device_talk_explain">Повідомлення у цьому чаті згенеровані на вашому пристрої для інформування про оновлення та проблеми при використанні.</string>
|
||||
<string name="device_talk_welcome_message">Вітаємо у Delta Chat! - Delta Chat дуже схожий на інші популярні програми обміну повідомленнями, але не передбачає централізованого контролю, відстеження або продажу вас, друзів, колег чи родини великим організаціям.\n\nТехнічно, Delta Chat - це програма електронної пошти з сучасним інтерфейсом чату. Електронна пошта у новому вбранні, якщо вам забажається 👻\n\nВикористовуйте Delta Chat з будь ким із мільярдів людей: просто використовуйте їхню електронну адресу. Одержувачам не потрібно встановлювати Delta Chat, відвідувати веб-сайти або десь реєструватись - однак, звичайно, ви можете направити їх на 👉 https://get.delta.chat</string>
|
||||
<string name="edit_contact">Редагувати контакт</string>
|
||||
<!-- Verb "to pin", making something sticky, not a noun or appreviation for "pin number". -->
|
||||
@@ -305,13 +305,13 @@
|
||||
<string name="videochat_invite_user_to_videochat">Запросити %1$s у відео чат?</string>
|
||||
<string name="videochat_invite_user_hint">Це потребує сумісного додатку або сумісного браузера на обох кінцях.</string>
|
||||
<string name="videochat_contact_invited_hint">%1$s запрошено у відео чат.</string>
|
||||
<string name="videochat_you_invited_hint">Вас запрошено у відео чат.</string>
|
||||
<string name="videochat_you_invited_hint">Ви надіслали запрошення у відео чат.</string>
|
||||
<string name="videochat_tap_to_join">Торкніться щоб приєднатися</string>
|
||||
<string name="videochat_tap_to_open">Торкніться щоб відкрити</string>
|
||||
<string name="videochat_instance">Відео чат</string>
|
||||
<string name="videochat_instance_placeholder">Ваш відео чат</string>
|
||||
<string name="videochat_instance_example">Приклади: https://meet.jit.si/$ROOM або basicwebrtc:https://your-server</string>
|
||||
<string name="videochat_instance_explain_2">Якщо визначено екземпляр відеочату, ви можете розпочати відеочат із кожного індивідуального чату. Для відеочату потрібен сумісний додаток або сумісний браузер з обох кінців.</string>
|
||||
<string name="videochat_instance_explain_2">Якщо ввімкнено, ви можете почати відеочат із кожного чату. Потрібен сумісний додаток або браузер на обох сторонах.</string>
|
||||
<string name="videochat_instance_from_qr">Використовуйте \"%1$s\" аби запросити інших у відеочат?\n\nПісля встановлення ви можете розпочати відеочат із кожного індивідуального чату. Це замінить попереднє налаштування для відеочату, якщо воно є.</string>
|
||||
<string name="videochat_invitation">Запрошення до відео чату</string>
|
||||
<string name="videochat_invitation_body">Вас запрошено у відео-чат, клікніть %1$s аби приєднатися.</string>
|
||||
@@ -339,10 +339,10 @@
|
||||
</plurals>
|
||||
<string name="ask_forward">Переслати повідомлення %1$s?</string>
|
||||
<string name="ask_forward_multiple">Пересилати повідомлення у %1$d?</string>
|
||||
<string name="ask_export_attachment">Експортувати вкладення? Експорт вкладень дозволить будь-якому іншому додатку на Вашому пристрої отримати до них доступ.\n\nПродовжити?</string>
|
||||
<string name="ask_export_attachment">Якщо експортувати вкладені файли, інші програми на вашому пристрої отримають до них доступ.\n\nПродовжити?</string>
|
||||
<string name="ask_block_contact">Заблокувати цей контакт? Ви більше не будете отримувати від нього повідомлення.</string>
|
||||
<string name="ask_unblock_contact">Розблокувати цей контакт? Ви знову зможете отримувати від нього повідомлення.</string>
|
||||
<string name="ask_delete_contacts">Видалити контакти? Ця дія назавжди видалить вибрані контакти.\n\nКонтакти з діючих чатів та з адресної книги системи не можна видалити назавжди.</string>
|
||||
<string name="ask_delete_contacts">Видалити контакти?\n\nКонтакти з поточними чатами або з системної адресної книги неможливо видалити остаточно.</string>
|
||||
<string name="ask_delete_contact">Видалити %1$s?\n\nКонтакти з діючих чатів та з адресної книги системи не можна видалити назавжди.</string>
|
||||
<string name="cannot_delete_contacts_in_use">Неможливо видалити контакти, з якими є активні чати.</string>
|
||||
<string name="ask_start_chat_with">Створити чат з %1$s?</string>
|
||||
@@ -431,9 +431,9 @@
|
||||
<string name="add_poi">Надіслати точку інтересу</string>
|
||||
|
||||
<!-- chat audit log -->
|
||||
<string name="chat_audit_log_empty_message">Тут відображатимуться системні повідомлення цього чату</string>
|
||||
<string name="chat_audit_log_empty_message">Тут відображатимуться системні повідомлення для цього чату</string>
|
||||
<string name="chat_audit_log_title">Журнал аудиту чату для %1$s</string>
|
||||
<string name="chat_audit_log_description"> На цьому екрані відображаються лише системні та інформаційні повідомлення. Корисно для пошуку останніх дій чату без прокрутки багатьох звичайних повідомлень.</string>
|
||||
<string name="chat_audit_log_description">На цьому екрані відображаються лише системні та інформаційні повідомлення. Корисно для пошуку останніх дій чату без прокрутки багатьох звичайних повідомлень.</string>
|
||||
|
||||
<!-- punycode warning / labeled links -->
|
||||
<!-- placeholder is domain/hostname that should be trusted -->
|
||||
@@ -442,7 +442,7 @@
|
||||
<!-- placeholder contains the hostname converted to ascii -->
|
||||
<string name="puny_code_warning_question">Ви впевнені, що хочете відвідати %1$s?</string>
|
||||
<!-- this message is shown whenever a link with non-latin characters is clicked. first placeholder is original hostname with special chars, second placeholder is hostname encoded in ascii -->
|
||||
<string name="puny_code_warning_description">Ви перейшли за посиланням, яке може спотворювати символи, використовуючи подібні до них символи з різних алфавітів. Перехід за посиланням %1$s приведе до %2$s, що є нормальним для нелатинських символів. Якщо ви не очікували таких символів, це посилання може бути шкідливим</string>
|
||||
<string name="puny_code_warning_description">Це посилання може спотворювати символи, використовуючи подібні до них символи з різних алфавітів. Перехід за посиланням %1$s приведе до %2$s, що є нормальним для нелатинських символів. Якщо ви не очікували таких символів, це посилання може бути шкідливим</string>
|
||||
|
||||
|
||||
<!-- search -->
|
||||
@@ -469,13 +469,17 @@
|
||||
<string name="tab_links">Посилання</string>
|
||||
<string name="tab_map">Карта</string>
|
||||
<string name="tab_gallery_empty_hint">Зображення та відео, якими поділилися у цьому чаті, будуть відображатися тут.</string>
|
||||
<string name="tab_docs_empty_hint">Документи, музика та інші файли, якими поділилися у цьому чаті, будуть відображатися тут.</string>
|
||||
<string name="tab_docs_empty_hint">Документи та інші файли, якими поділилися у цьому чаті, будуть відображатися тут.</string>
|
||||
<string name="tab_image_empty_hint">Зображення, якими поділилися у цьому чаті, будуть відображатися тут.</string>
|
||||
<string name="tab_video_empty_hint">Відео, якими поділилися у цьому чаті, будуть відображатися тут.</string>
|
||||
<string name="tab_audio_empty_hint">Аудіозаписи, якими поділилися у цьому чаті, будуть відображатися тут.</string>
|
||||
<string name="tab_audio_empty_hint">Аудіозаписи та голосові повідомлення, якими поділилися у цьому чаті, будуть відображатися тут.</string>
|
||||
<string name="tab_webxdc_empty_hint">Webxdc-контент, яким поділилися у цьому чаті, буде відображатися тут.</string>
|
||||
<string name="media_preview">Попередній перегляд медіа</string>
|
||||
<string name="send_message">Надіслати повідомлення</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s змінили їх адресу з %2$s на %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">Ви змінили вашу електронну адресу з %1$s на %2$s.\n\nЯкщо зараз ви відправите повідомлення у підтверджену групу, контакти в ній автоматично замінять вашу стару адресу на нову.\n\nНастійно рекомендується налаштувати старий аккаунт електронної пошти на пересилання всіх електронних листів на вашу нову електронну адресу. Інакше ви можете пропустити повідомлення контактів, які ще не отримали вашу нову адресу.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
@@ -507,7 +511,7 @@
|
||||
<string name="scan_invitation_code">Сканувати код запрошення</string>
|
||||
<string name="welcome_intro1_message">Мессенджер з найширшою аудиторією у світі. Безкоштовний і незалежний.</string>
|
||||
<string name="login_title">Увійти</string>
|
||||
<string name="login_header">Увійти на свій сервер</string>
|
||||
<string name="login_header">Увійдіть до свого облікового запису електронної пошти</string>
|
||||
<string name="login_explain">Увійти з наявним обліковим записом електронної пошти</string>
|
||||
<string name="login_subheader">Для відомих провайдерів електронної пошти додаткові налаштування встановлюються автоматично. Іноді IMAP потрібен дозвіл в веб-інтерфейсі. Проконсультуйтеся з Вашим провайдером електронної пошти або друзями для отримання допомоги.</string>
|
||||
<string name="login_no_servers_hint">У Delta Chat немає серверів, Ваші дані залишаються на Вашому пристрої!</string>
|
||||
@@ -539,7 +543,7 @@
|
||||
<string name="login_error_server">Вкажіть дійсний сервер / IP-адресу</string>
|
||||
<string name="login_error_port">Вкажіть дійсний порт (1–65535)</string>
|
||||
<string name="login_error_required_fields">Вкажіть вірні адресу електронної пошти та пароль</string>
|
||||
<string name="import_backup_title">Імпортувати бекап</string>
|
||||
<string name="import_backup_title">Відновити з резервної копії</string>
|
||||
<string name="import_backup_ask">Знайдена резервна копія «%1$s».\n\nВідновити з неї всі дані і параметри?</string>
|
||||
<string name="import_backup_no_backup_found">Резервних копій не знайдено.\n\nПомістить резервну копію у папку «%1$s» і спробуйте знову запустити відновлення. Для установлення без відновлення параметрів натисніть «Почати спілкування».</string>
|
||||
<!-- Translators: %1$s will be replaced by the e-mail address -->
|
||||
@@ -562,8 +566,8 @@
|
||||
<!-- share and forward messages -->
|
||||
<!-- Translators: shown above a chat/contact list when selecting recipients to forward messages -->
|
||||
<string name="forward_to">Переслати...</string>
|
||||
<string name="share_multiple_attachments">Надіслати %1$d файлів у обраний чат?\n\nФайли надсилаються незмінними в оригінальному розмірі, тобто зображення та відео не перекодовуються.</string>
|
||||
<string name="share_multiple_attachments_multiple_chats">Надіслати %1$d файлів у %2$d чати?\n\nФайли надсилаються незмінними в оригінальному розмірі, тобто зображення та відео не перекодовуються.</string>
|
||||
<string name="share_multiple_attachments">Надіслати %1$d файлів у обраний чат?\n\nФайли надсилаються незмінними в оригінальному розмірі (тобто зображення та відео не перекодовуються).</string>
|
||||
<string name="share_multiple_attachments_multiple_chats">Надіслати %1$d файлів у %2$d чати?\n\nФайли надсилаються незмінними в оригінальному розмірі (тобто зображення та відео не перекодовуються).</string>
|
||||
<string name="share_text_multiple_chats">Надіслати цей текст у %1$d чат?\n\n\"%2$s\"</string>
|
||||
<string name="share_abort">Надсилання обірване через відсутність дозволів.</string>
|
||||
|
||||
@@ -643,7 +647,7 @@
|
||||
<string name="pref_background_btn_default">Використовувати зображення за замовчуванням</string>
|
||||
<string name="pref_background_btn_gallery">Вибрати з галереї</string>
|
||||
<string name="pref_imap_folder_handling">Параметри IMAP-папок</string>
|
||||
<string name="pref_imap_folder_warn_disable_defaults">У разі вимкнення цього параметру переконайтеся, що сервер і Ваші інші додатки для роботи з електронною поштою налаштовані таким же чином.\n\nУ випадку, якщо параметри відрізняються, все може перестати працювати.</string>
|
||||
<string name="pref_imap_folder_warn_disable_defaults">Якщо ви змінюєте цей параметр, переконайтеся, що ваш сервер та інші ваші клієнти налаштовані відповідним чином.\n\nІнакше щось може взагалі не працювати.</string>
|
||||
<string name="pref_watch_sent_folder">Стежити за папкою «Надіслані»</string>
|
||||
<string name="pref_send_copy_to_self">Відправити копію собі</string>
|
||||
<string name="pref_send_copy_to_self_explain">Обов’язковий при використанні цього облікового запису на кількох пристроях.</string>
|
||||
@@ -771,7 +775,7 @@
|
||||
|
||||
<string name="devicemsg_self_deleted">Ви видалили чат \"Збережені повідомлення\".\n\nℹ️ Аби використовувати функцію \"Збережені повідомлення\" знову, створіть новий чат самі із собою.</string>
|
||||
<!-- %1$s will be replaced by the amount of storage already used, sth. as '500 MB'. If you want to use a percentage sign, type in two of them, eg. %1$s %% -->
|
||||
<string name="devicemsg_storage_exceeding">⚠️ Сховище вашого провайдера електронної пошти майже заповнено, вже використовується %1$s%%.\n\nМожливо, ви не зможете отримати повідомлення, коли пам’ять буде використана на 100%%.\n\n👉 Перевірте, чи можна видалити старі дані у веб -інтерфейсі провайдера та включіть \"Налаштування / Видалити старі повідомлення\". Ви можете будь-коли перевірити своє поточне використання сховища в \"Налаштування / Підключення\". </string>
|
||||
<string name="devicemsg_storage_exceeding">⚠️ Сховище вашого провайдера електронної пошти майже заповнено, вже використовується %1$s%%.\n\nМожливо, ви не зможете отримати повідомлення, коли сховище буде заповнене.\n\n👉 Перевірте, чи можна видалити старі дані у веб -інтерфейсі провайдера та включіть \"Налаштування / Видалити старі повідомлення\". Ви можете будь-коли перевірити своє поточне використання сховища в \"Налаштування / Підключення\". </string>
|
||||
<!-- %1%s will be replaced by date and time in some human-readable format -->
|
||||
<string name="devicemsg_bad_time">⚠️ Дата і час на вашому пристрої видаються неточними (%1$s).\n\nНалаштуйте свій годинник ⏰🔧 для правильного отримання ваших повідомлень.</string>
|
||||
<string name="devicemsg_update_reminder">⚠️ Ваша версія Delta Chat може бути застарілою.\n\nЦе може спричинити проблеми, оскільки ваші співрозмовники в чаті використовують новіші версії, а вам не вистачає найновіших функцій 😳 \nПеревірте оновлення на https://get.delta.chat або у вашому магазині додатків. </string>
|
||||
@@ -847,7 +851,7 @@
|
||||
<string name="perm_continue">Продовжити</string>
|
||||
<string name="perm_explain_access_to_camera_denied">Для зйомки фотографій або відео додатку потрібен дозвіл на використання камери, але зараз його не надано. Для надання дозволу перейдіть у системне меню налаштувань, у розділі «Додатки» знайдіть Delta Chat і дозвольте доступ до камери.</string>
|
||||
<string name="perm_explain_access_to_mic_denied">Для надсилання голосових повідомлень додатку потрібен дозвіл на використання мікрофону, але зараз його не надано. Для надання дозволу перейдіть у системне меню налаштувань, у розділі «Додатки» знайдіть Delta Chat і дозвольте доступ до мікрофону.</string>
|
||||
<string name="perm_explain_access_to_storage_denied">Для збереження або передавання фотографій та відео додатку потрібен дозвіл на використання сховища, але зараз його не надано. Для надання дозволу перейдіть в системне меню налаштувань, в розділі «Додатки» знайдіть Delta Chat і дозвольте доступ до сховища.</string>
|
||||
<string name="perm_explain_access_to_storage_denied">Для збереження або передавання фотографій перейдіть до налаштувань додатку, оберіть \"Дозволи\" та включіть \"Сховище\"</string>
|
||||
<string name="perm_explain_access_to_location_denied">Щоб передати місцезнаходження, додатку потрібен доступ до геоданих пристрою, але зараз його не надано. Для надання доступу перейдіть у системне меню налаштувань, у розділі «Додатки» знайдіть Delta Chat, виберіть пункт «Права доступу» і дозвольте доступ до місцезнаходження пристрою.</string>
|
||||
|
||||
<!-- ImageEditorHud -->
|
||||
|
||||
@@ -431,6 +431,10 @@
|
||||
<string name="tab_webxdc_empty_hint">此聊天内分享的 Webxdc 内容将显示在这里</string>
|
||||
<string name="media_preview">媒体预览</string>
|
||||
<string name="send_message">发送消息</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s 将邮箱从 %2$s 更改为 %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">你将邮箱从 %1$s 改为了 %2$s。\n\n如果你现在发送一条消息到已验证的群组,那里的联系人将自动用你的新邮箱替换旧邮箱。\n\n我们建议你配置旧邮箱将所有邮件转发到新邮箱。否则,你可能收不到还不知道你新邮箱的联系人发过来的消息。</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
|
||||
@@ -264,6 +264,8 @@
|
||||
<string name="ConversationFragment_quoted_message_not_found">Original message not found</string>
|
||||
<string name="reply_privately">Reply Privately</string>
|
||||
<string name="source_code">Source Code</string>
|
||||
<!-- Menu item beside an app/chat that adds an icon to the system's home screen. If the user taps that icon, the app/chat is opened directly. -->
|
||||
<string name="add_to_home_screen">Add to Home Screen</string>
|
||||
|
||||
<string name="mute_for_one_hour">Mute for 1 hour</string>
|
||||
<string name="mute_for_two_hours">Mute for 2 hours</string>
|
||||
@@ -439,13 +441,17 @@
|
||||
<string name="tab_links">Links</string>
|
||||
<string name="tab_map">Map</string>
|
||||
<string name="tab_gallery_empty_hint">Images and videos shared in this chat will appear here.</string>
|
||||
<string name="tab_docs_empty_hint">Documents, music, and other files shared in this chat will appear here.</string>
|
||||
<string name="tab_docs_empty_hint">Documents and other files shared in this chat will appear here.</string>
|
||||
<string name="tab_image_empty_hint">Images shared in this chat will appear here.</string>
|
||||
<string name="tab_video_empty_hint">Videos shared in this chat will appear here.</string>
|
||||
<string name="tab_audio_empty_hint">Audio Files and Voice Messages shared in this chat will appear here.</string>
|
||||
<string name="tab_audio_empty_hint">Audio files and voice messages shared in this chat will appear here.</string>
|
||||
<string name="tab_webxdc_empty_hint">Webxdc content shared in this chat will appear here.</string>
|
||||
<string name="media_preview">Media Preview</string>
|
||||
<string name="send_message">Send Message</string>
|
||||
<!-- Placeholder %1$s will be replaced by the name of the contact changing their address. Placeholders %2$s and %3$s will be replaced by old/new email addresses. -->
|
||||
<string name="aeap_addr_changed">%1$s changed their address from %2$s to %3$s</string>
|
||||
<!-- the explanation is shown (1) as a modal dialog with the buttons "Cancel" and "Continue" as well as (2) as a device message -->
|
||||
<string name="aeap_explanation">You changed your email address from %1$s to %2$s.\n\nIf you now send a message to a verified group, contacts there will automatically replace the old with your new address.\n\nIt\'s highly advised to set up your old email provider to forward all emails to your new email address. Otherwise you might miss messages of contacts who did not get your new address yet.</string>
|
||||
|
||||
<!-- Connectivity -->
|
||||
<!-- Headline for the "Inbox" eg. in the "Connectivity" view -->
|
||||
@@ -781,7 +787,7 @@
|
||||
<string name="qrshow_join_contact_hint">Scan to chat with %1$s</string>
|
||||
<string name="qrshow_join_contact_no_connection_toast">No internet connection, can\'t perform QR code setup.</string>
|
||||
<string name="qraccount_ask_create_and_login">Create new e-mail address on \"%1$s\" and log in there?</string>
|
||||
<string name="qraccount_ask_create_and_login_another">Create new e-mail address on \"%1$s\" and log in there?\n\nYour existing account will not be deleted. Use the \"Switch account\" item to switch between your accounts.</string>
|
||||
<string name="qraccount_ask_create_and_login_another">Create new e-mail address on \"%1$s\" and log in there?\n\nYour existing account will not be deleted. Use the \"Switch Account\" item to switch between your accounts.</string>
|
||||
<string name="qraccount_success_enter_name">Login successful—your e-mail address is %1$s\n\nIf you like, you can now enter a name and an profile image that will be displayed to people you write to.</string>
|
||||
<string name="qraccount_qr_code_cannot_be_used">The scanned QR code cannot be used to set up a new account.</string>
|
||||
<string name="qraccount_use_on_new_install">The scanned QR code is for setting up a new account. You can scan the QR code when setting up a new Delta Chat installation.</string>
|
||||
|
||||
Executable
+159
@@ -0,0 +1,159 @@
|
||||
#!/bin/sh
|
||||
|
||||
# If you want to speed up compilation, you can run this script with your
|
||||
# architecture as an argument:
|
||||
#
|
||||
# scripts/ndk-make.sh arm64-v8a
|
||||
#
|
||||
# Possible values are armeabi-v7a, arm64-v8a, x86 and x86_64.
|
||||
# You should be able to find out your architecture by running:
|
||||
#
|
||||
# adb shell uname -m
|
||||
#
|
||||
# Or you just guess your phone's architecture to be arm64-v8a and if you
|
||||
# guessed wrongly, a warning message will pop up inside the app, telling
|
||||
# you what the correct one is.
|
||||
#
|
||||
# The values in the following lines mean the same:
|
||||
#
|
||||
# armeabi-v7a, armv7 and arm
|
||||
# arm64-v8a, aarch64 and arm64
|
||||
# x86 and i686
|
||||
# (there are no synonyms for x86_64)
|
||||
#
|
||||
#
|
||||
# If you put this in your .bashrc, then you can directly build and
|
||||
# deploy DeltaChat from the jni/deltachat-core-rust directory by
|
||||
# typing `nmake`:
|
||||
#
|
||||
# nmake() {(cd ../..; scripts/ndk-make.sh arm64-v8a && ./gradlew installFatDebug; notify-send "install finished")}
|
||||
#
|
||||
#
|
||||
# If anything doesn't work, please open an issue!!
|
||||
|
||||
set -e
|
||||
echo "starting time: `date`"
|
||||
|
||||
: "${ANDROID_NDK_ROOT:=$ANDROID_NDK_HOME}"
|
||||
: "${ANDROID_NDK_ROOT:=$ANDROID_NDK}"
|
||||
if test -z "$ANDROID_NDK_ROOT"; then
|
||||
echo "ANDROID_NDK_ROOT is not set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo Setting CARGO_TARGET environment variables.
|
||||
|
||||
if test -z "$NDK_HOST_TAG"; then
|
||||
KERNEL="$(uname -s | tr '[:upper:]' '[:lower:]')"
|
||||
ARCH="$(uname -m)"
|
||||
NDK_HOST_TAG="$KERNEL-$ARCH"
|
||||
fi
|
||||
|
||||
TOOLCHAIN="$ANDROID_NDK_ROOT/toolchains/llvm/prebuilt/$NDK_HOST_TAG"
|
||||
export CARGO_TARGET_ARMV7_LINUX_ANDROIDEABI_LINKER="$TOOLCHAIN/bin/armv7a-linux-androideabi16-clang"
|
||||
export CARGO_TARGET_AARCH64_LINUX_ANDROID_LINKER="$TOOLCHAIN/bin/aarch64-linux-android21-clang"
|
||||
export CARGO_TARGET_I686_LINUX_ANDROID_LINKER="$TOOLCHAIN/bin/i686-linux-android16-clang"
|
||||
export CARGO_TARGET_X86_64_LINUX_ANDROID_LINKER="$TOOLCHAIN/bin/x86_64-linux-android21-clang"
|
||||
|
||||
# Check if the argument is a correct architecture:
|
||||
if test $1 && echo "armeabi-v7a arm64-v8a x86 x86_64" | grep -vwq $1; then
|
||||
echo "Architecture '$1' not known, possible values are armeabi-v7a, arm64-v8a, x86 and x86_64."
|
||||
exit
|
||||
fi
|
||||
|
||||
cd jni
|
||||
jnidir=$PWD
|
||||
rm -f armeabi-v7a/*
|
||||
rm -f arm64-v8a/*
|
||||
rm -f x86/*
|
||||
rm -f x86_64/*
|
||||
mkdir -p armeabi-v7a
|
||||
mkdir -p arm64-v8a
|
||||
mkdir -p x86
|
||||
mkdir -p x86_64
|
||||
|
||||
cd deltachat-core-rust
|
||||
|
||||
# fix build on MacOS Catalina
|
||||
unset CPATH
|
||||
|
||||
if test -z $1; then
|
||||
echo Full build
|
||||
|
||||
# According to 1.45.0 changelog in https://github.com/rust-lang/rust/blob/master/RELEASES.md,
|
||||
# "The recommended way to control LTO is with Cargo profiles, either in Cargo.toml or .cargo/config, or by setting CARGO_PROFILE_<name>_LTO in the environment."
|
||||
export CARGO_PROFILE_RELEASE_LTO=on
|
||||
RELEASE="release"
|
||||
RELEASEFLAG="--release"
|
||||
else
|
||||
echo Fast, partial, slow debug build. DO NOT UPLOAD THE APK ANYWHERE.
|
||||
|
||||
RELEASE="debug"
|
||||
RELEASEFLAG=
|
||||
fi
|
||||
|
||||
# Work around the bug in the build of Rust standard library.
|
||||
# It is built against r22b NDK toolchains and still requires -lgcc instead of -lunwind used in newer r23 NDK.
|
||||
# See discussion at <https://github.com/rust-lang/rust/pull/85806>
|
||||
TMPLIB="$(mktemp -d)"
|
||||
if test -z "$(find "$ANDROID_NDK_ROOT" -name libgcc.a -print -quit)"; then
|
||||
# NDK is does not contain libgcc.a, add a linker script to fake it.
|
||||
echo 'INPUT(-lunwind)' >"$TMPLIB/libgcc.a"
|
||||
fi
|
||||
|
||||
if test -z $1 || test $1 = armeabi-v7a; then
|
||||
echo "-- cross compiling to armv7-linux-androideabi (arm) --"
|
||||
export CFLAGS=-D__ANDROID_API__=16
|
||||
TARGET_CC=armv7a-linux-androideabi16-clang \
|
||||
TARGET_AR=llvm-ar \
|
||||
cargo +`cat rust-toolchain` rustc $RELEASEFLAG --target armv7-linux-androideabi -p deltachat_ffi -- -L "$TMPLIB"
|
||||
cp target/armv7-linux-androideabi/$RELEASE/libdeltachat.a $jnidir/armeabi-v7a
|
||||
fi
|
||||
|
||||
if test -z $1 || test $1 = arm64-v8a; then
|
||||
echo "-- cross compiling to aarch64-linux-android (arm64) --"
|
||||
export CFLAGS=-D__ANDROID_API__=21
|
||||
TARGET_CC=aarch64-linux-android21-clang \
|
||||
TARGET_AR=llvm-ar \
|
||||
cargo +`cat rust-toolchain` rustc $RELEASEFLAG --target aarch64-linux-android -p deltachat_ffi -- -L "$TMPLIB"
|
||||
cp target/aarch64-linux-android/$RELEASE/libdeltachat.a $jnidir/arm64-v8a
|
||||
fi
|
||||
|
||||
if test -z $1 || test $1 = x86; then
|
||||
echo "-- cross compiling to i686-linux-android (x86) --"
|
||||
export CFLAGS=-D__ANDROID_API__=16
|
||||
TARGET_CC=i686-linux-android16-clang \
|
||||
TARGET_AR=llvm-ar \
|
||||
cargo +`cat rust-toolchain` rustc $RELEASEFLAG --target i686-linux-android -p deltachat_ffi -- -L "$TMPLIB"
|
||||
cp target/i686-linux-android/$RELEASE/libdeltachat.a $jnidir/x86
|
||||
fi
|
||||
|
||||
if test -z $1 || test $1 = x86_64; then
|
||||
echo "-- cross compiling to x86_64-linux-android (x86_64) --"
|
||||
export CFLAGS=-D__ANDROID_API__=21
|
||||
TARGET_CC=x86_64-linux-android21-clang \
|
||||
TARGET_AR=llvm-ar \
|
||||
cargo +`cat rust-toolchain` rustc $RELEASEFLAG --target x86_64-linux-android -p deltachat_ffi -- -L "$TMPLIB"
|
||||
cp target/x86_64-linux-android/$RELEASE/libdeltachat.a $jnidir/x86_64
|
||||
fi
|
||||
|
||||
rm -fr "$TMPLIB"
|
||||
|
||||
echo -- ndk-build --
|
||||
|
||||
cd ../..
|
||||
|
||||
if test $1; then
|
||||
"$ANDROID_NDK_ROOT/ndk-build" APP_ABI="$1"
|
||||
else
|
||||
# We are compiling for all architectures defined in Application.mk
|
||||
"$ANDROID_NDK_ROOT/ndk-build"
|
||||
fi
|
||||
|
||||
if test $1; then
|
||||
echo "NDK_ARCH=$1" >ndkArch
|
||||
else
|
||||
rm -f ndkArch # Remove ndkArch, ignore if it doesn't exist
|
||||
fi
|
||||
|
||||
echo "ending time: `date`"
|
||||
@@ -31,6 +31,7 @@ public class DcChat {
|
||||
public native int getType ();
|
||||
public native int getVisibility ();
|
||||
public native String getName ();
|
||||
public native String getMailinglistAddr();
|
||||
public native String getProfileImage ();
|
||||
public native int getColor ();
|
||||
public native boolean isUnpromoted ();
|
||||
|
||||
@@ -52,6 +52,10 @@ public class DcMsg {
|
||||
this.msgCPtr = msgCPtr;
|
||||
}
|
||||
|
||||
public boolean isOk() {
|
||||
return msgCPtr != 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void finalize() throws Throwable {
|
||||
super.finalize();
|
||||
|
||||
@@ -320,6 +320,7 @@ public class ConversationFragment extends MessageSelectorFragment
|
||||
menu.findItem(R.id.menu_context_share).setVisible(false);
|
||||
menu.findItem(R.id.menu_context_reply).setVisible(false);
|
||||
menu.findItem(R.id.menu_context_reply_privately).setVisible(false);
|
||||
menu.findItem(R.id.menu_add_to_home_screen).setVisible(false);
|
||||
} else {
|
||||
DcMsg messageRecord = messageRecords.iterator().next();
|
||||
DcChat chat = getListAdapter().getChat();
|
||||
@@ -329,17 +330,26 @@ public class ConversationFragment extends MessageSelectorFragment
|
||||
menu.findItem(R.id.menu_context_reply).setVisible(chat.canSend() && canReply);
|
||||
boolean showReplyPrivately = chat.isMultiUser() && !messageRecord.isOutgoing() && canReply;
|
||||
menu.findItem(R.id.menu_context_reply_privately).setVisible(showReplyPrivately);
|
||||
menu.findItem(R.id.menu_add_to_home_screen).setVisible(messageRecord.getType() == DcMsg.DC_MSG_WEBXDC);
|
||||
}
|
||||
|
||||
// if one of the selected items cannot be saved, disable saving.
|
||||
boolean canSave = true;
|
||||
// if one of the selected items is not from self, disable resending.
|
||||
boolean canResend = true;
|
||||
for (DcMsg messageRecord : messageRecords) {
|
||||
if (!messageRecord.hasFile()) {
|
||||
if (canSave && !messageRecord.hasFile()) {
|
||||
canSave = false;
|
||||
}
|
||||
if (canResend && !messageRecord.isOutgoing()) {
|
||||
canResend = false;
|
||||
}
|
||||
if (!canSave && !canResend) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
menu.findItem(R.id.menu_context_save_attachment).setVisible(canSave);
|
||||
menu.findItem(R.id.menu_resend).setVisible(canResend);
|
||||
}
|
||||
|
||||
static boolean canReplyToMsg(DcMsg dcMsg) {
|
||||
@@ -918,6 +928,10 @@ public class ConversationFragment extends MessageSelectorFragment
|
||||
handleForwardMessage(getListAdapter().getSelectedItems());
|
||||
actionMode.finish();
|
||||
return true;
|
||||
case R.id.menu_add_to_home_screen:
|
||||
WebxdcActivity.addToHomeScreen(getActivity(), getSelectedMessageRecord(getListAdapter().getSelectedItems()).getId());
|
||||
actionMode.finish();
|
||||
return true;
|
||||
case R.id.menu_context_save_attachment:
|
||||
handleSaveAttachment(getListAdapter().getSelectedItems());
|
||||
return true;
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.thoughtcrime.securesms;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
@@ -57,17 +58,17 @@ public class ConversationTitleView extends RelativeLayout {
|
||||
}
|
||||
|
||||
public void setTitle(@NonNull GlideRequests glideRequests, @NonNull DcChat dcChat) {
|
||||
setTitle(glideRequests, dcChat, true);
|
||||
setTitle(glideRequests, dcChat, false);
|
||||
}
|
||||
|
||||
public void setTitle(@NonNull GlideRequests glideRequests, @NonNull DcChat dcChat, boolean showAddInfo) {
|
||||
public void setTitle(@NonNull GlideRequests glideRequests, @NonNull DcChat dcChat, boolean profileView) {
|
||||
final int chatId = dcChat.getId();
|
||||
final Context context = getContext();
|
||||
final DcContext dcContext = DcHelper.getContext(context);
|
||||
|
||||
// set title and subtitle texts
|
||||
title.setText(dcChat.getName());
|
||||
String subtitleStr = "ErrSubtitle";
|
||||
String subtitleStr = null;
|
||||
|
||||
// set icons etc.
|
||||
int imgLeft = 0;
|
||||
@@ -82,11 +83,19 @@ public class ConversationTitleView extends RelativeLayout {
|
||||
|
||||
int[] chatContacts = dcContext.getChatContacts(chatId);
|
||||
if (dcChat.isMailingList()) {
|
||||
subtitleStr = context.getString(R.string.mailing_list);
|
||||
if (profileView) {
|
||||
subtitleStr = dcChat.getMailinglistAddr();
|
||||
} else {
|
||||
subtitleStr = context.getString(R.string.mailing_list);
|
||||
}
|
||||
} else if (dcChat.isBroadcast()) {
|
||||
subtitleStr = context.getResources().getQuantityString(R.plurals.n_recipients, chatContacts.length, chatContacts.length);
|
||||
if (!profileView) {
|
||||
subtitleStr = context.getResources().getQuantityString(R.plurals.n_recipients, chatContacts.length, chatContacts.length);
|
||||
}
|
||||
} else if( dcChat.isMultiUser() ) {
|
||||
subtitleStr = context.getResources().getQuantityString(R.plurals.n_members, chatContacts.length, chatContacts.length);
|
||||
if (!profileView) {
|
||||
subtitleStr = context.getResources().getQuantityString(R.plurals.n_members, chatContacts.length, chatContacts.length);
|
||||
}
|
||||
} else if( chatContacts.length>=1 ) {
|
||||
if( dcChat.isSelfTalk() ) {
|
||||
subtitleStr = context.getString(R.string.chat_self_talk_subtitle);
|
||||
@@ -107,10 +116,14 @@ public class ConversationTitleView extends RelativeLayout {
|
||||
|
||||
avatar.setAvatar(glideRequests, new Recipient(getContext(), dcChat), false);
|
||||
title.setCompoundDrawablesWithIntrinsicBounds(imgLeft, 0, imgRight, 0);
|
||||
subtitle.setVisibility(showAddInfo? View.VISIBLE : View.GONE);
|
||||
|
||||
if (!TextUtils.isEmpty(subtitleStr)) {
|
||||
subtitle.setText(subtitleStr);
|
||||
subtitle.setVisibility(View.VISIBLE);
|
||||
} else {
|
||||
subtitle.setVisibility(View.GONE);
|
||||
}
|
||||
boolean isEphemeral = dcContext.getChatEphemeralTimer(chatId) != 0;
|
||||
ephemeralIcon.setVisibility((showAddInfo && isEphemeral)? View.VISIBLE : View.GONE);
|
||||
ephemeralIcon.setVisibility(isEphemeral? View.VISIBLE : View.GONE);
|
||||
}
|
||||
|
||||
public void setTitle(@NonNull GlideRequests glideRequests, @NonNull DcContact contact) {
|
||||
|
||||
@@ -259,7 +259,7 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity
|
||||
}
|
||||
else if (chatId > 0) {
|
||||
DcChat dcChat = dcContext.getChat(chatId);
|
||||
titleView.setTitle(GlideApp.with(this), dcChat, isContactProfile());
|
||||
titleView.setTitle(GlideApp.with(this), dcChat, true);
|
||||
}
|
||||
else if (isContactProfile()){
|
||||
titleView.setTitle(GlideApp.with(this), dcContext.getContact(contactId));
|
||||
@@ -362,7 +362,7 @@ public class ProfileActivity extends PassphraseRequiredActionBarActivity
|
||||
return getString(R.string.tab_gallery);
|
||||
|
||||
case TAB_DOCS:
|
||||
return getString(R.string.tab_docs);
|
||||
return getString(R.string.files);
|
||||
|
||||
case TAB_LINKS:
|
||||
return getString(R.string.tab_links);
|
||||
|
||||
@@ -182,6 +182,9 @@ public class ProfileDocumentsFragment
|
||||
menu.findItem(R.id.details).setVisible(singleSelection);
|
||||
menu.findItem(R.id.show_in_chat).setVisible(singleSelection);
|
||||
menu.findItem(R.id.share).setVisible(singleSelection);
|
||||
|
||||
boolean webxdcApp = singleSelection && messageRecords.iterator().next().getType() == DcMsg.DC_MSG_WEBXDC;
|
||||
menu.findItem(R.id.menu_add_to_home_screen).setVisible(webxdcApp);
|
||||
}
|
||||
|
||||
private ProfileDocumentsAdapter getListAdapter() {
|
||||
@@ -225,6 +228,10 @@ public class ProfileDocumentsFragment
|
||||
case R.id.share:
|
||||
handleShare(getSelectedMessageRecord(getListAdapter().getSelectedMedia()));
|
||||
return true;
|
||||
case R.id.menu_add_to_home_screen:
|
||||
WebxdcActivity.addToHomeScreen(getActivity(), getSelectedMessageRecord(getListAdapter().getSelectedMedia()).getId());
|
||||
mode.finish();
|
||||
return true;
|
||||
case R.id.show_in_chat:
|
||||
handleShowInChat(getSelectedMessageRecord(getListAdapter().getSelectedMedia()));
|
||||
return true;
|
||||
|
||||
@@ -61,6 +61,7 @@ import org.thoughtcrime.securesms.util.task.ProgressDialogAsyncTask;
|
||||
import org.thoughtcrime.securesms.util.views.ProgressDialog;
|
||||
|
||||
import java.lang.ref.WeakReference;
|
||||
import java.util.Locale;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class RegistrationActivity extends BaseActionBarActivity implements DcEventCenter.DcEventDelegate {
|
||||
@@ -233,23 +234,19 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
|
||||
int id = item.getItemId();
|
||||
|
||||
if (id == R.id.do_register) {
|
||||
// "log in" button clicked - even if oauth2DeclinedByUser is true,
|
||||
// we will ask for oauth2 to allow reverting the decision.
|
||||
checkOauth2start().addListener(new ListenableFuture.Listener<Boolean>() {
|
||||
@Override
|
||||
public void onSuccess(Boolean oauth2started) {
|
||||
if(!oauth2started) {
|
||||
updateProviderInfo();
|
||||
onLogin();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(ExecutionException e) {
|
||||
updateProviderInfo();
|
||||
onLogin();
|
||||
}
|
||||
});
|
||||
String oldAddr = DcHelper.getSelfAddr(this);
|
||||
String newAddr = emailInput.getText().toString();
|
||||
if (!TextUtils.isEmpty(oldAddr)
|
||||
&& !TextUtils.equals(oldAddr.toLowerCase(Locale.ROOT), newAddr.toLowerCase(Locale.ROOT))) {
|
||||
// Tell the user about AEAP if they are about to change their address
|
||||
new AlertDialog.Builder(this)
|
||||
.setMessage(getString(R.string.aeap_explanation, oldAddr, newAddr))
|
||||
.setNegativeButton(R.string.cancel, (d, w) -> {})
|
||||
.setPositiveButton(R.string.perm_continue, (d, w) -> do_register())
|
||||
.show();
|
||||
} else {
|
||||
do_register();
|
||||
}
|
||||
return true;
|
||||
} else if (id == android.R.id.home) {
|
||||
// handle close button click here
|
||||
@@ -259,6 +256,26 @@ public class RegistrationActivity extends BaseActionBarActivity implements DcEve
|
||||
return super.onOptionsItemSelected(item);
|
||||
}
|
||||
|
||||
private void do_register() {
|
||||
// "log in" button clicked - even if oauth2DeclinedByUser is true,
|
||||
// we will ask for oauth2 to allow reverting the decision.
|
||||
checkOauth2start().addListener(new ListenableFuture.Listener<Boolean>() {
|
||||
@Override
|
||||
public void onSuccess(Boolean oauth2started) {
|
||||
if(!oauth2started) {
|
||||
updateProviderInfo();
|
||||
onLogin();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(ExecutionException e) {
|
||||
updateProviderInfo();
|
||||
onLogin();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onDestroy() {
|
||||
super.onDestroy();
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
package org.thoughtcrime.securesms;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Bitmap;
|
||||
import android.graphics.drawable.BitmapDrawable;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.os.Bundle;
|
||||
@@ -17,6 +21,10 @@ import android.webkit.WebView;
|
||||
import android.widget.Toast;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.core.app.TaskStackBuilder;
|
||||
import androidx.core.content.pm.ShortcutInfoCompat;
|
||||
import androidx.core.content.pm.ShortcutManagerCompat;
|
||||
import androidx.core.graphics.drawable.IconCompat;
|
||||
|
||||
import com.b44t.messenger.DcChat;
|
||||
import com.b44t.messenger.DcContext;
|
||||
@@ -41,20 +49,43 @@ public class WebxdcActivity extends WebViewActivity implements DcEventCenter.DcE
|
||||
private String baseURL;
|
||||
private String sourceCodeUrl = "";
|
||||
|
||||
|
||||
|
||||
public static void openWebxdcActivity(Context context, DcMsg instance) {
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
|
||||
if (Prefs.isDeveloperModeEnabled(context)) {
|
||||
WebView.setWebContentsDebuggingEnabled(true);
|
||||
}
|
||||
|
||||
Intent intent =new Intent(context, WebxdcActivity.class);
|
||||
intent.putExtra("appMessageId", instance.getId());
|
||||
context.startActivity(intent);
|
||||
context.startActivity(getWebxdcIntent(context, instance.getId()));
|
||||
} else {
|
||||
Toast.makeText(context, "At least Android 5.0 (Lollipop) required for Webxdc.", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
private static Intent getWebxdcIntent(Context context, int msgId) {
|
||||
DcContext dcContext = DcHelper.getContext(context);
|
||||
Intent intent = new Intent(context, WebxdcActivity.class);
|
||||
intent.setAction(Intent.ACTION_VIEW);
|
||||
intent.putExtra("accountId", dcContext.getAccountId());
|
||||
intent.putExtra("appMessageId", msgId);
|
||||
return intent;
|
||||
}
|
||||
|
||||
private static Intent[] getWebxdcIntentWithParentStack(Context context, int msgId) {
|
||||
DcContext dcContext = DcHelper.getContext(context);
|
||||
|
||||
final Intent chatIntent = new Intent(context, ConversationActivity.class)
|
||||
.putExtra(ConversationActivity.CHAT_ID_EXTRA, dcContext.getMsg(msgId).getChatId())
|
||||
.setAction(Intent.ACTION_VIEW);
|
||||
|
||||
final Intent webxdcIntent = getWebxdcIntent(context, msgId);
|
||||
|
||||
return TaskStackBuilder.create(context)
|
||||
.addNextIntentWithParentStack(chatIntent)
|
||||
.addNextIntent(webxdcIntent)
|
||||
.getIntents();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle state, boolean ready) {
|
||||
super.onCreate(state, ready);
|
||||
@@ -65,7 +96,19 @@ public class WebxdcActivity extends WebViewActivity implements DcEventCenter.DcE
|
||||
int appMessageId = b.getInt("appMessageId");
|
||||
|
||||
this.dcContext = DcHelper.getContext(getApplicationContext());
|
||||
if (dcContext.getAccountId() != b.getInt("accountId")) {
|
||||
Toast.makeText(this, "Switch to belonging account first.", Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
this.dcAppMsg = this.dcContext.getMsg(appMessageId);
|
||||
if (!this.dcAppMsg.isOk()) {
|
||||
Toast.makeText(this, "Webxdc does no longer exist.", Toast.LENGTH_LONG).show();
|
||||
finish();
|
||||
return;
|
||||
}
|
||||
|
||||
// `msg_id` in the subdomain makes sure, different apps using same files do not share the same cache entry
|
||||
// (WebView may use a global cache shared across objects).
|
||||
// (a random-id would also work, but would need maintenance and does not add benefits as we regard the file-part interceptRequest() only,
|
||||
@@ -107,6 +150,9 @@ public class WebxdcActivity extends WebViewActivity implements DcEventCenter.DcE
|
||||
public boolean onOptionsItemSelected(MenuItem item) {
|
||||
super.onOptionsItemSelected(item);
|
||||
switch (item.getItemId()) {
|
||||
case R.id.menu_add_to_home_screen:
|
||||
addToHomeScreen(this, dcAppMsg.getId());
|
||||
return true;
|
||||
case R.id.source_code:
|
||||
openUrlInBrowser(this, sourceCodeUrl);
|
||||
return true;
|
||||
@@ -192,6 +238,36 @@ public class WebxdcActivity extends WebViewActivity implements DcEventCenter.DcE
|
||||
});
|
||||
}
|
||||
|
||||
public static void addToHomeScreen(Activity activity, int msgId) {
|
||||
Context context = activity.getApplicationContext();
|
||||
try {
|
||||
DcContext dcContext = DcHelper.getContext(context);
|
||||
DcMsg msg = dcContext.getMsg(msgId);
|
||||
final JSONObject info = msg.getWebxdcInfo();
|
||||
|
||||
final String docName = JsonUtils.optString(info, "document");
|
||||
final String xdcName = JsonUtils.optString(info, "name");
|
||||
byte[] blob = msg.getWebxdcBlob(JsonUtils.optString(info, "icon"));
|
||||
ByteArrayInputStream is = new ByteArrayInputStream(blob);
|
||||
BitmapDrawable drawable = (BitmapDrawable) Drawable.createFromStream(is, "icon");
|
||||
Bitmap bitmap = drawable.getBitmap();
|
||||
|
||||
ShortcutInfoCompat shortcutInfoCompat = new ShortcutInfoCompat.Builder(context, "xdc-" + dcContext.getAccountId() + "-" + msgId)
|
||||
.setShortLabel(docName.isEmpty() ? xdcName : docName)
|
||||
.setIcon(IconCompat.createWithAdaptiveBitmap(bitmap))
|
||||
.setIntents(getWebxdcIntentWithParentStack(context, msgId))
|
||||
.build();
|
||||
|
||||
if (ShortcutManagerCompat.requestPinShortcut(context, shortcutInfoCompat, null)) {
|
||||
Toast.makeText(context, R.string.done, Toast.LENGTH_SHORT).show();
|
||||
} else {
|
||||
Toast.makeText(context, "ErrAddToHomescreen: requestPinShortcut() failed", Toast.LENGTH_LONG).show();
|
||||
}
|
||||
} catch(Exception e) {
|
||||
Toast.makeText(context, "ErrAddToHomescreen: " + e, Toast.LENGTH_LONG).show();
|
||||
}
|
||||
}
|
||||
|
||||
class InternalJSApi {
|
||||
@JavascriptInterface
|
||||
public String selfAddr() {
|
||||
|
||||
@@ -39,6 +39,7 @@ public class DcHelper {
|
||||
private static final String TAG = DcHelper.class.getSimpleName();
|
||||
|
||||
public static final String CONFIG_ADDRESS = "addr";
|
||||
public static final String CONFIG_CONFIGURED_ADDRESS = "configured_addr";
|
||||
public static final String CONFIG_MAIL_SERVER = "mail_server";
|
||||
public static final String CONFIG_MAIL_USER = "mail_user";
|
||||
public static final String CONFIG_MAIL_PASSWORD = "mail_pw";
|
||||
@@ -97,6 +98,10 @@ public class DcHelper {
|
||||
return dcContext.isConfigured() == 1;
|
||||
}
|
||||
|
||||
public static String getSelfAddr(Context context) {
|
||||
DcContext dcContext = getContext(context);
|
||||
return dcContext.getConfig(CONFIG_CONFIGURED_ADDRESS);
|
||||
}
|
||||
|
||||
public static int getInt(Context context, String key) {
|
||||
DcContext dcContext = getContext(context);
|
||||
@@ -207,6 +212,8 @@ public class DcHelper {
|
||||
// cmp. https://github.com/deltachat/deltachat-android/issues/2187
|
||||
dcContext.setStockTranslation(120, context.getString(R.string.qrshow_join_group_hint).replace("\"", ""));
|
||||
dcContext.setStockTranslation(121, context.getString(R.string.connectivity_not_connected));
|
||||
dcContext.setStockTranslation(122, context.getString(R.string.aeap_addr_changed));
|
||||
dcContext.setStockTranslation(123, context.getString(R.string.aeap_explanation));
|
||||
}
|
||||
|
||||
public static File getImexDir() {
|
||||
|
||||
@@ -45,7 +45,11 @@ public abstract class ProgressDialogAsyncTask<Params, Progress, Result> extends
|
||||
|
||||
@Override
|
||||
protected void onPostExecute(Result result) {
|
||||
if (progress != null) progress.dismiss();
|
||||
try {
|
||||
if (progress != null) progress.dismiss();
|
||||
} catch(Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
protected Context getContext() {
|
||||
|
||||
@@ -24,8 +24,9 @@ public class ConversationAdaptiveActionsToolbar extends Toolbar {
|
||||
private static final int OVERFLOW_VIEW_WIDTH_DP = 36;
|
||||
|
||||
private static final int ID_NEVER_SHOW_AS_ACTION_1 = R.id.menu_context_reply_privately;
|
||||
private static final int ID_NEVER_SHOW_AS_ACTION_2 = R.id.menu_context_save_attachment;
|
||||
private static final int ID_NEVER_SHOW_AS_ACTION_3 = R.id.menu_resend;
|
||||
private static final int ID_NEVER_SHOW_AS_ACTION_2 = R.id.menu_add_to_home_screen;
|
||||
private static final int ID_NEVER_SHOW_AS_ACTION_3 = R.id.menu_context_save_attachment;
|
||||
private static final int ID_NEVER_SHOW_AS_ACTION_4 = R.id.menu_resend;
|
||||
private static final int ID_ALWAYS_SHOW_AS_ACTION = R.id.menu_context_forward;
|
||||
|
||||
private int maxShown;
|
||||
@@ -81,7 +82,8 @@ public class ConversationAdaptiveActionsToolbar extends Toolbar {
|
||||
|
||||
boolean neverShowAsAction = item.getItemId() == ID_NEVER_SHOW_AS_ACTION_1
|
||||
|| item.getItemId() == ID_NEVER_SHOW_AS_ACTION_2
|
||||
|| item.getItemId() == ID_NEVER_SHOW_AS_ACTION_3;
|
||||
|| item.getItemId() == ID_NEVER_SHOW_AS_ACTION_3
|
||||
|| item.getItemId() == ID_NEVER_SHOW_AS_ACTION_4;
|
||||
boolean alwaysShowAsAction = item.getItemId() == ID_ALWAYS_SHOW_AS_ACTION;
|
||||
|
||||
if (alwaysShowAsAction) continue;
|
||||
|
||||
Reference in New Issue
Block a user