diff --git a/.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml b/.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml index 51c05990f..e40259ddb 100644 --- a/.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml +++ b/.gitlab-ci-files/job-linux-desktop-ubuntu-1804.yml @@ -161,9 +161,21 @@ job-ubuntu1804-makefile-gcc-deploy: - $NIGHTLY_MASTER - $DEPLOY_LINUX script: - - rsync -rlv --ignore-existing build/OUTPUT/Packages/*.AppImage $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER - - rsync -rlv build/OUTPUT/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM - - rsync -rlv build/OUTPUT/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM +# Going to folder in order to avoid having path in checksum + - |- + cd build/OUTPUT/Packages + for file in $(find . -type f -name '*.AppImage' -exec basename {} \;) + do + rsync -rlv --ignore-existing $file $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER + sha512sum $file > $file.sha512 + rsync -rlv --ignore-existing $file.sha512 $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER + done + cd ../../.. + - |- + if [[ $MAKE_RELEASE_FILE_URL != "" ]]; then + rsync -rlv build/OUTPUT/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM + rsync -rlv build/OUTPUT/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM + fi job-ubuntu1804-makefile-gcc-plugins-deploy: diff --git a/.gitlab-ci-files/job-macosx-desktop.yml b/.gitlab-ci-files/job-macosx-desktop.yml index ff283f2d6..ee456c0ef 100644 --- a/.gitlab-ci-files/job-macosx-desktop.yml +++ b/.gitlab-ci-files/job-macosx-desktop.yml @@ -139,7 +139,7 @@ job-macosx-codesigning: job-macosx-makefile-deploy: stage: deploy - tags: [ "macos-xcode13" ] + tags: [ "deploy" ] needs: - job-macosx-codesigning only: @@ -147,7 +147,16 @@ job-macosx-makefile-deploy: - $NIGHTLY_MASTER - $DEPLOY_MACOSX script: - - rsync -rlv --ignore-existing build/OUTPUT/linphone-app/macos/Packages/Linphone*.dmg $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM/$APP_FOLDER +# Going to folder in order to avoid having path in checksum + - |- + cd build/OUTPUT/linphone-app/macos/Packages/ + for file in $(find . -type f -name '*.dmg' -exec basename {} \;) + do + rsync -rlv --ignore-existing $file $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM/$APP_FOLDER + sha512sum $file > $file.sha512 + rsync -rlv --ignore-existing $file.sha512 $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM/$APP_FOLDER + done + cd ../../../../.. - |- if [[ $MAKE_RELEASE_FILE_URL != "" ]]; then rsync -rlv build/OUTPUT/linphone-app/macos/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$MACOSX_PLATFORM diff --git a/.gitlab-ci-files/job-windows-desktop.yml b/.gitlab-ci-files/job-windows-desktop.yml index 01bdc3cb3..cc29fdb9d 100644 --- a/.gitlab-ci-files/job-windows-desktop.yml +++ b/.gitlab-ci-files/job-windows-desktop.yml @@ -167,16 +167,28 @@ vs2019-win64-package: vs2019-win64-upload: stage: deploy - tags: [ "windows-powershell"] + tags: [ "deploy"] rules: - if: $NIGHTLY_MASTER - if: $DEPLOY_WINDOWS needs: - vs2019-win64-package script: - - scp -pr build-desktop/OUTPUT/Packages/*.exe ${DEPLOY_SERVER}:${UPLOAD_ROOT_PATH}/${WINDOWS_PLATFORM}/${APP_FOLDER} - - if ($MAKE_RELEASE_FILE_URL) { scp -pr build-desktop/OUTPUT/RELEASE ${DEPLOY_SERVER}:${UPLOAD_ROOT_PATH}/${WINDOWS_PLATFORM}/ } - - if ($MAKE_RELEASE_FILE_URL) { scp -pr build-desktop/OUTPUT/RELEASE ${MAIN_DEPLOY_SERVER}:${UPLOAD_ROOT_PATH}/${WINDOWS_PLATFORM}/ } +# Going to folder in order to avoid having path in checksum + - |- + cd build-desktop/OUTPUT/Packages/ + for file in $(find . -type f -name '*.exe' -exec basename {} \;) + do + rsync -rlv --ignore-existing $file $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$WINDOWS_PLATFORM/$APP_FOLDER + sha512sum $file > $file.sha512 + rsync -rlv --ignore-existing $file.sha512 $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$WINDOWS_PLATFORM/$APP_FOLDER + done + cd ../../.. + - |- + if [[ $MAKE_RELEASE_FILE_URL != "" ]]; then + rsync -rlv build/OUTPUT/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$WINDOWS_PLATFORM + rsync -rlv build/OUTPUT/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$WINDOWS_PLATFORM + fi vs2019-win64-plugins-upload: stage: deploy diff --git a/external/ispell b/external/ispell index 061c7e52b..05574fe16 160000 --- a/external/ispell +++ b/external/ispell @@ -1 +1 @@ -Subproject commit 061c7e52b507f146396c3b08f289c88ca598fc2f +Subproject commit 05574fe160222c3d0b6283c1433c9b087271fad1 diff --git a/linphone-app/assets/languages/cs.ts b/linphone-app/assets/languages/cs.ts index b7956b8d2..4010512e0 100644 --- a/linphone-app/assets/languages/cs.ts +++ b/linphone-app/assets/languages/cs.ts @@ -1995,6 +1995,26 @@ Klikněte zde: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list Otevřít schůzky + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -2020,6 +2040,11 @@ Klikněte zde: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Nahrávky + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2045,6 +2070,11 @@ Klikněte zde: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Nahrávky + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3837,6 +3867,11 @@ Klikněte zde: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. Obnovení vyskakovacích oken + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -4024,6 +4059,29 @@ Klikněte zde: <a href="%1">%1</a> PŘIDAT KONTAKT + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5208,6 +5266,175 @@ Klikněte zde: <a href="%1">%1</a> %1 vteřin + + okButton + OK + + + + + + spellCheckingMenuDidYouMean + Chtěl jste říct? + + + spellCheckingMenuAddToDictionary + Přidat do slovníku + + + spellCheckingMenuIgnoreOnce + Ignorovat + + + spellCheckingMenuIgnoreAll + Ignorovat vždy + + + newVersionCheckError + Při kontrole nové verze došlo k chybě. Zkuste to později nebo kontaktujte podporu, pokud problém přetrvává. + + + newVersionAvailableInstructions + Chcete-li upgradovat na novou verzi, stáhněte si balíček a nainstalujte jej místo stávající verze + + + downloadUpdate + Stáhnout + + + noNewVersionAvailable + Vaše aplikace je aktuální. + + + newVersionInstalled + Nová verze aplikace byla úspěšně nainstalována. + + + spellCheckingMenuDidYouMean + Chtěl jste říct? + + + spellCheckingMenuAddToDictionary + Přidat do slovníku + + + spellCheckingMenuIgnoreOnce + Ignorovat + + + spellCheckingMenuIgnoreAll + Ignorovat vždy + + + + + + spellCheckingMenuDidYouMean + Chtěl jste říct? + + + spellCheckingMenuAddToDictionary + Přidat do slovníku + + + spellCheckingMenuIgnoreOnce + Ignorovat + + + spellCheckingMenuIgnoreAll + Ignorovat vždy + + + newVersionCheckError + Při kontrole nové verze došlo k chybě. Zkuste to později nebo kontaktujte podporu, pokud problém přetrvává. + + + newVersionAvailableInstructions + Chcete-li upgradovat na novou verzi, stáhněte si balíček a nainstalujte jej místo stávající verze + + + downloadUpdate + Stáhnout + + + noNewVersionAvailable + Vaše aplikace je aktuální. + + + newVersionInstalled + Nová verze aplikace byla úspěšně nainstalována. + + + spellCheckingMenuDidYouMean + Chtěl jste říct? + + + spellCheckingMenuAddToDictionary + Přidat do slovníku + + + spellCheckingMenuIgnoreOnce + Ignorovat + + + spellCheckingMenuIgnoreAll + Ignorovat vždy + + + + + + spellCheckingMenuDidYouMean + Chtěl jste říct? + + + spellCheckingMenuAddToDictionary + Přidat do slovníku + + + spellCheckingMenuIgnoreOnce + Ignorovat + + + spellCheckingMenuIgnoreAll + Ignorovat vždy + + + newVersionCheckError + Při kontrole nové verze došlo k chybě. Zkuste to později nebo kontaktujte podporu, pokud problém přetrvává. + + + newVersionAvailableInstructions + Chcete-li upgradovat na novou verzi, stáhněte si balíček a nainstalujte jej místo stávající verze + + + downloadUpdate + Stáhnout + + + noNewVersionAvailable + Vaše aplikace je aktuální. + + + newVersionInstalled + Nová verze aplikace byla úspěšně nainstalována. + + + spellCheckingMenuDidYouMean + Chtěl jste říct? + + + spellCheckingMenuAddToDictionary + Přidat do slovníku + + + spellCheckingMenuIgnoreOnce + Ignorovat + + + spellCheckingMenuIgnoreAll + Ignorovat vždy + diff --git a/linphone-app/assets/languages/da.ts b/linphone-app/assets/languages/da.ts index 9882e467b..328c06d37 100644 --- a/linphone-app/assets/languages/da.ts +++ b/linphone-app/assets/languages/da.ts @@ -1497,7 +1497,6 @@ Server url ikke konfigureret. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1984,6 +1983,42 @@ Klik her: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + + + + newVersionAvailable + En ny version (%1) er tilgængelig! + + + newVersionAvailableInstructions + + + + cancel + ANNULLER + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -2009,6 +2044,11 @@ Klik her: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2034,6 +2074,11 @@ Klik her: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3799,6 +3844,11 @@ Klik her: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3986,6 +4036,29 @@ Klik her: <a href="%1">%1</a> OPRET KONTAKT + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5163,5 +5236,9 @@ Klik her: <a href="%1">%1</a> + + okButton + + diff --git a/linphone-app/assets/languages/de.ts b/linphone-app/assets/languages/de.ts index fa01528d0..7415d1d42 100644 --- a/linphone-app/assets/languages/de.ts +++ b/linphone-app/assets/languages/de.ts @@ -1497,7 +1497,6 @@ Server URL ist nicht konfiguriert. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1984,6 +1983,42 @@ Klicken Sie hier: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + Letzte Fernkonfiguration fehlgeschlagen + + + newVersionAvailable + Eine neue Version (%1) ist verfügbar! + + + newVersionAvailableInstructions + + + + cancel + + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -2009,6 +2044,11 @@ Klicken Sie hier: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Aufzeichnungen + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2034,6 +2074,11 @@ Klicken Sie hier: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Aufzeichnungen + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3799,6 +3844,11 @@ Klicken Sie hier: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3986,6 +4036,29 @@ Klicken Sie hier: <a href="%1">%1</a> KONTAKT HINZUFÜGEN + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5163,5 +5236,9 @@ Klicken Sie hier: <a href="%1">%1</a> %1 Sekunden + + okButton + OK + diff --git a/linphone-app/assets/languages/en.ts b/linphone-app/assets/languages/en.ts index 258302fcf..6f99490d6 100644 --- a/linphone-app/assets/languages/en.ts +++ b/linphone-app/assets/languages/en.ts @@ -1923,24 +1923,24 @@ Click here: <a href="%1">%1</a> MainWindow - newVersionCheckError - An error occured checking for a new version. Try again later or contact support if problem persists. + newVersionCheckError + An error occured checking for a new version. Try again later or contact support if problem persists. - newVersionAvailableInstructions - To upgrade to the new version, download the package and install it over the existing one + newVersionAvailableInstructions + To upgrade to the new version, download the package and install it over the existing one - downloadUpdate - Download + downloadUpdate + Download - noNewVersionAvailable - Your application is up to date. + noNewVersionAvailable + Your application is up to date. - newVersionInstalled - New application version successfully installed. + newVersionInstalled + New application version successfully installed. mainSearchBarPlaceholder @@ -2003,6 +2003,22 @@ Click here: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list Open meetings + + lastProvisioningFailed + Remote provisioning failed. The link might be used or expired. If it was provided to you, please contact your administrator. + + + newVersionAvailable + A new version (%1) is available! + + + cancel + Cancel + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. + MainWindowMenuBar @@ -2028,6 +2044,11 @@ Click here: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Recordings + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + Export %1.desktop file to applications + MainWindowTopMenuBar @@ -2053,6 +2074,11 @@ Click here: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Recordings + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + Export %1.desktop file to applications + ManageAccounts @@ -3843,6 +3869,11 @@ Click here: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. Restore asking popups + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + Spell Checker + SettingsVideo @@ -4030,6 +4061,29 @@ Click here: <a href="%1">%1</a> ADD CONTACT + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + Did you mean ? + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + Add to Dictionnary + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + Ignore Once + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + Ignore All + + Timeline @@ -5207,24 +5261,9 @@ Click here: <a href="%1">%1</a> %1 seconds - - - SpellCheckerMenu - spellCheckingMenuDidYouMean - Did you mean ? - - - spellCheckingMenuAddToDictionary - Add to Dictionnary - - - spellCheckingMenuIgnoreOnce - Ignore Once - - - spellCheckingMenuIgnoreAll - Ignore All + okButton + OK diff --git a/linphone-app/assets/languages/es.ts b/linphone-app/assets/languages/es.ts index e896cc8d6..c5de931b6 100644 --- a/linphone-app/assets/languages/es.ts +++ b/linphone-app/assets/languages/es.ts @@ -1497,7 +1497,6 @@ URL del servidor no configurada. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1984,6 +1983,42 @@ Haga clic aquí: <a href="%1">%1 </a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + + + + newVersionAvailable + ¡Una nueva versión (%1) está disponible! + + + newVersionAvailableInstructions + + + + cancel + CANCELAR + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -2009,6 +2044,11 @@ Haga clic aquí: <a href="%1">%1 </a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2034,6 +2074,11 @@ Haga clic aquí: <a href="%1">%1 </a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3799,6 +3844,11 @@ Haga clic aquí: <a href="%1">%1 </a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3986,6 +4036,29 @@ Haga clic aquí: <a href="%1">%1 </a> AÑADIR CONTACTO + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5163,5 +5236,9 @@ Haga clic aquí: <a href="%1">%1 </a> + + okButton + + diff --git a/linphone-app/assets/languages/fr_FR.ts b/linphone-app/assets/languages/fr_FR.ts index 3ac8eb623..504cdbae0 100644 --- a/linphone-app/assets/languages/fr_FR.ts +++ b/linphone-app/assets/languages/fr_FR.ts @@ -1923,24 +1923,24 @@ Cliquez ici : <a href="%1">%1</a> MainWindow - newVersionCheckError - Une erreur est survenue. Merci de réessayer plus tard ou de contacter le support. + newVersionCheckError + Une erreur est survenue. Merci de réessayer plus tard ou de contacter le support. - newVersionAvailableInstructions - Pour mettre à jour télécharger l'application et lancer l'installeur. + newVersionAvailableInstructions + Pour mettre à jour télécharger l'application et lancer l'installeur. - downloadUpdate - Télécharger + downloadUpdate + Télécharger - noNewVersionAvailable - Votre application est à jour. + noNewVersionAvailable + Votre application est à jour. - newVersionInstalled - La nouvelle version de l'application a été installée avec succès. + newVersionInstalled + La nouvelle version de l'application a été installée avec succès. mainSearchBarPlaceholder @@ -2003,6 +2003,22 @@ Cliquez ici : <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + Erreur de récupération de la configuration distante. Le lien de configuration a peut-être déjà été utilisé ou a expiré. Merci de contacter un administrateur si ce lien vous a été fourni. + + + newVersionAvailable + Une nouvelle version (%1) est disponible ! + + + cancel + + + + remoteProvisioningWarnAccountOverwrite + Un compte est déjà configuré. Cette action effacera le compte existant. + MainWindowMenuBar @@ -2028,6 +2044,11 @@ Cliquez ici : <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Enregistrements + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2053,6 +2074,11 @@ Cliquez ici : <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. Enregistrements + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3818,6 +3844,11 @@ Cliquez ici : <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. Restaurer les popups de confirmation + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -4005,6 +4036,29 @@ Cliquez ici : <a href="%1">%1</a> AJOUTER CE CONTACT + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + Voulez-vous dire ? + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + Ajouter au Dictionnaire + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + Ignorer une fois + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + Ignorer tout + + Timeline @@ -5182,24 +5236,9 @@ Cliquez ici : <a href="%1">%1</a> %1 secondes - - - SpellCheckerMenu - spellCheckingMenuDidYouMean - Voulez-vous dire ? - - - spellCheckingMenuAddToDictionary - Ajouter au Dictionnaire - - - spellCheckingMenuIgnoreOnce - Ignorer une fois - - - spellCheckingMenuIgnoreAll - Ignorer tout + okButton + OK diff --git a/linphone-app/assets/languages/hu.ts b/linphone-app/assets/languages/hu.ts index c5a7b8bfe..d220cb88c 100644 --- a/linphone-app/assets/languages/hu.ts +++ b/linphone-app/assets/languages/hu.ts @@ -1486,7 +1486,6 @@ A kiszolgáló URL-je nincs konfigurálva. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1973,6 +1972,42 @@ Kattintson ide: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + Az utolsó távoli kiépítés nem sikerült + + + newVersionAvailable + Egy új frissítés (%1) érhető el! + + + newVersionAvailableInstructions + + + + cancel + Mégse + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -1998,6 +2033,11 @@ Kattintson ide: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2023,6 +2063,11 @@ Kattintson ide: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3785,6 +3830,11 @@ Kattintson ide: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3972,6 +4022,29 @@ Kattintson ide: <a href="%1">%1</a> Névjegy hozzáadása + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5142,5 +5215,9 @@ Kattintson ide: <a href="%1">%1</a> + + okButton + Rendben + diff --git a/linphone-app/assets/languages/it.ts b/linphone-app/assets/languages/it.ts index 85c9aa884..7f26b25c9 100644 --- a/linphone-app/assets/languages/it.ts +++ b/linphone-app/assets/languages/it.ts @@ -1497,7 +1497,6 @@ URL del server non configurato. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1984,6 +1983,42 @@ Clicca: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + L'ultima configurazione remota è fallita + + + newVersionAvailable + È disponibile una nuova versione (%1)! + + + newVersionAvailableInstructions + + + + cancel + + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -2009,6 +2044,11 @@ Clicca: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2034,6 +2074,11 @@ Clicca: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3799,6 +3844,11 @@ Clicca: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3986,6 +4036,29 @@ Clicca: <a href="%1">%1</a> AGGIUNGI UN CONTATTO + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5163,5 +5236,9 @@ Clicca: <a href="%1">%1</a> + + okButton + OK + diff --git a/linphone-app/assets/languages/ja.ts b/linphone-app/assets/languages/ja.ts index d328ac793..1b16a0e64 100644 --- a/linphone-app/assets/languages/ja.ts +++ b/linphone-app/assets/languages/ja.ts @@ -1486,7 +1486,6 @@ remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1973,6 +1972,42 @@ 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + 最後のリモートプロビジョニングに失敗 + + + newVersionAvailable + 新しいバージョン (%1) が利用可能です! + + + newVersionAvailableInstructions + + + + cancel + キャンセル + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -1998,6 +2033,11 @@ 'Recordings' : Label for the recordings menu. 録音 + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2023,6 +2063,11 @@ 'Recordings' : Label for the recordings menu. 録音 + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3785,6 +3830,11 @@ 'Restore asking popups' : Text button for restoring asking popups. 質問ポップアップの復元 + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3972,6 +4022,29 @@ 連絡先に追加 + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5142,5 +5215,9 @@ %1 秒 + + okButton + OK + diff --git a/linphone-app/assets/languages/lt.ts b/linphone-app/assets/languages/lt.ts index fd8dac505..7e768d0a2 100644 --- a/linphone-app/assets/languages/lt.ts +++ b/linphone-app/assets/languages/lt.ts @@ -1508,10 +1508,9 @@ Nesukonfigūruotas serverio url. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. - + lastProvisioningFailed 'Last remote provisioning failed' : Test to warn the user that the last fetch of remote provisioning has failed. @@ -1995,6 +1994,42 @@ Spustelėkite čia: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + + + + newVersionAvailable + Yra prieinama nauja versija (%1)! + + + newVersionAvailableInstructions + + + + cancel + ATSISAKYTI + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -2020,6 +2055,11 @@ Spustelėkite čia: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2045,6 +2085,11 @@ Spustelėkite čia: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3813,6 +3858,11 @@ Spustelėkite čia: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -4000,6 +4050,29 @@ Spustelėkite čia: <a href="%1">%1</a> PRIDĖTI KONTAKTĄ + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5184,5 +5257,9 @@ Spustelėkite čia: <a href="%1">%1</a> + + okButton + + diff --git a/linphone-app/assets/languages/pt_BR.ts b/linphone-app/assets/languages/pt_BR.ts index e32dc41d3..b07f3139d 100644 --- a/linphone-app/assets/languages/pt_BR.ts +++ b/linphone-app/assets/languages/pt_BR.ts @@ -1497,7 +1497,6 @@ URL do servidor não configurado. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1984,6 +1983,42 @@ Clique aqui: <a href="%1">%1 </a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + O último provisionamento remoto falhou + + + newVersionAvailable + Está disponível uma nova versão (%1)! + + + newVersionAvailableInstructions + + + + cancel + + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -2009,6 +2044,11 @@ Clique aqui: <a href="%1">%1 </a> 'Recordings' : Label for the recordings menu. Gravações + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2034,6 +2074,11 @@ Clique aqui: <a href="%1">%1 </a> 'Recordings' : Label for the recordings menu. Gravações + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3799,6 +3844,11 @@ Clique aqui: <a href="%1">%1 </a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3986,6 +4036,29 @@ Clique aqui: <a href="%1">%1 </a> ADICIONAR CONTATO + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5163,5 +5236,9 @@ Clique aqui: <a href="%1">%1 </a> %1 segundos + + okButton + OK + diff --git a/linphone-app/assets/languages/ru.ts b/linphone-app/assets/languages/ru.ts index d82f3df75..f21fbc900 100644 --- a/linphone-app/assets/languages/ru.ts +++ b/linphone-app/assets/languages/ru.ts @@ -1508,7 +1508,6 @@ remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1995,6 +1994,42 @@ 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + Последняя удалённая инициализация не удалась + + + newVersionAvailable + Доступна новая (%1) версия! + + + newVersionAvailableInstructions + + + + cancel + + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -2020,6 +2055,11 @@ 'Recordings' : Label for the recordings menu. Записи + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2045,6 +2085,11 @@ 'Recordings' : Label for the recordings menu. Записи + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3813,6 +3858,11 @@ 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -4000,6 +4050,29 @@ ДОБАВИТЬ КОНТАКТ + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5184,5 +5257,9 @@ %1 секунд + + okButton + ОК + diff --git a/linphone-app/assets/languages/sv.ts b/linphone-app/assets/languages/sv.ts index 635c7d165..befde22b4 100644 --- a/linphone-app/assets/languages/sv.ts +++ b/linphone-app/assets/languages/sv.ts @@ -1497,7 +1497,6 @@ Serverwebbadressen är inte konfigurerad. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1984,6 +1983,42 @@ Klicka här: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + + + + newVersionAvailable + En ny version (%1) är tillgänglig! + + + newVersionAvailableInstructions + + + + cancel + AVBRYT + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -2009,6 +2044,11 @@ Klicka här: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2034,6 +2074,11 @@ Klicka här: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3799,6 +3844,11 @@ Klicka här: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3986,6 +4036,29 @@ Klicka här: <a href="%1">%1</a> LÄGG TILL KONTAKT + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5163,5 +5236,9 @@ Klicka här: <a href="%1">%1</a> + + okButton + + diff --git a/linphone-app/assets/languages/tr.ts b/linphone-app/assets/languages/tr.ts index aa8513264..a34e88dec 100644 --- a/linphone-app/assets/languages/tr.ts +++ b/linphone-app/assets/languages/tr.ts @@ -1486,7 +1486,6 @@ Sunucu url'si yapılandırılmadı. remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1973,6 +1972,42 @@ Buraya tıklayın: <a href="%1">%1</a> 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + Son uzaktan ön hazırlık başarısız + + + newVersionAvailable + Yeni sürüm (%1) var! + + + newVersionAvailableInstructions + + + + cancel + + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -1998,6 +2033,11 @@ Buraya tıklayın: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2023,6 +2063,11 @@ Buraya tıklayın: <a href="%1">%1</a> 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3785,6 +3830,11 @@ Buraya tıklayın: <a href="%1">%1</a> 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3972,6 +4022,29 @@ Buraya tıklayın: <a href="%1">%1</a> KİŞİ EKLE + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5142,5 +5215,9 @@ Buraya tıklayın: <a href="%1">%1</a> + + okButton + TAMAM + diff --git a/linphone-app/assets/languages/uk.ts b/linphone-app/assets/languages/uk.ts index 82ba1b1fd..48e7b91a1 100644 --- a/linphone-app/assets/languages/uk.ts +++ b/linphone-app/assets/languages/uk.ts @@ -1994,6 +1994,42 @@ 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + + + + newVersionAvailable + Доступна нова (%1) версія! + + + newVersionAvailableInstructions + + + + cancel + СКАСУВАТИ + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -2019,6 +2055,11 @@ 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2044,6 +2085,11 @@ 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3812,6 +3858,11 @@ 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3999,6 +4050,29 @@ ДОДАТИ КОНТАКТ + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5183,5 +5257,9 @@ + + okButton + + diff --git a/linphone-app/assets/languages/zh_CN.ts b/linphone-app/assets/languages/zh_CN.ts index 2e4ea1df0..cb50a0553 100644 --- a/linphone-app/assets/languages/zh_CN.ts +++ b/linphone-app/assets/languages/zh_CN.ts @@ -1486,7 +1486,6 @@ remoteProvisioningWarnAccountOverwrite - 'An account is already provisioned. This action will erase the existing account. : Warn user about it. An account is already provisioned. This action will erase the existing account. : Warn user about it. @@ -1973,6 +1972,42 @@ 'Open meetings' : Tooltip for a button that open the meetings list + + lastProvisioningFailed + + + + newVersionAvailable + 新版本( %1 )可用! + + + newVersionAvailableInstructions + + + + cancel + 取消 + + + downloadUpdate + + + + newVersionCheckError + + + + noNewVersionAvailable + + + + newVersionInstalled + + + + remoteProvisioningWarnAccountOverwrite + An account is already provisioned. This action will erase the existing account. : Warn user about it. + MainWindowMenuBar @@ -1998,6 +2033,11 @@ 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + MainWindowTopMenuBar @@ -2023,6 +2063,11 @@ 'Recordings' : Label for the recordings menu. + + exportDesktopFile + 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + + ManageAccounts @@ -3785,6 +3830,11 @@ 'Restore asking popups' : Text button for restoring asking popups. + + spellCheckerLabel + 'Spell Checker' : label for spell checker settings + + SettingsVideo @@ -3972,6 +4022,29 @@ 添加联系人 + + SpellCheckerMenu + + spellCheckingMenuDidYouMean + 'Did you mean ?' : Suggest new words + + + + spellCheckingMenuAddToDictionary + 'Add to dictionary' : Add word to dictionary + + + + spellCheckingMenuIgnoreOnce + 'Ignore Once' : Ignore spell checking only for this occurences + + + + spellCheckingMenuIgnoreAll + 'Ignore All' : Ignore spell checking for all occurences + + + Timeline @@ -5142,5 +5215,9 @@ + + okButton + + diff --git a/linphone-app/src/app/App.cpp b/linphone-app/src/app/App.cpp index e85c834bc..8c9bdf1f8 100644 --- a/linphone-app/src/app/App.cpp +++ b/linphone-app/src/app/App.cpp @@ -73,6 +73,7 @@ using namespace std; namespace { #ifdef Q_OS_LINUX const QString AutoStartDirectory(QDir::homePath().append(QStringLiteral("/.config/autostart/"))); +const QString ApplicationsDirectory(QDir::homePath().append(QStringLiteral("/.local/share/applications/"))); #elif defined(Q_OS_MACOS) const QString OsascriptExecutable(QStringLiteral("osascript")); #else @@ -464,6 +465,7 @@ void App::initContentApp () { mEngine->addImageProvider(ThumbnailProvider::ProviderId, new ThumbnailProvider()); mEngine->rootContext()->setContextProperty("applicationName", APPLICATION_NAME); + mEngine->rootContext()->setContextProperty("executableName", EXECUTABLE_NAME); #ifdef APPLICATION_URL mEngine->rootContext()->setContextProperty("applicationUrl", APPLICATION_URL); @@ -997,23 +999,37 @@ void App::setAutoStart (bool enabled) { } const QString confPath(AutoStartDirectory + EXECUTABLE_NAME ".desktop"); + if(generateDesktopFile(confPath, !enabled)) { + mAutoStart = enabled; + emit autoStartChanged(enabled); + } +} +void App::exportDesktopFile(){ + QDir dir(ApplicationsDirectory); + if (!dir.exists() && !dir.mkpath(ApplicationsDirectory)) { + qWarning() << QStringLiteral("Unable to build applications dir path: `%1`.").arg(ApplicationsDirectory); + return; + } + + const QString confPath(ApplicationsDirectory + EXECUTABLE_NAME ".desktop"); + if(generateDesktopFile(confPath, true)) + generateDesktopFile(confPath, false); +} +bool App::generateDesktopFile(const QString& confPath, bool remove){ qInfo() << QStringLiteral("Updating `%1`...").arg(confPath); QFile file(confPath); - if (!enabled) { + if (remove) { if (file.exists() && !file.remove()) { qWarning() << QLatin1String("Unable to remove autostart file: `" EXECUTABLE_NAME ".desktop`."); - return; + return false; } - - mAutoStart = enabled; - emit autoStartChanged(enabled); - return; + return true; } if (!file.open(QFile::WriteOnly)) { qWarning() << "Unable to open autostart file: `" EXECUTABLE_NAME ".desktop`."; - return; + return false; } const QString binPath(applicationFilePath()); @@ -1044,11 +1060,10 @@ void App::setAutoStart (bool enabled) { "Exec=" + exec + " --iconified\n" "Terminal=false\n" "Categories=Network;Telephony;\n" - "MimeType=x-scheme-handler/sip-" EXECUTABLE_NAME ";x-scheme-handler/sip;x-scheme-handler/sips-" EXECUTABLE_NAME ";x-scheme-handler/sips;x-scheme-handler/tel;x-scheme-handler/callto;\n" + "MimeType=x-scheme-handler/sip-" EXECUTABLE_NAME ";x-scheme-handler/sip;x-scheme-handler/sips-" EXECUTABLE_NAME ";x-scheme-handler/sips;x-scheme-handler/tel;x-scheme-handler/callto;x-scheme-handler/" EXECUTABLE_NAME "-config;\n" + "X-PulseAudio-Properties=media.role=phone\n" ); - - mAutoStart = enabled; - emit autoStartChanged(enabled); + return true; } #elif defined(Q_OS_MACOS) @@ -1208,3 +1223,11 @@ bool App::isPdfAvailable(){ return false; #endif } + +bool App::isLinux(){ +#ifdef Q_OS_LINUX + return true; +#else + return false; +#endif +} diff --git a/linphone-app/src/app/App.hpp b/linphone-app/src/app/App.hpp index 2fc5b36a6..352c158f2 100644 --- a/linphone-app/src/app/App.hpp +++ b/linphone-app/src/app/App.hpp @@ -127,6 +127,11 @@ public: // Check module availability when no dependencies are needed (else use SettingsModel) Q_INVOKABLE static bool isPdfAvailable(); + Q_INVOKABLE static bool isLinux(); +#ifdef Q_OS_LINUX + Q_INVOKABLE void exportDesktopFile(); + bool generateDesktopFile(const QString& confPath, bool remove); +#endif public slots: void stateChanged(Qt::ApplicationState); diff --git a/linphone-app/src/components/assistant/AssistantModel.cpp b/linphone-app/src/components/assistant/AssistantModel.cpp index 0feb3d939..5f0d5f4e3 100644 --- a/linphone-app/src/components/assistant/AssistantModel.cpp +++ b/linphone-app/src/components/assistant/AssistantModel.cpp @@ -33,7 +33,7 @@ #endif #ifdef ENABLE_QRCODE -#include +#include #endif #include @@ -410,7 +410,7 @@ void AssistantModel::login () { return; } - mAccountCreator->setAsDefault(false); + mAccountCreator->setAsDefault(true); auto account = mAccountCreator->createAccountInCore(); if(account){ auto listener = std::make_shared(this); @@ -532,28 +532,28 @@ void AssistantModel::createTestAccount(){ } void AssistantModel::generateQRCode(){ #ifdef ENABLE_QRCODE - auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); + auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); flexiAPIClient ->accountProvision() - ->then([this](FlexiAPIClient::Response response){ + ->then([this](LinphonePrivate::FlexiAPIClient::Response response){ emit newQRCodeReceived(response.json()["provisioning_token"].asCString()); }) - ->error([this](FlexiAPIClient::Response response){ + ->error([this](LinphonePrivate::FlexiAPIClient::Response response){ emit newQRCodeNotReceived(Utils::coreStringToAppString(response.body), response.code); }); #endif } void AssistantModel::requestQRCode(){ #ifdef ENABLE_QRCODE - auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); + auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); flexiAPIClient ->accountAuthTokenCreate() - ->then([this](FlexiAPIClient::Response response) { + ->then([this](LinphonePrivate::FlexiAPIClient::Response response) { mToken = response.json()["token"].asCString(); emit newQRCodeReceived(mToken); QTimer::singleShot(5000, this, &AssistantModel::checkLinkingAccount); - })->error([this](FlexiAPIClient::Response response){ + })->error([this](LinphonePrivate::FlexiAPIClient::Response response){ qWarning() << response.code << " => " << response.body.c_str(); emit newQRCodeNotReceived(Utils::coreStringToAppString(response.body), response.code); }); @@ -568,12 +568,12 @@ void AssistantModel::newQRCodeNotReceivedTest(){ } void AssistantModel::checkLinkingAccount(){ #ifdef ENABLE_QRCODE - auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); + auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); flexiAPIClient ->accountApiKeyFromAuthTokenGenerate(mToken.toStdString()) - ->then([this](FlexiAPIClient::Response response)mutable{ + ->then([this](LinphonePrivate::FlexiAPIClient::Response response)mutable{ emit apiReceived(Utils::coreStringToAppString(response.json()["api_key"].asCString())); - })->error([this](FlexiAPIClient::Response){ + })->error([this](LinphonePrivate::FlexiAPIClient::Response){ QTimer::singleShot(5000, this, &AssistantModel::checkLinkingAccount); }); #endif @@ -581,12 +581,12 @@ void AssistantModel::checkLinkingAccount(){ void AssistantModel::onApiReceived(QString apiKey){ #ifdef ENABLE_QRCODE - auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); + auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); flexiAPIClient->setApiKey(Utils::appStringToCoreString(apiKey).c_str()) ->accountProvision() - ->then([this](FlexiAPIClient::Response response){ + ->then([this](LinphonePrivate::FlexiAPIClient::Response response){ emit provisioningTokenReceived(response.json()["provisioning_token"].asCString()); - })->error([this](FlexiAPIClient::Response response){ + })->error([this](LinphonePrivate::FlexiAPIClient::Response response){ //it provisioningTokenReceived("token"); emit this->newQRCodeNotReceived("Cannot generate a provisioning key"+(response.body.empty() ? "" : " : " +Utils::coreStringToAppString(response.body)), response.code); }); @@ -599,14 +599,14 @@ void AssistantModel::onQRCodeFound(const std::string & result){ void AssistantModel::attachAccount(const QString& token){ #ifdef ENABLE_QRCODE - auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); + auto flexiAPIClient = make_shared(CoreManager::getInstance()->getCore()->cPtr()); flexiAPIClient-> accountAuthTokenAttach(Utils::appStringToCoreString(token)) - ->then([this](FlexiAPIClient::Response response){ + ->then([this](LinphonePrivate::FlexiAPIClient::Response response){ qWarning() << "Attached"; emit qRCodeAttached(); }) - ->error([this](FlexiAPIClient::Response response){ + ->error([this](LinphonePrivate::FlexiAPIClient::Response response){ emit qRCodeNotAttached("Cannot attach"+ (response.body.empty() ? "" : " : " +Utils::coreStringToAppString(response.body)), response.code); }); #endif diff --git a/linphone-app/src/components/history/CallHistoryListModel.cpp b/linphone-app/src/components/history/CallHistoryListModel.cpp index 1269e8802..1652d9088 100644 --- a/linphone-app/src/components/history/CallHistoryListModel.cpp +++ b/linphone-app/src/components/history/CallHistoryListModel.cpp @@ -61,8 +61,6 @@ CallHistoryListModel::~CallHistoryListModel(){ void CallHistoryListModel::add(const std::list>& callLogs){ QList> toAdd; for(auto callLog : callLogs) { - if(!callLog->getLocalAddress()->weakEqual(CoreManager::getInstance()->getAccountSettingsModel()->getUsedSipAddress())) - continue; QString confUri; auto remoteAddress = callLog->getRemoteAddress()->clone(); remoteAddress->clean(); @@ -88,6 +86,9 @@ void CallHistoryListModel::add(const std::list &call){ + auto haveAccount = CoreManager::getInstance()->getCore()->getDefaultAccount(); + if(haveAccount && !call->getLocalAddress()->weakEqual(CoreManager::getInstance()->getAccountSettingsModel()->getUsedSipAddress())) + return; add(std::list>{call}); } diff --git a/linphone-app/src/components/other/spell-checker/SpellChecker.cpp b/linphone-app/src/components/other/spell-checker/SpellChecker.cpp index a46732d3c..0bbda670d 100644 --- a/linphone-app/src/components/other/spell-checker/SpellChecker.cpp +++ b/linphone-app/src/components/other/spell-checker/SpellChecker.cpp @@ -23,8 +23,7 @@ #include #include #include -#include "components/core/CoreManager.hpp" -#include "components/settings/SettingsModel.hpp" + #ifdef WIN32 #include @@ -52,14 +51,16 @@ SpellChecker::SpellChecker(QObject *parent) : QSyntaxHighlighter(parent) { graceTimer = new QTimer(this); graceTimer->setSingleShot(true); connect(graceTimer, SIGNAL(timeout()), SLOT(highlightAfterGracePeriod())); + connect(CoreManager::getInstance()->getSettingsModel(), &SettingsModel::spellCheckerOverrideLocaleChanged, this, &SpellChecker::setLanguage); mAvailable = false; - setLanguage(); + if (CoreManager::getInstance()->getSettingsModel()->getSpellCheckerEnabled()) + setLanguage(); } SpellChecker::~SpellChecker () { graceTimer->stop(); -#ifdef WIN32 +#ifdef _WIN32 if (mNativeSpellChecker != nullptr) mNativeSpellChecker->Release(); #endif @@ -91,7 +92,7 @@ QString SpellChecker::underLine(qreal minLength) { } void SpellChecker::highlightDocument() { - + if(!CoreManager::getInstance()->getSettingsModel()->getSpellCheckerEnabled()) return; if (!fromTimer && QDateTime::currentMSecsSinceEpoch() <= mLastHightlight + GRACE_PERIOD_SECS*1000) { scheduleHighlight(); return; diff --git a/linphone-app/src/components/other/spell-checker/SpellChecker.hpp b/linphone-app/src/components/other/spell-checker/SpellChecker.hpp index 52564231a..84d9abdfd 100644 --- a/linphone-app/src/components/other/spell-checker/SpellChecker.hpp +++ b/linphone-app/src/components/other/spell-checker/SpellChecker.hpp @@ -35,6 +35,8 @@ #include #include #include "app/App.hpp" +#include "components/core/CoreManager.hpp" +#include "components/settings/SettingsModel.hpp" #ifdef __linux__ #include @@ -46,7 +48,7 @@ #define LOG_TAG "[SpellChecker]" #define WORD_DELIMITERS_REGEXP "[^\r\n\t\u2028 ]+" -#ifdef WIN32 +#ifdef _WIN32 class ISpellChecker; #endif @@ -55,9 +57,12 @@ class SpellChecker : public QSyntaxHighlighter { public: SpellChecker(QObject* parent = nullptr); ~SpellChecker(); - + // Common - static QString currentLanguage() { return App::getInstance()->getLocale().name();} + static QString currentLanguage() { + QString overrideLocale = CoreManager::getInstance()->getSettingsModel()->getSpellCheckerOverrideLocale(); + return overrideLocale.isEmpty() ? App::getInstance()->getLocale().name() : overrideLocale; + } Q_INVOKABLE void setTextDocument(QQuickTextDocument *textDocument); Q_INVOKABLE int wordPosition(int x, int y); Q_INVOKABLE bool isWordAtPositionValid(int cursorPosition); @@ -103,7 +108,7 @@ private: bool wasIgnoredOnce(QString word, int wordStartIndex, int wordEndIndex); void scheduleHighlight(); QString underLine(qreal minLength); -#ifdef WIN32 +#ifdef _WIN32 ISpellChecker* mNativeSpellChecker = nullptr; #endif diff --git a/linphone-app/src/components/other/spell-checker/SpellCheckerLinux.cpp b/linphone-app/src/components/other/spell-checker/SpellCheckerLinux.cpp index 0308ce25c..a9a56a48f 100644 --- a/linphone-app/src/components/other/spell-checker/SpellCheckerLinux.cpp +++ b/linphone-app/src/components/other/spell-checker/SpellCheckerLinux.cpp @@ -19,8 +19,8 @@ */ -#import "SpellChecker.hpp" -#import +#include "SpellChecker.hpp" +#include #include "app/paths/Paths.hpp" #include #include diff --git a/linphone-app/src/components/other/spell-checker/SpellCheckerMacOsNative.mm b/linphone-app/src/components/other/spell-checker/SpellCheckerMacOsNative.mm index 273072464..0b2d4084b 100644 --- a/linphone-app/src/components/other/spell-checker/SpellCheckerMacOsNative.mm +++ b/linphone-app/src/components/other/spell-checker/SpellCheckerMacOsNative.mm @@ -28,12 +28,15 @@ void SpellChecker::setLanguage() { if ([spellChecker setLanguage:locale.toNSString()]) { [spellChecker updatePanels]; qDebug() << LOG_TAG << "Macos native spell checker Language set to " << locale; + mAvailable = true; } else { qWarning() << LOG_TAG << "Macos native spell checker unable to set language to " << locale; } } bool SpellChecker::isValid(QString word) { + if (!mAvailable) + return true; NSSpellChecker *spellChecker = [NSSpellChecker sharedSpellChecker]; QString locale = SpellChecker::currentLanguage(); bool isValid = [spellChecker checkSpellingOfString:word.toNSString() startingAt:0 language:locale.toNSString() wrap:NO inSpellDocumentWithTag:0 wordCount:nullptr].length == 0; diff --git a/linphone-app/src/components/other/spell-checker/SpellCheckerWindowsNative.cpp b/linphone-app/src/components/other/spell-checker/SpellCheckerWindowsNative.cpp index 9a761216e..975c497db 100644 --- a/linphone-app/src/components/other/spell-checker/SpellCheckerWindowsNative.cpp +++ b/linphone-app/src/components/other/spell-checker/SpellCheckerWindowsNative.cpp @@ -58,12 +58,13 @@ void SpellChecker::setLanguage() { qWarning() << LOG_TAG << "Windows native spell checker unable to create spell checker"; return; } - qWarning() << LOG_TAG << "Windows native spell checker created for locale" << locale; + qDebug() << LOG_TAG << "Windows native spell checker created for locale" << locale; + mAvailable = true; } bool SpellChecker::isValid(QString word) { - if (mNativeSpellChecker == nullptr) + if (!mAvailable) return true; wchar_t *text = reinterpret_cast(word.data()); IEnumSpellingError* enumSpellingError = nullptr; diff --git a/linphone-app/src/components/settings/AccountSettingsModel.cpp b/linphone-app/src/components/settings/AccountSettingsModel.cpp index 09040585c..ed2e8f1e8 100644 --- a/linphone-app/src/components/settings/AccountSettingsModel.cpp +++ b/linphone-app/src/components/settings/AccountSettingsModel.cpp @@ -144,8 +144,8 @@ bool AccountSettingsModel::addOrUpdateAccount (std::shared_ptrgetParams()->getIdentityAddress()->asString())); return false; } - coreManager->addingAccount(account->getParams()); + setDefaultAccount(account); } emit accountSettingsUpdated(); return true; diff --git a/linphone-app/src/components/settings/SettingsModel.cpp b/linphone-app/src/components/settings/SettingsModel.cpp index 92ab848a7..2b82f638a 100644 --- a/linphone-app/src/components/settings/SettingsModel.cpp +++ b/linphone-app/src/components/settings/SettingsModel.cpp @@ -1566,6 +1566,27 @@ void SettingsModel::setSavedScreenshotsFolder (const QString &folder) { emit savedScreenshotsFolderChanged(cleanedFolder); } +QString SettingsModel::getSpellCheckerOverrideLocale() const{ + return Utils::coreStringToAppString(mConfig->getString(UiSection, "spell_checker_override_locale", "")); +} + +void SettingsModel::setSpellCheckerOverrideLocale (const QString &locale) { + CoreManager::getInstance()->getCore()->getConfig()->setString( + SettingsModel::UiSection, "spell_checker_override_locale", Utils::appStringToCoreString(locale) + ); + + emit spellCheckerOverrideLocaleChanged(); +} + +bool SettingsModel::getSpellCheckerEnabled() const{ + return mConfig->getBool(UiSection, "spell_checker_enabled", false); +} + +void SettingsModel::setSpellCheckerEnabled(bool enable){ + mConfig->setBool(UiSection, "spell_checker_enabled", enable); + emit spellCheckerEnabledChanged(); +} + // ----------------------------------------------------------------------------- static inline string getLegacySavedCallsFolder (const shared_ptr &config) { @@ -1753,6 +1774,10 @@ QString SettingsModel::getDefaultOtherSipAccountDomain() const { return Utils::coreStringToAppString(mConfig->getString(UiSection, "default_other_sip_account_domain", "")); } +bool SettingsModel::getMessageCounterRedirectEnabled() const { + return !!mConfig->getInt(UiSection, "message_counter_redirect_enabled", false); +} + bool SettingsModel::isMipmapEnabled() const{ return !!mConfig->getInt(UiSection, "mipmap_enabled", 0); } diff --git a/linphone-app/src/components/settings/SettingsModel.hpp b/linphone-app/src/components/settings/SettingsModel.hpp index 509b4687c..0b7e55689 100644 --- a/linphone-app/src/components/settings/SettingsModel.hpp +++ b/linphone-app/src/components/settings/SettingsModel.hpp @@ -200,6 +200,9 @@ class SettingsModel : public QObject { // UI. ----------------------------------------------------------------------- + Q_PROPERTY(QString spellCheckerOverrideLocale READ getSpellCheckerOverrideLocale WRITE setSpellCheckerOverrideLocale NOTIFY spellCheckerOverrideLocaleChanged) + Q_PROPERTY(bool spellCheckerEnabled READ getSpellCheckerEnabled WRITE setSpellCheckerEnabled NOTIFY spellCheckerEnabledChanged) + Q_PROPERTY(QFont textMessageFont READ getTextMessageFont WRITE setTextMessageFont NOTIFY textMessageFontChanged) Q_PROPERTY(int textMessageFontSize READ getTextMessageFontSize WRITE setTextMessageFontSize NOTIFY textMessageFontSizeChanged) Q_PROPERTY(QFont emojiFont READ getEmojiFont WRITE setEmojiFont NOTIFY emojiFontChanged) @@ -222,6 +225,7 @@ class SettingsModel : public QObject { Q_PROPERTY(bool showStartVideoCallButton READ getShowStartVideoCallButton CONSTANT) Q_PROPERTY(bool showHomeInviteButton READ getShowHomeInviteButton CONSTANT) Q_PROPERTY(QString defaultOtherSipAccountDomain READ getDefaultOtherSipAccountDomain CONSTANT) + Q_PROPERTY(bool messageCounterRedirectEnabled READ getMessageCounterRedirectEnabled CONSTANT) Q_PROPERTY(bool mipmapEnabled READ isMipmapEnabled WRITE setMipmapEnabled NOTIFY mipmapEnabledChanged) Q_PROPERTY(bool useMinimalTimelineFilter READ useMinimalTimelineFilter WRITE setUseMinimalTimelineFilter NOTIFY useMinimalTimelineFilterChanged) @@ -589,6 +593,11 @@ public: int getEmojiFontSize() const; void setEmojiFontSize(const int& size); + QString getSpellCheckerOverrideLocale() const; + void setSpellCheckerOverrideLocale (const QString &locale); + bool getSpellCheckerEnabled() const; + void setSpellCheckerEnabled(bool enable); + QString getSavedScreenshotsFolder () const; void setSavedScreenshotsFolder (const QString &folder); @@ -632,6 +641,7 @@ public: Q_INVOKABLE bool getShowHomePage() const; Q_INVOKABLE bool getShowHomeInviteButton() const; Q_INVOKABLE QString getDefaultOtherSipAccountDomain() const; + Q_INVOKABLE bool getMessageCounterRedirectEnabled() const; bool isMipmapEnabled() const; @@ -858,6 +868,9 @@ signals: // UI. ----------------------------------------------------------------------- + void spellCheckerOverrideLocaleChanged(); + void spellCheckerEnabledChanged(); + void textMessageFontChanged(const QFont& font); void textMessageFontSizeChanged(const int& size); diff --git a/linphone-app/src/config.h.cmake b/linphone-app/src/config.h.cmake index dca99094b..93157a450 100644 --- a/linphone-app/src/config.h.cmake +++ b/linphone-app/src/config.h.cmake @@ -33,10 +33,11 @@ #cmakedefine APPLICATION_SEMVER "${APPLICATION_SEMVER}" #cmakedefine COPYRIGHT_RANGE_DATE "${COPYRIGHT_RANGE_DATE}" #cmakedefine ENABLE_UPDATE_CHECK 1 +#cmakedefine ENABLE_QRCODE #cmakedefine EXECUTABLE_NAME "${EXECUTABLE_NAME}" #cmakedefine MSPLUGINS_DIR "${MSPLUGINS_DIR}" #cmakedefine ENABLE_APP_WEBVIEW "${ENABLE_APP_WEBVIEW}" #cmakedefine QTKEYCHAIN_TARGET_NAME ${QTKEYCHAIN_TARGET_NAME} #cmakedefine PDF_ENABLED -#endif \ No newline at end of file +#endif diff --git a/linphone-app/src/utils/Constants.hpp b/linphone-app/src/utils/Constants.hpp index 79c7f1d6f..2d14ebb35 100644 --- a/linphone-app/src/utils/Constants.hpp +++ b/linphone-app/src/utils/Constants.hpp @@ -139,7 +139,7 @@ public: static constexpr char PathConfig[] = "/linphonerc"; static constexpr char PathDatabase[] = "/linphone.db"; static constexpr char PathFactoryConfig[] = "/" EXECUTABLE_NAME "/linphonerc-factory"; - static constexpr char PathRootCa[] = "/" EXECUTABLE_NAME "/rootca.pem"; + static constexpr char PathRootCa[] = "/linphone/rootca.pem"; static constexpr char PathFriendsList[] = "/friends.db"; static constexpr char PathLimeDatabase[] = "/x3dh.c25519.sqlite3"; static constexpr char PathMessageHistoryList[] = "/message-history.db"; diff --git a/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml b/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml index 9201fe1c6..f5e034edf 100644 --- a/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml +++ b/linphone-app/ui/modules/Linphone/Account/AccountStatus.qml @@ -16,6 +16,7 @@ Item { // --------------------------------------------------------------------------- signal clicked + signal messageCounterClicked property alias cursorShape:mouseArea.cursorShape property alias betterIcon : presenceLevel.betterIcon property bool noAccountConfigured: AccountSettingsModel.accounts.length <= ((SettingsModel.showLocalSipAccount ? 1 : 0)) @@ -96,6 +97,11 @@ Item { count: CoreManager.eventCount iconSize: AccountStatusStyle.messageCounter.iconSize pointSize: AccountStatusStyle.messageCounter.pointSize + MouseArea{ + anchors.fill: parent + visible: SettingsModel.messageCounterRedirectEnabled + onClicked: accountStatus.messageCounterClicked() + } } } }//RowLayout diff --git a/linphone-app/ui/views/App/Main/Assistant/UseOtherSipAccount.qml b/linphone-app/ui/views/App/Main/Assistant/UseOtherSipAccount.qml index d645c8a0b..30d16196a 100644 --- a/linphone-app/ui/views/App/Main/Assistant/UseOtherSipAccount.qml +++ b/linphone-app/ui/views/App/Main/Assistant/UseOtherSipAccount.qml @@ -165,6 +165,7 @@ import Common.Styles 1.0 ComboBox { id: transport model: [ 'UDP', 'TCP', 'TLS'] + currentIndex: 2 } } } diff --git a/linphone-app/ui/views/App/Main/MainWindow.qml b/linphone-app/ui/views/App/Main/MainWindow.qml index 3b86da049..fa957ea23 100644 --- a/linphone-app/ui/views/App/Main/MainWindow.qml +++ b/linphone-app/ui/views/App/Main/MainWindow.qml @@ -161,6 +161,7 @@ ApplicationWindow { CoreManager.forceRefreshRegisters() Logic.manageAccounts() } + onMessageCounterClicked: window.setView('Calls') } ColumnLayout { @@ -192,7 +193,7 @@ ApplicationWindow { id: smartSearchBar Layout.fillWidth: true - Layout.maximumWidth: parent.width - telKeypad.width - x + maxMenuHeight: MainWindowStyle.searchBox.maxHeight placeholderText: qsTr('mainSearchBarPlaceholder') @@ -226,8 +227,14 @@ ApplicationWindow { } onLaunchVideoCall: CallsListModel.launchVideoCall(sipAddress, '') } + Item{ + Layout.preferredWidth: telKeypad.width - 30 + - (keypadButton.visible ? keypadButton.width : 0) + - (newChatGroupButton.visible ? newChatGroupButton.width : 0) + - 4 * MainWindowStyle.toolBar.spacing + } ActionButton { - Layout.leftMargin: 30 + id: keypadButton isCustom: true backgroundRadius: 90 colorSet: MainWindowStyle.buttons.telKeyad @@ -235,6 +242,7 @@ ApplicationWindow { toggled: telKeypad.visible } ActionButton { + id: newChatGroupButton isCustom: true backgroundRadius: 4 colorSet: MainWindowStyle.buttons.newChatGroup @@ -258,6 +266,7 @@ ApplicationWindow { } ActionButton { + id:newConferenceButton isCustom: true backgroundRadius: 4 colorSet: MainWindowStyle.buttons.newConference diff --git a/linphone-app/ui/views/App/Main/MainWindowMenuBar.qml b/linphone-app/ui/views/App/Main/MainWindowMenuBar.qml index b6220b88f..49fd53797 100644 --- a/linphone-app/ui/views/App/Main/MainWindowMenuBar.qml +++ b/linphone-app/ui/views/App/Main/MainWindowMenuBar.qml @@ -89,6 +89,13 @@ Item { onTriggered: App.checkForUpdates(true) } + MenuItem{ + visible: App.isLinux() + //: 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + text: qsTr('exportDesktopFile').arg(executableName) + onTriggered: App.exportDesktopFile() + } + MenuItem { text: qsTr('about') diff --git a/linphone-app/ui/views/App/Main/MainWindowTopMenuBar.qml b/linphone-app/ui/views/App/Main/MainWindowTopMenuBar.qml index 8381b4ea7..28ff24006 100644 --- a/linphone-app/ui/views/App/Main/MainWindowTopMenuBar.qml +++ b/linphone-app/ui/views/App/Main/MainWindowTopMenuBar.qml @@ -42,7 +42,12 @@ MenuBar { role: MenuItem.ApplicationSpecificRole onTriggered: App.checkForUpdates(true) } - + MenuItem{ + visible: App.isLinux() + //: 'Export %1.desktop file to applications' : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name) + text: qsTr('exportDesktopFile').arg(executableName) + onTriggered: App.exportDesktopFile() + } MenuItem { text: qsTr('about') role: MenuItem.AboutRole diff --git a/linphone-app/ui/views/App/Settings/SettingsUi.qml b/linphone-app/ui/views/App/Settings/SettingsUi.qml index 2334fd1c0..c9d35689c 100644 --- a/linphone-app/ui/views/App/Settings/SettingsUi.qml +++ b/linphone-app/ui/views/App/Settings/SettingsUi.qml @@ -55,6 +55,41 @@ TabContainer { } } } + FormLine { + FormGroup { + //: 'Spell Checker' : label for spell checker settings + label: qsTr('spellCheckerLabel') + RowLayout{ + ComboBox { + Layout.fillWidth: true + textRole: 'key' + + Component.onCompleted: { + var locales = Logic.getAvailableLocales() + model = locales + + var locale = SettingsModel.spellCheckerOverrideLocale + if (!locale.length) { + currentIndex = 0 + return + } + + var value = Qt.locale(locale).name + currentIndex = Number(Utils.findIndex(locales, function (locale) { + return locale.value === value + })) + } + + onActivated: SettingsModel.spellCheckerOverrideLocale = model[index].value + } + Switch { + checked: SettingsModel.spellCheckerEnabled + + onClicked: SettingsModel.spellCheckerEnabled = !checked + } + } + } + } Form { //: 'Fonts' : title of fonts section in settings title: qsTr('fontsTitle') diff --git a/linphone-sdk b/linphone-sdk index 40373878e..a20e90bab 160000 --- a/linphone-sdk +++ b/linphone-sdk @@ -1 +1 @@ -Subproject commit 40373878e26ab10c31c7237f1a22758aac3939ab +Subproject commit a20e90babe7e6dc4def83720e7dce96ba3f917af