Fix Weblate conflict

This commit is contained in:
Weblate 2023-11-23 10:51:12 +01:00
commit 66354134a3
41 changed files with 1608 additions and 127 deletions

View file

@ -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:

View file

@ -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

View file

@ -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

2
external/ispell vendored

@ -1 +1 @@
Subproject commit 061c7e52b507f146396c3b08f289c88ca598fc2f
Subproject commit 05574fe160222c3d0b6283c1433c9b087271fad1

View file

@ -1995,6 +1995,26 @@ Klikněte zde: <a href="%1">%1</a>
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation>Otevřít schůzky</translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -2020,6 +2040,11 @@ Klikněte zde: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation>Nahrávky</translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2045,6 +2070,11 @@ Klikněte zde: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation>Nahrávky</translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3837,6 +3867,11 @@ Klikněte zde: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation>Obnovení vyskakovacích oken</translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -4024,6 +4059,29 @@ Klikněte zde: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>PŘIDAT KONTAKT</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5208,6 +5266,175 @@ Klikněte zde: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<numerusform>%1 vteřin</numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished">OK</translation>
</message>
</context>
<context>
<name></name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<translation>Chtěl jste říct?</translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<translation>Přidat do slovníku</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<translation>Ignorovat</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<translation>Ignorovat vždy</translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation>Při kontrole nové verze došlo k chybě. Zkuste to později nebo kontaktujte podporu, pokud problém přetrvává.</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation>Chcete-li upgradovat na novou verzi, stáhněte si balíček a nainstalujte jej místo stávající verze</translation>
</message>
<message>
<source>downloadUpdate</source>
<translation>Stáhnout</translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation>Vaše aplikace je aktuální.</translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation>Nová verze aplikace byla úspěšně nainstalována.</translation>
</message>
<message>
<source>spellCheckingMenuDidYouMean</source>
<translation>Chtěl jste říct?</translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<translation>Přidat do slovníku</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<translation>Ignorovat</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<translation>Ignorovat vždy</translation>
</message>
</context>
<context>
<name></name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<translation>Chtěl jste říct?</translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<translation>Přidat do slovníku</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<translation>Ignorovat</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<translation>Ignorovat vždy</translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation>Při kontrole nové verze došlo k chybě. Zkuste to později nebo kontaktujte podporu, pokud problém přetrvává.</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation>Chcete-li upgradovat na novou verzi, stáhněte si balíček a nainstalujte jej místo stávající verze</translation>
</message>
<message>
<source>downloadUpdate</source>
<translation>Stáhnout</translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation>Vaše aplikace je aktuální.</translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation>Nová verze aplikace byla úspěšně nainstalována.</translation>
</message>
<message>
<source>spellCheckingMenuDidYouMean</source>
<translation>Chtěl jste říct?</translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<translation>Přidat do slovníku</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<translation>Ignorovat</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<translation>Ignorovat vždy</translation>
</message>
</context>
<context>
<name></name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<translation>Chtěl jste říct?</translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<translation>Přidat do slovníku</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<translation>Ignorovat</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<translation>Ignorovat vždy</translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation>Při kontrole nové verze došlo k chybě. Zkuste to později nebo kontaktujte podporu, pokud problém přetrvává.</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation>Chcete-li upgradovat na novou verzi, stáhněte si balíček a nainstalujte jej místo stávající verze</translation>
</message>
<message>
<source>downloadUpdate</source>
<translation>Stáhnout</translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation>Vaše aplikace je aktuální.</translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation>Nová verze aplikace byla úspěšně nainstalována.</translation>
</message>
<message>
<source>spellCheckingMenuDidYouMean</source>
<translation>Chtěl jste říct?</translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<translation>Přidat do slovníku</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<translation>Ignorovat</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<translation>Ignorovat vždy</translation>
</message>
</context>
<context>
<name></name>

View file

