Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
Loading items

Target

Select target project
  • cordeliaze/cesium
  • pfouque06/cesium
  • wellno1/cesium
  • 1000i100/cesium
  • vincentux/cesium
  • calbasi/cesium
  • thomasbromehead/cesium
  • matograine/cesium
  • clients/cesium-grp/cesium
  • cedricmenec/cesium
  • Pamplemousse/cesium
  • etienneleba/cesium
  • tnntwister/cesium
  • scanlegentil/cesium
  • morvanc/cesium
  • yyy/cesium
  • Axce/cesium
  • Bertrandbenj/cesium
  • Lupus/cesium
  • elmau/cesium
  • MartinDelille/cesium
  • tykayn/cesium
  • numeropi/cesium
  • Vivakvo/cesium
  • pokapow/cesium
  • pini-gh/cesium
  • anam/cesium
  • RavanH/cesium
  • bpresles/cesium
  • am97/cesium
  • tuxmain/cesium
  • jytou/cesium
  • oliviermaurice/cesium
  • 666titi999/cesium
  • Yvv/cesium
35 results
Select Git revision
Loading items
Show changes
Showing
with 3243 additions and 457 deletions
......@@ -13,24 +13,51 @@ KEY_ALIAS=Cesium
KEY_PWD=
# Preparing Android environment
source ${PROJECT_DIR}/scripts/env-android.sh
cd ${PROJECT_DIR}
source scripts/env-android.sh
[[ $? -ne 0 ]] && exit 1
APK_UNSIGNED_FILE=${ANDROID_OUTPUT_APK_RELEASE}/app-release-unsigned.apk
APK_SIGNED_FILE=${ANDROID_OUTPUT_APK_RELEASE}/${ANDROID_OUTPUT_APK_PREFIX}-release-signed.apk
APK_UNSIGNED_FILE=${ANDROID_OUTPUT_APK_RELEASE}/${ANDROID_OUTPUT_APK_PREFIX}-release-unsigned.apk
cd ${PROJECT_DIR}
echo "--- Cleaning previous Android APK ..."
rm -f ${ANDROID_OUTPUT_APK_RELEASE}/*.apk*
echo "--- Cleaning previous Android APK [OK]"
echo ""
# Run the build
echo "Running cordova build..."
ionic cordova build android --warning-mode=none --color --prod --release
echo "--- Building Android APK..."
echo ""
yarn run build:android
[[ $? -ne 0 ]] && exit 1
echo "--- Building Android APK [OK]"
echo ""
if [[ ! -f "${APK_UNSIGNED_FILE}" ]]; then
echo "APK file not found at: ${APK_UNSIGNED_FILE}"
# Sign APK file
cd ${PROJECT_DIR}/scripts
./release-android-sign.sh
# Check signed APK exists
if [[ ! -f "${APK_SIGNED_FILE}" ]]; then
echo "Missing signed APK file at: ${APK_SIGNED_FILE}"
exit 1
fi
# Sign APK file
. ./script/release-android-sign.sh
[[ $? -ne 0 ]] && exit 1
# Get current version
cd ${PROJECT_DIR}
current=$(grep -m 1 -oP "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" package.json | grep -m 1 -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
if [[ "_$current" == "_" ]]; then
echo "Unable to read the current version in 'package.json'. Please check version format is: x.y.z (x and y should be an integer)."
exit 1;
fi
# Copy signed APK to 'dist/android/build'
echo ""
echo "--- Copying Android APK to '${APK_FINAL_FILE}'..."
APK_BASENAME="${PROJECT_NAME}-v${current}-android.apk"
APK_FINAL_FILE="${DIST_ANDROID}/${APK_BASENAME}"
mkdir -p "${DIST_ANDROID}"
cp -f "${APK_SIGNED_FILE}" "${APK_FINAL_FILE}"
echo "--- Copying Android APK [OK]"
echo ""
......@@ -22,7 +22,7 @@ then
fi
### Get version to release
current=$(grep -P "version\": \"\d+.\d+.\d+(-?\w*)" package.json | grep -m 1 -oP "\d+.\d+.\d+(-?\w*)")
current=$(grep -P "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" package.json | grep -m 1 -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
if [[ "_$current" == "_" ]]; then
echo "Unable to read the current version in 'package.json'. Please check version format is: x.y.z (x and y should be an integer)."
exit 1;
......@@ -57,7 +57,8 @@ if [[ "${DESKTOP_ASSETS}" == "linux" ]]; then
echo "Skipping windows assets, because DESKTOP_ASSETS env was set to 'linux'."
EXPECTED_ASSETS="${PROJECT_NAME}-desktop-v$current-linux-x64.deb
${PROJECT_NAME}-desktop-v$current-linux-x64.tar.gz"
${PROJECT_NAME}-desktop-v$current-linux-x64.tar.gz
${PROJECT_NAME}-desktop-v$current-linux-x64.AppImage"
fi
# Build desktop assets
......
......@@ -9,12 +9,7 @@ fi;
# Preparing Android environment
cd ${PROJECT_DIR}
source ${PROJECT_DIR}/scripts/env-global.sh
XPI_BASENAME=${PROJECT_NAME}-$current-an+fx.xpi
XPI_FILE=${PROJECT_DIR}/dist/web/build/${XPI_BASENAME}
XPI_FINAL_BASENAME=${PROJECT_NAME}-v$current-extension-firefox.xpi
XPI_FINAL_FILE=${PROJECT_DIR}/dist/web/build/${XPI_FINAL_BASENAME}
source scripts/env-global.sh
### Control that the script is run on `dev` branch
branch=$(git rev-parse --abbrev-ref HEAD)
......@@ -25,16 +20,21 @@ then
fi
### Get version to release
current=$(grep -P "version\": \"\d+.\d+.\d+(\w*)" package.json | grep -m 1 -oP "\d+.\d+.\d+(\w*)")
current=$(grep -m 1 -oP "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" package.json | grep -m 1 -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
if [[ "_$current" == "_" ]]; then
echo "Unable to read the current version in 'package.json'. Please check version format is: x.y.z (x and y should be an integer)."
exit 1;
fi
echo "Sending v$current extension for Mozilla..."
XPI_BASENAME=${PROJECT_NAME}-$current-an+fx.xpi
XPI_FILE=${PROJECT_DIR}/dist/web/build/${XPI_BASENAME}
XPI_FINAL_BASENAME=${PROJECT_NAME}-v$current-extension-firefox.xpi
XPI_FINAL_FILE=${PROJECT_DIR}/dist/web/build/${XPI_FINAL_BASENAME}
### Check AMO account
if [[ "_" == "_${AMO_JWT_ISSUER}" || "_" == "_${AMO_JWT_SECRET}" ]]; then
echo "ERROR: Unable to find Addons Modzilla account: "
echo "ERROR: Unable to find Addons Mozilla account: "
echo " - Please add environment variables 'AMO_JWT_ISSUER' or 'AMO_JWT_SECRET', then retry."
echo " - You can use the file './local/env.sh'."
exit 1
......@@ -43,6 +43,7 @@ fi
### Sign extension
case "$1" in
pre)
echo "web-ext sign \"--api-key=${AMO_JWT_ISSUER}\" \"--api-secret=${AMO_JWT_SECRET}\" \"--source-dir=${PROJECT_DIR}/dist/web/ext\" \"--artifacts-dir=${PROJECT_DIR}/dist/web/build\" --id=${WEB_EXT_ID} --channel=unlisted"
web-ext sign "--api-key=${AMO_JWT_ISSUER}" "--api-secret=${AMO_JWT_SECRET}" "--source-dir=${PROJECT_DIR}/dist/web/ext" "--artifacts-dir=${PROJECT_DIR}/dist/web/build" --id=${WEB_EXT_ID} --channel=unlisted
if [[ $? -ne 0 ]]; then
if [[ -f "${XPI_FILE}" || -f "${XPI_FINAL_FILE}" ]]; then
......
......@@ -20,21 +20,25 @@ then
fi
### Get version to release
current=$(grep -P "version\": \"\d+.\d+.\d+(-?\w*)" package.json | grep -m 1 -oP "\d+.\d+.\d+(-?\w*)")
current=$(grep -m1 -P "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" package.json | grep -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
if [[ "_$current" == "_" ]]; then
echo "Unable to read the current version in 'package.json'. Please check version format is: x.y.z (x and y should be an integer)."
exit 1;
echo " - Make sure the file 'package.json' exists and is readable."
echo " - Check version format is: x.y.z (x and y should be an integer)"
exit 1
fi
echo "Sending v$current extension to Github..."
### get auth token
if [[ "_${GITHUB_TOKEN}" == "_" ]]; then
# Get it from user config dir
GITHUB_TOKEN=$(cat ~/.config/${PROJECT_NAME}/.github)
if [[ "_$GITHUB_TOKEN" != "_" ]]; then
GITHUT_AUTH="Authorization: token $GITHUB_TOKEN"
fi
if [[ "_${GITHUB_TOKEN}" != "_" ]]; then
GITHUT_AUTH="Authorization: token ${GITHUB_TOKEN}"
else
echo "ERROR: Unable to find github authentication token file: "
echo " - You can create such a token at https://github.com/settings/tokens > 'Generate a new token'."
echo " - Then copy the token and paste it in the file '~/.config/${PROJECT_NAME}/.github' using a valid token."
echo " - [if CI] Add a pipeline variable named 'GITHUB_TOKEN';"
echo " - [else] Or copy/paste the token into the file '~/.config/${PROJECT_NAME}/.github'."
exit 1
fi
......@@ -44,20 +48,20 @@ case "$1" in
result=$(curl -i "$REPO_API_URL/releases/tags/v$current")
release_url=$(echo "$result" | grep -P "\"url\": \"[^\"]+" | grep -oP "$REPO_API_URL/releases/\d+")
if [[ $release_url != "" ]]; then
echo "Deleting existing release..."
curl -H 'Authorization: token $GITHUB_TOKEN' -XDELETE $release_url
echo "--- Deleting existing release..."
curl -H ''"$GITHUT_AUTH"'' -XDELETE $release_url
fi
exit 0;
;;
pre)
prerelease="true"
echo "Creating new pre-release v$current..."
echo "--- Creating new pre-release v$current..."
;;
rel)
prerelease="false"
echo "Creating new release v$current..."
echo "--- Creating new release v$current..."
;;
*)
echo "No task given, or wrong arguments"
......@@ -79,7 +83,7 @@ fi
result=$(curl -s -H ''"$GITHUT_AUTH"'' "$REPO_API_URL/releases/tags/v$current")
release_url=$(echo "$result" | grep -P "\"url\": \"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+/releases/\d+")
if [[ "_$release_url" != "_" ]]; then
echo "Deleting existing release... $release_url"
echo "--- Deleting existing release... $release_url"
result=$(curl -H ''"$GITHUT_AUTH"'' -s -XDELETE $release_url)
if [[ "_$result" != "_" ]]; then
error_message=$(echo "$result" | grep -P "\"message\": \"[^\"]+" | grep -oP ": \"[^\"]+\"")
......@@ -90,9 +94,14 @@ else
echo "Release not exists yet on github."
fi
### Create the release
result=$(curl -H ''"$GITHUT_AUTH"'' -s $REPO_API_URL/releases -d '{"tag_name": "v'"$current"'","target_commitish": "master","name": "'"$current"'","body": "'"$description"'","draft": false,"prerelease": '"$prerelease"'}')
#echo "DEBUG - $result"
echo "--- Clean previous SHA256 files..."
rm -rf ${PROJECT_DIR}/dist/**/*.sha256
echo ""
echo "--- Creating new release..."
echo " - tag: v$current"
echo " - description: $description"
result=$(curl -X POST -H "Accept: application/vnd.github+json" -H "X-GitHub-Api-Version: 2022-11-28" -H ''"$GITHUT_AUTH"'' -s $REPO_API_URL/releases -d '{"tag_name": "v'"$current"'","target_commitish": "master","name": "'"$current"'","body": "'"$description"'","draft": false,"prerelease": '"$prerelease"'}')
upload_url=$(echo "$result" | grep -P "\"upload_url\": \"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+")
if [[ "_$upload_url" = "_" ]]; then
echo "Failed to create new release for repo $REPO."
......@@ -101,8 +110,8 @@ if [[ "_$upload_url" = "_" ]]; then
exit 1
fi
### Send files
echo "Uploading artifacts to ${upload_url} ..."
### Sending files
echo "--- Uploading files to ${upload_url} ..."
# Upload web file
WEB_BASENAME="${PROJECT_NAME}-v$current-web.zip"
......@@ -111,9 +120,12 @@ if [[ -f "${WEB_FILE}" ]]; then
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/zip' -T "${WEB_FILE}" "${upload_url}?name=${WEB_BASENAME}")
browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+")
WEB_SHA256=$(cd ${DIST_WEB} && sha256sum "${WEB_BASENAME}")
echo " - ${browser_download_url} | Checksum: ${WEB_SHA256}"
echo " - ${browser_download_url} | SHA256 Checksum: ${WEB_SHA256}"
echo "${WEB_SHA256} ${WEB_BASENAME}" > "${WEB_FILE}.sha256"
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: text/plain' -T "${WEB_FILE}.sha256" "${upload_url}?name=${WEB_BASENAME}.sha256")
else
echo " - ERROR: Web artifact (ZIP) not found! Skipping."
echo " - ERROR: Web release (ZIP) not found! Skipping."
missing_file=true
fi
# Upload web extension (ZIP) file
......@@ -124,8 +136,11 @@ if [[ -f "${WEB_EXT_ZIP_FILE}" ]]; then
browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+")
WEB_EXT_ZIP_SHA256=$(cd ${DIST_WEB} && sha256sum "${WEB_EXT_ZIP_BASENAME}")
echo " - ${browser_download_url} | Checksum: ${WEB_EXT_ZIP_SHA256}"
echo "${WEB_EXT_ZIP_SHA256} ${WEB_EXT_ZIP_BASENAME}" > "${WEB_EXT_ZIP_FILE}.sha256"
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: text/plain' -T "${WEB_EXT_ZIP_FILE}.sha256" "${upload_url}?name=${WEB_EXT_ZIP_BASENAME}.sha256")
else
echo " - ERROR: Web extension artifact (ZIP) not found! Skipping."
missing_file=true
fi
# Upload web extension (XPI) file
......@@ -136,8 +151,11 @@ if [[ -f "${WEB_EXT_XPI_FILE}" ]]; then
browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+")
WEB_EXT_XPI_SHA256=$(cd ${DIST_WEB} && sha256sum "${WEB_EXT_XPI_BASENAME}")
echo " - ${browser_download_url} | Checksum: ${WEB_EXT_XPI_SHA256}"
echo "${WEB_EXT_XPI_SHA256} ${WEB_EXT_XPI_BASENAME}" > "${WEB_EXT_XPI_FILE}.sha256"
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: text/plain' -T "${WEB_EXT_XPI_FILE}.sha256" "${upload_url}?name=${WEB_EXT_XPI_BASENAME}.sha256")
else
echo " - ERROR: Web signed extension artifact (XPI) not found! Skipping."
missing_file=true
fi
# Upload Android APK file
......@@ -146,20 +164,24 @@ APK_FILE="${DIST_ANDROID}/${APK_BASENAME}"
if [[ -f "${APK_FILE}" ]]; then
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/vnd.android.package-archive' -T "${APK_FILE}" "${upload_url}?name=${APK_BASENAME}")
browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+")
APK_SHA256=$(cd ${DIST_ANDROID} && sha256sum "${APK_BASENAME}")
echo " - ${browser_download_url} | Checksum: ${APK_SHA256}"
APK_SHA256=$(sha256sum "${APK_FILE}" | sed 's/ /\n/gi' | head -n 1)
echo " - ${browser_download_url} | SHA256 Checksum: ${APK_SHA256}"
echo "${APK_SHA256} ${APK_BASENAME}" > "${APK_FILE}.sha256"
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: text/plain' -T "${APK_FILE}.sha256" "${upload_url}?name=${APK_BASENAME}.sha256")
else
echo "- ERROR: Android artifact (APK) not found! Skipping."
echo "- ERROR: Android release (APK) not found! Skipping."
missing_file=true
fi
# Upload sha256 file (checksum)
SHA_BASENAME=${PROJECT_NAME}-v$current.sha256
SHA_FILE=${PROJECT_DIR}/dist/${SHA_BASENAME}
echo "${WEB_SHA256}" > ${SHA_FILE}
echo "${WEB_EXT_ZIP_SHA256}" >> ${SHA_FILE}
echo "${APK_SHA256}" >> ${SHA_FILE}
echo "${WEB_EXT_XPI_SHA256}" >> ${SHA_FILE}
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: text/plain' -T "${SHA_FILE}" "${upload_url}?name=${SHA_BASENAME}")
### Success message
echo "Successfully uploaded files to: ${REPO_PUBLIC_URL}/releases/tag/v${current}"
echo ""
if [[ ${missing_file} == true ]]; then
echo "-------------------------------------------"
echo "ERROR: missing some artifacts (see logs)"
echo " -> Release url: ${REPO_PUBLIC_URL}/releases/tag/${version}"
exit 1
else
echo "-------------------------------------------"
echo "Successfully uploading files !"
echo " -> Release url: ${REPO_PUBLIC_URL}/releases/tag/${version}"
exit 0
fi
......@@ -9,7 +9,7 @@ fi;
cd ${PROJECT_DIR}
### Control that the script is run on `dev` branch
### Control that the script is run on `master` branch
branch=$(git rev-parse --abbrev-ref HEAD)
if [[ ! "$branch" == "master" ]];
then
......@@ -18,7 +18,7 @@ then
fi
### Get current version (package.json)
current=$(grep -oP "version\": \"\d+.\d+.\d+((a|b)[0-9]+)?" package.json | grep -m 1 -oP "\d+.\d+.\d+((a|b)[0-9]+)?")
current=$(grep -m1 -P "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" package.json | grep -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
if [[ "_$current" == "_" ]]; then
echo "Unable to read the current version in 'package.json'. Please check version format is: x.y.z (x and y should be an integer)."
exit 1;
......@@ -34,7 +34,7 @@ fi
echo "Current Android version: $currentAndroid"
# Check version format
if [[ ! $2 =~ ^[0-9]+.[0-9]+.[0-9]+(-(alpha|beta|rc)[-0-9]*)?$ || ! $3 =~ ^[0-9]+$ ]]; then
if [[ ! $2 =~ ^[0-9]+.[0-9]+.[0-9]+(-[a-z]+[-0-9]*)?$ || ! $3 =~ ^[0-9]+$ ]]; then
echo "Wrong version format"
echo "Usage:"
echo " > ./release.sh [pre|rel] <version> <android-version> <release_description>"
......@@ -53,16 +53,16 @@ case "$1" in
rel|pre)
# Change the version in files: 'package.json' and 'config.xml'
sed -i "s/version\": \"$current\"/version\": \"$2\"/g" package.json
currentConfigXmlVersion=$(grep -oP "version=\"\d+.\d+.\d+((a|b)[0-9]+)?\"" config.xml | grep -oP "\d+.\d+.\d+((a|b)[0-9]+)?")
currentConfigXmlVersion=$(grep -m 1 -oP "version=\"\d+.\d+.\d+(-\w+[-0-9]*)?\"" config.xml | grep -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
sed -i "s/ version=\"$currentConfigXmlVersion\"/ version=\"$2\"/g" config.xml
sed -i "s/ android-versionCode=\"$currentAndroid\"/ android-versionCode=\"$3\"/g" config.xml
# Change version in file: 'www/manifest.json'
currentManifestJsonVersion=$(grep -oP "version\": \"\d+.\d+.\d+((a|b)[0-9]+)?\"" www/manifest.json | grep -oP "\d+.\d+.\d+((a|b)[0-9]+)?")
currentManifestJsonVersion=$(grep -m 1 -oP "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" www/manifest.json | grep -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
sed -i "s/version\": \"$currentManifestJsonVersion\"/version\": \"$2\"/g" www/manifest.json
# Change version in file: 'resources/web-ext/manifest.json'
currentExtManifestJsonVersion=$(grep -oP "version\": \"\d+.\d+.\d+((a|b)[0-9]+)?\"" resources/web-ext/manifest.json | grep -oP "\d+.\d+.\d+((a|b)[0-9]+)?")
currentExtManifestJsonVersion=$(grep -m 1 -oP "version\": \"\d+.\d+.\d+(-\w+[-0-9]*)?\"" resources/web-ext/manifest.json | grep -oP "\d+.\d+.\d+(-\w+[-0-9]*)?")
sed -i "s/version\": \"$currentExtManifestJsonVersion\"/version\": \"$2\"/g" resources/web-ext/manifest.json
# Bump the install.sh
......@@ -84,41 +84,22 @@ echo "----------------------------------"
echo "- Compiling sources..."
echo "----------------------------------"
cd ${PROJECT_DIR} || exit 1
gulp config build --env default_fr || exit 1
echo "Clean previous sha256 files..."
rm -rf ${PROJECT_DIR}/dist/*.sha256
gulp config build --env default || exit 1
echo "----------------------------------"
echo "- Building Android artifact..."
echo "----------------------------------"
mkdir -p ${DIST_ANDROID} || exit 1
rm -rf ${DIST_ANDROID}/*.apk || exit 1
rm -rf ${ANDROID_OUTPUT_APK_RELEASE}/*.apk || exit 1
. scripts/build-android.sh --release
[[ $? -ne 0 ]] && exit 1
APK_RELEASE_FILE="${ANDROID_OUTPUT_APK_RELEASE}/app-release.apk"
APK_RELEASE_UNSIGNED_FILE="${ANDROID_OUTPUT_APK_RELEASE}/app-release-unsigned.apk"
if [[ ! -f "${APK_RELEASE_FILE}" ]]; then
if [[ ! -f "${APK_RELEASE_UNSIGNED_FILE}" ]]; then
echo "ERROR: Missing android artifact at ${APK_RELEASE_FILE}"
exit 1
else
. scripts/release-android-sign.sh
[[ $? -ne 0 ]] && exit 1
fi
fi
mkdir -p ${DIST_ANDROID} || exit 1
cp ${APK_RELEASE_FILE} "${DIST_ANDROID}/${PROJECT_NAME}-v$2-android.apk" || exit 1
cd ${PROJECT_DIR}/scripts || exit 1
./release-android.sh
#[[ $? -ne 0 ]] && exit 1
echo "----------------------------------"
echo "- Building web and extension artifacts..."
echo "----------------------------------"
cd ${PROJECT_DIR} || exit 1
# Gnerate config (only once, to keep same config if web and web-extension artifacts)
# Generate config (only once, to keep same config if web and web-extension artifacts)
cd ${PROJECT_DIR} || exit 1
gulp config --env default
# Run web build
......@@ -164,8 +145,9 @@ git push -f origin
echo "----------------------------------"
echo "- Uploading web extension to Mozilla ..."
echo "----------------------------------"
. ${PROJECT_DIR}/scripts/release-sign-extension.sh $1
# FIXME: always failed: but continue
cd ${PROJECT_DIR}/scripts || exit 1
./release-sign-extension.sh $1 ''"$description"''
# FIXME: always failed, but continue
#[[ $? -ne 0 ]] && exit 1
echo "----------------------------------"
......@@ -196,5 +178,5 @@ echo "**********************************"
cd ${PROJECT_DIR}
# Back to nodejs project version
nvm use ${NODEJS_VERSION}
nvm use ${NODE_VERSION}
This diff is collapsed.
......@@ -491,7 +491,7 @@ $screen-menu: $screen-sm;
}
.bar-header {
background-color: $positive-900-bg;
background-color: $positive;
color: #fff;
height: 150px;
padding-right: 0 !important;
......@@ -938,13 +938,20 @@ html, body {
display: inline-block !important;
vertical-align: bottom;
}
.loader {
zoom: unset;
top: 49px;
width: 100%;
}
.loader .logo,
#home .logo {
margin-top: 15px;
width: 100%;
background-position: center center;
background-repeat: no-repeat;
}
.loader .center,
#home .center {
float: none;
text-align: center;
......@@ -955,7 +962,8 @@ html, body {
display: inline-block;
}
@media screen and (max-width: $screen-xs-max) {
@media screen and (max-width: $screen-xxs-max) {
.loader .logo,
#home .logo {
height: 96px;
background-image: url('../img/logo_96px.png');
......@@ -966,7 +974,9 @@ html, body {
}
}
@media screen and (min-width: $screen-sm) and (max-width: $screen-sm-max) {
@media screen and (min-width: $screen-xs) and (max-width: $screen-sm-max) {
.loader .logo,
#home .logo {
height: 144px;
background-image: url('../img/logo_144px.png');
......@@ -979,6 +989,7 @@ html, body {
}
@media screen and (min-width: $screen-md) {
.loader .logo,
#home .logo {
height: 200px;
background-image: url('../img/logo_200px.png');
......@@ -991,9 +1002,6 @@ html, body {
}
}
@media screen and (min-width: $screen-md) {
.circle-bg-dark {
background-image: url('../../resources/logo/svg/white/logo.large.empty.transparent.svg');
background-repeat: no-repeat;
......@@ -1001,6 +1009,16 @@ html, body {
background-size: 1024px 1024px;
}
@media screen and (max-width: $screen-sm-max) {
.circle-bg-dark {
background-blend-mode: soft-light;
}
}
@media screen and (min-width: $screen-md) {
.circle-bg-dark {
background-blend-mode: hard-light;
}
}
.gray {
......@@ -1282,10 +1300,11 @@ html, body {
}
}
.stable-100-bg {
background-color: $stable-100-bg !important;
.popover-wallet-tx-actions {
height: 120px;
}
/******
* TX view (wallet or identity)
*******/
......@@ -1296,7 +1315,6 @@ html, body {
padding-top: 8px;
margin: 0 !important;
.badge-energized {
background-color: rgba(255, 201, 0, 0.3);
color: #888 !important;
......@@ -1309,18 +1327,6 @@ html, body {
background-color: white; // Fix issue #847
}
.vertical-center{
position: absolute;
top: 30%;
width: 40%;
}
p.comment{
width: 100%;
white-space: nowrap;
text-overflow: ellipsis;
}
p.text-wrap {
white-space: normal;
a {
......@@ -1328,17 +1334,38 @@ html, body {
}
}
p.comment {
margin: 8px 0;
padding-left: 16px; // For icon
i.ion-ios-chatbubble-outline {
margin-left: -16px;
position: absolute;
}
}
.col-pubkey {
max-width: 80%;
.pubkeys {
display: block;
white-space: nowrap;
text-overflow: ellipsis;
a {
display: block;
overflow: hidden;
text-overflow: ellipsis;
}
.pubkeys {
display: block;
max-height: 130px;
overflow: hidden;
}
}
.col-comment {
white-space: normal;
}
}
......@@ -1386,6 +1413,7 @@ html, body {
filter: alpha(opacity=80);
}
.card.stable-900-bg,
.card .stable-900-bg,
.item.stable-900-bg,
......@@ -1936,11 +1964,20 @@ $ionicon-var-badge-editable: $ionicon-var-edit + "\00a0";
}
}
/**********
About modal
**********/
.modal.about .bar.bar-header .button + .title {
left: 0 !important; /* avoid title offset on large screens, if button are 'visible-xs')'*/
}
.modal.about {
.ion-telegram:before {
content: url('../img/logo_telegram.svg');
}
}
/**********
Item buttons
**********/
......@@ -2562,6 +2599,11 @@ div[drop-zone]:hover {
/**********
Wot identity
**********/
.stable-100-bg {
background-color: $stable-100-bg !important;
}
.hero.dark-100-bg {
background-color: $dark-100-bg;
}
......@@ -2661,6 +2703,11 @@ div[drop-zone]:hover {
overflow: hidden;
}
}
.icon-eye-toggle:before {
font-size: 24px;
padding-top: 8px;
}
}
/**********
......@@ -2751,6 +2798,19 @@ div[drop-zone]:hover {
color: white !important;
}
h1, .h1 {
font-size: 18pt;
}
h2, .h2 {
font-size: 16pt;
}
h3, .h3 {
font-size: 14pt;
}
h4, .h4 {
font-size: 12pt;
}
ul {
list-style: unset;
padding-left: 40px;
......@@ -2774,24 +2834,63 @@ div[drop-zone]:hover {
border: 1px solid $positive;
}
.avatar-left-padding {
padding-left: 30px;
padding-inline-start: 30px;
}
}
.feed-title,
.card .title {
margin-top: 5px;
font-size: 18pt;
a {
color: white !important;;
}
}
.tags {
font-size: small;
color: grey !important;
}
.feed-content,
.card .content {
text-align: start;
color: lightgrey !important;
img.emoji {
display: unset;
max-width: 12px;
max-height: 12px;
}
blockquote p {
font-weight: unset;
font-size: unset;
line-height: unset;
}
blockquote, .quote .title {
padding: 5px 10px;
border-left: 5px solid gray;
margin: 0 0 10px 0;
font-size: 10pt;
}
.quote .title {
margin: 0;
font-size: 10pt;
padding-left: 32px;
.avatar {
position: absolute;
margin-top: -1px;
margin-left: -3px;
height: 20px;
width: 20px;
border: 1px solid $positive;
}
}
}
.feed-footer,
.card .footer {
a:hover {
......
......@@ -27,6 +27,30 @@
color: grey;
}
#home .progress-bar {
display: inline-block;
width: 50vw;
max-width: 300px;
position: relative;
height: 12px;
border-radius: 5px;
border: 1px solid gray;
}
#home .progress-fill {
height: 100%;
background-color: currentColor;
position: absolute;
left: 0;
top: 0;
border-radius: 5px;
transition: width 0.2s ease;
}
#home .progress-text {
font-size: 12px;
color: currentColor !important;
opacity: 0.7;
}
#modal-license {
color:rgb(0, 0, 0);
}
......@@ -173,7 +197,9 @@
padding-top: 9px;
padding-bottom: 3px;
}
.list .item-peer .col h3 {
margin-bottom: 0 !important;
}
.list .item-peer .badge {
top: 14px;
right: 6%;
......@@ -202,8 +228,54 @@
.list .item-peer.compacted > * {
display: none;
}
.list .item-peer .col-server {
overflow: hidden;
text-overflow: ellipsis;
}
.list .item-peer .col-api {
vertical-align: center;
}
.list .item-peer .col-api h4 {
min-width: 50px;
height: 100%;
white-space: normal;
padding-top: 5px;
}
.list .item-peer .col-api h4 span {
white-space: nowrap;
font-size: 14px;
line-height: 12px;
}
.list .item-peer .col-api h4 span small {
font-size: 85%;
}
.list .item-peer .col-sandboxes h3 {
display: block;
color: gray;
padding: 0;
}
.list .item-peer .col-sandboxes .progress-bar {
display: inline-block;
width: 50px;
position: relative;
height: 12px;
border-radius: 5px;
border: 1px solid gray;
}
.list .item-peer .col-sandboxes .progress-fill {
height: 100%;
background-color: currentColor;
position: absolute;
left: 0;
top: 0;
border-radius: 5px;
transition: width 0.2s ease;
}
.list .item-peer .col-sandboxes .progress-text {
width: 100%;
font-size: 10px;
text-align: center;
}
/**********
Block items
**********/
......
This diff is collapsed.
This diff is collapsed.
......@@ -49,8 +49,9 @@
"NO_ACCOUNT_QUESTION": "Not a member yet? Register now!",
"SEARCH_NO_RESULT": "No result found",
"LOADING": "Loading...",
"LOADING_WAIT": "Loading...<br/><small>(Waiting for node availability)</small>",
"LOADING_WAIT": "Loading...<br/><small>(Cesium is querying the Duniter peer)</small>",
"SEARCHING": "Searching...",
"DOWNLOADING_DOTS": "Downloading...",
"FROM": "From",
"TO": "To",
"COPY": "Copy",
......@@ -110,7 +111,11 @@
"CODE": "Source code:",
"OFFICIAL_WEB_SITE": "Official web site:",
"DEVELOPERS": "Developers:",
"FORUM": "Forum:",
"USER_FORUM": "User forum:",
"TECH_FORUM": "Technical forum:",
"TELEGRAM": "Telegram group:",
"USER_HELP_DIVIDER": "Community",
"CONTRIBUTE_DIVIDER": "Contribute",
"PLEASE_REPORT_ISSUE": "Please report any issue to us!",
"REPORT_ISSUE": "Report an issue",
"BTN_OPEN_DEV_WINDOW": "Open the debug window"
......@@ -131,19 +136,24 @@
"REPORT_ISSUE": "Report an issue",
"NOT_YOUR_ACCOUNT_QUESTION" : "You do not own the account <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?",
"BTN_CHANGE_ACCOUNT": "Disconnect this account",
"CONNECTION_ERROR": "Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.",
"PEER_CONNECTION_ERROR": "Peer <b>{{server}}</b> is unreachable or address is invalid.<br/><br/>Check your Internet connection, or change the peer <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.",
"NETWORK_CONNECTION_ERROR": "Network is unreachable.<br/><br/>Check your Internet connection, or select a peer manually <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.",
"SHOW_ALL_FEED": "Show all",
"READ_MORE": "Read more",
"FEED_SOURCE": "Source"
"FEED_SOURCE": "Source",
"FEEDS_TITLE": "News"
},
"SETTINGS": {
"TITLE": "Settings",
"DISPLAY_DIVIDER": "Display",
"STORAGE_DIVIDER": "Storage",
"NETWORK_SETTINGS": "Network",
"PEER": "Duniter peer address",
"PEER_SHORT": "Peer address",
"PEER": "Duniter peer",
"PEER_CHANGED_TEMPORARY": "Address used temporarily",
"PEER_SELECTED_AUTOMATICALLY": "Peer selected automatically at startup",
"NETWORK_ANALYZE_TIMEOUT": "Maximum waiting time (timeout)",
"NETWORK_ANALYZE_TIMEOUT_HELP": "Maximum waiting time for network analysis",
"NETWORK_ANALYZE_TIMEOUT_AUTO": "Auto",
"PERSIST_CACHE": "Keep navigation data (experimental)",
"PERSIST_CACHE_HELP": "Allows faster navigation, locally retaining the data received, for use from one session to another.",
"USE_LOCAL_STORAGE": "Enable local storage",
......@@ -191,7 +201,7 @@
"HOST" : "Address",
"HOST_HELP": "Address: server:port",
"USE_SSL" : "Secured?",
"USE_SSL_HELP" : "(SSL Encryption)",
"USE_SSL_HELP" : "SSL Encryption",
"BTN_SHOW_LIST" : "Peer's list"
}
},
......@@ -313,7 +323,9 @@
}
},
"INFO": {
"ONLY_SSL_PEERS": "Non-SSL nodes have a degraded display because Cesium works in HTTPS mode."
"CONNECTING_TO_NETWORK": "Connecting to the network...",
"ANALYZING_NETWORK": "Analyzing the {{currency|abbreviate}} network...",
"ONLY_SSL_PEERS": "Non-SSL peers have a degraded display because Cesium works in HTTPS mode."
}
},
"PEER": {
......@@ -328,6 +340,9 @@
"ALL_PEERS" : "All peers",
"DIFFICULTY" : "Difficulty",
"API" : "API",
"SANDBOXES": "Queue",
"PENDING_TX": "{{count}} transaction(s) / {{size}} max, {{free}} space(s) remaining",
"PENDING_MEMBERSHIPS": "{{count}} pending membership(s) / {{size}} max, {{free}} space(s) remaining",
"CURRENT_BLOCK" : "Block #",
"POPOVER_FILTER_TITLE": "Filter",
"OFFLINE": "Offline",
......@@ -524,7 +539,7 @@
"INTRO_WARNING_SECURITY": "Check that the hardware you are currently using (computer, tablet, phone) <b>is secure and trustworthy </b>.",
"INTRO_WARNING_SECURITY_HELP": "Up-to-date anti-virus, firewall enabled, session protected by password or pin code...",
"INTRO_HELP": "Click <b> {{'COMMON.BTN_START'|translate}}</b> to begin creating an account. You will be guided step by step.",
"REGISTRATION_NODE": "Your registration will be registered via the Duniter peer <b>{{server}}</b> node, which will then be distributed to the rest of the currency network.",
"REGISTRATION_NODE": "Your registration will be registered via the Duniter peer <b>{{server}}</b>, which will then be distributed to the rest of the currency network.",
"REGISTRATION_NODE_HELP": "If you do not trust this peer, please change <a ng-click=\"doQuickFix('settings')\">in the settings</a> of Cesium.",
"SELECT_ACCOUNT_TYPE": "Choose the type of account to create:",
"MEMBER_ACCOUNT": "Member account",
......@@ -565,6 +580,24 @@
"SELECT_WALLET_MODAL": {
"TITLE": "Wallet selection"
},
"CERTIFICATION_MODAL": {
"CHECKLIST_TITLE": "Certification check list",
"INFOS": "Each member is responsible for the security of Ğ1 currency. Before certifying this person's identity, you should have performed few checks. Please answer following questions:",
"BTN_ALL_CHECK": "Certify",
"CHECKLIST_CONDITIONS_NOT_MET": "The certification has not been sent. All answers are not right. Please recheck each point with the person to be certified.",
"QUESTIONS": {
"WELL_KNOWN": "Do you know <b>well</b> the person you are about to certify? Do you know other people who also know this person well?",
"REVOCATION": "Has this person downloaded their <b>revocation document</b> and do they know where to find it?",
"CONTACT": "Have you <b>had contact</b> with this person by many means, and did they answer?",
"DOUBLE_IDENTITY": "The person should own <b>only one active member identity</b>. Do you think they own another one?",
"MASTER_ACCOUNT": "Does this person own their accounts secrets? Have they already <b>sent money from their account</b> at least once?",
"LICENSE": "Has this person <b>understood the Duniter license</b>? Do they agree to comply with it for future certifications?",
"CREDENTIALS": "Was the account created with <b>long and complex secret identifier and password</b> (ex. passphrases)? Did the person understand that both secret identifier and password must remain secret ? Are they <b>sure to remember them</b> or to be able to find them?",
"PUBLIC_KEY_DIFFERENT": "The <b>public key</b> that is shown must be <b>identical</b> to the one the person gave you. The public keys are they <b>different</b>?"
},
"REMINDER_TITLE": "Reminder",
"SHORT_LICENSE_REMINDER": "You may remind the person to certify different certification parameters:<br/><br/><ul><li> - Each member can certify 100 other identities at most.</li><li> - The certifications are saved with a 5 days interval.</li><li> - A new identity must gather at least 5 certifications in less than 2 months.</li><li>- A member must renew its membership at least once a year.</li><li> - Certifications have a lifespan of two years.</li></ul>"
},
"WALLET_LIST": {
"TITLE": "My wallets",
"BTN_NEW": "Add a wallet",
......@@ -573,7 +606,7 @@
"NO_WALLET": "No secondary wallet",
"BTN_DELETE": "Remove a secondary wallet...",
"BTN_RENAME": "Rename the wallet",
"EXPORT_FILENAME": "my_wallets-{{pubkey|formatPubkey}}-{{currency}}.csv",
"EXPORT_FILENAME": "{{currency}}-my_wallets-{{pubkey}}.csv",
"TOTAL_DOTS": "Total: ",
"EDIT_POPOVER": {
"TITLE": "Rename the wallet",
......@@ -595,7 +628,7 @@
"DOWNLOAD_REVOKE_HELP" : "Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.",
"GENERATE_KEYFILE": "Generate my keychain file ...",
"GENERATE_KEYFILE_HELP": "Generate a file allowing you to authenticate without entering your identifiers.<br/><b>Warning:</b> this file will contain your secret key; It is therefore very important to put it in a safe place!",
"KEYFILE_FILENAME": "keychain-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",
"KEYFILE_FILENAME": "{{currency}}-keychain-{{pubkey}}-{{format}}.dunikey",
"MEMBERSHIP_IN": "Register as member...",
"MEMBERSHIP_IN_HELP": "Allows you to <b>transform </b> a simple wallet account <b>into a member account</b>, by sending a membership request. Useful only if you do not already have another member account.",
"SEND_IDENTITY": "Publish identity...",
......@@ -631,7 +664,7 @@
"REVOCATION_WITH_FILE_HELP": "To <b>permanently revoke</ b> a member account, please drag the revocation file in the box below, or click in the box to search for a file.",
"REVOCATION_WALLET": "Revoke this account immediately",
"REVOCATION_WALLET_HELP": "Requesting revocation of your identity causes <b>will revoke your membership</ b> (definitely for the associated pseudonym and public key). The account will no longer be able to produce a Universal Dividend.<br/>However, you can still use it as a simple wallet.",
"REVOCATION_FILENAME": "revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",
"REVOCATION_FILENAME": "{{currency}}-revocation-{{uid}}-{{pubkey}}.txt",
"SAVE_ID": "Save my credentials...",
"SAVE_ID_HELP": "Creating a backup file, to <b>retrieve your password</b> (and the secret identifier) <b> in case of forgetting</b>. The file is <b>secured</ b> (encrypted) using personal questions.",
"STRONG_LEVEL": "Strong <span class=\"hidden-xs \">(6 questions minimum)</span>",
......@@ -685,6 +718,8 @@
"PUBKEY_INVALID_CHECKSUM": "Invalid public key (bad checksum).",
"POPUP_TITLE": "Error",
"UNKNOWN_ERROR": "Unknown error",
"TIMEOUT_REACHED": "Peer timeout exceeded ({{timeout|formatDurationMs}}).<br/><br/><small>{{url}}</small>",
"TOO_MANY_REQUESTS": "You have made too many requests in a short period of time. Please wait a while before trying again.<br/><br/><small>{{url}}</small>",
"CRYPTO_UNKNOWN_ERROR": "Your browser is not compatible with cryptographic features.",
"DOWNLOAD_KEYFILE_FAILED": "Failed to generate the keychain file.",
"EQUALS_TO_PSEUDO": "Must be different from pseudonym",
......@@ -741,7 +776,7 @@
"IDENTITY_PENDING_REVOCATION": "The <b>revocation of this identity</b> has been requested and is awaiting processing. Certification is therefore disabled.",
"IDENTITY_INVALID_BLOCK_HASH": "This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",
"IDENTITY_EXPIRED": "This identity has expired: this person must re-apply <b>before</b> being certified.",
"IDENTITY_SANDBOX_FULL": "Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",
"IDENTITY_SANDBOX_FULL": "Could not register, because Duniter peer's sandbox is full.<br/><br/>Please retry later or choose another peer (in the <b>settings</b>).",
"IDENTITY_NOT_FOUND": "Identity not found",
"IDENTITY_TX_FAILED": "Error while getting identity's transactions",
"WOT_PENDING_INVALID_BLOCK_HASH": "Membership not valid.",
......@@ -765,6 +800,7 @@
"GET_BLOCK_FAILED": "Error while getting block",
"INVALID_BLOCK_HASH": "Block not found (incorrect hash)",
"DOWNLOAD_REVOCATION_FAILED": "Error while downloading revocation file.",
"DOWNLOAD_SAVE_ID_FAILED": "Failed to download the credentials backup file.",
"REVOCATION_FAILED": "Error while trying to revoke the identity.",
"SALT_OR_PASSWORD_NOT_CONFIRMED": "Wrong secret identifier or password ",
"RECOVER_ID_FAILED": "Could not recover password",
......@@ -787,7 +823,10 @@
"UNKNOWN_WALLET_ID": "Unknown secondary wallet.",
"RESTORE_WALLET_LIST_FAILED": "Unable to restore the list of wallets.",
"INVALID_FILE_FORMAT": "Invalid file format.",
"SAME_TX_RECIPIENT": "The recipient must be different from the issuer."
"SAME_TX_RECIPIENT": "The recipient must be different from the issuer.",
"SELF_CERTIFICATION": "You cannot certify your own identity.",
"TX_SANDBOX_FULL": "The Duniter peer used by Cesium can no longer process new transfers, as its queue is full.<br/><br/>Please try again later or change the peer (in the <b>Settings</b>).",
"DOWNLOAD_TX_HISTORY_FAILED": "Error downloading the account statement"
},
"INFO": {
"POPUP_TITLE": "Information",
......@@ -803,7 +842,9 @@
"REVOCATION_SENT": "Revocation sent successfully",
"REVOCATION_SENT_WAITING_PROCESS": "Revocation <b>has been sent successfully</b>. It is awaiting processing.",
"FEATURES_NOT_IMPLEMENTED": "This features is not implemented yet.<br/><br/>Why not to contribute to get it faster? ;)",
"EMPTY_TX_HISTORY": "No operations to export"
"EMPTY_TX_HISTORY": "No operations to export",
"LOADING_PENDING_TX": "Please wait...<br/><small>(Retrieving pending operations)</small>",
"FILE_DOWNLOADED": "File downloaded"
},
"CONFIRM": {
"CAN_CONTINUE": "<b>Are you sure</b> you want to continue?",
......@@ -830,8 +871,10 @@
"SAVE_BEFORE_LEAVE": "Do you want to <b>save your changes</b> before leaving the page?",
"SAVE_BEFORE_LEAVE_TITLE": "Changes not saved",
"LOGOUT": "Are you sure you want to logout?",
"USE_FALLBACK_NODE": "Peer <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the <b>{{new}}</b> node?",
"ISSUE_524_SEND_LOG": "The transaction was rejected because of a known problem (issue #524) but not reproduced.<br/><br/>To help developers correct this error, do you accept <b>the transmission of your logs</b> per message?<br/><small>(No confidential data is sent)</small>"
"USE_FALLBACK_NODE": "Peer <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the <b>{{new}}</b> peer?",
"USE_SYNC_FALLBACK_NODE": "Peer <b>{{old}}</b> seems to be out of sync.<br/><br/>Do you want to temporarily use the synchronized peer <b>{{new}}</b>?",
"ISSUE_524_SEND_LOG": "The transaction was rejected because of a known problem (issue #524) but not reproduced.<br/><br/>To help developers correct this error, do you accept <b>the transmission of your logs</b> per message?<br/><small>(No confidential data is sent)</small>",
"ENABLE_EXPERT_MODE_TO_CHANGE_NODE": "<b class=\"assertive\">Warning:</b> Do you want to <b>manually change</b> the Duniter peer?<br/><br/>If you continue:<ul><li> - <b>Expert mode</b> will be activated;</li><li> - You can return to automatic peer selection by simply <b>deactivating expert mode</b>.</li></ul>"
},
"MODE": {
"DEMO": {
......
......@@ -49,8 +49,9 @@
"NO_ACCOUNT_QUESTION": "Not a member yet? Register now!",
"SEARCH_NO_RESULT": "No result found",
"LOADING": "Loading...",
"LOADING_WAIT": "Loading...<br/><small>(Waiting for node availability)</small>",
"LOADING_WAIT": "Loading...<br/><small>(Cesium is querying the Duniter peer)</small>",
"SEARCHING": "Searching...",
"DOWNLOADING_DOTS": "Downloading...",
"FROM": "From",
"TO": "To",
"COPY": "Copy",
......@@ -110,7 +111,11 @@
"CODE": "Source code:",
"OFFICIAL_WEB_SITE": "Official web site:",
"DEVELOPERS": "Developers:",
"FORUM": "Forum:",
"USER_FORUM": "User forum:",
"TECH_FORUM": "Technical forum:",
"TELEGRAM": "Telegram group:",
"USER_HELP_DIVIDER": "Community",
"CONTRIBUTE_DIVIDER": "Contribute",
"PLEASE_REPORT_ISSUE": "Please report any issue to us!",
"REPORT_ISSUE": "Report an issue",
"BTN_OPEN_DEV_WINDOW": "Open the debug window"
......@@ -131,19 +136,24 @@
"REPORT_ISSUE": "Report an issue",
"NOT_YOUR_ACCOUNT_QUESTION" : "You do not own the account <b><i class=\"ion-key\"></i> {{pubkey|formatPubkey}}</b>?",
"BTN_CHANGE_ACCOUNT": "Disconnect this account",
"CONNECTION_ERROR": "Peer <b>{{server}}</b> unreachable or invalid address.<br/><br/>Check your Internet connection, or change node <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.",
"PEER_CONNECTION_ERROR": "Peer <b>{{server}}</b> is unreachable or address is invalid.<br/><br/>Check your Internet connection, or change the peer <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.",
"NETWORK_CONNECTION_ERROR": "Network is unreachable.<br/><br/>Check your Internet connection, or select a peer manually <a class=\"positive\" ng-click=\"doQuickFix('settings')\">in the settings</a>.",
"SHOW_ALL_FEED": "Show all",
"READ_MORE": "Read more",
"FEED_SOURCE": "Source"
"FEED_SOURCE": "Source",
"FEEDS_TITLE": "News"
},
"SETTINGS": {
"TITLE": "Settings",
"DISPLAY_DIVIDER": "Display",
"STORAGE_DIVIDER": "Storage",
"NETWORK_SETTINGS": "Network",
"PEER": "Duniter peer address",
"PEER_SHORT": "Peer address",
"PEER": "Duniter peer",
"PEER_CHANGED_TEMPORARY": "Address used temporarily",
"PEER_SELECTED_AUTOMATICALLY": "Peer selected automatically at startup",
"NETWORK_ANALYZE_TIMEOUT": "Maximum waiting time (timeout)",
"NETWORK_ANALYZE_TIMEOUT_HELP": "Maximum waiting time for network analysis",
"NETWORK_ANALYZE_TIMEOUT_AUTO": "Auto",
"PERSIST_CACHE": "Keep navigation data (experimental)",
"PERSIST_CACHE_HELP": "Allows faster navigation, locally retaining the data received, for use from one session to another.",
"USE_LOCAL_STORAGE": "Enable local storage",
......@@ -191,7 +201,7 @@
"HOST" : "Address",
"HOST_HELP": "Address: server:port",
"USE_SSL" : "Secured?",
"USE_SSL_HELP" : "(SSL Encryption)",
"USE_SSL_HELP" : "SSL Encryption",
"BTN_SHOW_LIST" : "Peer's list"
}
},
......@@ -313,7 +323,9 @@
}
},
"INFO": {
"ONLY_SSL_PEERS": "Non-SSL nodes have a degraded display because Cesium works in HTTPS mode."
"CONNECTING_TO_NETWORK": "Connecting to the network...",
"ANALYZING_NETWORK": "Analyzing the {{currency|abbreviate}} network...",
"ONLY_SSL_PEERS": "Non-SSL peers have a degraded display because Cesium works in HTTPS mode."
}
},
"PEER": {
......@@ -328,6 +340,9 @@
"ALL_PEERS" : "All peers",
"DIFFICULTY" : "Difficulty",
"API" : "API",
"SANDBOXES": "Queue",
"PENDING_TX": "{{count}} transaction(s) / {{size}} max, {{free}} space(s) remaining",
"PENDING_MEMBERSHIPS": "{{count}} pending membership(s) / {{size}} max, {{free}} space(s) remaining",
"CURRENT_BLOCK" : "Block #",
"POPOVER_FILTER_TITLE": "Filter",
"OFFLINE": "Offline",
......@@ -524,7 +539,7 @@
"INTRO_WARNING_SECURITY": "Check that the hardware you are currently using (computer, tablet, phone) <b>is secure and trustworthy </b>.",
"INTRO_WARNING_SECURITY_HELP": "Up-to-date anti-virus, firewall enabled, session protected by password or pin code...",
"INTRO_HELP": "Click <b> {{'COMMON.BTN_START'|translate}}</b> to begin creating an account. You will be guided step by step.",
"REGISTRATION_NODE": "Your registration will be registered via the Duniter peer <b>{{server}}</b> node, which will then be distributed to the rest of the currency network.",
"REGISTRATION_NODE": "Your registration will be registered via the Duniter peer <b>{{server}}</b>, which will then be distributed to the rest of the currency network.",
"REGISTRATION_NODE_HELP": "If you do not trust this peer, please change <a ng-click=\"doQuickFix('settings')\">in the settings</a> of Cesium.",
"SELECT_ACCOUNT_TYPE": "Choose the type of account to create:",
"MEMBER_ACCOUNT": "Member account",
......@@ -565,6 +580,24 @@
"SELECT_WALLET_MODAL": {
"TITLE": "Wallet selection"
},
"CERTIFICATION_MODAL": {
"CHECKLIST_TITLE": "Certification check list",
"INFOS": "Each member is responsible for the security of Ğ1 currency. Before certifying this person's identity, you should have performed few checks. Please answer following questions:",
"BTN_ALL_CHECK": "Certify",
"CHECKLIST_CONDITIONS_NOT_MET": "The certification has not been sent. All answers are not right. Please recheck each point with the person to be certified.",
"QUESTIONS": {
"WELL_KNOWN": "Do you know <b>well</b> the person you are about to certify? Do you know other people who also know this person well?",
"REVOCATION": "Has this person downloaded their <b>revocation document</b> and do they know where to find it?",
"CONTACT": "Have you <b>had contact</b> with this person by many means, and did they answer?",
"DOUBLE_IDENTITY": "The person should own <b>only one active member identity</b>. Do you think they own another one?",
"MASTER_ACCOUNT": "Does this person own their accounts secrets? Have they already <b>sent money from their account</b> at least once?",
"LICENSE": "Has this person <b>understood the Duniter license</b>? Do they agree to comply with it for future certifications?",
"CREDENTIALS": "Was the account created with <b>long and complex secret identifier and password</b> (ex. passphrases)? Did the person understand that both secret identifier and password must remain secret ? Are they <b>sure to remember them</b> or to be able to find them?",
"PUBLIC_KEY_DIFFERENT": "The <b>public key</b> that is shown must be <b>identical</b> to the one the person gave you. The public keys are they <b>different</b> ?"
},
"REMINDER_TITLE": "Reminder",
"SHORT_LICENSE_REMINDER": "You may remind the person to certify different certification parameters:<br/><br/><ul><li> - Each member can certify 100 other identities at most.</li><li> - The certifications are saved with a 5 days interval.</li><li> - A new identity must gather at least 5 certifications in less than 2 months.</li><li> - A member must renew its membership at least once a year.</li><li> - Certifications have a lifespan of two years.</li></ul>"
},
"WALLET_LIST": {
"TITLE": "My wallets",
"BTN_NEW": "Add a wallet",
......@@ -573,7 +606,7 @@
"NO_WALLET": "No secondary wallet",
"BTN_DELETE": "Remove a secondary wallet...",
"BTN_RENAME": "Rename the wallet",
"EXPORT_FILENAME": "my_wallets-{{pubkey|formatPubkey}}-{{currency}}.csv",
"EXPORT_FILENAME": "{{currency}}-my_wallets-{{pubkey}}.csv",
"TOTAL_DOTS": "Total: ",
"EDIT_POPOVER": {
"TITLE": "Rename the wallet",
......@@ -595,7 +628,7 @@
"DOWNLOAD_REVOKE_HELP" : "Having a revocation file is important, for example in case of loss of identifiers. It allows you to <b>get this account out of the Web Of Trust</b>, thus becoming a simple wallet.",
"GENERATE_KEYFILE": "Generate my keychain file ...",
"GENERATE_KEYFILE_HELP": "Generate a file allowing you to authenticate without entering your identifiers.<br/><b>Warning:</b> this file will contain your secret key; It is therefore very important to put it in a safe place!",
"KEYFILE_FILENAME": "keychain-{{pubkey|formatPubkey}}-{{currency}}-{{format}}.dunikey",
"KEYFILE_FILENAME": "{{currency}}-keychain-{{pubkey}}-{{format}}.dunikey",
"MEMBERSHIP_IN": "Register as member...",
"MEMBERSHIP_IN_HELP": "Allows you to <b>transform </b> a simple wallet account <b>into a member account</b>, by sending a membership request. Useful only if you do not already have another member account.",
"SEND_IDENTITY": "Publish identity...",
......@@ -631,9 +664,10 @@
"REVOCATION_WITH_FILE_HELP": "To <b>permanently revoke</ b> a member account, please drag the revocation file in the box below, or click in the box to search for a file.",
"REVOCATION_WALLET": "Revoke this account immediately",
"REVOCATION_WALLET_HELP": "Requesting revocation of your identity causes <b>will revoke your membership</ b> (definitely for the associated pseudonym and public key). The account will no longer be able to produce a Universal Dividend.<br/>However, you can still use it as a simple wallet.",
"REVOCATION_FILENAME": "revocation-{{uid}}-{{pubkey|formatPubkey}}-{{currency}}.txt",
"REVOCATION_FILENAME": "{{currency}}-revocation-{{uid}}-{{pubkey}}.txt",
"SAVE_ID": "Save my credentials...",
"SAVE_ID_HELP": "Creating a backup file, to <b>retrieve your password</b> (and the secret identifier) <b>in case of forgetting</b>. The file is <b>secured</ b> (encrypted) using personal questions.",
"SAVE_ID_FILENAME": "{{currency}}-credentials-{{pubkey}}.txt",
"STRONG_LEVEL": "Strong <span class=\"hidden-xs \">(6 questions minimum)</span>",
"TITLE": "Account and security",
"KEYFILE": {
......@@ -654,7 +688,7 @@
}
}
},
"FILE_NAME": "{{currency}} - Account statement {{pubkey|formatPubkey}} to {{currentTime|formatDateForFile}}.csv",
"FILE_NAME": "{{currency}}-Account_statement-{{pubkey}}-{{currentTime|formatDateForFile}}.csv",
"HEADERS": {
"TIME": "Date",
"AMOUNT": "Amount",
......@@ -685,6 +719,8 @@
"PUBKEY_INVALID_CHECKSUM": "Invalid public key (bad checksum).",
"POPUP_TITLE": "Error",
"UNKNOWN_ERROR": "Unknown error",
"TIMEOUT_REACHED": "Peer timeout exceeded ({{timeout|formatDurationMs}}).<br/><br/><small>{{url}}</small>",
"TOO_MANY_REQUESTS": "You have made too many requests in a short period of time. Please wait a while before trying again.<br/><br/><small>{{url}}</small>",
"CRYPTO_UNKNOWN_ERROR": "Your browser is not compatible with cryptographic features.",
"DOWNLOAD_KEYFILE_FAILED": "Failed to generate the keychain file.",
"EQUALS_TO_PSEUDO": "Must be different from pseudonym",
......@@ -741,7 +777,7 @@
"IDENTITY_PENDING_REVOCATION": "The <b>revocation of this identity</b> has been requested and is awaiting processing. Certification is therefore disabled.",
"IDENTITY_INVALID_BLOCK_HASH": "This membership application is no longer valid (because it references a block that network peers are cancelled): the person must renew its application for membership <b>before</b> being certified.",
"IDENTITY_EXPIRED": "This identity has expired: this person must re-apply <b>before</b> being certified.",
"IDENTITY_SANDBOX_FULL": "Could not register, because peer's sandbox is full.<br/><br/>Please retry later or choose another Duniter peer (in <b>Settings</b>).",
"IDENTITY_SANDBOX_FULL": "Could not register, because Duniter peer's sandbox is full.<br/><br/>Please retry later or choose another peer (in the <b>settings</b>).",
"IDENTITY_NOT_FOUND": "Identity not found",
"IDENTITY_TX_FAILED": "Error while getting identity's transactions",
"WOT_PENDING_INVALID_BLOCK_HASH": "Membership not valid.",
......@@ -765,6 +801,7 @@
"GET_BLOCK_FAILED": "Error while getting block",
"INVALID_BLOCK_HASH": "Block not found (incorrect hash)",
"DOWNLOAD_REVOCATION_FAILED": "Error while downloading revocation file.",
"DOWNLOAD_SAVE_ID_FAILED": "Failed to download the credentials backup file.",
"REVOCATION_FAILED": "Error while trying to revoke the identity.",
"SALT_OR_PASSWORD_NOT_CONFIRMED": "Wrong secret identifier or password ",
"RECOVER_ID_FAILED": "Could not recover password",
......@@ -787,7 +824,10 @@
"UNKNOWN_WALLET_ID": "Unknown secondary wallet.",
"RESTORE_WALLET_LIST_FAILED": "Unable to restore the list of wallets.",
"INVALID_FILE_FORMAT": "Invalid file format.",
"SAME_TX_RECIPIENT": "The recipient must be different from the issuer."
"SAME_TX_RECIPIENT": "The recipient must be different from the issuer.",
"SELF_CERTIFICATION": "You cannot certify your own identity.",
"TX_SANDBOX_FULL": "The Duniter peer used by Cesium can no longer process new transfers, as its queue is full.<br/><br/>Please try again later or change the peer (in the <b>Settings</b>).",
"DOWNLOAD_TX_HISTORY_FAILED": "Error downloading the account statement"
},
"INFO": {
"POPUP_TITLE": "Information",
......@@ -803,7 +843,9 @@
"REVOCATION_SENT": "Revocation sent successfully",
"REVOCATION_SENT_WAITING_PROCESS": "Revocation <b>has been sent successfully</b>. It is awaiting processing.",
"FEATURES_NOT_IMPLEMENTED": "This features is not implemented yet.<br/><br/>Why not to contribute to get it faster? ;)",
"EMPTY_TX_HISTORY": "No operations to export"
"EMPTY_TX_HISTORY": "No operations to export",
"LOADING_PENDING_TX": "Please wait...<br/><small>(Retrieving pending operations)</small>",
"FILE_DOWNLOADED": "File downloaded"
},
"CONFIRM": {
"CAN_CONTINUE": "<b>Are you sure</b> you want to continue?",
......@@ -830,8 +872,10 @@
"SAVE_BEFORE_LEAVE": "Do you want to <b>save your changes</b> before leaving the page?",
"SAVE_BEFORE_LEAVE_TITLE": "Changes not saved",
"LOGOUT": "Are you sure you want to logout?",
"USE_FALLBACK_NODE": "Peer <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the <b>{{new}}</b> node?",
"ISSUE_524_SEND_LOG": "The transaction was rejected because of a known problem (issue #524) but not reproduced.<br/><br/>To help developers correct this error, do you accept <b>the transmission of your logs</b> per message?<br/><small>(No confidential data is sent)</small>"
"USE_FALLBACK_NODE": "Peer <b>{{old}}</b> unreachable or invalid address.<br/><br/>Do you want to temporarily use the <b>{{new}}</b> peer?",
"USE_SYNC_FALLBACK_NODE": "Peer <b>{{old}}</b> seems to be out of sync.<br/><br/>Do you want to temporarily use the synchronized peer <b>{{new}}</b>?",
"ISSUE_524_SEND_LOG": "The transaction was rejected because of a known problem (issue #524) but not reproduced.<br/><br/>To help developers correct this error, do you accept <b>the transmission of your logs</b> per message?<br/><small>(No confidential data is sent)</small>",
"ENABLE_EXPERT_MODE_TO_CHANGE_NODE": "<b class=\"assertive\">Warning:</b> Do you want to <b>manually change</b> the Duniter peer?<br/><br/>If you continue:<ul><li> - <b>Expert mode</b> will be activated;</li><li> - You can return to automatic peer selection by simply <b>deactivating expert mode</b>.</li></ul>"
},
"MODE": {
"DEMO": {
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
www/img/flag-ca.png

5.77 KiB | W: | H:

www/img/flag-ca.png

751 B | W: | H:

www/img/flag-ca.png
www/img/flag-ca.png
www/img/flag-ca.png
www/img/flag-ca.png
  • 2-up
  • Swipe
  • Onion skin
www/img/flag-de.png

724 B