@ -1497,7 +1497,6 @@ Server url ikke konfigureret.</translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<extracomment>&apos;An account is already provisioned. This action will erase the existing account. : Warn user about it.</extracomment>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
<message>
@ -1984,6 +1983,42 @@ Klik her: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">En ny version (%1) er tilgængelig!</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished">ANNULLER</translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -2009,6 +2044,11 @@ Klik her: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2034,6 +2074,11 @@ Klik her: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3799,6 +3844,11 @@ Klik her: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -3986,6 +4036,29 @@ Klik her: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>OPRET KONTAKT</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5163,5 +5236,9 @@ Klik her: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<numerusform></numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -1497,7 +1497,6 @@ Server URL ist nicht konfiguriert.</translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<extracomment>&apos;An account is already provisioned. This action will erase the existing account. : Warn user about it.</extracomment>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
<message>
@ -1984,6 +1983,42 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished">Letzte Fernkonfiguration fehlgeschlagen</translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">Eine neue Version (%1) ist verfügbar!</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -2009,6 +2044,11 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation>Aufzeichnungen</translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2034,6 +2074,11 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation>Aufzeichnungen</translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3799,6 +3844,11 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -3986,6 +4036,29 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>KONTAKT HINZUFÜGEN</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5163,5 +5236,9 @@ Klicken Sie hier: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<numerusform>%1 Sekunden</numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished">OK</translation>
</message>
</context>
</TS>

View file

@ -1923,24 +1923,24 @@ Click here: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<context>
<name>MainWindow</name>
<message>
<source>newVersionCheckError</source>
<translation>An error occured checking for a new version. Try again later or contact support if problem persists.</translation>
<source>newVersionCheckError</source>
<translation>An error occured checking for a new version. Try again later or contact support if problem persists.</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation>To upgrade to the new version, download the package and install it over the existing one</translation>
<source>newVersionAvailableInstructions</source>
<translation>To upgrade to the new version, download the package and install it over the existing one</translation>
</message>
<message>
<source>downloadUpdate</source>
<translation>Download</translation>
<source>downloadUpdate</source>
<translation>Download</translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation>Your application is up to date.</translation>
<source>noNewVersionAvailable</source>
<translation>Your application is up to date.</translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation>New application version successfully installed.</translation>
<source>newVersionInstalled</source>
<translation>New application version successfully installed.</translation>
</message>
<message>
<source>mainSearchBarPlaceholder</source>
@ -2003,6 +2003,22 @@ Click here: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation>Open meetings</translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished">Remote provisioning failed. The link might be used or expired. If it was provided to you, please contact your administrator.</translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">A new version (%1) is available!</translation>
</message>
<message>
<source>cancel</source>
<translation>Cancel</translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -2028,6 +2044,11 @@ Click here: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation>Recordings</translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation>Export %1.desktop file to applications</translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2053,6 +2074,11 @@ Click here: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation>Recordings</translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation>Export %1.desktop file to applications</translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3843,6 +3869,11 @@ Click here: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation>Restore asking popups</translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation>Spell Checker</translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -4030,6 +4061,29 @@ Click here: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>ADD CONTACT</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation>Did you mean ?</translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation>Add to Dictionnary</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation>Ignore Once</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation>Ignore All</translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5207,24 +5261,9 @@ Click here: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<numerusform>%1 seconds</numerusform>
</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<translation>Did you mean ?</translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<translation>Add to Dictionnary</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<translation>Ignore Once</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<translation>Ignore All</translation>
<source>okButton</source>
<translation>OK</translation>
</message>
</context>
</TS>

View file

@ -1497,7 +1497,6 @@ URL del servidor no configurada.</translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<extracomment>&apos;An account is already provisioned. This action will erase the existing account. : Warn user about it.</extracomment>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
<message>
@ -1984,6 +1983,42 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">¡Una nueva versión (%1) está disponible!</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished">CANCELAR</translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -2009,6 +2044,11 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2034,6 +2074,11 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3799,6 +3844,11 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -3986,6 +4036,29 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<translation>AÑADIR CONTACTO</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5163,5 +5236,9 @@ Haga clic aquí: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<numerusform></numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -1923,24 +1923,24 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<context>
<name>MainWindow</name>
<message>
<source>newVersionCheckError</source>
<translation>Une erreur est survenue. Merci de réessayer plus tard ou de contacter le support.</translation>
<source>newVersionCheckError</source>
<translation>Une erreur est survenue. Merci de réessayer plus tard ou de contacter le support.</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation>Pour mettre à jour télécharger l&apos;application et lancer l&apos;installeur.</translation>
<source>newVersionAvailableInstructions</source>
<translation>Pour mettre à jour télécharger l&apos;application et lancer l&apos;installeur.</translation>
</message>
<message>
<source>downloadUpdate</source>
<translation>Télécharger</translation>
<source>downloadUpdate</source>
<translation>Télécharger</translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation>Votre application est à jour.</translation>
<source>noNewVersionAvailable</source>
<translation>Votre application est à jour.</translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation>La nouvelle version de l&apos;application a é installée avec succès.</translation>
<source>newVersionInstalled</source>
<translation>La nouvelle version de l&apos;application a é installée avec succès.</translation>
</message>
<message>
<source>mainSearchBarPlaceholder</source>
@ -2003,6 +2003,22 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished">Erreur de récupération de la configuration distante. Le lien de configuration a peut-être déjà é utilisé ou a expiré. Merci de contacter un administrateur si ce lien vous a é fourni.</translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">Une nouvelle version (%1) est disponible !</translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">Un compte est déjà configuré. Cette action effacera le compte existant.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -2028,6 +2044,11 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation>Enregistrements</translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2053,6 +2074,11 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation>Enregistrements</translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3818,6 +3844,11 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation>Restaurer les popups de confirmation</translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -4005,6 +4036,29 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>AJOUTER CE CONTACT</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation>Voulez-vous dire ?</translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation>Ajouter au Dictionnaire</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation>Ignorer une fois</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation>Ignorer tout</translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5182,24 +5236,9 @@ Cliquez ici : &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<numerusform>%1 secondes</numerusform>
</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<translation>Voulez-vous dire ?</translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<translation>Ajouter au Dictionnaire</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<translation>Ignorer une fois</translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<translation>Ignorer tout</translation>
<source>okButton</source>
<translation type="unfinished">OK</translation>
</message>
</context>
</TS>

View file

@ -1486,7 +1486,6 @@ A kiszolgáló URL-je nincs konfigurálva.</translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<extracomment>&apos;An account is already provisioned. This action will erase the existing account. : Warn user about it.</extracomment>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
<message>
@ -1973,6 +1972,42 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished">Az utolsó távoli kiépítés nem sikerült</translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">Egy új frissítés (%1) érhető el!</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished">Mégse</translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -1998,6 +2033,11 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2023,6 +2063,11 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3785,6 +3830,11 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -3972,6 +4022,29 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>Névjegy hozzáadása</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5142,5 +5215,9 @@ Kattintson ide: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<numerusform></numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished">Rendben</translation>
</message>
</context>
</TS>

View file

@ -1497,7 +1497,6 @@ URL del server non configurato.</translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<extracomment>&apos;An account is already provisioned. This action will erase the existing account. : Warn user about it.</extracomment>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
<message>
@ -1984,6 +1983,42 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished">L&apos;ultima configurazione remota è fallita</translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">È disponibile una nuova versione (%1)!</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -2009,6 +2044,11 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2034,6 +2074,11 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3799,6 +3844,11 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -3986,6 +4036,29 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>AGGIUNGI UN CONTATTO</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5163,5 +5236,9 @@ Clicca: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<numerusform></numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished">OK</translation>
</message>
</context>
</TS>

View file

@ -1486,7 +1486,6 @@
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<extracomment>&apos;An account is already provisioned. This action will erase the existing account. : Warn user about it.</extracomment>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
<message>
@ -1973,6 +1972,42 @@
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished"> (%1) !</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -1998,6 +2033,11 @@
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2023,6 +2063,11 @@
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3785,6 +3830,11 @@
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -3972,6 +4022,29 @@
<translation></translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5142,5 +5215,9 @@
<numerusform>%1 </numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished">OK</translation>
</message>
</context>
</TS>

View file

@ -1508,10 +1508,9 @@ Nesukonfigūruotas serverio url.</translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<extracomment>&apos;An account is already provisioned. This action will erase the existing account. : Warn user about it.</extracomment>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
<message>
<message>
<source>lastProvisioningFailed</source>
<extracomment>&apos;Last remote provisioning failed&apos; : Test to warn the user that the last fetch of remote provisioning has failed.</extracomment>
<translation type="unfinished"></translation>
@ -1995,6 +1994,42 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">Yra prieinama nauja versija (%1)!</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished">ATSISAKYTI</translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -2020,6 +2055,11 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2045,6 +2085,11 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3813,6 +3858,11 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -4000,6 +4050,29 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>PRIDĖTI KONTAKTĄ</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5184,5 +5257,9 @@ Spustelėkite čia: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<numerusform></numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -1497,7 +1497,6 @@ URL do servidor não configurado.</translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<extracomment>&apos;An account is already provisioned. This action will erase the existing account. : Warn user about it.</extracomment>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
<message>
@ -1984,6 +1983,42 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished">O último provisionamento remoto falhou</translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">Está disponível uma nova versão (%1)!</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -2009,6 +2044,11 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation>Gravações</translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2034,6 +2074,11 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation>Gravações</translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3799,6 +3844,11 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -3986,6 +4036,29 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<translation>ADICIONAR CONTATO</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5163,5 +5236,9 @@ Clique aqui: &lt;a href=&quot;%1&quot;&gt;%1 &lt;/a&gt;
<numerusform>%1 segundos</numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished">OK</translation>
</message>
</context>
</TS>

View file

@ -1508,7 +1508,6 @@
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<extracomment>&apos;An account is already provisioned. This action will erase the existing account. : Warn user about it.</extracomment>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
<message>
@ -1995,6 +1994,42 @@
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished">Последняя удалённая инициализация не удалась</translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">Доступна новая (%1) версия!</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -2020,6 +2055,11 @@
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation>Записи</translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2045,6 +2085,11 @@
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation>Записи</translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3813,6 +3858,11 @@
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -4000,6 +4050,29 @@
<translation>ДОБАВИТЬ КОНТАКТ</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5184,5 +5257,9 @@
<numerusform>%1 секунд</numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished">ОК</translation>
</message>
</context>
</TS>

View file

@ -1497,7 +1497,6 @@ Serverwebbadressen är inte konfigurerad.</translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<extracomment>&apos;An account is already provisioned. This action will erase the existing account. : Warn user about it.</extracomment>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
<message>
@ -1984,6 +1983,42 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">En ny version (%1) är tillgänglig!</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished">AVBRYT</translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -2009,6 +2044,11 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2034,6 +2074,11 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3799,6 +3844,11 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -3986,6 +4036,29 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>LÄGG TILL KONTAKT</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5163,5 +5236,9 @@ Klicka här: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<numerusform></numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -1486,7 +1486,6 @@ Sunucu url&apos;si yapılandırılmadı.</translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<extracomment>&apos;An account is already provisioned. This action will erase the existing account. : Warn user about it.</extracomment>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
<message>
@ -1973,6 +1972,42 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished">Son uzaktan ön hazırlık başarısız</translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">Yeni sürüm (%1) var!</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -1998,6 +2033,11 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2023,6 +2063,11 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3785,6 +3830,11 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -3972,6 +4022,29 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<translation>KİŞİ EKLE</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5142,5 +5215,9 @@ Buraya tıklayın: &lt;a href=&quot;%1&quot;&gt;%1&lt;/a&gt;
<numerusform></numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished">TAMAM</translation>
</message>
</context>
</TS>

View file

@ -1994,6 +1994,42 @@
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished">Доступна нова (%1) версія!</translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished">СКАСУВАТИ</translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -2019,6 +2055,11 @@
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2044,6 +2085,11 @@
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3812,6 +3858,11 @@
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -3999,6 +4050,29 @@
<translation>ДОДАТИ КОНТАКТ</translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5183,5 +5257,9 @@
<numerusform></numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -1486,7 +1486,6 @@
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<extracomment>&apos;An account is already provisioned. This action will erase the existing account. : Warn user about it.</extracomment>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
<message>
@ -1973,6 +1972,42 @@
<extracomment>&apos;Open meetings&apos; : Tooltip for a button that open the meetings list</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>lastProvisioningFailed</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionAvailable</source>
<translation type="unfinished"> %1 </translation>
</message>
<message>
<source>newVersionAvailableInstructions</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>cancel</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>downloadUpdate</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionCheckError</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>noNewVersionAvailable</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>newVersionInstalled</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>remoteProvisioningWarnAccountOverwrite</source>
<translation type="unfinished">An account is already provisioned. This action will erase the existing account. : Warn user about it.</translation>
</message>
</context>
<context>
<name>MainWindowMenuBar</name>
@ -1998,6 +2033,11 @@
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>MainWindowTopMenuBar</name>
@ -2023,6 +2063,11 @@
<extracomment>&apos;Recordings&apos; : Label for the recordings menu.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>exportDesktopFile</source>
<extracomment>&apos;Export %1.desktop file to applications&apos; : Label menu to export the %1.desktop file to the ~/.local/share/applications/ folder on Linux (%1 is the exectuable name)</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ManageAccounts</name>
@ -3785,6 +3830,11 @@
<extracomment>&apos;Restore asking popups&apos; : Text button for restoring asking popups.</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckerLabel</source>
<extracomment>&apos;Spell Checker&apos; : label for spell checker settings</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>SettingsVideo</name>
@ -3972,6 +4022,29 @@
<translation></translation>
</message>
</context>
<context>
<name>SpellCheckerMenu</name>
<message>
<source>spellCheckingMenuDidYouMean</source>
<extracomment>&apos;Did you mean ?&apos; : Suggest new words</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuAddToDictionary</source>
<extracomment>&apos;Add to dictionary&apos; : Add word to dictionary</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreOnce</source>
<extracomment>&apos;Ignore Once&apos; : Ignore spell checking only for this occurences</extracomment>
<translation type="unfinished"></translation>
</message>
<message>
<source>spellCheckingMenuIgnoreAll</source>
<extracomment>&apos;Ignore All&apos; : Ignore spell checking for all occurences</extracomment>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>Timeline</name>
<message>
@ -5142,5 +5215,9 @@
<numerusform></numerusform>
</translation>
</message>
<message>
<source>okButton</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -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
}

View file

@ -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);

View file

@ -33,7 +33,7 @@
#endif
#ifdef ENABLE_QRCODE
#include <linphone/FlexiAPIClient.hh>
#include <linphone/flexi-api-client.h>
#endif
#include <QtDebug>
@ -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<LoginListener>(this);
@ -532,28 +532,28 @@ void AssistantModel::createTestAccount(){
}
void AssistantModel::generateQRCode(){
#ifdef ENABLE_QRCODE
auto flexiAPIClient = make_shared<FlexiAPIClient>(CoreManager::getInstance()->getCore()->cPtr());
auto flexiAPIClient = make_shared<LinphonePrivate::FlexiAPIClient>(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<FlexiAPIClient>(CoreManager::getInstance()->getCore()->cPtr());
auto flexiAPIClient = make_shared<LinphonePrivate::FlexiAPIClient>(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<FlexiAPIClient>(CoreManager::getInstance()->getCore()->cPtr());
auto flexiAPIClient = make_shared<LinphonePrivate::FlexiAPIClient>(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<FlexiAPIClient>(CoreManager::getInstance()->getCore()->cPtr());
auto flexiAPIClient = make_shared<LinphonePrivate::FlexiAPIClient>(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<FlexiAPIClient>(CoreManager::getInstance()->getCore()->cPtr());
auto flexiAPIClient = make_shared<LinphonePrivate::FlexiAPIClient>(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

View file

@ -61,8 +61,6 @@ CallHistoryListModel::~CallHistoryListModel(){
void CallHistoryListModel::add(const std::list<std::shared_ptr<linphone::CallLog>>& callLogs){
QList<QSharedPointer<CallHistoryModel>> 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<std::shared_ptr<linphone::CallLog
}
void CallHistoryListModel::onCallLogUpdated(const std::shared_ptr<linphone::CallLog> &call){
auto haveAccount = CoreManager::getInstance()->getCore()->getDefaultAccount();
if(haveAccount && !call->getLocalAddress()->weakEqual(CoreManager::getInstance()->getAccountSettingsModel()->getUsedSipAddress()))
return;
add(std::list<std::shared_ptr<linphone::CallLog>>{call});
}

View file

@ -23,8 +23,7 @@
#include <QTimer>
#include <QAbstractTextDocumentLayout>
#include <QTextEdit>
#include "components/core/CoreManager.hpp"
#include "components/settings/SettingsModel.hpp"
#ifdef WIN32
#include <spellcheck.h>
@ -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;

View file

@ -35,6 +35,8 @@
#include <QStringList>
#include <QTimer>
#include "app/App.hpp"
#include "components/core/CoreManager.hpp"
#include "components/settings/SettingsModel.hpp"
#ifdef __linux__
#include <thread>
@ -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

View file

@ -19,8 +19,8 @@
*/
#import "SpellChecker.hpp"
#import <libispell.h>
#include "SpellChecker.hpp"
#include <libispell.h>
#include "app/paths/Paths.hpp"
#include <unistd.h>
#include <cstdio>

View file

@ -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;

View file

@ -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<wchar_t *>(word.data());
IEnumSpellingError* enumSpellingError = nullptr;

View file

@ -144,8 +144,8 @@ bool AccountSettingsModel::addOrUpdateAccount (std::shared_ptr<linphone::Account
.arg(QString::fromStdString(account->getParams()->getIdentityAddress()->asString()));
return false;
}
coreManager->addingAccount(account->getParams());
setDefaultAccount(account);
}
emit accountSettingsUpdated();
return true;

View file

@ -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<linphone::Config> &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);
}

View file

@ -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);

View file

@ -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
#endif

View file

@ -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";

View file

@ -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

View file

@ -165,6 +165,7 @@ import Common.Styles 1.0
ComboBox {
id: transport
model: [ 'UDP', 'TCP', 'TLS']
currentIndex: 2
}
}
}

View file

@ -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

View file

@ -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')

View file

@ -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

View file

@ -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')

@ -1 +1 @@
Subproject commit 40373878e26ab10c31c7237f1a22758aac3939ab
Subproject commit a20e90babe7e6dc4def83720e7dce96ba3f917af