diff --git a/.gitlab-ci-files/linux-desktop.yml b/.gitlab-ci-files/linux-desktop.yml index d9734bbe5..e9fce75fb 100644 --- a/.gitlab-ci-files/linux-desktop.yml +++ b/.gitlab-ci-files/linux-desktop.yml @@ -30,12 +30,11 @@ rm -f file.key .deploy_linux: &deploy_linux | - rsync -rlv --ignore-existing build/OUTPUT/Packages/*.AppImage $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER - |- - if [[ $MAKE_RELEASE_FILE_URL != "" ]]; then - rsync -rlv build/OUTPUT/Packages/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM - rsync -rlv build/OUTPUT/Packages/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM - fi + rsync -rlv --ignore-existing build/OUTPUT/Packages/*.AppImage $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM/$APP_FOLDER + if [[ $MAKE_RELEASE_FILE_URL != "" ]]; then + rsync -rlv build/OUTPUT/Packages/RELEASE $DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM + rsync -rlv build/OUTPUT/Packages/RELEASE $MAIN_DEPLOY_SERVER:$UPLOAD_ROOT_PATH/$LINUX_PLATFORM + fi .linux-desktop: stage: build diff --git a/.gitlab-ci-files/macosx-desktop.yml b/.gitlab-ci-files/macosx-desktop.yml index 1104b84c6..8f3803b07 100644 --- a/.gitlab-ci-files/macosx-desktop.yml +++ b/.gitlab-ci-files/macosx-desktop.yml @@ -26,7 +26,7 @@ .macosx-desktop: stage: build - tags: [ "macos-min-xcode12.2-flat" ] + tags: [ "macmini-m1-xcode15" ] rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" && $DOCKER_UPDATE == null && $SKIP_MACOSX == null - if: $CI_PIPELINE_SOURCE == "schedule" && $DOCKER_UPDATE == null && $SKIP_MACOSX == null @@ -93,7 +93,7 @@ macosx-ninja-novideo: # WAIT for QT6 for arm64 macosx-ninja-package: stage: package - tags: [ "macos-min-xcode12.2-flat" ] + tags: [ "macmini-m1-xcode15" ] needs: [] rules: - !reference [.rules-merge-request-manual, rules] @@ -117,7 +117,7 @@ macosx-ninja-package: macosx-codesigning: stage: signing - tags: [ "macos-min-xcode12.2-flat" ] + tags: [ "macmini-m1-xcode15" ] needs: - macosx-ninja-package rules: @@ -142,7 +142,7 @@ macosx-codesigning: macosx-deploy: stage: deploy - tags: [ "macos-min-xcode12.2-flat" ] + tags: [ "macmini-m1-xcode15" ] needs: - macosx-codesigning only: @@ -160,7 +160,7 @@ macosx-deploy: macosx-makefile-plugins-deploy: stage: deploy - tags: [ "macos-min-xcode12.2-flat" ] + tags: [ "macmini-m1-xcode15" ] needs: - macosx-makefile only: diff --git a/CHANGELOG.md b/CHANGELOG.md index e2312e036..bb3dd4c7f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,3 +31,9 @@ Group changes to describe their impact on the project, as follows: - Default screen (between contacts, call history, conversations & meetings list) will change depending on where you were when the app was paused or killed, and you will return to that last visited screen on the next startup. - Minimum supported Qt version is now 6.5.3 - Some settings have changed name and/or section in linphonerc file. + + +## [6.1.0] - XXXX-XX-XX + +### Changed +- Minimum supported Qt version is now 6.10.0 \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index e1946b3e5..48d937bde 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -60,7 +60,6 @@ project(linphoneqt) include(GNUInstallDirs) include(CheckCXXCompilerFlag) -include(Linphone/application_info.cmake) set(CMAKE_CXX_STANDARD 17) if(LINPHONEAPP_INSTALL_PREFIX) @@ -72,8 +71,11 @@ endif() set(CMAKE_INSTALL_PREFIX "${APPLICATION_OUTPUT_DIR}") -set(LINPHONEAPP_APPLICATION_NAME "Linphone6" CACHE STRING "Application name" ) -set(LINPHONEAPP_EXECUTABLE_NAME "linphone6" CACHE STRING "Executable name" ) +set(LINPHONEAPP_APPLICATION_NAME "Linphone" CACHE STRING "Application name" ) +set(LINPHONEAPP_EXECUTABLE_NAME "linphone" CACHE STRING "Executable name" ) + +# Include application_info.cmake here as the LINPHONEAPP_APPLICATION_NAME variable must be known as it is set to the APPLICATION_NAME variable. +include(Linphone/application_info.cmake) if( APPLE ) set(LINPHONEAPP_MACOS_ARCHS "arm64" CACHE STRING "MacOS architectures to build: comma-separated list of values in [arm64, x86_64]") diff --git a/Linphone/CMakeLists.txt b/Linphone/CMakeLists.txt index da291ed3a..c7e44e264 100644 --- a/Linphone/CMakeLists.txt +++ b/Linphone/CMakeLists.txt @@ -98,15 +98,11 @@ endif() configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake" "${CMAKE_CURRENT_BINARY_DIR}/config.h") -if(${Qt6_VERSION} VERSION_LESS "6.3.0") - set(CMAKE_AUTOMOC ON) - set(CMAKE_AUTORCC ON) - set(CMAKE_AUTOUIC ON) -else() - qt6_standard_project_setup() +if(${Qt6_VERSION} VERSION_LESS "6.10.0") + message( FATAL_ERROR "Linphone requires Qt 6.10.0 or newer. Exiting CMake." ) endif() - +qt6_standard_project_setup() ################################################################ @@ -127,7 +123,7 @@ add_subdirectory(core) set(LANGUAGES_DIRECTORY "data/languages") set(I18N_FILENAME i18n.qrc) -set(LANGUAGES en fr_FR de) +set(LANGUAGES en fr de) # Add languages support. add_subdirectory("${LANGUAGES_DIRECTORY}" "data/languages") @@ -174,6 +170,12 @@ qt6_add_qml_module(Linphone RESOURCES data/fonts.qrc ) +if (WIN32) + if(MSVC AND (CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")) + install(FILES "$" DESTINATION ${CMAKE_INSTALL_BINDIR}) + endif() +endif() + qt6_add_resources(Linphone "resources" PREFIX "/" FILES ${_LINPHONEAPP_RC_FILES}) set_property(TARGET Linphone PROPERTY POSITION_INDEPENDENT_CODE ON) #Need by Qt @@ -199,6 +201,7 @@ set_target_properties(${TARGET_NAME} PROPERTIES if(MSVC) set_target_properties(${TARGET_NAME} PROPERTIES PDB_NAME "${EXECUTABLE_NAME}_app") endif() +set_target_properties(${TARGET_NAME} PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) if(WIN32) if(ENABLE_SCREENSHARING) diff --git a/Linphone/core/App.cpp b/Linphone/core/App.cpp index e60730613..026d0373e 100644 --- a/Linphone/core/App.cpp +++ b/Linphone/core/App.cpp @@ -267,9 +267,7 @@ void App::setAutoStart(bool enabled) { void App::setAutoStart(bool enabled) { QSettings settings(AutoStartSettingsFilePath, QSettings::NativeFormat); - QString parameters; - if (!mSettings->getExitOnClose()) parameters = " --minimized"; - if (enabled) settings.setValue(EXECUTABLE_NAME, QDir::toNativeSeparators(applicationFilePath()) + parameters); + if (enabled) settings.setValue(EXECUTABLE_NAME, QDir::toNativeSeparators(applicationFilePath())); else settings.remove(EXECUTABLE_NAME); mAutoStart = enabled; @@ -287,9 +285,11 @@ App::App(int &argc, char *argv[]) : SingleApplication(argc, argv, true, Mode::User | Mode::ExcludeAppPath | Mode::ExcludeAppVersion) { // Do not use APPLICATION_NAME here. // The EXECUTABLE_NAME will be used in qt standard paths. It's our goal. - QDir::setCurrent(QCoreApplication::applicationDirPath());// Set working directory as the executable to allow relative paths. + QDir::setCurrent( + QCoreApplication::applicationDirPath()); // Set working directory as the executable to allow relative paths. QThread::currentThread()->setPriority(QThread::HighPriority); qDebug() << "app thread is" << QThread::currentThread(); + lDebug() << "Starting app with Qt version" << qVersion(); QCoreApplication::setApplicationName(EXECUTABLE_NAME); QApplication::setOrganizationDomain(EXECUTABLE_NAME); QCoreApplication::setApplicationVersion(APPLICATION_SEMVER); @@ -337,7 +337,7 @@ void App::setSelf(QSharedPointer(me)) { auto callCore = CallCore::create(call); mCoreModelConnection->invokeToCore([this, callCore] { auto callGui = new CallGui(callCore); - auto win = getCallsWindow(QVariant::fromValue(callGui)); + auto win = getOrCreateCallsWindow(QVariant::fromValue(callGui)); Utils::smartShowWindow(win); auto mainwin = getMainWindow(); QMetaObject::invokeMethod(mainwin, "callCreated"); @@ -407,8 +407,12 @@ void App::setSelf(QSharedPointer(me)) { mustBeInMainThread(log().arg(Q_FUNC_INFO)); // There is an account added by a remote provisioning, force switching to main page // because the account may not be connected already - QMetaObject::invokeMethod(mMainWindow, "openMainPage", Qt::DirectConnection, - Q_ARG(QVariant, accountConnected)); + // if (accountConnected) + if (mPossiblyLookForAddedAccount) { + QMetaObject::invokeMethod(mMainWindow, "openMainPage", Qt::DirectConnection, + Q_ARG(QVariant, accountConnected)); + } + mPossiblyLookForAddedAccount = false; }); } }); @@ -431,6 +435,43 @@ void App::setSelf(QSharedPointer(me)) { }); }); + // Check update + mCoreModelConnection->makeConnectToModel( + &CoreModel::versionUpdateCheckResultReceived, + [this](const std::shared_ptr &core, linphone::VersionUpdateCheckResult result, + const std::string &version, const std::string &url, bool checkRequestedByUser) { + mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); + mCoreModelConnection->invokeToCore([this, result, version, url, checkRequestedByUser] { + switch (result) { + case linphone::VersionUpdateCheckResult::Error: + Utils::showInformationPopup(tr("info_popup_error_title"), + //: An error occured while trying to check update. Please + //: try again later or contact support team. + tr("info_popup_error_checking_update"), false); + break; + case linphone::VersionUpdateCheckResult::NewVersionAvailable: { + QString downloadLink = + QStringLiteral("%2") + .arg(url) + //: Download it ! + .arg(tr("info_popup_new_version_download_label")); + Utils::showInformationPopup( + //: New version available ! + tr("info_popup_new_version_available_title"), + //: A new version of Linphone (%1) is available. %2 + tr("info_popup_new_version_available_message").arg(version).arg(downloadLink)); + break; + } + case linphone::VersionUpdateCheckResult::UpToDate: + if (checkRequestedByUser) + //: Up to date + Utils::showInformationPopup(tr("info_popup_version_up_to_date_title"), + //: Your version is up to date + tr("info_popup_version_up_to_date_message")); + } + }); + }); + //--------------------------------------------------------------------------------------------- mCliModelConnection = SafeConnection::create(me, CliModel::getInstance()); mCliModelConnection->makeConnectToCore(&App::receivedMessage, [this](int, const QByteArray &byteArray) { @@ -647,20 +688,24 @@ void App::initCore() { } else lInfo() << log().arg("Stay minimized"); firstOpen = false; lInfo() << log().arg("Checking remote provisioning"); - if (CoreModel::getInstance()->mConfigStatus == linphone::ConfiguringState::Failed && - mIsRestarting) { - QMetaObject::invokeMethod(thread(), [this]() { - auto message = CoreModel::getInstance()->mConfigMessage; - //: not reachable - if (message.isEmpty()) message = tr("configuration_error_detail"); - mustBeInMainThread(log().arg(Q_FUNC_INFO)); - //: Error - Utils::showInformationPopup( - tr("info_popup_error_title"), - //: Remote provisioning failed : %1 - tr("info_popup_configuration_failed_message").arg(message), false); - }); + if (mIsRestarting) { + if (CoreModel::getInstance()->mConfigStatus == linphone::ConfiguringState::Failed) { + QMetaObject::invokeMethod(thread(), [this]() { + auto message = CoreModel::getInstance()->mConfigMessage; + //: not reachable + if (message.isEmpty()) message = tr("configuration_error_detail"); + mustBeInMainThread(log().arg(Q_FUNC_INFO)); + //: Error + Utils::showInformationPopup( + tr("info_popup_error_title"), + //: Remote provisioning failed : %1 + tr("info_popup_configuration_failed_message").arg(message), false); + }); + } else { + mPossiblyLookForAddedAccount = true; + } } + checkForUpdate(); mIsRestarting = false; //--------------------------------------------------------------------------------------------- @@ -1025,7 +1070,38 @@ bool App::notify(QObject *receiver, QEvent *event) { return done; } -QQuickWindow *App::getCallsWindow(QVariant callGui) { +void App::handleAppActivity() { + auto handle = [this](QSharedPointer accountCore) { + if (!accountCore) return; + auto accountPresence = accountCore->getPresence(); + if ((mMainWindow && mMainWindow->isActive() || (mCallsWindow && mCallsWindow->isActive())) && + accountPresence == LinphoneEnums::Presence::Away) + accountCore->lSetPresence(LinphoneEnums::Presence::Online); + if (((!mMainWindow || !mMainWindow->isActive()) && (!mCallsWindow || !mCallsWindow->isActive())) && + accountPresence == LinphoneEnums::Presence::Online) + accountCore->lSetPresence(LinphoneEnums::Presence::Away); + }; + if (mAccountList) { + for (auto &account : mAccountList->getSharedList()) + handle(account); + } else { + connect( + this, &App::accountsChanged, this, + [this, &handle] { + if (mAccountList) { + for (auto &account : mAccountList->getSharedList()) + handle(account); + } + }, + Qt::SingleShotConnection); + } +} + +QQuickWindow *App::getCallsWindow() { + return mCallsWindow; +} + +QQuickWindow *App::getOrCreateCallsWindow(QVariant callGui) { mustBeInMainThread(getClassName()); if (!mCallsWindow) { const QUrl callUrl("qrc:/qt/qml/Linphone/view/Page/Window/Call/CallsWindow.qml"); @@ -1060,6 +1136,7 @@ QQuickWindow *App::getCallsWindow(QVariant callGui) { } // window->setParent(mMainWindow); mCallsWindow = window; + connect(mCallsWindow, &QQuickWindow::activeChanged, this, &App::handleAppActivity); } if (!callGui.isNull() && callGui.isValid()) mCallsWindow->setProperty("call", callGui); return mCallsWindow; @@ -1082,8 +1159,11 @@ QQuickWindow *App::getMainWindow() const { } void App::setMainWindow(QQuickWindow *data) { + if (mMainWindow) disconnect(mMainWindow, &QQuickWindow::activeChanged, this, nullptr); if (mMainWindow != data) { mMainWindow = data; + connect(mMainWindow, &QQuickWindow::activeChanged, this, &App::handleAppActivity); + handleAppActivity(); emit mainWindowChanged(); } } @@ -1358,6 +1438,12 @@ void App::setSysTrayIcon() { menu->addSeparator(); } menu->addAction(markAllReadAction); + //: Check for update + if (mSettings->isCheckForUpdateAvailable()) { + QAction *checkForUpdateAction = new QAction(tr("check_for_update"), root); + root->connect(checkForUpdateAction, &QAction::triggered, this, [this] { checkForUpdate(true); }); + menu->addAction(checkForUpdateAction); + } menu->addAction(quitAction); if (!mSystemTrayIcon) { systemTrayIcon->setContextMenu(menu); // This is a Qt bug. We cannot call setContextMenu more than once. So @@ -1437,6 +1523,21 @@ QString App::getSdkVersion() { #endif } +QString App::getQtVersion() const { + return qVersion(); +} + +void App::checkForUpdate(bool requestedByUser) { + mustBeInMainThread(log().arg(Q_FUNC_INFO)); + if (CoreModel::getInstance() && mCoreModelConnection) { + mCoreModelConnection->invokeToModel([this, requestedByUser] { + mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); + CoreModel::getInstance()->checkForUpdate(Utils::appStringToCoreString(applicationVersion()), + requestedByUser); + }); + } +} + ChatGui *App::getCurrentChat() const { return mCurrentChat; } @@ -1465,4 +1566,4 @@ QAction *App::createMarkAsReadAction(QQuickWindow *window) { mCoreModelConnection->invokeToModel([this]() { CoreModel::getInstance()->unreadNotificationsChanged(); }); }); return markAllReadAction; -} \ No newline at end of file +} diff --git a/Linphone/core/App.hpp b/Linphone/core/App.hpp index e3dfbc1b7..a18387e21 100644 --- a/Linphone/core/App.hpp +++ b/Linphone/core/App.hpp @@ -46,6 +46,7 @@ class App : public SingleApplication, public AbstractObject { Q_PROPERTY(AccountList *accounts READ getAccounts NOTIFY accountsChanged) Q_PROPERTY(CallList *calls READ getCalls NOTIFY callsChanged) Q_PROPERTY(QString shortApplicationVersion READ getShortApplicationVersion CONSTANT) + Q_PROPERTY(QString qtVersion READ getQtVersion CONSTANT) Q_PROPERTY(QString gitBranchName READ getGitBranchName CONSTANT) Q_PROPERTY(QString sdkVersion READ getSdkVersion CONSTANT) Q_PROPERTY(ChatGui *currentChat READ getCurrentChat WRITE setCurrentChat NOTIFY currentChatChanged) @@ -138,7 +139,9 @@ public: bool getCoreStarted() const; void setCoreStarted(bool started); - QQuickWindow *getCallsWindow(QVariant callGui = QVariant()); + QQuickWindow *getCallsWindow(); + Q_INVOKABLE void handleAppActivity(); + QQuickWindow *getOrCreateCallsWindow(QVariant callGui = QVariant()); void setCallsWindowProperty(const char *id, QVariant property); void closeCallsWindow(); @@ -164,7 +167,9 @@ public: QString getShortApplicationVersion(); QString getGitBranchName(); QString getSdkVersion(); + QString getQtVersion() const; + Q_INVOKABLE void checkForUpdate(bool requestedByUser = false); ChatGui *getCurrentChat() const; void setCurrentChat(ChatGui *chat); @@ -221,6 +226,7 @@ private: bool mAutoStart = false; bool mCoreStarted = false; bool mIsRestarting = false; + bool mPossiblyLookForAddedAccount = false; QLocale mLocale = QLocale::system(); DefaultTranslatorCore *mTranslatorCore = nullptr; DefaultTranslatorCore *mDefaultTranslatorCore = nullptr; diff --git a/Linphone/core/address-books/carddav/CarddavCore.cpp b/Linphone/core/address-books/carddav/CarddavCore.cpp index 32b06ece9..cde454eba 100644 --- a/Linphone/core/address-books/carddav/CarddavCore.cpp +++ b/Linphone/core/address-books/carddav/CarddavCore.cpp @@ -73,10 +73,10 @@ void CarddavCore::remove() { void CarddavCore::setSelf(QSharedPointer me) { mCarddavModelConnection = SafeConnection::create(me, mCarddavModel); - mCarddavModelConnection->makeConnectToModel(&CarddavModel::saved, [this](bool success) { - mCarddavModelConnection->invokeToCore([this, success]() { - if (success) emit App::getInstance()->getSettings()->cardDAVAddressBookSynchronized(); - emit saved(success); + mCarddavModelConnection->makeConnectToModel(&CarddavModel::saved, [this](bool success, QString message) { + mCarddavModelConnection->invokeToCore([this, success, message]() { + if (success) emit App::getInstance() -> getSettings()->cardDAVAddressBookSynchronized(); + emit saved(success, message); }); }); } diff --git a/Linphone/core/address-books/carddav/CarddavCore.hpp b/Linphone/core/address-books/carddav/CarddavCore.hpp index 89b4a69cc..fe7cba1e9 100644 --- a/Linphone/core/address-books/carddav/CarddavCore.hpp +++ b/Linphone/core/address-books/carddav/CarddavCore.hpp @@ -50,7 +50,7 @@ public: DECLARE_CORE_MEMBER(bool, storeNewFriendsInIt, StoreNewFriendsInIt) signals: - void saved(bool success); + void saved(bool success, QString message); private: std::shared_ptr mCarddavModel; diff --git a/Linphone/core/call/CallCore.cpp b/Linphone/core/call/CallCore.cpp index cb7acb750..c27edab10 100644 --- a/Linphone/core/call/CallCore.cpp +++ b/Linphone/core/call/CallCore.cpp @@ -107,9 +107,11 @@ CallCore::CallCore(const std::shared_ptr &call) : QObject(nullpt mCallModel->setSelf(mCallModel); mDuration = call->getDuration(); mIsStarted = mDuration > 0; - auto videoDirection = call->getParams()->getVideoDirection(); + auto callParams = call->getParams(); + auto videoDirection = callParams->getVideoDirection(); mLocalVideoEnabled = videoDirection == linphone::MediaDirection::SendOnly || videoDirection == linphone::MediaDirection::SendRecv; + mCameraEnabled = callParams->cameraEnabled(); auto remoteParams = call->getRemoteParams(); videoDirection = remoteParams ? remoteParams->getVideoDirection() : linphone::MediaDirection::Inactive; mRemoteVideoEnabled = @@ -133,7 +135,7 @@ CallCore::CallCore(const std::shared_ptr &call) : QObject(nullpt mTransferState = LinphoneEnums::fromLinphone(call->getTransferState()); mLocalToken = Utils::coreStringToAppString(mCallModel->getLocalAtuhenticationToken()); mRemoteTokens = mCallModel->getRemoteAtuhenticationTokens(); - mEncryption = LinphoneEnums::fromLinphone(call->getParams()->getMediaEncryption()); + mEncryption = LinphoneEnums::fromLinphone(callParams->getMediaEncryption()); auto tokenVerified = call->getAuthenticationTokenVerified(); mIsMismatch = call->getZrtpCacheMismatchFlag(); mIsSecured = (mEncryption == LinphoneEnums::MediaEncryption::Zrtp && tokenVerified) || @@ -160,7 +162,7 @@ CallCore::CallCore(const std::shared_ptr &call) : QObject(nullpt mPaused = mState == LinphoneEnums::CallState::Pausing || mState == LinphoneEnums::CallState::Paused || mState == LinphoneEnums::CallState::PausedByRemote; - mRecording = call->getParams() && call->getParams()->isRecording(); + mRecording = callParams && callParams->isRecording(); mRemoteRecording = call->getRemoteParams() && call->getRemoteParams()->isRecording(); auto settingsModel = SettingsModel::getInstance(); mMicrophoneVolume = call->getRecordVolume(); @@ -193,8 +195,8 @@ void CallCore::setSelf(QSharedPointer me) { mCallModelConnection->makeConnectToModel(&CallModel::speakerMutedChanged, [this](bool isMuted) { mCallModelConnection->invokeToCore([this, isMuted]() { setSpeakerMuted(isMuted); }); }); - mCallModelConnection->makeConnectToCore(&CallCore::lSetLocalVideoEnabled, [this](bool enabled) { - mCallModelConnection->invokeToModel([this, enabled]() { mCallModel->setLocalVideoEnabled(enabled); }); + mCallModelConnection->makeConnectToCore(&CallCore::lSetCameraEnabled, [this](bool enabled) { + mCallModelConnection->invokeToModel([this, enabled]() { mCallModel->setCameraEnabled(enabled); }); }); mCallModelConnection->makeConnectToCore(&CallCore::lStartRecording, [this]() { mCallModelConnection->invokeToModel([this]() { mCallModel->startRecording(); }); @@ -204,15 +206,15 @@ void CallCore::setSelf(QSharedPointer me) { }); mCallModelConnection->makeConnectToModel( &CallModel::recordingChanged, [this](const std::shared_ptr &call, bool recording) { - mCallModelConnection->invokeToCore([this, recording]() { + auto recordFile = QString::fromStdString(mCallModel->getRecordFile()); + mCallModelConnection->invokeToCore([this, recording, recordFile]() { setRecording(recording); if (recording == false) { //: "Enregistrement terminé" Utils::showInformationPopup(tr("call_record_end_message"), //: "L'appel a été enregistré dans le fichier : %1" - tr("call_record_saved_in_file_message") - .arg(QString::fromStdString(mCallModel->getRecordFile())), - true, App::getInstance()->getCallsWindow()); + tr("call_record_saved_in_file_message").arg(recordFile), true, + App::getInstance()->getOrCreateCallsWindow()); } }); }); @@ -244,6 +246,9 @@ void CallCore::setSelf(QSharedPointer me) { mCallModelConnection->makeConnectToModel(&CallModel::localVideoEnabledChanged, [this](bool enabled) { mCallModelConnection->invokeToCore([this, enabled]() { setLocalVideoEnabled(enabled); }); }); + mCallModelConnection->makeConnectToModel(&CallModel::cameraEnabledChanged, [this](bool enabled) { + mCallModelConnection->invokeToCore([this, enabled]() { setCameraEnabled(enabled); }); + }); mCallModelConnection->makeConnectToModel(&CallModel::durationChanged, [this](int duration) { mCallModelConnection->invokeToCore([this, duration]() { setDuration(duration); }); }); @@ -344,6 +349,8 @@ void CallCore::setSelf(QSharedPointer me) { }); mCallModelConnection->makeConnectToModel(&CallModel::conferenceChanged, [this]() { auto conference = mCallModel->getMonitor()->getConference(); + // Force enable video if in conference to handle screen sharing + if (conference && !mCallModel->videoEnabled()) mCallModel->enableVideo(true); QSharedPointer core = conference ? ConferenceCore::create(conference) : nullptr; mCallModelConnection->invokeToCore([this, core]() { setConference(core); }); }); @@ -558,6 +565,18 @@ void CallCore::setLocalVideoEnabled(bool enabled) { } } +bool CallCore::getCameraEnabled() const { + return mCameraEnabled; +} + +void CallCore::setCameraEnabled(bool enabled) { + if (mCameraEnabled != enabled) { + mCameraEnabled = enabled; + lDebug() << "CameraEnabled: " << mCameraEnabled; + emit cameraEnabledChanged(); + } +} + bool CallCore::getPaused() const { return mPaused; } diff --git a/Linphone/core/call/CallCore.hpp b/Linphone/core/call/CallCore.hpp index 5624c6d9d..1ed2f6529 100644 --- a/Linphone/core/call/CallCore.hpp +++ b/Linphone/core/call/CallCore.hpp @@ -117,8 +117,8 @@ public: Q_PROPERTY(QStringList remoteTokens WRITE setRemoteTokens MEMBER mRemoteTokens NOTIFY remoteTokensChanged) Q_PROPERTY( bool remoteVideoEnabled READ getRemoteVideoEnabled WRITE setRemoteVideoEnabled NOTIFY remoteVideoEnabledChanged) - Q_PROPERTY( - bool localVideoEnabled READ getLocalVideoEnabled WRITE lSetLocalVideoEnabled NOTIFY localVideoEnabledChanged) + Q_PROPERTY(bool localVideoEnabled READ getLocalVideoEnabled NOTIFY localVideoEnabledChanged) + Q_PROPERTY(bool cameraEnabled READ getCameraEnabled WRITE lSetCameraEnabled NOTIFY cameraEnabledChanged) Q_PROPERTY(bool recording READ getRecording WRITE setRecording NOTIFY recordingChanged) Q_PROPERTY(bool remoteRecording READ getRemoteRecording WRITE setRemoteRecording NOTIFY remoteRecordingChanged) Q_PROPERTY(bool recordable READ getRecordable WRITE setRecordable NOTIFY recordableChanged) @@ -201,6 +201,9 @@ public: bool getLocalVideoEnabled() const; void setLocalVideoEnabled(bool enabled); + bool getCameraEnabled() const; + void setCameraEnabled(bool enabled); + bool getRecording() const; void setRecording(bool recording); @@ -255,6 +258,7 @@ signals: void remoteTokensChanged(); void remoteVideoEnabledChanged(bool remoteVideoEnabled); void localVideoEnabledChanged(); + void cameraEnabledChanged(); void recordingChanged(); void remoteRecordingChanged(); void recordableChanged(); @@ -275,7 +279,7 @@ signals: void lTerminateAllCalls(); // Hangup all calls void lSetSpeakerMuted(bool muted); void lSetMicrophoneMuted(bool isMuted); - void lSetLocalVideoEnabled(bool enabled); + void lSetCameraEnabled(bool enabled); void lSetVideoEnabled(bool enabled); void lSetPaused(bool paused); void lTransferCall(QString address); @@ -331,6 +335,7 @@ private: bool mSpeakerMuted = false; bool mMicrophoneMuted = false; bool mLocalVideoEnabled = false; + bool mCameraEnabled = false; bool mVideoEnabled = false; bool mPaused = false; bool mRemoteVideoEnabled = false; diff --git a/Linphone/core/call/CallList.hpp b/Linphone/core/call/CallList.hpp index 1b2e22e7e..d3dfb0566 100644 --- a/Linphone/core/call/CallList.hpp +++ b/Linphone/core/call/CallList.hpp @@ -33,7 +33,7 @@ class CoreModel; class CallList : public ListProxy, public AbstractObject { Q_OBJECT - Q_PROPERTY(CallGui* currentCall READ getCurrentCall WRITE setCurrentCall NOTIFY currentCallChanged) + Q_PROPERTY(CallGui *currentCall READ getCurrentCall WRITE setCurrentCall NOTIFY currentCallChanged) public: static QSharedPointer create(); // Create a CallCore and make connections to List. diff --git a/Linphone/core/chat/ChatCore.cpp b/Linphone/core/chat/ChatCore.cpp index a29e08bf9..149b8262f 100644 --- a/Linphone/core/chat/ChatCore.cpp +++ b/Linphone/core/chat/ChatCore.cpp @@ -118,6 +118,7 @@ ChatCore::ChatCore(const std::shared_ptr &chatRoom) : QObjec ChatCore::~ChatCore() { lDebug() << "[ChatCore] delete" << this; mustBeInMainThread("~" + getClassName()); + if (mChatModelConnection) mChatModelConnection->disconnect(); emit mChatModel->removeListener(); } @@ -162,14 +163,13 @@ void ChatCore::setSelf(QSharedPointer me) { mChatModelConnection->makeConnectToCore(&ChatCore::lDelete, [this]() { mChatModelConnection->invokeToModel([this]() { mChatModel->deleteChatRoom(); }); }); - mChatModelConnection->makeConnectToModel( - &ChatModel::deleted, [this]() { mChatModelConnection->invokeToCore([this]() { emit deleted(); }); }); mChatModelConnection->makeConnectToModel( &ChatModel::stateChanged, [this](const std::shared_ptr &chatRoom, linphone::ChatRoom::State newState) { auto state = LinphoneEnums::fromLinphone(newState); bool isReadOnly = chatRoom->isReadOnly(); + if (newState == linphone::ChatRoom::State::Deleted) emit deleted(); mChatModelConnection->invokeToCore([this, state, isReadOnly]() { setChatRoomState(state); setIsReadOnly(isReadOnly); @@ -207,8 +207,8 @@ void ChatCore::setSelf(QSharedPointer me) { &ChatModel::newEvent, [this](const std::shared_ptr &chatRoom, const std::shared_ptr &eventLog) { if (mChatModel->getMonitor() != chatRoom) return; - qDebug() << "EVENT LOG RECEIVED IN CHATROOM" << mChatModel->getTitle(); - auto event = EventLogCore::create(eventLog); + lDebug() << "EVENT LOG RECEIVED IN CHATROOM" << mChatModel->getTitle(); + auto event = EventLogCore::create(eventLog, chatRoom); if (event->isHandled()) { mChatModelConnection->invokeToCore([this, event]() { emit eventsInserted({event}); }); } @@ -220,10 +220,10 @@ void ChatCore::setSelf(QSharedPointer me) { &ChatModel::chatMessagesReceived, [this](const std::shared_ptr &chatRoom, const std::list> &eventsLog) { if (mChatModel->getMonitor() != chatRoom) return; - qDebug() << "CHAT MESSAGE RECEIVED IN CHATROOM" << mChatModel->getTitle(); + lDebug() << "CHAT MESSAGE RECEIVED IN CHATROOM" << mChatModel->getTitle(); QList> list; for (auto &e : eventsLog) { - auto event = EventLogCore::create(e); + auto event = EventLogCore::create(e, chatRoom); list.push_back(event); } mChatModelConnection->invokeToCore([this, list]() { @@ -234,13 +234,14 @@ void ChatCore::setSelf(QSharedPointer me) { }); mChatModelConnection->makeConnectToCore(&ChatCore::lMarkAsRead, [this]() { - auto mainWindow = Utils::getMainWindow(); - if (mainWindow->isActive()) mChatModelConnection->invokeToModel([this]() { mChatModel->markAsRead(); }); + auto lastActiveWindow = Utils::getLastActiveWindow(); + if (lastActiveWindow && lastActiveWindow->isActive()) + mChatModelConnection->invokeToModel([this]() { mChatModel->markAsRead(); }); else { - connect(mainWindow, &QQuickWindow::activeChanged, this, [this, mainWindow] { - if (mainWindow->isActive()) { - disconnect(mainWindow, &QQuickWindow::activeChanged, this, nullptr); - mChatModelConnection->invokeToModel([this, mainWindow] { mChatModel->markAsRead(); }); + connect(lastActiveWindow, &QQuickWindow::activeChanged, this, [this, lastActiveWindow] { + if (lastActiveWindow->isActive()) { + disconnect(lastActiveWindow, &QQuickWindow::activeChanged, this, nullptr); + mChatModelConnection->invokeToModel([this, lastActiveWindow] { mChatModel->markAsRead(); }); } }); } @@ -285,7 +286,7 @@ void ChatCore::setSelf(QSharedPointer me) { mChatModelConnection->makeConnectToModel( &ChatModel::chatMessageSending, [this](const std::shared_ptr &chatRoom, const std::shared_ptr &eventLog) { - auto event = EventLogCore::create(eventLog); + auto event = EventLogCore::create(eventLog, chatRoom); mChatModelConnection->invokeToCore([this, event]() { emit eventsInserted({event}); }); }); mChatModelConnection->makeConnectToCore( @@ -362,12 +363,16 @@ void ChatCore::setSelf(QSharedPointer me) { auto participants = buildParticipants(chatRoom); mChatModelConnection->invokeToCore([this, participants]() { setParticipants(participants); }); }); - mChatModelConnection->makeConnectToModel( - &ChatModel::participantAdminStatusChanged, [this](const std::shared_ptr &chatRoom, - const std::shared_ptr &eventLog) { - auto participants = buildParticipants(chatRoom); - mChatModelConnection->invokeToCore([this, participants]() { setParticipants(participants); }); - }); + mChatModelConnection->makeConnectToModel(&ChatModel::participantAdminStatusChanged, + [this](const std::shared_ptr &chatRoom, + const std::shared_ptr &eventLog) { + auto participants = buildParticipants(chatRoom); + bool meAdmin = chatRoom->getMe()->isAdmin(); + mChatModelConnection->invokeToCore([this, participants, meAdmin]() { + setParticipants(participants); + setMeAdmin(meAdmin); + }); + }); mChatModelConnection->makeConnectToCore(&ChatCore::lRemoveParticipantAtIndex, [this](int index) { mChatModelConnection->invokeToModel([this, index]() { mChatModel->removeParticipantAtIndex(index); }); }); @@ -491,7 +496,7 @@ ChatMessageGui *ChatCore::getLastMessage() const { void ChatCore::setLastMessage(QSharedPointer lastMessage) { if (mLastMessage != lastMessage) { - disconnect(mLastMessage.get()); + if (mLastMessage) disconnect(mLastMessage.get(), &ChatMessageCore::messageStateChanged, this, nullptr); mLastMessage = lastMessage; connect(mLastMessage.get(), &ChatMessageCore::messageStateChanged, this, &ChatCore::lastMessageChanged); emit lastMessageChanged(); @@ -544,10 +549,6 @@ std::shared_ptr ChatCore::getModel() const { return mChatModel; } -QSharedPointer> ChatCore::getChatModelConnection() const { - return mChatModelConnection; -} - bool ChatCore::isMuted() const { return mIsMuted; } @@ -681,4 +682,4 @@ void ChatCore::updateInfo(const std::shared_ptr &updatedFriend } } } -} \ No newline at end of file +} diff --git a/Linphone/core/chat/ChatCore.hpp b/Linphone/core/chat/ChatCore.hpp index 9ec758050..ec7ee734a 100644 --- a/Linphone/core/chat/ChatCore.hpp +++ b/Linphone/core/chat/ChatCore.hpp @@ -64,7 +64,6 @@ public: Q_PROPERTY( int ephemeralLifetime READ getEphemeralLifetime WRITE lSetEphemeralLifetime NOTIFY ephemeralLifetimeChanged) Q_PROPERTY(bool muted READ isMuted WRITE lSetMuted NOTIFY mutedChanged) - Q_PROPERTY(bool conferenceJoined MEMBER mConferenceJoined NOTIFY conferenceJoined) Q_PROPERTY(bool meAdmin READ getMeAdmin WRITE setMeAdmin NOTIFY meAdminChanged) Q_PROPERTY(QVariantList participants READ getParticipantsGui NOTIFY participantsChanged) Q_PROPERTY(QStringList participantsAddresses READ getParticipantsAddresses WRITE lSetParticipantsAddresses NOTIFY @@ -142,7 +141,6 @@ public: void setComposingAddress(QString composingAddress); std::shared_ptr getModel() const; - QSharedPointer> getChatModelConnection() const; void setParticipants(QList> participants); QList> buildParticipants(const std::shared_ptr &chatRoom) const; diff --git a/Linphone/core/chat/ChatList.cpp b/Linphone/core/chat/ChatList.cpp index 222a1e1f6..8061f19b6 100644 --- a/Linphone/core/chat/ChatList.cpp +++ b/Linphone/core/chat/ChatList.cpp @@ -54,13 +54,15 @@ ChatList::~ChatList() { } void ChatList::connectItem(QSharedPointer chat) { - connect(chat.get(), &ChatCore::deleted, this, [this, chat] { - disconnect(chat.get()); - remove(chat); - // We cannot use countChanged here because it is called before mList - // really has removed the item, then emit specific signal - emit chatRemoved(chat ? new ChatGui(chat) : nullptr); - }); + connect( + chat.get(), &ChatCore::deleted, this, + [this, chat] { + disconnect(chat.get(), &ChatCore::unreadMessagesCountChanged, this, nullptr); + disconnect(chat.get(), &ChatCore::lastUpdatedTimeChanged, this, nullptr); + disconnect(chat.get(), &ChatCore::lastMessageChanged, this, nullptr); + remove(chat); + }, + Qt::SingleShotConnection); auto dataChange = [this, chat] { int i = -1; get(chat.get(), &i); @@ -94,7 +96,6 @@ void ChatList::setSelf(QSharedPointer me) { mModelConnection->invokeToModel([this]() { mustBeInLinphoneThread(getClassName()); beginResetModel(); - mList.clear(); // Avoid copy to lambdas QList> *chats = new QList>(); auto currentAccount = CoreModel::getInstance()->getCore()->getDefaultAccount(); @@ -118,6 +119,7 @@ void ChatList::setSelf(QSharedPointer me) { disconnect(chat.get(), &ChatCore::lastMessageChanged, this, nullptr); } } + mList.clear(); for (auto &chat : *chats) { connectItem(chat); } @@ -143,18 +145,7 @@ void ChatList::setSelf(QSharedPointer me) { return; } auto chatCore = ChatCore::create(room); - mModelConnection->invokeToCore([this, chatCore] { - auto chatList = getSharedList(); - auto it = std::find_if(chatList.begin(), chatList.end(), [chatCore](const QSharedPointer item) { - return item && chatCore && item->getModel() && chatCore->getModel() && - item->getModel()->getMonitor() == chatCore->getModel()->getMonitor(); - }); - if (it == chatList.end()) { - connectItem(chatCore); - add(chatCore); - emit chatAdded(); - } - }); + mModelConnection->invokeToCore([this, chatCore] { addChatInList(chatCore); }); }; mModelConnection->makeConnectToModel(&CoreModel::messageReceived, [this, addChatToList](const std::shared_ptr &core, @@ -195,17 +186,19 @@ int ChatList::findChatIndex(ChatGui *chatGui) { return it == chatList.end() ? -1 : std::distance(chatList.begin(), it); } -void ChatList::addChatInList(QSharedPointer chatCore) { +bool ChatList::addChatInList(QSharedPointer chatCore) { + mustBeInMainThread(log().arg(Q_FUNC_INFO)); auto chatList = getSharedList(); auto it = std::find_if(chatList.begin(), chatList.end(), [chatCore](const QSharedPointer item) { - return item && chatCore && item->getModel() && chatCore->getModel() && - item->getModel()->getMonitor() == chatCore->getModel()->getMonitor(); + return item && chatCore && item->getIdentifier() == chatCore->getIdentifier(); }); if (it == chatList.end()) { connectItem(chatCore); add(chatCore); emit chatAdded(); + return true; } + return false; } QVariant ChatList::data(const QModelIndex &index, int role) const { diff --git a/Linphone/core/chat/ChatList.hpp b/Linphone/core/chat/ChatList.hpp index b6fad074c..0ec7ab87a 100644 --- a/Linphone/core/chat/ChatList.hpp +++ b/Linphone/core/chat/ChatList.hpp @@ -42,13 +42,12 @@ public: void connectItem(QSharedPointer chat); int findChatIndex(ChatGui *chat); - void addChatInList(QSharedPointer chatCore); + bool addChatInList(QSharedPointer chatCore); virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; signals: void lUpdate(); void filterChanged(QString filter); - void chatRemoved(ChatGui *chat); void chatAdded(); void chatUpdated(); diff --git a/Linphone/core/chat/ChatProxy.cpp b/Linphone/core/chat/ChatProxy.cpp index c5a84714a..fd30a71a6 100644 --- a/Linphone/core/chat/ChatProxy.cpp +++ b/Linphone/core/chat/ChatProxy.cpp @@ -25,7 +25,7 @@ DEFINE_ABSTRACT_OBJECT(ChatProxy) -ChatProxy::ChatProxy(QObject *parent) : LimitProxy(parent) { +ChatProxy::ChatProxy(QObject *parent) { mList = ChatList::create(); setSourceModel(mList.get()); setDynamicSortFilter(true); @@ -35,53 +35,47 @@ ChatProxy::~ChatProxy() { } void ChatProxy::setSourceModel(QAbstractItemModel *model) { - auto oldChatList = getListModel(); + auto oldChatList = dynamic_cast(sourceModel()); if (oldChatList) { - disconnect(oldChatList); + disconnect(this, &ChatProxy::filterTextChanged, oldChatList, nullptr); + disconnect(oldChatList, &ChatList::chatAdded, this, nullptr); + disconnect(oldChatList, &ChatList::dataChanged, this, nullptr); } auto newChatList = dynamic_cast(model); if (newChatList) { connect(this, &ChatProxy::filterTextChanged, newChatList, [this, newChatList] { emit newChatList->filterChanged(getFilterText()); }); - connect(newChatList, &ChatList::chatRemoved, this, &ChatProxy::chatRemoved); connect(newChatList, &ChatList::chatAdded, this, [this] { invalidate(); }); connect(newChatList, &ChatList::dataChanged, this, [this] { invalidate(); }); } - auto firstList = new SortFilterList(model, Qt::AscendingOrder); - firstList->setDynamicSortFilter(true); - setSourceModels(firstList); + QSortFilterProxyModel::setSourceModel(newChatList); sort(0); } int ChatProxy::findChatIndex(ChatGui *chatGui) { - auto chatList = getListModel(); + auto chatList = dynamic_cast(sourceModel()); if (chatList) { auto listIndex = chatList->findChatIndex(chatGui); if (listIndex != -1) { - listIndex = - dynamic_cast(sourceModel())->mapFromSource(chatList->index(listIndex, 0)).row(); - if (mMaxDisplayItems <= listIndex) setMaxDisplayItems(listIndex + mDisplayItemsStep); + listIndex = mapFromSource(chatList->index(listIndex, 0)).row(); return listIndex; } } return -1; } -void ChatProxy::addChatInList(ChatGui *chatGui) { - auto chatList = getListModel(); +bool ChatProxy::addChatInList(ChatGui *chatGui) { + auto chatList = dynamic_cast(sourceModel()); if (chatList && chatGui) { - chatList->addChatInList(chatGui->mCore); + return chatList->addChatInList(chatGui->mCore); } + return false; } -bool ChatProxy::SortFilterList::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const { - return true; -} - -bool ChatProxy::SortFilterList::lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const { +bool ChatProxy::lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const { if (!mFilterText.isEmpty()) return false; auto l = getItemAtSource(sourceLeft.row()); auto r = getItemAtSource(sourceRight.row()); - if (l && r) return l->getLastUpdatedTime() >= r->getLastUpdatedTime(); + if (l && r) return l->getLastUpdatedTime() > r->getLastUpdatedTime(); return false; } diff --git a/Linphone/core/chat/ChatProxy.hpp b/Linphone/core/chat/ChatProxy.hpp index 02a980ed6..f9e6c48cf 100644 --- a/Linphone/core/chat/ChatProxy.hpp +++ b/Linphone/core/chat/ChatProxy.hpp @@ -21,29 +21,26 @@ #ifndef CHAT_PROXY_H_ #define CHAT_PROXY_H_ -#include "../proxy/LimitProxy.hpp" +#include "../proxy/SortFilterProxy.hpp" #include "core/chat/ChatGui.hpp" #include "core/chat/ChatList.hpp" #include "tool/AbstractObject.hpp" // ============================================================================= -class ChatProxy : public LimitProxy, public AbstractObject { +class ChatProxy : public SortFilterProxy, public AbstractObject { Q_OBJECT public: - DECLARE_SORTFILTER_CLASS() - ChatProxy(QObject *parent = Q_NULLPTR); ~ChatProxy(); void setSourceModel(QAbstractItemModel *sourceModel) override; - Q_INVOKABLE int findChatIndex(ChatGui *chatGui); - Q_INVOKABLE void addChatInList(ChatGui *chatGui); + bool lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const override; -signals: - void chatRemoved(ChatGui *chat); + Q_INVOKABLE int findChatIndex(ChatGui *chatGui); + Q_INVOKABLE bool addChatInList(ChatGui *chatGui); protected: QSharedPointer mList; diff --git a/Linphone/core/chat/message/ChatMessageCore.cpp b/Linphone/core/chat/message/ChatMessageCore.cpp index 8cbd82dbd..ff1dbe9fc 100644 --- a/Linphone/core/chat/message/ChatMessageCore.cpp +++ b/Linphone/core/chat/message/ChatMessageCore.cpp @@ -112,88 +112,91 @@ ChatMessageCore::ChatMessageCore(const std::shared_ptr &c // lDebug() << "[ChatMessageCore] new" << this; mustBeInLinphoneThread(getClassName()); App::getInstance()->mEngine->setObjectOwnership(this, QQmlEngine::CppOwnership); - mChatMessageModel = Utils::makeQObject_ptr(chatmessage); - mChatMessageModel->setSelf(mChatMessageModel); - mText = ToolModel::getMessageFromContent(chatmessage->getContents()); - mUtf8Text = mChatMessageModel->getUtf8Text(); - mHasTextContent = mChatMessageModel->getHasTextContent(); - mTimestamp = QDateTime::fromSecsSinceEpoch(chatmessage->getTime()); - mIsOutgoing = chatmessage->isOutgoing(); - mIsRemoteMessage = !chatmessage->isOutgoing(); - mPeerAddress = Utils::coreStringToAppString(chatmessage->getPeerAddress()->asStringUriOnly()); - mPeerName = ToolModel::getDisplayName(chatmessage->getPeerAddress()); - auto fromAddress = chatmessage->getFromAddress(); - // fromAddress->clean(); - mFromAddress = Utils::coreStringToAppString(fromAddress->asStringUriOnly()); - mFromName = ToolModel::getDisplayName(chatmessage->getFromAddress()); - mToName = ToolModel::getDisplayName(chatmessage->getToAddress()); + if (chatmessage) { + mChatMessageModel = Utils::makeQObject_ptr(chatmessage); + mChatMessageModel->setSelf(mChatMessageModel); + mText = ToolModel::getMessageFromContent(chatmessage->getContents()); + mUtf8Text = mChatMessageModel->getUtf8Text(); + mHasTextContent = mChatMessageModel->getHasTextContent(); + mTimestamp = QDateTime::fromSecsSinceEpoch(chatmessage->getTime()); + mIsOutgoing = chatmessage->isOutgoing(); + mIsRemoteMessage = !chatmessage->isOutgoing(); + mPeerAddress = Utils::coreStringToAppString(chatmessage->getPeerAddress()->asStringUriOnly()); + mPeerName = ToolModel::getDisplayName(chatmessage->getPeerAddress()); + auto fromAddress = chatmessage->getFromAddress(); + // fromAddress->clean(); + mFromAddress = Utils::coreStringToAppString(fromAddress->asStringUriOnly()); + mFromName = ToolModel::getDisplayName(chatmessage->getFromAddress()); + mToName = ToolModel::getDisplayName(chatmessage->getToAddress()); + auto chatroom = chatmessage->getChatRoom(); + mIsFromChatGroup = chatroom->hasCapability((int)linphone::ChatRoom::Capabilities::Conference) && + !chatroom->hasCapability((int)linphone::ChatRoom::Capabilities::OneToOne); + mIsRead = chatmessage->isRead(); + mMessageState = LinphoneEnums::fromLinphone(chatmessage->getState()); + mIsEphemeral = chatmessage->isEphemeral(); - auto chatroom = chatmessage->getChatRoom(); - mIsFromChatGroup = chatroom->hasCapability((int)linphone::ChatRoom::Capabilities::Conference) && - !chatroom->hasCapability((int)linphone::ChatRoom::Capabilities::OneToOne); - mIsRead = chatmessage->isRead(); - mMessageState = LinphoneEnums::fromLinphone(chatmessage->getState()); - mIsEphemeral = chatmessage->isEphemeral(); - if (mIsEphemeral) { - auto now = QDateTime::currentDateTime(); - mEphemeralDuration = chatmessage->getEphemeralExpireTime() == 0 - ? chatmessage->getEphemeralLifetime() - : now.secsTo(QDateTime::fromSecsSinceEpoch(chatmessage->getEphemeralExpireTime())); - } - mMessageId = Utils::coreStringToAppString(chatmessage->getMessageId()); - for (auto content : chatmessage->getContents()) { - auto contentCore = ChatMessageContentCore::create(content, mChatMessageModel); - mChatMessageContentList.push_back(contentCore); - if ((content->isFile() || content->isFileTransfer()) && !content->isVoiceRecording()) mHasFileContent = true; - if (content->isIcalendar()) mIsCalendarInvite = true; - if (content->isVoiceRecording()) { - mIsVoiceRecording = true; - mVoiceRecordingContent = contentCore; + if (mIsEphemeral) { + auto now = QDateTime::currentDateTime(); + mEphemeralDuration = chatmessage->getEphemeralExpireTime() == 0 + ? chatmessage->getEphemeralLifetime() + : now.secsTo(QDateTime::fromSecsSinceEpoch(chatmessage->getEphemeralExpireTime())); } - } - //: "Reactions": all reactions for one message label - mTotalReactionsLabel = tr("all_reactions_label"); - auto reac = chatmessage->getOwnReaction(); - mOwnReaction = reac ? Utils::coreStringToAppString(reac->getBody()) : QString(); - for (auto &reaction : chatmessage->getReactions()) { - if (reaction) { - auto fromAddr = reaction->getFromAddress()->clone(); - fromAddr->clean(); - auto reac = - Reaction::createMessageReactionVariant(Utils::coreStringToAppString(reaction->getBody()), - Utils::coreStringToAppString(fromAddr->asStringUriOnly())); - mReactions.append(reac); - - auto it = std::find_if(mReactionsSingletonMap.begin(), mReactionsSingletonMap.end(), - [body = reac.mBody](QVariant data) { - auto dataBody = data.toMap()["body"].toString(); - return body == dataBody; - }); - if (it == mReactionsSingletonMap.end()) - mReactionsSingletonMap.push_back(createReactionSingletonVariant(reac.mBody, 1)); - else { - auto map = it->toMap(); - auto count = map["count"].toInt(); - ++count; - map.remove("count"); - map.insert("count", count); - mReactionsSingletonMap.erase(it); - mReactionsSingletonMap.push_back(map); + mMessageId = Utils::coreStringToAppString(chatmessage->getMessageId()); + for (auto content : chatmessage->getContents()) { + auto contentCore = ChatMessageContentCore::create(content, mChatMessageModel); + mChatMessageContentList.push_back(contentCore); + if ((content->isFile() || content->isFileTransfer()) && !content->isVoiceRecording()) + mHasFileContent = true; + if (content->isIcalendar()) mIsCalendarInvite = true; + if (content->isVoiceRecording()) { + mIsVoiceRecording = true; + mVoiceRecordingContent = contentCore; } } - } - connect(this, &ChatMessageCore::messageReactionChanged, this, &ChatMessageCore::resetReactionsSingleton); + //: "Reactions": all reactions for one message label + mTotalReactionsLabel = tr("all_reactions_label"); + auto reac = chatmessage->getOwnReaction(); + mOwnReaction = reac ? Utils::coreStringToAppString(reac->getBody()) : QString(); + for (auto &reaction : chatmessage->getReactions()) { + if (reaction) { + auto fromAddr = reaction->getFromAddress()->clone(); + fromAddr->clean(); + auto reac = + Reaction::createMessageReactionVariant(Utils::coreStringToAppString(reaction->getBody()), + Utils::coreStringToAppString(fromAddr->asStringUriOnly())); + mReactions.append(reac); - mIsForward = chatmessage->isForward(); - mIsReply = chatmessage->isReply(); - if (mIsReply) { - auto replymessage = chatmessage->getReplyMessage(); - if (replymessage) { - mReplyText = ToolModel::getMessageFromContent(replymessage->getContents()); - if (mIsFromChatGroup) mRepliedToName = ToolModel::getDisplayName(replymessage->getFromAddress()); + auto it = std::find_if(mReactionsSingletonMap.begin(), mReactionsSingletonMap.end(), + [body = reac.mBody](QVariant data) { + auto dataBody = data.toMap()["body"].toString(); + return body == dataBody; + }); + if (it == mReactionsSingletonMap.end()) + mReactionsSingletonMap.push_back(createReactionSingletonVariant(reac.mBody, 1)); + else { + auto map = it->toMap(); + auto count = map["count"].toInt(); + ++count; + map.remove("count"); + map.insert("count", count); + mReactionsSingletonMap.erase(it); + mReactionsSingletonMap.push_back(map); + } + } } + connect(this, &ChatMessageCore::messageReactionChanged, this, &ChatMessageCore::resetReactionsSingleton); + + mIsForward = chatmessage->isForward(); + mIsReply = chatmessage->isReply(); + if (mIsReply) { + auto replymessage = chatmessage->getReplyMessage(); + if (replymessage) { + mReplyText = ToolModel::getMessageFromContent(replymessage->getContents()); + if (mIsFromChatGroup) mRepliedToName = ToolModel::getDisplayName(replymessage->getFromAddress()); + } + } + mImdnStatusList = computeDeliveryStatus(chatmessage); } - mImdnStatusList = computeDeliveryStatus(chatmessage); } ChatMessageCore::~ChatMessageCore() { diff --git a/Linphone/core/chat/message/EventLogCore.cpp b/Linphone/core/chat/message/EventLogCore.cpp index 53faca722..c2e689d71 100644 --- a/Linphone/core/chat/message/EventLogCore.cpp +++ b/Linphone/core/chat/message/EventLogCore.cpp @@ -26,14 +26,16 @@ DEFINE_ABSTRACT_OBJECT(EventLogCore) -QSharedPointer EventLogCore::create(const std::shared_ptr &eventLog) { - auto sharedPointer = QSharedPointer(new EventLogCore(eventLog), &QObject::deleteLater); +QSharedPointer EventLogCore::create(const std::shared_ptr &eventLog, + const std::shared_ptr &chatRoom) { + auto sharedPointer = QSharedPointer(new EventLogCore(eventLog, chatRoom), &QObject::deleteLater); sharedPointer->setSelf(sharedPointer); sharedPointer->moveToThread(App::getInstance()->thread()); return sharedPointer; } -EventLogCore::EventLogCore(const std::shared_ptr &eventLog) { +EventLogCore::EventLogCore(const std::shared_ptr &eventLog, + const std::shared_ptr &chatRoom) { mustBeInLinphoneThread(getClassName()); App::getInstance()->mEngine->setObjectOwnership(this, QQmlEngine::CppOwnership); mEventLogType = LinphoneEnums::fromLinphone(eventLog->getType()); @@ -52,7 +54,7 @@ EventLogCore::EventLogCore(const std::shared_ptr &even QString type = QString::fromLatin1( QMetaEnum::fromType().valueToKey(static_cast(mEventLogType))); mEventId = type + QString::number(static_cast(eventLog->getCreationTime())); - computeEvent(eventLog); + computeEvent(eventLog, chatRoom); } } @@ -94,7 +96,8 @@ std::shared_ptr EventLogCore::getModel() const { // Events (other than ChatMessage and CallLog which are handled in their respective Core) -void EventLogCore::computeEvent(const std::shared_ptr &eventLog) { +void EventLogCore::computeEvent(const std::shared_ptr &eventLog, + const std::shared_ptr &chatRoom) { mustBeInLinphoneThread(getClassName()); mHandled = true; mImportant = false; @@ -104,9 +107,15 @@ void EventLogCore::computeEvent(const std::shared_ptr switch (eventLog->getType()) { case linphone::EventLog::Type::ConferenceCreated: + if (chatRoom->hasCapability((int)linphone::ChatRoom::Capabilities::OneToOne) && + !chatRoom->hasCapability((int)linphone::ChatRoom::Capabilities::Conference)) + mHandled = false; mEventDetails = tr("conference_created_event"); break; case linphone::EventLog::Type::ConferenceTerminated: + if (chatRoom->hasCapability((int)linphone::ChatRoom::Capabilities::OneToOne) && + !chatRoom->hasCapability((int)linphone::ChatRoom::Capabilities::Conference)) + mHandled = false; mEventDetails = tr("conference_created_terminated"); mImportant = true; break; diff --git a/Linphone/core/chat/message/EventLogCore.hpp b/Linphone/core/chat/message/EventLogCore.hpp index fe0b4c550..0bf8ae5fd 100644 --- a/Linphone/core/chat/message/EventLogCore.hpp +++ b/Linphone/core/chat/message/EventLogCore.hpp @@ -51,8 +51,10 @@ class EventLogCore : public QObject, public AbstractObject { Q_PROPERTY(QDateTime timestamp READ getTimestamp CONSTANT) public: - static QSharedPointer create(const std::shared_ptr &eventLog); - EventLogCore(const std::shared_ptr &eventLog); + static QSharedPointer create(const std::shared_ptr &eventLog, + const std::shared_ptr &chatRoom); + EventLogCore(const std::shared_ptr &eventLog, + const std::shared_ptr &chatRoom); ~EventLogCore(); void setSelf(QSharedPointer me); QString getEventLogId(); @@ -87,7 +89,8 @@ private: ChatMessageCore *getChatMessageCorePointer(); CallHistoryCore *getCallHistoryCorePointer(); std::shared_ptr mEventLogModel; - void computeEvent(const std::shared_ptr &eventLog); + void computeEvent(const std::shared_ptr &eventLog, + const std::shared_ptr &chatRoom); }; #endif // EventLogCore_H_ diff --git a/Linphone/core/chat/message/EventLogList.cpp b/Linphone/core/chat/message/EventLogList.cpp index 4fca6b2b8..16831dfaf 100644 --- a/Linphone/core/chat/message/EventLogList.cpp +++ b/Linphone/core/chat/message/EventLogList.cpp @@ -64,7 +64,6 @@ void EventLogList::disconnectItem(const QSharedPointer &item) { if (message) { disconnect(message.get(), &ChatMessageCore::isReadChanged, this, nullptr); disconnect(message.get(), &ChatMessageCore::deleted, this, nullptr); - disconnect(message.get(), &ChatMessageCore::ephemeralDurationChanged, this, nullptr); } } @@ -82,45 +81,34 @@ void EventLogList::connectItem(const QSharedPointer &item) { } void EventLogList::setChatCore(QSharedPointer core) { - auto updateChatCore = [this](QSharedPointer core) { - if (mChatCore != core) { - if (mChatCore) { - disconnect(mChatCore.get(), &ChatCore::eventsInserted, this, nullptr); - disconnect(mChatCore.get(), &ChatCore::eventListCleared, this, nullptr); - } - mChatCore = core; - if (mChatCore) { - connect(mChatCore.get(), &ChatCore::eventListCleared, this, [this] { resetData(); }); - connect(mChatCore.get(), &ChatCore::eventsInserted, this, - [this](QList> list) { - auto eventsList = getSharedList(); - for (auto &event : list) { - auto it = std::find_if( - eventsList.begin(), eventsList.end(), - [event](const QSharedPointer item) { return item == event; }); - if (it == eventsList.end()) { - connectItem(event); - add(event); - int index; - get(event.get(), &index); - emit eventInserted(index, new EventLogGui(event)); - } - } - }); - } - lUpdate(); - emit chatGuiChanged(); + if (mChatCore != core) { + if (mChatCore) { + disconnect(mChatCore.get(), &ChatCore::eventsInserted, this, nullptr); + disconnect(mChatCore.get(), &ChatCore::eventListCleared, this, nullptr); } - }; - if (mIsUpdating) { - connect(this, &EventLogList::isUpdatingChanged, this, [this, core, updateChatCore] { - if (!mIsUpdating) { - updateChatCore(core); - disconnect(this, &EventLogList::isUpdatingChanged, this, nullptr); - } - }); - } else { - updateChatCore(core); + mChatCore = core; + if (mChatCore) { + connect(mChatCore.get(), &ChatCore::eventListCleared, this, [this] { resetData(); }); + connect(mChatCore.get(), &ChatCore::eventsInserted, this, [this](QList> list) { + auto eventsList = getSharedList(); + for (auto &event : list) { + auto it = std::find_if(eventsList.begin(), eventsList.end(), + [event](const QSharedPointer item) { return item == event; }); + if (it == eventsList.end()) { + connectItem(event); + prepend(event); + int index; + get(event.get(), &index); + if (event->getChatMessageCore() && !event->getChatMessageCore()->isRemoteMessage()) { + emit eventInsertedByUser(index); + } + } + } + }); + } + lUpdate(); + // setIsUpdating(false); + emit chatGuiChanged(); } } @@ -136,6 +124,13 @@ void EventLogList::setDisplayItemsStep(int displayItemsStep) { } } +void EventLogList::markIndexAsRead(int index) { + if (index < mList.count()) { + auto eventLog = mList[index].objectCast(); + if (eventLog && eventLog->getChatMessageCore()) eventLog->getChatMessageCore()->lMarkAsRead(); + } +} + void EventLogList::displayMore() { auto loadMoreItems = [this] { if (!mChatCore) return; @@ -152,14 +147,17 @@ void EventLogList::displayMore() { auto linphoneLogs = chatModel->getHistoryRange(totalItemsCount, newCount); QList> *events = new QList>(); for (auto it : linphoneLogs) { - auto model = EventLogCore::create(it); - events->push_back(model); + auto model = EventLogCore::create(it, chatModel->getMonitor()); + if (it->getChatMessage() || model->isHandled()) events->push_front(model); } mCoreModelConnection->invokeToCore([this, events] { int currentCount = mList.count(); - for (auto it = events->end() - 1; it >= events->begin(); --it) { - connectItem(*it); - prepend(*it); + if (!events->isEmpty()) { + for (int i = events->size() - 1; i >= 0; --i) { + const auto &ev = events->at(i); + connectItem(ev); + } + add(*events); } }); }); @@ -177,8 +175,10 @@ void EventLogList::displayMore() { void EventLogList::loadMessagesUpTo(std::shared_ptr event) { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); - auto oldestEventLoaded = getAt(0); - auto linOldest = std::const_pointer_cast(oldestEventLoaded->getModel()->getEventLog()); + auto oldestEventLoaded = mList.count() > 0 ? getAt(mList.count() - 1) : nullptr; + auto linOldest = oldestEventLoaded + ? std::const_pointer_cast(oldestEventLoaded->getModel()->getEventLog()) + : nullptr; auto chatModel = mChatCore->getModel(); assert(chatModel); if (!chatModel) return; @@ -187,47 +187,55 @@ void EventLogList::loadMessagesUpTo(std::shared_ptr event) { auto beforeEvents = chatModel->getHistoryRangeNear(mItemsToLoadBeforeSearchResult, 0, event, filters); auto linphoneLogs = chatModel->getHistoryRangeBetween(event, linOldest, filters); QList> *events = new QList>(); - for (auto it : beforeEvents) { - auto model = EventLogCore::create(it); - events->push_back(model); + const auto &linChatRoom = chatModel->getMonitor(); + for (const auto &it : beforeEvents) { + auto model = EventLogCore::create(it, linChatRoom); + if (it->getChatMessage() || model->isHandled()) events->push_front(model); } - for (auto it : linphoneLogs) { - auto model = EventLogCore::create(it); - events->push_back(model); + for (const auto &it : linphoneLogs) { + auto model = EventLogCore::create(it, linChatRoom); + if (it->getChatMessage() || model->isHandled()) events->push_front(model); } mCoreModelConnection->invokeToCore([this, events, event] { - for (auto &e : *events) { + for (const auto &e : *events) { connectItem(e); - add(e); } + add(*events); emit messagesLoadedUpTo(event); }); } int EventLogList::findFirstUnreadIndex() { auto eventList = getSharedList(); - auto it = std::find_if(eventList.begin(), eventList.end(), [](const QSharedPointer item) { - return item->getChatMessageCore() && !item->getChatMessageCore()->isRead(); + auto it = std::find_if(eventList.rbegin(), eventList.rend(), [](const QSharedPointer item) { + auto chatmessage = item->getChatMessageCore(); + return chatmessage && !chatmessage->isRead(); }); - return it == eventList.end() ? -1 : std::distance(eventList.begin(), it); + return it == eventList.rend() ? -1 : std::distance(it, eventList.rend()) - 1; } -void EventLogList::findChatMessageWithFilter(QString filter, - QSharedPointer startEvent, - bool forward, - bool isFirstResearch) { +void EventLogList::findChatMessageWithFilter(QString filter, int startIndex, bool forward, bool isFirstResearch) { if (mChatCore) { if (isFirstResearch) mLastFoundResult.reset(); auto chatModel = mChatCore->getModel(); + auto startEvent = + startIndex >= 0 && startIndex < mList.count() ? mList[startIndex].objectCast() : nullptr; + lInfo() << log().arg("searching event starting from index") << startIndex << "| event :" + << (startEvent && startEvent->getChatMessageCore() ? startEvent->getChatMessageCore()->getText() + : "null") + << "| filter :" << filter; auto startEventModel = startEvent ? startEvent->getModel() : nullptr; mCoreModelConnection->invokeToModel([this, chatModel, startEventModel, filter, forward, isFirstResearch] { auto linStartEvent = startEventModel ? startEventModel->getEventLog() : nullptr; auto eventLog = chatModel->searchMessageByText(filter, linStartEvent, forward); - if (!eventLog) + if (!eventLog) { // event not found, search in the entire history + lInfo() << log().arg("not found, search in entire history"); auto eventLog = chatModel->searchMessageByText(filter, nullptr, forward); + } int index = -1; if (eventLog) { + lInfo() << log().arg("event with filter found") << eventLog.get(); auto eventList = getSharedList(); auto it = std::find_if(eventList.begin(), eventList.end(), [eventLog](const QSharedPointer item) { @@ -255,6 +263,7 @@ void EventLogList::findChatMessageWithFilter(QString filter, loadMessagesUpTo(eventLog); } } else { + lInfo() << log().arg("event not found at all in history"); mCoreModelConnection->invokeToCore([this, index] { emit messageWithFilterFound(index); }); } }); @@ -277,6 +286,9 @@ void EventLogList::setSelf(QSharedPointer me) { } setIsUpdating(true); beginResetModel(); + for (auto &event : getSharedList()) { + disconnectItem(event); + } mList.clear(); if (!mChatCore) { endResetModel(); @@ -294,17 +306,10 @@ void EventLogList::setSelf(QSharedPointer me) { auto linphoneLogs = chatModel->getHistoryRange(0, mDisplayItemsStep); QList> *events = new QList>(); for (auto it : linphoneLogs) { - auto model = EventLogCore::create(it); - events->push_back(model); + auto model = EventLogCore::create(it, chatModel->getMonitor()); + if (it->getChatMessage() || model->isHandled()) events->push_front(model); } mCoreModelConnection->invokeToCore([this, events] { - for (auto &event : getSharedList()) { - auto message = event->getChatMessageCore(); - if (message) { - disconnect(message.get(), &ChatMessageCore::ephemeralDurationChanged, this, nullptr); - disconnect(message.get(), &ChatMessageCore::deleted, this, nullptr); - } - } for (auto &event : *events) { connectItem(event); mList.append(event); diff --git a/Linphone/core/chat/message/EventLogList.hpp b/Linphone/core/chat/message/EventLogList.hpp index 65118edde..deec5b88e 100644 --- a/Linphone/core/chat/message/EventLogList.hpp +++ b/Linphone/core/chat/message/EventLogList.hpp @@ -54,13 +54,12 @@ public: int findFirstUnreadIndex(); + void markIndexAsRead(int index); + void displayMore(); void setDisplayItemsStep(int displayItemsStep); - void findChatMessageWithFilter(QString filter, - QSharedPointer startEvent, - bool forward = true, - bool isFirstResearch = true); + void findChatMessageWithFilter(QString filter, int startIndex, bool forward = true, bool isFirstResearch = true); void setSelf(QSharedPointer me); virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; @@ -69,7 +68,7 @@ public: signals: void lUpdate(); void filterChanged(QString filter); - void eventInserted(int index, EventLogGui *message); + void eventInsertedByUser(int index); void messageWithFilterFound(int index); void listAboutToBeReset(); void chatGuiChanged(); @@ -79,7 +78,6 @@ signals: private: QString mFilter; QSharedPointer mChatCore; - QSharedPointer> mChatModelConnection; QSharedPointer> mCoreModelConnection; int mDisplayItemsStep = 0; int mItemsToLoadBeforeSearchResult = 3; diff --git a/Linphone/core/chat/message/EventLogProxy.cpp b/Linphone/core/chat/message/EventLogProxy.cpp index 2069ba1e3..a1e45850d 100644 --- a/Linphone/core/chat/message/EventLogProxy.cpp +++ b/Linphone/core/chat/message/EventLogProxy.cpp @@ -26,7 +26,7 @@ DEFINE_ABSTRACT_OBJECT(EventLogProxy) -EventLogProxy::EventLogProxy(QObject *parent) : LimitProxy(parent) { +EventLogProxy::EventLogProxy(QObject *parent) : QSortFilterProxyModel(parent) { mList = EventLogList::create(); setSourceModel(mList.get()); } @@ -35,54 +35,41 @@ EventLogProxy::~EventLogProxy() { } void EventLogProxy::setSourceModel(QAbstractItemModel *model) { - auto oldEventLogList = getListModel(); + auto oldEventLogList = dynamic_cast(sourceModel()); if (oldEventLogList) { - disconnect(oldEventLogList); + disconnect(oldEventLogList, &EventLogList::displayItemsStepChanged, this, nullptr); + disconnect(oldEventLogList, &EventLogList::messageWithFilterFound, this, nullptr); + disconnect(oldEventLogList, &EventLogList::eventInsertedByUser, this, nullptr); } auto newEventLogList = dynamic_cast(model); if (newEventLogList) { - connect(newEventLogList, &EventLogList::listAboutToBeReset, this, &EventLogProxy::listAboutToBeReset); - connect(newEventLogList, &EventLogList::chatGuiChanged, this, &EventLogProxy::chatGuiChanged); connect(this, &EventLogProxy::displayItemsStepChanged, newEventLogList, [this, newEventLogList] { newEventLogList->setDisplayItemsStep(mDisplayItemsStep); }); - connect(newEventLogList, &EventLogList::eventInserted, this, - [this, newEventLogList](int index, EventLogGui *event) { - invalidate(); - int proxyIndex = -1; - if (index != -1) { - proxyIndex = dynamic_cast(sourceModel()) - ->mapFromSource(newEventLogList->index(index, 0)) - .row(); - } - loadUntil(proxyIndex); - emit eventInserted(proxyIndex, event); - }); connect(newEventLogList, &EventLogList::messageWithFilterFound, this, [this, newEventLogList](int i) { - connect(this, &EventLogProxy::layoutChanged, newEventLogList, [this, i, newEventLogList] { - disconnect(this, &EventLogProxy::layoutChanged, newEventLogList, nullptr); - auto model = getListModel(); - int proxyIndex = - dynamic_cast(sourceModel())->mapFromSource(newEventLogList->index(i, 0)).row(); - if (i != -1) { - loadUntil(proxyIndex); - } - emit indexWithFilterFound(proxyIndex); - }); - invalidate(); + auto model = dynamic_cast(sourceModel()); + int proxyIndex = mapFromSource(newEventLogList->index(i, 0)).row(); + if (i != -1) { + loadUntil(proxyIndex); + } + emit indexWithFilterFound(proxyIndex); + }); + connect(newEventLogList, &EventLogList::eventInsertedByUser, this, [this, newEventLogList](int i) { + int proxyIndex = mapFromSource(newEventLogList->index(i, 0)).row(); + emit eventInsertedByUser(proxyIndex); }); } - setSourceModels(new SortFilterList(model, Qt::DescendingOrder)); - sort(0, Qt::DescendingOrder); + QSortFilterProxyModel::setSourceModel(model); } ChatGui *EventLogProxy::getChatGui() { - auto model = getListModel(); + auto model = dynamic_cast(sourceModel()); if (!mChatGui && model) mChatGui = model->getChat(); return mChatGui; } void EventLogProxy::setChatGui(ChatGui *chat) { - getListModel()->setChatGui(chat); + auto model = dynamic_cast(sourceModel()); + if (model) model->setChatGui(chat); } EventLogGui *EventLogProxy::getEventAtIndex(int i) { @@ -90,29 +77,86 @@ EventLogGui *EventLogProxy::getEventAtIndex(int i) { return eventCore == nullptr ? nullptr : new EventLogGui(eventCore); } +int EventLogProxy::getCount() const { + return rowCount(); +} + +int EventLogProxy::getInitialDisplayItems() const { + return mInitialDisplayItems; +} + +void EventLogProxy::setInitialDisplayItems(int initialItems) { + if (mInitialDisplayItems != initialItems) { + mInitialDisplayItems = initialItems; + if (getMaxDisplayItems() <= mInitialDisplayItems) setMaxDisplayItems(initialItems); + if (getDisplayItemsStep() <= 0) setDisplayItemsStep(initialItems); + emit initialDisplayItemsChanged(); + } +} + +int EventLogProxy::getDisplayCount(int listCount, int maxCount) { + return maxCount >= 0 ? qMin(listCount, maxCount) : listCount; +} + +int EventLogProxy::getDisplayCount(int listCount) const { + return getDisplayCount(listCount, mMaxDisplayItems); +} + QSharedPointer EventLogProxy::getEventCoreAtIndex(int i) { - return getItemAt(i); + auto model = dynamic_cast(sourceModel()); + if (model) { + return model->getAt(mapToSource(index(i, 0)).row()); + } + return nullptr; } void EventLogProxy::displayMore() { - auto model = getListModel(); + auto model = dynamic_cast(sourceModel()); if (model) { model->displayMore(); } } +int EventLogProxy::getMaxDisplayItems() const { + return mMaxDisplayItems; +} + +void EventLogProxy::setMaxDisplayItems(int maxItems) { + if (mMaxDisplayItems != maxItems) { + auto model = sourceModel(); + int modelCount = model ? model->rowCount() : 0; + int oldCount = getDisplayCount(modelCount); + mMaxDisplayItems = maxItems; + if (getInitialDisplayItems() > mMaxDisplayItems) setInitialDisplayItems(maxItems); + if (getDisplayItemsStep() <= 0) setDisplayItemsStep(maxItems); + emit maxDisplayItemsChanged(); + + if (model && getDisplayCount(modelCount) != oldCount) { + invalidate(); + } + } +} + +int EventLogProxy::getDisplayItemsStep() const { + return mDisplayItemsStep; +} + +void EventLogProxy::setDisplayItemsStep(int step) { + if (step > 0 && mDisplayItemsStep != step) { + mDisplayItemsStep = step; + emit displayItemsStepChanged(); + } +} void EventLogProxy::loadUntil(int index) { - auto confInfoList = getListModel(); if (mMaxDisplayItems < index) setMaxDisplayItems(index + mDisplayItemsStep); } int EventLogProxy::findFirstUnreadIndex() { - auto eventLogList = getListModel(); + auto eventLogList = dynamic_cast(sourceModel()); if (eventLogList) { auto listIndex = eventLogList->findFirstUnreadIndex(); if (listIndex != -1) { - listIndex = - dynamic_cast(sourceModel())->mapFromSource(eventLogList->index(listIndex, 0)).row(); + listIndex = mapFromSource(eventLogList->index(listIndex, 0)).row(); if (mMaxDisplayItems <= listIndex) setMaxDisplayItems(listIndex + mDisplayItemsStep); return listIndex; } else { @@ -122,32 +166,43 @@ int EventLogProxy::findFirstUnreadIndex() { return 0; } +QString EventLogProxy::getFilterText() const { + return mFilterText; +} + +void EventLogProxy::setFilterText(const QString &filter) { + if (mFilterText != filter) { +#if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) + beginFilterChange(); + mFilterText = filter; + endFilterChange(); +#else + mFilterText = filter; + invalidateFilter(); +#endif + emit filterTextChanged(); + } +} + +QSharedPointer EventLogProxy::getAt(int atIndex) const { + auto model = dynamic_cast(sourceModel()); + if (model) { + return model->getAt(mapToSource(index(atIndex, 0)).row()); + } + return nullptr; +} + void EventLogProxy::markIndexAsRead(int proxyIndex) { - auto event = getItemAt(proxyIndex); + auto event = getAt(proxyIndex); if (event && event->getChatMessageCore()) event->getChatMessageCore()->lMarkAsRead(); } void EventLogProxy::findIndexCorrespondingToFilter(int startIndex, bool forward, bool isFirstResearch) { auto filter = getFilterText(); if (filter.isEmpty()) return; - auto eventLogList = getListModel(); + auto eventLogList = dynamic_cast(sourceModel()); if (eventLogList) { - auto startEvent = mLastSearchStart; - if (!startEvent) { - startEvent = getItemAt(startIndex); - } - eventLogList->findChatMessageWithFilter(filter, startEvent, forward, isFirstResearch); + auto listIndex = mapToSource(index(startIndex, 0)).row(); + eventLogList->findChatMessageWithFilter(filter, listIndex, forward, isFirstResearch); } -} - -bool EventLogProxy::SortFilterList::filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const { - auto l = getItemAtSource(sourceRow); - return l != nullptr; -} - -bool EventLogProxy::SortFilterList::lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const { - auto l = getItemAtSource(sourceLeft.row()); - auto r = getItemAtSource(sourceRight.row()); - if (l && r) return l->getTimestamp() <= r->getTimestamp(); - return true; -} +} \ No newline at end of file diff --git a/Linphone/core/chat/message/EventLogProxy.hpp b/Linphone/core/chat/message/EventLogProxy.hpp index 738a39472..093c19543 100644 --- a/Linphone/core/chat/message/EventLogProxy.hpp +++ b/Linphone/core/chat/message/EventLogProxy.hpp @@ -22,19 +22,26 @@ #define EVENT_LIST_PROXY_H_ #include "EventLogList.hpp" -#include "core/proxy/LimitProxy.hpp" +// #include "core/proxy/LimitProxy.hpp" #include "tool/AbstractObject.hpp" +#include // ============================================================================= class ChatGui; -class EventLogProxy : public LimitProxy, public AbstractObject { +class EventLogProxy : public QSortFilterProxyModel, public AbstractObject { Q_OBJECT + Q_PROPERTY(int count READ getCount NOTIFY countChanged) Q_PROPERTY(ChatGui *chatGui READ getChatGui WRITE setChatGui NOTIFY chatGuiChanged) + Q_PROPERTY(int initialDisplayItems READ getInitialDisplayItems WRITE setInitialDisplayItems NOTIFY + initialDisplayItemsChanged) + Q_PROPERTY(int maxDisplayItems READ getMaxDisplayItems WRITE setMaxDisplayItems NOTIFY maxDisplayItemsChanged) + Q_PROPERTY(int displayItemsStep READ getDisplayItemsStep WRITE setDisplayItemsStep NOTIFY displayItemsStepChanged) + Q_PROPERTY(QString filterText READ getFilterText WRITE setFilterText NOTIFY filterTextChanged) public: - DECLARE_SORTFILTER_CLASS() + // DECLARE_SORTFILTER_CLASS() EventLogProxy(QObject *parent = Q_NULLPTR); ~EventLogProxy(); @@ -43,8 +50,27 @@ public: void setChatGui(ChatGui *chat); void setSourceModel(QAbstractItemModel *sourceModel) override; + virtual int getCount() const; + static int getDisplayCount(int listCount, int maxCount); + int getDisplayCount(int listCount) const; + int getInitialDisplayItems() const; + void setInitialDisplayItems(int initialItems); - Q_INVOKABLE void displayMore() override; + int getMaxDisplayItems() const; + void setMaxDisplayItems(int maxItems); + + int getDisplayItemsStep() const; + void setDisplayItemsStep(int step); + + QString getFilterText() const; + void setFilterText(const QString &filter); + + // bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const override; + // bool lessThan(const QModelIndex &sourceLeft, const QModelIndex &sourceRight) const override; + + QSharedPointer getAt(int atIndex) const; + + Q_INVOKABLE void displayMore(); Q_INVOKABLE void loadUntil(int index); Q_INVOKABLE EventLogGui *getEventAtIndex(int i); QSharedPointer getEventCoreAtIndex(int i); @@ -53,15 +79,23 @@ public: Q_INVOKABLE void findIndexCorrespondingToFilter(int startIndex, bool forward = true, bool isFirstResearch = true); signals: - void eventInserted(int index, EventLogGui *message); + void eventInsertedByUser(int index); void indexWithFilterFound(int index); - void listAboutToBeReset(); void chatGuiChanged(); + void countChanged(); + void initialDisplayItemsChanged(); + void maxDisplayItemsChanged(); + void displayItemsStepChanged(); + void filterTextChanged(); protected: QSharedPointer mList; QSharedPointer mLastSearchStart; ChatGui *mChatGui = nullptr; + int mInitialDisplayItems = -1; + int mMaxDisplayItems = -1; + int mDisplayItemsStep = 5; + QString mFilterText; DECLARE_ABSTRACT_OBJECT }; diff --git a/Linphone/core/chat/message/content/ChatMessageContentCore.cpp b/Linphone/core/chat/message/content/ChatMessageContentCore.cpp index 8fe773e25..c68fd10e6 100644 --- a/Linphone/core/chat/message/content/ChatMessageContentCore.cpp +++ b/Linphone/core/chat/message/content/ChatMessageContentCore.cpp @@ -46,7 +46,7 @@ ChatMessageContentCore::ChatMessageContentCore(const std::shared_ptrgetFilePath()); + mFilePath = QDir::fromNativeSeparators(Utils::coreStringToAppString(content->getFilePath())); mIsFile = content->isFile(); mIsFileEncrypted = content->isFileEncrypted(); mIsFileTransfer = content->isFileTransfer(); @@ -67,8 +67,8 @@ ChatMessageContentCore::ChatMessageContentCore(const std::shared_ptr(content, chatMessageModel); } } @@ -92,11 +92,22 @@ void ChatMessageContentCore::setSelf(QSharedPointer me) }); mChatMessageContentModelConnection->makeConnectToModel( &ChatMessageContentModel::thumbnailChanged, [this, updateThumbnailType](QString thumbnail) { - mChatMessageContentModelConnection->invokeToCore([this, thumbnail] { setThumbnail(thumbnail); }); + mChatMessageContentModelConnection->invokeToCore([this, thumbnail] { setThumbnail(QUrl(thumbnail)); }); }); mChatMessageContentModelConnection->makeConnectToCore(&ChatMessageContentCore::lDownloadFile, [this]() { - mChatMessageContentModelConnection->invokeToModel([this] { mChatMessageContentModel->downloadFile(mName); }); + mChatMessageContentModelConnection->invokeToModel([this] { + QString *error = new QString(); + bool downloaded = mChatMessageContentModel->downloadFile(mName, error); + if (!downloaded) { + mChatMessageContentModelConnection->invokeToCore([this, error] { + //: Error downloading file %1 + if (error->isEmpty()) *error = tr("download_file_default_error").arg(mName); + Utils::showInformationPopup(tr("info_popup_error_titile"), *error, false); + delete error; + }); + } else delete error; + }); }); mChatMessageContentModelConnection->makeConnectToModel( &ChatMessageContentModel::wasDownloadedChanged, @@ -239,11 +250,11 @@ bool ChatMessageContentCore::wasDownloaded() const { return mWasDownloaded; } -QString ChatMessageContentCore::getThumbnail() const { +QUrl ChatMessageContentCore::getThumbnail() const { return mThumbnail; } -void ChatMessageContentCore::setThumbnail(const QString &data) { +void ChatMessageContentCore::setThumbnail(const QUrl &data) { if (mThumbnail != data) { mThumbnail = data; emit thumbnailChanged(); diff --git a/Linphone/core/chat/message/content/ChatMessageContentCore.hpp b/Linphone/core/chat/message/content/ChatMessageContentCore.hpp index 0c4652a05..b0f33c9d2 100644 --- a/Linphone/core/chat/message/content/ChatMessageContentCore.hpp +++ b/Linphone/core/chat/message/content/ChatMessageContentCore.hpp @@ -36,7 +36,7 @@ class ChatMessageContentCore : public QObject, public AbstractObject { Q_PROPERTY(QString name READ getName CONSTANT) Q_PROPERTY(quint64 fileOffset READ getFileOffset WRITE setFileOffset NOTIFY fileOffsetChanged) - Q_PROPERTY(QString thumbnail READ getThumbnail WRITE setThumbnail NOTIFY thumbnailChanged) + Q_PROPERTY(QUrl thumbnail READ getThumbnail WRITE setThumbnail NOTIFY thumbnailChanged) Q_PROPERTY(bool wasDownloaded READ wasDownloaded WRITE setWasDownloaded NOTIFY wasDownloadedChanged) Q_PROPERTY(QString filePath READ getFilePath WRITE setFilePath NOTIFY filePathChanged) Q_PROPERTY(QString utf8Text READ getUtf8Text CONSTANT) @@ -84,8 +84,8 @@ public: int getFileDuration() const; ConferenceInfoGui *getConferenceInfoGui() const; - void setThumbnail(const QString &data); - QString getThumbnail() const; + void setThumbnail(const QUrl &data); + QUrl getThumbnail() const; bool wasDownloaded() const; void setWasDownloaded(bool downloaded); @@ -121,7 +121,7 @@ private: bool mIsText; bool mIsVoiceRecording; int mFileDuration; - QString mThumbnail; + QUrl mThumbnail; QString mUtf8Text; QString mRichFormatText; QString mFilePath; diff --git a/Linphone/core/chat/message/content/ChatMessageContentList.cpp b/Linphone/core/chat/message/content/ChatMessageContentList.cpp index 652ab84a4..c776f0718 100644 --- a/Linphone/core/chat/message/content/ChatMessageContentList.cpp +++ b/Linphone/core/chat/message/content/ChatMessageContentList.cpp @@ -197,7 +197,8 @@ void ChatMessageContentList::setSelf(QSharedPointer me) mModelConnection->makeConnectToCore(&ChatMessageContentList::lUpdate, [this]() { for (auto &content : getSharedList()) { - if (content) disconnect(content.get()); + if (content) disconnect(content.get(), &ChatMessageContentCore::wasDownloadedChanged, this, nullptr); + if (content) disconnect(content.get(), &ChatMessageContentCore::thumbnailChanged, this, nullptr); } if (!mChatMessageCore) return; auto contents = mChatMessageCore->getChatMessageContentList(); diff --git a/Linphone/core/conference/ConferenceCore.cpp b/Linphone/core/conference/ConferenceCore.cpp index 9b9ddb5b0..d0b10f83f 100644 --- a/Linphone/core/conference/ConferenceCore.cpp +++ b/Linphone/core/conference/ConferenceCore.cpp @@ -47,6 +47,7 @@ ConferenceCore::ConferenceCore(const std::shared_ptr &conf mIsLocalScreenSharing = mConferenceModel->isLocalScreenSharing(); mIsScreenSharingEnabled = mConferenceModel->isScreenSharingEnabled(); mIsRecording = conference->isRecording(); + if (conference->getCurrentParams()) mIsChatEnabled = conference->getCurrentParams()->chatEnabled(); auto me = conference->getMe(); auto confAddress = conference->getConferenceAddress(); if (confAddress) { @@ -205,6 +206,10 @@ void ConferenceCore::setIsScreenSharingEnabled(bool state) { } } +bool ConferenceCore::isChatEnabled() const { + return mIsChatEnabled; +} + std::shared_ptr ConferenceCore::getModel() const { return mConferenceModel; } diff --git a/Linphone/core/conference/ConferenceCore.hpp b/Linphone/core/conference/ConferenceCore.hpp index 25d93fe47..19ce64657 100644 --- a/Linphone/core/conference/ConferenceCore.hpp +++ b/Linphone/core/conference/ConferenceCore.hpp @@ -37,6 +37,7 @@ class ConferenceCore : public QObject, public AbstractObject { Q_OBJECT public: Q_PROPERTY(QDateTime startDate READ getStartDate CONSTANT) + Q_PROPERTY(bool isChatEnabled READ isChatEnabled CONSTANT) // Q_PROPERTY(ParticipantDeviceList *participantDevices READ getParticipantDeviceList CONSTANT) // Q_PROPERTY(ParticipantModel* localParticipant READ getLocalParticipant NOTIFY localParticipantChanged) Q_PROPERTY(bool isReady MEMBER mIsReady WRITE setIsReady NOTIFY isReadyChanged) @@ -81,6 +82,8 @@ public: void setIsLocalScreenSharing(bool state); void setIsScreenSharingEnabled(bool state); + bool isChatEnabled() const; + std::shared_ptr getModel() const; //--------------------------------------------------------------------------- @@ -108,6 +111,7 @@ private: bool mIsRecording = false; bool mIsLocalScreenSharing = false; bool mIsScreenSharingEnabled = false; + bool mIsChatEnabled = false; QString mSubject; QString mConfUri; QDateTime mStartDate = QDateTime::currentDateTime(); diff --git a/Linphone/core/conference/ConferenceInfoCore.cpp b/Linphone/core/conference/ConferenceInfoCore.cpp index 9c8fd2a29..419f5478e 100644 --- a/Linphone/core/conference/ConferenceInfoCore.cpp +++ b/Linphone/core/conference/ConferenceInfoCore.cpp @@ -195,8 +195,9 @@ void ConferenceInfoCore::setSelf(QSharedPointer me) { QString uri; if (state == linphone::ConferenceScheduler::State::Ready) { uri = mConferenceInfoModel->getConferenceScheduler()->getUri(); - emit CoreModel::getInstance()->conferenceInfoReceived( - CoreModel::getInstance()->getCore(), mConferenceInfoModel->getConferenceInfo()); + emit CoreModel::getInstance() -> conferenceInfoReceived( + CoreModel::getInstance()->getCore(), + mConferenceInfoModel->getConferenceInfo()); } mConfInfoModelConnection->invokeToCore([this, state = LinphoneEnums::fromLinphone(state), infoState = LinphoneEnums::fromLinphone(confInfoState), diff --git a/Linphone/core/conference/ConferenceInfoList.cpp b/Linphone/core/conference/ConferenceInfoList.cpp index 715e23837..65cf2daf9 100644 --- a/Linphone/core/conference/ConferenceInfoList.cpp +++ b/Linphone/core/conference/ConferenceInfoList.cpp @@ -235,13 +235,17 @@ int ConferenceInfoList::getCurrentDateIndex() { return it == confInfoList.end() ? -1 : std::distance(confInfoList.begin(), it); } -QSharedPointer ConferenceInfoList::getCurrentDateConfInfo() { +QSharedPointer ConferenceInfoList::getCurrentDateConfInfo(bool enableCancelledConference) { auto today = QDate::currentDate(); auto confInfoList = getSharedList(); QList>::iterator it; if (mHaveCurrentDate) { it = std::find_if(confInfoList.begin(), confInfoList.end(), - [today](const QSharedPointer &item) { + [today, enableCancelledConference](const QSharedPointer &item) { + if (!item) return false; + if (!enableCancelledConference && + item->getConferenceInfoState() == LinphoneEnums::ConferenceInfoState::Cancelled) + return false; return item && item->getDateTimeUtc().date() == today; }); } else it = std::find(confInfoList.begin(), confInfoList.end(), nullptr); diff --git a/Linphone/core/conference/ConferenceInfoList.hpp b/Linphone/core/conference/ConferenceInfoList.hpp index afc1ed176..da57e7818 100644 --- a/Linphone/core/conference/ConferenceInfoList.hpp +++ b/Linphone/core/conference/ConferenceInfoList.hpp @@ -48,7 +48,7 @@ public: void updateHaveCurrentDate(); int getCurrentDateIndex(); - QSharedPointer getCurrentDateConfInfo(); + QSharedPointer getCurrentDateConfInfo(bool enableCancelledConference = false); QSharedPointer build(const std::shared_ptr &conferenceInfo); void connectItem(QSharedPointer confInfoCore); diff --git a/Linphone/core/conference/ConferenceInfoProxy.cpp b/Linphone/core/conference/ConferenceInfoProxy.cpp index d1799b3ad..81816d985 100644 --- a/Linphone/core/conference/ConferenceInfoProxy.cpp +++ b/Linphone/core/conference/ConferenceInfoProxy.cpp @@ -105,7 +105,7 @@ void ConferenceInfoProxy::clear() { mList->clearData(); } -ConferenceInfoGui *ConferenceInfoProxy::getCurrentDateConfInfo() { +ConferenceInfoGui *ConferenceInfoProxy::getCurrentDateConfInfo(bool enableCancelledConference) { if (mList) { auto confInfo = mList->getCurrentDateConfInfo(); return confInfo ? new ConferenceInfoGui(confInfo) : nullptr; @@ -150,7 +150,7 @@ bool ConferenceInfoProxy::SortFilterList::lessThan(const QModelIndex &sourceLeft auto nowDate = QDate::currentDate(); if (!l || !r) { // sort on date auto rdate = r ? r->getDateTimeUtc().date() : QDate::currentDate(); - return !l ? nowDate <= r->getDateTimeUtc().date() : l->getDateTimeUtc().date() < nowDate; + return !l ? nowDate < r->getDateTimeUtc().date() : l->getDateTimeUtc().date() < nowDate; } else { return l->getDateTimeUtc() < r->getDateTimeUtc(); } diff --git a/Linphone/core/conference/ConferenceInfoProxy.hpp b/Linphone/core/conference/ConferenceInfoProxy.hpp index 0055e9a2e..a84802deb 100644 --- a/Linphone/core/conference/ConferenceInfoProxy.hpp +++ b/Linphone/core/conference/ConferenceInfoProxy.hpp @@ -47,7 +47,7 @@ public: bool getAccountConnected() const; Q_INVOKABLE void clear(); - Q_INVOKABLE ConferenceInfoGui *getCurrentDateConfInfo(); + Q_INVOKABLE ConferenceInfoGui *getCurrentDateConfInfo(bool enableCancelledConference = false); Q_INVOKABLE int loadUntil(ConferenceInfoGui *confInfo); int loadUntil(QSharedPointer data); signals: diff --git a/Linphone/core/notifier/Notifier.cpp b/Linphone/core/notifier/Notifier.cpp index 4a12e56be..8612d3bf8 100644 --- a/Linphone/core/notifier/Notifier.cpp +++ b/Linphone/core/notifier/Notifier.cpp @@ -130,7 +130,7 @@ Notifier::~Notifier() { bool Notifier::createNotification(Notifier::NotificationType type, QVariantMap data) { mMutex->lock(); // Q_ASSERT(mInstancesNumber <= MaxNotificationsNumber); - if (mInstancesNumber == MaxNotificationsNumber) { // Check existing instances. + if (mInstancesNumber >= MaxNotificationsNumber) { // Check existing instances. qWarning() << QStringLiteral("Unable to create another notification."); mMutex->unlock(); return false; @@ -288,9 +288,6 @@ void Notifier::notifyReceivedCall(const shared_ptr &call) { auto voicemailAddress = linphone::Factory::get()->createAddress( Utils::appStringToCoreString(accountModel->getVoicemailAddress())); if (voicemailAddress) call->transferTo(voicemailAddress); - } else { - lInfo() << log().arg("Declining call."); - call->decline(linphone::Reason::Busy); } return; } @@ -335,7 +332,8 @@ void Notifier::notifyReceivedMessages(const std::shared_ptr if (receiverAccount) { auto senderAccount = ToolModel::findAccount(message->getFromAddress()); auto currentAccount = CoreModel::getInstance()->getCore()->getDefaultAccount(); - if (senderAccount && senderAccount->getContactAddress()->weakEqual(currentAccount->getContactAddress())) { + if (senderAccount && senderAccount->getContactAddress() && currentAccount->getContactAddress() && + senderAccount->getContactAddress()->weakEqual(currentAccount->getContactAddress())) { qDebug() << "sender is current account, return"; return; } @@ -369,6 +367,7 @@ void Notifier::notifyReceivedMessages(const std::shared_ptr }; if (messages.size() == 1) { // Display only sender on mono message. + if (message->isRead()) return; getMessage(message); if (txt.isEmpty()) { // Do not notify message without content qDebug() << "empty notif, return"; diff --git a/Linphone/core/participant/ParticipantInfoList.cpp b/Linphone/core/participant/ParticipantInfoList.cpp index fbb4703ec..75e77b29a 100644 --- a/Linphone/core/participant/ParticipantInfoList.cpp +++ b/Linphone/core/participant/ParticipantInfoList.cpp @@ -48,7 +48,7 @@ ParticipantInfoList::~ParticipantInfoList() { void ParticipantInfoList::setChatCore(const QSharedPointer &chatCore) { mustBeInMainThread(log().arg(Q_FUNC_INFO)); - if (mChatCore) disconnect(mChatCore.get()); + if (mChatCore) disconnect(mChatCore.get(), &ChatCore::participantsChanged, this, nullptr); mChatCore = chatCore; lDebug() << "[ParticipantInfoList] : set Chat " << mChatCore.get(); clearData(); diff --git a/Linphone/core/participant/ParticipantProxy.cpp b/Linphone/core/participant/ParticipantProxy.cpp index e4f83cda5..7d3e5ba6c 100644 --- a/Linphone/core/participant/ParticipantProxy.cpp +++ b/Linphone/core/participant/ParticipantProxy.cpp @@ -109,7 +109,7 @@ void ParticipantProxy::setShowMe(const bool &show) { if (list->mShowMe != show) { list->mShowMe = show; emit showMeChanged(); - invalidateFilter(); + invalidate(); } } diff --git a/Linphone/core/proxy/LimitProxy.cpp b/Linphone/core/proxy/LimitProxy.cpp index c43742c46..439aee1a3 100644 --- a/Linphone/core/proxy/LimitProxy.cpp +++ b/Linphone/core/proxy/LimitProxy.cpp @@ -68,8 +68,8 @@ void LimitProxy::setSourceModels(SortFilterProxy *firstList) { /* void LimitProxy::setSourceModels(SortFilterProxy *firstList, QAbstractItemModel *secondList) { - connect(secondList, &QAbstractItemModel::rowsInserted, this, &LimitProxy::invalidateFilter); - connect(secondList, &QAbstractItemModel::rowsRemoved, this, &LimitProxy::invalidateFilter); + connect(secondList, &QAbstractItemModel::rowsInserted, this, &LimitProxy::invalidate); + connect(secondList, &QAbstractItemModel::rowsRemoved, this, &LimitProxy::invalidate); connect(firstList, &SortFilterProxy::filterTextChanged, this, &LimitProxy::filterTextChanged); setSourceModel(firstList); }*/ @@ -127,7 +127,7 @@ void LimitProxy::setMaxDisplayItems(int maxItems) { emit maxDisplayItemsChanged(); if (model && getDisplayCount(modelCount) != oldCount) { - invalidateFilter(); + invalidate(); } } } @@ -186,6 +186,6 @@ void LimitProxy::onAdded() { void LimitProxy::onRemoved() { int count = sourceModel()->rowCount(); if (mMaxDisplayItems > 0 && mMaxDisplayItems <= count) { - invalidateFilter(); + invalidate(); } } diff --git a/Linphone/core/proxy/SortFilterProxy.cpp b/Linphone/core/proxy/SortFilterProxy.cpp index a3ff345a0..887aad0d6 100644 --- a/Linphone/core/proxy/SortFilterProxy.cpp +++ b/Linphone/core/proxy/SortFilterProxy.cpp @@ -26,6 +26,9 @@ SortFilterProxy::SortFilterProxy(QAbstractItemModel *list) : QSortFilterProxyMod setSourceModel(list); } +SortFilterProxy::SortFilterProxy() { +} + SortFilterProxy::SortFilterProxy(QAbstractItemModel *list, Qt::SortOrder order) : SortFilterProxy(list) { sort(0, order); } @@ -63,9 +66,15 @@ int SortFilterProxy::getFilterType() const { void SortFilterProxy::setFilterType(int filterType) { if (getFilterType() != filterType) { +#if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) + beginFilterChange(); mFilterType = filterType; + endFilterChange(); +#else + mFilterType = filterType; + invalidateFilter(); +#endif emit filterTypeChanged(filterType); - invalidate(); } } @@ -75,13 +84,13 @@ QString SortFilterProxy::getFilterText() const { void SortFilterProxy::setFilterText(const QString &filter) { if (mFilterText != filter) { -#if QT_VERSION < QT_VERSION_CHECK(6, 10, 0) +#if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) + beginFilterChange(); mFilterText = filter; - QSortFilterProxyModel::invalidateFilter(); + endFilterChange(); #else - QSortFilterProxyModel::beginFilterChange(); mFilterText = filter; - QSortFilterProxyModel::endFilterChange(); + invalidateFilter(); #endif emit filterTextChanged(); } @@ -96,11 +105,10 @@ void SortFilterProxy::remove(int index, int count) { } void SortFilterProxy::invalidateFilter() { -// TODO for a better filter management by encapsulating filter change between begin/end -#if QT_VERSION < QT_VERSION_CHECK(6, 10, 0) - QSortFilterProxyModel::invalidateFilter(); -#else +#if QT_VERSION >= QT_VERSION_CHECK(6, 10, 0) QSortFilterProxyModel::beginFilterChange(); QSortFilterProxyModel::endFilterChange(); +#else + invalidateFilter(); #endif } diff --git a/Linphone/core/proxy/SortFilterProxy.hpp b/Linphone/core/proxy/SortFilterProxy.hpp index f604de42f..57a623d91 100644 --- a/Linphone/core/proxy/SortFilterProxy.hpp +++ b/Linphone/core/proxy/SortFilterProxy.hpp @@ -41,6 +41,7 @@ public: Q_PROPERTY(int filterType READ getFilterType WRITE setFilterType NOTIFY filterTypeChanged) Q_PROPERTY(QString filterText READ getFilterText WRITE setFilterText NOTIFY filterTextChanged) + SortFilterProxy(); SortFilterProxy(QAbstractItemModel *parent); SortFilterProxy(QAbstractItemModel *parent, Qt::SortOrder order); virtual ~SortFilterProxy(); diff --git a/Linphone/core/search/MagicSearchList.cpp b/Linphone/core/search/MagicSearchList.cpp index bef53989a..984ae9c16 100644 --- a/Linphone/core/search/MagicSearchList.cpp +++ b/Linphone/core/search/MagicSearchList.cpp @@ -94,18 +94,29 @@ void MagicSearchList::setSelf(QSharedPointer me) { [this](const std::list> &results) { auto *contacts = new QList>(); auto ldapContacts = ToolModel::getLdapFriendList(); - + auto core = CoreModel::getInstance()->getCore(); + auto userAddress = core->getDefaultAccount() && core->getDefaultAccount()->getParams() + ? core->getDefaultAccount()->getParams()->getIdentityAddress() + : nullptr; for (auto it : results) { QSharedPointer contact; auto linphoneFriend = it->getFriend(); bool isStored = false; if (linphoneFriend) { + if (!mShowMe && userAddress && userAddress->weakEqual(linphoneFriend->getAddress())) { + lWarning() << log().arg("do not show my own address in this contact list"); + continue; + } isStored = (ldapContacts->findFriendByAddress(linphoneFriend->getAddress()) != linphoneFriend); contact = FriendCore::create(linphoneFriend, isStored, it->getSourceFlags()); contacts->append(contact); } else if (auto address = it->getAddress()) { - auto linphoneFriend = CoreModel::getInstance()->getCore()->createFriend(); + if (!mShowMe && userAddress && userAddress->weakEqual(address)) { + lWarning() << log().arg("do not show my own address in this contact list"); + continue; + } + auto linphoneFriend = core->createFriend(); linphoneFriend->setAddress(address); contact = FriendCore::create(linphoneFriend, isStored, it->getSourceFlags()); auto displayName = Utils::coreStringToAppString(address->getDisplayName()); @@ -125,7 +136,7 @@ void MagicSearchList::setSelf(QSharedPointer me) { contacts->append(contact); } else if (!it->getPhoneNumber().empty()) { auto phoneNumber = it->getPhoneNumber(); - linphoneFriend = CoreModel::getInstance()->getCore()->createFriend(); + linphoneFriend = core->createFriend(); linphoneFriend->addPhoneNumber(phoneNumber); contact = FriendCore::create(linphoneFriend, isStored, it->getSourceFlags()); contact->setGivenName(Utils::coreStringToAppString(it->getPhoneNumber())); @@ -202,6 +213,17 @@ void MagicSearchList::setMaxResults(int maxResults) { } } +bool MagicSearchList::getShowMe() const { + return mShowMe; +} + +void MagicSearchList::setShowMe(bool showMe) { + if (mShowMe != showMe) { + mShowMe = showMe; + emit showMeChanged(mShowMe); + } +} + LinphoneEnums::MagicSearchAggregation MagicSearchList::getAggregationFlag() const { return mAggregationFlag; } diff --git a/Linphone/core/search/MagicSearchList.hpp b/Linphone/core/search/MagicSearchList.hpp index d546ed212..ea61dec1d 100644 --- a/Linphone/core/search/MagicSearchList.hpp +++ b/Linphone/core/search/MagicSearchList.hpp @@ -41,7 +41,7 @@ public: ~MagicSearchList(); void setSelf(QSharedPointer me); - void connectContact(FriendCore* data); + void connectContact(FriendCore *data); void setSearch(const QString &search); void setResults(const QList> &contacts); void add(QSharedPointer contact); @@ -55,6 +55,9 @@ public: int getMaxResults() const; void setMaxResults(int maxResults); + bool getShowMe() const; + void setShowMe(bool showMe); + virtual QHash roleNames() const override; virtual QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override; @@ -68,6 +71,7 @@ signals: void sourceFlagsChanged(int sourceFlags); void aggregationFlagChanged(LinphoneEnums::MagicSearchAggregation flag); void maxResultsChanged(int maxResults); + void showMeChanged(bool showMe); void friendCreated(int index, FriendGui *data); void friendStarredChanged(); @@ -81,6 +85,7 @@ private: LinphoneEnums::MagicSearchAggregation mAggregationFlag; QString mSearchFilter; int mMaxResults = -1; + bool mShowMe = false; std::shared_ptr mMagicSearch; QSharedPointer> mModelConnection; diff --git a/Linphone/core/search/MagicSearchProxy.cpp b/Linphone/core/search/MagicSearchProxy.cpp index 106f6b4cf..3da478af7 100644 --- a/Linphone/core/search/MagicSearchProxy.cpp +++ b/Linphone/core/search/MagicSearchProxy.cpp @@ -148,6 +148,14 @@ void MagicSearchProxy::setMaxResults(int flags) { mList->setMaxResults(flags); } +bool MagicSearchProxy::getShowMe() const { + return mList->getShowMe(); +} + +void MagicSearchProxy::setShowMe(bool showMe) { + mList->setShowMe(showMe); +} + MagicSearchProxy *MagicSearchProxy::getParentProxy() const { return mParentProxy; } diff --git a/Linphone/core/search/MagicSearchProxy.hpp b/Linphone/core/search/MagicSearchProxy.hpp index e6d48d89c..66a71b6b9 100644 --- a/Linphone/core/search/MagicSearchProxy.hpp +++ b/Linphone/core/search/MagicSearchProxy.hpp @@ -34,6 +34,7 @@ class MagicSearchProxy : public LimitProxy { Q_PROPERTY(int sourceFlags READ getSourceFlags WRITE setSourceFlags NOTIFY sourceFlagsChanged) Q_PROPERTY(int maxResults READ getMaxResults WRITE setMaxResults NOTIFY maxResultsChanged) + Q_PROPERTY(bool showMe READ getShowMe WRITE setShowMe NOTIFY showMeChanged) Q_PROPERTY(LinphoneEnums::MagicSearchAggregation aggregationFlag READ getAggregationFlag WRITE setAggregationFlag NOTIFY aggregationFlagChanged) @@ -60,6 +61,9 @@ public: int getMaxResults() const; void setMaxResults(int maxResults); + bool getShowMe() const; + void setShowMe(bool showMe); + MagicSearchProxy *getParentProxy() const; void setList(QSharedPointer list); Q_INVOKABLE void setParentProxy(MagicSearchProxy *proxy); @@ -77,6 +81,7 @@ signals: void sourceFlagsChanged(int sourceFlags); void aggregationFlagChanged(LinphoneEnums::MagicSearchAggregation aggregationFlag); void maxResultsChanged(int maxResults); + void showMeChanged(bool showMe); void forceUpdate(); void localFriendCreated(int index); void parentProxyChanged(); diff --git a/Linphone/core/setting/SettingsCore.cpp b/Linphone/core/setting/SettingsCore.cpp index 16080a359..1044387d2 100644 --- a/Linphone/core/setting/SettingsCore.cpp +++ b/Linphone/core/setting/SettingsCore.cpp @@ -107,6 +107,9 @@ SettingsCore::SettingsCore(QObject *parent) : QObject(parent) { mEmojiFont = settingsModel->getEmojiFont(); mTextMessageFont = settingsModel->getTextMessageFont(); + // Check for update + mIsCheckForUpdateAvailable = settingsModel->isCheckForUpdateAvailable(); + // Ui INIT_CORE_MEMBER(DisableChatFeature, settingsModel) INIT_CORE_MEMBER(DisableMeetingsFeature, settingsModel) @@ -234,6 +237,13 @@ void SettingsCore::setSelf(QSharedPointer me) { mustBeInLinphoneThread(getClassName()); mSettingsModelConnection = SafeConnection::create(me, SettingsModel::getInstance()); + mSettingsModelConnection->makeConnectToModel(&SettingsModel::captureGraphRunningChanged, [this](bool running) { + mSettingsModelConnection->invokeToCore([this, running] { + mCaptureGraphRunning = running; + emit captureGraphRunningChanged(running); + }); + }); + // VFS mSettingsModelConnection->makeConnectToModel(&SettingsModel::vfsEnabledChanged, [this](const bool enabled) { mSettingsModelConnection->invokeToCore([this, enabled]() { setVfsEnabled(enabled); }); @@ -1028,7 +1038,8 @@ QString SettingsCore::getConfigLocale() const { QString SettingsCore::getDownloadFolder() const { auto path = mDownloadFolder; if (mDownloadFolder.isEmpty()) path = Paths::getDownloadDirPath(); - return QDir::cleanPath(path) + QDir::separator(); + QString cleanPath = QDir::cleanPath(path); + return cleanPath; } void SettingsCore::writeIntoModel(std::shared_ptr model) const { @@ -1143,6 +1154,9 @@ void SettingsCore::writeFromModel(const std::shared_ptr &model) { mLogsFolder = model->getLogsFolder(); mLogsEmail = model->getLogsEmail(); + // Check update + mIsCheckForUpdateAvailable = model->isCheckForUpdateAvailable(); + // UI mDisableChatFeature = model->getDisableChatFeature(); mDisableMeetingsFeature = model->getDisableMeetingsFeature(); @@ -1171,6 +1185,10 @@ void SettingsCore::writeFromModel(const std::shared_ptr &model) { mDownloadFolder = model->getDownloadFolder(); } +bool SettingsCore::isCheckForUpdateAvailable() const { + return mIsCheckForUpdateAvailable; +} + void SettingsCore::save() { mustBeInMainThread(getClassName() + Q_FUNC_INFO); SettingsCore *thisCopy = new SettingsCore(*this); diff --git a/Linphone/core/setting/SettingsCore.hpp b/Linphone/core/setting/SettingsCore.hpp index 649d678e3..ec8851b1d 100644 --- a/Linphone/core/setting/SettingsCore.hpp +++ b/Linphone/core/setting/SettingsCore.hpp @@ -218,6 +218,7 @@ public: bool getCardDAVMinCharForResearch() const; void setCardDAVMinCharForResearch(int min); + bool isCheckForUpdateAvailable() const; Q_INVOKABLE void save(); Q_INVOKABLE void undo(); @@ -401,6 +402,9 @@ private: // CardDAV int mCardDAVMinCharForResearch = 0; + // Check update + bool mIsCheckForUpdateAvailable = false; + DECLARE_ABSTRACT_OBJECT }; #endif diff --git a/Linphone/data/image/qt-logo.png b/Linphone/data/image/qt-logo.png new file mode 100644 index 000000000..0c2da4bf6 Binary files /dev/null and b/Linphone/data/image/qt-logo.png differ diff --git a/Linphone/data/languages/ca.ts b/Linphone/data/languages/ca.ts new file mode 100644 index 000000000..4efecfa43 --- /dev/null +++ b/Linphone/data/languages/ca.ts @@ -0,0 +1,7433 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + + + + + save + "Enregistrer" + Desar + + + + save_settings_accessible_name + Save %1 settings + + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + Escull el nombre SIP o l'adreça + + + + fps_counter + %1 FPS + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + Connectat + + + + drawer_menu_account_connection_status_refreshing + Actualitzant… + + + + drawer_menu_account_connection_status_progress + Connectant… + + + + drawer_menu_account_connection_status_failed + Error + + + + drawer_menu_account_connection_status_cleared + Deshabilitat + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + Ets en línia i accessible. + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + Error de connexió, comprova la configuració. + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + Compte desactivat, no rebràs pas trucades ni missatges. + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + + + + + AccountListView + + + add_an_account + Add an account + + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + + + + + assistant_account_login_forbidden_error + "Username and password do not match" + + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + + + + + assistant_account_add_error + "Unable to add account." + + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + Edita la informació del teu compte. + + + + manage_account_devices_title + "Vos appareils" + Els teus dispositius + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + Llistat de dispositius connectats al teu compte. Pots esborrar-ne els que ja no utilitzis. + + + + manage_account_add_picture + "Ajouter une image" + Afegeix una imatge + + + + manage_account_edit_picture + "Modifier l'image" + Edita la imatge + + + + manage_account_remove_picture + "Supprimer l'image" + Esborra la imatge + + + + sip_address + Adreçament SIP + + + + sip_address_display_name + "Nom d'affichage + Nom a mostrar + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + El nom que es mostrarà als teus contactes durant els intercanvis. + + + + manage_account_international_prefix + Indicatif international* + Codi internacional* + + + + manage_account_delete + "Déconnecter mon compte" + + + + + manage_account_delete_message + + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + + + + + error + Erreur + Error + + + + manage_account_device_remove + "Supprimer" + + + + + manage_account_device_remove_confirm_dialog + + + + + manage_account_device_last_connection + "Dernière connexion:" + + + + + device_last_updated_time_no_info + "No information" + + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + + + + + settings_general_title + "Général" + + + + + settings_account_title + "Paramètres de compte" + + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + Desar + + + + AccountSettingsParametersLayout + + + settings_title + + + + + settings_account_title + + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_error_title + Error + + + + information_popup_success_title + + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + + + + + information_popup_error_title + Error + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + + + + + account_settings_transport_title + "Transport" + + + + + account_settings_registrar_uri_title + + + + + account_settings_sip_proxy_url_title + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + + + + + account_settings_enable_ice_title + "Activer ICE" + + + + + account_settings_avpf_title + "AVPF" + + + + + account_settings_bundle_mode_title + "Mode bundle" + + + + + account_settings_expire_title + "Expiration (en seconde)" + + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + + + + + + + remove_participant_accessible_name + Remove participant %1 + + + + + list_filter_no_result_found + "Aucun contact" + + + + + contact_list_empty + + + + + AdvancedSettingsLayout + + + settings_system_title + System + + + + + settings_remote_provisioning_title + Remote provisioning + + + + + settings_security_title + Security / Encryption + + + + + settings_advanced_audio_codecs_title + Audio codecs + + + + + settings_advanced_video_codecs_title + Video codecs + + + + + settings_advanced_auto_start_title + Auto start %1 + + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + + + + + information_popup_error_title + Invalid URL format + Error + + + + settings_advanced_invalid_url_message + + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + + + + + + settings_advanced_media_encryption_title + Media encryption + + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + + + + + settings_advanced_hide_fps_title + + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + + + + + generic_address_picker_contacts_list_title + 'Contacts' + + + + + generic_address_picker_suggestions_list_title + "Suggestions" + + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + + + + + + info_popup_error_title + Error + Error + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + + + + + configuration_error_detail + not reachable + + + + + application_description + "A free and open source SIP video-phone." + + + + + command_line_arg_order + "Send an order to the application towards a command line" + + + + + command_line_option_show_help + + + + + command_line_option_show_app_version + + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + + + + + command_line_option_minimized + + + + + command_line_option_log_to_stdout + + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + + + + + hide_action + "Cacher" "Afficher" + + + + + show_action + + + + + quit_action + "Quitter" + + + + + mark_all_read_action + + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + + + + + password + + + + + cancel + "Annuler + + + + + assistant_account_login + Connexion + + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + + + + + media_encryption_dtls + DTLS + + + + + media_encryption_none + None + + + + + media_encryption_srtp + SRTP + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + + + + + settings_call_forward_destination_choose + Forward to destination + + + + + + + settings_call_forward_to_voicemail + + + + + settings_call_forward_to_sipaddress + + + + + settings_call_forward_sipaddress_title + SIP Address + + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + + + + + settings_call_forward_address_timeout + + + + + settings_call_forward_address_progress_disabling + + + + + settings_call_forward_address_progress_enabling + + + + + settings_call_forward_activation_success + + + + + settings_call_forward_deactivation_success + + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + contact_call_action + "Appel" + + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel Video" + + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + + + + + call_ended_by_user + "Vous avez terminé l'appel" + + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + + + + + conference_call_empty + "En attente d'autres participants…" + + + + + conference_share_link_title + "Partager le lien" + + + + + copied + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + CallList + + + remote_group_call + Remote group call + + + + + local_group_call + + + + + info_popup_error_title + Error + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + + + + + CallListView + + + meeting + "Réunion + + + + + call + "Appel" + + + + + paused_call_or_meeting + "%1 en pause" + + + + + ongoing_call_or_meeting + "%1 en cours" + + + + + transfer_call_name_accessible_name + Transfer call %1 + + + + + resume_call_name_accessible_name + Resume %1 call + + + + + pause_call_name_accessible_name + Pause %1 call + + + + + end_call_name_accessible_name + End %1 call + + + + + CallModel + + + call_error_no_response_toast + "No response" + + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + + + + + call_error_not_answered_toast + "Request timeout" + + + + + call_error_user_declined_toast + "User declined the call" + + + + + call_error_user_not_found_toast + "User was not found" + + + + + call_error_user_busy_toast + "User is busy" + + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + + + + + call_error_io_error_toast + "Unavailable service or network error" + + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + + + + + call_error_server_timeout_toast + "Server tiemout" + + + + + CallPage + + + call_forward_to_address_info + + + + + call_forward_to_address_info_voicemail + + + + + history_call_start_title + "Nouvel appel" + + + + + call_history_empty_title + "Historique d'appel vide" + + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + + + + + call_history_call_list_title + "Appels" + + + + + call_history_options_accessible_name + + + + + + menu_delete_history + "Supprimer l'historique" + + + + + call_history_list_options_accessible_name + Call history options + + + + + create_new_call_accessible_name + Create new call + + + + + call_search_in_history + "Rechercher un appel" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + history_list_empty_history + "Aucun appel dans votre historique" + + + + + return_to_call_history_accessible_name + Return to call history + + + + + call_action_start_new_call + "Nouvel appel" + + + + + call_start_group_call_title + "Appel de groupe" + + + + + call_action_start_group_call + "Lancer" + + + + + + + information_popup_error_title + Error + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + menu_copy_sip_address + "Copier l'adresse SIP" + + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + + + + + notification_missed_call_title + "Appel manqué" + + + + + call_outgoing + "Appel sortant" + + + + + call_audio_incoming + "Appel entrant" + + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + + + + + settings_call_enable_tones_title + Tonalités + + + + + settings_call_enable_tones_subtitle + Activer les tonalités + + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + + + + + settings_calls_command_line_title + Command line + + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + + + + + settings_calls_current_ringtone_filename + Current ringtone : + + + + + choose_ringtone_file_accessible_name + Choose ringtone file + + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + + + + + CallStatistics + + + call_stats_audio_title + "Audio" + + + + + call_stats_video_title + "Vidéo" + + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + + + + + + information_popup_error_title + Error + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + + + + + call_can_be_trusted_toast + "Appareil authentifié" + + + + + call_dir + + + + + call_ended + Appel terminé + + + + + conference_paused + Meeting paused + + + + + call_paused + Call paused + + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + + + + + call_zrtp_sas_validation_required + Vérification nécessaire + + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + + + + + call_not_encrypted + "Appel non chiffré" + + + + + + call_waiting_for_encryption_info + Waiting for encryption + + + + + call_paused_by_remote + Call paused by remote + + + + + conference_user_is_recording + "You are recording the meeting" + + + + + call_user_is_recording + "You are recording the call" + + + + + conference_remote_is_recording + "Someone is recording the meeting" + + + + + call_remote_recording + "%1 is recording the call" + + + + + call_stop_recording + "Stop recording" + + + + + add + + + + + call_transfer_current_call_title + "Transférer %1 à…" + + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + + + + + call_action_start_new_call + "Nouvel appel" + + + + + + call_action_show_dialer + "Pavé numérique" + + + + + call_action_change_layout + "Modifier la disposition" + + + + + call_action_go_to_calls_list + "Liste d'appel" + + + + + Merger tous les appels + call_action_merge_calls + + + + + + call_action_go_to_settings + "Paramètres" + + + + + conference_action_screen_sharing + "Partage de votre écran" + + + + + conference_share_link_title + Partager le lien de la réunion + + + + + copied + Copié + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + + + conference_participants_list_title + "Participants (%1)" + + + + + + group_call_participant_selected + + + + + + + + meeting_schedule_add_participants_title + + + + + call_encryption_title + Chiffrement + + + + + open_statistic_panel_accessible_name + + + + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + + + + + stop_recording_accessible_name + Stop recording + + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + + + + + call_stats_title + Statistiques + + + + + + call_action_end_call + "Terminer l'appel" + + + + + + call_action_resume_call + "Reprendre l'appel" + + + + + + call_action_pause_call + "Mettre l'appel en pause" + + + + + + call_action_transfer_call + "Transférer l'appel" + + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + + + + + + call_activate_video_hint + + + + + + call_activate_microphone + "Activer le micro" + + + + + + call_deactivate_microphone + "Désactiver le micro" + + + + + + call_share_screen_hint + Partager l'écran… + + + + + + call_open_chat_hint + Open chat… + + + + + + call_rise_hand_hint + "Lever la main" + + + + + + call_send_reaction_hint + "Envoyer une réaction" + + + + + + call_manage_participants_hint + "Gérer les participants" + + + + + + call_more_options_hint + "Plus d'options…" + + + + + call_action_change_conference_layout + "Modifier la disposition" + + + + + call_action_full_screen + "Mode Plein écran" + + + + + call_action_stop_recording + "Terminer l'enregistrement" + + + + + call_action_record + "Enregistrer l'appel" + + + + + call_activate_speaker_hint + "Activer le son" + + + + + call_deactivate_speaker_hint + "Désactiver le son" + + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + + + + + information_popup_error_title + Error + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + + + + + information_popup_synchronization_success_title + + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + + + + + settings_contacts_carddav_popup_synchronization_error_title + Error + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + + + + + sip_address_display_name + Nom d'affichage + Nom a mostrar + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + + + + + username + + + + + password + + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + + + + + ChangeLayoutForm + + + conference_layout_grid + + + + + conference_layout_active_speaker + + + + + conference_layout_audio_only + + + + + ChatAudioContent + + + + information_popup_error_title + Error + Error + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + + + + + ChatCore + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message_history + Message history has been deleted + + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + + + + + chat_message_draft_sending_text + + + + + chat_room_delete + "Delete" + + + + + chat_room_mute + + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + + + + + chat_room_leave + "leave" + + + + + chat_list_leave_chat_popup_title + leave the conversation ? + + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + + + + + chat_message_copy + "Copy" + + + + + chat_message_copied_to_clipboard_title + Copied + + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + + + + + chat_message_remote_replied + %1 replied + + + + + chat_message_forwarded + Forwarded + + + + + chat_message_remote_replied_to + %1 replied to %2 + + + + + chat_message_user_replied_to + You replied to %1 + + + + + chat_message_user_replied + You replied + + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + + + + + chat_message_forward + Forward + + + + + chat_message_delete + "Delete" + + + + + ChatMessageContentCore + + + popup_error_title + Error + Error + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + + + + + info_popup_error_titile + Error + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + + + + + popup_error_path_does_not_exist_message + File was not found: %1 + + + + + popup_error_nb_files_not_found_message + + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + + + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + + + + + popup_error_unsupported_files_message + + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + + + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message + The message has been deleted + + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + + + + + ics_bubble_meeting_to + + + + + ics_bubble_meeting_modified + Meeting has been updated + + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + + + + + + + + + + ics_bubble_description_title + Description + + + + + ics_bubble_join + "Rejoindre" + + + + + ics_bubble_participants + %n participant(s) + + + + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + + + + + info_popup_no_result_message + No result found + + + + + info_popup_first_result_message + First result reached + + + + + info_popup_last_result_message + Last result reached + + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + + + + + chat_message_is_writing_info + %1 is writing… + + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + + + + + chat_empty_title + "Aucune conversation" + + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + + + + + chat_list_title + "Conversations" + + + + + menu_mark_all_as_read + "mark all as read" + + + + + chat_search_in_history + "Rechercher une conversation" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + + + + + chat_action_start_new_chat + "New chat" + + + + + chat_start_group_chat_title + "Nouveau groupe" + + + + + chat_action_start_group_chat + "Créer" + + + + + + + information_popup_error_title + Error + + + + information_popup_chat_creation_failed_message + "La création a échoué" + + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + chat_creation_in_progress + Creation de la conversation en cours … + + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + + + + + CliModel + + + show_function_description + + + + + fetch_config_function_description + + + + + call_function_description + + + + + bye_function_description + + + + + accept_function_description + + + + + decline_function_description + + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + Error + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + + + + + Contact + + + information_popup_error_title + Erreur + Error + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + + + + + account_settings_name_accessible_name + Account settings of %1 + + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + + + + + save + "Enregistrer + Desar + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + + + + + close_accessible_name + Close %1 + + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + + + + + contact_editor_add_image_label + "Ajouter une image" + Afegeix una imatge + + + + contact_details_edit + "Modifier" + + + + + edit_contact_image_accessible_name + "Edit contact image" + + + + + contact_details_delete + "Supprimer" + + + + + delete_contact_image_accessible_name + "Delete contact image" + + + + + + contact_editor_first_name + "Prénom" + + + + + + contact_editor_last_name + "Nom" + + + + + + contact_editor_company + "Entreprise" + + + + + + contact_editor_job_title + "Fonction" + + + + + + sip_address + Adreçament SIP + + + + sip_address_number_accessible_name + "SIP address number %1" + + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + + + + + new_sip_address_accessible_name + "New SIP address" + + + + + phone_number_number_accessible_name + "Phone number number %1" + + + + + remove_phone_number_accessible_name + Remove phone number %1 + + + + + new_phone_number_accessible_name + "New phone number" + + + + + + phone + "Téléphone" + + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + Partager + + + + + information_popup_error_title + Error + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + + + + + information_popup_vcard_creation_title + VCard créée + + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + + + + + contact_sharing_email_title + Partage de contact + + + + + contact_details_delete + "Supprimer" + + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + + + + + expand_accessible_name + Expand %1 + + + + + ContactPage + + + contacts_add + "Ajouter un contact" + + + + + contacts_list_empty + "Aucun contact pour le moment" + + + + + contact_new_title + "Nouveau contact" + + + + + create + + + + + contact_edit_title + "Modifier contact" + + + + + save + Desar + + + + contact_dialog_delete_title + Supprimer %1 ?" + + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + + + + + contact_deleted_toast + "Contact supprimé" + + + + + contact_deleted_message + "%1 a été supprimé" + + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + + + + + popup_do_not_show_again + Ne plus afficher + + + + + cancel + + + + + dialog_call + "Appeler" + + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + + + + + dialog_ok + "Ok" + + + + + bottom_navigation_contacts_label + "Contacts" + + + + + search_bar_look_for_contact_text + Rechercher un contact + + + + + list_filter_no_result_found + Aucun résultat… + + + + + contact_list_empty + Aucun contact pour le moment + + + + + expand_accessible_name + Expand %1 + + + + + shrink_accessible_name + Shrink %1 + + + + + create_contact_accessible_name + Create new contact + + + + + more_info_accessible_name + More info %1 + + + + + + contact_details_edit + Edit +---------- +"Éditer" + + + + + contact_call_action + "Appel" + + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel vidéo" + + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + + + + + call_adress_accessible_name + Call address %1 + + + + + contact_details_company_name + "Société :" + + + + + contact_details_job_title + "Poste :" + + + + + contact_details_medias_title + "Medias" + + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + + + + + contact_details_trust_title + "Confiance" + + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + + + + + contact_details_no_device_found + "Aucun appareil" + + + + + contact_device_without_name + "Appareil inconnu" + + + + + contact_make_call_check_device_trust + "Vérifier" + + + + + verify_device_accessible_name + Verify %1 device + + + + + contact_details_actions_title + "Autres actions" + + + + + contact_details_remove_from_favourites + "Retirer des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + contact_details_share + "Partager" + + + + + information_popup_error_title + Error + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + + + + + contact_details_share_success_title + "VCard créée" + + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + + + + + contact_details_share_email_title + "Partage de contact" + + + + + contact_details_delete + "Supprimer ce contact" + + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + + + + + settings_contacts_carddav_title + + + + + settings_contacts_carddav_subtitle + + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + add + "Ajouter" + + + + + ConversationInfos + + + one_one_infos_call + "Appel" + + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + + + + + group_infos_participants + + + + + group_infos_media_docs + Medias & documents + + + + + group_infos_shared_medias + Shared medias + + + + + group_infos_shared_docs + Shared documents + + + + + group_infos_other_actions + Other actions + + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + + + + + group_infos_leave_room + Leave chat room + + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + group_infos_delete_history + Delete history + + + + + group_infos_delete_history_toast_title + Delete history ? + + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + one_one_infos_open_contact + Show contact + + + + + one_one_infos_create_contact + Create contact + + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + + + + + one_one_infos_delete_history_toast_title + Delete history ? + + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + + + + + settings_debug_clipboard + "Presse-papier" + + + + + settings_debug_email + "E-Mail" + + + + + debug_settings_trace + "Traces %1" + + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + + + + + + information_popup_error_title + Une erreur est survenue. + + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + + + + + settings_debug_delete_logs_title + "Supprimer les traces" + + + + + settings_debug_share_logs_title + "Partager les traces" + + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + + + + + settings_debug_app_version_title + "Version de l'application" + + + + + settings_debug_sdk_version_title + "Version du SDK" + + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + + + + + textfield_error_message_unknown_format + "Format non reconnu" + + + + + Dialog + + + + dialog_confirm + "Confirmer" + + + + + + dialog_cancel + "Annuler" + + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + + + + + call_stats_media_encryption + Media encryption : %1 + + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + + + + + call_zrtp_validation_button_label + "Validation chiffrement" + + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + + + + + one_hour + + + + + one_day + + + + + one_week + + + + + disabled + Deshabilitat + + + + custom + + + + + EventLogCore + + + conference_created_event + + + + + conference_created_terminated + + + + + conference_participant_added_event + + + + + conference_participant_removed_event + + + + + conference_participant_set_admin_event + + + + + conference_participant_unset_admin_event + + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + Adreçament SIP + + + + + + device_id + "Téléphone" + + + + + information_popup_error_title + Error + + + + information_popup_invalid_address_message + "Adresse invalide" + + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + + + + + group_infos_participant_is_admin + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + group_infos_give_admin_rights + + + + + group_infos_remove_admin_rights + + + + + group_infos_copy_sip_address + + + + + group_infos_remove_participant + + + + + group_infos_remove_participants_toast_title + + + + + group_infos_remove_participants_toast_message + + + + + GroupCreationFormLayout + + + return_accessible_name + Return + + + + + + group_start_dialog_subject_hint + "Nom du groupe" + + + + + required + "Requis" + + + + + HelpPage + + + help_title + "Aide" + + + + + + help_about_title + "À propos de %1" + + + + + help_about_privacy_policy_title + "Règles de confidentialité" + + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + + + + + help_about_version_title + "Version" + + + + + help_about_gpl_licence_title + "Licences GPLv3" + + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + + + + + help_troubleshooting_title + "Dépannage" + + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + + + + + settings_contacts_ldap_subtitle + + + + + information_popup_success_title + + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + + + + + information_popup_error_title + Error + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + + + + + delete_ldap_server_accessible_name + Delete LDAP server + + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + + + + + settings_contacts_ldap_password_title + "Mot de passe" + + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + + + + + settings_contacts_ldap_search_filter_title + "Filtre" + + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + + + + + settings_contacts_ldap_debug_title + "Débogage" + + + + + LoadingPopup + + + cancel + + + + + LoginForm + + + + username + Nom d'utilisateur : username + + + + + + password + Mot de passe + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + assistant_account_login + "Connexion" + + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + + + + + assistant_forgotten_password + "Mot de passe oublié ?" + + + + + LoginLayout + + + + help_about_title + À propos de %1 + + + + + help_about_privacy_policy_title + "Politique de confidentialité" + + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + + + + + help_about_version_title + "Version" + + + + + help_about_licence_title + "Licence" + + + + + help_about_copyright_title + "Copyright + + + + + close + "Fermer" + + + + + LoginPage + + + return_accessible_name + Return + + + + + assistant_account_login + Connexion + + + + + assistant_no_account_yet + "Pas encore de compte ?" + + + + + assistant_account_register + "S'inscrire" + + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + + + + + assistant_login_remote_provisioning + "Configuration distante" + + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + + + + + cancel + + + + + validate + "Valider" + + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + + + + + default_account_connection_state_error_toast + + + + + MagicSearchList + + + device_id + + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + + + + + open_calls_page_accessible_name + "Open calls page" + + + + + bottom_navigation_contacts_label + "Contacts" + + + + + open_contacts_page_accessible_name + "Open contacts page" + + + + + bottom_navigation_conversations_label + "Conversations" + + + + + open_conversations_page_accessible_name + "Open conversations page" + + + + + bottom_navigation_meetings_label + "Réunions" + + + + + open_contact_page_accessible_name + "Open meetings page" + + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + + + + + do_not_disturb_accessible_name + "Do not disturb" + + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + + + + + information_popup_error_title + Error + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + + + + + account_list_accessible_name + "Account list" + + + + + application_options_accessible_name + "Application options" + + + + + drawer_menu_manage_account + Mon compte + + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + + + + + settings_title + + + + + recordings_title + "Enregistrements" + + + + + help_title + "Aide" + + + + + help_quit_title + "Quitter l'application" + + + + + quit_app_question + "Quitter %1 ?" + + + + + drawer_menu_add_account + "Ajouter un compte" + + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + + + + + interoperable + interopérable + + + + + call_transfer_successful_toast_title + "Appel transféré" + + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + + + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + + + + + assistant_register_error_title + "Erreur lors de la création" + + + + + assistant_register_success_title + "Compte créé" + + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + + + + + assistant_register_error_code + "Erreur dans le code de validation" + + + + + information_popup_error_title + Error + + + + ManageParticipants + + + group_infos_manage_participants + + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + + + + + meeting_schedule_broadcast_label + "Webinar" + + + + + meeting_schedule_subject_hint + "Ajouter un titre" + + + + + meeting_schedule_description_hint + "Ajouter une description" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + MeetingPage + + + meetings_add + "Créer une réunion" + + + + + meetings_list_empty + "Aucune réunion" + + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + + + + + meeting_schedule_delete_action + "Supprimer" + + + + + back_action + Retour + + + + + meetings_list_title + Réunions + + + + + meetings_search_hint + "Rechercher une réunion" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + meetings_empty_list + "Aucune réunion" + + + + + + meeting_schedule_title + "Nouvelle réunion" + + + + + create + + + + + + + + + + information_popup_error_title + Error + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + + + + + save + Desar + + + + + saved + "Enregistré" + + + + + meeting_info_updated_toast + "Réunion mise à jour" + + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_add_participants_apply + + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + + + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + + + + + meeting_schedule_timezone_title + "Fuseau horaire" + + + + + meeting_info_organizer_label + "Organisateur" + + + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + + + + + click_to_delete_reaction_info + Click to delete + + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + + + + + no_shared_documents + No document + + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + + + + + + + + choose_something_accessible_name + Choose %1 + + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + + + + + + device_volume_accessible_name + %1 volume + + + + + + + multimedia_settings_microphone_title + "Microphone" + + + + + + multimedia_settings_camera_title + "Caméra" + + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + + + + + call_start_group_call_title + Appel de groupe + + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + + + + + dialog_accept + "Accepter" + + + + + dialog_deny + "Refuser + + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + + + + + new_file_message + + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + + + + + new_message_alert_accessible_name + New message on chatroom %1 + + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + + + + + oidc_authentication_granted_message + Authentication granted + + + + + oidc_authentication_not_authenticated_message + Not authenticated + + + + + oidc_authentication_refresh_message + Refreshing token + + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + + + + + oidc_authentication_network_error + Network error + + + + + oidc_authentication_server_error + Server error + + + + + oidc_authentication_token_not_found_error + OAuth token not found + + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + + + + + oidc_authentication_no_token_found_error + + + + + oidc_authentication_request_token_message + Requesting access token + + + + + oidc_authentication_refresh_token_message + Refreshing access token + + + + + oidc_authentication_request_authorization_message + Requesting authorization + + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + + + + + meeting_add_participants_title + "Ajouter des participants" + + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + + + + + number_phone_number_accessible_name + %1 number + + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + + + + + open_popup_panel_accessible_name + "Open %1" popup + + + + + Presence + + + contact_presence_reset_status + + + + + contact_presence_button_set_custom_status + + + + + contact_presence_button_edit_custom_status + + + + + contact_presence_button_delete_custom_status + + + + + contact_presence_custom_status + + + + + PresenceNoteLayout + + + contact_presence_note_title + + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + + + + + contact_presence_button_save_custom_status + Desar + + + + QObject + + + media_encryption_dtls + + + + + media_encryption_none + + + + + media_encryption_srtp + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + message_state_in_progress + "delivery in progress" + + + + + message_state_delivered + sent + + + + + message_state_not_delivered + error + + + + + message_state_file_transfer_error + cannot get file from server + + + + + message_state_file_transfer_done + file transfer has been completed successfully + + + + + message_state_delivered_to_user + received + + + + + message_state_displayed + read + + + + + message_state_file_transfer__in_progress + file transfer in progress + + + + + message_state_pending_delivery + pending delivery + + + + + message_state_file_transfer_cancelling + file transfer canceled + + + + + incoming + "Entrant" + + + + + outgoing + "Sortant" + + + + + conference_layout_active_speaker + "Participant actif" + + + + + conference_layout_grid + "Mosaïque" + + + + + conference_layout_audio_only + "Audio uniquement" + + + + + RegisterCheckingPage + + + email + "email" + + + + + phone_number + "numéro de téléphone" + + + + + confirm_register_title + "Inscription | Confirmer votre %1" + + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + + + + + RegisterPage + + + return_accessible_name + Return + + + + + assistant_account_register + "Inscription + + + + + assistant_already_have_an_account + + + + + assistant_account_login + + + + + assistant_account_register_with_phone_number + + + + + assistant_account_register_with_email + + + + + + username + + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + domain + + + + + + + phone_number + "Numéro de téléphone" + + + + + + email + + + + + + password + + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + + + + + assistant_account_create + "Créer" + + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + + + + + SIPLoginPage + + + return_accessible_name + Return + + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + + + + + assistant_no_account_yet + Pas encore de compte ? + + + + + assistant_account_register + S'inscrire + + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + + + + + + username + "Nom d'utilisateur" + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + password + + + + + + sip_address_domain + "Domaine" + + + + + + sip_address_display_name + Nom d'affichage + Nom a mostrar + + + + + transport + "Transport" + + + + + + assistant_account_login + + + + + assistant_account_login_missing_username + + + + + assistant_account_login_missing_password + + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + + + + + login_advanced_parameters_label + Advanced parameters + + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + + + + + screencast_settings_all_screen_label + "Ecran entier" + + + + + screencast_settings_one_window_label + "Fenêtre" + + + + + screencast_settings_screen + "Ecran %1" + + + + + stop + "Stop + + + + + share + "Partager" + + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + + + + + dialog_continue + "Continuer" + + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + + + + + SelectedChatView + + + chat_view_group_call_toast_message + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + reply_to_label + Reply to %1 + + + + + shared_medias_title + Shared medias + + + + + shared_documents_title + Shared documents + + + + + forward_to_title + Forward to… + + + + + conversations_title + Conversations + + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + + + + + SettingsPage + + + settings_title + "Paramètres" + + + + + settings_calls_title + "Appels" + + + + + settings_call_forward + "Transfert d'appel" + + + + + settings_conversations_title + "Conversations" + + + + + settings_contacts_title + "Contacts" + + + + + settings_meetings_title + "Réunions" + + + + + settings_network_title + "Affichage" "Security" "Réseau" + + + + + settings_advanced_title + "Paramètres avancés" + + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + Desar + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + + + + + conference_participant_paused_text + "En pause" + + + + + TextField + + + show_accessible_name + Show %1 + + + + + hide_accessible_name + Hide %1 + + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + + + + + group_call_error_no_account + + + + + group_call_error_participants_invite + + + + + group_call_error_creation + + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + + + + + unknown_audio_device_name + + + + + conference_invitation + + + + + conference_invitation_cancelled + + + + + conference_invitation_updated + + + + + Utils + + + nSeconds + + + + + + + + nMinute + + + + + + + + chat_message_forward_error + Cannot forward an invalid message + + + + + info_popup_forward_message_error + Could not forward message : %1 + + + + + info_popup_send_forward_message_error_message + Failed to create forward message + + + + + chat_message_reply_error + Cannot reply to invalid message + + + + + info_popup_reply_message_error + Could not send reply message : %1 + + + + + info_popup_send_reply_message_error_message + Failed to create reply message + + + + + nHour + + + + + + + + + nDay + + + + + + + + nWeek + + + + + + + + contact_presence_status_available + + + + + contact_presence_status_busy + + + + + contact_presence_status_do_not_disturb + + + + + contact_presence_status_offline + + + + + contact_presence_status_away + + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + Error + + + + information_popup_group_call_not_created_message + + + + + number_of_years + %n an(s) + + + + + + + + number_of_month + "%n mois" + + + + + + + + number_of_weeks + %n semaine(s) + + + + + + + + number_of_days + %n jour(s) + + + + + + + + today + "Aujourd'hui" + + + + + yesterday + "Hier + + + + + duration_tomorrow + Tomorrow + + + + + duration_number_of_days + %1 jour(s) + + + + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + + + + + recorder_error + Error with the recorder + + + + + + + chat_error + + + + + + + + + + info_popup_error_title + Error + Error + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + + + + + meeting_waiting_room_join + "Rejoindre" + + + + + + cancel + Cancel + + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + + + + + welcome_page_subtitle + "sur %1" + + + + + welcome_carousel_skip + "Passer" + + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + + + + + welcome_page_2_title + "Sécurisé" + + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + + + + + welcome_page_3_title + "Open Source" + + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + + + + + next + "Suivant" + + + + + start + "Commencer" + + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + + + + + call_zrtp_sas_validation_skip + "Passer" + + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + + + + + call_action_hang_up + "Raccrocher" + + + + + country + + + Afghanistan + + + + + Albania + + + + + Algeria + + + + + AmericanSamoa + + + + + Andorra + + + + + Angola + + + + + Anguilla + + + + + AntiguaAndBarbuda + + + + + Argentina + + + + + Armenia + + + + + Aruba + + + + + Australia + + + + + Austria + + + + + Azerbaijan + + + + + Bahamas + + + + + Bahrain + + + + + Bangladesh + + + + + Barbados + + + + + Belarus + + + + + Belgium + + + + + Belize + + + + + Benin + + + + + Bermuda + + + + + Bhutan + + + + + Bolivia + + + + + BosniaAndHerzegowina + + + + + Botswana + + + + + Brazil + + + + + Brunei + + + + + Bulgaria + + + + + BurkinaFaso + + + + + Burundi + + + + + Cambodia + + + + + Cameroon + + + + + Canada + + + + + CapeVerde + + + + + CaymanIslands + + + + + CentralAfricanRepublic + + + + + Chad + + + + + Chile + + + + + China + + + + + Colombia + + + + + Comoros + + + + + PeoplesRepublicOfCongo + + + + + CookIslands + + + + + CostaRica + + + + + IvoryCoast + + + + + Croatia + + + + + Cuba + + + + + Cyprus + + + + + CzechRepublic + + + + + Denmark + + + + + Djibouti + + + + + Dominica + + + + + DominicanRepublic + + + + + Ecuador + + + + + Egypt + + + + + ElSalvador + + + + + EquatorialGuinea + + + + + Eritrea + + + + + Estonia + + + + + Ethiopia + + + + + FalklandIslands + + + + + FaroeIslands + + + + + Fiji + + + + + Finland + + + + + France + + + + + FrenchGuiana + + + + + FrenchPolynesia + + + + + Gabon + + + + + Gambia + + + + + Georgia + + + + + Germany + + + + + Ghana + + + + + Gibraltar + + + + + Greece + + + + + Greenland + + + + + Grenada + + + + + Guadeloupe + + + + + Guam + + + + + Guatemala + + + + + Guinea + + + + + GuineaBissau + + + + + Guyana + + + + + Haiti + + + + + Honduras + + + + + DemocraticRepublicOfCongo + + + + + HongKong + + + + + Hungary + + + + + Iceland + + + + + India + + + + + Indonesia + + + + + Iran + + + + + Iraq + + + + + Ireland + + + + + Israel + + + + + Italy + + + + + Jamaica + + + + + Japan + + + + + Jordan + + + + + Kazakhstan + + + + + Kenya + + + + + Kiribati + + + + + DemocraticRepublicOfKorea + + + + + RepublicOfKorea + + + + + Kuwait + + + + + Kyrgyzstan + + + + + Laos + + + + + Latvia + + + + + Lebanon + + + + + Lesotho + + + + + Liberia + + + + + Libya + + + + + Liechtenstein + + + + + Lithuania + + + + + Luxembourg + + + + + Macau + + + + + Macedonia + + + + + Madagascar + + + + + Malawi + + + + + Malaysia + + + + + Maldives + + + + + Mali + + + + + Malta + + + + + MarshallIslands + + + + + Martinique + + + + + Mauritania + + + + + Mauritius + + + + + Mayotte + + + + + Mexico + + + + + Micronesia + + + + + Moldova + + + + + Monaco + + + + + Mongolia + + + + + Montenegro + + + + + Montserrat + + + + + Morocco + + + + + Mozambique + + + + + Myanmar + + + + + Namibia + + + + + NauruCountry + + + + + Nepal + + + + + Netherlands + + + + + NewCaledonia + + + + + NewZealand + + + + + Nicaragua + + + + + Niger + + + + + Nigeria + + + + + Niue + + + + + NorfolkIsland + + + + + NorthernMarianaIslands + + + + + Norway + + + + + Oman + + + + + Pakistan + + + + + Palau + + + + + PalestinianTerritories + + + + + Panama + + + + + PapuaNewGuinea + + + + + Paraguay + + + + + Peru + + + + + Philippines + + + + + Poland + + + + + Portugal + + + + + PuertoRico + + + + + Qatar + + + + + Reunion + + + + + Romania + + + + + RussianFederation + + + + + Rwanda + + + + + SaintHelena + + + + + SaintKittsAndNevis + + + + + SaintLucia + + + + + SaintPierreAndMiquelon + + + + + SaintVincentAndTheGrenadines + + + + + Samoa + + + + + SanMarino + + + + + SaoTomeAndPrincipe + + + + + SaudiArabia + + + + + Senegal + + + + + Serbia + + + + + Seychelles + + + + + SierraLeone + + + + + Singapore + + + + + Slovakia + + + + + Slovenia + + + + + SolomonIslands + + + + + Somalia + + + + + SouthAfrica + + + + + Spain + + + + + SriLanka + + + + + Sudan + + + + + Suriname + + + + + Swaziland + + + + + Sweden + + + + + Switzerland + + + + + Syria + + + + + Taiwan + + + + + Tajikistan + + + + + Tanzania + + + + + Thailand + + + + + Togo + + + + + Tokelau + + + + + Tonga + + + + + TrinidadAndTobago + + + + + Tunisia + + + + + Turkey + + + + + Turkmenistan + + + + + TurksAndCaicosIslands + + + + + Tuvalu + + + + + Uganda + + + + + Ukraine + + + + + UnitedArabEmirates + + + + + UnitedKingdom + + + + + UnitedStates + + + + + Uruguay + + + + + Uzbekistan + + + + + Vanuatu + + + + + Venezuela + + + + + Vietnam + + + + + WallisAndFutunaIslands + + + + + Yemen + + + + + Zambia + + + + + Zimbabwe + + + + + utils + + + formatYears + '%1 year' + + + + + + + + formatMonths + '%1 month' + + + + + + + + formatWeeks + '%1 week' + + + + + + + + formatDays + '%1 day' + + + + + + + + formatHours + '%1 hour' + + + + + + + + formatMinutes + '%1 minute' + + + + + + + + formatSeconds + '%1 second' + + + + + + + + codec_install + "Installation de codec" + + + + + download_codec + "Télécharger le codec %1 (%2) ?" + + + + + information_popup_success_title + "Succès" + + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + + + + + + + information_popup_error_title + Error + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + + + + + okButton + + + + + CoreModel + + + info_popup_error_title + Error + + + diff --git a/Linphone/data/languages/cs.ts b/Linphone/data/languages/cs.ts new file mode 100644 index 000000000..0452638e6 --- /dev/null +++ b/Linphone/data/languages/cs.ts @@ -0,0 +1,7473 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + Návrat + + + + save + "Enregistrer" + Uložit + + + + save_settings_accessible_name + Save %1 settings + Uložit nastavení %1 + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + Vybrat SIP číslo nebo adresu + + + + fps_counter + %1 FPS + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + Připojeno + + + + drawer_menu_account_connection_status_refreshing + Obnovování… + + + + drawer_menu_account_connection_status_progress + Připojování… + + + + drawer_menu_account_connection_status_failed + Chyba + + + + drawer_menu_account_connection_status_cleared + Zakázáno + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + Jste online a dostupní. + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + Chyba připojení, zkontrolujte nastavení. + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + Účet není aktivní, nemůžete přijímat zprávy a hovory. + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + Chyba při načítání zařízení + + + + AccountListView + + + add_an_account + Add an account + Přidat účet + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + K účtu jste již připojeni + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + Nelze použít adresu proxy serveru. Zkontrolujte doménu. + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + Nelze nastavit adresu: `%1`. + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + Nelze uložit nastavení účtu. + + + + assistant_account_login_forbidden_error + "Username and password do not match" + Uživatelské jméno a heslo se neshodují + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + Chyba při připojování + + + + assistant_account_add_error + "Unable to add account." + Nelze přidat účet. + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + Nelze nastavit adresu serveru hlasové schránky, selhalo vytvoření adresy z %1 + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + Nelze nastavit adresu serveru, selhalo vytvoření adresy z %1 + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + Nelze nastavit odchozí proxy URI, selhalo vytvoření adresy z %1 + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + Nelze nastavit adresu konverzačního serveru, selhalo vytvoření adresy z %1 + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + Nelze nastavit adresu serveru schůzky, selhalo vytvoření adresy z %1 + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + Nelze nastavit adresu hlasové schránky, selhalo vytvoření adresy z %1 + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + Detaily + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + Upravit informace o účtu. + + + + manage_account_devices_title + "Vos appareils" + Vaše zařízení + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + Seznam zařízení připojených k vašemu účtu. Zařízení, která již nechcete používat, můžete odebrat. + + + + manage_account_add_picture + "Ajouter une image" + Přidat obrázek + + + + manage_account_edit_picture + "Modifier l'image" + Upravit obrázek + + + + manage_account_remove_picture + "Supprimer l'image" + Smazat obrázek + + + + sip_address + SIP adresa + + + + sip_address_display_name + "Nom d'affichage + Zobrazené jméno + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + Jméno zobrazené kontaktům při výměně. + + + + manage_account_international_prefix + Indicatif international* + Mezinárodní předvolba* + + + + manage_account_delete + "Déconnecter mon compte" + Odpojit účet + + + + manage_account_delete_message + Váš účet bude z tohoto klienta Linphone odstraněn, ale v ostatních klientech zůstanete připojeni + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + Odhlásit z účtu? + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + Pokud chcete trvale smazat vás účet, jděte na: https://sip.linphone.org + + + + error + Erreur + Chyba + + + + manage_account_device_remove + "Supprimer" + Smazat + + + + manage_account_device_remove_confirm_dialog + Smazat %1? + + + + manage_account_device_last_connection + "Dernière connexion:" + Poslední přihlášení: + + + + device_last_updated_time_no_info + "No information" + Žádné informace + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + Můj účet + + + + settings_general_title + "Général" + Hlavní + + + + settings_account_title + "Paramètres de compte" + Nastavení účtu + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + Neuložené změny + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + Máte neuložené změny. Pokud opustíte tuto stránku, vaše změny budou ztraceny. Chcete své změny před pokračováním uložit? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + Neukládat + + + + contact_editor_dialog_abort_confirmation_save + Uložit + + + + AccountSettingsParametersLayout + + + settings_title + Nastavení + + + + settings_account_title + Nastavení účtu + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + Registrační uri je neplatná. Ujistěte se, že odpovídá následujícímu formátu: sip:<host>:<port>;transport=<transport> (:<port> je volitelný) + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + Uri odchozího proxy serveru je neplatné. Ujistěte se, že odpovídá následujícímu formátu: sip:<host>:<port>;transport=<transport> (:<port> je volitelný) + + + + info_popup_error_title + Chyba + + + + information_popup_success_title + Hotovo + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + Změny uloženy + + + + information_popup_error_title + Chyba + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + URI adresa serveru hlasových zpráv + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + URI hlasových zpráv + + + + account_settings_transport_title + "Transport" + Transport + + + + account_settings_registrar_uri_title + Registrační URI + + + + account_settings_sip_proxy_url_title + URI odchozího SIP proxy serveru + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + Pokud je toto pole vyplněno, odchozí proxy bude automaticky povolena. Nechte jej prázdné, chcete-li ji zakázat. + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + Adresa STUN serveru + + + + account_settings_enable_ice_title + "Activer ICE" + Zapnout ICE + + + + account_settings_avpf_title + "AVPF" + AVPF + + + + account_settings_bundle_mode_title + "Mode bundle" + Bundle režim + + + + account_settings_expire_title + "Expiration (en seconde)" + Expirace (vteřiny) + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + URI adresa serveru konferenčních hovorů + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + URI adresa serveru videokonferenčních hovorů + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + URL adresa Lime serveru + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + Najít kontakty + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + %1 vybraný účastník + %1 vybraní účastníci + %1 vybraných účastníků + + + + + remove_participant_accessible_name + Remove participant %1 + Odstranit účastníka %1 + + + + list_filter_no_result_found + "Aucun contact" + Nic nenalezeno… + + + + contact_list_empty + V tuto chvíli žádný kontakt + + + + AdvancedSettingsLayout + + + settings_system_title + System + Systém + + + + settings_remote_provisioning_title + Remote provisioning + Vzdálené nastavení + + + + settings_security_title + Security / Encryption + Zabezpečení / šifrování + + + + settings_advanced_audio_codecs_title + Audio codecs + Audio kodeky + + + + settings_advanced_video_codecs_title + Video codecs + Video kodeky + + + + settings_advanced_auto_start_title + Auto start %1 + Autostart %1 + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + URL adresa vzdáleného nastavení + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + Stáhnout a použít + + + + information_popup_error_title + Invalid URL format + Chyba + + + + settings_advanced_invalid_url_message + Neplatný formát URL adresy + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + Stáhnout a použít nastavení vzdálené konfigurace + + + + + settings_advanced_media_encryption_title + Media encryption + Šifrování médií + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + Povinné šifrování médií + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + Vytvoření "end to end" šifrovaných schůzek a skupinových hovorů + + + + settings_advanced_hide_fps_title + Skrýt FPS + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + Oblíbené + + + + generic_address_picker_contacts_list_title + 'Contacts' + Kontakty + + + + generic_address_picker_suggestions_list_title + "Suggestions" + Návrhy + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + Opravdu chcete stáhnout a použít vzdálenou konfiguraci z této adresy? + + + + + info_popup_error_title + Error + Chyba + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + Vzdálené nastavení selhalo : %1 + + + + configuration_error_detail + not reachable + nedostupné + + + + application_description + "A free and open source SIP video-phone." + Bezplatný SIP videotelefon s otevřeným zdrojovým kódem. + + + + command_line_arg_order + "Send an order to the application towards a command line" + Odeslání příkazu do aplikace pomocí příkazového řádku + + + + command_line_option_show_help + Zobrazit tuto nápovědu + + + + command_line_option_show_app_version + Zobrazit verzi aplikace + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + Zadejte konfigurační soubor, který má být načten. Bude sloučen s aktuálním nastavením. + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + URL adresa, umístění nebo soubor + + + + command_line_option_minimized + Minimalizovat + + + + command_line_option_log_to_stdout + Zaznamenat do stdout některé ladicí informace za běhu + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + Zaznamenat pouze protokoly z aplikace + + + + hide_action + "Cacher" "Afficher" + Skrýt + + + + show_action + Zobrazit + + + + quit_action + "Quitter" + Ukončit + + + + mark_all_read_action + Označit vše jako přečtené + + + + info_popup_new_version_download_label + Žádný token nenalezen + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + Autentizace je vyžadována + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + Přihlášení k účtu %1 se nezdařilo. Můžete znovu zadat heslo nebo zkontrolovat nastavení účtu. + + + + password + Heslo + + + + cancel + "Annuler + Zrušit + + + + assistant_account_login + Connexion + Připojení + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + Zadejte prosím heslo + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + Záznam ukončen + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + Záznam byl uložen do souboru: %1 + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + Kodek: %1 / %2 kHz + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + Datový tok : %1 %2 kbits/s %3 %4 kbits/s + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + Ztrátovost: %1% %2% + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + Vzrovnávací paměť : %1 ms + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + Rozlišení videa: %1 %2 %3 %4 + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + FPS : %1 %2 %3 %4 + + + + media_encryption_dtls + DTLS + DTLS + + + + media_encryption_none + None + Žádné + + + + media_encryption_srtp + SRTP + SRTP + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + Post-kvantové ZRTP + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + Přesměrování hovorů + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + Přesměrování hovorů do hlasové schránky nebo na číslo / SIP adresu + + + + settings_call_forward_destination_choose + Forward to destination + Přesměrovat hovor na: + + + + + + settings_call_forward_to_voicemail + Hlasová schránka + + + + settings_call_forward_to_sipaddress + Číslo / SIP adresa + + + + settings_call_forward_sipaddress_title + SIP Address + Číslo / SIP adresa: + + + + settings_call_forward_sipaddress_placeholder + John_Doe + + + + settings_call_forward_address_cannot_be_empty + Číslo nebo SIP adresa je vyžadována + + + + settings_call_forward_address_timeout + Nelze nastavit přesměrování hovoru, vypršel časový limit požadavku + + + + settings_call_forward_address_progress_disabling + Vypnutí přesměrování hovoru + + + + settings_call_forward_address_progress_enabling + Zapnutí přesměrování hovoru na: + + + + settings_call_forward_activation_success + Zapnuto přesměrování hovoru na: + + + + settings_call_forward_deactivation_success + Přesměrování hovoru vypnuto + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + Připojit ke schůzce + + + + contact_call_action + "Appel" + Volat + + + + contact_message_action + "Message" + Zpráva + + + + contact_video_call_action + "Appel Video" + Videohovor + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + Hovor %1 + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + Opustili jste schůzku + + + + call_ended_by_user + "Vous avez terminé l'appel" + Ukončil(a) jste hovor + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + Volající ukončil hovor + + + + conference_call_empty + "En attente d'autres participants…" + Čekání na další účastníky… + + + + conference_share_link_title + "Partager le lien" + Sdílet odkaz + + + + copied + Zkopírováno + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + Odkaz na konferenci byl zkopírován do schránky + + + + CallList + + + remote_group_call + Remote group call + Vzdálený skupinový hovor + + + + local_group_call + Místní skupinový hovor + + + + info_popup_error_title + Chyba + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + Nepodařilo se sloučit hovory! + + + + CallListView + + + meeting + "Réunion + Schůzka + + + + call + "Appel" + Volat + + + + paused_call_or_meeting + "%1 en pause" + %1 pozastaveno + + + + ongoing_call_or_meeting + "%1 en cours" + Probíhá %1 + + + + transfer_call_name_accessible_name + Transfer call %1 + Přepojit hovor %1 + + + + resume_call_name_accessible_name + Resume %1 call + Obnovit hovor %1 + + + + pause_call_name_accessible_name + Pause %1 call + Pozastavit hovor %1 + + + + end_call_name_accessible_name + End %1 call + Ukončit hovor %1 + + + + CallModel + + + call_error_no_response_toast + "No response" + Žádná odpověď + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + 403: Zakázaný zdroj + + + + call_error_not_answered_toast + "Request timeout" + Prodleva požadavku + + + + call_error_user_declined_toast + "User declined the call" + Uživatel odmítl hovor + + + + call_error_user_not_found_toast + "User was not found" + Uživatel nebyl nalezen + + + + call_error_user_busy_toast + "User is busy" + Uživatel je zaneprázdněný + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + Uživatel nemůže přijmout váš hovor + + + + call_error_io_error_toast + "Unavailable service or network error" + Nedostupná služba nebo chyba sítě + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + Uživatel nesmí být rušen + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + Dočasně nedostupný + + + + call_error_server_timeout_toast + "Server tiemout" + Prodleva serveru + + + + CallPage + + + call_forward_to_address_info + Přesměrovat hovor na: + + + + call_forward_to_address_info_voicemail + Hlasová schránka + + + + history_call_start_title + "Nouvel appel" + Nový hovor + + + + call_history_empty_title + "Historique d'appel vide" + Prázdná historie volání + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + Smazat historii volání? + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + Historie volání bude trvale vymazána. + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + Smazat historii volání? + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + Historie volání s tímto uživatelem bude trvale vymazána. + + + + call_history_call_list_title + "Appels" + Hovory + + + + call_history_options_accessible_name + Možnosti historie hovorů + + + + + menu_delete_history + "Supprimer l'historique" + Smazat historii + + + + call_history_list_options_accessible_name + Call history options + Možnosti historie hovorů + + + + create_new_call_accessible_name + Create new call + Vytvořit nový hovor + + + + call_search_in_history + "Rechercher un appel" + Najít hovor + + + + list_filter_no_result_found + "Aucun résultat…" + Nic nenalezeno… + + + + history_list_empty_history + "Aucun appel dans votre historique" + Žádný hovor v historii + + + + return_to_call_history_accessible_name + Return to call history + Návrat k historii hovorů + + + + call_action_start_new_call + "Nouvel appel" + Nový hovor + + + + call_start_group_call_title + "Appel de groupe" + Skupinový hovor + + + + call_action_start_group_call + "Lancer" + Start + + + + + + information_popup_error_title + Chyba + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + Pro volání musí být uveden název + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + Nejste připojeni + + + + menu_see_existing_contact + "Show contact" + Zobrazit kontakt + + + + menu_add_address_to_contacts + "Add to contacts" + Přidat do kontaktů + + + + menu_copy_sip_address + "Copier l'adresse SIP" + Zkopirovat SIP adresu + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + SIP adresa zkopírována + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + Adresa byla zkopírována do schránky + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + Chyba při kopírování adresy + + + + notification_missed_call_title + "Appel manqué" + Zmeškaný hovor + + + + call_outgoing + "Appel sortant" + Odchozí hovor + + + + call_audio_incoming + "Appel entrant" + Příchozí hovor + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + Zařízení + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + Můžete změnit výstupní zvukové zařízení, mikrofon a kameru. + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + Potlačení ozvěny + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + Potlačuje ozvěnu, aby ji neslyšeli ostatní + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + Zapnutí automatického nahrávání hovorů + + + + settings_call_enable_tones_title + Tonalités + Tóny + + + + settings_call_enable_tones_subtitle + Activer les tonalités + Zapnout tóny + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + Zapnout video + + + + settings_calls_command_line_title + Command line + Příkaz v příkazovém řádku spouštěný při příchozím hovoru + + + + settings_calls_command_line_title_place_holder + příkaz "https://example.com/?phone=$1&displayName=$2" + + + + settings_calls_change_ringtone_title + "Change ringtone" + Změnit vyzváněcí tón + + + + settings_calls_current_ringtone_filename + Current ringtone : + Současný vyzváněcí tón: + + + + choose_ringtone_file_accessible_name + Choose ringtone file + Vybrat soubor vyzváněcího tónu + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + Zavřít panel %1 + + + + CallStatistics + + + call_stats_audio_title + "Audio" + Audio + + + + call_stats_video_title + "Vidéo" + Video + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + Probíhá přenos, prosím čekejte + + + + + information_popup_error_title + Chyba + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + Přenos selhal + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + Schůzka nemohla začít kvůli chybě URI. + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + Ukončit všechny aktuální hovory? + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + Okno se brzy zavře. Tím se ukončí všechny aktuální hovory. + + + + call_can_be_trusted_toast + "Appareil authentifié" + Důvěryhodné zařízení + + + + call_dir + Hovor s %1 + + + + call_ended + Appel terminé + Hovor ukončen + + + + conference_paused + Meeting paused + Schůzka pozastavena + + + + call_paused + Call paused + Hovor pozastaven + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + Šifrovaný hovor (SRTP) + + + + call_zrtp_sas_validation_required + Vérification nécessaire + Vyžadováno ověření + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + "End to end" šifrovaný hovor (ZRTP) + + + + call_not_encrypted + "Appel non chiffré" + Nešifrovaný hovor + + + + + call_waiting_for_encryption_info + Waiting for encryption + Čekání na šifrování + + + + call_paused_by_remote + Call paused by remote + Hovor vzdáleně pozastaven + + + + conference_user_is_recording + "You are recording the meeting" + Nahráváte schůzku + + + + call_user_is_recording + "You are recording the call" + Nahráváte hovor + + + + conference_remote_is_recording + "Someone is recording the meeting" + Někdo nahrává schůzku + + + + call_remote_recording + "%1 is recording the call" + %1 nahrává hovor + + + + call_stop_recording + "Stop recording" + Zastavit nahrávání + + + + add + Přidat + + + + call_transfer_current_call_title + "Transférer %1 à…" + Přenos %1 do… + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + Potvrdit přenos + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + Přenesete %1 do %2. + + + + call_action_start_new_call + "Nouvel appel" + Nový hovor + + + + + call_action_show_dialer + "Pavé numérique" + Číselník + + + + call_action_change_layout + "Modifier la disposition" + Změnit vzhled + + + + call_action_go_to_calls_list + "Liste d'appel" + Seznam hovorů + + + + Merger tous les appels + call_action_merge_calls + Sloučení všech hovorů + + + + + call_action_go_to_settings + "Paramètres" + Nastavení + + + + conference_action_screen_sharing + "Partage de votre écran" + Sdílet obrazovku + + + + conference_share_link_title + Partager le lien de la réunion + Sdílet odkaz na schůzku + + + + copied + Copié + Zkopírováno + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + Odkaz na schůzku byl zkopírován do schránky + + + + + + conference_participants_list_title + "Participants (%1)" + Účastníci (%1) + + + + + group_call_participant_selected + + %1 vybraný účastník + %1 vybraní účastníci + %1 vybraných účastníků + + + + + meeting_schedule_add_participants_title + Přidat účastníky + + + + call_encryption_title + Chiffrement + Šifrování + + + + open_statistic_panel_accessible_name + Otevřít statistický panel + + + + conference_user_is_sharing_screen + "You are sharing your screen" + Sdílíte svou obrazovku + + + + call_stop_screen_sharing + "Stop sharing" + Zastavit + + + + stop_recording_accessible_name + Stop recording + Zastavit nahrávání + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + Zastavit sdílení obrazovky + + + + call_stats_title + Statistiques + Statistiky + + + + + call_action_end_call + "Terminer l'appel" + Ukončit hovor + + + + + call_action_resume_call + "Reprendre l'appel" + Obnovit hovor + + + + + call_action_pause_call + "Mettre l'appel en pause" + Postavit hovor + + + + + call_action_transfer_call + "Transférer l'appel" + Přepojení hovoru + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + Spustit nový hovor + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + Zobrazení seznamu hovorů + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + Vypnout video + + + + + call_activate_video_hint + Zapnout video + + + + + call_activate_microphone + "Activer le micro" + Zapnout mikrofon + + + + + call_deactivate_microphone + "Désactiver le micro" + Ztlumit mikrofon + + + + + call_share_screen_hint + Partager l'écran… + Sdílet obrazovku… + + + + + call_open_chat_hint + Open chat… + Otevřít konverzaci… + + + + + call_rise_hand_hint + "Lever la main" + Zvedněte ruku + + + + + call_send_reaction_hint + "Envoyer une réaction" + Odeslat reakci + + + + + call_manage_participants_hint + "Gérer les participants" + Spravovat účastníky + + + + + call_more_options_hint + "Plus d'options…" + Více možností… + + + + call_action_change_conference_layout + "Modifier la disposition" + Změnit vzhled + + + + call_action_full_screen + "Mode Plein écran" + Režim celé obrazovky + + + + call_action_stop_recording + "Terminer l'enregistrement" + Zastavit záznam + + + + call_action_record + "Enregistrer l'appel" + Nahrát hovor + + + + call_activate_speaker_hint + "Activer le son" + Zapnout reproduktor + + + + call_deactivate_speaker_hint + "Désactiver le son" + Ztlumit reproduktor + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + CardDAV adresář + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + Přidáním adresáře CardDAV můžete synchronizovat kontakty Linphone s adresářem třetí strany. + + + + information_popup_error_title + Chyba + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + Zkontrolujte, zda byly zadány všechny informace. + + + + information_popup_synchronization_success_title + Hotovo + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + Adresář CardDAV je synchronizován. + + + + settings_contacts_carddav_popup_synchronization_error_title + Chyba + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + Chyba synchronizace! + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + Odstranit adresář CardDAV? + + + + sip_address_display_name + Nom d'affichage + Zobrazené jméno + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + URL adresa serveru + + + + username + Uživatelské jméno + + + + password + Heslo + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + Doména ověřování + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + Nově vytvořené kontakty ukládejte zde + + + + ChangeLayoutForm + + + conference_layout_grid + Mřížka + + + + conference_layout_active_speaker + Aktivní mluvčí + + + + conference_layout_audio_only + Pouze zvuk + + + + ChatAudioContent + + + + information_popup_error_title + Error + Chyba + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + Nepodařilo se vytvořit hlasovou zprávu: chyba v záznamníku + + + + ChatCore + + + info_toast_deleted_title + Deleted + Smazáno + + + + info_toast_deleted_message_history + Message history has been deleted + Historie zpráv byla smazána + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + Napište něco… + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + Nelze nahrávat zprávu během hovoru + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + %1 píše… + + + + chat_message_draft_sending_text + Koncept: %1 + + + + chat_room_delete + "Delete" + Smazat + + + + chat_room_mute + Ztlumit + + + + chat_room_unmute + "Mute" + Zrušit ztlumení + + + + chat_room_mark_as_read + "Mark as read" + Označit jako přečtené + + + + chat_room_leave + "leave" + Opustit + + + + chat_list_leave_chat_popup_title + leave the conversation ? + Opustit konverzaci? + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + V této konverzaci již nebudete moci odesílat ani přijímat zprávy. Chcete pokračovat? + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + Smazat konverzaci? + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + Tato konverzace a všechny její zprávy budou smazány. Chcete pokračovat? + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + Kopírovat výběr + + + + chat_message_copy + "Copy" + Kopírovat + + + + chat_message_copied_to_clipboard_title + Copied + Zkopírováno + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + ve schránce + + + + chat_message_remote_replied + %1 replied + %1 odpověděl na + + + + chat_message_forwarded + Forwarded + Přeposláno + + + + chat_message_remote_replied_to + %1 replied to %2 + %1 odpověděl %2 + + + + chat_message_user_replied_to + You replied to %1 + Odpověděl jste %1 + + + + chat_message_user_replied + You replied + Odpověděl jste + + + + chat_message_reception_info + "Reception info" + Info + + + + chat_message_reply + Reply + Odpovědět + + + + chat_message_forward + Forward + Přeposlat + + + + chat_message_delete + "Delete" + Smazat + + + + ChatMessageContentCore + + + popup_error_title + Error + Chyba + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + Nelze otevřít soubor: neznámé umístění %1 + + + + info_popup_error_titile + Chyba + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + Chyba při přidávání souboru + + + + popup_error_path_does_not_exist_message + File was not found: %1 + Soubor nebyl nalezen: %1 + + + + popup_error_nb_files_not_found_message + %1 souborů nebylo nalezeno + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + Najednou můžete odeslat maximálně 12 souborů. %n soubor byl ignorován + Najednou můžete odeslat maximálně 12 souborů. %n soubory byl ignorovány + Najednou můžete odeslat maximálně 12 souborů. %n souborů bylo ignorováno + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + %n souborů bylo ignorováno, protože překročily maximální velikost. (Limit velikosti = %2) + + + + popup_error_unsupported_files_message + Nelze získat podporovaný typ MIME pro %1 souborů. + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + Nelze získat podporovaný typ MIME pro: `%1`. + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + Reakce + + + + info_toast_deleted_title + Deleted + Smazáno + + + + info_toast_deleted_message + The message has been deleted + Zpráva byla smazána + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + od + + + + ics_bubble_meeting_to + pro + + + + ics_bubble_meeting_modified + Meeting has been updated + Schůzka byla aktualizována + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + Schůzka byla zrušena + + + + + od %1 pro %2 (UTC%3) + + + + ics_bubble_description_title + Description + Popis + + + + ics_bubble_join + "Rejoindre" + Připojit se + + + + ics_bubble_participants + %n participant(s) + + %1 účastník + %1 účastníci + %1 účastníků + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + Najít zprávu + + + + info_popup_no_result_message + No result found + Nic nenalezeno + + + + info_popup_first_result_message + First result reached + Nalezen první výsledek + + + + info_popup_last_result_message + Last result reached + Nalezen poslední výsledek + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + Chat s koncovým šifrováním + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + Tato konverzace není šifrována! + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + Zprávy v této konverzaci jsou koncově šifrovány. +Dešifrovat je může pouze váš příjemce. + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + Zprávy nejsou koncově šifrovány, +proto nezveřejňujte žádné citlivé informace! + + + + chat_message_is_writing_info + %1 is writing… + %1 píše… + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + Nová konverzace + + + + chat_empty_title + "Aucune conversation" + Žádná konverzace + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + Smazat konverzaci? + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + Tato konverzace a všechny její zprávy budou smazány. + + + + chat_list_title + "Conversations" + Konverzace + + + + menu_mark_all_as_read + "mark all as read" + Označit vše jako přečtené + + + + chat_search_in_history + "Rechercher une conversation" + Hledat chat + + + + list_filter_no_result_found + "Aucun résultat…" + Žádný výsledek… + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + Žádná konverzace v historii + + + + chat_action_start_new_chat + "New chat" + Nová konverzace + + + + chat_start_group_chat_title + "Nouveau groupe" + Nová skupina + + + + chat_action_start_group_chat + "Créer" + Vytvořit + + + + + + information_popup_error_title + Chyba + + + + information_popup_chat_creation_failed_message + "La création a échoué" + Vytvoření selhalo + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + Název pro skupinu musí být nastaven + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + Nejste připojeni + + + + chat_creation_in_progress + Creation de la conversation en cours … + Probíhá vytváření chatu… + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + Připojené soubory + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + Automatické stahování + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + Automaticky stahovat přenesené nebo přijaté soubory v konverzacích + + + + CliModel + + + show_function_description + Zobrazit + + + + fetch_config_function_description + Stáhnout nastavení + + + + call_function_description + Volat + + + + bye_function_description + Zavěsit + + + + accept_function_description + Přijmout + + + + decline_function_description + Odmítnout + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + Chyba + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + Váš účet je odpojen + + + + Contact + + + information_popup_error_title + Erreur + Chyba + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + URI hlasové schránky není definována. + + + + account_settings_name_accessible_name + Account settings of %1 + Nastavení účtu %1 + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + Upravit kontakt + + + + save + "Enregistrer + Uložit + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + Změny budou zahozeny. Chcete pokračovat? + + + + close_accessible_name + Close %1 + Zavřít %1 + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + Zadejte jméno nebo název společnosti + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + Zadejte prosím SIP adresu nebo telefonní číslo + + + + contact_editor_add_image_label + "Ajouter une image" + Přidat obrázek + + + + contact_details_edit + "Modifier" + Upravit + + + + edit_contact_image_accessible_name + "Edit contact image" + Upravit obrázek kontaktu + + + + contact_details_delete + "Supprimer" + Smazat + + + + delete_contact_image_accessible_name + "Delete contact image" + Smazat obrázek kontaktu + + + + + contact_editor_first_name + "Prénom" + Jméno + + + + + contact_editor_last_name + "Nom" + Příjmení + + + + + contact_editor_company + "Entreprise" + Společnost + + + + + contact_editor_job_title + "Fonction" + Zaměstnání + + + + + sip_address + SIP adresa + + + + sip_address_number_accessible_name + "SIP address number %1" + Číslo SIP adresy %1 + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + Odstranit SIP adresu %1 + + + + new_sip_address_accessible_name + "New SIP address" + Nová SIP adresa + + + + phone_number_number_accessible_name + "Phone number number %1" + Telefonní číslo %1 + + + + remove_phone_number_accessible_name + Remove phone number %1 + Odstranit telefonní číslo %1 + + + + new_phone_number_accessible_name + "New phone number" + Nové telefonní číslo + + + + + phone + "Téléphone" + Telefon + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + Odstranit z oblíbených + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + Přidat do oblíbených + + + + Partager + Sdílet + + + + information_popup_error_title + Chyba + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + Vytvoření VCard se nezdařilo + + + + information_popup_vcard_creation_title + VCard créée + VCard vytvořeno + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + VCard byla uložena v %1 + + + + contact_sharing_email_title + Partage de contact + Sdílet kontakt + + + + contact_details_delete + "Supprimer" + Smazat + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + Zmenšit %1 + + + + expand_accessible_name + Expand %1 + Rozbalit %1 + + + + ContactPage + + + contacts_add + "Ajouter un contact" + Přidat kontakt + + + + contacts_list_empty + "Aucun contact pour le moment" + Žádný kontakt v tuto chvíli + + + + contact_new_title + "Nouveau contact" + Nový kontakt + + + + create + Vytvořit + + + + contact_edit_title + "Modifier contact" + Upravit kontakt + + + + save + Uložit + + + + contact_dialog_delete_title + Supprimer %1 ?" + Smazat %1? + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + Tento kontakt bude trvale odstaněn. + + + + contact_deleted_toast + "Contact supprimé" + Kontakt odstraněn + + + + contact_deleted_message + "%1 a été supprimé" + %1 byl odstraněn + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + Zvýšit úroveň důvěry + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + Pro zvýšení úrovně důvěryhodnosti je třeba zavolat na zařízení kontaktu a ověřit kód.<br><br>Chystáte se zavolat na "%1", chcete pokračovat? + + + + popup_do_not_show_again + Ne plus afficher + Již nezobrazovat + + + + cancel + Zrušit + + + + dialog_call + "Appeler" + Volat + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + Úroveň důvěry + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + Ověřte zařízení svých kontaktů, abyste se ujistili, že vaše komunikace bude bezpečná a neohrožená. Až budou všechna zařízení ověřena, dosáhnete maximální úrovně důvěryhodnosti. + + + + dialog_ok + "Ok" + Ok + + + + bottom_navigation_contacts_label + "Contacts" + Kontakty + + + + search_bar_look_for_contact_text + Rechercher un contact + Najít kontakt + + + + list_filter_no_result_found + Aucun résultat… + Žádný výsledek… + + + + contact_list_empty + Aucun contact pour le moment + Žádný kontakt v tuto chvíli + + + + expand_accessible_name + Expand %1 + Rozbalit %1 + + + + shrink_accessible_name + Shrink %1 + Zmenšit %1 + + + + create_contact_accessible_name + Create new contact + Vytvořit nový kontakt + + + + more_info_accessible_name + More info %1 + Více informací o %1 + + + + + contact_details_edit + Edit +---------- +"Éditer" + Upravit + + + + contact_call_action + "Appel" + Volat + + + + contact_message_action + "Message" + Zpráva + + + + contact_video_call_action + "Appel vidéo" + Videohovor + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + Detaily kontaktu + + + + call_adress_accessible_name + Call address %1 + Adresa volání %1 + + + + contact_details_company_name + "Société :" + Společnost: + + + + contact_details_job_title + "Poste :" + Zaměstnání: + + + + contact_details_medias_title + "Medias" + Média + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + Zobrazit sdílená média + + + + contact_details_trust_title + "Confiance" + Důvěra + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + Úroveň důvěry - ověřená zařízení + + + + contact_details_no_device_found + "Aucun appareil" + Žádné zařízení + + + + contact_device_without_name + "Appareil inconnu" + Neznámé zařízení + + + + contact_make_call_check_device_trust + "Vérifier" + Ověřit + + + + verify_device_accessible_name + Verify %1 device + Ověřte zařízení %1 + + + + contact_details_actions_title + "Autres actions" + Ostatní akce + + + + contact_details_remove_from_favourites + "Retirer des favoris" + Odstranit z oblíbených + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + Přidat do oblíbených + + + + contact_details_share + "Partager" + Sdílet + + + + information_popup_error_title + Chyba + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + Vytvoření VCard se nezdařilo + + + + contact_details_share_success_title + "VCard créée" + VCard vytvořeno + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + VCard byla uložena v %1 + + + + contact_details_share_email_title + "Partage de contact" + Sdílet kontakt + + + + contact_details_delete + "Supprimer ce contact" + Smazat kontakt + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + LDAP servery + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + Přidejte servery LDAP, abyste mohli vyhledávat ve vyhledávacím panelu. + + + + settings_contacts_carddav_title + CardDAV adresář + + + + settings_contacts_carddav_subtitle + Přidáním adresáře CardDAV můžete synchronizovat kontakty Linphone s adresářem třetí strany. + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + Přidat LDAP server + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + Upravit LDAP server + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + Upravit server LDAP %1 + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + Použít server LDAP %1 + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + Přidat CardDAV adresář + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + Upravit CardDAV adresář + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + Upravit adresář CardDAV %1 + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + Použít adresář CardDAV %1 + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + Hotovo + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + Změny byly uloženy + + + + add + "Ajouter" + Přidat + + + + ConversationInfos + + + one_one_infos_call + "Appel" + Volat + + + + one_one_infos_unmute + "Sourdine" + Zrušit ztlumení + + + + one_one_infos_mute + Ztlumit + + + + group_infos_participants + Účastníci (%1) + + + + group_infos_media_docs + Medias & documents + Média a dokumenty + + + + group_infos_shared_medias + Shared medias + Sdílená média + + + + group_infos_shared_docs + Shared documents + Sdílené dokumenty + + + + group_infos_other_actions + Other actions + Ostatní akce + + + + group_infos_ephemerals + Mizející zprávy: + + + + group_infos_enable_ephemerals + Povolit mizející zprávy + + + + group_infos_meeting + Schedule a meeting + Naplánovat schůzku + + + + group_infos_leave_room + Leave chat room + Opustit chatovací místnost + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + Opustit chatovací místnost? + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + Z chatovací místnosti budou odstraněny všechny zprávy. Chcete pokračovat? + + + + group_infos_delete_history + Delete history + Smazat historii + + + + group_infos_delete_history_toast_title + Delete history ? + Smazat historii? + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + Z chatovací místnosti budou odstraněny všechny zprávy. Chcete pokračovat? + + + + one_one_infos_open_contact + Show contact + Zobrazit kontakt + + + + one_one_infos_create_contact + Create contact + Vytvořit kontakt + + + + one_one_infos_ephemerals + Mizející zprávy: + + + + one_one_infos_enable_ephemerals + Povolit mizející zprávy + + + + one_one_infos_delete_history + Smazat historii + + + + one_one_infos_delete_history_toast_title + Delete history ? + Smazat historii? + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + Z chatovací místnosti budou odstraněny všechny zprávy. Chcete pokračovat? + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + Najít kontakt + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + Ladicí záznamy budou odstraněny. Chcete pokračovat? + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + Byly nahrány ladící záznamy. Jak chcete odkaz sdílet? + + + + settings_debug_clipboard + "Presse-papier" + Schránka + + + + settings_debug_email + "E-Mail" + E-mail + + + + debug_settings_trace + "Traces %1" + %1 záznamy + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + Sdílení e-mailem se nezdařilo. Pošlete prosím odkaz %1 přímo na adresu %2. + + + + + information_popup_error_title + Une erreur est survenue. + Vyskytla se chyba. + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + Zapnout ladící záznamy + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + Zapnout úplné záznamy + + + + settings_debug_delete_logs_title + "Supprimer les traces" + Smazat ladící záznamy + + + + settings_debug_share_logs_title + "Partager les traces" + Sdílet ladící záznamy + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + Nahrávání záznamů… + + + + settings_debug_app_version_title + "Version de l'application" + Verze aplikace + + + + settings_debug_sdk_version_title + "Version du SDK" + Verze SDK + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + Nahrávání záznamů se nezdařilo. Soubory záznamů můžete sdílet přímo z následující složky: %1 + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + nemůže být prázdné + + + + textfield_error_message_unknown_format + "Format non reconnu" + Neznámý formát + + + + Dialog + + + + dialog_confirm + "Confirmer" + Potvrdit + + + + + dialog_cancel + "Annuler" + Zrušit + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + Šifrování: + + + + call_stats_media_encryption + Media encryption : %1 + Šifrování médií: %1%2 + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + Šifrovací algoritmus: %1 + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + Algoritmus výměny klíčů: %1 + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + Algoritmus hashe: %1 + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + Autentizační algoritmus: %1 + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + SAS algoritmus : %1 + + + + call_zrtp_validation_button_label + "Validation chiffrement" + Ověření šifrování + + + + EphemeralSettings + + + title + Mizející zprávy + + + + explanations + Povolením mizejících zpráv v tomto chatu budou odeslané zprávy po uplynutí nastavené doby automaticky smazány. + + + + one_minute + 1 minuta + + + + one_hour + 1 hodina + + + + one_day + 1 den + + + + one_week + 1 týden + + + + disabled + Zakázáno + + + + custom + Vlastní: + + + + EventLogCore + + + conference_created_event + Přidal(a) jste se ke skupině + + + + conference_created_terminated + Opustil(a) jste skupinu + + + + conference_participant_added_event + %1 se připojil + + + + conference_participant_removed_event + %1 již nadále není v konverzaci + + + + conference_participant_set_admin_event + %1 je nyní administrátor + + + + conference_participant_unset_admin_event + %1 již není administrátor + + + + + conference_security_event + Úroveň zabezpečení snížena %1 + + + + conference_ephemeral_message_enabled_event + Mizející zprávy zapnuty +Expirace : %1 + + + + conference_ephemeral_message_disabled_event + Mizející zprávy zapnuty + + + + conference_subject_changed_event + Nový předmět: %1 + + + + conference_ephemeral_message_lifetime_changed_event + Mizející zprávy aktualizovány +Expirace : %1 + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + SIP adresa + + + + + + device_id + "Téléphone" + Telefon + + + + information_popup_error_title + Chyba + + + + information_popup_invalid_address_message + "Adresse invalide" + Neplatná adresa + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + Spravovat účastníky + + + + group_infos_participant_is_admin + Administrátor + + + + menu_see_existing_contact + "Show contact" + Zobrazit kontakt + + + + menu_add_address_to_contacts + "Add to contacts" + Přidat do kontaktů + + + + group_infos_give_admin_rights + Udělit práva administrátora + + + + group_infos_remove_admin_rights + Odebrat práva administrátora + + + + group_infos_copy_sip_address + Kopírovat SIP adresu + + + + group_infos_remove_participant + Odstranit účastníka + + + + group_infos_remove_participants_toast_title + Odstranit účastníka? + + + + group_infos_remove_participants_toast_message + Účastník bude odstraněn z chatovací místnosti. + + + + GroupCreationFormLayout + + + return_accessible_name + Return + Návrat + + + + + group_start_dialog_subject_hint + "Nom du groupe" + Název skupiny + + + + required + "Requis" + Vyžadováno + + + + HelpPage + + + help_title + "Aide" + Nápověda + + + + + help_about_title + "À propos de %1" + Informace o %1 + + + + help_about_privacy_policy_title + "Règles de confidentialité" + Zásady ochrany soukromí + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + Jaké informace %1 shromažďuje a používá + + + + help_about_version_title + "Version" + Verze + + + + help_about_gpl_licence_title + "Licences GPLv3" + Licence GPLv3 + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + Přispějte k překladu %1 + + + + help_troubleshooting_title + "Dépannage" + Řešení potíží + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + LDAP servery + + + + settings_contacts_ldap_subtitle + Přidejte servery LDAP, abyste mohli vyhledávat ve vyhledávacím panelu. + + + + information_popup_success_title + Hotovo + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + LDAP server byl uložen + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + Došlo k chybě, konfigurace LDAP nebyla uložena! + + + + information_popup_error_title + Chyba + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + Smazat LDAP server ? + + + + delete_ldap_server_accessible_name + Delete LDAP server + Smazat LDAP server + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + URL adresa serveru (nelze nechat prázdné) + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + Bind DN (identifikátor pro připojení) + + + + settings_contacts_ldap_password_title + "Mot de passe" + Heslo + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + Použít TLS + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + Základ vyhledávání (nelze nechat prázdné) + + + + settings_contacts_ldap_search_filter_title + "Filtre" + Filtr + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + Maximální počet výsledků + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + Zpoždění mezi dvěma dotazy (v milisekundách) + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + Časový limit (v sekundách) + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + Minimální počet znaků dotazu + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + Atributy názvu + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + Atributy SIP + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + Doména SIP + + + + settings_contacts_ldap_debug_title + "Débogage" + Ladění + + + + LoadingPopup + + + cancel + Zrušit + + + + LoginForm + + + + username + Nom d'utilisateur : username + Uživatelské jméno + + + + + password + Mot de passe + Heslo + + + + mandatory_field_accessible_name + "%1 mandatory" + %1 vyžadováno + + + + + assistant_account_login + "Connexion" + Připojení + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + Zadejte prosím uživatelské jméno + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + Zadejte prosím heslo + + + + assistant_forgotten_password + "Mot de passe oublié ?" + Zapomenuté heslo? + + + + LoginLayout + + + + help_about_title + À propos de %1 + Informace o %1 + + + + help_about_privacy_policy_title + "Politique de confidentialité" + Zásady ochrany soukromí + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + Přečtěte si zásady ochrany soukromí + + + + help_about_version_title + "Version" + Verze + + + + help_about_licence_title + "Licence" + Licence + + + + help_about_copyright_title + "Copyright + Autorská práva + + + + close + "Fermer" + Zavřít + + + + LoginPage + + + return_accessible_name + Return + Návrat + + + + assistant_account_login + Connexion + Připojení + + + + assistant_no_account_yet + "Pas encore de compte ?" + Zatím žádný účet? + + + + assistant_account_register + "S'inscrire" + Registrace + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + SIP účet třetí strany + + + + assistant_login_remote_provisioning + "Configuration distante" + Vzdálené nastavení + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + Stáhnout vzdálené nastavení + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + Zadejte prosím odkaz na nastavení, který vám byl poskytnut: + + + + cancel + Zrušit + + + + validate + "Valider" + Potvrdit + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + Odkaz pro vzdálené nastavení + + + + default_account_connection_state_error_toast + Chyba při připojování + + + + MagicSearchList + + + device_id + Telefon + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + Hovory + + + + open_calls_page_accessible_name + "Open calls page" + Otevřít stránku hovorů + + + + bottom_navigation_contacts_label + "Contacts" + Kontakty + + + + open_contacts_page_accessible_name + "Open contacts page" + Otevřít stránku kontaktů + + + + bottom_navigation_conversations_label + "Conversations" + Konverzace + + + + open_conversations_page_accessible_name + "Open conversations page" + Otevřít stránku konverzací + + + + bottom_navigation_meetings_label + "Réunions" + Schůzky + + + + open_contact_page_accessible_name + "Open meetings page" + Otevřít stránku schůzek + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + Vyhledání kontaktu, volání %1 + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + nebo odeslání zprávy… + + + + do_not_disturb_accessible_name + "Do not disturb" + Nerušit + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + Vypnout režim Nerušit + + + + information_popup_error_title + Chyba + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + URI hlasové schránky není definována. + + + + account_list_accessible_name + "Account list" + Seznam účtů + + + + application_options_accessible_name + "Application options" + Volby aplikace + + + + drawer_menu_manage_account + Mon compte + Můj účet + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + Zapnout režim Nerušit + + + + settings_title + Nastavení + + + + recordings_title + "Enregistrements" + Záznamy + + + + help_title + "Aide" + Nápověda + + + + help_quit_title + "Quitter l'application" + Ukončit aplikaci + + + + quit_app_question + "Quitter %1 ?" + Ukončit %1 ? + + + + drawer_menu_add_account + "Ajouter un compte" + Přidat účet + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + Úspěšně připojeno + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + Jste přihlášeni v režimu %1 + + + + interoperable + interopérable + interoperabilní + + + + call_transfer_successful_toast_title + "Appel transféré" + Hovor přesměrován + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + Váš hovor byl přesměrován na vybraný kontakt + + + + information_popup_success_title + Uloženo + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + Změny byly uloženy + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + Ověřte prosím kód captcha na webové stránce + + + + assistant_register_error_title + "Erreur lors de la création" + Chyba během vytváření + + + + assistant_register_success_title + "Compte créé" + Účet vytvořen + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + Účet byl vytvořen. Nyní se můžete přihlásit. + + + + assistant_register_error_code + "Erreur dans le code de validation" + Chyba v ověřovacím kódu + + + + information_popup_error_title + Chyba + + + + ManageParticipants + + + group_infos_manage_participants + Účastníci + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + Schůzka + + + + meeting_schedule_broadcast_label + "Webinar" + Webinář + + + + meeting_schedule_subject_hint + "Ajouter un titre" + Přidat název + + + + meeting_schedule_description_hint + "Ajouter une description" + Přidat popis + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + Přidat účastníky + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + Odeslání pozvánky účastníkům + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + Schůzka zrušena + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + Dnes žádná schůzka + + + + meeting_info_delete + "Supprimer la réunion" + Smazat schůzku + + + + MeetingPage + + + meetings_add + "Créer une réunion" + Vytvořit schůzku + + + + meetings_list_empty + "Aucune réunion" + Žádná schůzka + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + Chcete zrušit a smazat tuto schůzku? + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + Chcete tuto schůzku smazat? + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + Zrušit a smazat + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + Pouze smazat + + + + meeting_schedule_delete_action + "Supprimer" + Smazat + + + + back_action + Retour + Zpět + + + + meetings_list_title + Réunions + Schůzky + + + + meetings_search_hint + "Rechercher une réunion" + Najít schůzku + + + + list_filter_no_result_found + "Aucun résultat…" + Žádný výsledek… + + + + meetings_empty_list + "Aucune réunion" + Žádná schůzka + + + + + meeting_schedule_title + "Nouvelle réunion" + Nová schůzka + + + + create + Vytvořit + + + + + + + + + information_popup_error_title + Chyba + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + Vyplňte prosím název a vyberte alespoň jednoho účastníka + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + Konec musí být později než začátek + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + Probíhá vytváření… + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + Schůzka úspěšně vytvořena + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + Vytvoření schůzky selhalo! + + + + save + Uložit + + + + + saved + "Enregistré" + Uloženo + + + + meeting_info_updated_toast + "Réunion mise à jour" + Schůzka upravena + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + Probíhá úprava schůzky… + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + Úprava schůzky selhala! + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + Přidat účastníky + + + + meeting_schedule_add_participants_apply + Použít + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + %1 vybraný účastník + %1 vybraní účastníci + %1 vybraných účastníků + + + + + meeting_info_delete + "Supprimer la réunion" + Smazat schůzku + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + URI schůzky zkopírováno + + + + meeting_schedule_timezone_title + "Fuseau horaire" + Časová zóna + + + + meeting_info_organizer_label + "Organisateur" + Organizátor + + + + meeting_info_join_title + "Rejoindre la réunion" + Připojit ke schůzce + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + Zobrazení + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + Výchozí režim displeje + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + Jak se zobrazují účastníci schůzek + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + Stav zprávy + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + Reakce + + + + click_to_delete_reaction_info + Click to delete + Kliknutím odstranit + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + Žádná média + + + + no_shared_documents + No document + Žádný dokument + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + Vyzvánění - příchozí hovory + + + + + + + choose_something_accessible_name + Choose %1 + Vybrat %1 + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + Reproduktory + + + + + device_volume_accessible_name + %1 volume + Zařízení %1 + + + + + + multimedia_settings_microphone_title + "Microphone" + Mikrofon + + + + + multimedia_settings_camera_title + "Caméra" + Kamera + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + Síť + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + Povolit IPv6 + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + Probíhající hovor + + + + call_start_group_call_title + Appel de groupe + Skupinový hovor + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + Nová skupina + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + Příchozí hovor + + + + dialog_accept + "Accepter" + Přijmout + + + + dialog_deny + "Refuser + Odmítnout + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + Nový hovor od %1 + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + Přijata hlasová zpráva! + + + + new_file_message + Přijat soubor! + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + Přijata pozvánka na schůzku! + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + Přijata nová zpráva! + + + + new_message_alert_accessible_name + New message on chatroom %1 + Nová zpráva v místnosti %1 + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + OAuthHttpServerReplyHandler nenaslouchá + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + Prodleva: není ověřeno + + + + oidc_authentication_granted_message + Authentication granted + Uděleno ověření + + + + oidc_authentication_not_authenticated_message + Not authenticated + Není ověřeno + + + + oidc_authentication_refresh_message + Refreshing token + Obnova tokenu + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + Dočasné přihlášení přijato + + + + oidc_authentication_network_error + Network error + Chyba sítě + + + + oidc_authentication_server_error + Server error + Chyba serveru + + + + oidc_authentication_token_not_found_error + OAuth token not found + OAuth token nenalezen + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + Tajemství OAuth tokenu nebylo nalezeno + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + Zpětné volání OAuth nebylo ověřeno + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + Vyžadování autorizace od prohlížeče + + + + oidc_authentication_no_token_found_error + Žádný token nenalezen + + + + oidc_authentication_request_token_message + Requesting access token + Vyžadování přístupového tokenu + + + + oidc_authentication_refresh_token_message + Refreshing access token + Obnova přístupového tokenu + + + + oidc_authentication_request_authorization_message + Requesting authorization + Vyžadování autorizace + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + Vyžadování dočasného přihlášení + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + V konfiguraci služby OpenID nebyl nalezen žádný koncový bod autorizace + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + V konfiguraci OpenID nebyl nalezen žádný koncový bod tokenu + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + Administrátor + + + + meeting_add_participants_title + "Ajouter des participants" + Přidat účastníky + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + prefix %1 + + + + number_phone_number_accessible_name + %1 number + číslo %1 + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + Zavřít %1 oken + + + + open_popup_panel_accessible_name + "Open %1" popup + Otevřít %1 oken + + + + Presence + + + contact_presence_reset_status + Obnovit stav + + + + contact_presence_button_set_custom_status + Nastavit + + + + contact_presence_button_edit_custom_status + Upravit + + + + contact_presence_button_delete_custom_status + Smazat + + + + contact_presence_custom_status + Vlastní stav + + + + PresenceNoteLayout + + + contact_presence_note_title + Vlastní zpráva + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + Nastavit vlastní zprávu + + + + contact_presence_button_save_custom_status + Uložit + + + + QObject + + + media_encryption_dtls + DTLS + + + + media_encryption_none + Žádné + + + + media_encryption_srtp + SRTP + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + Post-kvantové ZRTP + + + + message_state_in_progress + "delivery in progress" + probíhá doručování + + + + message_state_delivered + sent + odesláno + + + + message_state_not_delivered + error + chyba + + + + message_state_file_transfer_error + cannot get file from server + nelze získat soubor ze serveru + + + + message_state_file_transfer_done + file transfer has been completed successfully + přenos souboru byl úspěšně dokončen + + + + message_state_delivered_to_user + received + přijato + + + + message_state_displayed + read + přečteno + + + + message_state_file_transfer__in_progress + file transfer in progress + probíhá přenos souboru + + + + message_state_pending_delivery + pending delivery + čekání na doručení + + + + message_state_file_transfer_cancelling + file transfer canceled + přenos souboru zrušen + + + + incoming + "Entrant" + Příchozí + + + + outgoing + "Sortant" + Odchozí + + + + conference_layout_active_speaker + "Participant actif" + Aktivní mluvčí + + + + conference_layout_grid + "Mosaïque" + Mřížka + + + + conference_layout_audio_only + "Audio uniquement" + Pouze zvuk + + + + RegisterCheckingPage + + + email + "email" + e-mail + + + + phone_number + "numéro de téléphone" + telefonní číslo + + + + confirm_register_title + "Inscription | Confirmer votre %1" + Registrace | Potvrzení %1 + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + Zaslali jsme vám ověřovací kód na %1 %2<br> Zadejte jej prosím níže + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + Nedostali jste kód? + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + Znovu odeslat kód + + + + RegisterPage + + + return_accessible_name + Return + Návrat + + + + assistant_account_register + "Inscription + Registrace + + + + assistant_already_have_an_account + Již máte účet? + + + + assistant_account_login + Připojení + + + + assistant_account_register_with_phone_number + Registrace s telefonním číslem + + + + assistant_account_register_with_email + Registrace s e-mailem + + + + + username + Uživatelské jméno + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + %1 vyžadováno + + + + domain + Doména + + + + + + phone_number + "Numéro de téléphone" + Telefonní číslo + + + + + email + E-mail + + + + + password + Heslo + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + Potvrzení hesla + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + Přijímám %1 a %2 + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + podmínky používání + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + zásady ochrany soukromí + + + + assistant_account_create + "Créer" + Vytvořit + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + Zadejte prosím uživatelské jméno + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + Zadejte prosím heslo + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + Hesla se neshodují + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + Zadejte prosím telefonní číslo + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + Zadejte prosím e-mail + + + + SIPLoginPage + + + return_accessible_name + Return + Návrat + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + SIP účet třetí strany + + + + assistant_no_account_yet + Pas encore de compte ? + Zatím žádný účet? + + + + assistant_account_register + S'inscrire + Registrace + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + Některé funkce, jako jsou skupinové chaty, videokonference atd., vyžadují účet %1. + +Tyto funkce budou skryté, pokud použijete SIP účet třetí strany. + +Chcete-li je povolit v komerčním projektu, kontaktujte nás. + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + Vytvořit účet Linphone + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + Rozumím + + + + + username + "Nom d'utilisateur" + Uživatelské jméno + + + + + mandatory_field_accessible_name + "%1 mandatory" + %1 vyžadováno + + + + + password + Heslo + + + + + sip_address_domain + "Domaine" + Doména + + + + + sip_address_display_name + Nom d'affichage + Zobrazené jméno + + + + + transport + "Transport" + Transport + + + + + assistant_account_login + Připojení + + + + assistant_account_login_missing_username + Zadejte prosím uživatelské jméno + + + + assistant_account_login_missing_password + Zadejte prosím heslo + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + Zadejte prosím doménu + + + + login_advanced_parameters_label + Advanced parameters + Rozšířené parametry + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + URI odchozího SIP proxy serveru + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + Pokud je toto pole vyplněno, odchozí proxy bude automaticky povolena. Nechte jej prázdné, chcete-li ji zakázat. + + + + + login_registrar_uri + "Registrar URI" + Registrační URI + + + + + login_id + "Authentication ID (if different)" + ID pro ověření (je-li odlišné) + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + Vyberte obrazovku nebo okno, které chcete sdílet s ostatními účastníky. + + + + screencast_settings_all_screen_label + "Ecran entier" + Celá obrazovka + + + + screencast_settings_one_window_label + "Fenêtre" + Okno + + + + screencast_settings_screen + "Ecran %1" + Obrazovka %1 + + + + stop + "Stop + Zastavit + + + + share + "Partager" + Sdílet + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + Otevřít číselník + + + + clear_text_input_acccessibility_label + "Clear text input" + Vymazat text + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + Vyberte režim + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + Režim můžete změnit později. + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + Koncové šifrování + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + Tento režim zaručuje důvěrnost veškeré vaší komunikace. Naše technologie koncového šifrování zajišťuje maximální bezpečnost veškeré vaší komunikace. + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + Interoperabilní + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + Tento režim umožňuje využívat všechny funkce Linphone a zároveň je interoperabilní s jakoukoli jinou SIP službou. + + + + dialog_continue + "Continuer" + Pokračovat + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + Šifrovat všechny soubory + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + Upozornění: Jakmile je tato funkce jednou povolena, nelze ji vypnout! + + + + SelectedChatView + + + chat_view_group_call_toast_message + Zahájit skupinový hovor? + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + Tato konverzace není šifrována! + + + + reply_to_label + Reply to %1 + Odpověď na %1 + + + + shared_medias_title + Shared medias + Sdílená média + + + + shared_documents_title + Shared documents + Sdílené dokumenty + + + + forward_to_title + Forward to… + Přeposlat na… + + + + conversations_title + Conversations + Konverzace + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + nastavení %1 + + + + SettingsPage + + + settings_title + "Paramètres" + Nastavení + + + + settings_calls_title + "Appels" + Hovory + + + + settings_call_forward + "Transfert d'appel" + Přesměrování hovoru + + + + settings_conversations_title + "Conversations" + Konverzace + + + + settings_contacts_title + "Contacts" + Kontakty + + + + settings_meetings_title + "Réunions" + Schůzky + + + + settings_network_title + "Affichage" "Security" "Réseau" + Síť + + + + settings_advanced_title + "Paramètres avancés" + Rozšířené parametry + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + Neuložené změny + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + Máte neuložené změny. Pokud opustíte tuto stránku, vaše změny budou ztraceny. Chcete své změny před pokračováním uložit? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + Neukládat + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + Uložit + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + připojování… + + + + conference_participant_paused_text + "En pause" + Pozastaveno + + + + TextField + + + show_accessible_name + Show %1 + Zobrazit %1 + + + + hide_accessible_name + Hide %1 + Skrýt %1 + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + Volající adresa není interpretovatelná SIP adresa : %1 + + + + group_call_error_no_account + Nebyl nalezen žádný výchozí účet, nelze vytvořit skupinový hovor + + + + group_call_error_participants_invite + Nelze pozvat účastníky do skupinového hovoru + + + + group_call_error_creation + Skupinový hovor nelze vytvořit + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + Hlasový záznam (%1) + + + + unknown_audio_device_name + Neznámý název zařízení + + + + conference_invitation + Pozvánka na schůzku + + + + conference_invitation_cancelled + Zrušení schůzky + + + + conference_invitation_updated + Změna schůzky + + + + Utils + + + nSeconds + + %1 vteřina + %1 vteřiny + %1 vteřin + + + + + nMinute + + %1 minuta + %1 minuty + %1 minut + + + + + chat_message_forward_error + Cannot forward an invalid message + Nelze přeposlat neplatnou zprávu + + + + info_popup_forward_message_error + Could not forward message : %1 + Nelze přeposlat zprávu: %1 + + + + info_popup_send_forward_message_error_message + Failed to create forward message + Nepodařilo se vytvořit přeposlanou zprávu + + + + chat_message_reply_error + Cannot reply to invalid message + Nelze odpovědět na neplatnou zprávu + + + + info_popup_reply_message_error + Could not send reply message : %1 + Nelze odeslat odpověď: %1 + + + + info_popup_send_reply_message_error_message + Failed to create reply message + Nepodařilo se vytvořit odpověď + + + + nHour + + %1 hodina + %1 hodiny + %1 hodin + + + + + + nDay + + %1 den + %1 dny + %1 dnů + + + + + nWeek + + %1 týden + %1 týdny + %1 týdnů + + + + + contact_presence_status_available + Dostupný + + + + contact_presence_status_busy + Zaneprázdněný + + + + contact_presence_status_do_not_disturb + Nerušit + + + + contact_presence_status_offline + Offline + + + + contact_presence_status_away + Nečinný/Pryč + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + Hovor se nepodařilo vytvořit + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + Chyba + + + + information_popup_group_call_not_created_message + Skupinový hovor nelze vytvořit + + + + number_of_years + %n an(s) + + 1 rok + %1 roky + %1 let + + + + + number_of_month + "%n mois" + + 1 měsíc + %1 měsíce + %1 měsíců + + + + + number_of_weeks + %n semaine(s) + + 1 týden + %1 týdny + %1 týdnů + + + + + number_of_days + %n jour(s) + + 1 den + %1 dny + %1 dnů + + + + + today + "Aujourd'hui" + Dnes + + + + yesterday + "Hier + Včera + + + + duration_tomorrow + Tomorrow + Zítra + + + + duration_number_of_days + %1 jour(s) + + %n den + %n dny + %n dnů + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + Nepodařilo se vytvořit konverzaci 1-1 s %1 ! + + + + recorder_error + Error with the recorder + Chyba s rekordérem + + + + + + chat_error + Chyba v chatu + + + + + + + + + info_popup_error_title + Error + Chyba + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + Nelze odeslat hlasovou zprávu: %1 + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + Nepodařilo se vytvořit zprávu ze záznamu + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + Připojit se k: + + + + meeting_waiting_room_join + "Rejoindre" + Připojit se + + + + + cancel + Cancel + Zrušit + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + Připojování ke schůzce + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + Za chvíli se připojíte ke schůzce... + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + Vítejte + + + + welcome_page_subtitle + "sur %1" + v %1 + + + + welcome_carousel_skip + "Passer" + Přeskočit + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + <b>Zabezpečená</b>,<br> <b>open source</b> a <b>francouzská</b> komunikační aplikace. + + + + welcome_page_2_title + "Sécurisé" + Zabezpečená + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + Vaše komunikace je zabezpečená díky <br><b>koncovému šifrování</b>. + + + + welcome_page_3_title + "Open Source" + Open Source + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + Aplikace s otevřeným zdrojovým kódem a <b>bezplatná služba</b> <br>od roku <b>2001</b> + + + + next + "Suivant" + Další + + + + start + "Commencer" + Start + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + Kontrola zabezpečení + + + + call_zrtp_sas_validation_skip + "Passer" + Přeskočit + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + Abychom zajistili šifrování, musíme zařízení vašeho kontaktu znovu ověřit. Vyměňte si kódy: + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + Abychom zajistili šifrování, musíme zařízení vašeho kontaktu ověřit. Vyměňte si prosím své kódy: + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + Váš kód: + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + Odpovídající kód: + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + Odpovídající kód nesouhlasí. + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + Důvěrnost vašeho hovoru může být ohrožena! + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + Neshoduje se + + + + call_action_hang_up + "Raccrocher" + Zavěsit + + + + country + + + Afghanistan + Afgánistán + + + + Albania + Albánie + + + + Algeria + Alžírsko + + + + AmericanSamoa + Americká Samoa + + + + Andorra + Andora + + + + Angola + Angola + + + + Anguilla + Anguilla + + + + AntiguaAndBarbuda + Antigua a Barbuda + + + + Argentina + Argentina + + + + Armenia + Arménie + + + + Aruba + Aruba + + + + Australia + Austrálie + + + + Austria + Rakousko + + + + Azerbaijan + Ázerbajdžán + + + + Bahamas + Bahamy + + + + Bahrain + Bahrajn + + + + Bangladesh + Bangladéš + + + + Barbados + Barbados + + + + Belarus + Bělorusko + + + + Belgium + Belgie + + + + Belize + Belize + + + + Benin + Benin + + + + Bermuda + Bermudy + + + + Bhutan + Bhútán + + + + Bolivia + Bolívie + + + + BosniaAndHerzegowina + Bosna a Hercegovina + + + + Botswana + Botswana + + + + Brazil + Brazílie + + + + Brunei + Brunej + + + + Bulgaria + Bulharsko + + + + BurkinaFaso + Burkina Faso + + + + Burundi + Burundi + + + + Cambodia + Kambodža + + + + Cameroon + Kamerun + + + + Canada + Kanada + + + + CapeVerde + Kapverdské ostrovy + + + + CaymanIslands + Kajmanské ostrovy + + + + CentralAfricanRepublic + Středoafrická Republika + + + + Chad + Čad + + + + Chile + Chile + + + + China + Čína + + + + Colombia + Kolumbie + + + + Comoros + Komory + + + + PeoplesRepublicOfCongo + Lidová republika Kongo + + + + CookIslands + Cookovy ostrovy + + + + CostaRica + Kostarika + + + + IvoryCoast + Pobřeží Slonoviny + + + + Croatia + Chorvatsko + + + + Cuba + Kuba + + + + Cyprus + Kypr + + + + CzechRepublic + Česká Republika + + + + Denmark + Dánsko + + + + Djibouti + Džibuti + + + + Dominica + Dominika + + + + DominicanRepublic + Dominikánská Republika + + + + Ecuador + Ekvádor + + + + Egypt + Egypt + + + + ElSalvador + Salvádor + + + + EquatorialGuinea + Rovníková Guinea + + + + Eritrea + Eritrea + + + + Estonia + Estonsko + + + + Ethiopia + Etiopie + + + + FalklandIslands + Falklandské ostrovy + + + + FaroeIslands + Faerské ostrovy + + + + Fiji + Fiji + + + + Finland + Finsko + + + + France + Francie + + + + FrenchGuiana + Francouzská Guinea + + + + FrenchPolynesia + Francouzská Polynésie + + + + Gabon + Gabon + + + + Gambia + Gambie + + + + Georgia + Gruzie + + + + Germany + Německo + + + + Ghana + Ghana + + + + Gibraltar + Gibraltar + + + + Greece + Řecko + + + + Greenland + Grónsko + + + + Grenada + Grenada + + + + Guadeloupe + Guadelupe + + + + Guam + Guam + + + + Guatemala + Guatemala + + + + Guinea + Guinea + + + + GuineaBissau + Guinea-Bissau + + + + Guyana + Guyana + + + + Haiti + Haiti + + + + Honduras + Honduras + + + + DemocraticRepublicOfCongo + Demokratická Republika Kongo + + + + HongKong + Hong Kong + + + + Hungary + Maďarsko + + + + Iceland + Island + + + + India + Indie + + + + Indonesia + Indonésie + + + + Iran + Irán + + + + Iraq + Irák + + + + Ireland + Irsko + + + + Israel + Izrael + + + + Italy + Itálie + + + + Jamaica + Jamajka + + + + Japan + Japonsko + + + + Jordan + Jordánsko + + + + Kazakhstan + Kazachstán + + + + Kenya + Keňa + + + + Kiribati + Kiribati + + + + DemocraticRepublicOfKorea + Korejská lidově demokratická republika + + + + RepublicOfKorea + Korejská republika + + + + Kuwait + Kuwajt + + + + Kyrgyzstan + Kyrgyzstán + + + + Laos + Laos + + + + Latvia + Lotyšsko + + + + Lebanon + Libanon + + + + Lesotho + Lesotho + + + + Liberia + Libérie + + + + Libya + Libye + + + + Liechtenstein + Lichtenštejnsko + + + + Lithuania + Litva + + + + Luxembourg + Lucembursko + + + + Macau + Macao + + + + Macedonia + Makedonie + + + + Madagascar + Madagaskar + + + + Malawi + Malawi + + + + Malaysia + Malajsie + + + + Maldives + Maledivy + + + + Mali + Mali + + + + Malta + Malta + + + + MarshallIslands + Marshalovy ostrovy + + + + Martinique + Martinik + + + + Mauritania + Mauretánie + + + + Mauritius + Mauritius + + + + Mayotte + Mayotte + + + + Mexico + Mexiko + + + + Micronesia + Mikronésie + + + + Moldova + Moldávie + + + + Monaco + Monako + + + + Mongolia + Mongolsko + + + + Montenegro + Černá Hora + + + + Montserrat + Montserrat + + + + Morocco + Maroko + + + + Mozambique + Mozambik + + + + Myanmar + Barma + + + + Namibia + Namibie + + + + NauruCountry + Nauru + + + + Nepal + Nepál + + + + Netherlands + Holandsko + + + + NewCaledonia + Nová Kaledonie + + + + NewZealand + Nový Zéland + + + + Nicaragua + Nikaragua + + + + Niger + Niger + + + + Nigeria + Nigérie + + + + Niue + Niue + + + + NorfolkIsland + Norfolk + + + + NorthernMarianaIslands + Severní marianské ostrovy + + + + Norway + Norsko + + + + Oman + Omán + + + + Pakistan + Pákistán + + + + Palau + Palau + + + + PalestinianTerritories + Palestina + + + + Panama + Panama + + + + PapuaNewGuinea + Papua - Nová Guinea + + + + Paraguay + Paraguay + + + + Peru + Peru + + + + Philippines + Filipíny + + + + Poland + Polsko + + + + Portugal + Portugalsko + + + + PuertoRico + Portoriko + + + + Qatar + Katar + + + + Reunion + Reunion + + + + Romania + Rumunsko + + + + RussianFederation + Rusko + + + + Rwanda + Rwanda + + + + SaintHelena + Svatá Helena + + + + SaintKittsAndNevis + Svatý Kryštof a Nevis + + + + SaintLucia + Svatá Lucie + + + + SaintPierreAndMiquelon + Saint Pierre a Miquelon + + + + SaintVincentAndTheGrenadines + Svatý Vincent a Grenadiny + + + + Samoa + Samoa + + + + SanMarino + San Marino + + + + SaoTomeAndPrincipe + Svatý Tomáš a Princip + + + + SaudiArabia + Saudská Arábie + + + + Senegal + Senegal + + + + Serbia + Srbsko + + + + Seychelles + Seychely + + + + SierraLeone + Sierra Leone + + + + Singapore + Singapur + + + + Slovakia + Slovensko + + + + Slovenia + Slovinsko + + + + SolomonIslands + Solomonské ostrovy + + + + Somalia + Somálsko + + + + SouthAfrica + Jihoafrická Republika + + + + Spain + Španělsko + + + + SriLanka + Sri Lanka + + + + Sudan + Sudán + + + + Suriname + Surinam + + + + Swaziland + Svazijsko + + + + Sweden + Švédsko + + + + Switzerland + Švýcarsko + + + + Syria + Sýrie + + + + Taiwan + Taiwan + + + + Tajikistan + Tádžikistán + + + + Tanzania + Tanzánie + + + + Thailand + Thajsko + + + + Togo + Togo + + + + Tokelau + Tokelau + + + + Tonga + Tonga + + + + TrinidadAndTobago + Trinidad a Tobago + + + + Tunisia + Tunis + + + + Turkey + Turecko + + + + Turkmenistan + Turkmenistán + + + + TurksAndCaicosIslands + Ostrovy Turks a Caicos + + + + Tuvalu + Tuvalu + + + + Uganda + Uganda + + + + Ukraine + Ukrajina + + + + UnitedArabEmirates + Spojené Arabské Emiráty + + + + UnitedKingdom + Velká Británie + + + + UnitedStates + Spojené Státy Americké + + + + Uruguay + Uruguay + + + + Uzbekistan + Uzbekistán + + + + Vanuatu + Vanuatu + + + + Venezuela + Venezuela + + + + Vietnam + Vietnam + + + + WallisAndFutunaIslands + Ostrovy Wallis a Futuna + + + + Yemen + Jemen + + + + Zambia + Zambie + + + + Zimbabwe + Zimbabwe + + + + utils + + + formatYears + '%1 year' + + 1 rok + %1 roky + %1 let + + + + + formatMonths + '%1 month' + + 1 měsíc + %1 měsíce + %1 měsíců + + + + + formatWeeks + '%1 week' + + 1 týden + %1 týdny + %1 týdnů + + + + + formatDays + '%1 day' + + 1 den + %1 dny + %1 dnů + + + + + formatHours + '%1 hour' + + 1 hodina + %1 hodiny + %1 hodin + + + + + formatMinutes + '%1 minute' + + 1 minuta + %1 minuty + %1 minut + + + + + formatSeconds + '%1 second' + + 1 vteřina + %1 vteřiny + %1 vteřin + + + + + codec_install + "Installation de codec" + Instalace kodeku + + + + download_codec + "Télécharger le codec %1 (%2) ?" + Stáhnout kodek %1 (%2) ? + + + + information_popup_success_title + "Succès" + Hotovo + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + Kodek byl úspěšně nainstalován. + + + + + + information_popup_error_title + Chyba + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + Kodek nelze nainstalovat. + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + Kodek nelze uložit. + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + Kodek nelze stáhnout. + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + Probíhá stahování… + + + + okButton + Ok + + + + CoreModel + + + info_popup_error_title + Chyba + + + + fetching_config_failed_error_message + Vzdálené nastavení nelze načíst + + + diff --git a/Linphone/data/languages/de.ts b/Linphone/data/languages/de.ts index 350e3e9d8..e8980d8fb 100644 --- a/Linphone/data/languages/de.ts +++ b/Linphone/data/languages/de.ts @@ -25,13 +25,13 @@ AbstractWindow - + contact_dialog_pick_phone_number_or_sip_address_title "Choisissez un numéro ou adresse SIP" Telefonnummer oder SIP-Adresse wählen - + fps_counter %1 FPS @@ -98,49 +98,49 @@ add_an_account Add an account - + Konto hinzufügen AccountManager - + assistant_account_login_already_connected_error "The account is already connected" Das Konto ist bereits verbunden - + assistant_account_login_proxy_address_error "Unable to create proxy address. Please check the domain name." Proxy-Adresse konnte nicht erstellt werden. Bitte überprüfen Sie den Domänenname. - + assistant_account_login_address_configuration_error "Unable to configure address: `%1`." Folgende Adresse konnte nicht konfiguriert werden: `%1`. - + assistant_account_login_params_configuration_error "Unable to configure account settings." Kontoeinstellungen konnten nicht konfiguriert werden. - + assistant_account_login_forbidden_error "Username and password do not match" Benutzername und Passwort stimmen nicht überein - + assistant_account_login_error "Error during connection, please verify your parameters" Fehler bei der Verbindung - + assistant_account_add_error "Unable to add account." Konto konnte nicht hinzugefügt werden. @@ -161,25 +161,25 @@ - + set_outbound_proxy_uri_failed_error_message Unable to set outbound proxy uri, failed creating address from %1 - + set_conference_factory_address_failed_error_message "Unable to set the conversation server address, failed creating address from %1" - + set_audio_conference_factory_address_failed_error_message "Unable to set the meeting server address, failed creating address from %1" - + set_voicemail_address_failed_error_message Unable to set voicemail address, failed creating address from %1 @@ -188,118 +188,138 @@ AccountSettingsGeneralLayout - + manage_account_details_title "Détails" Details - + manage_account_details_subtitle Éditer les informations de votre compte. Kontoinformationen bearbeiten. - + manage_account_devices_title "Vos appareils" Geräte - + manage_account_devices_subtitle "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." Liste der mit Ihrem Konto verbundenen Geräte. Sie können Geräte entfernen, die Sie nicht mehr verwenden. - + manage_account_add_picture "Ajouter une image" Bild hinzufügen - + manage_account_edit_picture "Modifier l'image" Bild bearbeiten - + manage_account_remove_picture "Supprimer l'image" Bild löschen - + sip_address - SIP-Adresse + SIP address + SIP-Adresse - + + copied + Copied + Kopiert + + + + account_settings_sip_address_copied_message + Your SIP address has been copied in the clipboard + + + + + account_settings_sip_address_copied_error_message + Error copying your SIP address + + + + sip_address_display_name "Nom d'affichage Anzeigename - + sip_address_display_name_explaination "Le nom qui sera affiché à vos correspondants lors de vos échanges." Der Name, der Ihren Kontakten während der Kommunikation angezeigt wird. - + manage_account_international_prefix Indicatif international* Internationale Vorwahl* - + manage_account_delete "Déconnecter mon compte" Konto trennen - + manage_account_delete_message Ihr Konto wird aus diesem Linphone-Client entfernt, bleibt jedoch auf Ihren anderen Geräten verbunden - + manage_account_dialog_remove_account_title "Se déconnecter du compte ?" Vom Konto abmelden? - + manage_account_dialog_remove_account_message Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org Wenn Sie Ihr Konto dauerhaft löschen möchten, besuchen Sie: https://sip.linphone.org - + + error Erreur Fehler - + manage_account_device_remove "Supprimer" Löschen - + manage_account_device_remove_confirm_dialog %1 löschen? - + manage_account_device_last_connection "Dernière connexion:" Letzte Anmeldung: - + device_last_updated_time_no_info "No information" @@ -352,78 +372,65 @@ AccountSettingsParametersLayout - + settings_title Einstellungen - + settings_account_title Kontoeinstellungen - - info_popup_invalid_registrar_uri_message - Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) - - - - - info_popup_invalid_outbound_proxy_message - Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) - - - - info_popup_error_title - + Fehler - + information_popup_success_title Erfolg - + contact_editor_saved_changes_toast "Modifications sauvegardés" Änderungen gespeichert - + information_popup_error_title - + Fehler - + account_settings_mwi_uri_title "URI du serveur de messagerie vocale" Voicemail-Server-URI - + account_settings_voicemail_uri_title "URI de messagerie vocale" Voicemail-URI - + account_settings_transport_title "Transport" Transport - + account_settings_registrar_uri_title - + account_settings_sip_proxy_url_title Proxy-Server-URL - + login_proxy_server_url_tooltip "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." @@ -434,49 +441,49 @@ Ausgehender Proxy-Server - + account_settings_stun_server_url_title "Adresse du serveur STUN" STUN-Server-Adresse - + account_settings_enable_ice_title "Activer ICE" ICE aktivieren - + account_settings_avpf_title "AVPF" AVPF - + account_settings_bundle_mode_title "Mode bundle" Bundle-Modus - + account_settings_expire_title "Expiration (en seconde)" Ablaufzeit (in Sekunden) - + account_settings_conference_factory_uri_title "URI du serveur de conversations" Konferenz-Factory-URI - + account_settings_audio_video_conference_factory_uri_title "URI du serveur de réunions" Video-Konferenz-Factory-URI - + account_settings_lime_server_url_title "URL du serveur d’échange de clés de chiffrement" Lime-Server-URL @@ -599,13 +606,13 @@ Pflicht zur Medienverschlüsselung - + settings_advanced_create_endtoend_encrypted_meetings_title Create end to end encrypted meetings and group calls - + Erstelle Ende-zu-Ende verschlüsselte Konferenzen und Gruppenrufe - + settings_advanced_hide_fps_title FPS ausblenden @@ -613,19 +620,19 @@ AllContactListView - + car_favorites_contacts_title "Favoris" Favoriten - + generic_address_picker_contacts_list_title 'Contacts' Kontakte - + generic_address_picker_suggestions_list_title "Suggestions" Vorschläge @@ -634,100 +641,141 @@ App - + remote_provisioning_dialog Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? Möchten Sie die Remote-Konfiguration von dieser Adresse herunterladen und anwenden? - - + + + info_popup_error_title Error - + Fehler - - + + info_popup_configuration_failed_message Remote provisioning failed : %1 - + + info_popup_error_checking_update + An error occured while trying to check update. Please try again later or contact support team. + + + + + info_popup_new_version_download_label + + + + + info_popup_new_version_available_title + New version available ! + + + + + info_popup_new_version_available_message + A new version of Linphone (%1) is available. %2 + + + + + info_popup_version_up_to_date_title + + + + + info_popup_version_up_to_date_message + Your version is up to date + + + + configuration_error_detail not reachable - + application_description "A free and open source SIP video-phone." Ein kostenloses Open-Source SIP Video-Telefon. - + command_line_arg_order "Send an order to the application towards a command line" Kommandozeilen-Befehl an die Anwendung schicken - + command_line_option_show_help Zeige Hilfe - + command_line_option_show_app_version - Zeige App-Version + App-Version anzeigen - + command_line_option_config_to_fetch "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." Abzurufende Linphone-Konfigurationsdatei angeben. Sie wird mit der aktuellen Konfiguration zusammengeführt. - + command_line_option_config_to_fetch_arg "URL, path or file" URL, Pfad oder Datei - + command_line_option_minimized - + command_line_option_log_to_stdout Debug-Informationen auf der Standardausgabe ausgeben - + command_line_option_print_app_logs_only "Print only logs from the application" Nur Anwendungs-Logs ausgeben - + hide_action "Cacher" "Afficher" Ausblenden - + show_action Zeigen - + quit_action "Quitter" Beenden - + + check_for_update + Check for update + + + + mark_all_read_action @@ -735,36 +783,36 @@ AuthenticationDialog - + account_settings_dialog_invalid_password_title "Authentification requise" Authentifizierung erforderlich - + account_settings_dialog_invalid_password_message La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. Die Anmeldung für das Konto %1 ist fehlgeschlagen. Sie können Ihr Passwort erneut eingeben oder die Kontoeinstellungen überprüfen. - + password Passwort - + cancel "Annuler Abbrechen - + assistant_account_login Connexion Anmelden - + assistant_account_login_missing_password Veuillez saisir un mot de passe Bitte Passwort eingeben @@ -773,151 +821,151 @@ CallCore - + call_record_end_message "Enregistrement terminé" Aufnahme beendet - + call_record_saved_in_file_message "L'appel a été enregistré dans le fichier : %1" Die Aufnahme wurde in der folgenden Datei gespeichert: %1 - - + + call_stats_codec_label "Codec: %1 / %2 kHz" Codec: %1 / %2 kHz - - + + call_stats_bandwidth_label "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" Bandbreite: %1 %2 kbits/s %3 %4 kbits/s - - + + call_stats_loss_rate_label "Taux de perte: %1% %2%" Verlustquote: %1% %2% - + call_stats_jitter_buffer_label "Tampon de gigue: %1 ms" Jitter-Puffer: %1 ms - + call_stats_resolution_label "Définition vidéo : %1 %2 %3 %4" Videoauflösung: %1 %2 %3 %4 - + call_stats_fps_label "FPS : %1 %2 %3 %4" FPS : %1 %2 %3 %4 - + media_encryption_dtls DTLS - + DTLS - + media_encryption_none None - + Nichts - + media_encryption_srtp SRTP - + SRTP - + media_encryption_post_quantum "ZRTP - Post quantique" - Post-quantum ZRTP + Post-quantum ZRTP CallForwardSettingsLayout - + settings_call_forward_activation_success - - - + + + settings_call_forward_to_voicemail - + settings_call_forward_deactivation_success - + settings_call_forward_address_timeout - + settings_call_forward_address_cannot_be_empty - + settings_call_forward_address_progress_disabling - + settings_call_forward_address_progress_enabling - + settings_call_forward_activate_title "Forward calls" - + settings_call_forward_activate_subtitle "Enable call forwarding to voicemail or sip address" - + settings_call_forward_destination_choose Forward to destination - + settings_call_forward_to_sipaddress - + settings_call_forward_sipaddress_title SIP Address - + settings_call_forward_sipaddress_placeholder @@ -925,45 +973,25 @@ CallHistoryLayout - contact_presence_status_online - "En ligne" - Online - - - contact_presence_status_busy - "Occupé" - Beschäftigt - - - contact_presence_status_do_not_disturb - "Ne pas déranger" - Nicht stören - - - contact_presence_status_offline - "Hors ligne" - Offline - - - + meeting_info_join_title "Rejoindre la réunion" Besprechung beitreten - + contact_call_action "Appel" Anrufen - + contact_message_action "Message" Nachricht - + contact_video_call_action "Appel Video" Videoanruf @@ -972,7 +1000,7 @@ CallHistoryListView - + call_name_accessible_button Call %1 @@ -981,42 +1009,42 @@ CallLayout - + meeting_event_conference_destroyed "Vous avez quitté la conférence" Sie haben die Besprechung verlassen - + call_ended_by_user "Vous avez terminé l'appel" Sie haben den Anruf beendet - + call_ended_by_remote "Votre correspondant a terminé l'appel" Der Anrufer hat das Gespräch beendet - + conference_call_empty "En attente d'autres participants…" Warten auf weitere Teilnehmer… - + conference_share_link_title "Partager le lien" Link teilen - + copied Kopiert - + information_popup_meeting_address_copied_to_clipboard Le lien de la réunion a été copié dans le presse-papier Der Besprechungs-Link wurde in die Zwischenablage kopiert @@ -1038,7 +1066,7 @@ info_popup_error_title - + Fehler @@ -1050,49 +1078,49 @@ CallListView - + meeting "Réunion Besprechung - + call "Appel" Anruf - + paused_call_or_meeting "%1 en pause" %1 pausiert - + ongoing_call_or_meeting "%1 en cours" %1 laufend - + transfer_call_name_accessible_name Transfer call %1 - + resume_call_name_accessible_name Resume %1 call - + pause_call_name_accessible_name Pause %1 call - + end_call_name_accessible_name End %1 call @@ -1101,67 +1129,67 @@ CallModel - + call_error_no_response_toast "No response" - + call_error_forbidden_resource_toast "403 : Forbidden resource" - + call_error_not_answered_toast "Request timeout" - + call_error_user_declined_toast "User declined the call" Der Benutzer hat den Anruf abgelehnt - + call_error_user_not_found_toast "User was not found" Benutzer nicht gefunden - + call_error_user_busy_toast "User is busy" Der Benutzer ist beschäftigt - + call_error_incompatible_media_params_toast "User can&apos;t accept your call" Der Benutzer kann Ihren Anruf nicht annehmen - + call_error_io_error_toast "Unavailable service or network error" Dienst nicht verfügbar oder Netzwerkfehler - + call_error_do_not_disturb_toast "Le correspondant ne peut être dérangé" - + call_error_temporarily_unavailable_toast "Temporarily unavailable" Vorübergehend nicht verfügbar - + call_error_server_timeout_toast "Server tiemout" Server-Zeitüberschreitung @@ -1206,7 +1234,7 @@ Das Anrufprotokoll mit diesem Benutzer wird dauerhaft gelöscht. - + call_history_call_list_title "Appels" Anrufe @@ -1217,14 +1245,14 @@ - + menu_delete_history "Supprimer l'historique" Verlauf löschen - + call_history_list_options_accessible_name Call history options @@ -1415,13 +1443,13 @@ settings_call_enable_tones_title Tonalités - Töne + Wählton settings_call_enable_tones_subtitle Activer les tonalités - Töne aktivieren + Wähltöne aktivieren @@ -1471,13 +1499,13 @@ CallStatistics - + call_stats_audio_title "Audio" Audio - + call_stats_video_title "Vidéo" Video @@ -1486,236 +1514,236 @@ CallsWindow - + call_transfer_in_progress_toast "Transfert en cours, veuillez patienter" Weiterleitung läuft, bitte warten - - + + information_popup_error_title Fehler - + call_transfer_failed_toast "Le transfert d'appel a échoué" Weiterleitung fehlgeschlagen - + conference_error_empty_uri "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." Die Besprechung konnte aufgrund eines URI-Fehlers nicht gestartet werden. - + call_close_window_dialog_title "Terminer tous les appels en cours ?" Alle laufenden Anrufe beenden? - + call_close_window_dialog_message "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." Das Fenster wird gleich geschlossen. Dies beendet alle laufenden Anrufe. - + call_can_be_trusted_toast "Appareil authentifié" Gerät vertrauenswürdig - + call_dir %1 Anruf - + call_ended Appel terminé Anruf beendet - + conference_paused Meeting paused Besprechung pausiert - + call_paused Call paused Anruf pausiert - + call_srtp_point_to_point_encrypted Appel chiffré de point à point Punkt-zu-Punkt verschlüsselter Anruf - + call_zrtp_sas_validation_required Vérification nécessaire Validierung erforderlich - + call_zrtp_end_to_end_encrypted Appel chiffré de bout en bout Ende-zu-Ende verschlüsselter Anruf - + call_not_encrypted "Appel non chiffré" Unverschlüsselter Anruf - - + + call_waiting_for_encryption_info Waiting for encryption Warten auf Verschlüsselung - + call_paused_by_remote Call paused by remote - + conference_user_is_recording "You are recording the meeting" Sie nehmen die Besprechung auf - + call_user_is_recording "You are recording the call" Sie nehmen den Anruf auf - + conference_remote_is_recording "Someone is recording the meeting" Jemand nimmt die Besprechung auf - + call_remote_recording "%1 is recording the call" %1 nimmt den Anruf auf - + call_stop_recording "Stop recording" Aufnahme stoppen - + add Hinzufügen - + call_transfer_current_call_title "Transférer %1 à…" %1 weiterleiten an… - - + + call_transfer_confirm_dialog_tittle "Confirmer le transfert" Weiterleitung bestätigen - - + + call_transfer_confirm_dialog_message "Vous allez transférer %1 à %2." Sie werden %1 an %2 weiterleiten. - + call_action_start_new_call "Nouvel appel" Neuen Anruf starten - - + + call_action_show_dialer "Pavé numérique" Wähltastatur - + call_action_change_layout "Modifier la disposition" Layout ändern - + call_action_go_to_calls_list "Liste d'appel" Anrufliste - + Merger tous les appels call_action_merge_calls Alle Anrufe zusammenführen - - + + call_action_go_to_settings "Paramètres" Einstellungen - + conference_action_screen_sharing "Partage de votre écran" Bildschirm teilen - + conference_share_link_title Partager le lien de la réunion Besprechungs-Link teilen - + copied Copié Kopiert - + information_popup_meeting_address_copied_to_clipboard Le lien de la réunion a été copié dans le presse-papier Der Besprechungs-Link wurde in die Zwischenablage kopiert - - - + + + conference_participants_list_title "Participants (%1)" Teilnehmer (%1) - + group_call_participant_selected 1 ausgewählter Teilnehmer @@ -1723,194 +1751,194 @@ - + meeting_schedule_add_participants_title Teilnehmer hinzufügen - + call_encryption_title Chiffrement Verschlüsselung - + open_statistic_panel_accessible_name - + conference_user_is_sharing_screen "You are sharing your screen" - + call_stop_screen_sharing "Stop sharing" - + Stopp - + stop_recording_accessible_name Stop recording - + Aufnahme stoppen - + stop_screen_sharing_accessible_name "Stop screen sharing" - + call_stats_title Statistiques Statistiken - - + + call_action_end_call "Terminer l'appel" Anruf beenden - - + + call_action_resume_call "Reprendre l'appel" Anruf fortsetzen - - + + call_action_pause_call "Mettre l'appel en pause" Anruf pausieren - - + + call_action_transfer_call "Transférer l'appel" Anruf weiterleiten - - + + call_action_start_new_call_hint "Initier un nouvel appel" Neuen Anruf starten - - + + call_display_call_list_hint "Afficher la liste d'appels" Anrufliste anzeigen - - + + call_deactivate_video_hint "Désactiver la vidéo" "Activer la vidéo" Video deaktivieren - - + + call_activate_video_hint Video aktivieren - - + + call_activate_microphone "Activer le micro" Mikrofon aktivieren - - + + call_deactivate_microphone "Désactiver le micro" Mikrofon stummschalten - - + + call_share_screen_hint Partager l'écran… Bildschirm teilen… - - + + call_open_chat_hint Open chat… - - + + call_rise_hand_hint "Lever la main" Hand heben - - + + call_send_reaction_hint "Envoyer une réaction" Reaktion senden - - + + call_manage_participants_hint "Gérer les participants" Teilnehmer verwalten - - + + call_more_options_hint "Plus d'options…" Weitere Optionen… - + call_action_change_conference_layout "Modifier la disposition" Layout ändern - + call_action_full_screen "Mode Plein écran" Vollbildmodus - + call_action_stop_recording "Terminer l'enregistrement" Aufnahme beenden - + call_action_record "Enregistrer l'appel" Anruf aufnehmen - + call_activate_speaker_hint "Activer le son" Lautsprecher aktivieren - + call_deactivate_speaker_hint "Désactiver le son" Lautsprecher stummschalten @@ -1919,86 +1947,86 @@ CarddavSettingsLayout - + settings_contacts_carddav_title Carnet d'adresse CardDAV CardDAV Adressbuch - + settings_contacts_carddav_subtitle "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." Fügen Sie ein CardDAV-Adressbuch hinzu, um Ihre Linphone-Kontakte mit einem Drittanbieter-Adressbuch zu synchronisieren. - + information_popup_error_title Fehler - + settings_contacts_carddav_popup_invalid_error "Vérifiez que toutes les informations ont été saisies." Überprüfen Sie, ob alle Informationen eingegeben wurden. - + information_popup_synchronization_success_title Erfolg - + settings_contacts_carddav_synchronization_success_message "Le carnet d'adresse CardDAV est synchronisé." Das CardDAV-Adressbuch ist synchronisiert. - + settings_contacts_carddav_popup_synchronization_error_title Fehler - + settings_contacts_carddav_popup_synchronization_error_message - "Erreur de synchronisation!" + "Erreur de synchronisation : %1" Synchronisierungsfehler! - + settings_contacts_delete_carddav_server_title "Supprimer le carnet d'adresse CardDAV ?" CardDAV Adressbuch löschen? - + sip_address_display_name Nom d'affichage Anzeigename - + settings_contacts_carddav_server_url_title "URL du serveur" Server-URL - + username Benutzername - + password Passwort - + settings_contacts_carddav_realm_title Domaine d’authentification Authentifizierungsbereich - + settings_contacts_carddav_use_as_default_title "Stocker ici les contacts nouvellement crées" Neu erstellte Kontakte hier speichern @@ -2007,17 +2035,17 @@ ChangeLayoutForm - + conference_layout_grid Raster - + conference_layout_active_speaker Aktiver Sprecher - + conference_layout_audio_only Nur Audio @@ -2029,7 +2057,7 @@ information_popup_error_title Error - + Fehler @@ -2041,13 +2069,13 @@ ChatCore - + info_toast_deleted_title Deleted - + info_toast_deleted_message_history Message history has been deleted @@ -2071,65 +2099,65 @@ ChatListView - + chat_message_is_writing_info %1 is writing… - + chat_message_draft_sending_text - + chat_room_delete "Delete" - + Löschen - + chat_room_mute - + chat_room_unmute "Mute" - + chat_room_mark_as_read "Mark as read" - + chat_room_leave "leave" - + chat_list_leave_chat_popup_title leave the conversation ? - + chat_list_leave_chat_popup_message You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? - + chat_list_delete_chat_popup_title Delete the conversation ? - + chat_list_delete_chat_popup_message This conversation and all its messages will be deleted. Do You want to continue ? @@ -2138,25 +2166,25 @@ ChatMessage - + chat_message_copy_selection "Copy selection" - + chat_message_copy "Copy" - + chat_message_copied_to_clipboard_title Copied - + Kopiert - + chat_message_copied_to_clipboard_toast "to clipboard" @@ -2192,40 +2220,51 @@ - + chat_message_reception_info "Reception info" - + chat_message_reply Reply - + chat_message_forward Forward - + chat_message_delete "Delete" - + Löschen ChatMessageContentCore - - popup_error_title - Error + + download_file_default_error + Error downloading file %1 - + + info_popup_error_titile + Fehler + + + + popup_error_title + Error + Fehler + + + popup_open_file_error_does_not_exist_message Could not open file : unknown path %1 @@ -2242,7 +2281,7 @@ Error adding file ---------- Error - + Fehler @@ -2285,34 +2324,63 @@ Error ChatMessageContentModel - popup_error_title Error + Fehler + + + + download_error_object_doesnt_exist + Internal error : message object does not exist anymore ! - - popup_download_error_message + + download_file_server_error + Error while trying to download content : %1 + + + + + download_file_error_no_safe_file_path + Unable to create safe file path for: %1 + + + + + download_file_error_file_transfer_unavailable This file was already downloaded and is no more on the server. Your peer have to resend it if you want to get it + + + download_file_error_null_name + Content name is null, can't download it ! + + + + + download_file_error_unable_to_download + Unable to download file of entry %1 + + ChatMessageCore - + all_reactions_label "Reactions": all reactions for one message label - + info_toast_deleted_title Deleted - + info_toast_deleted_message The message has been deleted @@ -2366,64 +2434,64 @@ Error ics_bubble_join "Rejoindre" - + Beitreten ChatMessagesListView - - + + popup_info_find_message_title Find message - + info_popup_no_result_message No result found - + info_popup_first_result_message First result reached - + info_popup_last_result_message Last result reached - + chat_message_list_encrypted_header_title End to end encrypted chat - + unencrypted_conversation_warning This conversation is not encrypted ! - + chat_message_list_encrypted_header_message Messages in this conversation are e2e encrypted. Only your correspondent can decrypt them. - + chat_message_list_not_encrypted_header_message Messages are not end to end encrypted, may sure you don't share any sensitive information ! - + chat_message_is_writing_info %1 is writing… @@ -2444,74 +2512,91 @@ Error - + + info_popup_error_title + Fehler + + + + info_popup_chatroom_creation_failed + Chat room creation failed ! + + + + + loading_popup_chatroom_creation_pending_message + Chat room is being created... + + + + chat_dialog_delete_chat_title Supprimer la conversation ? - + chat_dialog_delete_chat_message "La conversation et tous ses messages seront supprimés." - + chat_list_title "Conversations" - + Konversationen - + menu_mark_all_as_read "mark all as read" - + chat_search_in_history "Rechercher une conversation" - + list_filter_no_result_found "Aucun résultat…" - + Kein Ergebnis… - + chat_list_empty_history "Aucune conversation dans votre historique" - + chat_action_start_new_chat "New chat" - + chat_start_group_chat_title "Nouveau groupe" - + chat_action_start_group_chat "Créer" - + Erstellen - - - + + + information_popup_error_title - + Fehler - + information_popup_chat_creation_failed_message "La création a échoué" @@ -2522,19 +2607,25 @@ Error Der Codec konnte nicht installiert werden. - + group_chat_error_must_have_name "Un nom doit être donné au groupe - - group_call_error_not_connected - "Vous n'etes pas connecté" - Sie sind nicht verbunden + + group_chat_error_no_participant + "Please select at least one participant + - + + group_call_error_not_connected + "Vous n'etes pas connecté" + Sie sind nicht verbunden + + + chat_creation_in_progress Creation de la conversation en cours … @@ -2566,7 +2657,7 @@ Error show_function_description - Anzeigen + Zeigen @@ -2576,22 +2667,22 @@ Error call_function_description - Anrufen + Anrufen bye_function_description - Auflegen + Auflegen accept_function_description - Akzeptieren + Akzeptieren decline_function_description - Ablehnen + Ablehnen @@ -2632,19 +2723,19 @@ Error Fehler - + information_popup_error_title Erreur Fehler - + information_popup_voicemail_address_undefined_message L'URI de messagerie vocale n'est pas définie. Die Voicemail-URI ist nicht definiert. - + account_settings_name_accessible_name Account settings of %1 @@ -2679,7 +2770,7 @@ Error close_accessible_name - Close %n + Close %1 @@ -2725,78 +2816,78 @@ Error - - + + contact_editor_first_name "Prénom" Vorname - - + + contact_editor_last_name "Nom" Nachname - - + + contact_editor_company "Entreprise" Unternehmen - - + + contact_editor_job_title "Fonction" Beruf - - + + sip_address SIP-Adresse - + sip_address_number_accessible_name "SIP address number %1" - + remove_sip_address_accessible_name "Remove SIP address %1" - + new_sip_address_accessible_name "New SIP address" - + phone_number_number_accessible_name "Phone number number %1" - + remove_phone_number_accessible_name Remove phone number %1 - + new_phone_number_accessible_name "New phone number" - - + + phone "Téléphone" Telefon @@ -2805,53 +2896,53 @@ Error ContactListItem - + contact_details_remove_from_favourites "Enlever des favoris" Aus Favoriten entfernen - + contact_details_add_to_favourites "Ajouter aux favoris" Zu Favoriten hinzufügen - + Partager Teilen - + information_popup_error_title Fehler - + information_popup_vcard_creation_error La création du fichier vcard a échoué VCard-Erstellung fehlgeschlagen - + information_popup_vcard_creation_title VCard créée VCard erstellt - + information_popup_vcard_creation_success "VCard du contact enregistrée dans %1" VCard in %1 gespeichert - + contact_sharing_email_title Partage de contact Kontakt teilen - + contact_details_delete "Supprimer" Löschen @@ -2875,161 +2966,161 @@ Error ContactPage - + contacts_add "Ajouter un contact" Kontakt hinzufügen - + contacts_list_empty "Aucun contact pour le moment" Zurzeit keine Kontakte - + contact_new_title "Nouveau contact" Neuer Kontakt - + create Erstellen - + contact_edit_title "Modifier contact" Kontakt bearbeiten - + save Speichern - + contact_dialog_delete_title Supprimer %1 ?" %1 löschen? - + contact_dialog_delete_message Ce contact sera définitivement supprimé. Dieser Kontakt wird dauerhaft gelöscht. - + contact_deleted_toast "Contact supprimé" Kontakt gelöscht - + contact_deleted_message "%1 a été supprimé" %1 wurde gelöscht - + contact_dialog_devices_trust_popup_title "Augmenter la confiance" Vertrauenslevel erhöhen - + contact_dialog_devices_trust_popup_message "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" Um das Vertrauenslevel zu erhöhen müssen Sie Ihren Kontakt anrufen und einen Code bestätigen.<br><br>Sie sind dabei, "%1" anzurufen. Möchten Sie fortfahren? - + popup_do_not_show_again Ne plus afficher Nicht mehr anzeigen - + cancel Abbrechen - + dialog_call "Appeler" Anrufen - + contact_dialog_devices_trust_help_title "Niveau de confiance" Vertrauenslevel - + contact_dialog_devices_trust_help_message "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." Überprüfen Sie die Geräte Ihres Kontakts um sicherzustellen, dass Ihre Kommunikation sicher und unkompromittiert ist. Wenn alle Geräte überprüft sind, erreichen Sie das höchste Vertrauenslevel. - + dialog_ok "Ok" Ok - + bottom_navigation_contacts_label "Contacts" Kontakte - + create_contact_accessible_name Create new contact - + search_bar_look_for_contact_text Rechercher un contact Kontakt suchen - + list_filter_no_result_found Aucun résultat… Kein Ergebnis… - + contact_list_empty Aucun contact pour le moment Zurzeit keine Kontakte - + more_info_accessible_name More info %1 - + expand_accessible_name Expand %1 - + shrink_accessible_name Shrink %1 - - + + contact_details_edit Edit ---------- @@ -3037,19 +3128,19 @@ Error Bearbeiten - + contact_call_action "Appel" Anrufen - + contact_message_action "Message" Nachricht - + contact_video_call_action "Appel vidéo" Videoanruf @@ -3075,133 +3166,133 @@ Error Offline - + contact_details_numbers_and_addresses_title "Coordonnées" Kontaktinformationen - + call_adress_accessible_name Call address %1 - + contact_details_company_name "Société :" Unternehmen : - + contact_details_job_title "Poste :" Beruf : - + contact_details_medias_title "Medias" Medien - - + + contact_details_medias_subtitle "Afficher les medias partagés" Geteilte Medien anzeigen - + contact_details_trust_title "Confiance" Vertrauen - + contact_dialog_devices_trust_title "Niveau de confiance - Appareils vérifiés" Vertrauenslevel - Verifizierte Geräte - + contact_details_no_device_found "Aucun appareil" Kein Gerät - + contact_device_without_name "Appareil inconnu" Unbekanntes Gerät - + contact_make_call_check_device_trust "Vérifier" Überprüfen - + verify_device_accessible_name Verify %1 device - + contact_details_actions_title "Autres actions" Weitere Aktionen - + contact_details_remove_from_favourites "Retirer des favoris" Aus Favoriten entfernen - + contact_details_add_to_favourites "Ajouter aux favoris" Zu Favoriten hinzufügen - + contact_details_share "Partager" Teilen - + information_popup_error_title Fehler - + contact_details_share_error_mesage "La création du fichier vcard a échoué" VCard-Erstellung fehlgeschlagen - + contact_details_share_success_title "VCard créée" VCard erstellt - + contact_details_share_success_mesage "VCard du contact enregistrée dans %1" VCard wurde in %1 gespeichert - + contact_details_share_email_title "Partage de contact" Kontakt teilen - + contact_details_delete "Supprimer ce contact" Kontakt löschen @@ -3219,7 +3310,7 @@ Error settings_contacts_ldap_subtitle "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." - LDAP-Server hinzufügen, um in der magischen Suchleiste suchen zu können. + LDAP-Server hinzufügen, um in der magischen Suchleiste suchen zu können. @@ -3303,19 +3394,19 @@ Error ConversationInfos - + one_one_infos_call "Appel" - Anrufen + Anrufen - + one_one_infos_unmute "Sourdine" Unmute - + one_one_infos_mute Stummschalten @@ -3325,224 +3416,244 @@ Error Suchen - + group_infos_participants - Participants (%1) + Teilnehmer (%1) - + group_infos_media_docs Medias & documents Medien & Dokumente - + group_infos_shared_medias Shared medias - + group_infos_shared_docs Shared documents Geteilte Dokumente - + group_infos_other_actions Other actions - Weitere Aktionen + Weitere Aktionen - + group_infos_ephemerals Ephemeral messages : - + group_infos_enable_ephemerals Flüchtige Nachrichten aktivieren - + group_infos_meeting Schedule a meeting Meeting - + group_infos_leave_room Leave chat room - + group_infos_leave_room_toast_title Leave Chat Room ? Chatraum verlassen? - + group_infos_leave_room_toast_message All the messages will be removed from the chat room. Do you want to continue ? Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren? - + group_infos_delete_history Delete history - Verlauf löschen + Verlauf löschen - + group_infos_delete_history_toast_title Delete history ? Verlauf löschen? - + group_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren? - + one_one_infos_open_contact Show contact - Kontakt öffnen + Kontakt anzeigen - + one_one_infos_create_contact Create contact Kontakt erstellen - + one_one_infos_ephemerals Ephemeral messages : - + one_one_infos_enable_ephemerals Flüchtige Nachrichten aktivieren - + one_one_infos_delete_history - Verlauf löschen + Verlauf löschen - + one_one_infos_delete_history_toast_title Delete history ? Verlauf löschen? - + one_one_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? Alle Nachrichten werden aus dem Chat entfernt. Möchten Sie fortfahren? + + CoreModel + + + info_popup_error_title + Fehler + + + + fetching_config_failed_error_message + "Remote provisioning cannot be retrieved" + + + CreationFormLayout - + search_bar_look_for_contact_text "Rechercher un contact" - Kontakt suchen + Kontakt suchen DebugSettingsLayout - + settings_debug_clean_logs_message "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" Debug-Logs werden gelöscht. Möchten Sie fortfahren? - + settings_debug_share_logs_message "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " Debug-Logs wurden hochgeladen. Wie möchten Sie den Link teilen? - + settings_debug_clipboard "Presse-papier" Zwischenablage - + settings_debug_email "E-Mail" E-Mail - + debug_settings_trace "Traces %1" %1 Logs - + information_popup_email_sharing_failed "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." E-Mail-Weitergabe fehlgeschlagen. Bitte senden Sie den %1 Link direkt an %2. - - + + information_popup_error_title Une erreur est survenue. Ein Fehler ist aufgetreten. - + settings_debug_enable_logs_title "Activer les traces de débogage" Debug-Logs aktivieren - + settings_debug_enable_full_logs_title "Activer les traces de débogage intégrales" Vollständige Logs aktivieren - + settings_debug_delete_logs_title "Supprimer les traces" Debug-Logs löschen - + settings_debug_share_logs_title "Partager les traces" Debug-Logs teilen - + settings_debug_share_logs_loading_message "Téléversement des traces en cours …" Hochladen der Logs … - + settings_debug_app_version_title "Version de l'application" App-Version - + settings_debug_sdk_version_title "Version du SDK" SDK-Version - + + settings_debug_qt_version_title + "Qt Version" + + + + settings_debug_share_logs_error "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" Hochladen der Logs fehlgeschlagen. Sie können die Log-Dateien direkt aus folgendem Verzeichnis teilen: %1 @@ -3551,13 +3662,13 @@ Error DecoratedTextField - + textfield_error_message_cannot_be_empty "ne peut être vide" darf nicht leer sein - + textfield_error_message_unknown_format "Format non reconnu" Unbekanntes Format @@ -3566,15 +3677,15 @@ Error Dialog - - + + dialog_confirm "Confirmer" Bestätigen - - + + dialog_cancel "Annuler" Abbrechen @@ -3583,49 +3694,49 @@ Error EncryptionSettings - + call_stats_media_encryption_title "Encryption :" Verschlüsselung : - + call_stats_media_encryption Media encryption : %1 Medienverschlüsselung : %1%2 - + call_stats_zrtp_cipher_algo "Algorithme de chiffrement : %1" Verschlüsselungsalgorithmus : %1 - + call_stats_zrtp_key_agreement_algo "Algorithme d'accord de clé : %1" Schlüsselaustauschalgorithmus: %1 - + call_stats_zrtp_hash_algo "Algorithme de hachage : %1" Hash-Algorithmus : %1 - + call_stats_zrtp_auth_tag_algo "Algorithme d'authentification : %1" Authentifizierungsalgorithmus : %1 - + call_stats_zrtp_sas_algo "Algorithme SAS : %1" SAS-Algorithmus : %1 - + call_zrtp_validation_button_label "Validation chiffrement" Verschlüsselungsvalidierung @@ -3634,42 +3745,42 @@ Error EphemeralSettings - + title Ephemeral messages - + explanations By enabling ephemeral messages in this chat, messages sent will be automatically deleted after the defined period. - + one_minute 1 minute - + one_hour 1 hour - + one_day 1 day - + one_week 1 week - + disabled Disabled - + custom Custom: @@ -3677,58 +3788,58 @@ Error EventLogCore - + conference_created_event - + conference_created_terminated - + conference_participant_added_event - + conference_participant_removed_event - - + + conference_security_event - + conference_ephemeral_message_enabled_event - + conference_ephemeral_message_lifetime_changed_event - + conference_ephemeral_message_disabled_event - + conference_subject_changed_event - + conference_participant_unset_admin_event - + conference_participant_set_admin_event @@ -3768,55 +3879,55 @@ Error GroupChatInfoParticipants - + group_infos_participant_is_admin Admin - + group_infos_manage_participants_title "Gérer des participants" Manage Participants - + menu_see_existing_contact "Show contact" Kontakt anzeigen - + menu_add_address_to_contacts "Add to contacts" Zu Kontakten hinzufügen - + group_infos_give_admin_rights Give admin rights - + group_infos_remove_admin_rights Remove admin rights - + group_infos_copy_sip_address Copy SIP Address - + group_infos_remove_participant Remove participant - + group_infos_remove_participants_toast_title Remove participant ? - + group_infos_remove_participants_toast_message Participant will be removed from chat room. @@ -3829,72 +3940,78 @@ Error Gruppenname - + return_accessible_name Return - + group_start_dialog_subject_hint "Nom du groupe" - + Gruppenname - + required "Requis" - Erforderlich + Erforderlich HelpPage - + help_title "Aide" Hilfe - - + + help_about_title "À propos de %1" Über %1 - + help_about_privacy_policy_title "Règles de confidentialité" Datenschutzrichtlinie - + help_about_privacy_policy_subtitle Quelles informations %1 collecte et utilise Welche Informationen sammelt und verwendet %1 - + help_about_version_title "Version" Version - + + help_check_for_update_button_label + Check update + + + + help_about_gpl_licence_title "Licences GPLv3" GPLv3-Lizenzen - + help_about_contribute_translations_title "Contribuer à la traduction de %1" Zur Übersetzung von %1 beitragen - + help_troubleshooting_title "Dépannage" Fehlerbehebung @@ -4034,7 +4151,7 @@ Error LoadingPopup - + cancel Abbrechen @@ -4209,7 +4326,7 @@ Error MagicSearchList - + device_id Telefon @@ -4280,7 +4397,7 @@ Error do_not_disturb_accessible_name "Do not disturb" - + Nicht stören @@ -4442,7 +4559,7 @@ Error ManageParticipants - + group_infos_manage_participants Participants @@ -4450,37 +4567,37 @@ Error MeetingForm - + meeting_schedule_meeting_label "Réunion" Besprechung - + meeting_schedule_broadcast_label "Webinar" Webinar - + meeting_schedule_subject_hint "Ajouter un titre" Titel hinzufügen - + meeting_schedule_description_hint "Ajouter une description" Beschreibung hinzufügen - + meeting_schedule_add_participants_title "Ajouter des participants" Teilnehmer hinzufügen - + meeting_schedule_send_invitations_title "Envoyer une invitation aux participants" Einladung an Teilnehmer senden @@ -4489,22 +4606,22 @@ Error MeetingListView - + meeting_info_cancelled "Réunion annulée" Besprechung abgesagt - + meetings_list_no_meeting_for_today "Aucune réunion aujourd'hui" Heute keine Besprechungen - + meeting_info_delete "Supprimer la réunion" - Besprechung löschen + Besprechung löschen @@ -4522,158 +4639,158 @@ Error Keine Besprechungen - + meeting_schedule_cancel_dialog_message "Souhaitez-vous annuler et supprimer cette réunion ?" Möchten Sie diese Besprechung absagen und löschen? - + meeting_schedule_delete_dialog_message Souhaitez-vous supprimer cette réunion ? Möchten Sie diese Besprechung löschen? - + meeting_schedule_cancel_and_delete_action "Annuler et supprimer" Absagen und löschen - + meeting_schedule_delete_only_action "Supprimer seulement" Nur löschen - + meeting_schedule_delete_action "Supprimer" - Löschen + Löschen - + back_action Retour Zurück - + meetings_list_title Réunions Besprechungen - + meetings_search_hint "Rechercher une réunion" Besprechung suchen - + list_filter_no_result_found "Aucun résultat…" Kein Ergebnis… - + meetings_empty_list "Aucune réunion" Keine Besprechungen - - + + meeting_schedule_title "Nouvelle réunion" Neue Besprechung - + create Erstellen - - - - - - + + + + + + information_popup_error_title Fehler - - + + meeting_schedule_mandatory_field_not_filled_toast Veuillez saisir un titre et sélectionner au moins un participant Bitte Titel bestimmen und mindestens einen Teilnehmer auswählen - - + + meeting_schedule_duration_error_toast "La fin de la conférence doit être plus récente que son début" Das Ende der Besprechung muss nach dem Beginn liegen - - + + meeting_schedule_creation_in_progress "Création de la réunion en cours …" Besprechung wird erstellt… - + meeting_info_created_toast "Réunion planifiée avec succès" Besprechung erfolgreich erstellt - + meeting_failed_to_schedule_toast "Échec de création de la réunion !" Besprechung konnte nicht erstellt werden! - + save Speichern - - + + saved "Enregistré" Gespeichert - + meeting_info_updated_toast "Réunion mise à jour" Besprechung geändert - + meeting_schedule_edit_in_progress "Modification de la réunion en cours…" Bersprechung wird geändert… - + meeting_failed_to_edit_toast "Échec de la modification de la réunion !" Besprechung konnte nicht geändert werden! - + meeting_schedule_add_participants_title "Ajouter des participants" Teilnehmer hinzufügen - + meeting_schedule_add_participants_apply Apply @@ -4682,7 +4799,7 @@ Error Hinzufügen - + group_call_participant_selected "%n participant(s) sélectionné(s)" @@ -4691,31 +4808,31 @@ Error - + meeting_info_delete "Supprimer la réunion" Besprechung löschen - + meeting_address_copied_to_clipboard_toast "Adresse de la réunion copiée" Besprechungs-URI kopiert - + meeting_schedule_timezone_title "Fuseau horaire" Zeitzone - + meeting_info_organizer_label "Organisateur" Organisator - + meeting_info_join_title "Rejoindre la réunion" Besprechung beitreten @@ -4724,19 +4841,19 @@ Error MeetingsSettingsLayout - + settings_meetings_display_title "Affichage" Anzeige - + settings_meetings_default_layout_title "Mode d’affichage par défaut" Standardanzeige - + settings_meetings_default_layout_subtitle "Le mode d’affichage des participants en réunions" Wie Teilnehmer in Besprechungen angezeigt werden @@ -4745,7 +4862,7 @@ Error MessageImdnStatusInfos - + message_details_status_title Message status @@ -4754,13 +4871,13 @@ Error MessageReactionsInfos - + message_details_reactions_title Reactions - + click_to_delete_reaction_info Click to delete @@ -4769,13 +4886,13 @@ Error MessageSharedFilesInfos - + no_shared_medias No media - + no_shared_documents No document @@ -4833,13 +4950,13 @@ Error NetworkSettingsLayout - + settings_network_title "Réseau" Netzwerk - + settings_network_allow_ipv6 "Autoriser l'IPv6" IPv6 aktivieren @@ -4848,7 +4965,7 @@ Error NewCallForm - + call_transfer_active_calls_label "Appels en cours" Laufender Anruf @@ -4862,7 +4979,7 @@ Error call_start_group_call_title Appel de groupe - Gruppenanruf + Gruppenanruf @@ -4877,19 +4994,19 @@ Error NotificationReceivedCall - + call_audio_incoming "Appel entrant" Eingehender Anruf - + dialog_accept "Accepter" Akzeptieren - + dialog_deny "Refuser Ablehnen @@ -4898,24 +5015,24 @@ Error Notifier - + new_call_alert_accessible_name New call from %1 - + new_voice_message 'Voice message received!' : message to warn the user in a notofication for voice messages. - + new_file_message - + new_conference_invitation 'Conference invitation received!' : Notification about receiving an invitation to a conference. @@ -4927,7 +5044,7 @@ Error - + new_message_alert_accessible_name New message on chatroom %1 @@ -5051,13 +5168,13 @@ Error ParticipantListView - + meeting_participant_is_admin_label "Admin" Admin - + meeting_add_participants_title "Ajouter des participants" Teilnehmer hinzufügen @@ -5066,13 +5183,13 @@ Error PhoneNumberInput - + prefix_phone_number_accessible_name %1 prefix - + number_phone_number_accessible_name %1 number @@ -5113,18 +5230,18 @@ Error contact_presence_button_edit_custom_status - + Bearbeiten contact_presence_button_delete_custom_status - + Löschen PresenceNoteLayout - + contact_presence_note_title @@ -5132,14 +5249,14 @@ Error PresenceSetCustomStatus - + contact_presence_button_set_custom_status_title - + contact_presence_button_save_custom_status - + Speichern @@ -5159,17 +5276,17 @@ Error media_encryption_dtls - + DTLS media_encryption_none - + Nichts media_encryption_srtp - + SRTP @@ -5179,90 +5296,96 @@ Error + message_state_idle + "idle" + + + + message_state_in_progress "delivery in progress" - + message_state_delivered sent - + message_state_not_delivered error - + message_state_file_transfer_error cannot get file from server - + message_state_file_transfer_done file transfer has been completed successfully - + message_state_delivered_to_user received - + message_state_displayed read - + message_state_file_transfer__in_progress file transfer in progress - + message_state_pending_delivery pending delivery - + message_state_file_transfer_cancelling file transfer canceled - + incoming "Entrant" Eingehend - + outgoing "Sortant" Ausgehend - + conference_layout_active_speaker "Participant actif" Aktiver Sprecher - + conference_layout_grid "Mosaïque" Raster - + conference_layout_audio_only "Audio uniquement" Nur Audio @@ -5271,37 +5394,37 @@ Error RegisterCheckingPage - + email "email" Email - + phone_number "numéro de téléphone" Telefonnummer - + confirm_register_title "Inscription | Confirmer votre %1" Registrieren | %1 bestätigen - + assistant_account_creation_confirmation_explanation Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous Wir haben Ihnen einen Bestätigungscode an Ihr %1 %2<br> geschickt. Bitte geben Sie ihn unten ein. - + assistant_account_creation_confirmation_did_not_receive_code "Vous n'avez pas reçu le code ?" Code nicht erhalten? - + assistant_account_creation_confirmation_resend_code "Renvoyer un code" Code erneut senden @@ -5360,7 +5483,7 @@ Error domain - + Domäne @@ -5562,31 +5685,31 @@ Pour les activer dans un projet commercial, merci de nous contacter. login_advanced_parameters_label Advanced parameters - + Erweiterte Einstellungen - - + + login_proxy_server_url "Outbound SIP Proxy URI" - + login_proxy_server_url_tooltip "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." - - + + login_registrar_uri "Registrar URI" - - + + login_id "Authentication ID (if different)" @@ -5595,37 +5718,37 @@ Pour les activer dans un projet commercial, merci de nous contacter. ScreencastSettings - + screencast_settings_choose_window_text "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" Bitte wählen Sie den Bildschirm oder das Fenster aus, das Sie mit anderen Teilnehmern teilen möchten. - + screencast_settings_all_screen_label "Ecran entier" Vollbild - + screencast_settings_one_window_label "Fenêtre" Fenster - + screencast_settings_screen "Ecran %1" Bildschirm %1 - + stop "Stop Stopp - + share "Partager" Teilen @@ -5649,43 +5772,43 @@ Pour les activer dans un projet commercial, merci de nous contacter. SecurityModePage - + manage_account_choose_mode_title "Choisir votre mode" Modus wählen - + manage_account_choose_mode_message "Vous pourrez changer de mode plus tard." Sie können den Modus später ändern. - + manage_account_e2e_encrypted_mode_default_title "Chiffrement de bout en bout" Ende-zu-Ende-Verschlüsselung - + manage_account_e2e_encrypted_mode_default_summary "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." Dieser Modus garantiert die Vertraulichkeit jeglicher Kommunikation. Unsere Ende-zu-Ende-Verschlüsselungstechnologie sorgt für maximale Sicherheit bei allen Kommunikationen. - + manage_account_e2e_encrypted_mode_interoperable_title "Interoperable" Interoperabel - + manage_account_e2e_encrypted_mode_interoperable_summary "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." Dieser Modus ermöglicht es, alle Funktionen von Linphone zu nutzen, während Sie weiterhin mit jedem anderen SIP-Dienst interoperabel bleiben. - + dialog_continue "Continuer" Fortfahren @@ -5694,13 +5817,13 @@ Pour les activer dans un projet commercial, merci de nous contacter. SecuritySettingsLayout - + settings_security_enable_vfs_title "Chiffrer tous les fichiers" Alle Dateien verschlüsseln - + settings_security_enable_vfs_subtitle "Attention, vous ne pourrez pas revenir en arrière !" Warnung: Einmal aktiviert, kann es nicht mehr deaktiviert werden! @@ -5709,45 +5832,52 @@ Pour les activer dans un projet commercial, merci de nous contacter. SelectedChatView - + chat_view_group_call_toast_message Start a group call ? - + unencrypted_conversation_warning This conversation is not encrypted ! - + reply_to_label Reply to %1 - + shared_medias_title Shared medias - + shared_documents_title Shared documents - + forward_to_title Forward to… - + conversations_title Conversations - + Konversationen + + + + SettingsCore + + info_popup_error_title + Fehler @@ -5842,13 +5972,13 @@ Pour les activer dans un projet commercial, merci de nous contacter. Sticker - + conference_participant_joining_text "rejoint…" tritt bei… - + conference_participant_paused_text "En pause" Pausiert @@ -5878,43 +6008,43 @@ Pour les activer dans un projet commercial, merci de nous contacter. Die Anrufadresse ist keine interpretierbare SIP-Adresse: %1 - + group_call_error_no_account - + group_call_error_participants_invite - + group_call_error_creation - + voice_recording_duration "Voice recording (%1)" : %1 is the duration formated in mm:ss - + conference_invitation - + conference_invitation_updated - + conference_invitation_cancelled - + unknown_audio_device_name Unbekannter Gerätename @@ -5922,7 +6052,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. Utils - + nMinute @@ -5930,7 +6060,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + nHour @@ -5938,8 +6068,8 @@ Pour les activer dans un projet commercial, merci de nous contacter. - - + + nDay @@ -5947,7 +6077,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + nWeek @@ -5955,7 +6085,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + nSeconds @@ -5971,13 +6101,13 @@ Pour les activer dans un projet commercial, merci de nous contacter. - - + + information_popup_error_title Error ---------- Failed to create 1-1 conversation with %1 ! - + Fehler @@ -5985,7 +6115,7 @@ Failed to create 1-1 conversation with %1 ! - + number_of_years %n an(s) @@ -5994,7 +6124,7 @@ Failed to create 1-1 conversation with %1 ! - + number_of_month "%n mois" @@ -6003,7 +6133,7 @@ Failed to create 1-1 conversation with %1 ! - + number_of_weeks %n semaine(s) @@ -6012,7 +6142,7 @@ Failed to create 1-1 conversation with %1 ! - + number_of_days %n jour(s) @@ -6021,25 +6151,25 @@ Failed to create 1-1 conversation with %1 ! - + today "Aujourd'hui" Heute - + yesterday "Hier Gestern - + duration_tomorrow Tomorrow - + duration_number_of_days %1 jour(s) @@ -6048,111 +6178,111 @@ Failed to create 1-1 conversation with %1 ! - + call_zrtp_token_verification_possible_characters "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 - - + + information_popup_chatroom_creation_error_message Failed to create 1-1 conversation with %1 ! - - - contact_presence_status_available - - - contact_presence_status_away - + contact_presence_status_available + Verfügbar - contact_presence_status_busy - Beschäftigt + contact_presence_status_away + Abwesend - contact_presence_status_do_not_disturb - Nicht stören + contact_presence_status_busy + Beschäftigt - contact_presence_status_offline - Offline + contact_presence_status_do_not_disturb + Nicht stören - + + contact_presence_status_offline + Offline + + + recorder_error Error with the recorder - - - + + + chat_error - + chat_message_forward_error Cannot forward an invalid message - - - - - - + + + + + + info_popup_error_title Error - + Fehler - + info_popup_forward_message_error Could not forward message : %1 - + info_popup_send_forward_message_error_message Failed to create forward message - + chat_message_reply_error Cannot reply to invalid message - + info_popup_reply_message_error Could not send reply message : %1 - + info_popup_send_reply_message_error_message Failed to create reply message - + info_popup_send_voice_message_error_message Could not send voice message : %1 - + info_popup_send_voice_message_sending_error_message Failed to create message from record @@ -6161,32 +6291,32 @@ Failed to create 1-1 conversation with %1 ! WaitingRoom - + meeting_waiting_room_title Participer à : Beitreten : - + meeting_waiting_room_join "Rejoindre" Beitreten - - + + cancel Cancel Abbrechen - + meeting_waiting_room_joining_title "Connexion à la réunion" Verbindung zur Besprechung - + meeting_waiting_room_joining_subtitle "Vous allez rejoindre la réunion dans quelques instants…" Sie werden der Besprechung in wenigen Momenten beitreten... @@ -6195,61 +6325,61 @@ Failed to create 1-1 conversation with %1 ! WelcomePage - + welcome_page_title "Bienvenue" Willkommen - + welcome_page_subtitle "sur %1" auf %1 - + welcome_carousel_skip "Passer" Überspringen - + welcome_page_1_message "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." Eine <b>französische</b>,<br> <b>sichere</b> <b>Open-Source</b> Kommunikationsanwendung. - + welcome_page_2_title "Sécurisé" Gesichert - + welcome_page_2_message "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." Ihre Kommunikation ist dank <br><b>Ende-zu-Ende-Verschlüsselung</b> sicher. - + welcome_page_3_title "Open Source" Open-Source - + welcome_page_3_message "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" Eine Open-Source-Anwendung und ein <b>kostenloser Service</b> <br>seit <b>2001</b> - + next "Suivant" Weiter - + start "Commencer" Start @@ -6258,61 +6388,61 @@ Failed to create 1-1 conversation with %1 ! ZrtpAuthenticationDialog - + call_dialog_zrtp_validate_trust_title Vérification de sécurité Sicherheitsprüfung - + call_zrtp_sas_validation_skip "Passer" Überspringen - + call_dialog_zrtp_validate_trust_warning_message "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" Um die Verschlüsselung zu gewährleisten, müssen wir das Gerät Ihres Kontakts erneut authentifizieren. Tauschen Sie Ihre Codes aus: - + call_dialog_zrtp_validate_trust_message "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " Um die Verschlüsselung zu gewährleisten, müssen wir das Gerät Ihres Kontakts authentifizieren. Bitte tauschen Sie Ihre Codes aus: - + call_dialog_zrtp_validate_trust_local_code_label "Votre code :" Ihr Code : - + call_dialog_zrtp_validate_trust_remote_code_label "Code correspondant :" Code des Kontakts : - + call_dialog_zrtp_validate_trust_letters_do_not_match_text "Le code fourni ne correspond pas." Der angegebene Code stimmt nicht überein. - + call_dialog_zrtp_security_alert_message "La confidentialité de votre appel peut être compromise !" Die Vertraulichkeit Ihres Anrufs könnte gefährdet sein! - + call_dialog_zrtp_validate_trust_letters_do_not_match "Aucune correspondance" Keine Übereinstimmung - + call_action_hang_up "Raccrocher" Auflegen @@ -6321,1117 +6451,1117 @@ Failed to create 1-1 conversation with %1 ! country - + Afghanistan Afghanistan - + Albania Albanien - + Algeria Algerien - + AmericanSamoa Amerikanisch-Samoa - + Andorra Andorra - + Angola Angola - + Anguilla Anguilla - + AntiguaAndBarbuda Antigua und Barbuda - + Argentina Argentinien - + Armenia Armenien - + Aruba Aruba - + Australia Australien - + Austria Österreich - + Azerbaijan Aserbaidschan - + Bahamas Bahamas - + Bahrain Bahrain - + Bangladesh Bangladesch - + Barbados Barbados - + Belarus Belarus - + Belgium Belgien - + Belize Belize - + Benin Benin - + Bermuda Bermuda - + Bhutan Bhutan - + Bolivia Bolivien - + BosniaAndHerzegowina Bosnien und Herzegowina - + Botswana Botswana - + Brazil Brasilien - + Brunei Brunei - + Bulgaria Bulgarien - + BurkinaFaso Burkina Faso - + Burundi Burundi - + Cambodia Kambodscha - + Cameroon Kamerun - + Canada Kanada - + CapeVerde Kap Verde - + CaymanIslands Caymaninseln - + CentralAfricanRepublic Zentralafrikanische Republik - + Chad Tschad - + Chile Chile - + China China - + Colombia Kolumbien - + Comoros Komoren - + PeoplesRepublicOfCongo Volksrepublik Kongo - + CookIslands Cookinseln - + CostaRica Kosta Rica - + IvoryCoast Elfenbeinküste - + Croatia Kroatien - + Cuba Kuba - + Cyprus Zypern - + CzechRepublic Tschechische Republik - + Denmark Dänemark - + Djibouti Dschibuti - + Dominica Dominica - + DominicanRepublic Dominikanische Republik - + Ecuador Ecuador - + Egypt Ägypten - + ElSalvador El Salvador - + EquatorialGuinea Äquatorialguinea - + Eritrea Eritrea - + Estonia Estland - + Ethiopia Äthiopien - + FalklandIslands Falklandinseln - + FaroeIslands Färöer-Inseln - + Fiji Fidschi - + Finland Finnland - + France Frankreich - + FrenchGuiana Französisch-Guayana - + FrenchPolynesia Französisch-Polynesien - + Gabon Gabon - + Gambia Gambia - + Georgia Georgien - + Germany Deutschland - + Ghana Ghana - + Gibraltar Gibraltar - + Greece Griechenland - + Greenland Grönland - + Grenada Grenada - + Guadeloupe Guadeloupe - + Guam Guam - + Guatemala Guatemala - + Guinea Guinea - + GuineaBissau Guinea-Bissau - + Guyana Guyana - + Haiti Haiti - + Honduras Honduras - + DemocraticRepublicOfCongo Demokratische Republik Kongo - + HongKong Hongkong - + Hungary Ungarn - + Iceland Island - + India Indien - + Indonesia Indonesien - + Iran Iran - + Iraq Irak - + Ireland Irland - + Israel Israel - + Italy Italien - + Jamaica Jamaika - + Japan Japan - + Jordan Jordanien - + Kazakhstan Kasachstan - + Kenya Kenia - + Kiribati Kiribati - + DemocraticRepublicOfKorea Demokratische Volksrepublik Korea - + RepublicOfKorea Republik Korea - + Kuwait Kuwait - + Kyrgyzstan Kirgisistan - + Laos Laos - + Latvia Lettland - + Lebanon Libanon - + Lesotho Lesotho - + Liberia Liberien - + Libya Libyen - + Liechtenstein Liechtenstein - + Lithuania Litauen - + Luxembourg Luxemburg - + Macau Macau - + Macedonia Mazedonien - + Madagascar Madagaskar - + Malawi Malawi - + Malaysia Malaysien - + Maldives Malediven - + Mali Mali - + Malta Malta - + MarshallIslands Marshallinseln - + Martinique Martinique - + Mauritania Mauretanien - + Mauritius Mauritius - + Mayotte Mayotte - + Mexico Mexiko - + Micronesia Föderierte Staaten von Mikronesien - + Moldova Moldawien - + Monaco Monaco - + Mongolia Mongolei - + Montenegro Montenegro - + Montserrat Montserrat - + Morocco Marokko - + Mozambique Mosambik - + Myanmar Myanmar - + Namibia Namibia - + NauruCountry Nauru - + Nepal Nepal - + Netherlands Niederlande - + NewCaledonia Neukaledonien - + NewZealand Neuseeland - + Nicaragua Nicaragua - + Niger Niger - + Nigeria Nigeria - + Niue Niue - + NorfolkIsland Norfolkinsel - + NorthernMarianaIslands Nördliche Marianeninseln - + Norway Norwegen - + Oman Oman - + Pakistan Pakistan - + Palau Palau - + PalestinianTerritories Palästinensische Gebiete - + Panama Panama - + PapuaNewGuinea Papua-Neuguinea - + Paraguay Paraguay - + Peru Peru - + Philippines Philippinen - + Poland Polen - + Portugal Portugal - + PuertoRico Puerto Rico - + Qatar Katar - + Reunion Réunion - + Romania Rumänien - + RussianFederation Russische Föderation - + Rwanda Ruanda - + SaintHelena Sankt Helena - + SaintKittsAndNevis Sankt Kitts und Nevis - + SaintLucia Sankt Lucia - + SaintPierreAndMiquelon Sankt Pierre und Miquelon - + SaintVincentAndTheGrenadines Sankt Vincent und die Grenadinen - + Samoa Samoa - + SanMarino San Marino - + SaoTomeAndPrincipe São Tomé und Príncipe - + SaudiArabia Saudi-Arabien - + Senegal Senegal - + Serbia Serbien - + Seychelles Seychellen - + SierraLeone Sierra Leone - + Singapore Singapur - + Slovakia Slowakei - + Slovenia Slowenien - + SolomonIslands Salomonen - + Somalia Somalia - + SouthAfrica Südafrika - + Spain Spanien - + SriLanka Sri Lanka - + Sudan Sudan - + Suriname Suriname - + Swaziland Eswatini - + Sweden Schweden - + Switzerland Schweiz - + Syria Syrien - + Taiwan Taiwan - + Tajikistan Tadschikistan - + Tanzania Tansania - + Thailand Thailand - + Togo Togo - + Tokelau Tokelau - + Tonga Tonga - + TrinidadAndTobago Trinidad und Tobago - + Tunisia Tunesien - + Turkey Türkei - + Turkmenistan Turkmenistan - + TurksAndCaicosIslands Turks- und Caicosinseln - + Tuvalu Tuvalu - + Uganda Uganda - + Ukraine Ukraine - + UnitedArabEmirates Vereinigte Arabische Emirate - + UnitedKingdom Vereinigtes Königreich - + UnitedStates Vereinigte Staaten - + Uruguay Uruguay - + Uzbekistan Usbekistan - + Vanuatu Vanuatu - + Venezuela Venezuela - + Vietnam Vietnam - + WallisAndFutunaIslands Wallis und Futuna Inseln - + Yemen Jemen - + Zambia Sambia - + Zimbabwe Simbabwe diff --git a/Linphone/data/languages/en.ts b/Linphone/data/languages/en.ts index 8b31d3f84..e7566ce3d 100644 --- a/Linphone/data/languages/en.ts +++ b/Linphone/data/languages/en.ts @@ -25,13 +25,13 @@ AbstractWindow - + contact_dialog_pick_phone_number_or_sip_address_title "Choisissez un numéro ou adresse SIP" Choose a SIP number or address - + fps_counter %1 FPS @@ -104,43 +104,43 @@ AccountManager - + assistant_account_login_already_connected_error "The account is already connected" The account is already connected - + assistant_account_login_proxy_address_error "Unable to create proxy address. Please check the domain name." Unable to create proxy address. Please check the domain name. - + assistant_account_login_address_configuration_error "Unable to configure address: `%1`." Unable to configure address: `%1`. - + assistant_account_login_params_configuration_error "Unable to configure account settings." Unable to configure account settings. - + assistant_account_login_forbidden_error "Username and password do not match" Username and password do not match - + assistant_account_login_error "Error during connection, please verify your parameters" Error during connection - + assistant_account_add_error "Unable to add account." Unable to add account. @@ -161,25 +161,25 @@ Unable to set server address, failed creating address from %1 - + set_outbound_proxy_uri_failed_error_message Unable to set outbound proxy uri, failed creating address from %1 Unable to set outbound proxy uri, failed creating address from %1 - + set_conference_factory_address_failed_error_message "Unable to set the conversation server address, failed creating address from %1" Unable to set the conversation server address, failed creating address from %1 - + set_audio_conference_factory_address_failed_error_message "Unable to set the meeting server address, failed creating address from %1" Unable to set the meeting server address, failed creating address from %1 - + set_voicemail_address_failed_error_message Unable to set voicemail address, failed creating address from %1 Unable to set voicemail address, failed creating address from %1 @@ -188,118 +188,138 @@ AccountSettingsGeneralLayout - + manage_account_details_title "Détails" Details - + manage_account_details_subtitle Éditer les informations de votre compte. Edit your account information. - + manage_account_devices_title "Vos appareils" Your devices - + manage_account_devices_subtitle "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." The list of devices connected to your account. You can remove devices you no longer use. - + manage_account_add_picture "Ajouter une image" Add an image - + manage_account_edit_picture "Modifier l'image" Edit image - + manage_account_remove_picture "Supprimer l'image" Delete image - + sip_address + SIP address SIP address - + + copied + Copied + Copied + + + + account_settings_sip_address_copied_message + Your SIP address has been copied in the clipboard + Your SIP address has been copied in the clipboard + + + + account_settings_sip_address_copied_error_message + Error copying your SIP address + Error copying your SIP address + + + sip_address_display_name "Nom d'affichage Display name - + sip_address_display_name_explaination "Le nom qui sera affiché à vos correspondants lors de vos échanges." The name displayed to your contacts during exchanges. - + manage_account_international_prefix Indicatif international* International code* - + manage_account_delete "Déconnecter mon compte" Disconnect my account - + manage_account_delete_message Your account will be removed from this Linphone client, but you will remain connected on your other clients - + manage_account_dialog_remove_account_title "Se déconnecter du compte ?" Log out of the account? - + manage_account_dialog_remove_account_message Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org If you wish to permanently delete your account, go to: https://sip.linphone.org - + + error Erreur Error - + manage_account_device_remove "Supprimer" Delete - + manage_account_device_remove_confirm_dialog Delete %1? - + manage_account_device_last_connection "Dernière connexion:" Last login: - + device_last_updated_time_no_info "No information" No information @@ -352,126 +372,123 @@ AccountSettingsParametersLayout - + settings_title Settings - + settings_account_title Account settings - info_popup_invalid_registrar_uri_message Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) - Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) - info_popup_invalid_outbound_proxy_message Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) - Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) - info_popup_error_title - Error + Error - + information_popup_success_title Success - + contact_editor_saved_changes_toast "Modifications sauvegardés" Changes saved - + information_popup_error_title Error - + account_settings_mwi_uri_title "URI du serveur de messagerie vocale" Voicemail server URI - + account_settings_voicemail_uri_title "URI de messagerie vocale" Voicemail URI - + account_settings_transport_title "Transport" Transport - + account_settings_registrar_uri_title Registrar URI - + account_settings_sip_proxy_url_title Outbound SIP Proxy URI - + login_proxy_server_url_tooltip "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it. - + account_settings_stun_server_url_title "Adresse du serveur STUN" STUN server address - + account_settings_enable_ice_title "Activer ICE" Enable ICE - + account_settings_avpf_title "AVPF" AVPF - + account_settings_bundle_mode_title "Mode bundle" Bundle mode - + account_settings_expire_title "Expiration (en seconde)" Expiration (in seconds) - + account_settings_conference_factory_uri_title "URI du serveur de conversations" Conference factory URI - + account_settings_audio_video_conference_factory_uri_title "URI du serveur de réunions" Video conference factory uri - + account_settings_lime_server_url_title "URL du serveur d’échange de clés de chiffrement" Lime server URL @@ -594,13 +611,13 @@ Mandatory media encryption - + settings_advanced_create_endtoend_encrypted_meetings_title Create end to end encrypted meetings and group calls Create end to end encrypted meetings and group calls - + settings_advanced_hide_fps_title Hide FPS @@ -608,19 +625,19 @@ AllContactListView - + car_favorites_contacts_title "Favoris" Favorites - + generic_address_picker_contacts_list_title 'Contacts' Contacts - + generic_address_picker_suggestions_list_title "Suggestions" Suggestions @@ -629,100 +646,141 @@ App - + remote_provisioning_dialog Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? Do you want to download and apply remote provisioning from this address ? - - + + + info_popup_error_title Error Error - - + + info_popup_configuration_failed_message Remote provisioning failed : %1 Remote provisioning failed : %1 - + + info_popup_error_checking_update + An error occured while trying to check update. Please try again later or contact support team. + An error occured while trying to check update. Please try again later or contact support team. + + + + info_popup_new_version_download_label + Download it ! + + + + info_popup_new_version_available_title + New version available ! + New version available ! + + + + info_popup_new_version_available_message + A new version of Linphone (%1) is available. %2 + A new version of Linphone (%1) is available at %1 + + + + info_popup_version_up_to_date_title + Up to date + + + + info_popup_version_up_to_date_message + Your version is up to date + Up to date Your version is up to date + + + configuration_error_detail not reachable not reachable - + application_description "A free and open source SIP video-phone." A free and open source SIP video-phone. - + command_line_arg_order "Send an order to the application towards a command line" Send an order to the application towards a command line - + command_line_option_show_help Show this help - + command_line_option_show_app_version Show app version - + command_line_option_config_to_fetch "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." Specify the linphone configuration file to be fetched. It will be merged with the current configuration. - + command_line_option_config_to_fetch_arg "URL, path or file" URL, path or file - + command_line_option_minimized Minimize - + command_line_option_log_to_stdout Log to stdout some debug information while running - + command_line_option_print_app_logs_only "Print only logs from the application" Print only logs from the application - + hide_action "Cacher" "Afficher" Hide - + show_action Show - + quit_action "Quitter" Quit - + + check_for_update + Check for update + Check for update + + + mark_all_read_action Marquer tout comme lu @@ -730,36 +788,36 @@ AuthenticationDialog - + account_settings_dialog_invalid_password_title "Authentification requise" Authentication required - + account_settings_dialog_invalid_password_message La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. Login failed for account %1. You can enter your password again or check your account settings. - + password Password - + cancel "Annuler Cancel - + assistant_account_login Connexion Connection - + assistant_account_login_missing_password Veuillez saisir un mot de passe Please enter a password @@ -768,76 +826,76 @@ CallCore - + call_record_end_message "Enregistrement terminé" Recording ended - + call_record_saved_in_file_message "L'appel a été enregistré dans le fichier : %1" Recording has been saved in file : %1 - - + + call_stats_codec_label "Codec: %1 / %2 kHz" Codec: %1 / %2 kHz - - + + call_stats_bandwidth_label "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" Bandwidth : %1 %2 kbits/s %3 %4 kbits/s - - + + call_stats_loss_rate_label "Taux de perte: %1% %2%" Loss rate: %1% %2% - + call_stats_jitter_buffer_label "Tampon de gigue: %1 ms" Jitter buffer : %1 ms - + call_stats_resolution_label "Définition vidéo : %1 %2 %3 %4" Video resolution: %1 %2 %3 %4 - + call_stats_fps_label "FPS : %1 %2 %3 %4" FPS : %1 %2 %3 %4 - + media_encryption_dtls DTLS DTLS - + media_encryption_none None None - + media_encryption_srtp SRTP SRTP - + media_encryption_post_quantum "ZRTP - Post quantique" Post quantum ZRTP @@ -846,73 +904,73 @@ CallForwardSettingsLayout - + settings_call_forward_activate_title "Forward calls" Forward calls - + settings_call_forward_activate_subtitle "Enable call forwarding to voicemail or sip address" Forward calls to voicemail or a Number / SIP Address / number - + settings_call_forward_destination_choose Forward to destination Forward calls to: - - - + + + settings_call_forward_to_voicemail Voicemail - + settings_call_forward_to_sipaddress Number / SIP Address - + settings_call_forward_sipaddress_title SIP Address Number / SIP Address: - + settings_call_forward_sipaddress_placeholder John.doe - + settings_call_forward_address_cannot_be_empty A number or SIP address is mandatory - + settings_call_forward_address_timeout Unable to set call forward, request timeout - + settings_call_forward_address_progress_disabling Disabling call forward - + settings_call_forward_address_progress_enabling Enabling call forward to: - + settings_call_forward_activation_success Call forward activated to : - + settings_call_forward_deactivation_success Call forward deactivated @@ -920,25 +978,25 @@ CallHistoryLayout - + meeting_info_join_title "Rejoindre la réunion" Join meeting - + contact_call_action "Appel" Call - + contact_message_action "Message" Message - + contact_video_call_action "Appel Video" Video call @@ -947,7 +1005,7 @@ CallHistoryListView - + call_name_accessible_button Call %1 Call %1 @@ -956,42 +1014,42 @@ CallLayout - + meeting_event_conference_destroyed "Vous avez quitté la conférence" You have left the meeting - + call_ended_by_user "Vous avez terminé l'appel" You have ended the call - + call_ended_by_remote "Votre correspondant a terminé l'appel" Your caller has ended the call - + conference_call_empty "En attente d'autres participants…" Waiting for other participants… - + conference_share_link_title "Partager le lien" Share link - + copied Copied - + information_popup_meeting_address_copied_to_clipboard Le lien de la réunion a été copié dans le presse-papier The meeting link has been copied to the clipboard @@ -1025,49 +1083,49 @@ CallListView - + meeting "Réunion Meeting - + call "Appel" Call - + paused_call_or_meeting "%1 en pause" %1 paused - + ongoing_call_or_meeting "%1 en cours" Ongoing %1 - + transfer_call_name_accessible_name Transfer call %1 Transfer call %1 - + resume_call_name_accessible_name Resume %1 call Resume %1 call - + pause_call_name_accessible_name Pause %1 call Pause %1 call - + end_call_name_accessible_name End %1 call End %1 call @@ -1076,67 +1134,67 @@ CallModel - + call_error_no_response_toast "No response" No response - + call_error_forbidden_resource_toast "403 : Forbidden resource" 403 : Forbidden resource - + call_error_not_answered_toast "Request timeout" Request timeout - + call_error_user_declined_toast "User declined the call" User declined the call - + call_error_user_not_found_toast "User was not found" User was not found - + call_error_user_busy_toast "User is busy" User is busy - + call_error_incompatible_media_params_toast "User can&apos;t accept your call" User can't accept your call - + call_error_io_error_toast "Unavailable service or network error" Unavailable service or network error - + call_error_do_not_disturb_toast "Le correspondant ne peut être dérangé" User cannot be disturbed - + call_error_temporarily_unavailable_toast "Temporarily unavailable" Temporarily unavailable - + call_error_server_timeout_toast "Server tiemout" Server tiemout @@ -1191,7 +1249,7 @@ Call history with this user will be permanently deleted. - + call_history_call_list_title "Appels" Calls @@ -1202,14 +1260,14 @@ Call history options - + menu_delete_history "Supprimer l'historique" Delete history - + call_history_list_options_accessible_name Call history options Call history options @@ -1428,13 +1486,13 @@ CallStatistics - + call_stats_audio_title "Audio" Audio - + call_stats_video_title "Vidéo" Video @@ -1443,236 +1501,236 @@ CallsWindow - + call_transfer_in_progress_toast "Transfert en cours, veuillez patienter" Transfer in progress, please wait - - + + information_popup_error_title Error - + call_transfer_failed_toast "Le transfert d'appel a échoué" Transfer failed - + conference_error_empty_uri "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." Meeting could start due to URI error. - + call_close_window_dialog_title "Terminer tous les appels en cours ?" End all current calls ? - + call_close_window_dialog_message "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." The window is about to be closed. This will end all current calls. - + call_can_be_trusted_toast "Appareil authentifié" Device trusted - + call_dir %1 call - + call_ended Appel terminé Call ended - + conference_paused Meeting paused Meeting paused - + call_paused Call paused Call paused - + call_srtp_point_to_point_encrypted Appel chiffré de point à point Point-to-point encrypted call - + call_zrtp_sas_validation_required Vérification nécessaire Validation required - + call_zrtp_end_to_end_encrypted Appel chiffré de bout en bout End-to-end encrypted call - + call_not_encrypted "Appel non chiffré" Unencrypted call - - + + call_waiting_for_encryption_info Waiting for encryption Waiting for encryption - + call_paused_by_remote Call paused by remote Call paused by remote - + conference_user_is_recording "You are recording the meeting" You are recording the meeting - + call_user_is_recording "You are recording the call" You are recording the call - + conference_remote_is_recording "Someone is recording the meeting" Someone is recording the meeting - + call_remote_recording "%1 is recording the call" %1 records the call - + call_stop_recording "Stop recording" Stop recording - + add Add - + call_transfer_current_call_title "Transférer %1 à…" Transfer %1 to… - - + + call_transfer_confirm_dialog_tittle "Confirmer le transfert" Confirm transfer - - + + call_transfer_confirm_dialog_message "Vous allez transférer %1 à %2." You are going to transfer %1 to %2. - + call_action_start_new_call "Nouvel appel" New call - - + + call_action_show_dialer "Pavé numérique" Dialer - + call_action_change_layout "Modifier la disposition" Change layout - + call_action_go_to_calls_list "Liste d'appel" Call list - + Merger tous les appels call_action_merge_calls Merge all calls - - + + call_action_go_to_settings "Paramètres" Settings - + conference_action_screen_sharing "Partage de votre écran" Share your screen - + conference_share_link_title Partager le lien de la réunion Share meeting link - + copied Copié Copied - + information_popup_meeting_address_copied_to_clipboard Le lien de la réunion a été copié dans le presse-papier Meeting link has been copied to the clipboard - - - + + + conference_participants_list_title "Participants (%1)" Participants (%1) - + group_call_participant_selected %1 selected participant @@ -1680,194 +1738,194 @@ - + meeting_schedule_add_participants_title Add participants - + call_encryption_title Chiffrement Encryption - + open_statistic_panel_accessible_name Open statistic panel - + conference_user_is_sharing_screen "You are sharing your screen" You are sharing your screen - + call_stop_screen_sharing "Stop sharing" Stop - + stop_recording_accessible_name Stop recording Stop recording - + stop_screen_sharing_accessible_name "Stop screen sharing" Stop screen sharing - + call_stats_title Statistiques Statistics - - + + call_action_end_call "Terminer l'appel" End call - - + + call_action_resume_call "Reprendre l'appel" Resume call - - + + call_action_pause_call "Mettre l'appel en pause" Pause call - - + + call_action_transfer_call "Transférer l'appel" Transfer call - - + + call_action_start_new_call_hint "Initier un nouvel appel" Start new call - - + + call_display_call_list_hint "Afficher la liste d'appels" View call list - - + + call_deactivate_video_hint "Désactiver la vidéo" "Activer la vidéo" Turn off video - - + + call_activate_video_hint Enable video - - + + call_activate_microphone "Activer le micro" Activate microphone - - + + call_deactivate_microphone "Désactiver le micro" Mute microphone - - + + call_share_screen_hint Partager l'écran… Share screen… - - + + call_open_chat_hint Open chat… Open conversation… - - + + call_rise_hand_hint "Lever la main" Rise hand - - + + call_send_reaction_hint "Envoyer une réaction" Send reaction - - + + call_manage_participants_hint "Gérer les participants" Manage participants - - + + call_more_options_hint "Plus d'options…" More options… - + call_action_change_conference_layout "Modifier la disposition" Change layout - + call_action_full_screen "Mode Plein écran" Full screen mode - + call_action_stop_recording "Terminer l'enregistrement" End recording - + call_action_record "Enregistrer l'appel" Record call - + call_activate_speaker_hint "Activer le son" Activate speaker - + call_deactivate_speaker_hint "Désactiver le son" Mute speaker @@ -1876,86 +1934,86 @@ CarddavSettingsLayout - + settings_contacts_carddav_title Carnet d'adresse CardDAV CardDAV address book - + settings_contacts_carddav_subtitle "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." Add a CardDAV address book to sync your Linphone contacts with a third-party address book. - + information_popup_error_title Error - + settings_contacts_carddav_popup_invalid_error "Vérifiez que toutes les informations ont été saisies." Check that all information has been entered. - + information_popup_synchronization_success_title Success - + settings_contacts_carddav_synchronization_success_message "Le carnet d'adresse CardDAV est synchronisé." The CardDAV address book is synchronized. - + settings_contacts_carddav_popup_synchronization_error_title Error - + settings_contacts_carddav_popup_synchronization_error_message - "Erreur de synchronisation!" - Synchronization error ! + "Erreur de synchronisation : %1" + Synchronization error : %1 - + settings_contacts_delete_carddav_server_title "Supprimer le carnet d'adresse CardDAV ?" Delete CardDAV address book? - + sip_address_display_name Nom d'affichage Display name - + settings_contacts_carddav_server_url_title "URL du serveur" Server URL - + username Username - + password Password - + settings_contacts_carddav_realm_title Domaine d’authentification Authentication realm - + settings_contacts_carddav_use_as_default_title "Stocker ici les contacts nouvellement crées" Store newly created contacts here @@ -1964,17 +2022,17 @@ ChangeLayoutForm - + conference_layout_grid Grid - + conference_layout_active_speaker Active speaker - + conference_layout_audio_only Audio only @@ -1998,13 +2056,13 @@ ChatCore - + info_toast_deleted_title Deleted Deleted - + info_toast_deleted_message_history Message history has been deleted Message history has been deleted @@ -2028,65 +2086,65 @@ ChatListView - + chat_message_is_writing_info %1 is writing… %1 is writing… - + chat_message_draft_sending_text Draft : %1 - + chat_room_delete "Delete" Delete - + chat_room_mute Mute - + chat_room_unmute "Mute" Unmute - + chat_room_mark_as_read "Mark as read" Mark as read - + chat_room_leave "leave" Leave - + chat_list_leave_chat_popup_title leave the conversation ? Leave the conversation ? - + chat_list_leave_chat_popup_message You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? - + chat_list_delete_chat_popup_title Delete the conversation ? Delete the conversation ? - + chat_list_delete_chat_popup_message This conversation and all its messages will be deleted. Do You want to continue ? This conversation and all its messages will be deleted. Do You want to continue ? @@ -2095,25 +2153,25 @@ ChatMessage - + chat_message_copy_selection "Copy selection" Copy selection - + chat_message_copy "Copy" Copy - + chat_message_copied_to_clipboard_title Copied Copied - + chat_message_copied_to_clipboard_toast "to clipboard" in clipboard @@ -2149,25 +2207,25 @@ You replied - + chat_message_reception_info "Reception info" Reception info - + chat_message_reply Reply Reply - + chat_message_forward Forward Forward - + chat_message_delete "Delete" Delete @@ -2176,13 +2234,24 @@ ChatMessageContentCore - + + download_file_default_error + Error downloading file %1 + Error downloading file %1 + + + + info_popup_error_titile + Error + + + popup_error_title Error Error - + popup_open_file_error_does_not_exist_message Could not open file : unknown path %1 Could not open file : unknown path %1 @@ -2242,34 +2311,58 @@ Error ChatMessageContentModel - - popup_error_title - Error - Error + + download_error_object_doesnt_exist + Internal error : message object does not exist anymore ! + Internal error : message object does not exist anymore ! - - popup_download_error_message + + download_file_server_error + Error while trying to download content : %1 + Error while trying to download content : %1 + + + + download_file_error_no_safe_file_path + Unable to create safe file path for: %1 + Unable to create safe file path for: %1 + + + + download_file_error_file_transfer_unavailable This file was already downloaded and is no more on the server. Your peer have to resend it if you want to get it This file was already downloaded and is no more on the server. Your peer have to resend it if you want to get it + + + download_file_error_null_name + Content name is null, can't download it ! + Content name is null, can't download it ! + + + + download_file_error_unable_to_download + Unable to download file of entry %1 + Unable to download file of entry %1 + ChatMessageCore - + all_reactions_label "Reactions": all reactions for one message label Reactions - + info_toast_deleted_title Deleted Deleted - + info_toast_deleted_message The message has been deleted The message has been deleted @@ -2329,44 +2422,44 @@ Error ChatMessagesListView - - + + popup_info_find_message_title Find message Find message - + info_popup_no_result_message No result found No result found - + info_popup_first_result_message First result reached First result reached - + info_popup_last_result_message Last result reached Last result reached - + chat_message_list_encrypted_header_title End to end encrypted chat End to end encrypted chat - + unencrypted_conversation_warning This conversation is not encrypted ! This conversation is not encrypted ! - + chat_message_list_encrypted_header_message Messages in this conversation are e2e encrypted. Only your correspondent can decrypt them. @@ -2374,7 +2467,7 @@ Error Only your correspondent can decrypt them. - + chat_message_list_not_encrypted_header_message Messages are not end to end encrypted, may sure you don't share any sensitive information ! @@ -2382,7 +2475,7 @@ Only your correspondent can decrypt them. may sure you don't share any sensitive information ! - + chat_message_is_writing_info %1 is writing… %1 is writing… @@ -2403,92 +2496,115 @@ Only your correspondent can decrypt them. No conversation - + + info_popup_error_title + Error + + + + info_popup_chatroom_creation_failed + Chat room creation failed ! + Chat room creation failed ! + + + + loading_popup_chatroom_creation_pending_message + Chat room is being created... + Chat room is being created... + + + chat_dialog_delete_chat_title Supprimer la conversation ? Delete conversation ? - + chat_dialog_delete_chat_message "La conversation et tous ses messages seront supprimés." This conversation and all its messages will be deleted. - + chat_list_title "Conversations" Conversations - + menu_mark_all_as_read "mark all as read" Mark all as read - + chat_search_in_history "Rechercher une conversation" Search for a chat - + list_filter_no_result_found "Aucun résultat…" No result… - + chat_list_empty_history "Aucune conversation dans votre historique" No conversation in history - + chat_action_start_new_chat "New chat" New conversation - + chat_start_group_chat_title "Nouveau groupe" New group - + chat_action_start_group_chat "Créer" Create - - - + + + information_popup_error_title Error - + information_popup_chat_creation_failed_message "La création a échoué" Creation failed - + group_chat_error_must_have_name "Un nom doit être donné au groupe A name must be set for the group - + + group_chat_error_no_participant + "Please select at least one participant + Please select at least one participant + + + group_call_error_not_connected "Vous n'etes pas connecté" You are not connected - + chat_creation_in_progress Creation de la conversation en cours … Chat creation pending… @@ -2566,19 +2682,19 @@ Only your correspondent can decrypt them. Contact - + information_popup_error_title Erreur Error - + information_popup_voicemail_address_undefined_message L'URI de messagerie vocale n'est pas définie. The voicemail URI is not defined. - + account_settings_name_accessible_name Account settings of %1 Account settings of %1 @@ -2608,7 +2724,7 @@ Only your correspondent can decrypt them. close_accessible_name - Close %n + Close %1 Close %1 @@ -2654,78 +2770,78 @@ Only your correspondent can decrypt them. Delete contact image - - + + contact_editor_first_name "Prénom" First name - - + + contact_editor_last_name "Nom" Last name - - + + contact_editor_company "Entreprise" Company - - + + contact_editor_job_title "Fonction" Job - - + + sip_address SIP address - + sip_address_number_accessible_name "SIP address number %1" SIP address number %1 - + remove_sip_address_accessible_name "Remove SIP address %1" Remove SIP address %1 - + new_sip_address_accessible_name "New SIP address" New SIP address - + phone_number_number_accessible_name "Phone number number %1" Phone number number %1 - + remove_phone_number_accessible_name Remove phone number %1 Remove phone number %1 - + new_phone_number_accessible_name "New phone number" New phone number - - + + phone "Téléphone" Phone @@ -2734,53 +2850,53 @@ Only your correspondent can decrypt them. ContactListItem - + contact_details_remove_from_favourites "Enlever des favoris" Remove from favorites - + contact_details_add_to_favourites "Ajouter aux favoris" Add to favorites - + Partager Share - + information_popup_error_title Error - + information_popup_vcard_creation_error La création du fichier vcard a échoué VCard creation failed - + information_popup_vcard_creation_title VCard créée VCard created - + information_popup_vcard_creation_success "VCard du contact enregistrée dans %1" VCard has been saved in %1 - + contact_sharing_email_title Partage de contact Share contact - + contact_details_delete "Supprimer" Delete @@ -2804,161 +2920,161 @@ Only your correspondent can decrypt them. ContactPage - + contacts_add "Ajouter un contact" Add a contact - + contacts_list_empty "Aucun contact pour le moment" No contact at the moment - + contact_new_title "Nouveau contact" New contact - + create Create - + contact_edit_title "Modifier contact" Edit contact - + save Save - + contact_dialog_delete_title Supprimer %1 ?" Delete %1? - + contact_dialog_delete_message Ce contact sera définitivement supprimé. This contact will be permanently deleted. - + contact_deleted_toast "Contact supprimé" Contact deleted - + contact_deleted_message "%1 a été supprimé" %1 has been deleted - + contact_dialog_devices_trust_popup_title "Augmenter la confiance" Increase trust level - + contact_dialog_devices_trust_popup_message "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" To increase trust level you must call your contact's devices and validate a code.<br><br>You are about to call "%1" do you want to continue? - + popup_do_not_show_again Ne plus afficher Do not show again - + cancel Cancel - + dialog_call "Appeler" Call - + contact_dialog_devices_trust_help_title "Niveau de confiance" Trust level - + contact_dialog_devices_trust_help_message "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." Verify your contact's devices to confirm that your communications will be secure and uncompromised. When all are verified, you will reach the maximum trust level. - + dialog_ok "Ok" Ok - + bottom_navigation_contacts_label "Contacts" Contacts - + search_bar_look_for_contact_text Rechercher un contact Find contact - + list_filter_no_result_found Aucun résultat… No result… - + contact_list_empty Aucun contact pour le moment No contact at the moment - + expand_accessible_name Expand %1 Expand %1 - + shrink_accessible_name Shrink %1 Shrink %1 - + create_contact_accessible_name Create new contact Create new contact - + more_info_accessible_name More info %1 More info %1 - - + + contact_details_edit Edit ---------- @@ -2966,151 +3082,151 @@ Only your correspondent can decrypt them. Edit - + contact_call_action "Appel" Call - + contact_message_action "Message" Message - + contact_video_call_action "Appel vidéo" Video call - + contact_details_numbers_and_addresses_title "Coordonnées" Contact details - + call_adress_accessible_name Call address %1 Call address %1 - + contact_details_company_name "Société :" Company : - + contact_details_job_title "Poste :" Job : - + contact_details_medias_title "Medias" Medias - - + + contact_details_medias_subtitle "Afficher les medias partagés" Show shared media - + contact_details_trust_title "Confiance" Trust - + contact_dialog_devices_trust_title "Niveau de confiance - Appareils vérifiés" Trust Level - Verified Devices - + contact_details_no_device_found "Aucun appareil" No device - + contact_device_without_name "Appareil inconnu" Unknown device - + contact_make_call_check_device_trust "Vérifier" Verify - + verify_device_accessible_name Verify %1 device Verify %1 device - + contact_details_actions_title "Autres actions" Other actions - + contact_details_remove_from_favourites "Retirer des favoris" Remove from favorites - + contact_details_add_to_favourites "Ajouter aux favoris" Add to favorites - + contact_details_share "Partager" Share - + information_popup_error_title Error - + contact_details_share_error_mesage "La création du fichier vcard a échoué" VCard creation failed - + contact_details_share_success_title "VCard créée" VCard created - + contact_details_share_success_mesage "VCard du contact enregistrée dans %1" VCard has been saved in %1 - + contact_details_share_email_title "Partage de contact" Share contact - + contact_details_delete "Supprimer ce contact" Delete contact @@ -3212,147 +3328,161 @@ Only your correspondent can decrypt them. ConversationInfos - + one_one_infos_call "Appel" Call - + one_one_infos_unmute "Sourdine" Unmute - + one_one_infos_mute Mute - + group_infos_participants Participants (%1) - + group_infos_media_docs Medias & documents Medias & documents - + group_infos_shared_medias Shared medias Shared medias - + group_infos_shared_docs Shared documents Shared documents - + group_infos_other_actions Other actions Other actions - + group_infos_ephemerals Ephemeral messages : - + group_infos_enable_ephemerals Enable ephemeral messages - + group_infos_meeting Schedule a meeting Schedule a meeting - + group_infos_leave_room Leave chat room Leave Chat Room - + group_infos_leave_room_toast_title Leave Chat Room ? Leave Chat Room ? - + group_infos_leave_room_toast_message All the messages will be removed from the chat room. Do you want to continue ? All the messages will be removed from the chat room. Do you want to continue ? - + group_infos_delete_history Delete history Delete history - + group_infos_delete_history_toast_title Delete history ? Delete history ? - + group_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? All the messages will be removed from the chat room. Do you want to continue ? - + one_one_infos_open_contact Show contact Show contact - + one_one_infos_create_contact Create contact Create contact - + one_one_infos_ephemerals Ephemeral messages : - + one_one_infos_enable_ephemerals Enable ephemeral messages - + one_one_infos_delete_history Delete history - + one_one_infos_delete_history_toast_title Delete history ? Delete history ? - + one_one_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? All the messages will be removed from the chat room. Do you want to continue ? + + CoreModel + + + info_popup_error_title + Error + + + + fetching_config_failed_error_message + "Remote provisioning cannot be retrieved" + Remote provisioning cannot be retrieved + + CreationFormLayout - + search_bar_look_for_contact_text "Rechercher un contact" Find contact @@ -3361,92 +3491,98 @@ Only your correspondent can decrypt them. DebugSettingsLayout - + settings_debug_clean_logs_message "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" Debug traces will be deleted. Do you wish to continue? - + settings_debug_share_logs_message "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " Debug traces have been uploaded. How would you like to share the link? - + settings_debug_clipboard "Presse-papier" Clipboard - + settings_debug_email "E-Mail" E-Mail - + debug_settings_trace "Traces %1" %1 traces - + information_popup_email_sharing_failed "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." Email sharing failed. Please send the %1 link directly to %2. - - + + information_popup_error_title Une erreur est survenue. An error has occurred. - + settings_debug_enable_logs_title "Activer les traces de débogage" Enable debug traces - + settings_debug_enable_full_logs_title "Activer les traces de débogage intégrales" Enable full logs - + settings_debug_delete_logs_title "Supprimer les traces" Delete debug traces - + settings_debug_share_logs_title "Partager les traces" Share debug traces - + settings_debug_share_logs_loading_message "Téléversement des traces en cours …" Uploading traces… - + settings_debug_app_version_title "Version de l'application" App version - + settings_debug_sdk_version_title "Version du SDK" SDK version - + + settings_debug_qt_version_title + "Qt Version" + Qt Version + + + settings_debug_share_logs_error "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" Uploading traces failed. You can share trace files directly from the following directory: %1 @@ -3455,13 +3591,13 @@ Only your correspondent can decrypt them. DecoratedTextField - + textfield_error_message_cannot_be_empty "ne peut être vide" can not be empty - + textfield_error_message_unknown_format "Format non reconnu" Unknown format @@ -3470,15 +3606,15 @@ Only your correspondent can decrypt them. Dialog - - + + dialog_confirm "Confirmer" Confirm - - + + dialog_cancel "Annuler" Cancel @@ -3487,49 +3623,49 @@ Only your correspondent can decrypt them. EncryptionSettings - + call_stats_media_encryption_title "Encryption :" Encryption : - + call_stats_media_encryption Media encryption : %1 Media encryption : %1%2 - + call_stats_zrtp_cipher_algo "Algorithme de chiffrement : %1" Encryption algorithm : %1 - + call_stats_zrtp_key_agreement_algo "Algorithme d'accord de clé : %1" Key agreement algorithm: %1 - + call_stats_zrtp_hash_algo "Algorithme de hachage : %1" Hash algorithm : %1 - + call_stats_zrtp_auth_tag_algo "Algorithme d'authentification : %1" Authentication algorithm : %1 - + call_stats_zrtp_sas_algo "Algorithme SAS : %1" SAS algorithm : %1 - + call_zrtp_validation_button_label "Validation chiffrement" Encryption validation @@ -3538,42 +3674,42 @@ Only your correspondent can decrypt them. EphemeralSettings - + title Ephemeral messages - + explanations By enabling ephemeral messages in this chat, messages sent will be automatically deleted after the defined period. - + one_minute 1 minute - + one_hour 1 hour - + one_day 1 day - + one_week 1 week - + disabled Disabled - + custom Custom: @@ -3581,59 +3717,59 @@ Only your correspondent can decrypt them. EventLogCore - + conference_created_event You have joined the group - + conference_created_terminated You have left the group - + conference_participant_added_event %1 has joined - + conference_participant_removed_event %1 is no longer in the conversation - + conference_participant_set_admin_event %1 is now an admin - + conference_participant_unset_admin_event %1 is no longer an admin - - + + conference_security_event Security level degraded by %1 - + conference_ephemeral_message_enabled_event Ephemeral messages enabled Expiration : %1 - + conference_ephemeral_message_disabled_event Ephemeral messages disabled - + conference_subject_changed_event New subject: %1 - + conference_ephemeral_message_lifetime_changed_event Ephemeral messages updated Expiration : %1 @@ -3674,55 +3810,55 @@ Expiration : %1 GroupChatInfoParticipants - + group_infos_manage_participants_title "Gérer des participants" Manage participants - + group_infos_participant_is_admin Admin - + menu_see_existing_contact "Show contact" Show contact - + menu_add_address_to_contacts "Add to contacts" Add to contacts - + group_infos_give_admin_rights Give admin rights - + group_infos_remove_admin_rights Remove admin rights - + group_infos_copy_sip_address Copy SIP Address - + group_infos_remove_participant Remove participant - + group_infos_remove_participants_toast_title Remove participant ? - + group_infos_remove_participants_toast_message Participant will be removed from chat room. @@ -3730,20 +3866,20 @@ Expiration : %1 GroupCreationFormLayout - + return_accessible_name Return Return - + group_start_dialog_subject_hint "Nom du groupe" Group name - + required "Requis" Required @@ -3752,50 +3888,56 @@ Expiration : %1 HelpPage - + help_title "Aide" Help - - + + help_about_title "À propos de %1" About %1 - + help_about_privacy_policy_title "Règles de confidentialité" Privacy Policy - + help_about_privacy_policy_subtitle Quelles informations %1 collecte et utilise What information does %1 collect and use - + help_about_version_title "Version" Version - + + help_check_for_update_button_label + Check update + Check for update + + + help_about_gpl_licence_title "Licences GPLv3" GPLv3 licences - + help_about_contribute_translations_title "Contribuer à la traduction de %1" Contribute to the translation of %1 - + help_troubleshooting_title "Dépannage" Troubleshooting @@ -3935,7 +4077,7 @@ Expiration : %1 LoadingPopup - + cancel Cancel @@ -4110,7 +4252,7 @@ Expiration : %1 MagicSearchList - + device_id Phone @@ -4343,7 +4485,7 @@ Expiration : %1 ManageParticipants - + group_infos_manage_participants Participants @@ -4351,37 +4493,37 @@ Expiration : %1 MeetingForm - + meeting_schedule_meeting_label "Réunion" Meeting - + meeting_schedule_broadcast_label "Webinar" Webinar - + meeting_schedule_subject_hint "Ajouter un titre" Add a title - + meeting_schedule_description_hint "Ajouter une description" Add a description - + meeting_schedule_add_participants_title "Ajouter des participants" Add participants - + meeting_schedule_send_invitations_title "Envoyer une invitation aux participants" Send an invitation to participants @@ -4390,19 +4532,19 @@ Expiration : %1 MeetingListView - + meeting_info_cancelled "Réunion annulée" Meeting canceled - + meetings_list_no_meeting_for_today "Aucune réunion aujourd'hui" No meeting for today - + meeting_info_delete "Supprimer la réunion" Delete meeting @@ -4423,163 +4565,163 @@ Expiration : %1 No meeting - + meeting_schedule_cancel_dialog_message "Souhaitez-vous annuler et supprimer cette réunion ?" Would you like to cancel and delete this meeting? - + meeting_schedule_delete_dialog_message Souhaitez-vous supprimer cette réunion ? Would you like to delete this meeting? - + meeting_schedule_cancel_and_delete_action "Annuler et supprimer" Cancel and delete - + meeting_schedule_delete_only_action "Supprimer seulement" Delete only - + meeting_schedule_delete_action "Supprimer" Delete - + back_action Retour Back - + meetings_list_title Réunions Meetings - + meetings_search_hint "Rechercher une réunion" Find meeting - + list_filter_no_result_found "Aucun résultat…" No result… - + meetings_empty_list "Aucune réunion" No meeting - - + + meeting_schedule_title "Nouvelle réunion" New meeting - + create Create - - - - - - + + + + + + information_popup_error_title Error - - + + meeting_schedule_mandatory_field_not_filled_toast Veuillez saisir un titre et sélectionner au moins un participant Please fill the title and select at least one participant - - + + meeting_schedule_duration_error_toast "La fin de la conférence doit être plus récente que son début" The end of the conference must be more recent than its beginning - - + + meeting_schedule_creation_in_progress "Création de la réunion en cours …" Creation in progress… - + meeting_info_created_toast "Réunion planifiée avec succès" Meeting successfully created - + meeting_failed_to_schedule_toast "Échec de création de la réunion !" Failed to create meeting! - + save Save - - + + saved "Enregistré" Saved - + meeting_info_updated_toast "Réunion mise à jour" Meeting updated - + meeting_schedule_edit_in_progress "Modification de la réunion en cours…" Meeting update in progress… - + meeting_failed_to_edit_toast "Échec de la modification de la réunion !" Failed to update meeting ! - + meeting_schedule_add_participants_title "Ajouter des participants" Add participants - + meeting_schedule_add_participants_apply Apply - + group_call_participant_selected "%n participant(s) sélectionné(s)" @@ -4588,31 +4730,31 @@ Expiration : %1 - + meeting_info_delete "Supprimer la réunion" Delete meeting - + meeting_address_copied_to_clipboard_toast "Adresse de la réunion copiée" Meeting URI copied - + meeting_schedule_timezone_title "Fuseau horaire" Timezone - + meeting_info_organizer_label "Organisateur" Organizer - + meeting_info_join_title "Rejoindre la réunion" Join meeting @@ -4621,19 +4763,19 @@ Expiration : %1 MeetingsSettingsLayout - + settings_meetings_display_title "Affichage" Display - + settings_meetings_default_layout_title "Mode d’affichage par défaut" Default display mode - + settings_meetings_default_layout_subtitle "Le mode d’affichage des participants en réunions" How participants are displayed in meetings @@ -4642,7 +4784,7 @@ Expiration : %1 MessageImdnStatusInfos - + message_details_status_title Message status Message status @@ -4651,13 +4793,13 @@ Expiration : %1 MessageReactionsInfos - + message_details_reactions_title Reactions Reactions - + click_to_delete_reaction_info Click to delete Click to delete @@ -4666,13 +4808,13 @@ Expiration : %1 MessageSharedFilesInfos - + no_shared_medias No media No media - + no_shared_documents No document No document @@ -4730,13 +4872,13 @@ Expiration : %1 NetworkSettingsLayout - + settings_network_title "Réseau" Network - + settings_network_allow_ipv6 "Autoriser l'IPv6" Enable IPv6 @@ -4745,7 +4887,7 @@ Expiration : %1 NewCallForm - + call_transfer_active_calls_label "Appels en cours" Ongoing call @@ -4769,19 +4911,19 @@ Expiration : %1 NotificationReceivedCall - + call_audio_incoming "Appel entrant" Incoming call - + dialog_accept "Accepter" Accept - + dialog_deny "Refuser Decline @@ -4790,24 +4932,24 @@ Expiration : %1 Notifier - + new_call_alert_accessible_name New call from %1 New call from %1 - + new_voice_message 'Voice message received!' : message to warn the user in a notofication for voice messages. Voice message received! - + new_file_message File received! - + new_conference_invitation 'Conference invitation received!' : Notification about receiving an invitation to a conference. Conference invitation received ! @@ -4819,7 +4961,7 @@ Expiration : %1 New messages received ! - + new_message_alert_accessible_name New message on chatroom %1 New message on chatroom %1 @@ -4943,13 +5085,13 @@ Expiration : %1 ParticipantListView - + meeting_participant_is_admin_label "Admin" Admin - + meeting_add_participants_title "Ajouter des participants" Add participants @@ -4958,13 +5100,13 @@ Expiration : %1 PhoneNumberInput - + prefix_phone_number_accessible_name %1 prefix %1 prefix - + number_phone_number_accessible_name %1 number %1 number @@ -5016,7 +5158,7 @@ Expiration : %1 PresenceNoteLayout - + contact_presence_note_title Custom message @@ -5024,12 +5166,12 @@ Expiration : %1 PresenceSetCustomStatus - + contact_presence_button_set_custom_status_title Set a custom status message - + contact_presence_button_save_custom_status Save @@ -5059,90 +5201,96 @@ Expiration : %1 + message_state_idle + "idle" + idle + + + message_state_in_progress "delivery in progress" delivery in progress - + message_state_delivered sent sent - + message_state_not_delivered error error - + message_state_file_transfer_error cannot get file from server cannot get file from server - + message_state_file_transfer_done file transfer has been completed successfully file transfer has been completed successfully - + message_state_delivered_to_user received received - + message_state_displayed read read - + message_state_file_transfer__in_progress file transfer in progress file transfer in progress - + message_state_pending_delivery pending delivery pending delivery - + message_state_file_transfer_cancelling file transfer canceled file transfer canceled - + incoming "Entrant" Incoming - + outgoing "Sortant" Outgoing - + conference_layout_active_speaker "Participant actif" Active speaker - + conference_layout_grid "Mosaïque" Grid - + conference_layout_audio_only "Audio uniquement" Audio only @@ -5151,37 +5299,37 @@ Expiration : %1 RegisterCheckingPage - + email "email" email - + phone_number "numéro de téléphone" phone number - + confirm_register_title "Inscription | Confirmer votre %1" Register | Confirm your %1 - + assistant_account_creation_confirmation_explanation Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous We have sent you a verification code to your %1 %2<br> Please enter it below - + assistant_account_creation_confirmation_did_not_receive_code "Vous n'avez pas reçu le code ?" Didn't receive the code? - + assistant_account_creation_confirmation_resend_code "Renvoyer un code" Resend code @@ -5445,28 +5593,28 @@ To enable them in a commercial project, please contact us. Advanced parameters - - + + login_proxy_server_url "Outbound SIP Proxy URI" Outbound SIP Proxy URI - + login_proxy_server_url_tooltip "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it. - - + + login_registrar_uri "Registrar URI" Registrar URI - - + + login_id "Authentication ID (if different)" Authentication ID (if different) @@ -5475,37 +5623,37 @@ To enable them in a commercial project, please contact us. ScreencastSettings - + screencast_settings_choose_window_text "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" Please choose the screen or window you would like to share with other participants. - + screencast_settings_all_screen_label "Ecran entier" Full screen - + screencast_settings_one_window_label "Fenêtre" Window - + screencast_settings_screen "Ecran %1" Screen %1 - + stop "Stop Stop - + share "Partager" Share @@ -5529,43 +5677,43 @@ To enable them in a commercial project, please contact us. SecurityModePage - + manage_account_choose_mode_title "Choisir votre mode" Choose your mode - + manage_account_choose_mode_message "Vous pourrez changer de mode plus tard." You can change the mode later. - + manage_account_e2e_encrypted_mode_default_title "Chiffrement de bout en bout" End to end encryption - + manage_account_e2e_encrypted_mode_default_summary "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." This mode guarantees the confidentiality of all your communications. Our end-to-end encryption technology ensures maximum security for all your communications. - + manage_account_e2e_encrypted_mode_interoperable_title "Interoperable" Interoperable - + manage_account_e2e_encrypted_mode_interoperable_summary "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." This mode allows you to benefit from all the features of Linphone, while remaining interoperable with any other SIP service. - + dialog_continue "Continuer" Continue @@ -5574,13 +5722,13 @@ To enable them in a commercial project, please contact us. SecuritySettingsLayout - + settings_security_enable_vfs_title "Chiffrer tous les fichiers" Encrypt all files - + settings_security_enable_vfs_subtitle "Attention, vous ne pourrez pas revenir en arrière !" Warning: once enabled it can't be disabled! @@ -5589,42 +5737,42 @@ To enable them in a commercial project, please contact us. SelectedChatView - + chat_view_group_call_toast_message Start a group call ? - + unencrypted_conversation_warning This conversation is not encrypted ! This conversation is not encrypted ! - + reply_to_label Reply to %1 Reply to %1 - + shared_medias_title Shared medias Shared medias - + shared_documents_title Shared documents Shared documents - + forward_to_title Forward to… Froward to… - + conversations_title Conversations Conversations @@ -5717,13 +5865,13 @@ To enable them in a commercial project, please contact us. Sticker - + conference_participant_joining_text "rejoint…" joining… - + conference_participant_paused_text "En pause" Paused @@ -5753,43 +5901,43 @@ To enable them in a commercial project, please contact us. The calling address is not an interpretable SIP address : %1 - + group_call_error_no_account No default account found, can't create group call - + group_call_error_participants_invite Couldn't invite participants to group call - + group_call_error_creation Group call couldn't be created - + voice_recording_duration "Voice recording (%1)" : %1 is the duration formated in mm:ss Voice recording (%1) - + unknown_audio_device_name Unknown device name - + conference_invitation Meeting invitation - + conference_invitation_cancelled Meeting cancellation - + conference_invitation_updated Meeting modification @@ -5797,7 +5945,7 @@ To enable them in a commercial project, please contact us. Utils - + nSeconds %1 second @@ -5805,7 +5953,7 @@ To enable them in a commercial project, please contact us. - + nMinute %1 minute @@ -5813,43 +5961,43 @@ To enable them in a commercial project, please contact us. - + chat_message_forward_error Cannot forward an invalid message Cannot forward an invalid message - + info_popup_forward_message_error Could not forward message : %1 Could not forward message : %1 - + info_popup_send_forward_message_error_message Failed to create forward message Failed to create forward message - + chat_message_reply_error Cannot reply to invalid message Cannot reply to invalid message - + info_popup_reply_message_error Could not send reply message : %1 Could not send reply message : %1 - + info_popup_send_reply_message_error_message Failed to create reply message Failed to create reply message - + nHour %1 hour @@ -5857,8 +6005,8 @@ To enable them in a commercial project, please contact us. - - + + nDay %1 day @@ -5866,7 +6014,7 @@ To enable them in a commercial project, please contact us. - + nWeek %1 week @@ -5874,27 +6022,27 @@ To enable them in a commercial project, please contact us. - + contact_presence_status_available Available - + contact_presence_status_busy Busy - + contact_presence_status_do_not_disturb Do not disturb - + contact_presence_status_offline Offline - + contact_presence_status_away Idle/Away @@ -5907,8 +6055,8 @@ To enable them in a commercial project, please contact us. - - + + information_popup_error_title Error ---------- @@ -5921,7 +6069,7 @@ Failed to create 1-1 conversation with %1 ! Group call couldn't be created - + number_of_years %n an(s) @@ -5930,7 +6078,7 @@ Failed to create 1-1 conversation with %1 ! - + number_of_month "%n mois" @@ -5939,7 +6087,7 @@ Failed to create 1-1 conversation with %1 ! - + number_of_weeks %n semaine(s) @@ -5948,7 +6096,7 @@ Failed to create 1-1 conversation with %1 ! - + number_of_days %n jour(s) @@ -5957,25 +6105,25 @@ Failed to create 1-1 conversation with %1 ! - + today "Aujourd'hui" Today - + yesterday "Hier Yesterday - + duration_tomorrow Tomorrow Tomorrow - + duration_number_of_days %1 jour(s) @@ -5984,50 +6132,50 @@ Failed to create 1-1 conversation with %1 ! - + call_zrtp_token_verification_possible_characters "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 - - + + information_popup_chatroom_creation_error_message Failed to create 1-1 conversation with %1 ! Failed to create 1-1 conversation with %1 ! - + recorder_error Error with the recorder Error with the recorder - - - + + + chat_error Error in the chat - - - - - - + + + + + + info_popup_error_title Error Error - + info_popup_send_voice_message_error_message Could not send voice message : %1 Could not send voice message : %1 - + info_popup_send_voice_message_sending_error_message Failed to create message from record Failed to create message from record @@ -6036,32 +6184,32 @@ Failed to create 1-1 conversation with %1 ! WaitingRoom - + meeting_waiting_room_title Participer à : Join : - + meeting_waiting_room_join "Rejoindre" Join - - + + cancel Cancel Cancel - + meeting_waiting_room_joining_title "Connexion à la réunion" Connection to meeting - + meeting_waiting_room_joining_subtitle "Vous allez rejoindre la réunion dans quelques instants…" You will be joining the meeting in a few moments... @@ -6070,61 +6218,61 @@ Failed to create 1-1 conversation with %1 ! WelcomePage - + welcome_page_title "Bienvenue" Welcome - + welcome_page_subtitle "sur %1" on %1 - + welcome_carousel_skip "Passer" Skip - + welcome_page_1_message "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." A <b>secured</b>,<br> <b>open source</b> and <b>French</b> communication application. - + welcome_page_2_title "Sécurisé" Secured - + welcome_page_2_message "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." Your communications are secure thanks to <br><b>End-to-end encryption</b>. - + welcome_page_3_title "Open Source" Open Source - + welcome_page_3_message "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" An open source application and a <b>free service</b> <br>since <b>2001</b> - + next "Suivant" Next - + start "Commencer" Start @@ -6133,61 +6281,61 @@ Failed to create 1-1 conversation with %1 ! ZrtpAuthenticationDialog - + call_dialog_zrtp_validate_trust_title Vérification de sécurité Security check - + call_zrtp_sas_validation_skip "Passer" Skip - + call_dialog_zrtp_validate_trust_warning_message "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" To ensure encryption, we need to re-authenticate your contact's device. Exchange your codes: - + call_dialog_zrtp_validate_trust_message "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " To ensure encryption, we need to authenticate your contact's device. Please exchange your codes: - + call_dialog_zrtp_validate_trust_local_code_label "Votre code :" Your code : - + call_dialog_zrtp_validate_trust_remote_code_label "Code correspondant :" Corresponding code : - + call_dialog_zrtp_validate_trust_letters_do_not_match_text "Le code fourni ne correspond pas." The provided code does not match. - + call_dialog_zrtp_security_alert_message "La confidentialité de votre appel peut être compromise !" The confidentiality of your call may be compromised! - + call_dialog_zrtp_validate_trust_letters_do_not_match "Aucune correspondance" No match - + call_action_hang_up "Raccrocher" Hang up @@ -6196,1117 +6344,1117 @@ Failed to create 1-1 conversation with %1 ! country - + Afghanistan Afghanistan - + Albania Albania - + Algeria Algeria - + AmericanSamoa American Samoa - + Andorra Andorra - + Angola Angola - + Anguilla Anguilla - + AntiguaAndBarbuda Antigua-et-Barbuda - + Argentina Argentina - + Armenia Armenia - + Aruba Aruba - + Australia Australia - + Austria Austria - + Azerbaijan Azerbaijan - + Bahamas Bahamas - + Bahrain Bahrain - + Bangladesh Bangladesh - + Barbados Barbados - + Belarus Belarus - + Belgium Belgium - + Belize Belize - + Benin Benin - + Bermuda Bermuda - + Bhutan Bhutan - + Bolivia Bolivia - + BosniaAndHerzegowina Bosnia And Herzegowina - + Botswana Botswana - + Brazil Brazil - + Brunei Brunei - + Bulgaria Bulgaria - + BurkinaFaso Burkina Faso - + Burundi Burundi - + Cambodia Cambodia - + Cameroon Cameroon - + Canada Canada - + CapeVerde Cape Verde - + CaymanIslands Cayman Islands - + CentralAfricanRepublic Central African Republic - + Chad Chad - + Chile Chile - + China China - + Colombia Colombia - + Comoros Comoros - + PeoplesRepublicOfCongo Peoples Republic Of Congo - + CookIslands Cook Islands - + CostaRica Costa Rica - + IvoryCoast Ivory Coast - + Croatia Croatia - + Cuba Cuba - + Cyprus Cyprus - + CzechRepublic Czech Republic - + Denmark Denmark - + Djibouti Djibouti - + Dominica Dominica - + DominicanRepublic Dominican Republic - + Ecuador Ecuador - + Egypt Egypt - + ElSalvador El Salvador - + EquatorialGuinea Equatorial Guinea - + Eritrea Eritrea - + Estonia Estonia - + Ethiopia Ethiopia - + FalklandIslands Falkland Islands - + FaroeIslands Faroe Islands - + Fiji Fiji - + Finland Finland - + France France - + FrenchGuiana French Guiana - + FrenchPolynesia French Polynesia - + Gabon Gabon - + Gambia Gambia - + Georgia Georgia - + Germany Germany - + Ghana Ghana - + Gibraltar Gibraltar - + Greece Greece - + Greenland Greenland - + Grenada Grenada - + Guadeloupe Guadeloupe - + Guam Guam - + Guatemala Guatemala - + Guinea Guinea - + GuineaBissau Guinea-Bissau - + Guyana Guyana - + Haiti Haiti - + Honduras Honduras - + DemocraticRepublicOfCongo Democratic Republic Of Congo - + HongKong Hong Kong - + Hungary Hungary - + Iceland Iceland - + India India - + Indonesia Indonesia - + Iran Iran - + Iraq Iraq - + Ireland Ireland - + Israel Israel - + Italy Italie - + Jamaica Jamaica - + Japan Japan - + Jordan Jordan - + Kazakhstan Kazakhstan - + Kenya Kenya - + Kiribati Kiribati - + DemocraticRepublicOfKorea Democratic Republic Of Korea - + RepublicOfKorea Republic Of Korea - + Kuwait Kuwait - + Kyrgyzstan Kyrgyzstan - + Laos Laos - + Latvia Latvia - + Lebanon Lebanon - + Lesotho Lesotho - + Liberia Liberia - + Libya Libya - + Liechtenstein Liechtenstein - + Lithuania Lithuania - + Luxembourg Luxembourg - + Macau Macau - + Macedonia Macedonia - + Madagascar Madagascar - + Malawi Malawi - + Malaysia Malaysia - + Maldives Maldives - + Mali Mali - + Malta Malta - + MarshallIslands Marshall Islands - + Martinique Martinique - + Mauritania Mauritania - + Mauritius Mauritius - + Mayotte Mayotte - + Mexico Mexico - + Micronesia Micronesia - + Moldova Moldova - + Monaco Monaco - + Mongolia Mongolia - + Montenegro Montenegro - + Montserrat Montserrat - + Morocco Morocco - + Mozambique Mozambique - + Myanmar Myanmar - + Namibia Namibia - + NauruCountry Nauru Country - + Nepal Nepal - + Netherlands Netherlands - + NewCaledonia New-Caledonia - + NewZealand New-Zealand - + Nicaragua Nicaragua - + Niger Niger - + Nigeria Nigeria - + Niue Niue - + NorfolkIsland Norfolk Island - + NorthernMarianaIslands Northern Mariana Islands - + Norway Norway - + Oman Oman - + Pakistan Pakistan - + Palau Palau - + PalestinianTerritories Palestinian Territories - + Panama Panama - + PapuaNewGuinea Papua-New-Guinea - + Paraguay Paraguay - + Peru Peru - + Philippines Philippines - + Poland Poland - + Portugal Portugal - + PuertoRico Puerto Rico - + Qatar Qatar - + Reunion Reunion - + Romania Romania - + RussianFederation Russian Federation - + Rwanda Rwanda - + SaintHelena Saint-Helena - + SaintKittsAndNevis Saint-Kitts-And-Nevis - + SaintLucia Saint-Lucia - + SaintPierreAndMiquelon Saint-Pierre-And-Miquelon - + SaintVincentAndTheGrenadines Saint-Vincent And The Grenadines - + Samoa Samoa - + SanMarino San-Marino - + SaoTomeAndPrincipe Sao Tome-And-Principe - + SaudiArabia Saudi Arabia - + Senegal Senegal - + Serbia Serbia - + Seychelles Seychelles - + SierraLeone Sierra Leone - + Singapore Singapore - + Slovakia Slovakia - + Slovenia Slovenia - + SolomonIslands Solomon Islands - + Somalia Somalia - + SouthAfrica South Africa - + Spain Spain - + SriLanka Sri Lanka - + Sudan Sudan - + Suriname Suriname - + Swaziland Swaziland - + Sweden Sweden - + Switzerland Switzerland - + Syria Syria - + Taiwan Taiwan - + Tajikistan Tajikistan - + Tanzania Tanzania - + Thailand Thailand - + Togo Togo - + Tokelau Tokelau - + Tonga Tonga - + TrinidadAndTobago Trinidad-And-Tobago - + Tunisia Tunisia - + Turkey Turkey - + Turkmenistan Turkmenistan - + TurksAndCaicosIslands Turks And Caicos Islands - + Tuvalu Tuvalu - + Uganda Uganda - + Ukraine Ukraine - + UnitedArabEmirates United Arab Emirates - + UnitedKingdom United-Kingdom - + UnitedStates United-States - + Uruguay Uruguay - + Uzbekistan Uzbekistan - + Vanuatu Vanuatu - + Venezuela Venezuela - + Vietnam Vietnam - + WallisAndFutunaIslands Wallis And Futuna Islands - + Yemen Yemen - + Zambia Zambia - + Zimbabwe Zimbabwe diff --git a/Linphone/data/languages/es.ts b/Linphone/data/languages/es.ts new file mode 100644 index 000000000..ddd4efe3b --- /dev/null +++ b/Linphone/data/languages/es.ts @@ -0,0 +1,7420 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + + + + + save + "Enregistrer" + + + + + save_settings_accessible_name + Save %1 settings + + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + + + + + fps_counter + + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + + + + + drawer_menu_account_connection_status_refreshing + + + + + drawer_menu_account_connection_status_progress + + + + + drawer_menu_account_connection_status_failed + + + + + drawer_menu_account_connection_status_cleared + + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + + + + + AccountListView + + + add_an_account + Add an account + + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + + + + + assistant_account_login_forbidden_error + "Username and password do not match" + + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + + + + + assistant_account_add_error + "Unable to add account." + + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + + + + + manage_account_devices_title + "Vos appareils" + + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + + + + + manage_account_add_picture + "Ajouter une image" + + + + + manage_account_edit_picture + "Modifier l'image" + + + + + manage_account_remove_picture + "Supprimer l'image" + + + + + sip_address + + + + + sip_address_display_name + "Nom d'affichage + + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + + + + + manage_account_international_prefix + Indicatif international* + + + + + manage_account_delete + "Déconnecter mon compte" + + + + + manage_account_delete_message + + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + + + + + error + Erreur + + + + + manage_account_device_remove + "Supprimer" + + + + + manage_account_device_remove_confirm_dialog + + + + + manage_account_device_last_connection + "Dernière connexion:" + + + + + device_last_updated_time_no_info + "No information" + + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + + + + + settings_general_title + "Général" + + + + + settings_account_title + "Paramètres de compte" + + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + + + + + AccountSettingsParametersLayout + + + settings_title + + + + + settings_account_title + + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_error_title + + + + + information_popup_success_title + + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + + + + + information_popup_error_title + + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + + + + + account_settings_transport_title + "Transport" + + + + + account_settings_registrar_uri_title + + + + + account_settings_sip_proxy_url_title + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + + + + + account_settings_enable_ice_title + "Activer ICE" + + + + + account_settings_avpf_title + "AVPF" + + + + + account_settings_bundle_mode_title + "Mode bundle" + + + + + account_settings_expire_title + "Expiration (en seconde)" + + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + + + + + + + remove_participant_accessible_name + Remove participant %1 + + + + + list_filter_no_result_found + "Aucun contact" + + + + + contact_list_empty + + + + + AdvancedSettingsLayout + + + settings_system_title + System + + + + + settings_remote_provisioning_title + Remote provisioning + + + + + settings_security_title + Security / Encryption + + + + + settings_advanced_audio_codecs_title + Audio codecs + + + + + settings_advanced_video_codecs_title + Video codecs + + + + + settings_advanced_auto_start_title + Auto start %1 + + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + + + + + information_popup_error_title + Invalid URL format + + + + + settings_advanced_invalid_url_message + + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + + + + + + settings_advanced_media_encryption_title + Media encryption + + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + + + + + settings_advanced_hide_fps_title + + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + + + + + generic_address_picker_contacts_list_title + 'Contacts' + + + + + generic_address_picker_suggestions_list_title + "Suggestions" + + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + + + + + + info_popup_error_title + Error + + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + + + + + configuration_error_detail + not reachable + + + + + application_description + "A free and open source SIP video-phone." + + + + + command_line_arg_order + "Send an order to the application towards a command line" + + + + + command_line_option_show_help + + + + + command_line_option_show_app_version + + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + + + + + command_line_option_minimized + + + + + command_line_option_log_to_stdout + + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + + + + + hide_action + "Cacher" "Afficher" + + + + + show_action + + + + + quit_action + "Quitter" + + + + + mark_all_read_action + + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + + + + + password + + + + + cancel + "Annuler + + + + + assistant_account_login + Connexion + + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + + + + + media_encryption_dtls + DTLS + + + + + media_encryption_none + None + + + + + media_encryption_srtp + SRTP + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + + + + + settings_call_forward_destination_choose + Forward to destination + + + + + + + settings_call_forward_to_voicemail + + + + + settings_call_forward_to_sipaddress + + + + + settings_call_forward_sipaddress_title + SIP Address + + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + + + + + settings_call_forward_address_timeout + + + + + settings_call_forward_address_progress_disabling + + + + + settings_call_forward_address_progress_enabling + + + + + settings_call_forward_activation_success + + + + + settings_call_forward_deactivation_success + + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + contact_call_action + "Appel" + + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel Video" + + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + + + + + call_ended_by_user + "Vous avez terminé l'appel" + + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + + + + + conference_call_empty + "En attente d'autres participants…" + + + + + conference_share_link_title + "Partager le lien" + + + + + copied + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + CallList + + + remote_group_call + Remote group call + + + + + local_group_call + + + + + info_popup_error_title + + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + + + + + CallListView + + + meeting + "Réunion + + + + + call + "Appel" + + + + + paused_call_or_meeting + "%1 en pause" + + + + + ongoing_call_or_meeting + "%1 en cours" + + + + + transfer_call_name_accessible_name + Transfer call %1 + + + + + resume_call_name_accessible_name + Resume %1 call + + + + + pause_call_name_accessible_name + Pause %1 call + + + + + end_call_name_accessible_name + End %1 call + + + + + CallModel + + + call_error_no_response_toast + "No response" + + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + + + + + call_error_not_answered_toast + "Request timeout" + + + + + call_error_user_declined_toast + "User declined the call" + + + + + call_error_user_not_found_toast + "User was not found" + + + + + call_error_user_busy_toast + "User is busy" + + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + + + + + call_error_io_error_toast + "Unavailable service or network error" + + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + + + + + call_error_server_timeout_toast + "Server tiemout" + + + + + CallPage + + + call_forward_to_address_info + + + + + call_forward_to_address_info_voicemail + + + + + history_call_start_title + "Nouvel appel" + + + + + call_history_empty_title + "Historique d'appel vide" + + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + + + + + call_history_call_list_title + "Appels" + + + + + call_history_options_accessible_name + + + + + + menu_delete_history + "Supprimer l'historique" + + + + + call_history_list_options_accessible_name + Call history options + + + + + create_new_call_accessible_name + Create new call + + + + + call_search_in_history + "Rechercher un appel" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + history_list_empty_history + "Aucun appel dans votre historique" + + + + + return_to_call_history_accessible_name + Return to call history + + + + + call_action_start_new_call + "Nouvel appel" + + + + + call_start_group_call_title + "Appel de groupe" + + + + + call_action_start_group_call + "Lancer" + + + + + + + information_popup_error_title + + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + menu_copy_sip_address + "Copier l'adresse SIP" + + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + + + + + notification_missed_call_title + "Appel manqué" + + + + + call_outgoing + "Appel sortant" + + + + + call_audio_incoming + "Appel entrant" + + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + + + + + settings_call_enable_tones_title + Tonalités + + + + + settings_call_enable_tones_subtitle + Activer les tonalités + + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + + + + + settings_calls_command_line_title + Command line + + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + + + + + settings_calls_current_ringtone_filename + Current ringtone : + + + + + choose_ringtone_file_accessible_name + Choose ringtone file + + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + + + + + CallStatistics + + + call_stats_audio_title + "Audio" + + + + + call_stats_video_title + "Vidéo" + + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + + + + + + information_popup_error_title + + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + + + + + call_can_be_trusted_toast + "Appareil authentifié" + + + + + call_dir + + + + + call_ended + Appel terminé + + + + + conference_paused + Meeting paused + + + + + call_paused + Call paused + + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + + + + + call_zrtp_sas_validation_required + Vérification nécessaire + + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + + + + + call_not_encrypted + "Appel non chiffré" + + + + + + call_waiting_for_encryption_info + Waiting for encryption + + + + + call_paused_by_remote + Call paused by remote + + + + + conference_user_is_recording + "You are recording the meeting" + + + + + call_user_is_recording + "You are recording the call" + + + + + conference_remote_is_recording + "Someone is recording the meeting" + + + + + call_remote_recording + "%1 is recording the call" + + + + + call_stop_recording + "Stop recording" + + + + + add + + + + + call_transfer_current_call_title + "Transférer %1 à…" + + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + + + + + call_action_start_new_call + "Nouvel appel" + + + + + + call_action_show_dialer + "Pavé numérique" + + + + + call_action_change_layout + "Modifier la disposition" + + + + + call_action_go_to_calls_list + "Liste d'appel" + + + + + Merger tous les appels + call_action_merge_calls + + + + + + call_action_go_to_settings + "Paramètres" + + + + + conference_action_screen_sharing + "Partage de votre écran" + + + + + conference_share_link_title + Partager le lien de la réunion + + + + + copied + Copié + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + + + conference_participants_list_title + "Participants (%1)" + + + + + + group_call_participant_selected + + + + + + + + meeting_schedule_add_participants_title + + + + + call_encryption_title + Chiffrement + + + + + open_statistic_panel_accessible_name + + + + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + + + + + stop_recording_accessible_name + Stop recording + + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + + + + + call_stats_title + Statistiques + + + + + + call_action_end_call + "Terminer l'appel" + + + + + + call_action_resume_call + "Reprendre l'appel" + + + + + + call_action_pause_call + "Mettre l'appel en pause" + + + + + + call_action_transfer_call + "Transférer l'appel" + + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + + + + + + call_activate_video_hint + + + + + + call_activate_microphone + "Activer le micro" + + + + + + call_deactivate_microphone + "Désactiver le micro" + + + + + + call_share_screen_hint + Partager l'écran… + + + + + + call_open_chat_hint + Open chat… + + + + + + call_rise_hand_hint + "Lever la main" + + + + + + call_send_reaction_hint + "Envoyer une réaction" + + + + + + call_manage_participants_hint + "Gérer les participants" + + + + + + call_more_options_hint + "Plus d'options…" + + + + + call_action_change_conference_layout + "Modifier la disposition" + + + + + call_action_full_screen + "Mode Plein écran" + + + + + call_action_stop_recording + "Terminer l'enregistrement" + + + + + call_action_record + "Enregistrer l'appel" + + + + + call_activate_speaker_hint + "Activer le son" + + + + + call_deactivate_speaker_hint + "Désactiver le son" + + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + + + + + information_popup_error_title + + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + + + + + information_popup_synchronization_success_title + + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + + + + + settings_contacts_carddav_popup_synchronization_error_title + + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + + + + + sip_address_display_name + Nom d'affichage + + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + + + + + username + + + + + password + + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + + + + + ChangeLayoutForm + + + conference_layout_grid + + + + + conference_layout_active_speaker + + + + + conference_layout_audio_only + + + + + ChatAudioContent + + + + information_popup_error_title + Error + + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + + + + + ChatCore + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message_history + Message history has been deleted + + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + + + + + chat_message_draft_sending_text + + + + + chat_room_delete + "Delete" + + + + + chat_room_mute + + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + + + + + chat_room_leave + "leave" + + + + + chat_list_leave_chat_popup_title + leave the conversation ? + + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + + + + + chat_message_copy + "Copy" + + + + + chat_message_copied_to_clipboard_title + Copied + + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + + + + + chat_message_remote_replied + %1 replied + + + + + chat_message_forwarded + Forwarded + + + + + chat_message_remote_replied_to + %1 replied to %2 + + + + + chat_message_user_replied_to + You replied to %1 + + + + + chat_message_user_replied + You replied + + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + + + + + chat_message_forward + Forward + + + + + chat_message_delete + "Delete" + + + + + ChatMessageContentCore + + + popup_error_title + Error + + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + + + + + popup_error_path_does_not_exist_message + File was not found: %1 + + + + + popup_error_nb_files_not_found_message + + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + + + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + + + + + popup_error_unsupported_files_message + + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + + + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message + The message has been deleted + + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + + + + + ics_bubble_meeting_to + + + + + ics_bubble_meeting_modified + Meeting has been updated + + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + + + + + + + + + + ics_bubble_description_title + Description + + + + + ics_bubble_join + "Rejoindre" + + + + + ics_bubble_participants + %n participant(s) + + + + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + + + + + info_popup_no_result_message + No result found + + + + + info_popup_first_result_message + First result reached + + + + + info_popup_last_result_message + Last result reached + + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + + + + + chat_message_is_writing_info + %1 is writing… + + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + + + + + chat_empty_title + "Aucune conversation" + + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + + + + + chat_list_title + "Conversations" + + + + + menu_mark_all_as_read + "mark all as read" + + + + + chat_search_in_history + "Rechercher une conversation" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + + + + + chat_action_start_new_chat + "New chat" + + + + + chat_start_group_chat_title + "Nouveau groupe" + + + + + chat_action_start_group_chat + "Créer" + + + + + + + information_popup_error_title + + + + + information_popup_chat_creation_failed_message + "La création a échoué" + + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + chat_creation_in_progress + Creation de la conversation en cours … + + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + + + + + CliModel + + + show_function_description + + + + + fetch_config_function_description + + + + + call_function_description + + + + + bye_function_description + + + + + accept_function_description + + + + + decline_function_description + + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + + + + + Contact + + + information_popup_error_title + Erreur + + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + + + + + account_settings_name_accessible_name + Account settings of %1 + + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + + + + + save + "Enregistrer + + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + + + + + close_accessible_name + Close %1 + + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + + + + + contact_editor_add_image_label + "Ajouter une image" + + + + + contact_details_edit + "Modifier" + + + + + edit_contact_image_accessible_name + "Edit contact image" + + + + + contact_details_delete + "Supprimer" + + + + + delete_contact_image_accessible_name + "Delete contact image" + + + + + + contact_editor_first_name + "Prénom" + + + + + + contact_editor_last_name + "Nom" + + + + + + contact_editor_company + "Entreprise" + + + + + + contact_editor_job_title + "Fonction" + + + + + + sip_address + + + + + sip_address_number_accessible_name + "SIP address number %1" + + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + + + + + new_sip_address_accessible_name + "New SIP address" + + + + + phone_number_number_accessible_name + "Phone number number %1" + + + + + remove_phone_number_accessible_name + Remove phone number %1 + + + + + new_phone_number_accessible_name + "New phone number" + + + + + + phone + "Téléphone" + + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + Partager + + + + + information_popup_error_title + + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + + + + + information_popup_vcard_creation_title + VCard créée + + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + + + + + contact_sharing_email_title + Partage de contact + + + + + contact_details_delete + "Supprimer" + + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + + + + + expand_accessible_name + Expand %1 + + + + + ContactPage + + + contacts_add + "Ajouter un contact" + + + + + contacts_list_empty + "Aucun contact pour le moment" + + + + + contact_new_title + "Nouveau contact" + + + + + create + + + + + contact_edit_title + "Modifier contact" + + + + + save + + + + + contact_dialog_delete_title + Supprimer %1 ?" + + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + + + + + contact_deleted_toast + "Contact supprimé" + + + + + contact_deleted_message + "%1 a été supprimé" + + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + + + + + popup_do_not_show_again + Ne plus afficher + + + + + cancel + + + + + dialog_call + "Appeler" + + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + + + + + dialog_ok + "Ok" + + + + + bottom_navigation_contacts_label + "Contacts" + + + + + search_bar_look_for_contact_text + Rechercher un contact + + + + + list_filter_no_result_found + Aucun résultat… + + + + + contact_list_empty + Aucun contact pour le moment + + + + + expand_accessible_name + Expand %1 + + + + + shrink_accessible_name + Shrink %1 + + + + + create_contact_accessible_name + Create new contact + + + + + more_info_accessible_name + More info %1 + + + + + + contact_details_edit + Edit +---------- +"Éditer" + + + + + contact_call_action + "Appel" + + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel vidéo" + + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + + + + + call_adress_accessible_name + Call address %1 + + + + + contact_details_company_name + "Société :" + + + + + contact_details_job_title + "Poste :" + + + + + contact_details_medias_title + "Medias" + + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + + + + + contact_details_trust_title + "Confiance" + + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + + + + + contact_details_no_device_found + "Aucun appareil" + + + + + contact_device_without_name + "Appareil inconnu" + + + + + contact_make_call_check_device_trust + "Vérifier" + + + + + verify_device_accessible_name + Verify %1 device + + + + + contact_details_actions_title + "Autres actions" + + + + + contact_details_remove_from_favourites + "Retirer des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + contact_details_share + "Partager" + + + + + information_popup_error_title + + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + + + + + contact_details_share_success_title + "VCard créée" + + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + + + + + contact_details_share_email_title + "Partage de contact" + + + + + contact_details_delete + "Supprimer ce contact" + + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + + + + + settings_contacts_carddav_title + + + + + settings_contacts_carddav_subtitle + + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + add + "Ajouter" + + + + + ConversationInfos + + + one_one_infos_call + "Appel" + + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + + + + + group_infos_participants + + + + + group_infos_media_docs + Medias & documents + + + + + group_infos_shared_medias + Shared medias + + + + + group_infos_shared_docs + Shared documents + + + + + group_infos_other_actions + Other actions + + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + + + + + group_infos_leave_room + Leave chat room + + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + group_infos_delete_history + Delete history + + + + + group_infos_delete_history_toast_title + Delete history ? + + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + one_one_infos_open_contact + Show contact + + + + + one_one_infos_create_contact + Create contact + + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + + + + + one_one_infos_delete_history_toast_title + Delete history ? + + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + + + + + settings_debug_clipboard + "Presse-papier" + + + + + settings_debug_email + "E-Mail" + + + + + debug_settings_trace + "Traces %1" + + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + + + + + + information_popup_error_title + Une erreur est survenue. + + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + + + + + settings_debug_delete_logs_title + "Supprimer les traces" + + + + + settings_debug_share_logs_title + "Partager les traces" + + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + + + + + settings_debug_app_version_title + "Version de l'application" + + + + + settings_debug_sdk_version_title + "Version du SDK" + + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + + + + + textfield_error_message_unknown_format + "Format non reconnu" + + + + + Dialog + + + + dialog_confirm + "Confirmer" + + + + + + dialog_cancel + "Annuler" + + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + + + + + call_stats_media_encryption + Media encryption : %1 + + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + + + + + call_zrtp_validation_button_label + "Validation chiffrement" + + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + + + + + one_hour + + + + + one_day + + + + + one_week + + + + + disabled + + + + + custom + + + + + EventLogCore + + + conference_created_event + + + + + conference_created_terminated + + + + + conference_participant_added_event + + + + + conference_participant_removed_event + + + + + conference_participant_set_admin_event + + + + + conference_participant_unset_admin_event + + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + + + + + + + device_id + "Téléphone" + + + + + information_popup_error_title + + + + + information_popup_invalid_address_message + "Adresse invalide" + + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + + + + + group_infos_participant_is_admin + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + group_infos_give_admin_rights + + + + + group_infos_remove_admin_rights + + + + + group_infos_copy_sip_address + + + + + group_infos_remove_participant + + + + + group_infos_remove_participants_toast_title + + + + + group_infos_remove_participants_toast_message + + + + + GroupCreationFormLayout + + + return_accessible_name + Return + + + + + + group_start_dialog_subject_hint + "Nom du groupe" + + + + + required + "Requis" + + + + + HelpPage + + + help_title + "Aide" + + + + + + help_about_title + "À propos de %1" + + + + + help_about_privacy_policy_title + "Règles de confidentialité" + + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + + + + + help_about_version_title + "Version" + + + + + help_about_gpl_licence_title + "Licences GPLv3" + + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + + + + + help_troubleshooting_title + "Dépannage" + + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + + + + + settings_contacts_ldap_subtitle + + + + + information_popup_success_title + + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + + + + + information_popup_error_title + + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + + + + + delete_ldap_server_accessible_name + Delete LDAP server + + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + + + + + settings_contacts_ldap_password_title + "Mot de passe" + + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + + + + + settings_contacts_ldap_search_filter_title + "Filtre" + + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + + + + + settings_contacts_ldap_debug_title + "Débogage" + + + + + LoadingPopup + + + cancel + + + + + LoginForm + + + + username + Nom d'utilisateur : username + + + + + + password + Mot de passe + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + assistant_account_login + "Connexion" + + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + + + + + assistant_forgotten_password + "Mot de passe oublié ?" + + + + + LoginLayout + + + + help_about_title + À propos de %1 + + + + + help_about_privacy_policy_title + "Politique de confidentialité" + + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + + + + + help_about_version_title + "Version" + + + + + help_about_licence_title + "Licence" + + + + + help_about_copyright_title + "Copyright + + + + + close + "Fermer" + + + + + LoginPage + + + return_accessible_name + Return + + + + + assistant_account_login + Connexion + + + + + assistant_no_account_yet + "Pas encore de compte ?" + + + + + assistant_account_register + "S'inscrire" + + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + + + + + assistant_login_remote_provisioning + "Configuration distante" + + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + + + + + cancel + + + + + validate + "Valider" + + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + + + + + default_account_connection_state_error_toast + + + + + MagicSearchList + + + device_id + + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + + + + + open_calls_page_accessible_name + "Open calls page" + + + + + bottom_navigation_contacts_label + "Contacts" + + + + + open_contacts_page_accessible_name + "Open contacts page" + + + + + bottom_navigation_conversations_label + "Conversations" + + + + + open_conversations_page_accessible_name + "Open conversations page" + + + + + bottom_navigation_meetings_label + "Réunions" + + + + + open_contact_page_accessible_name + "Open meetings page" + + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + + + + + do_not_disturb_accessible_name + "Do not disturb" + + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + + + + + information_popup_error_title + + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + + + + + account_list_accessible_name + "Account list" + + + + + application_options_accessible_name + "Application options" + + + + + drawer_menu_manage_account + Mon compte + + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + + + + + settings_title + + + + + recordings_title + "Enregistrements" + + + + + help_title + "Aide" + + + + + help_quit_title + "Quitter l'application" + + + + + quit_app_question + "Quitter %1 ?" + + + + + drawer_menu_add_account + "Ajouter un compte" + + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + + + + + interoperable + interopérable + + + + + call_transfer_successful_toast_title + "Appel transféré" + + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + + + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + + + + + assistant_register_error_title + "Erreur lors de la création" + + + + + assistant_register_success_title + "Compte créé" + + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + + + + + assistant_register_error_code + "Erreur dans le code de validation" + + + + + information_popup_error_title + + + + + ManageParticipants + + + group_infos_manage_participants + + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + + + + + meeting_schedule_broadcast_label + "Webinar" + + + + + meeting_schedule_subject_hint + "Ajouter un titre" + + + + + meeting_schedule_description_hint + "Ajouter une description" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + MeetingPage + + + meetings_add + "Créer une réunion" + + + + + meetings_list_empty + "Aucune réunion" + + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + + + + + meeting_schedule_delete_action + "Supprimer" + + + + + back_action + Retour + + + + + meetings_list_title + Réunions + + + + + meetings_search_hint + "Rechercher une réunion" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + meetings_empty_list + "Aucune réunion" + + + + + + meeting_schedule_title + "Nouvelle réunion" + + + + + create + + + + + + + + + + information_popup_error_title + + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + + + + + save + + + + + + saved + "Enregistré" + + + + + meeting_info_updated_toast + "Réunion mise à jour" + + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_add_participants_apply + + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + + + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + + + + + meeting_schedule_timezone_title + "Fuseau horaire" + + + + + meeting_info_organizer_label + "Organisateur" + + + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + + + + + click_to_delete_reaction_info + Click to delete + + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + + + + + no_shared_documents + No document + + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + + + + + + + + choose_something_accessible_name + Choose %1 + + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + + + + + + device_volume_accessible_name + %1 volume + + + + + + + multimedia_settings_microphone_title + "Microphone" + + + + + + multimedia_settings_camera_title + "Caméra" + + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + + + + + call_start_group_call_title + Appel de groupe + + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + + + + + dialog_accept + "Accepter" + + + + + dialog_deny + "Refuser + + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + + + + + new_file_message + + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + + + + + new_message_alert_accessible_name + New message on chatroom %1 + + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + + + + + oidc_authentication_granted_message + Authentication granted + + + + + oidc_authentication_not_authenticated_message + Not authenticated + + + + + oidc_authentication_refresh_message + Refreshing token + + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + + + + + oidc_authentication_network_error + Network error + + + + + oidc_authentication_server_error + Server error + + + + + oidc_authentication_token_not_found_error + OAuth token not found + + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + + + + + oidc_authentication_no_token_found_error + + + + + oidc_authentication_request_token_message + Requesting access token + + + + + oidc_authentication_refresh_token_message + Refreshing access token + + + + + oidc_authentication_request_authorization_message + Requesting authorization + + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + + + + + meeting_add_participants_title + "Ajouter des participants" + + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + + + + + number_phone_number_accessible_name + %1 number + + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + + + + + open_popup_panel_accessible_name + "Open %1" popup + + + + + Presence + + + contact_presence_reset_status + + + + + contact_presence_button_set_custom_status + + + + + contact_presence_button_edit_custom_status + + + + + contact_presence_button_delete_custom_status + + + + + contact_presence_custom_status + + + + + PresenceNoteLayout + + + contact_presence_note_title + + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + + + + + contact_presence_button_save_custom_status + + + + + QObject + + + media_encryption_dtls + + + + + media_encryption_none + + + + + media_encryption_srtp + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + message_state_in_progress + "delivery in progress" + + + + + message_state_delivered + sent + + + + + message_state_not_delivered + error + + + + + message_state_file_transfer_error + cannot get file from server + + + + + message_state_file_transfer_done + file transfer has been completed successfully + + + + + message_state_delivered_to_user + received + + + + + message_state_displayed + read + + + + + message_state_file_transfer__in_progress + file transfer in progress + + + + + message_state_pending_delivery + pending delivery + + + + + message_state_file_transfer_cancelling + file transfer canceled + + + + + incoming + "Entrant" + + + + + outgoing + "Sortant" + + + + + conference_layout_active_speaker + "Participant actif" + + + + + conference_layout_grid + "Mosaïque" + + + + + conference_layout_audio_only + "Audio uniquement" + + + + + RegisterCheckingPage + + + email + "email" + + + + + phone_number + "numéro de téléphone" + + + + + confirm_register_title + "Inscription | Confirmer votre %1" + + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + + + + + RegisterPage + + + return_accessible_name + Return + + + + + assistant_account_register + "Inscription + + + + + assistant_already_have_an_account + + + + + assistant_account_login + + + + + assistant_account_register_with_phone_number + + + + + assistant_account_register_with_email + + + + + + username + + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + domain + + + + + + + phone_number + "Numéro de téléphone" + + + + + + email + + + + + + password + + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + + + + + assistant_account_create + "Créer" + + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + + + + + SIPLoginPage + + + return_accessible_name + Return + + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + + + + + assistant_no_account_yet + Pas encore de compte ? + + + + + assistant_account_register + S'inscrire + + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + + + + + + username + "Nom d'utilisateur" + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + password + + + + + + sip_address_domain + "Domaine" + + + + + + sip_address_display_name + Nom d'affichage + + + + + + transport + "Transport" + + + + + + assistant_account_login + + + + + assistant_account_login_missing_username + + + + + assistant_account_login_missing_password + + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + + + + + login_advanced_parameters_label + Advanced parameters + + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + + + + + screencast_settings_all_screen_label + "Ecran entier" + + + + + screencast_settings_one_window_label + "Fenêtre" + + + + + screencast_settings_screen + "Ecran %1" + + + + + stop + "Stop + + + + + share + "Partager" + + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + + + + + dialog_continue + "Continuer" + + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + + + + + SelectedChatView + + + chat_view_group_call_toast_message + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + reply_to_label + Reply to %1 + + + + + shared_medias_title + Shared medias + + + + + shared_documents_title + Shared documents + + + + + forward_to_title + Forward to… + + + + + conversations_title + Conversations + + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + + + + + SettingsPage + + + settings_title + "Paramètres" + + + + + settings_calls_title + "Appels" + + + + + settings_call_forward + "Transfert d'appel" + + + + + settings_conversations_title + "Conversations" + + + + + settings_contacts_title + "Contacts" + + + + + settings_meetings_title + "Réunions" + + + + + settings_network_title + "Affichage" "Security" "Réseau" + + + + + settings_advanced_title + "Paramètres avancés" + + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + + + + + conference_participant_paused_text + "En pause" + + + + + TextField + + + show_accessible_name + Show %1 + + + + + hide_accessible_name + Hide %1 + + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + + + + + group_call_error_no_account + + + + + group_call_error_participants_invite + + + + + group_call_error_creation + + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + + + + + unknown_audio_device_name + + + + + conference_invitation + + + + + conference_invitation_cancelled + + + + + conference_invitation_updated + + + + + Utils + + + nSeconds + + + + + + + + nMinute + + + + + + + + chat_message_forward_error + Cannot forward an invalid message + + + + + info_popup_forward_message_error + Could not forward message : %1 + + + + + info_popup_send_forward_message_error_message + Failed to create forward message + + + + + chat_message_reply_error + Cannot reply to invalid message + + + + + info_popup_reply_message_error + Could not send reply message : %1 + + + + + info_popup_send_reply_message_error_message + Failed to create reply message + + + + + nHour + + + + + + + + + nDay + + + + + + + + nWeek + + + + + + + + contact_presence_status_available + + + + + contact_presence_status_busy + + + + + contact_presence_status_do_not_disturb + + + + + contact_presence_status_offline + + + + + contact_presence_status_away + + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + + + + + information_popup_group_call_not_created_message + + + + + number_of_years + %n an(s) + + + + + + + + number_of_month + "%n mois" + + + + + + + + number_of_weeks + %n semaine(s) + + + + + + + + number_of_days + %n jour(s) + + + + + + + + today + "Aujourd'hui" + + + + + yesterday + "Hier + + + + + duration_tomorrow + Tomorrow + + + + + duration_number_of_days + %1 jour(s) + + + + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + + + + + recorder_error + Error with the recorder + + + + + + + chat_error + + + + + + + + + + info_popup_error_title + Error + + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + + + + + meeting_waiting_room_join + "Rejoindre" + + + + + + cancel + Cancel + + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + + + + + welcome_page_subtitle + "sur %1" + + + + + welcome_carousel_skip + "Passer" + + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + + + + + welcome_page_2_title + "Sécurisé" + + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + + + + + welcome_page_3_title + "Open Source" + + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + + + + + next + "Suivant" + + + + + start + "Commencer" + + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + + + + + call_zrtp_sas_validation_skip + "Passer" + + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + + + + + call_action_hang_up + "Raccrocher" + + + + + country + + + Afghanistan + + + + + Albania + + + + + Algeria + + + + + AmericanSamoa + + + + + Andorra + + + + + Angola + + + + + Anguilla + + + + + AntiguaAndBarbuda + + + + + Argentina + + + + + Armenia + + + + + Aruba + + + + + Australia + + + + + Austria + + + + + Azerbaijan + + + + + Bahamas + + + + + Bahrain + + + + + Bangladesh + + + + + Barbados + + + + + Belarus + + + + + Belgium + + + + + Belize + + + + + Benin + + + + + Bermuda + + + + + Bhutan + + + + + Bolivia + + + + + BosniaAndHerzegowina + + + + + Botswana + + + + + Brazil + + + + + Brunei + + + + + Bulgaria + + + + + BurkinaFaso + + + + + Burundi + + + + + Cambodia + + + + + Cameroon + + + + + Canada + + + + + CapeVerde + + + + + CaymanIslands + + + + + CentralAfricanRepublic + + + + + Chad + + + + + Chile + + + + + China + + + + + Colombia + + + + + Comoros + + + + + PeoplesRepublicOfCongo + + + + + CookIslands + + + + + CostaRica + + + + + IvoryCoast + + + + + Croatia + + + + + Cuba + + + + + Cyprus + + + + + CzechRepublic + + + + + Denmark + + + + + Djibouti + + + + + Dominica + + + + + DominicanRepublic + + + + + Ecuador + + + + + Egypt + + + + + ElSalvador + + + + + EquatorialGuinea + + + + + Eritrea + + + + + Estonia + + + + + Ethiopia + + + + + FalklandIslands + + + + + FaroeIslands + + + + + Fiji + + + + + Finland + + + + + France + + + + + FrenchGuiana + + + + + FrenchPolynesia + + + + + Gabon + + + + + Gambia + + + + + Georgia + + + + + Germany + + + + + Ghana + + + + + Gibraltar + + + + + Greece + + + + + Greenland + + + + + Grenada + + + + + Guadeloupe + + + + + Guam + + + + + Guatemala + + + + + Guinea + + + + + GuineaBissau + + + + + Guyana + + + + + Haiti + + + + + Honduras + + + + + DemocraticRepublicOfCongo + + + + + HongKong + + + + + Hungary + + + + + Iceland + + + + + India + + + + + Indonesia + + + + + Iran + + + + + Iraq + + + + + Ireland + + + + + Israel + + + + + Italy + + + + + Jamaica + + + + + Japan + + + + + Jordan + + + + + Kazakhstan + + + + + Kenya + + + + + Kiribati + + + + + DemocraticRepublicOfKorea + + + + + RepublicOfKorea + + + + + Kuwait + + + + + Kyrgyzstan + + + + + Laos + + + + + Latvia + + + + + Lebanon + + + + + Lesotho + + + + + Liberia + + + + + Libya + + + + + Liechtenstein + + + + + Lithuania + + + + + Luxembourg + + + + + Macau + + + + + Macedonia + + + + + Madagascar + + + + + Malawi + + + + + Malaysia + + + + + Maldives + + + + + Mali + + + + + Malta + + + + + MarshallIslands + + + + + Martinique + + + + + Mauritania + + + + + Mauritius + + + + + Mayotte + + + + + Mexico + + + + + Micronesia + + + + + Moldova + + + + + Monaco + + + + + Mongolia + + + + + Montenegro + + + + + Montserrat + + + + + Morocco + + + + + Mozambique + + + + + Myanmar + + + + + Namibia + + + + + NauruCountry + + + + + Nepal + + + + + Netherlands + + + + + NewCaledonia + + + + + NewZealand + + + + + Nicaragua + + + + + Niger + + + + + Nigeria + + + + + Niue + + + + + NorfolkIsland + + + + + NorthernMarianaIslands + + + + + Norway + + + + + Oman + + + + + Pakistan + + + + + Palau + + + + + PalestinianTerritories + + + + + Panama + + + + + PapuaNewGuinea + + + + + Paraguay + + + + + Peru + + + + + Philippines + + + + + Poland + + + + + Portugal + + + + + PuertoRico + + + + + Qatar + + + + + Reunion + + + + + Romania + + + + + RussianFederation + + + + + Rwanda + + + + + SaintHelena + + + + + SaintKittsAndNevis + + + + + SaintLucia + + + + + SaintPierreAndMiquelon + + + + + SaintVincentAndTheGrenadines + + + + + Samoa + + + + + SanMarino + + + + + SaoTomeAndPrincipe + + + + + SaudiArabia + + + + + Senegal + + + + + Serbia + + + + + Seychelles + + + + + SierraLeone + + + + + Singapore + + + + + Slovakia + + + + + Slovenia + + + + + SolomonIslands + + + + + Somalia + + + + + SouthAfrica + + + + + Spain + + + + + SriLanka + + + + + Sudan + + + + + Suriname + + + + + Swaziland + + + + + Sweden + + + + + Switzerland + + + + + Syria + + + + + Taiwan + + + + + Tajikistan + + + + + Tanzania + + + + + Thailand + + + + + Togo + + + + + Tokelau + + + + + Tonga + + + + + TrinidadAndTobago + + + + + Tunisia + + + + + Turkey + + + + + Turkmenistan + + + + + TurksAndCaicosIslands + + + + + Tuvalu + + + + + Uganda + + + + + Ukraine + + + + + UnitedArabEmirates + + + + + UnitedKingdom + + + + + UnitedStates + + + + + Uruguay + + + + + Uzbekistan + + + + + Vanuatu + + + + + Venezuela + + + + + Vietnam + + + + + WallisAndFutunaIslands + + + + + Yemen + + + + + Zambia + + + + + Zimbabwe + + + + + utils + + + formatYears + '%1 year' + + + + + + + + formatMonths + '%1 month' + + + + + + + + formatWeeks + '%1 week' + + + + + + + + formatDays + '%1 day' + + + + + + + + formatHours + '%1 hour' + + + + + + + + formatMinutes + '%1 minute' + + + + + + + + formatSeconds + '%1 second' + + + + + + + + codec_install + "Installation de codec" + + + + + download_codec + "Télécharger le codec %1 (%2) ?" + + + + + information_popup_success_title + "Succès" + + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + + + + + + + information_popup_error_title + + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + + + + + okButton + + + + diff --git a/Linphone/data/languages/eu.ts b/Linphone/data/languages/eu.ts new file mode 100644 index 000000000..ece0dfa03 --- /dev/null +++ b/Linphone/data/languages/eu.ts @@ -0,0 +1,7437 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + + + + + save + "Enregistrer" + Gorde + + + + save_settings_accessible_name + Save %1 settings + Gorde %1 ezarpenak + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + Aukeratu SIP zenbakia edo helbidea + + + + fps_counter + %1 FPS + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + Konektatuta + + + + drawer_menu_account_connection_status_refreshing + Freskatzen… + + + + drawer_menu_account_connection_status_progress + Konektatzen… + + + + drawer_menu_account_connection_status_failed + Errorea + + + + drawer_menu_account_connection_status_cleared + Desgaituta + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + Online eta eskuragarri zaude. + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + Konexio errorea, konprobatu zure ezarpenak. + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + Kontua desgaituta, ez dituzu dei edo mezuak jasoko. + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + Errorea gailak lortzerakoan + + + + AccountListView + + + add_an_account + Add an account + Gehitu kontua + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + Kontua iada konektatuta dago + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + Ezin izan da proxy helbidea sortu. Mesedez egiaztatu domeinu izena. + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + Ezin izan da `%1` helbidea konfiguratu. + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + Ezin izan dira kontuko ezarpenak konfiguratu. + + + + assistant_account_login_forbidden_error + "Username and password do not match" + Erabiltzaile eta pasahitza ez datoz bat + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + Errorea konektatzerakoan + + + + assistant_account_add_error + "Unable to add account." + Ezin izan da kontua gehitu. + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + Ezin da ahots-postontziaren zerbitzariaren helbidea ezarri, huts egin du %1 (e)tik helbidea sortzean + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + Ezin da zerbitzariaren helbidea ezarri, huts egin du %1(e)tik helbidea sortzean + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + Ezin da irteerako proxy uri-a ezarri, huts egin du %1 (e)tik helbidea sortzean + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + Ezin da elkarrizketa-zerbitzariaren helbidea ezarri, huts egin du %1 (e)tik helbidea sortzean + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + Ezin da bilera-zerbitzariaren helbidea ezarri, huts egin du %1 (e)tik helbidea sortzean + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + Ezin da ahots-postontziaren helbidea ezarri, huts egin du %1 (e)tik helbidea sortzean + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + Xehetasunak + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + Editatu zure kontuko informazioa. + + + + manage_account_devices_title + "Vos appareils" + Zure gailuak + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + Zure kontura lotutako gailu zerrenda. Erabiltzen ez dituzun gailuak ezabatu ditzakezu. + + + + manage_account_add_picture + "Ajouter une image" + Gehitu irudia + + + + manage_account_edit_picture + "Modifier l'image" + Editatu irudia + + + + manage_account_remove_picture + "Supprimer l'image" + Ezabatu irudia + + + + sip_address + SIP helbidea + + + + sip_address_display_name + "Nom d'affichage + Erakusteko izena + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + Trukeetan zure kontaktuei erakutsiko zaien izena. + + + + manage_account_international_prefix + Indicatif international* + Kode internazionala* + + + + manage_account_delete + "Déconnecter mon compte" + Deskonektatu nire kontua + + + + manage_account_delete_message + Zure kontua Linphone bezero honetatik kenduko da, baina beste bezero batzuekin konektatuta jarraituko duzu + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + Deskonektatu kontua? + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + Zure kontua betiko ezabatu nahi baduzu, jo hona: https://sip.linphone.org + + + + error + Erreur + Errorea + + + + manage_account_device_remove + "Supprimer" + Ezabatu + + + + manage_account_device_remove_confirm_dialog + Ezabatu %1? + + + + manage_account_device_last_connection + "Dernière connexion:" + Azken konexioa: + + + + device_last_updated_time_no_info + "No information" + Ez dago informaziorik + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + Nire kontua + + + + settings_general_title + "Général" + Orokorra + + + + settings_account_title + "Paramètres de compte" + Kontuaren ezarpenak + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + Gorde gabeko aldaketak + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + Gorde gabeko aldaketak dituzu. Orrialde honetatik irteten bazara, egindako aldaketak galdu egingo dira. Aldaketak gorde nahi dituzu jarraitu aurretik? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + Ez gorde + + + + contact_editor_dialog_abort_confirmation_save + Gorde + + + + AccountSettingsParametersLayout + + + settings_title + Ezarpenak + + + + settings_account_title + Kontuaren ezarpenak + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_error_title + Errorea + + + + information_popup_success_title + Ondo joan da + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + Aldaketak gordeta + + + + information_popup_error_title + Errorea + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + Ahots-postontziaren zerbitzariaren URIa + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + Ahots-postontziaren URIa + + + + account_settings_transport_title + "Transport" + Garraiatu + + + + account_settings_registrar_uri_title + Erregistratu URIa + + + + account_settings_sip_proxy_url_title + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + Eremu hau betetzen bada, irteerako proxya automatikoki aktibatuko da. Utzi hutsik desaktibatzeko. + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + STUN zerbitzariaren helbidea + + + + account_settings_enable_ice_title + "Activer ICE" + Aktibatu ICE + + + + account_settings_avpf_title + "AVPF" + AVPF + + + + account_settings_bundle_mode_title + "Mode bundle" + Bundle modua + + + + account_settings_expire_title + "Expiration (en seconde)" + Iraungipena (segundotan) + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + Konferentzia fabrikako URIa + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + Bideo-konferentzia fabrikako URI + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + Lime zerbitzariko URLa + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + Bilatu kontaktuak + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + Partaide %1 aukeratuta + %1 partaide aukeratuta + + + + + remove_participant_accessible_name + Remove participant %1 + Ezabatu %1 partaidea + + + + list_filter_no_result_found + "Aucun contact" + Ez da emaitzarik aurkitu… + + + + contact_list_empty + Ez dago kontakturik momentuz + + + + AdvancedSettingsLayout + + + settings_system_title + System + Sistema + + + + settings_remote_provisioning_title + Remote provisioning + Urruneko hornikuntza + + + + settings_security_title + Security / Encryption + Segurtasuna / Enkriptazioa + + + + settings_advanced_audio_codecs_title + Audio codecs + Audio kodekak + + + + settings_advanced_video_codecs_title + Video codecs + Bideo kodekak + + + + settings_advanced_auto_start_title + Auto start %1 + Hasi automatikoki %1 + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + Urruneko hornikuntzaren URLa + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + Deskargatu eta aplikatu + + + + information_popup_error_title + Invalid URL format + Errorea + + + + settings_advanced_invalid_url_message + Url formatu baliogabea + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + Deskargatu eta aplikatu urruneko hornikuntza + + + + + settings_advanced_media_encryption_title + Media encryption + Media zifratzea + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + Nahitaezko multimedia enkriptazioa + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + Sortu muturretik muturrerako enkriptatutako bilerak eta talde-deiak + + + + settings_advanced_hide_fps_title + Ezkutatu FPS + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + Gogokoak + + + + generic_address_picker_contacts_list_title + 'Contacts' + Kontaktuak + + + + generic_address_picker_suggestions_list_title + "Suggestions" + Proposamenak + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + Helbide honetatik urruneko hornidura deskargatu eta aplikatu nahi duzu? + + + + + info_popup_error_title + Error + Errorea + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + Urruneko hornidurak huts egin du: %1 + + + + configuration_error_detail + not reachable + ez dago eskuragarri + + + + application_description + "A free and open source SIP video-phone." + Doako eta kode irekiko SIP bideo-telefono bat. + + + + command_line_arg_order + "Send an order to the application towards a command line" + Bidali eskaera bat aplikaziora komando-lerro bidez + + + + command_line_option_show_help + Erakutsi laguntza hau + + + + command_line_option_show_app_version + Erakutsi app bertsioa + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + Zehaztu zein linephone konfigurazio-fitxategi eskuratu nahi duzun. Uneko konfigurazioarekin bateratuko da. + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + URL, path edo fitxategia + + + + command_line_option_minimized + Txikitu + + + + command_line_option_log_to_stdout + Exekutatzen ari den bitartean, arazketa-informazio batzuk irteera estandarrean erregistratu + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + Inprimatu soilik aplikazioko log-ak + + + + hide_action + "Cacher" "Afficher" + Ezkutatu + + + + show_action + Erakutsi + + + + quit_action + "Quitter" + Itxi + + + + mark_all_read_action + Markatu denak irakurrita bezala + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + Autentikatzea beharrezkoa + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + %1 kontuaren saioa hasteak huts egin du. Pasahitza berriro sartu edo kontuaren ezarpenak egiaztatu ditzakezu. + + + + password + Pasahitza + + + + cancel + "Annuler + Utzi + + + + assistant_account_login + Connexion + Konexioa + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + Mesedez idatzi pasahitza + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + Grabazioa bukatuta + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + Grabazioa %1 fitxategian gorde da + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + Kodeka: %1 / %2 kHz + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + Banda zabalera: %1 %2 kbits/s %3 %4 kbits/s + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + Galera tasa: %1% %2% + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + Jitter buffer: %1 ms + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + Bideo bereizmena: %1 %2 %3 %4 + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + FPS : %1 %2 %3 %4 + + + + media_encryption_dtls + DTLS + DTLS + + + + media_encryption_none + None + None + + + + media_encryption_srtp + SRTP + SRTP + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + ZRTP Post quantum-a + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + Deiak desbideratzea + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + + + + + settings_call_forward_destination_choose + Forward to destination + + + + + + + settings_call_forward_to_voicemail + + + + + settings_call_forward_to_sipaddress + + + + + settings_call_forward_sipaddress_title + SIP Address + + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + + + + + settings_call_forward_address_timeout + + + + + settings_call_forward_address_progress_disabling + + + + + settings_call_forward_address_progress_enabling + + + + + settings_call_forward_activation_success + + + + + settings_call_forward_deactivation_success + + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + Batu bilerara + + + + contact_call_action + "Appel" + Deitu + + + + contact_message_action + "Message" + Mezua + + + + contact_video_call_action + "Appel Video" + Bideo deia + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + Bilera utzi duzu + + + + call_ended_by_user + "Vous avez terminé l'appel" + Deia moztu duzu + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + Deitzaileak deia amaitu du + + + + conference_call_empty + "En attente d'autres participants…" + Beste partaideen zain… + + + + conference_share_link_title + "Partager le lien" + Partekatu esteka + + + + copied + Kopiatuta + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + Bilerako esteka arbelera kopiatu da + + + + CallList + + + remote_group_call + Remote group call + + + + + local_group_call + + + + + info_popup_error_title + Errorea + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + + + + + CallListView + + + meeting + "Réunion + Bilera + + + + call + "Appel" + Deitu + + + + paused_call_or_meeting + "%1 en pause" + %1 pausatua + + + + ongoing_call_or_meeting + "%1 en cours" + Martxan %1 + + + + transfer_call_name_accessible_name + Transfer call %1 + + + + + resume_call_name_accessible_name + Resume %1 call + + + + + pause_call_name_accessible_name + Pause %1 call + + + + + end_call_name_accessible_name + End %1 call + + + + + CallModel + + + call_error_no_response_toast + "No response" + + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + + + + + call_error_not_answered_toast + "Request timeout" + + + + + call_error_user_declined_toast + "User declined the call" + Erabiltzaileak deia ukatu du + + + + call_error_user_not_found_toast + "User was not found" + Erabiltzailea ez da aurkitu + + + + call_error_user_busy_toast + "User is busy" + Erabiltzailea okupatuta dago + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + Erabiltzaileak ezin du zure deia jaso + + + + call_error_io_error_toast + "Unavailable service or network error" + Zerbitzuz kanpo edo sareko errorea + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + + + + + call_error_server_timeout_toast + "Server tiemout" + Zerbitzariaren denbora-muga + + + + CallPage + + + call_forward_to_address_info + + + + + call_forward_to_address_info_voicemail + + + + + history_call_start_title + "Nouvel appel" + Dei berria + + + + call_history_empty_title + "Historique d'appel vide" + Hustu deien historiala + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + Ezabatu deien historiala? + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + Deien historiala betiko ezabatuko da. + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + Ezabatu deien historiala? + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + Erabiltzaile honekin egindako deien historia betirako ezabatuko da. + + + + call_history_call_list_title + "Appels" + Deiak + + + + call_history_options_accessible_name + + + + + + menu_delete_history + "Supprimer l'historique" + Ezabatu historiala + + + + call_history_list_options_accessible_name + Call history options + + + + + create_new_call_accessible_name + Create new call + + + + + call_search_in_history + "Rechercher un appel" + Bilatu deia + + + + list_filter_no_result_found + "Aucun résultat…" + Ez da emaitzarik aurkitu… + + + + history_list_empty_history + "Aucun appel dans votre historique" + Ez dago deirik historialean + + + + return_to_call_history_accessible_name + Return to call history + + + + + call_action_start_new_call + "Nouvel appel" + Dei berria + + + + call_start_group_call_title + "Appel de groupe" + Talde deia + + + + call_action_start_group_call + "Lancer" + Hasi + + + + + + information_popup_error_title + Errorea + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + Izen bat eman behar da deirako + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + Ez zaude konektatuta + + + + menu_see_existing_contact + "Show contact" + Erakutsi kontaktua + + + + menu_add_address_to_contacts + "Add to contacts" + Gehitu kontaktuetara + + + + menu_copy_sip_address + "Copier l'adresse SIP" + Kopiatu SIP helbidea + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + SIP helbidea kopiatuta + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + Helbidea arbelera kopiatu da + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + Errorea helbidea kopiatzerakoan + + + + notification_missed_call_title + "Appel manqué" + Dei galdua + + + + call_outgoing + "Appel sortant" + Irteerako deia + + + + call_audio_incoming + "Appel entrant" + Sarrerako deia + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + Gailuak + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + Audio irteera, mikrofono eta kamera gailuak alda ditzakezu. + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + Echo ezabatzailea + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + Beste pertsonak echo-a entzutea saihesten du + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + Gaitu dei grabatze automatikoa + + + + settings_call_enable_tones_title + Tonalités + Tonuak + + + + settings_call_enable_tones_subtitle + Activer les tonalités + Gaitu tonuak + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + Gaitu bideoa + + + + settings_calls_command_line_title + Command line + + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + + + + + settings_calls_current_ringtone_filename + Current ringtone : + + + + + choose_ringtone_file_accessible_name + Choose ringtone file + + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + + + + + CallStatistics + + + call_stats_audio_title + "Audio" + Audioa + + + + call_stats_video_title + "Vidéo" + Bideoa + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + Transferentzia egiten ari da; itxaron, mesedez + + + + + information_popup_error_title + Errorea + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + Transferentziak huts egin du + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + Bilera URI errore baten ondorioz hasi daiteke. + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + Bukatu momentuko dei guztiak? + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + Leihoa ixtera zoaz. Honek dei guztiak moztuko ditu. + + + + call_can_be_trusted_toast + "Appareil authentifié" + Gailu fidagarria + + + + call_dir + %1 deia + + + + call_ended + Appel terminé + Deia bukatuta + + + + conference_paused + Meeting paused + Bilera pausatua + + + + call_paused + Call paused + Deia pausatua + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + Puntutik punturako dei zifratua + + + + call_zrtp_sas_validation_required + Vérification nécessaire + Baliozkotzea beharrezkoa da + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + Puntutik puntura enkriptatutako deia + + + + call_not_encrypted + "Appel non chiffré" + Zifratu gabeko deia + + + + + call_waiting_for_encryption_info + Waiting for encryption + Enkriptatzeko zain + + + + call_paused_by_remote + Call paused by remote + Beste aldeak pausatutako deia + + + + conference_user_is_recording + "You are recording the meeting" + Bilera grabatzen ari zara + + + + call_user_is_recording + "You are recording the call" + Deia grabatzen ari zara + + + + conference_remote_is_recording + "Someone is recording the meeting" + Norbait bilera grabatzen ari da + + + + call_remote_recording + "%1 is recording the call" + %1 deia grabatzen ari da + + + + call_stop_recording + "Stop recording" + Gelditu grabazioa + + + + add + Gehitu + + + + call_transfer_current_call_title + "Transférer %1 à…" + Transferitu %1… + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + Berretsi transferentzia + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + %1-tik %2-ra transferitzera zoaz. + + + + call_action_start_new_call + "Nouvel appel" + Dei berria + + + + + call_action_show_dialer + "Pavé numérique" + Zenbakizko teklatua + + + + call_action_change_layout + "Modifier la disposition" + Aldatu diseinua + + + + call_action_go_to_calls_list + "Liste d'appel" + Dei zerrenda + + + + Merger tous les appels + call_action_merge_calls + Batu dei guztiak + + + + + call_action_go_to_settings + "Paramètres" + Ezarpenak + + + + conference_action_screen_sharing + "Partage de votre écran" + Partekatu zure pantaila + + + + conference_share_link_title + Partager le lien de la réunion + Partekatu bileraren esteka + + + + copied + Copié + Kopiatuta + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + Bilerako esteka arbelera kopiatu da + + + + + + conference_participants_list_title + "Participants (%1)" + Partaideak (%1) + + + + + group_call_participant_selected + + + + + + + + meeting_schedule_add_participants_title + Gehitu partaideak + + + + call_encryption_title + Chiffrement + Enkriptatzea + + + + open_statistic_panel_accessible_name + + + + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + Gelditu + + + + stop_recording_accessible_name + Stop recording + Gelditu grabazioa + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + + + + + call_stats_title + Statistiques + Estatistikak + + + + + call_action_end_call + "Terminer l'appel" + Bukatu deia + + + + + call_action_resume_call + "Reprendre l'appel" + Itzuli deira + + + + + call_action_pause_call + "Mettre l'appel en pause" + Pausatu deia + + + + + call_action_transfer_call + "Transférer l'appel" + Transferitu deia + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + Hasi dei berria + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + Ikusi dei zerrenda + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + Itzali bideoa + + + + + call_activate_video_hint + Gaitu bideoa + + + + + call_activate_microphone + "Activer le micro" + Aktibatu mikrofonoa + + + + + call_deactivate_microphone + "Désactiver le micro" + Isildu mikrofonoa + + + + + call_share_screen_hint + Partager l'écran… + Partekatu pantaila… + + + + + call_open_chat_hint + Open chat… + + + + + + call_rise_hand_hint + "Lever la main" + Jaso eskua + + + + + call_send_reaction_hint + "Envoyer une réaction" + Bidali erreakzioa + + + + + call_manage_participants_hint + "Gérer les participants" + Kudeatu partaideak + + + + + call_more_options_hint + "Plus d'options…" + Aukera gehiago… + + + + call_action_change_conference_layout + "Modifier la disposition" + Aldatu diseinua + + + + call_action_full_screen + "Mode Plein écran" + Pantaila osoko modua + + + + call_action_stop_recording + "Terminer l'enregistrement" + Bukatu grabazioa + + + + call_action_record + "Enregistrer l'appel" + Grabatu deia + + + + call_activate_speaker_hint + "Activer le son" + Aktibatu hizlaria + + + + call_deactivate_speaker_hint + "Désactiver le son" + Isilarazi hizlaria + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + CardDAV helbide-liburua + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + Gehitu CardDAV helbide-liburua zure Linphone kontaktuak hirugarrenen helbide-liburu batekin sinkronizatzeko. + + + + information_popup_error_title + Errorea + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + Ziurtatu informazio guztia sartuta dagoela. + + + + information_popup_synchronization_success_title + Ondo joan da + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + CardDAV helbide-liburua sinkronizatuta dago. + + + + settings_contacts_carddav_popup_synchronization_error_title + Errorea + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + Sinkronizazio-errorea! + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + Ezabatu CardDAV helbide-liburua? + + + + sip_address_display_name + Nom d'affichage + Erakusteko izena + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + Zerbitzariko URLa + + + + username + Erabiltzaile izena + + + + password + Pasahitza + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + Autentifikazioaren eremua + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + Gorde hemen berriki sortutako kontaktuak + + + + ChangeLayoutForm + + + conference_layout_grid + Sareta + + + + conference_layout_active_speaker + Hizlari aktiboa + + + + conference_layout_audio_only + Audioa soilik + + + + ChatAudioContent + + + + information_popup_error_title + Error + Errorea + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + + + + + ChatCore + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message_history + Message history has been deleted + + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + + + + + chat_message_draft_sending_text + + + + + chat_room_delete + "Delete" + Ezabatu + + + + chat_room_mute + + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + + + + + chat_room_leave + "leave" + + + + + chat_list_leave_chat_popup_title + leave the conversation ? + + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + + + + + chat_message_copy + "Copy" + + + + + chat_message_copied_to_clipboard_title + Copied + Kopiatuta + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + + + + + chat_message_remote_replied + %1 replied + + + + + chat_message_forwarded + Forwarded + + + + + chat_message_remote_replied_to + %1 replied to %2 + + + + + chat_message_user_replied_to + You replied to %1 + + + + + chat_message_user_replied + You replied + + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + + + + + chat_message_forward + Forward + + + + + chat_message_delete + "Delete" + Ezabatu + + + + ChatMessageContentCore + + + popup_error_title + Error + Errorea + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + + + + + info_popup_error_titile + Errorea + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + + + + + popup_error_path_does_not_exist_message + File was not found: %1 + + + + + popup_error_nb_files_not_found_message + + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + + + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + + + + + popup_error_unsupported_files_message + + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + + + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message + The message has been deleted + + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + + + + + ics_bubble_meeting_to + + + + + ics_bubble_meeting_modified + Meeting has been updated + + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + + + + + + + + + + ics_bubble_description_title + Description + + + + + ics_bubble_join + "Rejoindre" + Batu + + + + ics_bubble_participants + %n participant(s) + + + + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + + + + + info_popup_no_result_message + No result found + + + + + info_popup_first_result_message + First result reached + + + + + info_popup_last_result_message + Last result reached + + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + + + + + chat_message_is_writing_info + %1 is writing… + + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + + + + + chat_empty_title + "Aucune conversation" + + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + + + + + chat_list_title + "Conversations" + Elkarrizketak + + + + menu_mark_all_as_read + "mark all as read" + + + + + chat_search_in_history + "Rechercher une conversation" + + + + + list_filter_no_result_found + "Aucun résultat…" + Ez dago emaitzarik… + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + + + + + chat_action_start_new_chat + "New chat" + + + + + chat_start_group_chat_title + "Nouveau groupe" + + + + + chat_action_start_group_chat + "Créer" + Sortu + + + + + + information_popup_error_title + Errorea + + + + information_popup_chat_creation_failed_message + "La création a échoué" + + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + Ez zaude konektatuta + + + + chat_creation_in_progress + Creation de la conversation en cours … + + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + + + + + CliModel + + + show_function_description + Erakutsi + + + + fetch_config_function_description + Eskuratu konfigurazioa + + + + call_function_description + Deitu + + + + bye_function_description + Eskegi + + + + accept_function_description + Onartu + + + + decline_function_description + Ukatu + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + Errorea + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + Zure kontua deskonektatuta dago + + + + Contact + + + information_popup_error_title + Erreur + Errorea + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + Ahots-postontziaren URIa ez dago definituta. + + + + account_settings_name_accessible_name + Account settings of %1 + + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + Editatu kontaktua + + + + save + "Enregistrer + Gorde + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + Aldaketak baztertuko dira. Aurrera egin nahi duzu? + + + + close_accessible_name + Close %1 + + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + Mesedez, idatzi SIP helbidea edo telefono zenbakia + + + + contact_editor_add_image_label + "Ajouter une image" + Gehitu irudia + + + + contact_details_edit + "Modifier" + Editatu + + + + edit_contact_image_accessible_name + "Edit contact image" + + + + + contact_details_delete + "Supprimer" + Ezabatu + + + + delete_contact_image_accessible_name + "Delete contact image" + + + + + + contact_editor_first_name + "Prénom" + Izena + + + + + contact_editor_last_name + "Nom" + Abizena + + + + + contact_editor_company + "Entreprise" + Enpresa + + + + + contact_editor_job_title + "Fonction" + Lanpostua + + + + + sip_address + SIP helbidea + + + + sip_address_number_accessible_name + "SIP address number %1" + + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + + + + + new_sip_address_accessible_name + "New SIP address" + + + + + phone_number_number_accessible_name + "Phone number number %1" + + + + + remove_phone_number_accessible_name + Remove phone number %1 + + + + + new_phone_number_accessible_name + "New phone number" + + + + + + phone + "Téléphone" + Telefonoa + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + Ezabatu gogokoetatik + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + Gehitu gogokoetara + + + + Partager + Partekatu + + + + information_popup_error_title + Errorea + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + VCard sortzeak huts egin du + + + + information_popup_vcard_creation_title + VCard créée + VCard sortuta + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + VCard ondo gorde da %1 + + + + contact_sharing_email_title + Partage de contact + Partekatu kontaktua + + + + contact_details_delete + "Supprimer" + Ezabatu + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + + + + + expand_accessible_name + Expand %1 + + + + + ContactPage + + + contacts_add + "Ajouter un contact" + Gehitu kontaktua + + + + contacts_list_empty + "Aucun contact pour le moment" + Momentu honetan ez dago kontakturik + + + + contact_new_title + "Nouveau contact" + Kontaktu berria + + + + create + Sortu + + + + contact_edit_title + "Modifier contact" + Editatu kontaktua + + + + save + Gorde + + + + contact_dialog_delete_title + Supprimer %1 ?" + Ezabatu %1? + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + Kontaktu hau betiko ezabatuko da. + + + + contact_deleted_toast + "Contact supprimé" + Kontaktua ezabatuta + + + + contact_deleted_message + "%1 a été supprimé" + %1 ezabatu egin da + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + Konfiantza-maila handitu + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + Konfiantza-maila handitzeko, zure kontaktuaren gailuetara deitu eta kode bat baliozkotu behar duzu.<br><br>"% 1" deitzear zaude, jarraitu nahi duzu? + + + + popup_do_not_show_again + Ne plus afficher + Ez erakutsi berriz + + + + cancel + Utzi + + + + dialog_call + "Appeler" + Deitu + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + Konfiantza maila + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + Egiaztatu zure kontaktuaren gailuak zuen arteko komunikazioak seguruak eta konpromisorik gabekoak izango direla baieztatzeko. Guztiak egiaztatzean, konfiantza maila handiena lortuko duzu. + + + + dialog_ok + "Ok" + Ok + + + + bottom_navigation_contacts_label + "Contacts" + Kontaktuak + + + + search_bar_look_for_contact_text + Rechercher un contact + Bilatu kontaktua + + + + list_filter_no_result_found + Aucun résultat… + Ez dago emaitzarik… + + + + contact_list_empty + Aucun contact pour le moment + Momentu honetan ez dago kontakturik + + + + expand_accessible_name + Expand %1 + + + + + shrink_accessible_name + Shrink %1 + + + + + create_contact_accessible_name + Create new contact + + + + + more_info_accessible_name + More info %1 + + + + + + contact_details_edit + Edit +---------- +"Éditer" + Editatu + + + + contact_call_action + "Appel" + Deitu + + + + contact_message_action + "Message" + Mezua + + + + contact_video_call_action + "Appel vidéo" + Bideo deia + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + Kontaktuaren xehetasunak + + + + call_adress_accessible_name + Call address %1 + + + + + contact_details_company_name + "Société :" + Enpresa: + + + + contact_details_job_title + "Poste :" + Lanpostua: + + + + contact_details_medias_title + "Medias" + Multimedia + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + Erakutsi partekatutako media + + + + contact_details_trust_title + "Confiance" + Konfiatu + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + Konfiantza maila - Egiaztatutako gailuak + + + + contact_details_no_device_found + "Aucun appareil" + Ez dago gailurik + + + + contact_device_without_name + "Appareil inconnu" + Gailu ezezaguna + + + + contact_make_call_check_device_trust + "Vérifier" + Egiaztatu + + + + verify_device_accessible_name + Verify %1 device + + + + + contact_details_actions_title + "Autres actions" + Beste ekintza batzuk + + + + contact_details_remove_from_favourites + "Retirer des favoris" + Ezabatu gogokoetatik + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + Gehitu gogokoetara + + + + contact_details_share + "Partager" + Partekatu + + + + information_popup_error_title + Errorea + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + VCard sortzeak huts egin du + + + + contact_details_share_success_title + "VCard créée" + VCard sortuta + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + VCard ondo gorde da %1 + + + + contact_details_share_email_title + "Partage de contact" + Partekatu kontaktua + + + + contact_details_delete + "Supprimer ce contact" + Ezabatu kontaktua + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + LDAP zerbitzariak + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + Gehitu zure LDAP zerbitzariak bilaketa magikoaren barran bilatu ahal izateko. + + + + settings_contacts_carddav_title + CardDAV helbide-liburua + + + + settings_contacts_carddav_subtitle + Gehitu CardDAV helbide-liburua zure Linphone kontaktuak hirugarrenen helbide-liburu batekin sinkronizatzeko. + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + Gehitu LDAP zerbitzaria + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + Editatu LDAP zerbitzaria + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + Gehitu CardDAV helbide-liburua + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + Editatu CardDAV helbide-liburua + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + Ondo joan da + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + Aldaketak gorde dira + + + + add + "Ajouter" + Gehitu + + + + ConversationInfos + + + one_one_infos_call + "Appel" + Deitu + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + + + + + group_infos_participants + Partaideak (%1) + + + + group_infos_media_docs + Medias & documents + + + + + group_infos_shared_medias + Shared medias + + + + + group_infos_shared_docs + Shared documents + + + + + group_infos_other_actions + Other actions + Beste ekintza batzuk + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + + + + + group_infos_leave_room + Leave chat room + + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + group_infos_delete_history + Delete history + Ezabatu historiala + + + + group_infos_delete_history_toast_title + Delete history ? + + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + one_one_infos_open_contact + Show contact + Erakutsi kontaktua + + + + one_one_infos_create_contact + Create contact + + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + Ezabatu historiala + + + + one_one_infos_delete_history_toast_title + Delete history ? + + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + Bilatu kontaktua + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + Arazketa-aztarnak ezabatuko dira. Jarraitu nahi duzu? + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + Arazketa-aztarnak igo dira. Nola partekatu nahi duzu esteka? + + + + settings_debug_clipboard + "Presse-papier" + Arbela + + + + settings_debug_email + "E-Mail" + E-mail + + + + debug_settings_trace + "Traces %1" + %1 aztarnak + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + Email partekatzeak huts egin du. Mesedez, bidali %1 esteka honi: %2. + + + + + information_popup_error_title + Une erreur est survenue. + Errore bat gertatu da. + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + Gaitu arazketa-aztarnak + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + Gaitu log osoak + + + + settings_debug_delete_logs_title + "Supprimer les traces" + Ezabatu arazketa aztarnak + + + + settings_debug_share_logs_title + "Partager les traces" + Partekatu arazketa-aztarnak + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + Aztarnak igotzen… + + + + settings_debug_app_version_title + "Version de l'application" + App bertsioa + + + + settings_debug_sdk_version_title + "Version du SDK" + SDK bertsioa + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + Aztarnak igotzeak huts egin du. Aztarnen fitxategiak zuzenean parteka ditzakezu karpeta honetatik: %1 + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + ezin da hutsik egon + + + + textfield_error_message_unknown_format + "Format non reconnu" + Formatu ezezaguna + + + + Dialog + + + + dialog_confirm + "Confirmer" + Konfirmatu + + + + + dialog_cancel + "Annuler" + Utzi + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + Enkriptatzea: + + + + call_stats_media_encryption + Media encryption : %1 + Media enkriptatzea: %1%2 + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + Enkriptatze algoritmoa: %1 + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + Gako-adostasun algoritmoa: %1 + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + Hash algoritmoa: %1 + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + Autentikazio algoritmoa: %1 + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + SAS algoritmoa: %1 + + + + call_zrtp_validation_button_label + "Validation chiffrement" + Enkriptazioaren balidazioa + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + + + + + one_hour + + + + + one_day + + + + + one_week + + + + + disabled + Desgaituta + + + + custom + + + + + EventLogCore + + + conference_created_event + + + + + conference_created_terminated + + + + + conference_participant_added_event + + + + + conference_participant_removed_event + + + + + conference_participant_set_admin_event + + + + + conference_participant_unset_admin_event + + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + SIP helbidea + + + + + + device_id + "Téléphone" + Telefonoa + + + + information_popup_error_title + Errorea + + + + information_popup_invalid_address_message + "Adresse invalide" + Helbide baliogabea + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + Kudeatu partaideak + + + + group_infos_participant_is_admin + Admin + + + + menu_see_existing_contact + "Show contact" + Erakutsi kontaktua + + + + menu_add_address_to_contacts + "Add to contacts" + Gehitu kontaktuetara + + + + group_infos_give_admin_rights + + + + + group_infos_remove_admin_rights + + + + + group_infos_copy_sip_address + + + + + group_infos_remove_participant + + + + + group_infos_remove_participants_toast_title + + + + + group_infos_remove_participants_toast_message + + + + + GroupCreationFormLayout + + + return_accessible_name + Return + + + + + + group_start_dialog_subject_hint + "Nom du groupe" + Talde izena + + + + required + "Requis" + Derrigorra + + + + HelpPage + + + help_title + "Aide" + Laguntza + + + + + help_about_title + "À propos de %1" + %1-(r)i buruz + + + + help_about_privacy_policy_title + "Règles de confidentialité" + Pribatutasun politika + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + Zer informazio biltzen eta erabiltzen du %1-(e)k + + + + help_about_version_title + "Version" + Bertsioa + + + + help_about_gpl_licence_title + "Licences GPLv3" + GPLv3 lizentziak + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + Lagundu %1 itzultzen + + + + help_troubleshooting_title + "Dépannage" + Arazo konpontzea + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + LDAP zerbitzariak + + + + settings_contacts_ldap_subtitle + Gehitu zure LDAP zerbitzariak bilaketa magikoaren barran bilatu ahal izateko. + + + + information_popup_success_title + Ondo joan da + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + LDAP zerbitzaria gorde da + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + Errore bat gertatu da, LDAP konfigurazioa ez da gorde! + + + + information_popup_error_title + Errorea + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + Ezabatu LDAP zerbitzaria? + + + + delete_ldap_server_accessible_name + Delete LDAP server + + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + Zerbitzariko URLa (ezin da hutsik egon) + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + Lotu DN + + + + settings_contacts_ldap_password_title + "Mot de passe" + Pasahitza + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + Erabili TLS + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + Ikerketa oinarria (ezin da hutsik egon) + + + + settings_contacts_ldap_search_filter_title + "Filtre" + Iragazi + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + Emaitzak gehienez + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + Bi kontsulten arteko atzerapena (milisegundotan) + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + Denbora-muga (segundotan) + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + Kontsultarako gutxieneko karaktere kopurua + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + Izenaren atributuak + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + SIP atributuak + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + SIP domeinua + + + + settings_contacts_ldap_debug_title + "Débogage" + Araztu + + + + LoadingPopup + + + cancel + Utzi + + + + LoginForm + + + + username + Nom d'utilisateur : username + Erabiltzaile izena + + + + + password + Mot de passe + Pasahitza + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + assistant_account_login + "Connexion" + Konexioa + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + Mesedez idatzi erabiltzaile izena + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + Mesedez idatzi pasahitza + + + + assistant_forgotten_password + "Mot de passe oublié ?" + Pasahitza ahaztu duzu? + + + + LoginLayout + + + + help_about_title + À propos de %1 + %1-(r)i buruz + + + + help_about_privacy_policy_title + "Politique de confidentialité" + Pribatutasun politika + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + Bisitatu gure pribatutasun politika + + + + help_about_version_title + "Version" + Bertsioa + + + + help_about_licence_title + "Licence" + Lizentzia + + + + help_about_copyright_title + "Copyright + Copyright + + + + close + "Fermer" + Itxi + + + + LoginPage + + + return_accessible_name + Return + + + + + assistant_account_login + Connexion + Konexioa + + + + assistant_no_account_yet + "Pas encore de compte ?" + Ez daukazu konturik oraindik? + + + + assistant_account_register + "S'inscrire" + Erregistratu + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + Hirugarrenen SIP kontua + + + + assistant_login_remote_provisioning + "Configuration distante" + Urruneko hornikuntza + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + Deskargatu urruneko konfigurazioa + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + Mesedez, sartu hemen eman zaizun konfigurazio-esteka: + + + + cancel + Utzi + + + + validate + "Valider" + Konfirmatu + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + Urruneko hornikuntza-esteka + + + + default_account_connection_state_error_toast + Errorea konektatzerakoan + + + + MagicSearchList + + + device_id + Telefonoa + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + Deiak + + + + open_calls_page_accessible_name + "Open calls page" + + + + + bottom_navigation_contacts_label + "Contacts" + Kontaktuak + + + + open_contacts_page_accessible_name + "Open contacts page" + + + + + bottom_navigation_conversations_label + "Conversations" + Elkarrizketak + + + + open_conversations_page_accessible_name + "Open conversations page" + + + + + bottom_navigation_meetings_label + "Réunions" + Bilerak + + + + open_contact_page_accessible_name + "Open meetings page" + + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + Bilatu kontaktua, deitu %1 + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + edo bidali mezua… + + + + do_not_disturb_accessible_name + "Do not disturb" + Ez molestatu + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + Desgaitu ez molestatzeko modua + + + + information_popup_error_title + Errorea + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + Ahots-postontziaren URIa ez dago definituta. + + + + account_list_accessible_name + "Account list" + + + + + application_options_accessible_name + "Application options" + + + + + drawer_menu_manage_account + Mon compte + Nire kontua + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + Gaitu ez molestatzeko modua + + + + settings_title + Ezarpenak + + + + recordings_title + "Enregistrements" + Grabazioak + + + + help_title + "Aide" + Laguntza + + + + help_quit_title + "Quitter l'application" + Itxi app-a + + + + quit_app_question + "Quitter %1 ?" + Itxi %1? + + + + drawer_menu_add_account + "Ajouter un compte" + Gehitu kontua + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + Ondo konektatuta + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + %1 moduan login eginda zaude + + + + interoperable + interopérable + elkarreragilea + + + + call_transfer_successful_toast_title + "Appel transféré" + Desbideratutako deia + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + Zure korrespontsala hautatutako kontaktuari transferitu zaio + + + + information_popup_success_title + Gordeta + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + Aldaketak gorde dira + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + Mesedez, baliozkotu captcha web orrian + + + + assistant_register_error_title + "Erreur lors de la création" + Errorea sortzerakoan + + + + assistant_register_success_title + "Compte créé" + Kontua sortu da + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + Kontua sortu da. Orain login egin dezakezu. + + + + assistant_register_error_code + "Erreur dans le code de validation" + Errorea baliozkotze kodean + + + + information_popup_error_title + Errorea + + + + ManageParticipants + + + group_infos_manage_participants + + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + Bilera + + + + meeting_schedule_broadcast_label + "Webinar" + Webinar-a + + + + meeting_schedule_subject_hint + "Ajouter un titre" + Gehitu izenburua + + + + meeting_schedule_description_hint + "Ajouter une description" + Gehitu deskribapena + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + Gehitu partaideak + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + Bidali gonbidapena parte-hartzaileei + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + Bilera bertan behera utzi da + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + Ez dago bilerarik gaur + + + + meeting_info_delete + "Supprimer la réunion" + Ezabatu bilera + + + + MeetingPage + + + meetings_add + "Créer une réunion" + Sortu bilera + + + + meetings_list_empty + "Aucune réunion" + Ez dago bilerarik + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + Bilera hau bertan behera utzi eta ezabatu nahi duzu? + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + Bilera hau ezabatu nahi duzu? + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + Utzi bertan behera eta ezabatu + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + Soilik ezabatu + + + + meeting_schedule_delete_action + "Supprimer" + Ezabatu + + + + back_action + Retour + Atzera + + + + meetings_list_title + Réunions + Bilerak + + + + meetings_search_hint + "Rechercher une réunion" + Bilatu bilera + + + + list_filter_no_result_found + "Aucun résultat…" + Ez dago emaitzarik… + + + + meetings_empty_list + "Aucune réunion" + Ez dago bilerarik + + + + + meeting_schedule_title + "Nouvelle réunion" + Bilera berria + + + + create + Sortu + + + + + + + + + information_popup_error_title + Errorea + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + Mesedez, bete izenburua eta hautatu gutxienez parte-hartzaile bat + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + Konferentziaren amaiera hasiera baino berriago izan behar da + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + Sorkuntza martxan… + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + Bilera behar bezala sortu da + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + Bilera sortzeak huts egin du! + + + + save + Gorde + + + + + saved + "Enregistré" + Gordeta + + + + meeting_info_updated_toast + "Réunion mise à jour" + Bilera eguneratuta + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + Bileraren eguneraketa martxan… + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + Bilera eguneratzeak huts egin du! + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + Gehitu partaideak + + + + meeting_schedule_add_participants_apply + + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + + + + + + + meeting_info_delete + "Supprimer la réunion" + Ezabatu bilera + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + Bileraren URIa kopiatu da + + + + meeting_schedule_timezone_title + "Fuseau horaire" + Timezone-a + + + + meeting_info_organizer_label + "Organisateur" + Antolatzailea + + + + meeting_info_join_title + "Rejoindre la réunion" + Batu bilerara + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + Erakutsi + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + Defektuzko bistaratze modua + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + Nola agertzen diren parte-hartzaileak bileretan + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + + + + + click_to_delete_reaction_info + Click to delete + + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + + + + + no_shared_documents + No document + + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + Dei tonua - Sarrerako deiak + + + + + + + choose_something_accessible_name + Choose %1 + + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + Hizlariak + + + + + device_volume_accessible_name + %1 volume + + + + + + + multimedia_settings_microphone_title + "Microphone" + Mikrofonoa + + + + + multimedia_settings_camera_title + "Caméra" + Kamera + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + Sarea + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + Deia martxan + + + + call_start_group_call_title + Appel de groupe + Talde deia + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + Sarrerako deia + + + + dialog_accept + "Accepter" + Onartu + + + + dialog_deny + "Refuser + Ukatu + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + + + + + new_file_message + + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + + + + + new_message_alert_accessible_name + New message on chatroom %1 + + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + OAuthHttpServerReplyHandler-ek ez du entzuten + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + Timeout: Autentikatu gabe + + + + oidc_authentication_granted_message + Authentication granted + Autentikazioa eginda + + + + oidc_authentication_not_authenticated_message + Not authenticated + Autentifikatu gabea + + + + oidc_authentication_refresh_message + Refreshing token + Token-a freskatzen + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + Aldi baterako kredentzialak jasota + + + + oidc_authentication_network_error + Network error + Sareko errorea + + + + oidc_authentication_server_error + Server error + Zerbitzariko errorea + + + + oidc_authentication_token_not_found_error + OAuth token not found + Ez da OAuth tokena aurkitu + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + Ez da OAuth token secret-a aurkitu + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + OAuth-en atzera-deia ez da egiaztatu + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + Nabigatzaileari baimena eskatzen + + + + oidc_authentication_no_token_found_error + + + + + oidc_authentication_request_token_message + Requesting access token + Sarbide tokena eskatzen + + + + oidc_authentication_refresh_token_message + Refreshing access token + Sarbide tokena eguneratzen + + + + oidc_authentication_request_authorization_message + Requesting authorization + Baimena eskatzen + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + Aldi baterako egiaztagiriak eskatzen + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + Ez da autorizazio endpoint-ik aurkitu OpenID konfigurazioan + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + Ez da token endpointik aurkitu OpenID konfigurazioan + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + Admin + + + + meeting_add_participants_title + "Ajouter des participants" + Gehitu partaideak + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + + + + + number_phone_number_accessible_name + %1 number + + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + + + + + open_popup_panel_accessible_name + "Open %1" popup + + + + + Presence + + + contact_presence_reset_status + + + + + contact_presence_button_set_custom_status + + + + + contact_presence_button_edit_custom_status + Editatu + + + + contact_presence_button_delete_custom_status + Ezabatu + + + + contact_presence_custom_status + + + + + PresenceNoteLayout + + + contact_presence_note_title + + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + + + + + contact_presence_button_save_custom_status + Gorde + + + + QObject + + + media_encryption_dtls + DTLS + + + + media_encryption_none + None + + + + media_encryption_srtp + SRTP + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + ZRTP Post quantum-a + + + + message_state_in_progress + "delivery in progress" + + + + + message_state_delivered + sent + + + + + message_state_not_delivered + error + + + + + message_state_file_transfer_error + cannot get file from server + + + + + message_state_file_transfer_done + file transfer has been completed successfully + + + + + message_state_delivered_to_user + received + + + + + message_state_displayed + read + + + + + message_state_file_transfer__in_progress + file transfer in progress + + + + + message_state_pending_delivery + pending delivery + + + + + message_state_file_transfer_cancelling + file transfer canceled + + + + + incoming + "Entrant" + Sarrerakoa + + + + outgoing + "Sortant" + Kanporakoa + + + + conference_layout_active_speaker + "Participant actif" + Hizlari aktiboa + + + + conference_layout_grid + "Mosaïque" + Sareta + + + + conference_layout_audio_only + "Audio uniquement" + Audioa soilik + + + + RegisterCheckingPage + + + email + "email" + email + + + + phone_number + "numéro de téléphone" + telefono zenbakia + + + + confirm_register_title + "Inscription | Confirmer votre %1" + Erregistratu | Berretsi zure %1 + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + Egiaztatzeko mezua bidali da hona: %1 %2<br> Mesedez, idatzi behean + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + Ez duzu kodea jaso? + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + Berbidali kodea + + + + RegisterPage + + + return_accessible_name + Return + + + + + assistant_account_register + "Inscription + Erregistratu + + + + assistant_already_have_an_account + Baduzu kontua iadanik? + + + + assistant_account_login + Konexioa + + + + assistant_account_register_with_phone_number + Erregistratu telefono zenbakiarekin + + + + assistant_account_register_with_email + Erregistratu emailarekin + + + + + username + Erabiltzaile izena + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + domain + Domeinua + + + + + + phone_number + "Numéro de téléphone" + Telefono zenbakia + + + + + email + Email + + + + + password + Pasahitza + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + Konfirmatu pasahitza + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + %1 eta %2 onartzen ditut + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + erabilera baldintzak + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + pribatutasun politika + + + + assistant_account_create + "Créer" + Sortu + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + Mesedez idatzi erabiltzaile izena + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + Mesedez idatzi pasahitza + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + Pasahitzak ez datoz bat + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + Mesedez idatzi telefono zenbaki bat + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + Mesedez idatzi helbide elektroniko bat + + + + SIPLoginPage + + + return_accessible_name + Return + + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + Hirugarrenen SIP kontua + + + + assistant_no_account_yet + Pas encore de compte ? + Ez daukazu konturik oraindik? + + + + assistant_account_register + S'inscrire + Erregistratu + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + Ezaugarri batzuk, hala nola talde-txatak, bideokonferentziak, etab. %1 kontua eskatzen dute. + +Ezaugarri horiek ezkutatu egingo dira hirugarrenen SIP kontu bat erabiltzen baduzu. + +Proiektu komertzial batean gaitzeko, jarri gurekin harremanetan. + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + Sortu linphone kontua + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + Ulertzen dut + + + + + username + "Nom d'utilisateur" + Erabiltzaile izena + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + password + Pasahitza + + + + + sip_address_domain + "Domaine" + Domeinua + + + + + sip_address_display_name + Nom d'affichage + Erakusteko izena + + + + + transport + "Transport" + Garraiatu + + + + + assistant_account_login + Konexioa + + + + assistant_account_login_missing_username + Mesedez idatzi erabiltzaile izena + + + + assistant_account_login_missing_password + Mesedez idatzi pasahitza + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + Mesedez idatzi domeinu bat + + + + login_advanced_parameters_label + Advanced parameters + Ezarpen aurreratuak + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + Mesedez, aukeratu beste parte-hartzaileekin partekatu nahi duzun pantaila edo leihoa. + + + + screencast_settings_all_screen_label + "Ecran entier" + Pantaila osoa + + + + screencast_settings_one_window_label + "Fenêtre" + Leihoa + + + + screencast_settings_screen + "Ecran %1" + %1 pantaila + + + + stop + "Stop + Gelditu + + + + share + "Partager" + Partekatu + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + Aukeratu zure modua + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + Aurrerago modua aldatu ahal izango duzu. + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + Puntutik punturako enkriptazioa + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + Modu honek zure komunikazio guztien konfidentzialtasuna bermatzen du. Gure end-to-end enkriptazio teknologiak zure komunikazio guztien segurtasun handiena bermatzen du. + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + Elkarreragile + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + Modu honek Linphone-en ezaugarri guztiak baliatzeko aukera ematen dizu, beste edozein SIP zerbitzurekin elkarreragingarria izaten jarraituz. + + + + dialog_continue + "Continuer" + Jarraitu + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + Enkriptatu fitxategi guztiak + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + Adi: behin gaituta ezin da desgaitu! + + + + SelectedChatView + + + chat_view_group_call_toast_message + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + reply_to_label + Reply to %1 + + + + + shared_medias_title + Shared medias + + + + + shared_documents_title + Shared documents + + + + + forward_to_title + Forward to… + + + + + conversations_title + Conversations + Elkarrizketak + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + + + + + SettingsPage + + + settings_title + "Paramètres" + Ezarpenak + + + + settings_calls_title + "Appels" + Deiak + + + + settings_call_forward + "Transfert d'appel" + + + + + settings_conversations_title + "Conversations" + Elkarrizketak + + + + settings_contacts_title + "Contacts" + Kontaktuak + + + + settings_meetings_title + "Réunions" + Bilerak + + + + settings_network_title + "Affichage" "Security" "Réseau" + Sarea + + + + settings_advanced_title + "Paramètres avancés" + Ezarpen aurreratuak + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + Gorde gabeko aldaketak + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + Gorde gabeko aldaketak dituzu. Orrialde honetatik irteten bazara, egindako aldaketak galdu egingo dira. Aldaketak gorde nahi dituzu jarraitu aurretik? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + Ez gorde + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + Gorde + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + batzen… + + + + conference_participant_paused_text + "En pause" + Pausatua + + + + TextField + + + show_accessible_name + Show %1 + + + + + hide_accessible_name + Hide %1 + + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + Deiaren helbidea ez da SIP helbide interpretagarria: %1 + + + + group_call_error_no_account + Ez da defektuzko konturik aurkitu, ezin da talde-deia sortu + + + + group_call_error_participants_invite + Ezin izan dira parte-hartzaileak talde-deialdira gonbidatu + + + + group_call_error_creation + Ezin izan da taldeko deia sortu + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + + + + + unknown_audio_device_name + Gailu izen ezezaguna + + + + conference_invitation + + + + + conference_invitation_cancelled + + + + + conference_invitation_updated + + + + + Utils + + + nSeconds + + + + + + + + nMinute + + + + + + + + chat_message_forward_error + Cannot forward an invalid message + + + + + info_popup_forward_message_error + Could not forward message : %1 + + + + + info_popup_send_forward_message_error_message + Failed to create forward message + + + + + chat_message_reply_error + Cannot reply to invalid message + + + + + info_popup_reply_message_error + Could not send reply message : %1 + + + + + info_popup_send_reply_message_error_message + Failed to create reply message + + + + + nHour + + + + + + + + + nDay + + + + + + + + nWeek + + + + + + + + contact_presence_status_available + + + + + contact_presence_status_busy + Okupatuta + + + + contact_presence_status_do_not_disturb + Ez molestatu + + + + contact_presence_status_offline + Lineaz kanpo + + + + contact_presence_status_away + + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + Ezin izan da deia sortu + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + Errorea + + + + information_popup_group_call_not_created_message + Ezin izan da taldeko deia sortu + + + + number_of_years + %n an(s) + + urte bat + %1 urte + + + + + number_of_month + "%n mois" + + hilabete bat + % hilabete + + + + + number_of_weeks + %n semaine(s) + + aste bat + %1 aste + + + + + number_of_days + %n jour(s) + + egun bat + %1 egun + + + + + today + "Aujourd'hui" + Gaur + + + + yesterday + "Hier + Atzo + + + + duration_tomorrow + Tomorrow + + + + + duration_number_of_days + %1 jour(s) + + + + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + + + + + recorder_error + Error with the recorder + + + + + + + chat_error + + + + + + + + + + info_popup_error_title + Error + Errorea + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + Batu: + + + + meeting_waiting_room_join + "Rejoindre" + Batu + + + + + cancel + Cancel + Utzi + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + Bilerarako konexioa + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + Momentu batetik bestera batuko zara bilerara... + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + Ongi etorri + + + + welcome_page_subtitle + "sur %1" + %1(e)n + + + + welcome_carousel_skip + "Passer" + Salto egin + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + Komunikazio aplikazio <b>Frantses</b> <br> <b>segurua</b> eta <b>software librekoa</b>. + + + + welcome_page_2_title + "Sécurisé" + Segurua + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + Komunikazioak seguruak dira <br><b>Muturretik muturrerako enkriptatzeari</b> esker. + + + + welcome_page_3_title + "Open Source" + Software librea + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + Kode irekiko aplikazio bat eta <b>doako zerbitzu bat</b> <br><b>2001etik</b> + + + + next + "Suivant" + Hurrengoa + + + + start + "Commencer" + Hasi + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + Segurtasun-kontrola + + + + call_zrtp_sas_validation_skip + "Passer" + Salto egin + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + Enkriptatzea bermatzeko, zure kontaktuaren gailua berriro autentifikatu behar dugu. Trukatu zure kodeak: + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + Enkriptatzea bermatzeko, zure kontaktuaren gailua autentifikatu behar dugu. Mesedez, trukatu zure kodeak: + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + Zure kodea: + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + Dagokion kodea: + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + Emandako kodea ez dator bat. + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + Zure deiaren konfidentzialtasuna arriskuan jar daiteke! + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + Ez dago bategiterik + + + + call_action_hang_up + "Raccrocher" + Eskegi + + + + country + + + Afghanistan + Afganistan + + + + Albania + Albania + + + + Algeria + Algeria + + + + AmericanSamoa + Samoa amerikarra + + + + Andorra + Andorra + + + + Angola + Angola + + + + Anguilla + Anguilla + + + + AntiguaAndBarbuda + Antigua eta Barbuda + + + + Argentina + Argentina + + + + Armenia + Armenia + + + + Aruba + Aruba + + + + Australia + Australia + + + + Austria + Austria + + + + Azerbaijan + Azerbaijan + + + + Bahamas + Bahamak + + + + Bahrain + Bahrain + + + + Bangladesh + Bangladesh + + + + Barbados + Barbados + + + + Belarus + Bielorrusia + + + + Belgium + Belgika + + + + Belize + Belize + + + + Benin + Benin + + + + Bermuda + Bermuda + + + + Bhutan + Bhutan + + + + Bolivia + Bolivia + + + + BosniaAndHerzegowina + Bosnia eta Wina + + + + Botswana + Botswana + + + + Brazil + Brasil + + + + Brunei + Brunei + + + + Bulgaria + Bulgaria + + + + BurkinaFaso + Burkina Faso + + + + Burundi + Burundi + + + + Cambodia + Kanbodia + + + + Cameroon + Kamerun + + + + Canada + Kanada + + + + CapeVerde + Cabo Verde + + + + CaymanIslands + Cayman uharteak + + + + CentralAfricanRepublic + Afrika Erdiko Errepublika + + + + Chad + Txad + + + + Chile + Txile + + + + China + Txina + + + + Colombia + Kolonbia + + + + Comoros + Komoreak + + + + PeoplesRepublicOfCongo + Kongoko Herri Errepublika + + + + CookIslands + Cook uharteak + + + + CostaRica + Costa Rica + + + + IvoryCoast + Boli Kosta + + + + Croatia + Kroazia + + + + Cuba + Kuba + + + + Cyprus + Zipre + + + + CzechRepublic + Txekiar Errepublika + + + + Denmark + Danimarka + + + + Djibouti + Djibuti + + + + Dominica + Dominika + + + + DominicanRepublic + Dominikar Errepublika + + + + Ecuador + Ekuador + + + + Egypt + Egipto + + + + ElSalvador + El Salvador + + + + EquatorialGuinea + Ekuatore Ginea + + + + Eritrea + Eritrea + + + + Estonia + Estonia + + + + Ethiopia + Etiopia + + + + FalklandIslands + Falkland uharteak + + + + FaroeIslands + Faroe uharteak + + + + Fiji + Fiji + + + + Finland + Finlandia + + + + France + Frantzia + + + + FrenchGuiana + Guyana Frantsesa + + + + FrenchPolynesia + Polinesia Frantsesa + + + + Gabon + Gabon + + + + Gambia + Ganbia + + + + Georgia + Georgia + + + + Germany + Alemania + + + + Ghana + Ghana + + + + Gibraltar + Gibraltar + + + + Greece + Grezia + + + + Greenland + Groenlandia + + + + Grenada + Grenada + + + + Guadeloupe + Guadalupe + + + + Guam + Guam + + + + Guatemala + Guatemala + + + + Guinea + Ginea + + + + GuineaBissau + Ginea Bissau + + + + Guyana + Guyana + + + + Haiti + Haiti + + + + Honduras + Honduras + + + + DemocraticRepublicOfCongo + Kongoko Errepublika Demokratikoa + + + + HongKong + Hong Kong + + + + Hungary + Hungaria + + + + Iceland + Islandia + + + + India + India + + + + Indonesia + Indonesia + + + + Iran + Iran + + + + Iraq + Irak + + + + Ireland + Irlanda + + + + Israel + Israel + + + + Italy + Italia + + + + Jamaica + Jamaika + + + + Japan + Japonia + + + + Jordan + Jordania + + + + Kazakhstan + Kazakhstan + + + + Kenya + Kenya + + + + Kiribati + Kiribati + + + + DemocraticRepublicOfKorea + Koreako Errepublika Demokratikoa + + + + RepublicOfKorea + Koreako Errepublika + + + + Kuwait + Kuwait + + + + Kyrgyzstan + Kirgizistan + + + + Laos + Laos + + + + Latvia + Letonia + + + + Lebanon + Libano + + + + Lesotho + Lesotho + + + + Liberia + Liberia + + + + Libya + Libia + + + + Liechtenstein + Liechtenstein + + + + Lithuania + Lituania + + + + Luxembourg + Luxenburgo + + + + Macau + Macao + + + + Macedonia + Mazedonia + + + + Madagascar + Madagascar + + + + Malawi + Malawi + + + + Malaysia + Malaysia + + + + Maldives + Maldivak + + + + Mali + Mali + + + + Malta + Malta + + + + MarshallIslands + Marshall Islands + + + + Martinique + Martinika + + + + Mauritania + Mauritania + + + + Mauritius + Maurizio + + + + Mayotte + Mayotte + + + + Mexico + Mexiko + + + + Micronesia + Mikronesia + + + + Moldova + Moldavia + + + + Monaco + Monako + + + + Mongolia + Mongolia + + + + Montenegro + Montenegro + + + + Montserrat + Montserrat + + + + Morocco + Maroko + + + + Mozambique + Mozambike + + + + Myanmar + Myanmar + + + + Namibia + Namibia + + + + NauruCountry + Nauru Herrialdea + + + + Nepal + Nepal + + + + Netherlands + Herbehereak + + + + NewCaledonia + Kaledonia berria + + + + NewZealand + Zelanda berria + + + + Nicaragua + Nikaragua + + + + Niger + Niger + + + + Nigeria + Nigeria + + + + Niue + Niue + + + + NorfolkIsland + Norfolk uhartea + + + + NorthernMarianaIslands + Iparraldeko Mariana uharteak + + + + Norway + Norvegia + + + + Oman + Oman + + + + Pakistan + Pakistan + + + + Palau + Palau + + + + PalestinianTerritories + Palestina + + + + Panama + Panama + + + + PapuaNewGuinea + Papua Ginea Berria + + + + Paraguay + Paraguai + + + + Peru + Peru + + + + Philippines + Filipinak + + + + Poland + Plonia + + + + Portugal + Portugal + + + + PuertoRico + Puerto Rico + + + + Qatar + Qatar + + + + Reunion + Batzar + + + + Romania + Errumania + + + + RussianFederation + Errusiar federazioa + + + + Rwanda + Ruanda + + + + SaintHelena + Santa Helena + + + + SaintKittsAndNevis + Saint Kitts eta Nevis + + + + SaintLucia + Santa Luzia + + + + SaintPierreAndMiquelon + Saint-Pierre eta Mikelune + + + + SaintVincentAndTheGrenadines + Saint-Vincent eta Grenadinak + + + + Samoa + Samoa + + + + SanMarino + San Marino + + + + SaoTomeAndPrincipe + Sao Tome eta Principe + + + + SaudiArabia + Saudi Arabia + + + + Senegal + Senegal + + + + Serbia + Serbia + + + + Seychelles + Seychelleak + + + + SierraLeone + Sierra Leona + + + + Singapore + Singapur + + + + Slovakia + Eslovakia + + + + Slovenia + Eslovenia + + + + SolomonIslands + Salomon uharteak + + + + Somalia + Somalia + + + + SouthAfrica + Hego Afrika + + + + Spain + Espainia + + + + SriLanka + Sri Lanka + + + + Sudan + Sudan + + + + Suriname + Surinam + + + + Swaziland + Eswatini + + + + Sweden + Suedia + + + + Switzerland + Suitza + + + + Syria + Siria + + + + Taiwan + Taiwan + + + + Tajikistan + Tajikistan + + + + Tanzania + Tanzania + + + + Thailand + Tailandia + + + + Togo + Togo + + + + Tokelau + Tokelau + + + + Tonga + Tonga + + + + TrinidadAndTobago + Trinidad eta Tobago + + + + Tunisia + Tunisia + + + + Turkey + Turkia + + + + Turkmenistan + Turkmenistan + + + + TurksAndCaicosIslands + Turk eta Caico uharteak + + + + Tuvalu + Tuvalu + + + + Uganda + Uganda + + + + Ukraine + Ukraina + + + + UnitedArabEmirates + Arabiar Emirerri Batuak + + + + UnitedKingdom + Erresuma Batua + + + + UnitedStates + Ameriketako Estatu Batuak + + + + Uruguay + Uruguai + + + + Uzbekistan + Uzbekistan + + + + Vanuatu + Vanuatu + + + + Venezuela + Venezuela + + + + Vietnam + Vietnam + + + + WallisAndFutunaIslands + Wallis eta Futuna uharteak + + + + Yemen + Yemen + + + + Zambia + Zambia + + + + Zimbabwe + Zimbabwe + + + + utils + + + formatYears + '%1 year' + + urte bat + %1 urte + + + + + formatMonths + '%1 month' + + hilabete bat + % hilabete + + + + + formatWeeks + '%1 week' + + aste bat + %1 aste + + + + + formatDays + '%1 day' + + egun bat + %1 egun + + + + + formatHours + '%1 hour' + + ordu bat + %1 ordu + + + + + formatMinutes + '%1 minute' + + minutu bat + %1 minutu + + + + + formatSeconds + '%1 second' + + segundu bat + %1 segundu + + + + + codec_install + "Installation de codec" + Kodek instalazioa + + + + download_codec + "Télécharger le codec %1 (%2) ?" + Deskargatu %1 kodeka (%2)? + + + + information_popup_success_title + "Succès" + Ondo joan da + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + Kodeka behar bezala instalatu da. + + + + + + information_popup_error_title + Errorea + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + Ezin izan da kodeka instalatu. + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + Ezin izan da kodeka gorde. + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + Ezin izan da kodeka deskargatu. + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + Deskargatzen… + + + + okButton + Ok + + + + CoreModel + + + info_popup_error_title + Errorea + + + diff --git a/Linphone/data/languages/fi.ts b/Linphone/data/languages/fi.ts new file mode 100644 index 000000000..68d861f00 --- /dev/null +++ b/Linphone/data/languages/fi.ts @@ -0,0 +1,7434 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + + + + + save + "Enregistrer" + + + + + save_settings_accessible_name + Save %1 settings + + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + + + + + fps_counter + + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + + + + + drawer_menu_account_connection_status_refreshing + + + + + drawer_menu_account_connection_status_progress + + + + + drawer_menu_account_connection_status_failed + + + + + drawer_menu_account_connection_status_cleared + + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + + + + + AccountListView + + + add_an_account + Add an account + + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + + + + + assistant_account_login_forbidden_error + "Username and password do not match" + + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + + + + + assistant_account_add_error + "Unable to add account." + + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + + + + + manage_account_devices_title + "Vos appareils" + + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + + + + + manage_account_add_picture + "Ajouter une image" + + + + + manage_account_edit_picture + "Modifier l'image" + + + + + manage_account_remove_picture + "Supprimer l'image" + + + + + sip_address + + + + + sip_address_display_name + "Nom d'affichage + + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + + + + + manage_account_international_prefix + Indicatif international* + + + + + manage_account_delete + "Déconnecter mon compte" + + + + + manage_account_delete_message + + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + + + + + error + Erreur + + + + + manage_account_device_remove + "Supprimer" + + + + + manage_account_device_remove_confirm_dialog + + + + + manage_account_device_last_connection + "Dernière connexion:" + + + + + device_last_updated_time_no_info + "No information" + + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + + + + + settings_general_title + "Général" + + + + + settings_account_title + "Paramètres de compte" + + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + + + + + AccountSettingsParametersLayout + + + settings_title + + + + + settings_account_title + + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_error_title + + + + + information_popup_success_title + + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + + + + + information_popup_error_title + + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + + + + + account_settings_transport_title + "Transport" + + + + + account_settings_registrar_uri_title + + + + + account_settings_sip_proxy_url_title + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + + + + + account_settings_enable_ice_title + "Activer ICE" + + + + + account_settings_avpf_title + "AVPF" + + + + + account_settings_bundle_mode_title + "Mode bundle" + + + + + account_settings_expire_title + "Expiration (en seconde)" + + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + + + + + + + remove_participant_accessible_name + Remove participant %1 + + + + + list_filter_no_result_found + "Aucun contact" + + + + + contact_list_empty + + + + + AdvancedSettingsLayout + + + settings_system_title + System + + + + + settings_remote_provisioning_title + Remote provisioning + + + + + settings_security_title + Security / Encryption + + + + + settings_advanced_audio_codecs_title + Audio codecs + + + + + settings_advanced_video_codecs_title + Video codecs + + + + + settings_advanced_auto_start_title + Auto start %1 + + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + + + + + information_popup_error_title + Invalid URL format + + + + + settings_advanced_invalid_url_message + + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + + + + + + settings_advanced_media_encryption_title + Media encryption + + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + + + + + settings_advanced_hide_fps_title + + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + + + + + generic_address_picker_contacts_list_title + 'Contacts' + + + + + generic_address_picker_suggestions_list_title + "Suggestions" + + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + + + + + + info_popup_error_title + Error + + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + + + + + configuration_error_detail + not reachable + + + + + application_description + "A free and open source SIP video-phone." + + + + + command_line_arg_order + "Send an order to the application towards a command line" + + + + + command_line_option_show_help + + + + + command_line_option_show_app_version + + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + + + + + command_line_option_minimized + + + + + command_line_option_log_to_stdout + + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + + + + + hide_action + "Cacher" "Afficher" + + + + + show_action + + + + + quit_action + "Quitter" + + + + + mark_all_read_action + + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + + + + + password + + + + + cancel + "Annuler + + + + + assistant_account_login + Connexion + + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + + + + + media_encryption_dtls + DTLS + + + + + media_encryption_none + None + + + + + media_encryption_srtp + SRTP + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + + + + + settings_call_forward_destination_choose + Forward to destination + + + + + + + settings_call_forward_to_voicemail + + + + + settings_call_forward_to_sipaddress + + + + + settings_call_forward_sipaddress_title + SIP Address + + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + + + + + settings_call_forward_address_timeout + + + + + settings_call_forward_address_progress_disabling + + + + + settings_call_forward_address_progress_enabling + + + + + settings_call_forward_activation_success + + + + + settings_call_forward_deactivation_success + + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + contact_call_action + "Appel" + + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel Video" + + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + + + + + call_ended_by_user + "Vous avez terminé l'appel" + + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + + + + + conference_call_empty + "En attente d'autres participants…" + + + + + conference_share_link_title + "Partager le lien" + + + + + copied + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + CallList + + + remote_group_call + Remote group call + + + + + local_group_call + + + + + info_popup_error_title + + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + + + + + CallListView + + + meeting + "Réunion + + + + + call + "Appel" + + + + + paused_call_or_meeting + "%1 en pause" + + + + + ongoing_call_or_meeting + "%1 en cours" + + + + + transfer_call_name_accessible_name + Transfer call %1 + + + + + resume_call_name_accessible_name + Resume %1 call + + + + + pause_call_name_accessible_name + Pause %1 call + + + + + end_call_name_accessible_name + End %1 call + + + + + CallModel + + + call_error_no_response_toast + "No response" + + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + + + + + call_error_not_answered_toast + "Request timeout" + + + + + call_error_user_declined_toast + "User declined the call" + + + + + call_error_user_not_found_toast + "User was not found" + + + + + call_error_user_busy_toast + "User is busy" + + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + + + + + call_error_io_error_toast + "Unavailable service or network error" + + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + + + + + call_error_server_timeout_toast + "Server tiemout" + + + + + CallPage + + + call_forward_to_address_info + + + + + call_forward_to_address_info_voicemail + + + + + history_call_start_title + "Nouvel appel" + + + + + call_history_empty_title + "Historique d'appel vide" + + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + + + + + call_history_call_list_title + "Appels" + + + + + call_history_options_accessible_name + + + + + + menu_delete_history + "Supprimer l'historique" + + + + + call_history_list_options_accessible_name + Call history options + + + + + create_new_call_accessible_name + Create new call + + + + + call_search_in_history + "Rechercher un appel" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + history_list_empty_history + "Aucun appel dans votre historique" + + + + + return_to_call_history_accessible_name + Return to call history + + + + + call_action_start_new_call + "Nouvel appel" + + + + + call_start_group_call_title + "Appel de groupe" + + + + + call_action_start_group_call + "Lancer" + + + + + + + information_popup_error_title + + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + menu_copy_sip_address + "Copier l'adresse SIP" + + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + + + + + notification_missed_call_title + "Appel manqué" + + + + + call_outgoing + "Appel sortant" + + + + + call_audio_incoming + "Appel entrant" + + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + + + + + settings_call_enable_tones_title + Tonalités + + + + + settings_call_enable_tones_subtitle + Activer les tonalités + + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + + + + + settings_calls_command_line_title + Command line + + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + + + + + settings_calls_current_ringtone_filename + Current ringtone : + + + + + choose_ringtone_file_accessible_name + Choose ringtone file + + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + + + + + CallStatistics + + + call_stats_audio_title + "Audio" + + + + + call_stats_video_title + "Vidéo" + + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + + + + + + information_popup_error_title + + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + + + + + call_can_be_trusted_toast + "Appareil authentifié" + + + + + call_dir + + + + + call_ended + Appel terminé + + + + + conference_paused + Meeting paused + + + + + call_paused + Call paused + + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + + + + + call_zrtp_sas_validation_required + Vérification nécessaire + + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + + + + + call_not_encrypted + "Appel non chiffré" + + + + + + call_waiting_for_encryption_info + Waiting for encryption + + + + + call_paused_by_remote + Call paused by remote + + + + + conference_user_is_recording + "You are recording the meeting" + + + + + call_user_is_recording + "You are recording the call" + + + + + conference_remote_is_recording + "Someone is recording the meeting" + + + + + call_remote_recording + "%1 is recording the call" + + + + + call_stop_recording + "Stop recording" + + + + + add + + + + + call_transfer_current_call_title + "Transférer %1 à…" + + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + + + + + call_action_start_new_call + "Nouvel appel" + + + + + + call_action_show_dialer + "Pavé numérique" + + + + + call_action_change_layout + "Modifier la disposition" + + + + + call_action_go_to_calls_list + "Liste d'appel" + + + + + Merger tous les appels + call_action_merge_calls + + + + + + call_action_go_to_settings + "Paramètres" + + + + + conference_action_screen_sharing + "Partage de votre écran" + + + + + conference_share_link_title + Partager le lien de la réunion + + + + + copied + Copié + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + + + conference_participants_list_title + "Participants (%1)" + + + + + + group_call_participant_selected + + + + + + + + meeting_schedule_add_participants_title + + + + + call_encryption_title + Chiffrement + + + + + open_statistic_panel_accessible_name + + + + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + + + + + stop_recording_accessible_name + Stop recording + + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + + + + + call_stats_title + Statistiques + + + + + + call_action_end_call + "Terminer l'appel" + + + + + + call_action_resume_call + "Reprendre l'appel" + + + + + + call_action_pause_call + "Mettre l'appel en pause" + + + + + + call_action_transfer_call + "Transférer l'appel" + + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + + + + + + call_activate_video_hint + + + + + + call_activate_microphone + "Activer le micro" + + + + + + call_deactivate_microphone + "Désactiver le micro" + + + + + + call_share_screen_hint + Partager l'écran… + + + + + + call_open_chat_hint + Open chat… + + + + + + call_rise_hand_hint + "Lever la main" + + + + + + call_send_reaction_hint + "Envoyer une réaction" + + + + + + call_manage_participants_hint + "Gérer les participants" + + + + + + call_more_options_hint + "Plus d'options…" + + + + + call_action_change_conference_layout + "Modifier la disposition" + + + + + call_action_full_screen + "Mode Plein écran" + + + + + call_action_stop_recording + "Terminer l'enregistrement" + + + + + call_action_record + "Enregistrer l'appel" + + + + + call_activate_speaker_hint + "Activer le son" + + + + + call_deactivate_speaker_hint + "Désactiver le son" + + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + + + + + information_popup_error_title + + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + + + + + information_popup_synchronization_success_title + + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + + + + + settings_contacts_carddav_popup_synchronization_error_title + + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + + + + + sip_address_display_name + Nom d'affichage + + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + + + + + username + + + + + password + + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + + + + + ChangeLayoutForm + + + conference_layout_grid + + + + + conference_layout_active_speaker + + + + + conference_layout_audio_only + + + + + ChatAudioContent + + + + information_popup_error_title + Error + + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + + + + + ChatCore + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message_history + Message history has been deleted + + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + + + + + chat_message_draft_sending_text + + + + + chat_room_delete + "Delete" + + + + + chat_room_mute + + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + + + + + chat_room_leave + "leave" + + + + + chat_list_leave_chat_popup_title + leave the conversation ? + + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + + + + + chat_message_copy + "Copy" + + + + + chat_message_copied_to_clipboard_title + Copied + + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + + + + + chat_message_remote_replied + %1 replied + + + + + chat_message_forwarded + Forwarded + + + + + chat_message_remote_replied_to + %1 replied to %2 + + + + + chat_message_user_replied_to + You replied to %1 + + + + + chat_message_user_replied + You replied + + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + + + + + chat_message_forward + Forward + + + + + chat_message_delete + "Delete" + + + + + ChatMessageContentCore + + + popup_error_title + Error + + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + + + + + popup_error_path_does_not_exist_message + File was not found: %1 + + + + + popup_error_nb_files_not_found_message + + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + + + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + + + + + popup_error_unsupported_files_message + + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + + + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message + The message has been deleted + + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + + + + + ics_bubble_meeting_to + + + + + ics_bubble_meeting_modified + Meeting has been updated + + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + + + + + + + + + + ics_bubble_description_title + Description + + + + + ics_bubble_join + "Rejoindre" + + + + + ics_bubble_participants + %n participant(s) + + + + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + + + + + info_popup_no_result_message + No result found + + + + + info_popup_first_result_message + First result reached + + + + + info_popup_last_result_message + Last result reached + + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + + + + + chat_message_is_writing_info + %1 is writing… + + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + + + + + chat_empty_title + "Aucune conversation" + + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + + + + + chat_list_title + "Conversations" + + + + + menu_mark_all_as_read + "mark all as read" + + + + + chat_search_in_history + "Rechercher une conversation" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + + + + + chat_action_start_new_chat + "New chat" + + + + + chat_start_group_chat_title + "Nouveau groupe" + + + + + chat_action_start_group_chat + "Créer" + + + + + + + information_popup_error_title + + + + + information_popup_chat_creation_failed_message + "La création a échoué" + + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + chat_creation_in_progress + Creation de la conversation en cours … + + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + + + + + CliModel + + + show_function_description + + + + + fetch_config_function_description + + + + + call_function_description + + + + + bye_function_description + + + + + accept_function_description + + + + + decline_function_description + + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + + + + + Contact + + + information_popup_error_title + Erreur + + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + + + + + account_settings_name_accessible_name + Account settings of %1 + + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + + + + + save + "Enregistrer + + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + + + + + close_accessible_name + Close %1 + + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + + + + + contact_editor_add_image_label + "Ajouter une image" + + + + + contact_details_edit + "Modifier" + + + + + edit_contact_image_accessible_name + "Edit contact image" + + + + + contact_details_delete + "Supprimer" + + + + + delete_contact_image_accessible_name + "Delete contact image" + + + + + + contact_editor_first_name + "Prénom" + + + + + + contact_editor_last_name + "Nom" + + + + + + contact_editor_company + "Entreprise" + + + + + + contact_editor_job_title + "Fonction" + + + + + + sip_address + + + + + sip_address_number_accessible_name + "SIP address number %1" + + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + + + + + new_sip_address_accessible_name + "New SIP address" + + + + + phone_number_number_accessible_name + "Phone number number %1" + + + + + remove_phone_number_accessible_name + Remove phone number %1 + + + + + new_phone_number_accessible_name + "New phone number" + + + + + + phone + "Téléphone" + + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + Partager + + + + + information_popup_error_title + + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + + + + + information_popup_vcard_creation_title + VCard créée + + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + + + + + contact_sharing_email_title + Partage de contact + + + + + contact_details_delete + "Supprimer" + + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + + + + + expand_accessible_name + Expand %1 + + + + + ContactPage + + + contacts_add + "Ajouter un contact" + + + + + contacts_list_empty + "Aucun contact pour le moment" + + + + + contact_new_title + "Nouveau contact" + + + + + create + + + + + contact_edit_title + "Modifier contact" + + + + + save + + + + + contact_dialog_delete_title + Supprimer %1 ?" + + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + + + + + contact_deleted_toast + "Contact supprimé" + + + + + contact_deleted_message + "%1 a été supprimé" + + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + + + + + popup_do_not_show_again + Ne plus afficher + + + + + cancel + + + + + dialog_call + "Appeler" + + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + + + + + dialog_ok + "Ok" + + + + + bottom_navigation_contacts_label + "Contacts" + + + + + search_bar_look_for_contact_text + Rechercher un contact + + + + + list_filter_no_result_found + Aucun résultat… + + + + + contact_list_empty + Aucun contact pour le moment + + + + + expand_accessible_name + Expand %1 + + + + + shrink_accessible_name + Shrink %1 + + + + + create_contact_accessible_name + Create new contact + + + + + more_info_accessible_name + More info %1 + + + + + + contact_details_edit + Edit +---------- +"Éditer" + + + + + contact_call_action + "Appel" + + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel vidéo" + + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + + + + + call_adress_accessible_name + Call address %1 + + + + + contact_details_company_name + "Société :" + + + + + contact_details_job_title + "Poste :" + + + + + contact_details_medias_title + "Medias" + + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + + + + + contact_details_trust_title + "Confiance" + + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + + + + + contact_details_no_device_found + "Aucun appareil" + + + + + contact_device_without_name + "Appareil inconnu" + + + + + contact_make_call_check_device_trust + "Vérifier" + + + + + verify_device_accessible_name + Verify %1 device + + + + + contact_details_actions_title + "Autres actions" + + + + + contact_details_remove_from_favourites + "Retirer des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + contact_details_share + "Partager" + + + + + information_popup_error_title + + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + + + + + contact_details_share_success_title + "VCard créée" + + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + + + + + contact_details_share_email_title + "Partage de contact" + + + + + contact_details_delete + "Supprimer ce contact" + + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + + + + + settings_contacts_carddav_title + + + + + settings_contacts_carddav_subtitle + + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + add + "Ajouter" + + + + + ConversationInfos + + + one_one_infos_call + "Appel" + + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + + + + + group_infos_participants + + + + + group_infos_media_docs + Medias & documents + + + + + group_infos_shared_medias + Shared medias + + + + + group_infos_shared_docs + Shared documents + + + + + group_infos_other_actions + Other actions + + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + + + + + group_infos_leave_room + Leave chat room + + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + group_infos_delete_history + Delete history + + + + + group_infos_delete_history_toast_title + Delete history ? + + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + one_one_infos_open_contact + Show contact + + + + + one_one_infos_create_contact + Create contact + + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + + + + + one_one_infos_delete_history_toast_title + Delete history ? + + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + CoreModel + + + info_popup_error_title + + + + + fetching_config_failed_error_message + "Remote provisioning cannot be retrieved" + + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + + + + + settings_debug_clipboard + "Presse-papier" + + + + + settings_debug_email + "E-Mail" + + + + + debug_settings_trace + "Traces %1" + + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + + + + + + information_popup_error_title + Une erreur est survenue. + + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + + + + + settings_debug_delete_logs_title + "Supprimer les traces" + + + + + settings_debug_share_logs_title + "Partager les traces" + + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + + + + + settings_debug_app_version_title + "Version de l'application" + + + + + settings_debug_sdk_version_title + "Version du SDK" + + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + + + + + textfield_error_message_unknown_format + "Format non reconnu" + + + + + Dialog + + + + dialog_confirm + "Confirmer" + + + + + + dialog_cancel + "Annuler" + + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + + + + + call_stats_media_encryption + Media encryption : %1 + + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + + + + + call_zrtp_validation_button_label + "Validation chiffrement" + + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + + + + + one_hour + + + + + one_day + + + + + one_week + + + + + disabled + + + + + custom + + + + + EventLogCore + + + conference_created_event + + + + + conference_created_terminated + + + + + conference_participant_added_event + + + + + conference_participant_removed_event + + + + + conference_participant_set_admin_event + + + + + conference_participant_unset_admin_event + + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + + + + + + + device_id + "Téléphone" + + + + + information_popup_error_title + + + + + information_popup_invalid_address_message + "Adresse invalide" + + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + + + + + group_infos_participant_is_admin + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + group_infos_give_admin_rights + + + + + group_infos_remove_admin_rights + + + + + group_infos_copy_sip_address + + + + + group_infos_remove_participant + + + + + group_infos_remove_participants_toast_title + + + + + group_infos_remove_participants_toast_message + + + + + GroupCreationFormLayout + + + return_accessible_name + Return + + + + + + group_start_dialog_subject_hint + "Nom du groupe" + + + + + required + "Requis" + + + + + HelpPage + + + help_title + "Aide" + + + + + + help_about_title + "À propos de %1" + + + + + help_about_privacy_policy_title + "Règles de confidentialité" + + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + + + + + help_about_version_title + "Version" + + + + + help_about_gpl_licence_title + "Licences GPLv3" + + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + + + + + help_troubleshooting_title + "Dépannage" + + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + + + + + settings_contacts_ldap_subtitle + + + + + information_popup_success_title + + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + + + + + information_popup_error_title + + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + + + + + delete_ldap_server_accessible_name + Delete LDAP server + + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + + + + + settings_contacts_ldap_password_title + "Mot de passe" + + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + + + + + settings_contacts_ldap_search_filter_title + "Filtre" + + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + + + + + settings_contacts_ldap_debug_title + "Débogage" + + + + + LoadingPopup + + + cancel + + + + + LoginForm + + + + username + Nom d'utilisateur : username + + + + + + password + Mot de passe + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + assistant_account_login + "Connexion" + + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + + + + + assistant_forgotten_password + "Mot de passe oublié ?" + + + + + LoginLayout + + + + help_about_title + À propos de %1 + + + + + help_about_privacy_policy_title + "Politique de confidentialité" + + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + + + + + help_about_version_title + "Version" + + + + + help_about_licence_title + "Licence" + + + + + help_about_copyright_title + "Copyright + + + + + close + "Fermer" + + + + + LoginPage + + + return_accessible_name + Return + + + + + assistant_account_login + Connexion + + + + + assistant_no_account_yet + "Pas encore de compte ?" + + + + + assistant_account_register + "S'inscrire" + + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + + + + + assistant_login_remote_provisioning + "Configuration distante" + + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + + + + + cancel + + + + + validate + "Valider" + + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + + + + + default_account_connection_state_error_toast + + + + + MagicSearchList + + + device_id + + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + + + + + open_calls_page_accessible_name + "Open calls page" + + + + + bottom_navigation_contacts_label + "Contacts" + + + + + open_contacts_page_accessible_name + "Open contacts page" + + + + + bottom_navigation_conversations_label + "Conversations" + + + + + open_conversations_page_accessible_name + "Open conversations page" + + + + + bottom_navigation_meetings_label + "Réunions" + + + + + open_contact_page_accessible_name + "Open meetings page" + + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + + + + + do_not_disturb_accessible_name + "Do not disturb" + + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + + + + + information_popup_error_title + + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + + + + + account_list_accessible_name + "Account list" + + + + + application_options_accessible_name + "Application options" + + + + + drawer_menu_manage_account + Mon compte + + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + + + + + settings_title + + + + + recordings_title + "Enregistrements" + + + + + help_title + "Aide" + + + + + help_quit_title + "Quitter l'application" + + + + + quit_app_question + "Quitter %1 ?" + + + + + drawer_menu_add_account + "Ajouter un compte" + + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + + + + + interoperable + interopérable + + + + + call_transfer_successful_toast_title + "Appel transféré" + + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + + + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + + + + + assistant_register_error_title + "Erreur lors de la création" + + + + + assistant_register_success_title + "Compte créé" + + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + + + + + assistant_register_error_code + "Erreur dans le code de validation" + + + + + information_popup_error_title + + + + + ManageParticipants + + + group_infos_manage_participants + + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + + + + + meeting_schedule_broadcast_label + "Webinar" + + + + + meeting_schedule_subject_hint + "Ajouter un titre" + + + + + meeting_schedule_description_hint + "Ajouter une description" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + MeetingPage + + + meetings_add + "Créer une réunion" + + + + + meetings_list_empty + "Aucune réunion" + + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + + + + + meeting_schedule_delete_action + "Supprimer" + + + + + back_action + Retour + + + + + meetings_list_title + Réunions + + + + + meetings_search_hint + "Rechercher une réunion" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + meetings_empty_list + "Aucune réunion" + + + + + + meeting_schedule_title + "Nouvelle réunion" + + + + + create + + + + + + + + + + information_popup_error_title + + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + + + + + save + + + + + + saved + "Enregistré" + + + + + meeting_info_updated_toast + "Réunion mise à jour" + + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_add_participants_apply + + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + + + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + + + + + meeting_schedule_timezone_title + "Fuseau horaire" + + + + + meeting_info_organizer_label + "Organisateur" + + + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + + + + + click_to_delete_reaction_info + Click to delete + + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + + + + + no_shared_documents + No document + + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + + + + + + + + choose_something_accessible_name + Choose %1 + + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + + + + + + device_volume_accessible_name + %1 volume + + + + + + + multimedia_settings_microphone_title + "Microphone" + + + + + + multimedia_settings_camera_title + "Caméra" + + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + + + + + call_start_group_call_title + Appel de groupe + + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + + + + + dialog_accept + "Accepter" + + + + + dialog_deny + "Refuser + + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + + + + + new_file_message + + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + + + + + new_message_alert_accessible_name + New message on chatroom %1 + + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + + + + + oidc_authentication_granted_message + Authentication granted + + + + + oidc_authentication_not_authenticated_message + Not authenticated + + + + + oidc_authentication_refresh_message + Refreshing token + + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + + + + + oidc_authentication_network_error + Network error + + + + + oidc_authentication_server_error + Server error + + + + + oidc_authentication_token_not_found_error + OAuth token not found + + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + + + + + oidc_authentication_no_token_found_error + + + + + oidc_authentication_request_token_message + Requesting access token + + + + + oidc_authentication_refresh_token_message + Refreshing access token + + + + + oidc_authentication_request_authorization_message + Requesting authorization + + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + + + + + meeting_add_participants_title + "Ajouter des participants" + + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + + + + + number_phone_number_accessible_name + %1 number + + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + + + + + open_popup_panel_accessible_name + "Open %1" popup + + + + + Presence + + + contact_presence_reset_status + + + + + contact_presence_button_set_custom_status + + + + + contact_presence_button_edit_custom_status + + + + + contact_presence_button_delete_custom_status + + + + + contact_presence_custom_status + + + + + PresenceNoteLayout + + + contact_presence_note_title + + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + + + + + contact_presence_button_save_custom_status + + + + + QObject + + + media_encryption_dtls + + + + + media_encryption_none + + + + + media_encryption_srtp + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + message_state_in_progress + "delivery in progress" + + + + + message_state_delivered + sent + + + + + message_state_not_delivered + error + + + + + message_state_file_transfer_error + cannot get file from server + + + + + message_state_file_transfer_done + file transfer has been completed successfully + + + + + message_state_delivered_to_user + received + + + + + message_state_displayed + read + + + + + message_state_file_transfer__in_progress + file transfer in progress + + + + + message_state_pending_delivery + pending delivery + + + + + message_state_file_transfer_cancelling + file transfer canceled + + + + + incoming + "Entrant" + + + + + outgoing + "Sortant" + + + + + conference_layout_active_speaker + "Participant actif" + + + + + conference_layout_grid + "Mosaïque" + + + + + conference_layout_audio_only + "Audio uniquement" + + + + + RegisterCheckingPage + + + email + "email" + + + + + phone_number + "numéro de téléphone" + + + + + confirm_register_title + "Inscription | Confirmer votre %1" + + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + + + + + RegisterPage + + + return_accessible_name + Return + + + + + assistant_account_register + "Inscription + + + + + assistant_already_have_an_account + + + + + assistant_account_login + + + + + assistant_account_register_with_phone_number + + + + + assistant_account_register_with_email + + + + + + username + + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + domain + + + + + + + phone_number + "Numéro de téléphone" + + + + + + email + + + + + + password + + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + + + + + assistant_account_create + "Créer" + + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + + + + + SIPLoginPage + + + return_accessible_name + Return + + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + + + + + assistant_no_account_yet + Pas encore de compte ? + + + + + assistant_account_register + S'inscrire + + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + + + + + + username + "Nom d'utilisateur" + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + password + + + + + + sip_address_domain + "Domaine" + + + + + + sip_address_display_name + Nom d'affichage + + + + + + transport + "Transport" + + + + + + assistant_account_login + + + + + assistant_account_login_missing_username + + + + + assistant_account_login_missing_password + + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + + + + + login_advanced_parameters_label + Advanced parameters + + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + + + + + screencast_settings_all_screen_label + "Ecran entier" + + + + + screencast_settings_one_window_label + "Fenêtre" + + + + + screencast_settings_screen + "Ecran %1" + + + + + stop + "Stop + + + + + share + "Partager" + + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + + + + + dialog_continue + "Continuer" + + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + + + + + SelectedChatView + + + chat_view_group_call_toast_message + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + reply_to_label + Reply to %1 + + + + + shared_medias_title + Shared medias + + + + + shared_documents_title + Shared documents + + + + + forward_to_title + Forward to… + + + + + conversations_title + Conversations + + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + + + + + SettingsPage + + + settings_title + "Paramètres" + + + + + settings_calls_title + "Appels" + + + + + settings_call_forward + "Transfert d'appel" + + + + + settings_conversations_title + "Conversations" + + + + + settings_contacts_title + "Contacts" + + + + + settings_meetings_title + "Réunions" + + + + + settings_network_title + "Affichage" "Security" "Réseau" + + + + + settings_advanced_title + "Paramètres avancés" + + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + + + + + conference_participant_paused_text + "En pause" + + + + + TextField + + + show_accessible_name + Show %1 + + + + + hide_accessible_name + Hide %1 + + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + + + + + group_call_error_no_account + + + + + group_call_error_participants_invite + + + + + group_call_error_creation + + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + + + + + unknown_audio_device_name + + + + + conference_invitation + + + + + conference_invitation_cancelled + + + + + conference_invitation_updated + + + + + Utils + + + nSeconds + + + + + + + + nMinute + + + + + + + + chat_message_forward_error + Cannot forward an invalid message + + + + + info_popup_forward_message_error + Could not forward message : %1 + + + + + info_popup_send_forward_message_error_message + Failed to create forward message + + + + + chat_message_reply_error + Cannot reply to invalid message + + + + + info_popup_reply_message_error + Could not send reply message : %1 + + + + + info_popup_send_reply_message_error_message + Failed to create reply message + + + + + nHour + + + + + + + + + nDay + + + + + + + + nWeek + + + + + + + + contact_presence_status_available + + + + + contact_presence_status_busy + + + + + contact_presence_status_do_not_disturb + + + + + contact_presence_status_offline + + + + + contact_presence_status_away + + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + + + + + information_popup_group_call_not_created_message + + + + + number_of_years + %n an(s) + + + + + + + + number_of_month + "%n mois" + + + + + + + + number_of_weeks + %n semaine(s) + + + + + + + + number_of_days + %n jour(s) + + + + + + + + today + "Aujourd'hui" + + + + + yesterday + "Hier + + + + + duration_tomorrow + Tomorrow + + + + + duration_number_of_days + %1 jour(s) + + + + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + + + + + recorder_error + Error with the recorder + + + + + + + chat_error + + + + + + + + + + info_popup_error_title + Error + + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + + + + + meeting_waiting_room_join + "Rejoindre" + + + + + + cancel + Cancel + + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + + + + + welcome_page_subtitle + "sur %1" + + + + + welcome_carousel_skip + "Passer" + + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + + + + + welcome_page_2_title + "Sécurisé" + + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + + + + + welcome_page_3_title + "Open Source" + + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + + + + + next + "Suivant" + + + + + start + "Commencer" + + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + + + + + call_zrtp_sas_validation_skip + "Passer" + + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + + + + + call_action_hang_up + "Raccrocher" + + + + + country + + + Afghanistan + + + + + Albania + + + + + Algeria + + + + + AmericanSamoa + + + + + Andorra + + + + + Angola + + + + + Anguilla + + + + + AntiguaAndBarbuda + + + + + Argentina + + + + + Armenia + + + + + Aruba + + + + + Australia + + + + + Austria + + + + + Azerbaijan + + + + + Bahamas + + + + + Bahrain + + + + + Bangladesh + + + + + Barbados + + + + + Belarus + + + + + Belgium + + + + + Belize + + + + + Benin + + + + + Bermuda + + + + + Bhutan + + + + + Bolivia + + + + + BosniaAndHerzegowina + + + + + Botswana + + + + + Brazil + + + + + Brunei + + + + + Bulgaria + + + + + BurkinaFaso + + + + + Burundi + + + + + Cambodia + + + + + Cameroon + + + + + Canada + + + + + CapeVerde + + + + + CaymanIslands + + + + + CentralAfricanRepublic + + + + + Chad + + + + + Chile + + + + + China + + + + + Colombia + + + + + Comoros + + + + + PeoplesRepublicOfCongo + + + + + CookIslands + + + + + CostaRica + + + + + IvoryCoast + + + + + Croatia + + + + + Cuba + + + + + Cyprus + + + + + CzechRepublic + + + + + Denmark + + + + + Djibouti + + + + + Dominica + + + + + DominicanRepublic + + + + + Ecuador + + + + + Egypt + + + + + ElSalvador + + + + + EquatorialGuinea + + + + + Eritrea + + + + + Estonia + + + + + Ethiopia + + + + + FalklandIslands + + + + + FaroeIslands + + + + + Fiji + + + + + Finland + + + + + France + + + + + FrenchGuiana + + + + + FrenchPolynesia + + + + + Gabon + + + + + Gambia + + + + + Georgia + + + + + Germany + + + + + Ghana + + + + + Gibraltar + + + + + Greece + + + + + Greenland + + + + + Grenada + + + + + Guadeloupe + + + + + Guam + + + + + Guatemala + + + + + Guinea + + + + + GuineaBissau + + + + + Guyana + + + + + Haiti + + + + + Honduras + + + + + DemocraticRepublicOfCongo + + + + + HongKong + + + + + Hungary + + + + + Iceland + + + + + India + + + + + Indonesia + + + + + Iran + + + + + Iraq + + + + + Ireland + + + + + Israel + + + + + Italy + + + + + Jamaica + + + + + Japan + + + + + Jordan + + + + + Kazakhstan + + + + + Kenya + + + + + Kiribati + + + + + DemocraticRepublicOfKorea + + + + + RepublicOfKorea + + + + + Kuwait + + + + + Kyrgyzstan + + + + + Laos + + + + + Latvia + + + + + Lebanon + + + + + Lesotho + + + + + Liberia + + + + + Libya + + + + + Liechtenstein + + + + + Lithuania + + + + + Luxembourg + + + + + Macau + + + + + Macedonia + + + + + Madagascar + + + + + Malawi + + + + + Malaysia + + + + + Maldives + + + + + Mali + + + + + Malta + + + + + MarshallIslands + + + + + Martinique + + + + + Mauritania + + + + + Mauritius + + + + + Mayotte + + + + + Mexico + + + + + Micronesia + + + + + Moldova + + + + + Monaco + + + + + Mongolia + + + + + Montenegro + + + + + Montserrat + + + + + Morocco + + + + + Mozambique + + + + + Myanmar + + + + + Namibia + + + + + NauruCountry + + + + + Nepal + + + + + Netherlands + + + + + NewCaledonia + + + + + NewZealand + + + + + Nicaragua + + + + + Niger + + + + + Nigeria + + + + + Niue + + + + + NorfolkIsland + + + + + NorthernMarianaIslands + + + + + Norway + + + + + Oman + + + + + Pakistan + + + + + Palau + + + + + PalestinianTerritories + + + + + Panama + + + + + PapuaNewGuinea + + + + + Paraguay + + + + + Peru + + + + + Philippines + + + + + Poland + + + + + Portugal + + + + + PuertoRico + + + + + Qatar + + + + + Reunion + + + + + Romania + + + + + RussianFederation + + + + + Rwanda + + + + + SaintHelena + + + + + SaintKittsAndNevis + + + + + SaintLucia + + + + + SaintPierreAndMiquelon + + + + + SaintVincentAndTheGrenadines + + + + + Samoa + + + + + SanMarino + + + + + SaoTomeAndPrincipe + + + + + SaudiArabia + + + + + Senegal + + + + + Serbia + + + + + Seychelles + + + + + SierraLeone + + + + + Singapore + + + + + Slovakia + + + + + Slovenia + + + + + SolomonIslands + + + + + Somalia + + + + + SouthAfrica + + + + + Spain + + + + + SriLanka + + + + + Sudan + + + + + Suriname + + + + + Swaziland + + + + + Sweden + + + + + Switzerland + + + + + Syria + + + + + Taiwan + + + + + Tajikistan + + + + + Tanzania + + + + + Thailand + + + + + Togo + + + + + Tokelau + + + + + Tonga + + + + + TrinidadAndTobago + + + + + Tunisia + + + + + Turkey + + + + + Turkmenistan + + + + + TurksAndCaicosIslands + + + + + Tuvalu + + + + + Uganda + + + + + Ukraine + + + + + UnitedArabEmirates + + + + + UnitedKingdom + + + + + UnitedStates + + + + + Uruguay + + + + + Uzbekistan + + + + + Vanuatu + + + + + Venezuela + + + + + Vietnam + + + + + WallisAndFutunaIslands + + + + + Yemen + + + + + Zambia + + + + + Zimbabwe + + + + + utils + + + formatYears + '%1 year' + + + + + + + + formatMonths + '%1 month' + + + + + + + + formatWeeks + '%1 week' + + + + + + + + formatDays + '%1 day' + + + + + + + + formatHours + '%1 hour' + + + + + + + + formatMinutes + '%1 minute' + + + + + + + + formatSeconds + '%1 second' + + + + + + + + codec_install + "Installation de codec" + + + + + download_codec + "Télécharger le codec %1 (%2) ?" + + + + + information_popup_success_title + "Succès" + + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + + + + + + + information_popup_error_title + + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + + + + + okButton + + + + diff --git a/Linphone/data/languages/fr_FR.ts b/Linphone/data/languages/fr.ts similarity index 91% rename from Linphone/data/languages/fr_FR.ts rename to Linphone/data/languages/fr.ts index ef526f11e..4387486c5 100644 --- a/Linphone/data/languages/fr_FR.ts +++ b/Linphone/data/languages/fr.ts @@ -1,6 +1,6 @@ - + AbstractSettingsLayout @@ -25,13 +25,13 @@ AbstractWindow - + contact_dialog_pick_phone_number_or_sip_address_title "Choisissez un numéro ou adresse SIP" Choisissez un numéro ou adresse SIP - + fps_counter %1 FPS @@ -104,43 +104,43 @@ AccountManager - + assistant_account_login_already_connected_error "The account is already connected" Le compte est déjà connecté - + assistant_account_login_proxy_address_error "Unable to create proxy address. Please check the domain name." Impossible de créer l'adresse proxy. Merci de vérifier le nom de domaine. - + assistant_account_login_address_configuration_error "Unable to configure address: `%1`." Impossible de configurer l'adresse : `%1`. - + assistant_account_login_params_configuration_error "Unable to configure account settings." Impossible de configurer les paramètres du compte. - + assistant_account_login_forbidden_error "Username and password do not match" Le couple identifiant mot de passe ne correspond pas - + assistant_account_login_error "Error during connection, please verify your parameters" Erreur durant la connexion, veuillez vérifier vos paramètres - + assistant_account_add_error "Unable to add account." Impossible d'ajouter le compte. @@ -161,25 +161,25 @@ Impossible de définir l'adresse du serveur depuis l'adresse %1 - + set_outbound_proxy_uri_failed_error_message Unable to set outbound proxy uri, failed creating address from %1 Impossible de définir l'adresse du proxy sip sortant depuis l'adresse %1 - + set_conference_factory_address_failed_error_message "Unable to set the conversation server address, failed creating address from %1" Impossible de définir l'uri du serveur de conversations depuis l'adresse %1 - + set_audio_conference_factory_address_failed_error_message "Unable to set the meeting server address, failed creating address from %1" Impossible de définir l'uri du serveur de réunions depuis l'adresse %1 - + set_voicemail_address_failed_error_message Unable to set voicemail address, failed creating address from %1 Impossible de définir l'adresse de messagerie vocale depuis l'adresse %1 @@ -188,118 +188,138 @@ AccountSettingsGeneralLayout - + manage_account_details_title "Détails" Détails - + manage_account_details_subtitle Éditer les informations de votre compte. Éditer les informations de votre compte. - + manage_account_devices_title "Vos appareils" Vos appareils - + manage_account_devices_subtitle "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus. - + manage_account_add_picture "Ajouter une image" Ajouter une image - + manage_account_edit_picture "Modifier l'image" Modifier l'image - + manage_account_remove_picture "Supprimer l'image" Supprimer l'image - + sip_address + SIP address Adresse SIP - + + copied + Copied + Copié + + + + account_settings_sip_address_copied_message + Your SIP address has been copied in the clipboard + Votre adresse SIP a été copié dans le presse-papiers + + + + account_settings_sip_address_copied_error_message + Error copying your SIP address + Erreur lors de la copie de votre adresse SIP + + + sip_address_display_name "Nom d'affichage Nom d'affichage - + sip_address_display_name_explaination "Le nom qui sera affiché à vos correspondants lors de vos échanges." Le nom qui sera affiché à vos correspondants lors de vos échanges. - + manage_account_international_prefix Indicatif international* Indicatif international* - + manage_account_delete "Déconnecter mon compte" Déconnecter mon compte - + manage_account_delete_message Votre compte sera retiré de ce client linphone, mais vous restez connecté sur vos autres clients - + manage_account_dialog_remove_account_title "Se déconnecter du compte ?" Se déconnecter du compte ? - + manage_account_dialog_remove_account_message Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org - + + error Erreur Erreur - + manage_account_device_remove "Supprimer" Supprimer - + manage_account_device_remove_confirm_dialog Supprimer %1 ? - + manage_account_device_last_connection "Dernière connexion:" Dernière connexion: - + device_last_updated_time_no_info "No information" Pas d'information @@ -352,126 +372,123 @@ AccountSettingsParametersLayout - + settings_title Paramètres - + settings_account_title Paramètres de compte - info_popup_invalid_registrar_uri_message Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) - La registrar URI est invalide. Veuillez vous assurer qu'elle respecte le format suivant : sip:<host>:<port>;transport=<transport> (:<port> est facultatif) + La registrar URI est invalide. Veuillez vous assurer qu'elle respecte le format suivant : sip:<host>:<port>;transport=<transport> (:<port> est facultatif) - info_popup_invalid_outbound_proxy_message Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) - L'uri du proxy sip sortant est invalide. Veuillez vous assurer qu'elle respecte le format suivant : sip:<host>:<port>;transport=<transport> (:<port> est facultatif) + L'uri du proxy sip sortant est invalide. Veuillez vous assurer qu'elle respecte le format suivant : sip:<host>:<port>;transport=<transport> (:<port> est facultatif) - info_popup_error_title - Erreur + Erreur - + information_popup_success_title Succès - + contact_editor_saved_changes_toast "Modifications sauvegardés" Modifications sauvegardés - + information_popup_error_title Erreur - + account_settings_mwi_uri_title "URI du serveur de messagerie vocale" URI du serveur de messagerie vocale - + account_settings_voicemail_uri_title "URI de messagerie vocale" URI de messagerie vocale - + account_settings_transport_title "Transport" Transport - + account_settings_registrar_uri_title Registrar URI - + account_settings_sip_proxy_url_title URL du proxy SIP sortant - + login_proxy_server_url_tooltip "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." Si ce champ est rempli, l’outbound proxy sera activé automatiquement. Laissez-le vide pour le désactiver. - + account_settings_stun_server_url_title "Adresse du serveur STUN" Adresse du serveur STUN - + account_settings_enable_ice_title "Activer ICE" Activer ICE - + account_settings_avpf_title "AVPF" AVPF - + account_settings_bundle_mode_title "Mode bundle" Mode bundle - + account_settings_expire_title "Expiration (en seconde)" Expiration (en seconde) - + account_settings_conference_factory_uri_title "URI du serveur de conversations" URI du serveur de conversations - + account_settings_audio_video_conference_factory_uri_title "URI du serveur de réunions" URI du serveur de réunions - + account_settings_lime_server_url_title "URL du serveur d’échange de clés de chiffrement" URL du serveur d’échange de clés de chiffrement @@ -594,13 +611,13 @@ Chiffrement du média obligatoire - + settings_advanced_create_endtoend_encrypted_meetings_title Create end to end encrypted meetings and group calls Créer des appels de groupe et conférences chiffré(e)s de bout en bout - + settings_advanced_hide_fps_title Cacher les FPS @@ -608,19 +625,19 @@ AllContactListView - + car_favorites_contacts_title "Favoris" Favoris - + generic_address_picker_contacts_list_title 'Contacts' Contacts - + generic_address_picker_suggestions_list_title "Suggestions" Suggestions @@ -629,137 +646,178 @@ App - + remote_provisioning_dialog Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? - - + + + info_popup_error_title Error Erreur - - + + info_popup_configuration_failed_message Remote provisioning failed : %1 La configuration distante a échoué : %1 - + + info_popup_error_checking_update + An error occured while trying to check update. Please try again later or contact support team. + Une erreur est survenue lors de la recherche de mise à jour. Merci de réessayer plus tard ou de contacter l'équipe de support. + + + + info_popup_new_version_download_label + Téléchargez-là ! + + + + info_popup_new_version_available_title + New version available ! + Nouvelle version disponible ! + + + + info_popup_new_version_available_message + A new version of Linphone (%1) is available. %2 + Une nouvelle version de Linphone (%1) est disponible. %2 + + + + info_popup_version_up_to_date_title + À jour + + + + info_popup_version_up_to_date_message + Your version is up to date + Votre version est à jour + + + configuration_error_detail not reachable indisponible - + application_description "A free and open source SIP video-phone." A free and open source SIP video-phone. - + command_line_arg_order "Send an order to the application towards a command line" Send an order to the application towards a command line - + command_line_option_show_help Show this help - + command_line_option_show_app_version Afficher la version de l'application - + command_line_option_config_to_fetch "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." Specify the linphone configuration file to be fetched. It will be merged with the current configuration. - + command_line_option_config_to_fetch_arg "URL, path or file" URL, path or file - + command_line_option_minimized Minimiser - + command_line_option_log_to_stdout Log to stdout some debug information while running - + command_line_option_print_app_logs_only "Print only logs from the application" Print only logs from the application - + hide_action "Cacher" "Afficher" Cacher - + show_action Afficher - + quit_action "Quitter" Quitter - + + check_for_update + Check for update + Rechercher une mise à jour + + + mark_all_read_action - Mark all as read + Marquer tout comme lu AuthenticationDialog - + account_settings_dialog_invalid_password_title "Authentification requise" Authentification requise - + account_settings_dialog_invalid_password_message La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. - + password Mot de passe - + cancel "Annuler Annuler - + assistant_account_login Connexion Connexion - + assistant_account_login_missing_password Veuillez saisir un mot de passe Veuillez saisir un mot de passe @@ -768,76 +826,76 @@ CallCore - + call_record_end_message "Enregistrement terminé" Enregistrement terminé - + call_record_saved_in_file_message "L'appel a été enregistré dans le fichier : %1" L'appel a été enregistré dans le fichier : %1 - - + + call_stats_codec_label "Codec: %1 / %2 kHz" Codec: %1 / %2 kHz - - + + call_stats_bandwidth_label "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" Bande passante : %1 %2 kbits/s %3 %4 kbits/s - - + + call_stats_loss_rate_label "Taux de perte: %1% %2%" Taux de perte: %1% %2% - + call_stats_jitter_buffer_label "Tampon de gigue: %1 ms" Tampon de gigue: %1 ms - + call_stats_resolution_label "Définition vidéo : %1 %2 %3 %4" Définition vidéo : %1 %2 %3 %4 - + call_stats_fps_label "FPS : %1 %2 %3 %4" FPS : %1 %2 %3 %4 - + media_encryption_dtls DTLS DTLS - + media_encryption_none None None - + media_encryption_srtp SRTP SRTP - + media_encryption_post_quantum "ZRTP - Post quantique" ZRTP - Post quantique @@ -846,73 +904,73 @@ CallForwardSettingsLayout - + settings_call_forward_activation_success Transfert d'appel activé vers : %1 - - - + + + settings_call_forward_to_voicemail Boîte vocale - + settings_call_forward_deactivation_success Transfert d'appel désactivé - + settings_call_forward_address_timeout Impossible d'établir le transfert d'appel, la requête a expiré - + settings_call_forward_address_cannot_be_empty Une adresse ou un numéro de téléphone est nécessaire - + settings_call_forward_address_progress_disabling Désactiver le transfert d'appel - + settings_call_forward_address_progress_enabling Activer le transfert d'appel pour : - + settings_call_forward_activate_title "Forward calls" Transférer les appels - + settings_call_forward_activate_subtitle "Enable call forwarding to voicemail or sip address" Transférer les appels vers une boîte vocale ou un numéro / une adresse SIP - + settings_call_forward_destination_choose Forward to destination Transférer les appels vers : - + settings_call_forward_to_sipaddress Adresse SIP - + settings_call_forward_sipaddress_title SIP Address Addresse SIP - + settings_call_forward_sipaddress_placeholder John.doe @@ -920,25 +978,25 @@ CallHistoryLayout - + meeting_info_join_title "Rejoindre la réunion" Rejoindre la réunion - + contact_call_action "Appel" Appel - + contact_message_action "Message" Message - + contact_video_call_action "Appel Video" Appel Vidéo @@ -947,7 +1005,7 @@ CallHistoryListView - + call_name_accessible_button Call %1 Appeler %1 @@ -956,42 +1014,42 @@ CallLayout - + meeting_event_conference_destroyed "Vous avez quitté la conférence" Vous avez quitté la conférence - + call_ended_by_user "Vous avez terminé l'appel" Vous avez terminé l'appel - + call_ended_by_remote "Votre correspondant a terminé l'appel" Votre correspondant a terminé l'appel - + conference_call_empty "En attente d'autres participants…" En attente d'autres participants… - + conference_share_link_title "Partager le lien" Partager le lien - + copied Copié - + information_popup_meeting_address_copied_to_clipboard Le lien de la réunion a été copié dans le presse-papier Le lien de la réunion a été copié dans le presse-papier @@ -1025,49 +1083,49 @@ CallListView - + meeting "Réunion Réunion - + call "Appel" Appel - + paused_call_or_meeting "%1 en pause" %1 en pause - + ongoing_call_or_meeting "%1 en cours" %1 en cours - + transfer_call_name_accessible_name Transfer call %1 Transférer l'appel %1 - + resume_call_name_accessible_name Resume %1 call Reprendre l'appel %1 - + pause_call_name_accessible_name Pause %1 call Mettre l'appel %1 en pause - + end_call_name_accessible_name End %1 call Terminer l'appel %1 @@ -1076,67 +1134,67 @@ CallModel - + call_error_no_response_toast "No response" Pas de réponse - + call_error_forbidden_resource_toast "403 : Forbidden resource" 403 : Forbidden resource - + call_error_not_answered_toast "Request timeout" La requête a expiré - + call_error_user_declined_toast "User declined the call" Le correspondant a décliné l'appel - + call_error_user_not_found_toast "User was not found" Le correspondant n'a pas été trouvé - + call_error_user_busy_toast "User is busy" Le correspondant est occupé - + call_error_incompatible_media_params_toast "User can&apos;t accept your call" Le correspondant ne peut accepter votre appel - + call_error_io_error_toast "Unavailable service or network error" Service indisponible ou erreur réseau - + call_error_do_not_disturb_toast "Le correspondant ne peut être dérangé" Le correspondant ne peut être dérangé - + call_error_temporarily_unavailable_toast "Temporarily unavailable" Temporairement indisponible - + call_error_server_timeout_toast "Server tiemout" Délai d'attente du serveur dépassé @@ -1181,7 +1239,7 @@ L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé. - + call_history_call_list_title "Appels" Appels @@ -1192,14 +1250,14 @@ Options de l' - + menu_delete_history "Supprimer l'historique" Supprimer l'historique - + call_history_list_options_accessible_name Call history options Options de la liste de l'historique d'appel @@ -1428,13 +1486,13 @@ CallStatistics - + call_stats_audio_title "Audio" Audio - + call_stats_video_title "Vidéo" Vidéo @@ -1443,236 +1501,236 @@ CallsWindow - + call_transfer_in_progress_toast "Transfert en cours, veuillez patienter" Transfert en cours, veuillez patienter - - + + information_popup_error_title Erreur - + call_transfer_failed_toast "Le transfert d'appel a échoué" Le transfert d'appel a échoué - + conference_error_empty_uri "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." La conférence n'a pas pu démarrer en raison d'une erreur d'uri. - + call_close_window_dialog_title "Terminer tous les appels en cours ?" Terminer tous les appels en cours ? - + call_close_window_dialog_message "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours. - + call_can_be_trusted_toast "Appareil authentifié" Appareil authentifié - + call_dir Appel %1 - + call_ended Appel terminé Appel terminé - + conference_paused Meeting paused Réunion mise en pause - + call_paused Call paused Appel mis en pause - + call_srtp_point_to_point_encrypted Appel chiffré de point à point Appel chiffré de point à point - + call_zrtp_sas_validation_required Vérification nécessaire Vérification nécessaire - + call_zrtp_end_to_end_encrypted Appel chiffré de bout en bout Appel chiffré de bout en bout - + call_not_encrypted "Appel non chiffré" Appel non chiffré - - + + call_waiting_for_encryption_info Waiting for encryption En attente de chiffrement - + call_paused_by_remote Call paused by remote Appel mis en pause par votre correspondant - + conference_user_is_recording "You are recording the meeting" Vous enregistrez la réunion - + call_user_is_recording "You are recording the call" Vous enregistrez l'appel - + conference_remote_is_recording "Someone is recording the meeting" Un participant enregistre la réunion - + call_remote_recording "%1 is recording the call" %1 enregistre l'appel - + call_stop_recording "Stop recording" Arrêter l'enregistrement - + add Ajouter - + call_transfer_current_call_title "Transférer %1 à…" Transférer %1 à… - - + + call_transfer_confirm_dialog_tittle "Confirmer le transfert" Confirmer le transfert - - + + call_transfer_confirm_dialog_message "Vous allez transférer %1 à %2." Vous allez transférer %1 à %2. - + call_action_start_new_call "Nouvel appel" Nouvel appel - - + + call_action_show_dialer "Pavé numérique" Pavé numérique - + call_action_change_layout "Modifier la disposition" Modifier la disposition - + call_action_go_to_calls_list "Liste d'appel" Liste d'appel - + Merger tous les appels call_action_merge_calls Merger tous les appels - - + + call_action_go_to_settings "Paramètres" Paramètres - + conference_action_screen_sharing "Partage de votre écran" Partage de votre écran - + conference_share_link_title Partager le lien de la réunion Partager le lien de la réunion - + copied Copié Copié - + information_popup_meeting_address_copied_to_clipboard Le lien de la réunion a été copié dans le presse-papier Le lien de la réunion a été copié dans le presse-papier - - - + + + conference_participants_list_title "Participants (%1)" Participants (%1) - + group_call_participant_selected %1 participant sélectionné @@ -1680,194 +1738,194 @@ - + meeting_schedule_add_participants_title Ajouter des participants - + call_encryption_title Chiffrement Chiffrement - + open_statistic_panel_accessible_name Ouvrir le panneau de statistiques - + conference_user_is_sharing_screen "You are sharing your screen" Vous partagez votre écran - + call_stop_screen_sharing "Stop sharing" Arrêter le partage - + stop_recording_accessible_name Stop recording Arrêter l'enregistrement - + stop_screen_sharing_accessible_name "Stop screen sharing" Arrêter le partage d'écran - + call_stats_title Statistiques Statistiques - - + + call_action_end_call "Terminer l'appel" Terminer l'appel - - + + call_action_resume_call "Reprendre l'appel" Reprendre l'appel - - + + call_action_pause_call "Mettre l'appel en pause" Mettre l'appel en pause - - + + call_action_transfer_call "Transférer l'appel" Transférer l'appel - - + + call_action_start_new_call_hint "Initier un nouvel appel" Initier un nouvel appel - - + + call_display_call_list_hint "Afficher la liste d'appels" Afficher la liste d'appels - - + + call_deactivate_video_hint "Désactiver la vidéo" "Activer la vidéo" Désactiver la vidéo - - + + call_activate_video_hint Activer la vidéo - - + + call_activate_microphone "Activer le micro" Activer le micro - - + + call_deactivate_microphone "Désactiver le micro" Désactiver le micro - - + + call_share_screen_hint Partager l'écran… Partager l'écran… - - + + call_open_chat_hint Open chat… Ouvrir le chat… - - + + call_rise_hand_hint "Lever la main" Lever la main - - + + call_send_reaction_hint "Envoyer une réaction" Envoyer une réaction - - + + call_manage_participants_hint "Gérer les participants" Gérer les participants - - + + call_more_options_hint "Plus d'options…" Plus d'options… - + call_action_change_conference_layout "Modifier la disposition" Modifier la disposition - + call_action_full_screen "Mode Plein écran" Mode Plein écran - + call_action_stop_recording "Terminer l'enregistrement" Terminer l'enregistrement - + call_action_record "Enregistrer l'appel" Enregistrer l'appel - + call_activate_speaker_hint "Activer le son" Activer le son - + call_deactivate_speaker_hint "Désactiver le son" Désactiver le son @@ -1876,86 +1934,86 @@ CarddavSettingsLayout - + settings_contacts_carddav_title Carnet d'adresse CardDAV Carnet d'adresse CardDAV - + settings_contacts_carddav_subtitle "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers. - + information_popup_error_title Erreur - + settings_contacts_carddav_popup_invalid_error "Vérifiez que toutes les informations ont été saisies." Vérifiez que toutes les informations ont été saisies. - + information_popup_synchronization_success_title Succès - + settings_contacts_carddav_synchronization_success_message "Le carnet d'adresse CardDAV est synchronisé." Le carnet d'adresse CardDAV est synchronisé. - + settings_contacts_carddav_popup_synchronization_error_title Erreur - + settings_contacts_carddav_popup_synchronization_error_message - "Erreur de synchronisation!" - Erreur de synchronisation! + "Erreur de synchronisation : %1" + Erreur de synchronisation : %1 - + settings_contacts_delete_carddav_server_title "Supprimer le carnet d'adresse CardDAV ?" Supprimer le carnet d'adresse CardDAV ? - + sip_address_display_name Nom d'affichage Nom d'affichage - + settings_contacts_carddav_server_url_title "URL du serveur" URL du serveur - + username Nom d'utilisateur - + password Mot de passe - + settings_contacts_carddav_realm_title Domaine d’authentification Domaine d’authentification - + settings_contacts_carddav_use_as_default_title "Stocker ici les contacts nouvellement crées" Stocker ici les contacts nouvellement crées @@ -1964,17 +2022,17 @@ ChangeLayoutForm - + conference_layout_grid Mosaïque - + conference_layout_active_speaker Intervenant actif - + conference_layout_audio_only Audio uniquement @@ -1998,13 +2056,13 @@ ChatCore - + info_toast_deleted_title Deleted Supprimé - + info_toast_deleted_message_history Message history has been deleted L'historique des messages a été supprimé @@ -2028,65 +2086,65 @@ ChatListView - + chat_message_is_writing_info %1 is writing… %1 est en train d'écrire… - + chat_message_draft_sending_text Brouillon : %1 - + chat_room_delete "Delete" Supprimer - + chat_room_mute Mettre en sourdine - + chat_room_unmute "Mute" Enlever la sourdine - + chat_room_mark_as_read "Mark as read" Marquer comme lu - + chat_room_leave "leave" Quitter la conversation - + chat_list_leave_chat_popup_title leave the conversation ? Quitter la conversation ? - + chat_list_leave_chat_popup_message You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? Vous ne pourrez plus envoyer ou recevoir de messages dans cette conversation. Souhaitez-vous continuer ? - + chat_list_delete_chat_popup_title Delete the conversation ? Supprimer la conversation ? - + chat_list_delete_chat_popup_message This conversation and all its messages will be deleted. Do You want to continue ? La conversation et tous ses messages seront supprimés. Souhaitez-vous continuer ? @@ -2095,25 +2153,25 @@ ChatMessage - + chat_message_copy_selection "Copy selection" Copier la sélection - + chat_message_copy "Copy" Copier - + chat_message_copied_to_clipboard_title Copied Copié - + chat_message_copied_to_clipboard_toast "to clipboard" dans le presse-papiers @@ -2149,25 +2207,25 @@ Vous avez répondu - + chat_message_reception_info "Reception info" Info de réception - + chat_message_reply Reply Répondre - + chat_message_forward Forward Transférer - + chat_message_delete "Delete" Supprimer @@ -2176,13 +2234,24 @@ ChatMessageContentCore - + + download_file_default_error + Error downloading file %1 + Erreur de téléchargement du fichier %1 + + + + info_popup_error_titile + Erreur + + + popup_error_title Error Erreur - + popup_open_file_error_does_not_exist_message Could not open file : unknown path %1 Impossible d'ouvrir le fichier : chemin inconnu (%1) @@ -2242,34 +2311,58 @@ Error ChatMessageContentModel - - popup_error_title - Error - Erreur + + download_error_object_doesnt_exist + Internal error : message object does not exist anymore ! + Erreur interne : l'objet ChatMessage n'existe plus ! - - popup_download_error_message + + download_file_server_error + Error while trying to download content : %1 + Erreur en tentant de télécharger le contenu : %1 + + + + download_file_error_no_safe_file_path + Unable to create safe file path for: %1 + Impossible de créer le chemin : %1 + + + + download_file_error_file_transfer_unavailable This file was already downloaded and is no more on the server. Your peer have to resend it if you want to get it - Ce fichier a déjà été téléchargé et n'est plus sur le serveur. Votre correspondant devra vous le renvoyer si vous voulez y avoir accès. + Le fichier a déjà été téléchargé et n'est plus disponible sur le serveur. Votre correspondant devra vous le renvoyez si vous souhaitez l'obtenir + + + + download_file_error_null_name + Content name is null, can't download it ! + Le nom du contenu est nul, impossible de le télécharger ! + + + + download_file_error_unable_to_download + Unable to download file of entry %1 + Impossible de télécharger le fichier : %1 ChatMessageCore - + all_reactions_label "Reactions": all reactions for one message label Réactions - + info_toast_deleted_title Deleted Supprimé - + info_toast_deleted_message The message has been deleted Le message a été supprimé @@ -2329,44 +2422,44 @@ Error ChatMessagesListView - - + + popup_info_find_message_title Find message Trouver un message - + info_popup_no_result_message No result found Aucun résultat trouvé - + info_popup_first_result_message First result reached Premier résultat atteint - + info_popup_last_result_message Last result reached Dernier résultat atteint - + chat_message_list_encrypted_header_title End to end encrypted chat Conversation chiffrée de bout en bout - + unencrypted_conversation_warning This conversation is not encrypted ! Cette conversation n'est pas chiffrée ! - + chat_message_list_encrypted_header_message Messages in this conversation are e2e encrypted. Only your correspondent can decrypt them. @@ -2374,7 +2467,7 @@ Error en bout. Seul votre correspondant peut les déchiffrer. - + chat_message_list_not_encrypted_header_message Messages are not end to end encrypted, may sure you don't share any sensitive information ! @@ -2382,7 +2475,7 @@ en bout. Seul votre correspondant peut les déchiffrer. assurez-vous de ne pas partager d’informations sensibles ! - + chat_message_is_writing_info %1 is writing… %1 est en train d'écrire… @@ -2403,92 +2496,115 @@ en bout. Seul votre correspondant peut les déchiffrer. Aucune conversation - + + info_popup_error_title + Erreur + + + + info_popup_chatroom_creation_failed + Chat room creation failed ! + La création de la conversation a échoué ! + + + + loading_popup_chatroom_creation_pending_message + Chat room is being created... + Création de la conversation en cours... + + + chat_dialog_delete_chat_title Supprimer la conversation ? Supprimer la conversation ? - + chat_dialog_delete_chat_message "La conversation et tous ses messages seront supprimés." La conversation et tous ses messages seront supprimés. - + chat_list_title "Conversations" Conversations - + menu_mark_all_as_read "mark all as read" Tout marquer comme lu - + chat_search_in_history "Rechercher une conversation" Rechercher une conversation - + list_filter_no_result_found "Aucun résultat…" Aucun résultat… - + chat_list_empty_history "Aucune conversation dans votre historique" Aucune conversation dans votre historique - + chat_action_start_new_chat "New chat" Nouvelle conversation - + chat_start_group_chat_title "Nouveau groupe" Nouveau groupe - + chat_action_start_group_chat "Créer" Créer - - - + + + information_popup_error_title Erreur - + information_popup_chat_creation_failed_message "La création a échoué" La création a échoué - + group_chat_error_must_have_name "Un nom doit être donné au groupe Un nom doit être donné au groupe - + + group_chat_error_no_participant + "Please select at least one participant + Veuillez sélectionner au moins un participant + + + group_call_error_not_connected "Vous n'etes pas connecté" Vous n'êtes pas connecté - + chat_creation_in_progress Creation de la conversation en cours … Création de la conversation en cours… @@ -2566,19 +2682,19 @@ en bout. Seul votre correspondant peut les déchiffrer. Contact - + information_popup_error_title Erreur Erreur - + information_popup_voicemail_address_undefined_message L'URI de messagerie vocale n'est pas définie. L'URI de messagerie vocale n'est pas définie. - + account_settings_name_accessible_name Account settings of %1 Paramaètres de compte de %1 @@ -2608,8 +2724,8 @@ en bout. Seul votre correspondant peut les déchiffrer. close_accessible_name - Close %n - Fermer %n + Close %1 + Fermer %1 @@ -2654,78 +2770,78 @@ en bout. Seul votre correspondant peut les déchiffrer. Supprimer l'image du contact - - + + contact_editor_first_name "Prénom" Prénom - - + + contact_editor_last_name "Nom" Nom - - + + contact_editor_company "Entreprise" Entreprise - - + + contact_editor_job_title "Fonction" Fonction - - + + sip_address Adresse SIP - + sip_address_number_accessible_name "SIP address number %1" Adresse SIP numéro %1 - + remove_sip_address_accessible_name "Remove SIP address %1" Retirer l'adresse SIP %1 - + new_sip_address_accessible_name "New SIP address" Nouvelle adresse SIP - + phone_number_number_accessible_name "Phone number number %1" Numéro de téléphone numéro - + remove_phone_number_accessible_name Remove phone number %1 Retirer le numéro de téléphone %1 - + new_phone_number_accessible_name "New phone number" Nouveau numéro de téléphone - - + + phone "Téléphone" Téléphone @@ -2734,53 +2850,53 @@ en bout. Seul votre correspondant peut les déchiffrer. ContactListItem - + contact_details_remove_from_favourites "Enlever des favoris" Enlever des favoris - + contact_details_add_to_favourites "Ajouter aux favoris" Ajouter aux favoris - + Partager Partager - + information_popup_error_title Erreur - + information_popup_vcard_creation_error La création du fichier vcard a échoué La création du fichier vcard a échoué - + information_popup_vcard_creation_title VCard créée VCard créée - + information_popup_vcard_creation_success "VCard du contact enregistrée dans %1" VCard du contact enregistrée dans %1 - + contact_sharing_email_title Partage de contact Partage de contact - + contact_details_delete "Supprimer" Supprimer @@ -2804,161 +2920,161 @@ en bout. Seul votre correspondant peut les déchiffrer. ContactPage - + contacts_add "Ajouter un contact" Ajouter un contact - + contacts_list_empty "Aucun contact pour le moment" Aucun contact pour le moment - + contact_new_title "Nouveau contact" Nouveau contact - + create Créer - + contact_edit_title "Modifier contact" Modifier contact - + save Enregistrer - + contact_dialog_delete_title Supprimer %1 ?" Supprimer %1 ? - + contact_dialog_delete_message Ce contact sera définitivement supprimé. Ce contact sera définitivement supprimé. - + contact_deleted_toast "Contact supprimé" Contact supprimé - + contact_deleted_message "%1 a été supprimé" %1 a été supprimé - + contact_dialog_devices_trust_popup_title "Augmenter la confiance" Augmenter la confiance - + contact_dialog_devices_trust_popup_message "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ? - + popup_do_not_show_again Ne plus afficher Ne plus afficher - + cancel Annuler - + dialog_call "Appeler" Appeler - + contact_dialog_devices_trust_help_title "Niveau de confiance" Niveau de confiance - + contact_dialog_devices_trust_help_message "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal. - + dialog_ok "Ok" Ok - + bottom_navigation_contacts_label "Contacts" Contacts - + search_bar_look_for_contact_text Rechercher un contact Rechercher un contact - + list_filter_no_result_found Aucun résultat… Aucun résultat… - + contact_list_empty Aucun contact pour le moment Aucun contact pour le moment - + expand_accessible_name Expand %1 Étendre %1 - + shrink_accessible_name Shrink %1 Réduire %1 - + create_contact_accessible_name Create new contact Créer un nouveau contact - + more_info_accessible_name More info %1 Plus d'information %1 - - + + contact_details_edit Edit ---------- @@ -2966,151 +3082,151 @@ en bout. Seul votre correspondant peut les déchiffrer. Éditer - + contact_call_action "Appel" Appel - + contact_message_action "Message" Message - + contact_video_call_action "Appel vidéo" Appel vidéo - + contact_details_numbers_and_addresses_title "Coordonnées" Coordonnées - + call_adress_accessible_name Call address %1 Appeller l'adresse %1 - + contact_details_company_name "Société :" Société : - + contact_details_job_title "Poste :" Poste : - + contact_details_medias_title "Medias" Medias - - + + contact_details_medias_subtitle "Afficher les medias partagés" Afficher les medias partagés - + contact_details_trust_title "Confiance" Confiance - + contact_dialog_devices_trust_title "Niveau de confiance - Appareils vérifiés" Niveau de confiance - Appareils vérifiés - + contact_details_no_device_found "Aucun appareil" Aucun appareil - + contact_device_without_name "Appareil inconnu" Appareil inconnu - + contact_make_call_check_device_trust "Vérifier" Vérifier - + verify_device_accessible_name Verify %1 device Vérifier l'appareil %1 - + contact_details_actions_title "Autres actions" Autres actions - + contact_details_remove_from_favourites "Retirer des favoris" Retirer des favoris - + contact_details_add_to_favourites "Ajouter aux favoris" Ajouter aux favoris - + contact_details_share "Partager" Partager - + information_popup_error_title Erreur - + contact_details_share_error_mesage "La création du fichier vcard a échoué" La création du fichier vcard a échoué - + contact_details_share_success_title "VCard créée" VCard créée - + contact_details_share_success_mesage "VCard du contact enregistrée dans %1" VCard du contact enregistrée dans %1 - + contact_details_share_email_title "Partage de contact" Partage de contact - + contact_details_delete "Supprimer ce contact" Supprimer ce contact @@ -3212,147 +3328,161 @@ en bout. Seul votre correspondant peut les déchiffrer. ConversationInfos - + one_one_infos_call "Appel" Appel - + one_one_infos_unmute "Sourdine" Réactiver les notifications - + one_one_infos_mute Sourdine - + group_infos_participants Participants (%1) - + group_infos_media_docs Medias & documents Medias & documents - + group_infos_shared_medias Shared medias Médias partagés - + group_infos_shared_docs Shared documents Documents partagés - + group_infos_other_actions Other actions Autres actions - + group_infos_ephemerals Messages éphémères : - + group_infos_enable_ephemerals Activer les messages éphémères - + group_infos_meeting Schedule a meeting Programmer une réunion - + group_infos_leave_room Leave chat room Quitter la conversation - + group_infos_leave_room_toast_title Leave Chat Room ? Quitter la conversation ? - + group_infos_leave_room_toast_message All the messages will be removed from the chat room. Do you want to continue ? Vous ne recevrez ni pourrez envoyer des messages dans cette conversation, quitter ? - + group_infos_delete_history Delete history Supprimer l'historique - + group_infos_delete_history_toast_title Delete history ? Supprimer l'historique ? - + group_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? Tous les messages seront supprimés. Souhaitez-vous continuer ? - + one_one_infos_open_contact Show contact Voir le contact - + one_one_infos_create_contact Create contact Créer un contact - + one_one_infos_ephemerals Messages éphémères : - + one_one_infos_enable_ephemerals Activer les messages éphémères - + one_one_infos_delete_history Supprimer l'historique - + one_one_infos_delete_history_toast_title Delete history ? Supprimer l'historique ? - + one_one_infos_delete_history_toast_message All the messages will be removed from the chat room. Do you want to continue ? Tous les messages seront supprimés. Souhaitez-vous continuer ? + + CoreModel + + + info_popup_error_title + Erreur + + + + fetching_config_failed_error_message + "Remote provisioning cannot be retrieved" + La configuration distante n'a pas pu être récupérée + + CreationFormLayout - + search_bar_look_for_contact_text "Rechercher un contact" Rechercher un contact @@ -3361,92 +3491,98 @@ en bout. Seul votre correspondant peut les déchiffrer. DebugSettingsLayout - + settings_debug_clean_logs_message "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" Les traces de débogage seront supprimées. Souhaitez-vous continuer ? - + settings_debug_share_logs_message "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? - + settings_debug_clipboard "Presse-papier" Presse-papier - + settings_debug_email "E-Mail" E-Mail - + debug_settings_trace "Traces %1" Traces %1 - + information_popup_email_sharing_failed "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2. - - + + information_popup_error_title Une erreur est survenue. Une erreur est survenue. - + settings_debug_enable_logs_title "Activer les traces de débogage" Activer les traces de débogage - + settings_debug_enable_full_logs_title "Activer les traces de débogage intégrales" Activer les traces de débogage intégrales - + settings_debug_delete_logs_title "Supprimer les traces" Supprimer les traces - + settings_debug_share_logs_title "Partager les traces" Partager les traces - + settings_debug_share_logs_loading_message "Téléversement des traces en cours …" Téléversement des traces en cours… - + settings_debug_app_version_title "Version de l'application" Version de l'application - + settings_debug_sdk_version_title "Version du SDK" Version du SDK - + + settings_debug_qt_version_title + "Qt Version" + Version de Qt + + + settings_debug_share_logs_error "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1 @@ -3455,13 +3591,13 @@ en bout. Seul votre correspondant peut les déchiffrer. DecoratedTextField - + textfield_error_message_cannot_be_empty "ne peut être vide" ne peut être vide - + textfield_error_message_unknown_format "Format non reconnu" Format non reconnu @@ -3470,15 +3606,15 @@ en bout. Seul votre correspondant peut les déchiffrer. Dialog - - + + dialog_confirm "Confirmer" Confirmer - - + + dialog_cancel "Annuler" Annuler @@ -3487,49 +3623,49 @@ en bout. Seul votre correspondant peut les déchiffrer. EncryptionSettings - + call_stats_media_encryption_title "Encryption :" Chiffrement : - + call_stats_media_encryption Media encryption : %1 Chiffrement du média : %1 - + call_stats_zrtp_cipher_algo "Algorithme de chiffrement : %1" Algorithme de chiffrement : %1 - + call_stats_zrtp_key_agreement_algo "Algorithme d'accord de clé : %1" Algorithme d'accord de clé : %1 - + call_stats_zrtp_hash_algo "Algorithme de hachage : %1" Algorithme de hachage : %1 - + call_stats_zrtp_auth_tag_algo "Algorithme d'authentification : %1" Algorithme d'authentification : %1 - + call_stats_zrtp_sas_algo "Algorithme SAS : %1" Algorithme SAS : %1 - + call_zrtp_validation_button_label "Validation chiffrement" Validation chiffrement @@ -3538,42 +3674,42 @@ en bout. Seul votre correspondant peut les déchiffrer. EphemeralSettings - + title Messages éphémères - + explanations En activant les messages éphémères dans cette discussion, les messages envoyés seront automatiquement détruits après le délai défini. - + one_minute 1 minute - + one_hour 1 heure - + one_day 1 jour - + one_week 1 semaine - + disabled Désactivé - + custom Personnalisé: @@ -3581,60 +3717,60 @@ en bout. Seul votre correspondant peut les déchiffrer. EventLogCore - + conference_created_event Vous avez rejoint le groupe - + conference_created_terminated Vous avez quitté le groupe - + conference_participant_added_event %1 a rejoint le groupe - + conference_participant_removed_event %1 ne fait plus partie du groupe - - + + conference_security_event Niveau de sécurité dégradé par %1 - + conference_ephemeral_message_enabled_event Messages éphémères activés Expiration : %1 - + conference_ephemeral_message_lifetime_changed_event Messages éphémères mis à jour Expiration : %1 - + conference_ephemeral_message_disabled_event Messages éphémères désactivés - + conference_subject_changed_event Nouveau sujet : %1 - + conference_participant_unset_admin_event %1 n'est plus admin - + conference_participant_set_admin_event %1 est maintenant admin @@ -3674,55 +3810,55 @@ Expiration : %1 GroupChatInfoParticipants - + group_infos_manage_participants_title "Gérer des participants" Gérer les participants - + group_infos_participant_is_admin Admin - + menu_see_existing_contact "Show contact" Voir le contact - + menu_add_address_to_contacts "Add to contacts" Ajouter aux contacts - + group_infos_give_admin_rights Donner les droits admins - + group_infos_remove_admin_rights Retirer les droits admins - + group_infos_copy_sip_address Copier l’adresse SIP - + group_infos_remove_participant Retirer le participant - + group_infos_remove_participants_toast_title Retirer le participant ? - + group_infos_remove_participants_toast_message La participant sere retiré de la conversation @@ -3730,20 +3866,20 @@ Expiration : %1 GroupCreationFormLayout - + return_accessible_name Return Retour - + group_start_dialog_subject_hint "Nom du groupe" Nom du groupe - + required "Requis" Requis @@ -3752,50 +3888,56 @@ Expiration : %1 HelpPage - + help_title "Aide" Aide - - + + help_about_title "À propos de %1" À propos de %1 - + help_about_privacy_policy_title "Règles de confidentialité" Règles de confidentialité - + help_about_privacy_policy_subtitle Quelles informations %1 collecte et utilise Quelles informations %1 collecte et utilise - + help_about_version_title "Version" Version - + + help_check_for_update_button_label + Check update + Rechercher une mise à jour + + + help_about_gpl_licence_title "Licences GPLv3" Licences GPLv3 - + help_about_contribute_translations_title "Contribuer à la traduction de %1" Contribuer à la traduction de %1 - + help_troubleshooting_title "Dépannage" Dépannage @@ -3935,7 +4077,7 @@ Expiration : %1 LoadingPopup - + cancel Annuler @@ -4110,7 +4252,7 @@ Expiration : %1 MagicSearchList - + device_id Téléphone @@ -4343,7 +4485,7 @@ Expiration : %1 ManageParticipants - + group_infos_manage_participants Participants @@ -4351,37 +4493,37 @@ Expiration : %1 MeetingForm - + meeting_schedule_meeting_label "Réunion" Réunion - + meeting_schedule_broadcast_label "Webinar" Webinar - + meeting_schedule_subject_hint "Ajouter un titre" Ajouter un titre - + meeting_schedule_description_hint "Ajouter une description" Ajouter une description - + meeting_schedule_add_participants_title "Ajouter des participants" Ajouter des participants - + meeting_schedule_send_invitations_title "Envoyer une invitation aux participants" Envoyer une invitation aux participants @@ -4390,19 +4532,19 @@ Expiration : %1 MeetingListView - + meeting_info_cancelled "Réunion annulée" Réunion annulée - + meetings_list_no_meeting_for_today "Aucune réunion aujourd'hui" Aucune réunion aujourd'hui - + meeting_info_delete "Supprimer la réunion" Supprimer la réunion @@ -4423,163 +4565,163 @@ Expiration : %1 Aucune réunion - + meeting_schedule_cancel_dialog_message "Souhaitez-vous annuler et supprimer cette réunion ?" Souhaitez-vous annuler et supprimer cette réunion ? - + meeting_schedule_delete_dialog_message Souhaitez-vous supprimer cette réunion ? Souhaitez-vous supprimer cette réunion ? - + meeting_schedule_cancel_and_delete_action "Annuler et supprimer" Annuler et supprimer - + meeting_schedule_delete_only_action "Supprimer seulement" Supprimer seulement - + meeting_schedule_delete_action "Supprimer" Supprimer - + back_action Retour Retour - + meetings_list_title Réunions Réunions - + meetings_search_hint "Rechercher une réunion" Rechercher une réunion - + list_filter_no_result_found "Aucun résultat…" Aucun résultat… - + meetings_empty_list "Aucune réunion" Aucune réunion - - + + meeting_schedule_title "Nouvelle réunion" Nouvelle réunion - + create Créer - - - - - - + + + + + + information_popup_error_title Erreur - - + + meeting_schedule_mandatory_field_not_filled_toast Veuillez saisir un titre et sélectionner au moins un participant Veuillez saisir un titre et sélectionner au moins un participant - - + + meeting_schedule_duration_error_toast "La fin de la conférence doit être plus récente que son début" La fin de la conférence doit être plus récente que son début - - + + meeting_schedule_creation_in_progress "Création de la réunion en cours …" Création de la réunion en cours… - + meeting_info_created_toast "Réunion planifiée avec succès" Réunion planifiée avec succès - + meeting_failed_to_schedule_toast "Échec de création de la réunion !" Échec de création de la réunion ! - + save Enregistrer - - + + saved "Enregistré" Enregistré - + meeting_info_updated_toast "Réunion mise à jour" Réunion mise à jour - + meeting_schedule_edit_in_progress "Modification de la réunion en cours…" Modification de la réunion en cours… - + meeting_failed_to_edit_toast "Échec de la modification de la réunion !" Échec de la modification de la réunion ! - + meeting_schedule_add_participants_title "Ajouter des participants" Ajouter des participants - + meeting_schedule_add_participants_apply Appliquer - + group_call_participant_selected "%n participant(s) sélectionné(s)" @@ -4588,31 +4730,31 @@ Expiration : %1 - + meeting_info_delete "Supprimer la réunion" Supprimer la réunion - + meeting_address_copied_to_clipboard_toast "Adresse de la réunion copiée" Adresse de la réunion copiée - + meeting_schedule_timezone_title "Fuseau horaire" Fuseau horaire - + meeting_info_organizer_label "Organisateur" Organisateur - + meeting_info_join_title "Rejoindre la réunion" Rejoindre la réunion @@ -4621,19 +4763,19 @@ Expiration : %1 MeetingsSettingsLayout - + settings_meetings_display_title "Affichage" Affichage - + settings_meetings_default_layout_title "Mode d’affichage par défaut" Mode d’affichage par défaut - + settings_meetings_default_layout_subtitle "Le mode d’affichage des participants en réunions" Le mode d’affichage des participants en réunions @@ -4642,7 +4784,7 @@ Expiration : %1 MessageImdnStatusInfos - + message_details_status_title Message status Statut du message @@ -4651,13 +4793,13 @@ Expiration : %1 MessageReactionsInfos - + message_details_reactions_title Reactions Réactions - + click_to_delete_reaction_info Click to delete Appuyez pour supprimer @@ -4666,13 +4808,13 @@ Expiration : %1 MessageSharedFilesInfos - + no_shared_medias No media Aucun média - + no_shared_documents No document Aucun document @@ -4730,13 +4872,13 @@ Expiration : %1 NetworkSettingsLayout - + settings_network_title "Réseau" Réseau - + settings_network_allow_ipv6 "Autoriser l'IPv6" Autoriser l'IPv6 @@ -4745,7 +4887,7 @@ Expiration : %1 NewCallForm - + call_transfer_active_calls_label "Appels en cours" Appels en cours @@ -4769,19 +4911,19 @@ Expiration : %1 NotificationReceivedCall - + call_audio_incoming "Appel entrant" Appel entrant - + dialog_accept "Accepter" Accepter - + dialog_deny "Refuser Refuser @@ -4790,24 +4932,24 @@ Expiration : %1 Notifier - + new_call_alert_accessible_name New call from %1 Nouvel appel de %1 - + new_voice_message 'Voice message received!' : message to warn the user in a notofication for voice messages. Message vocal reçu ! - + new_file_message Fichier reçu ! - + new_conference_invitation 'Conference invitation received!' : Notification about receiving an invitation to a conference. Nouvelle invitation à une conférence ! @@ -4819,7 +4961,7 @@ Expiration : %1 Nouveaux messages reçus ! - + new_message_alert_accessible_name New message on chatroom %1 Nouveau message sur la conversation %1 @@ -4943,13 +5085,13 @@ Expiration : %1 ParticipantListView - + meeting_participant_is_admin_label "Admin" Admin - + meeting_add_participants_title "Ajouter des participants" Ajouter des participants @@ -4958,13 +5100,13 @@ Expiration : %1 PhoneNumberInput - + prefix_phone_number_accessible_name %1 prefix %1 préfix - + number_phone_number_accessible_name %1 number %1 indicatif téléphonique @@ -5016,7 +5158,7 @@ Expiration : %1 PresenceNoteLayout - + contact_presence_note_title Message personnalisé @@ -5024,12 +5166,12 @@ Expiration : %1 PresenceSetCustomStatus - + contact_presence_button_set_custom_status_title Définir un statut personnalisé - + contact_presence_button_save_custom_status Enregistrer @@ -5059,90 +5201,96 @@ Expiration : %1 + message_state_idle + "idle" + inactif + + + message_state_in_progress "delivery in progress" envoi en cours - + message_state_delivered sent envoyé - + message_state_not_delivered error en erreur - + message_state_file_transfer_error cannot get file from server impossible de récupérer le fichier depuis le serveur - + message_state_file_transfer_done file transfer has been completed successfully fichier transféré avec succès - + message_state_delivered_to_user received reçu - + message_state_displayed read lu - + message_state_file_transfer__in_progress file transfer in progress transfert du fichier en cours - + message_state_pending_delivery pending delivery envoi en attente - + message_state_file_transfer_cancelling file transfer canceled transfert du fichier annulé - + incoming "Entrant" Entrant - + outgoing "Sortant" Sortant - + conference_layout_active_speaker "Participant actif" Intervenant actif - + conference_layout_grid "Mosaïque" Mosaïque - + conference_layout_audio_only "Audio uniquement" Audio uniquement @@ -5151,37 +5299,37 @@ Expiration : %1 RegisterCheckingPage - + email "email" email - + phone_number "numéro de téléphone" numéro de téléphone - + confirm_register_title "Inscription | Confirmer votre %1" Inscription | Confirmer votre %1 - + assistant_account_creation_confirmation_explanation Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous - + assistant_account_creation_confirmation_did_not_receive_code "Vous n'avez pas reçu le code ?" Vous n'avez pas reçu le code ? - + assistant_account_creation_confirmation_resend_code "Renvoyer un code" Renvoyer un code @@ -5445,28 +5593,28 @@ Pour les activer dans un projet commercial, merci de nous contacter.Paramètres avancés - - + + login_proxy_server_url "Outbound SIP Proxy URI" URI du proxy SIP sortant - + login_proxy_server_url_tooltip "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." Si ce champ est rempli, l’outbound proxy sera activé automatiquement. Laissez-le vide pour le désactiver. - - + + login_registrar_uri "Registrar URI" Registrar URI - - + + login_id "Authentication ID (if different)" Identifiant de connexion (si différent) @@ -5475,37 +5623,37 @@ Pour les activer dans un projet commercial, merci de nous contacter. ScreencastSettings - + screencast_settings_choose_window_text "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants - + screencast_settings_all_screen_label "Ecran entier" Écran entier - + screencast_settings_one_window_label "Fenêtre" Fenêtre - + screencast_settings_screen "Ecran %1" Écran %1 - + stop "Stop Stop - + share "Partager" Partager @@ -5529,43 +5677,43 @@ Pour les activer dans un projet commercial, merci de nous contacter. SecurityModePage - + manage_account_choose_mode_title "Choisir votre mode" Choisir votre mode - + manage_account_choose_mode_message "Vous pourrez changer de mode plus tard." Vous pourrez changer de mode plus tard. - + manage_account_e2e_encrypted_mode_default_title "Chiffrement de bout en bout" Chiffrement de bout en bout - + manage_account_e2e_encrypted_mode_default_summary "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges. - + manage_account_e2e_encrypted_mode_interoperable_title "Interoperable" Interopérable - + manage_account_e2e_encrypted_mode_interoperable_summary "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP. - + dialog_continue "Continuer" Continuer @@ -5574,13 +5722,13 @@ Pour les activer dans un projet commercial, merci de nous contacter. SecuritySettingsLayout - + settings_security_enable_vfs_title "Chiffrer tous les fichiers" Chiffrer tous les fichiers - + settings_security_enable_vfs_subtitle "Attention, vous ne pourrez pas revenir en arrière !" Attention, vous ne pourrez pas revenir en arrière ! @@ -5589,42 +5737,42 @@ Pour les activer dans un projet commercial, merci de nous contacter. SelectedChatView - + chat_view_group_call_toast_message Démarrer un appel de groupe ? - + unencrypted_conversation_warning This conversation is not encrypted ! Cette conversation n'est pas chiffrée ! - + reply_to_label Reply to %1 Réponse à %1 - + shared_medias_title Shared medias Médias partagés - + shared_documents_title Shared documents Documents partagés - + forward_to_title Forward to… Transférer à… - + conversations_title Conversations Conversations @@ -5717,13 +5865,13 @@ Pour les activer dans un projet commercial, merci de nous contacter. Sticker - + conference_participant_joining_text "rejoint…" rejoint… - + conference_participant_paused_text "En pause" En pause @@ -5753,43 +5901,43 @@ Pour les activer dans un projet commercial, merci de nous contacter.L'adresse n'est pas interprétable comme une adresse SIP - + group_call_error_no_account Impossible de créer l'appel de groupe, le compte par défaut n'est pas défini - + group_call_error_participants_invite Impossible d'inviter les participants à l'appel de groupe - + group_call_error_creation L'appel de groupe n'a pas pu être créé - + voice_recording_duration "Voice recording (%1)" : %1 is the duration formated in mm:ss Message vocal (%1) - + unknown_audio_device_name Appareil inconnu - + conference_invitation Invitation à une réunion - + conference_invitation_cancelled Annulation d'une réunion - + conference_invitation_updated Modification d'une réunion @@ -5797,7 +5945,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. Utils - + nMinute %1 minute @@ -5805,7 +5953,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + nHour %1 heure @@ -5813,8 +5961,8 @@ Pour les activer dans un projet commercial, merci de nous contacter. - - + + nDay %1 jour @@ -5822,7 +5970,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + nWeek %1 semaine @@ -5830,7 +5978,7 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + nSeconds %1 seconde @@ -5838,27 +5986,27 @@ Pour les activer dans un projet commercial, merci de nous contacter. - + contact_presence_status_available Disponible - + contact_presence_status_busy Occupé - + contact_presence_status_do_not_disturb Ne pas déranger - + contact_presence_status_offline Hors ligne - + contact_presence_status_away Inactif/Absent @@ -5871,8 +6019,8 @@ Pour les activer dans un projet commercial, merci de nous contacter. - - + + information_popup_error_title Error ---------- @@ -5885,7 +6033,7 @@ Failed to create 1-1 conversation with %1 ! L'appel de groupe n'a pas pu être créé - + number_of_years %n an(s) @@ -5894,7 +6042,7 @@ Failed to create 1-1 conversation with %1 ! - + number_of_month "%n mois" @@ -5903,7 +6051,7 @@ Failed to create 1-1 conversation with %1 ! - + number_of_weeks %n semaine(s) @@ -5912,7 +6060,7 @@ Failed to create 1-1 conversation with %1 ! - + number_of_days %n jour(s) @@ -5921,25 +6069,25 @@ Failed to create 1-1 conversation with %1 ! - + today "Aujourd'hui" Aujourd'hui - + yesterday "Hier Hier - + duration_tomorrow Tomorrow Demain - + duration_number_of_days %1 jour(s) @@ -5948,86 +6096,86 @@ Failed to create 1-1 conversation with %1 ! - + call_zrtp_token_verification_possible_characters "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 - - + + information_popup_chatroom_creation_error_message Failed to create 1-1 conversation with %1 ! Erreur lors de la création de la conversation avec %1 - + recorder_error Error with the recorder Erreur avec l'enregistreur - - - + + + chat_error Erreur dans le chat - + chat_message_forward_error Cannot forward an invalid message Impossible de transférer : message invalide - - - - - - + + + + + + info_popup_error_title Error Erreur - + info_popup_forward_message_error Could not forward message : %1 Impossible de transférer le message : %1 - + info_popup_send_forward_message_error_message Failed to create forward message Impossible de créer le message - + chat_message_reply_error Cannot reply to invalid message Impossible de répondre : message invalide - + info_popup_reply_message_error Could not send reply message : %1 Impossible d'envoyer la réponse : %1 - + info_popup_send_reply_message_error_message Failed to create reply message Impossible de créer le message - + info_popup_send_voice_message_error_message Could not send voice message : %1 Impossible d'envoyer le message vocal : %1 - + info_popup_send_voice_message_sending_error_message Failed to create message from record Impossible de créer le message vocal @@ -6036,32 +6184,32 @@ Failed to create 1-1 conversation with %1 ! WaitingRoom - + meeting_waiting_room_title Participer à : Participer à : - + meeting_waiting_room_join "Rejoindre" Rejoindre - - + + cancel Cancel Annuler - + meeting_waiting_room_joining_title "Connexion à la réunion" Connexion à la réunion - + meeting_waiting_room_joining_subtitle "Vous allez rejoindre la réunion dans quelques instants…" Vous allez rejoindre la réunion dans quelques instants… @@ -6070,61 +6218,61 @@ Failed to create 1-1 conversation with %1 ! WelcomePage - + welcome_page_title "Bienvenue" Bienvenue - + welcome_page_subtitle "sur %1" sur %1 - + welcome_carousel_skip "Passer" Passer - + welcome_page_1_message "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>. - + welcome_page_2_title "Sécurisé" Sécurisé - + welcome_page_2_message "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>. - + welcome_page_3_title "Open Source" Open Source - + welcome_page_3_message "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b> - + next "Suivant" Suivant - + start "Commencer" Commencer @@ -6133,61 +6281,61 @@ Failed to create 1-1 conversation with %1 ! ZrtpAuthenticationDialog - + call_dialog_zrtp_validate_trust_title Vérification de sécurité Vérification de sécurité - + call_zrtp_sas_validation_skip "Passer" Passer - + call_dialog_zrtp_validate_trust_warning_message "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes : - + call_dialog_zrtp_validate_trust_message "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : - + call_dialog_zrtp_validate_trust_local_code_label "Votre code :" Votre code : - + call_dialog_zrtp_validate_trust_remote_code_label "Code correspondant :" Code correspondant : - + call_dialog_zrtp_validate_trust_letters_do_not_match_text "Le code fourni ne correspond pas." Le code fourni ne correspond pas. - + call_dialog_zrtp_security_alert_message "La confidentialité de votre appel peut être compromise !" La confidentialité de votre appel peut être compromise ! - + call_dialog_zrtp_validate_trust_letters_do_not_match "Aucune correspondance" Aucune correspondance - + call_action_hang_up "Raccrocher" Raccrocher @@ -6196,1117 +6344,1117 @@ Failed to create 1-1 conversation with %1 ! country - + Afghanistan Afghanistan - + Albania Albanie - + Algeria Algérie - + AmericanSamoa Samoa américaines - + Andorra Andorre - + Angola Angola - + Anguilla Anguilla - + AntiguaAndBarbuda Antigua-et-Barbuda - + Argentina Argentine - + Armenia Arménie - + Aruba Aruba - + Australia Australie - + Austria Autriche - + Azerbaijan Azerbaïdjan - + Bahamas Bahamas - + Bahrain Bahreïn - + Bangladesh Bangladesh - + Barbados Barbade - + Belarus Biélorussie - + Belgium Belgique - + Belize Belize - + Benin Bénin - + Bermuda Bermudes - + Bhutan Bhoutan - + Bolivia Bolivie - + BosniaAndHerzegowina Bosnie-Herzégovine - + Botswana Botswana - + Brazil Brésil - + Brunei Brunéi - + Bulgaria Bulgarie - + BurkinaFaso Burkina Faso - + Burundi Burundi - + Cambodia Cambodge - + Cameroon Cameroun - + Canada Canada - + CapeVerde Cap-Vert - + CaymanIslands Îles Caïmans - + CentralAfricanRepublic République centrafricaine - + Chad Tchad - + Chile Chili - + China Chine - + Colombia Colombie - + Comoros Comores - + PeoplesRepublicOfCongo République populaire du Congo - + CookIslands Îles Cook - + CostaRica Costa Rica - + IvoryCoast Côte d'Ivoire - + Croatia Croatie - + Cuba Cuba - + Cyprus Chypre - + CzechRepublic République Tchèque - + Denmark Danemark - + Djibouti Djibouti - + Dominica Dominique - + DominicanRepublic République dominicaine - + Ecuador Équateur - + Egypt Égypte - + ElSalvador El Salvador - + EquatorialGuinea Guinée équatoriale - + Eritrea Érythrée - + Estonia Estonie - + Ethiopia Éthiopie - + FalklandIslands Îles Falkland - + FaroeIslands Îles Féroé - + Fiji Fidji - + Finland Finlande - + France France - + FrenchGuiana Guyane française - + FrenchPolynesia Polynésie française - + Gabon Gabon - + Gambia Gambie - + Georgia Géorgie - + Germany Allemagne - + Ghana Ghana - + Gibraltar Gibraltar - + Greece Grèce - + Greenland Groenland - + Grenada Grenade - + Guadeloupe Guadeloupe - + Guam Guam - + Guatemala Guatemala - + Guinea Guinée - + GuineaBissau Guinée-Bissau - + Guyana Guyana - + Haiti Haïti - + Honduras Honduras - + DemocraticRepublicOfCongo République démocratique du Congo - + HongKong Hong Kong - + Hungary Hongrie - + Iceland Islande - + India Inde - + Indonesia Indonésie - + Iran Iran - + Iraq Irak - + Ireland Irlande - + Israel Israël - + Italy Italie - + Jamaica Jamaïque - + Japan Japon - + Jordan Jordanie - + Kazakhstan Kazakhstan - + Kenya Kenya - + Kiribati Kiribati - + DemocraticRepublicOfKorea Corée du Nord - + RepublicOfKorea Corée du Sud - + Kuwait Koweït - + Kyrgyzstan Kirghizistan - + Laos Laos - + Latvia Lettonie - + Lebanon Liban - + Lesotho Lesotho - + Liberia Libéria - + Libya Libye - + Liechtenstein Liechtenstein - + Lithuania Lituanie - + Luxembourg Luxembourg - + Macau Macao - + Macedonia Macédoine - + Madagascar Madagascar - + Malawi Malawi - + Malaysia Malaisie - + Maldives Maldives - + Mali Mali - + Malta Malte - + MarshallIslands Îles Marshall - + Martinique Martinique - + Mauritania Mauritanie - + Mauritius Maurice - + Mayotte Mayotte - + Mexico Mexique - + Micronesia Micronésie - + Moldova Moldavie - + Monaco Monaco - + Mongolia Mongolie - + Montenegro Montenegro - + Montserrat Montserrat - + Morocco Maroc - + Mozambique Mozambique - + Myanmar Myanmar - + Namibia Namibie - + NauruCountry Nauru - + Nepal Népal - + Netherlands Pays-Bas - + NewCaledonia Nouvelle-Calédonie - + NewZealand Nouvelle-Zélande - + Nicaragua Nicaragua - + Niger Niger - + Nigeria Nigeria - + Niue Niué - + NorfolkIsland Île Norfolk - + NorthernMarianaIslands Îles Mariannes du Nord - + Norway Norvège - + Oman Oman - + Pakistan Pakistan - + Palau Palaos - + PalestinianTerritories Palestine - + Panama Panama - + PapuaNewGuinea Papouasie-Nouvelle-Guinée - + Paraguay Paraguay - + Peru Pérou - + Philippines Philippines - + Poland Pologne - + Portugal Portugal - + PuertoRico Porto Rico - + Qatar Qatar - + Reunion La Réunion - + Romania Roumanie - + RussianFederation Russie - + Rwanda Rwanda - + SaintHelena Sainte-Hélène - + SaintKittsAndNevis Saint-Christophe-et-Niévès - + SaintLucia Sainte-Lucie - + SaintPierreAndMiquelon Saint-Pierre-et-Miquelon - + SaintVincentAndTheGrenadines Saint-Vincent et les Grenadines - + Samoa Samoa - + SanMarino Saint-Marin - + SaoTomeAndPrincipe Sao Tomé-et-Principe - + SaudiArabia Arabie saoudite - + Senegal Sénégal - + Serbia Serbie - + Seychelles Seychelles - + SierraLeone Sierra Leone - + Singapore Singapour - + Slovakia Slovaquie - + Slovenia Slovénie - + SolomonIslands Îles Salomon - + Somalia Somalie - + SouthAfrica Afrique du Sud - + Spain Espagne - + SriLanka Sri Lanka - + Sudan Soudan - + Suriname Suriname - + Swaziland Eswatini - + Sweden Suède - + Switzerland Suisse - + Syria Syrie - + Taiwan Taïwan - + Tajikistan Tadjikistan - + Tanzania Tanzanie - + Thailand Thaïlande - + Togo Togo - + Tokelau Tokelau - + Tonga Tonga - + TrinidadAndTobago Trinité-et-Tobago - + Tunisia Tunisie - + Turkey Turquie - + Turkmenistan Turkménistan - + TurksAndCaicosIslands Îles Turks et Caïques - + Tuvalu Tuvalu - + Uganda Ouganda - + Ukraine Ukraine - + UnitedArabEmirates Émirats arabes unis - + UnitedKingdom Royaume-Uni - + UnitedStates États-Unis - + Uruguay Uruguay - + Uzbekistan Ouzbékistan - + Vanuatu Vanuatu - + Venezuela Venezuela - + Vietnam Vietnam - + WallisAndFutunaIslands Wallis et Futuna - + Yemen Yémen - + Zambia Zambie - + Zimbabwe Zimbabwe diff --git a/Linphone/data/languages/hu.ts b/Linphone/data/languages/hu.ts new file mode 100644 index 000000000..9233ba8af --- /dev/null +++ b/Linphone/data/languages/hu.ts @@ -0,0 +1,7420 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + + + + + save + "Enregistrer" + + + + + save_settings_accessible_name + Save %1 settings + + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + + + + + fps_counter + + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + + + + + drawer_menu_account_connection_status_refreshing + + + + + drawer_menu_account_connection_status_progress + + + + + drawer_menu_account_connection_status_failed + + + + + drawer_menu_account_connection_status_cleared + + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + + + + + AccountListView + + + add_an_account + Add an account + + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + + + + + assistant_account_login_forbidden_error + "Username and password do not match" + + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + + + + + assistant_account_add_error + "Unable to add account." + + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + + + + + manage_account_devices_title + "Vos appareils" + + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + + + + + manage_account_add_picture + "Ajouter une image" + + + + + manage_account_edit_picture + "Modifier l'image" + + + + + manage_account_remove_picture + "Supprimer l'image" + + + + + sip_address + + + + + sip_address_display_name + "Nom d'affichage + + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + + + + + manage_account_international_prefix + Indicatif international* + + + + + manage_account_delete + "Déconnecter mon compte" + + + + + manage_account_delete_message + + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + + + + + error + Erreur + + + + + manage_account_device_remove + "Supprimer" + + + + + manage_account_device_remove_confirm_dialog + + + + + manage_account_device_last_connection + "Dernière connexion:" + + + + + device_last_updated_time_no_info + "No information" + + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + + + + + settings_general_title + "Général" + + + + + settings_account_title + "Paramètres de compte" + + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + + + + + AccountSettingsParametersLayout + + + settings_title + + + + + settings_account_title + + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_error_title + + + + + information_popup_success_title + + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + + + + + information_popup_error_title + + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + + + + + account_settings_transport_title + "Transport" + + + + + account_settings_registrar_uri_title + + + + + account_settings_sip_proxy_url_title + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + + + + + account_settings_enable_ice_title + "Activer ICE" + + + + + account_settings_avpf_title + "AVPF" + + + + + account_settings_bundle_mode_title + "Mode bundle" + + + + + account_settings_expire_title + "Expiration (en seconde)" + + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + + + + + + + remove_participant_accessible_name + Remove participant %1 + + + + + list_filter_no_result_found + "Aucun contact" + + + + + contact_list_empty + + + + + AdvancedSettingsLayout + + + settings_system_title + System + + + + + settings_remote_provisioning_title + Remote provisioning + + + + + settings_security_title + Security / Encryption + + + + + settings_advanced_audio_codecs_title + Audio codecs + + + + + settings_advanced_video_codecs_title + Video codecs + + + + + settings_advanced_auto_start_title + Auto start %1 + + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + + + + + information_popup_error_title + Invalid URL format + + + + + settings_advanced_invalid_url_message + + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + + + + + + settings_advanced_media_encryption_title + Media encryption + + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + + + + + settings_advanced_hide_fps_title + + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + + + + + generic_address_picker_contacts_list_title + 'Contacts' + + + + + generic_address_picker_suggestions_list_title + "Suggestions" + + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + + + + + + info_popup_error_title + Error + + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + + + + + configuration_error_detail + not reachable + + + + + application_description + "A free and open source SIP video-phone." + + + + + command_line_arg_order + "Send an order to the application towards a command line" + + + + + command_line_option_show_help + + + + + command_line_option_show_app_version + + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + + + + + command_line_option_minimized + + + + + command_line_option_log_to_stdout + + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + + + + + hide_action + "Cacher" "Afficher" + + + + + show_action + + + + + quit_action + "Quitter" + + + + + mark_all_read_action + + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + + + + + password + + + + + cancel + "Annuler + + + + + assistant_account_login + Connexion + + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + + + + + media_encryption_dtls + DTLS + + + + + media_encryption_none + None + + + + + media_encryption_srtp + SRTP + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + + + + + settings_call_forward_destination_choose + Forward to destination + + + + + + + settings_call_forward_to_voicemail + + + + + settings_call_forward_to_sipaddress + + + + + settings_call_forward_sipaddress_title + SIP Address + + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + + + + + settings_call_forward_address_timeout + + + + + settings_call_forward_address_progress_disabling + + + + + settings_call_forward_address_progress_enabling + + + + + settings_call_forward_activation_success + + + + + settings_call_forward_deactivation_success + + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + contact_call_action + "Appel" + + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel Video" + + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + + + + + call_ended_by_user + "Vous avez terminé l'appel" + + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + + + + + conference_call_empty + "En attente d'autres participants…" + + + + + conference_share_link_title + "Partager le lien" + + + + + copied + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + CallList + + + remote_group_call + Remote group call + + + + + local_group_call + + + + + info_popup_error_title + + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + + + + + CallListView + + + meeting + "Réunion + + + + + call + "Appel" + + + + + paused_call_or_meeting + "%1 en pause" + + + + + ongoing_call_or_meeting + "%1 en cours" + + + + + transfer_call_name_accessible_name + Transfer call %1 + + + + + resume_call_name_accessible_name + Resume %1 call + + + + + pause_call_name_accessible_name + Pause %1 call + + + + + end_call_name_accessible_name + End %1 call + + + + + CallModel + + + call_error_no_response_toast + "No response" + + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + + + + + call_error_not_answered_toast + "Request timeout" + + + + + call_error_user_declined_toast + "User declined the call" + + + + + call_error_user_not_found_toast + "User was not found" + + + + + call_error_user_busy_toast + "User is busy" + + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + + + + + call_error_io_error_toast + "Unavailable service or network error" + + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + + + + + call_error_server_timeout_toast + "Server tiemout" + + + + + CallPage + + + call_forward_to_address_info + + + + + call_forward_to_address_info_voicemail + + + + + history_call_start_title + "Nouvel appel" + + + + + call_history_empty_title + "Historique d'appel vide" + + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + + + + + call_history_call_list_title + "Appels" + + + + + call_history_options_accessible_name + + + + + + menu_delete_history + "Supprimer l'historique" + + + + + call_history_list_options_accessible_name + Call history options + + + + + create_new_call_accessible_name + Create new call + + + + + call_search_in_history + "Rechercher un appel" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + history_list_empty_history + "Aucun appel dans votre historique" + + + + + return_to_call_history_accessible_name + Return to call history + + + + + call_action_start_new_call + "Nouvel appel" + + + + + call_start_group_call_title + "Appel de groupe" + + + + + call_action_start_group_call + "Lancer" + + + + + + + information_popup_error_title + + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + menu_copy_sip_address + "Copier l'adresse SIP" + + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + + + + + notification_missed_call_title + "Appel manqué" + + + + + call_outgoing + "Appel sortant" + + + + + call_audio_incoming + "Appel entrant" + + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + + + + + settings_call_enable_tones_title + Tonalités + + + + + settings_call_enable_tones_subtitle + Activer les tonalités + + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + + + + + settings_calls_command_line_title + Command line + + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + + + + + settings_calls_current_ringtone_filename + Current ringtone : + + + + + choose_ringtone_file_accessible_name + Choose ringtone file + + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + + + + + CallStatistics + + + call_stats_audio_title + "Audio" + + + + + call_stats_video_title + "Vidéo" + + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + + + + + + information_popup_error_title + + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + + + + + call_can_be_trusted_toast + "Appareil authentifié" + + + + + call_dir + + + + + call_ended + Appel terminé + + + + + conference_paused + Meeting paused + + + + + call_paused + Call paused + + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + + + + + call_zrtp_sas_validation_required + Vérification nécessaire + + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + + + + + call_not_encrypted + "Appel non chiffré" + + + + + + call_waiting_for_encryption_info + Waiting for encryption + + + + + call_paused_by_remote + Call paused by remote + + + + + conference_user_is_recording + "You are recording the meeting" + + + + + call_user_is_recording + "You are recording the call" + + + + + conference_remote_is_recording + "Someone is recording the meeting" + + + + + call_remote_recording + "%1 is recording the call" + + + + + call_stop_recording + "Stop recording" + + + + + add + + + + + call_transfer_current_call_title + "Transférer %1 à…" + + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + + + + + call_action_start_new_call + "Nouvel appel" + + + + + + call_action_show_dialer + "Pavé numérique" + + + + + call_action_change_layout + "Modifier la disposition" + + + + + call_action_go_to_calls_list + "Liste d'appel" + + + + + Merger tous les appels + call_action_merge_calls + + + + + + call_action_go_to_settings + "Paramètres" + + + + + conference_action_screen_sharing + "Partage de votre écran" + + + + + conference_share_link_title + Partager le lien de la réunion + + + + + copied + Copié + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + + + conference_participants_list_title + "Participants (%1)" + + + + + + group_call_participant_selected + + + + + + + + meeting_schedule_add_participants_title + + + + + call_encryption_title + Chiffrement + + + + + open_statistic_panel_accessible_name + + + + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + + + + + stop_recording_accessible_name + Stop recording + + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + + + + + call_stats_title + Statistiques + + + + + + call_action_end_call + "Terminer l'appel" + + + + + + call_action_resume_call + "Reprendre l'appel" + + + + + + call_action_pause_call + "Mettre l'appel en pause" + + + + + + call_action_transfer_call + "Transférer l'appel" + + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + + + + + + call_activate_video_hint + + + + + + call_activate_microphone + "Activer le micro" + + + + + + call_deactivate_microphone + "Désactiver le micro" + + + + + + call_share_screen_hint + Partager l'écran… + + + + + + call_open_chat_hint + Open chat… + + + + + + call_rise_hand_hint + "Lever la main" + + + + + + call_send_reaction_hint + "Envoyer une réaction" + + + + + + call_manage_participants_hint + "Gérer les participants" + + + + + + call_more_options_hint + "Plus d'options…" + + + + + call_action_change_conference_layout + "Modifier la disposition" + + + + + call_action_full_screen + "Mode Plein écran" + + + + + call_action_stop_recording + "Terminer l'enregistrement" + + + + + call_action_record + "Enregistrer l'appel" + + + + + call_activate_speaker_hint + "Activer le son" + + + + + call_deactivate_speaker_hint + "Désactiver le son" + + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + + + + + information_popup_error_title + + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + + + + + information_popup_synchronization_success_title + + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + + + + + settings_contacts_carddav_popup_synchronization_error_title + + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + + + + + sip_address_display_name + Nom d'affichage + + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + + + + + username + + + + + password + + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + + + + + ChangeLayoutForm + + + conference_layout_grid + + + + + conference_layout_active_speaker + + + + + conference_layout_audio_only + + + + + ChatAudioContent + + + + information_popup_error_title + Error + + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + + + + + ChatCore + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message_history + Message history has been deleted + + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + + + + + chat_message_draft_sending_text + + + + + chat_room_delete + "Delete" + + + + + chat_room_mute + + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + + + + + chat_room_leave + "leave" + + + + + chat_list_leave_chat_popup_title + leave the conversation ? + + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + + + + + chat_message_copy + "Copy" + + + + + chat_message_copied_to_clipboard_title + Copied + + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + + + + + chat_message_remote_replied + %1 replied + + + + + chat_message_forwarded + Forwarded + + + + + chat_message_remote_replied_to + %1 replied to %2 + + + + + chat_message_user_replied_to + You replied to %1 + + + + + chat_message_user_replied + You replied + + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + + + + + chat_message_forward + Forward + + + + + chat_message_delete + "Delete" + + + + + ChatMessageContentCore + + + popup_error_title + Error + + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + + + + + popup_error_path_does_not_exist_message + File was not found: %1 + + + + + popup_error_nb_files_not_found_message + + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + + + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + + + + + popup_error_unsupported_files_message + + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + + + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message + The message has been deleted + + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + + + + + ics_bubble_meeting_to + + + + + ics_bubble_meeting_modified + Meeting has been updated + + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + + + + + + + + + + ics_bubble_description_title + Description + + + + + ics_bubble_join + "Rejoindre" + + + + + ics_bubble_participants + %n participant(s) + + + + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + + + + + info_popup_no_result_message + No result found + + + + + info_popup_first_result_message + First result reached + + + + + info_popup_last_result_message + Last result reached + + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + + + + + chat_message_is_writing_info + %1 is writing… + + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + + + + + chat_empty_title + "Aucune conversation" + + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + + + + + chat_list_title + "Conversations" + + + + + menu_mark_all_as_read + "mark all as read" + + + + + chat_search_in_history + "Rechercher une conversation" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + + + + + chat_action_start_new_chat + "New chat" + + + + + chat_start_group_chat_title + "Nouveau groupe" + + + + + chat_action_start_group_chat + "Créer" + + + + + + + information_popup_error_title + + + + + information_popup_chat_creation_failed_message + "La création a échoué" + + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + chat_creation_in_progress + Creation de la conversation en cours … + + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + + + + + CliModel + + + show_function_description + + + + + fetch_config_function_description + + + + + call_function_description + + + + + bye_function_description + + + + + accept_function_description + + + + + decline_function_description + + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + + + + + Contact + + + information_popup_error_title + Erreur + + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + + + + + account_settings_name_accessible_name + Account settings of %1 + + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + + + + + save + "Enregistrer + + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + + + + + close_accessible_name + Close %1 + + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + + + + + contact_editor_add_image_label + "Ajouter une image" + + + + + contact_details_edit + "Modifier" + + + + + edit_contact_image_accessible_name + "Edit contact image" + + + + + contact_details_delete + "Supprimer" + + + + + delete_contact_image_accessible_name + "Delete contact image" + + + + + + contact_editor_first_name + "Prénom" + + + + + + contact_editor_last_name + "Nom" + + + + + + contact_editor_company + "Entreprise" + + + + + + contact_editor_job_title + "Fonction" + + + + + + sip_address + + + + + sip_address_number_accessible_name + "SIP address number %1" + + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + + + + + new_sip_address_accessible_name + "New SIP address" + + + + + phone_number_number_accessible_name + "Phone number number %1" + + + + + remove_phone_number_accessible_name + Remove phone number %1 + + + + + new_phone_number_accessible_name + "New phone number" + + + + + + phone + "Téléphone" + + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + Partager + + + + + information_popup_error_title + + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + + + + + information_popup_vcard_creation_title + VCard créée + + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + + + + + contact_sharing_email_title + Partage de contact + + + + + contact_details_delete + "Supprimer" + + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + + + + + expand_accessible_name + Expand %1 + + + + + ContactPage + + + contacts_add + "Ajouter un contact" + + + + + contacts_list_empty + "Aucun contact pour le moment" + + + + + contact_new_title + "Nouveau contact" + + + + + create + + + + + contact_edit_title + "Modifier contact" + + + + + save + + + + + contact_dialog_delete_title + Supprimer %1 ?" + + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + + + + + contact_deleted_toast + "Contact supprimé" + + + + + contact_deleted_message + "%1 a été supprimé" + + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + + + + + popup_do_not_show_again + Ne plus afficher + + + + + cancel + + + + + dialog_call + "Appeler" + + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + + + + + dialog_ok + "Ok" + + + + + bottom_navigation_contacts_label + "Contacts" + + + + + search_bar_look_for_contact_text + Rechercher un contact + + + + + list_filter_no_result_found + Aucun résultat… + + + + + contact_list_empty + Aucun contact pour le moment + + + + + expand_accessible_name + Expand %1 + + + + + shrink_accessible_name + Shrink %1 + + + + + create_contact_accessible_name + Create new contact + + + + + more_info_accessible_name + More info %1 + + + + + + contact_details_edit + Edit +---------- +"Éditer" + + + + + contact_call_action + "Appel" + + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel vidéo" + + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + + + + + call_adress_accessible_name + Call address %1 + + + + + contact_details_company_name + "Société :" + + + + + contact_details_job_title + "Poste :" + + + + + contact_details_medias_title + "Medias" + + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + + + + + contact_details_trust_title + "Confiance" + + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + + + + + contact_details_no_device_found + "Aucun appareil" + + + + + contact_device_without_name + "Appareil inconnu" + + + + + contact_make_call_check_device_trust + "Vérifier" + + + + + verify_device_accessible_name + Verify %1 device + + + + + contact_details_actions_title + "Autres actions" + + + + + contact_details_remove_from_favourites + "Retirer des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + contact_details_share + "Partager" + + + + + information_popup_error_title + + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + + + + + contact_details_share_success_title + "VCard créée" + + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + + + + + contact_details_share_email_title + "Partage de contact" + + + + + contact_details_delete + "Supprimer ce contact" + + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + + + + + settings_contacts_carddav_title + + + + + settings_contacts_carddav_subtitle + + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + add + "Ajouter" + + + + + ConversationInfos + + + one_one_infos_call + "Appel" + + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + + + + + group_infos_participants + + + + + group_infos_media_docs + Medias & documents + + + + + group_infos_shared_medias + Shared medias + + + + + group_infos_shared_docs + Shared documents + + + + + group_infos_other_actions + Other actions + + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + + + + + group_infos_leave_room + Leave chat room + + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + group_infos_delete_history + Delete history + + + + + group_infos_delete_history_toast_title + Delete history ? + + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + one_one_infos_open_contact + Show contact + + + + + one_one_infos_create_contact + Create contact + + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + + + + + one_one_infos_delete_history_toast_title + Delete history ? + + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + + + + + settings_debug_clipboard + "Presse-papier" + + + + + settings_debug_email + "E-Mail" + + + + + debug_settings_trace + "Traces %1" + + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + + + + + + information_popup_error_title + Une erreur est survenue. + + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + + + + + settings_debug_delete_logs_title + "Supprimer les traces" + + + + + settings_debug_share_logs_title + "Partager les traces" + + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + + + + + settings_debug_app_version_title + "Version de l'application" + + + + + settings_debug_sdk_version_title + "Version du SDK" + + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + + + + + textfield_error_message_unknown_format + "Format non reconnu" + + + + + Dialog + + + + dialog_confirm + "Confirmer" + + + + + + dialog_cancel + "Annuler" + + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + + + + + call_stats_media_encryption + Media encryption : %1 + + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + + + + + call_zrtp_validation_button_label + "Validation chiffrement" + + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + + + + + one_hour + + + + + one_day + + + + + one_week + + + + + disabled + + + + + custom + + + + + EventLogCore + + + conference_created_event + + + + + conference_created_terminated + + + + + conference_participant_added_event + + + + + conference_participant_removed_event + + + + + conference_participant_set_admin_event + + + + + conference_participant_unset_admin_event + + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + + + + + + + device_id + "Téléphone" + + + + + information_popup_error_title + + + + + information_popup_invalid_address_message + "Adresse invalide" + + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + + + + + group_infos_participant_is_admin + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + group_infos_give_admin_rights + + + + + group_infos_remove_admin_rights + + + + + group_infos_copy_sip_address + + + + + group_infos_remove_participant + + + + + group_infos_remove_participants_toast_title + + + + + group_infos_remove_participants_toast_message + + + + + GroupCreationFormLayout + + + return_accessible_name + Return + + + + + + group_start_dialog_subject_hint + "Nom du groupe" + + + + + required + "Requis" + + + + + HelpPage + + + help_title + "Aide" + + + + + + help_about_title + "À propos de %1" + + + + + help_about_privacy_policy_title + "Règles de confidentialité" + + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + + + + + help_about_version_title + "Version" + + + + + help_about_gpl_licence_title + "Licences GPLv3" + + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + + + + + help_troubleshooting_title + "Dépannage" + + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + + + + + settings_contacts_ldap_subtitle + + + + + information_popup_success_title + + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + + + + + information_popup_error_title + + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + + + + + delete_ldap_server_accessible_name + Delete LDAP server + + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + + + + + settings_contacts_ldap_password_title + "Mot de passe" + + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + + + + + settings_contacts_ldap_search_filter_title + "Filtre" + + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + + + + + settings_contacts_ldap_debug_title + "Débogage" + + + + + LoadingPopup + + + cancel + + + + + LoginForm + + + + username + Nom d'utilisateur : username + + + + + + password + Mot de passe + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + assistant_account_login + "Connexion" + + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + + + + + assistant_forgotten_password + "Mot de passe oublié ?" + + + + + LoginLayout + + + + help_about_title + À propos de %1 + + + + + help_about_privacy_policy_title + "Politique de confidentialité" + + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + + + + + help_about_version_title + "Version" + + + + + help_about_licence_title + "Licence" + + + + + help_about_copyright_title + "Copyright + + + + + close + "Fermer" + + + + + LoginPage + + + return_accessible_name + Return + + + + + assistant_account_login + Connexion + + + + + assistant_no_account_yet + "Pas encore de compte ?" + + + + + assistant_account_register + "S'inscrire" + + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + + + + + assistant_login_remote_provisioning + "Configuration distante" + + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + + + + + cancel + + + + + validate + "Valider" + + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + + + + + default_account_connection_state_error_toast + + + + + MagicSearchList + + + device_id + + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + + + + + open_calls_page_accessible_name + "Open calls page" + + + + + bottom_navigation_contacts_label + "Contacts" + + + + + open_contacts_page_accessible_name + "Open contacts page" + + + + + bottom_navigation_conversations_label + "Conversations" + + + + + open_conversations_page_accessible_name + "Open conversations page" + + + + + bottom_navigation_meetings_label + "Réunions" + + + + + open_contact_page_accessible_name + "Open meetings page" + + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + + + + + do_not_disturb_accessible_name + "Do not disturb" + + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + + + + + information_popup_error_title + + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + + + + + account_list_accessible_name + "Account list" + + + + + application_options_accessible_name + "Application options" + + + + + drawer_menu_manage_account + Mon compte + + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + + + + + settings_title + + + + + recordings_title + "Enregistrements" + + + + + help_title + "Aide" + + + + + help_quit_title + "Quitter l'application" + + + + + quit_app_question + "Quitter %1 ?" + + + + + drawer_menu_add_account + "Ajouter un compte" + + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + + + + + interoperable + interopérable + + + + + call_transfer_successful_toast_title + "Appel transféré" + + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + + + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + + + + + assistant_register_error_title + "Erreur lors de la création" + + + + + assistant_register_success_title + "Compte créé" + + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + + + + + assistant_register_error_code + "Erreur dans le code de validation" + + + + + information_popup_error_title + + + + + ManageParticipants + + + group_infos_manage_participants + + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + + + + + meeting_schedule_broadcast_label + "Webinar" + + + + + meeting_schedule_subject_hint + "Ajouter un titre" + + + + + meeting_schedule_description_hint + "Ajouter une description" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + MeetingPage + + + meetings_add + "Créer une réunion" + + + + + meetings_list_empty + "Aucune réunion" + + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + + + + + meeting_schedule_delete_action + "Supprimer" + + + + + back_action + Retour + + + + + meetings_list_title + Réunions + + + + + meetings_search_hint + "Rechercher une réunion" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + meetings_empty_list + "Aucune réunion" + + + + + + meeting_schedule_title + "Nouvelle réunion" + + + + + create + + + + + + + + + + information_popup_error_title + + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + + + + + save + + + + + + saved + "Enregistré" + + + + + meeting_info_updated_toast + "Réunion mise à jour" + + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_add_participants_apply + + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + + + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + + + + + meeting_schedule_timezone_title + "Fuseau horaire" + + + + + meeting_info_organizer_label + "Organisateur" + + + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + + + + + click_to_delete_reaction_info + Click to delete + + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + + + + + no_shared_documents + No document + + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + + + + + + + + choose_something_accessible_name + Choose %1 + + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + + + + + + device_volume_accessible_name + %1 volume + + + + + + + multimedia_settings_microphone_title + "Microphone" + + + + + + multimedia_settings_camera_title + "Caméra" + + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + + + + + call_start_group_call_title + Appel de groupe + + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + + + + + dialog_accept + "Accepter" + + + + + dialog_deny + "Refuser + + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + + + + + new_file_message + + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + + + + + new_message_alert_accessible_name + New message on chatroom %1 + + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + + + + + oidc_authentication_granted_message + Authentication granted + + + + + oidc_authentication_not_authenticated_message + Not authenticated + + + + + oidc_authentication_refresh_message + Refreshing token + + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + + + + + oidc_authentication_network_error + Network error + + + + + oidc_authentication_server_error + Server error + + + + + oidc_authentication_token_not_found_error + OAuth token not found + + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + + + + + oidc_authentication_no_token_found_error + + + + + oidc_authentication_request_token_message + Requesting access token + + + + + oidc_authentication_refresh_token_message + Refreshing access token + + + + + oidc_authentication_request_authorization_message + Requesting authorization + + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + + + + + meeting_add_participants_title + "Ajouter des participants" + + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + + + + + number_phone_number_accessible_name + %1 number + + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + + + + + open_popup_panel_accessible_name + "Open %1" popup + + + + + Presence + + + contact_presence_reset_status + + + + + contact_presence_button_set_custom_status + + + + + contact_presence_button_edit_custom_status + + + + + contact_presence_button_delete_custom_status + + + + + contact_presence_custom_status + + + + + PresenceNoteLayout + + + contact_presence_note_title + + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + + + + + contact_presence_button_save_custom_status + + + + + QObject + + + media_encryption_dtls + + + + + media_encryption_none + + + + + media_encryption_srtp + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + message_state_in_progress + "delivery in progress" + + + + + message_state_delivered + sent + + + + + message_state_not_delivered + error + + + + + message_state_file_transfer_error + cannot get file from server + + + + + message_state_file_transfer_done + file transfer has been completed successfully + + + + + message_state_delivered_to_user + received + + + + + message_state_displayed + read + + + + + message_state_file_transfer__in_progress + file transfer in progress + + + + + message_state_pending_delivery + pending delivery + + + + + message_state_file_transfer_cancelling + file transfer canceled + + + + + incoming + "Entrant" + + + + + outgoing + "Sortant" + + + + + conference_layout_active_speaker + "Participant actif" + + + + + conference_layout_grid + "Mosaïque" + + + + + conference_layout_audio_only + "Audio uniquement" + + + + + RegisterCheckingPage + + + email + "email" + + + + + phone_number + "numéro de téléphone" + + + + + confirm_register_title + "Inscription | Confirmer votre %1" + + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + + + + + RegisterPage + + + return_accessible_name + Return + + + + + assistant_account_register + "Inscription + + + + + assistant_already_have_an_account + + + + + assistant_account_login + + + + + assistant_account_register_with_phone_number + + + + + assistant_account_register_with_email + + + + + + username + + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + domain + + + + + + + phone_number + "Numéro de téléphone" + + + + + + email + + + + + + password + + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + + + + + assistant_account_create + "Créer" + + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + + + + + SIPLoginPage + + + return_accessible_name + Return + + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + + + + + assistant_no_account_yet + Pas encore de compte ? + + + + + assistant_account_register + S'inscrire + + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + + + + + + username + "Nom d'utilisateur" + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + password + + + + + + sip_address_domain + "Domaine" + + + + + + sip_address_display_name + Nom d'affichage + + + + + + transport + "Transport" + + + + + + assistant_account_login + + + + + assistant_account_login_missing_username + + + + + assistant_account_login_missing_password + + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + + + + + login_advanced_parameters_label + Advanced parameters + + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + + + + + screencast_settings_all_screen_label + "Ecran entier" + + + + + screencast_settings_one_window_label + "Fenêtre" + + + + + screencast_settings_screen + "Ecran %1" + + + + + stop + "Stop + + + + + share + "Partager" + + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + + + + + dialog_continue + "Continuer" + + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + + + + + SelectedChatView + + + chat_view_group_call_toast_message + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + reply_to_label + Reply to %1 + + + + + shared_medias_title + Shared medias + + + + + shared_documents_title + Shared documents + + + + + forward_to_title + Forward to… + + + + + conversations_title + Conversations + + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + + + + + SettingsPage + + + settings_title + "Paramètres" + + + + + settings_calls_title + "Appels" + + + + + settings_call_forward + "Transfert d'appel" + + + + + settings_conversations_title + "Conversations" + + + + + settings_contacts_title + "Contacts" + + + + + settings_meetings_title + "Réunions" + + + + + settings_network_title + "Affichage" "Security" "Réseau" + + + + + settings_advanced_title + "Paramètres avancés" + + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + + + + + conference_participant_paused_text + "En pause" + + + + + TextField + + + show_accessible_name + Show %1 + + + + + hide_accessible_name + Hide %1 + + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + + + + + group_call_error_no_account + + + + + group_call_error_participants_invite + + + + + group_call_error_creation + + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + + + + + unknown_audio_device_name + + + + + conference_invitation + + + + + conference_invitation_cancelled + + + + + conference_invitation_updated + + + + + Utils + + + nSeconds + + + + + + + + nMinute + + + + + + + + chat_message_forward_error + Cannot forward an invalid message + + + + + info_popup_forward_message_error + Could not forward message : %1 + + + + + info_popup_send_forward_message_error_message + Failed to create forward message + + + + + chat_message_reply_error + Cannot reply to invalid message + + + + + info_popup_reply_message_error + Could not send reply message : %1 + + + + + info_popup_send_reply_message_error_message + Failed to create reply message + + + + + nHour + + + + + + + + + nDay + + + + + + + + nWeek + + + + + + + + contact_presence_status_available + + + + + contact_presence_status_busy + + + + + contact_presence_status_do_not_disturb + + + + + contact_presence_status_offline + + + + + contact_presence_status_away + + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + + + + + information_popup_group_call_not_created_message + + + + + number_of_years + %n an(s) + + + + + + + + number_of_month + "%n mois" + + + + + + + + number_of_weeks + %n semaine(s) + + + + + + + + number_of_days + %n jour(s) + + + + + + + + today + "Aujourd'hui" + + + + + yesterday + "Hier + + + + + duration_tomorrow + Tomorrow + + + + + duration_number_of_days + %1 jour(s) + + + + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + + + + + recorder_error + Error with the recorder + + + + + + + chat_error + + + + + + + + + + info_popup_error_title + Error + + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + + + + + meeting_waiting_room_join + "Rejoindre" + + + + + + cancel + Cancel + + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + + + + + welcome_page_subtitle + "sur %1" + + + + + welcome_carousel_skip + "Passer" + + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + + + + + welcome_page_2_title + "Sécurisé" + + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + + + + + welcome_page_3_title + "Open Source" + + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + + + + + next + "Suivant" + + + + + start + "Commencer" + + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + + + + + call_zrtp_sas_validation_skip + "Passer" + + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + + + + + call_action_hang_up + "Raccrocher" + + + + + country + + + Afghanistan + + + + + Albania + + + + + Algeria + + + + + AmericanSamoa + + + + + Andorra + + + + + Angola + + + + + Anguilla + + + + + AntiguaAndBarbuda + + + + + Argentina + + + + + Armenia + + + + + Aruba + + + + + Australia + + + + + Austria + + + + + Azerbaijan + + + + + Bahamas + + + + + Bahrain + + + + + Bangladesh + + + + + Barbados + + + + + Belarus + + + + + Belgium + + + + + Belize + + + + + Benin + + + + + Bermuda + + + + + Bhutan + + + + + Bolivia + + + + + BosniaAndHerzegowina + + + + + Botswana + + + + + Brazil + + + + + Brunei + + + + + Bulgaria + + + + + BurkinaFaso + + + + + Burundi + + + + + Cambodia + + + + + Cameroon + + + + + Canada + + + + + CapeVerde + + + + + CaymanIslands + + + + + CentralAfricanRepublic + + + + + Chad + + + + + Chile + + + + + China + + + + + Colombia + + + + + Comoros + + + + + PeoplesRepublicOfCongo + + + + + CookIslands + + + + + CostaRica + + + + + IvoryCoast + + + + + Croatia + + + + + Cuba + + + + + Cyprus + + + + + CzechRepublic + + + + + Denmark + + + + + Djibouti + + + + + Dominica + + + + + DominicanRepublic + + + + + Ecuador + + + + + Egypt + + + + + ElSalvador + + + + + EquatorialGuinea + + + + + Eritrea + + + + + Estonia + + + + + Ethiopia + + + + + FalklandIslands + + + + + FaroeIslands + + + + + Fiji + + + + + Finland + + + + + France + + + + + FrenchGuiana + + + + + FrenchPolynesia + + + + + Gabon + + + + + Gambia + + + + + Georgia + + + + + Germany + + + + + Ghana + + + + + Gibraltar + + + + + Greece + + + + + Greenland + + + + + Grenada + + + + + Guadeloupe + + + + + Guam + + + + + Guatemala + + + + + Guinea + + + + + GuineaBissau + + + + + Guyana + + + + + Haiti + + + + + Honduras + + + + + DemocraticRepublicOfCongo + + + + + HongKong + + + + + Hungary + + + + + Iceland + + + + + India + + + + + Indonesia + + + + + Iran + + + + + Iraq + + + + + Ireland + + + + + Israel + + + + + Italy + + + + + Jamaica + + + + + Japan + + + + + Jordan + + + + + Kazakhstan + + + + + Kenya + + + + + Kiribati + + + + + DemocraticRepublicOfKorea + + + + + RepublicOfKorea + + + + + Kuwait + + + + + Kyrgyzstan + + + + + Laos + + + + + Latvia + + + + + Lebanon + + + + + Lesotho + + + + + Liberia + + + + + Libya + + + + + Liechtenstein + + + + + Lithuania + + + + + Luxembourg + + + + + Macau + + + + + Macedonia + + + + + Madagascar + + + + + Malawi + + + + + Malaysia + + + + + Maldives + + + + + Mali + + + + + Malta + + + + + MarshallIslands + + + + + Martinique + + + + + Mauritania + + + + + Mauritius + + + + + Mayotte + + + + + Mexico + + + + + Micronesia + + + + + Moldova + + + + + Monaco + + + + + Mongolia + + + + + Montenegro + + + + + Montserrat + + + + + Morocco + + + + + Mozambique + + + + + Myanmar + + + + + Namibia + + + + + NauruCountry + + + + + Nepal + + + + + Netherlands + + + + + NewCaledonia + + + + + NewZealand + + + + + Nicaragua + + + + + Niger + + + + + Nigeria + + + + + Niue + + + + + NorfolkIsland + + + + + NorthernMarianaIslands + + + + + Norway + + + + + Oman + + + + + Pakistan + + + + + Palau + + + + + PalestinianTerritories + + + + + Panama + + + + + PapuaNewGuinea + + + + + Paraguay + + + + + Peru + + + + + Philippines + + + + + Poland + + + + + Portugal + + + + + PuertoRico + + + + + Qatar + + + + + Reunion + + + + + Romania + + + + + RussianFederation + + + + + Rwanda + + + + + SaintHelena + + + + + SaintKittsAndNevis + + + + + SaintLucia + + + + + SaintPierreAndMiquelon + + + + + SaintVincentAndTheGrenadines + + + + + Samoa + + + + + SanMarino + + + + + SaoTomeAndPrincipe + + + + + SaudiArabia + + + + + Senegal + + + + + Serbia + + + + + Seychelles + + + + + SierraLeone + + + + + Singapore + + + + + Slovakia + + + + + Slovenia + + + + + SolomonIslands + + + + + Somalia + + + + + SouthAfrica + + + + + Spain + + + + + SriLanka + + + + + Sudan + + + + + Suriname + + + + + Swaziland + + + + + Sweden + + + + + Switzerland + + + + + Syria + + + + + Taiwan + + + + + Tajikistan + + + + + Tanzania + + + + + Thailand + + + + + Togo + + + + + Tokelau + + + + + Tonga + + + + + TrinidadAndTobago + + + + + Tunisia + + + + + Turkey + + + + + Turkmenistan + + + + + TurksAndCaicosIslands + + + + + Tuvalu + + + + + Uganda + + + + + Ukraine + + + + + UnitedArabEmirates + + + + + UnitedKingdom + + + + + UnitedStates + + + + + Uruguay + + + + + Uzbekistan + + + + + Vanuatu + + + + + Venezuela + + + + + Vietnam + + + + + WallisAndFutunaIslands + + + + + Yemen + + + + + Zambia + + + + + Zimbabwe + + + + + utils + + + formatYears + '%1 year' + + + + + + + + formatMonths + '%1 month' + + + + + + + + formatWeeks + '%1 week' + + + + + + + + formatDays + '%1 day' + + + + + + + + formatHours + '%1 hour' + + + + + + + + formatMinutes + '%1 minute' + + + + + + + + formatSeconds + '%1 second' + + + + + + + + codec_install + "Installation de codec" + + + + + download_codec + "Télécharger le codec %1 (%2) ?" + + + + + information_popup_success_title + "Succès" + + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + + + + + + + information_popup_error_title + + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + + + + + okButton + + + + diff --git a/Linphone/data/languages/mk.ts b/Linphone/data/languages/mk.ts new file mode 100644 index 000000000..19c3d4189 --- /dev/null +++ b/Linphone/data/languages/mk.ts @@ -0,0 +1,7420 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + + + + + save + "Enregistrer" + + + + + save_settings_accessible_name + Save %1 settings + + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + + + + + fps_counter + + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + + + + + drawer_menu_account_connection_status_refreshing + + + + + drawer_menu_account_connection_status_progress + + + + + drawer_menu_account_connection_status_failed + + + + + drawer_menu_account_connection_status_cleared + + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + + + + + AccountListView + + + add_an_account + Add an account + + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + + + + + assistant_account_login_forbidden_error + "Username and password do not match" + + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + + + + + assistant_account_add_error + "Unable to add account." + + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + + + + + manage_account_devices_title + "Vos appareils" + + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + + + + + manage_account_add_picture + "Ajouter une image" + + + + + manage_account_edit_picture + "Modifier l'image" + + + + + manage_account_remove_picture + "Supprimer l'image" + + + + + sip_address + + + + + sip_address_display_name + "Nom d'affichage + + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + + + + + manage_account_international_prefix + Indicatif international* + + + + + manage_account_delete + "Déconnecter mon compte" + + + + + manage_account_delete_message + + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + + + + + error + Erreur + + + + + manage_account_device_remove + "Supprimer" + + + + + manage_account_device_remove_confirm_dialog + + + + + manage_account_device_last_connection + "Dernière connexion:" + + + + + device_last_updated_time_no_info + "No information" + + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + + + + + settings_general_title + "Général" + + + + + settings_account_title + "Paramètres de compte" + + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + + + + + AccountSettingsParametersLayout + + + settings_title + + + + + settings_account_title + + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_error_title + + + + + information_popup_success_title + + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + + + + + information_popup_error_title + + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + + + + + account_settings_transport_title + "Transport" + + + + + account_settings_registrar_uri_title + + + + + account_settings_sip_proxy_url_title + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + + + + + account_settings_enable_ice_title + "Activer ICE" + + + + + account_settings_avpf_title + "AVPF" + + + + + account_settings_bundle_mode_title + "Mode bundle" + + + + + account_settings_expire_title + "Expiration (en seconde)" + + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + + + + + + + remove_participant_accessible_name + Remove participant %1 + + + + + list_filter_no_result_found + "Aucun contact" + + + + + contact_list_empty + + + + + AdvancedSettingsLayout + + + settings_system_title + System + + + + + settings_remote_provisioning_title + Remote provisioning + + + + + settings_security_title + Security / Encryption + + + + + settings_advanced_audio_codecs_title + Audio codecs + + + + + settings_advanced_video_codecs_title + Video codecs + + + + + settings_advanced_auto_start_title + Auto start %1 + + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + + + + + information_popup_error_title + Invalid URL format + + + + + settings_advanced_invalid_url_message + + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + + + + + + settings_advanced_media_encryption_title + Media encryption + + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + + + + + settings_advanced_hide_fps_title + + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + + + + + generic_address_picker_contacts_list_title + 'Contacts' + + + + + generic_address_picker_suggestions_list_title + "Suggestions" + + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + + + + + + info_popup_error_title + Error + + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + + + + + configuration_error_detail + not reachable + + + + + application_description + "A free and open source SIP video-phone." + + + + + command_line_arg_order + "Send an order to the application towards a command line" + + + + + command_line_option_show_help + + + + + command_line_option_show_app_version + + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + + + + + command_line_option_minimized + + + + + command_line_option_log_to_stdout + + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + + + + + hide_action + "Cacher" "Afficher" + + + + + show_action + + + + + quit_action + "Quitter" + + + + + mark_all_read_action + + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + + + + + password + + + + + cancel + "Annuler + + + + + assistant_account_login + Connexion + + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + + + + + media_encryption_dtls + DTLS + + + + + media_encryption_none + None + + + + + media_encryption_srtp + SRTP + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + + + + + settings_call_forward_destination_choose + Forward to destination + + + + + + + settings_call_forward_to_voicemail + + + + + settings_call_forward_to_sipaddress + + + + + settings_call_forward_sipaddress_title + SIP Address + + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + + + + + settings_call_forward_address_timeout + + + + + settings_call_forward_address_progress_disabling + + + + + settings_call_forward_address_progress_enabling + + + + + settings_call_forward_activation_success + + + + + settings_call_forward_deactivation_success + + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + contact_call_action + "Appel" + + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel Video" + + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + + + + + call_ended_by_user + "Vous avez terminé l'appel" + + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + + + + + conference_call_empty + "En attente d'autres participants…" + + + + + conference_share_link_title + "Partager le lien" + + + + + copied + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + CallList + + + remote_group_call + Remote group call + + + + + local_group_call + + + + + info_popup_error_title + + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + + + + + CallListView + + + meeting + "Réunion + + + + + call + "Appel" + + + + + paused_call_or_meeting + "%1 en pause" + + + + + ongoing_call_or_meeting + "%1 en cours" + + + + + transfer_call_name_accessible_name + Transfer call %1 + + + + + resume_call_name_accessible_name + Resume %1 call + + + + + pause_call_name_accessible_name + Pause %1 call + + + + + end_call_name_accessible_name + End %1 call + + + + + CallModel + + + call_error_no_response_toast + "No response" + + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + + + + + call_error_not_answered_toast + "Request timeout" + + + + + call_error_user_declined_toast + "User declined the call" + + + + + call_error_user_not_found_toast + "User was not found" + + + + + call_error_user_busy_toast + "User is busy" + + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + + + + + call_error_io_error_toast + "Unavailable service or network error" + + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + + + + + call_error_server_timeout_toast + "Server tiemout" + + + + + CallPage + + + call_forward_to_address_info + + + + + call_forward_to_address_info_voicemail + + + + + history_call_start_title + "Nouvel appel" + + + + + call_history_empty_title + "Historique d'appel vide" + + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + + + + + call_history_call_list_title + "Appels" + + + + + call_history_options_accessible_name + + + + + + menu_delete_history + "Supprimer l'historique" + + + + + call_history_list_options_accessible_name + Call history options + + + + + create_new_call_accessible_name + Create new call + + + + + call_search_in_history + "Rechercher un appel" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + history_list_empty_history + "Aucun appel dans votre historique" + + + + + return_to_call_history_accessible_name + Return to call history + + + + + call_action_start_new_call + "Nouvel appel" + + + + + call_start_group_call_title + "Appel de groupe" + + + + + call_action_start_group_call + "Lancer" + + + + + + + information_popup_error_title + + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + menu_copy_sip_address + "Copier l'adresse SIP" + + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + + + + + notification_missed_call_title + "Appel manqué" + + + + + call_outgoing + "Appel sortant" + + + + + call_audio_incoming + "Appel entrant" + + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + + + + + settings_call_enable_tones_title + Tonalités + + + + + settings_call_enable_tones_subtitle + Activer les tonalités + + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + + + + + settings_calls_command_line_title + Command line + + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + + + + + settings_calls_current_ringtone_filename + Current ringtone : + + + + + choose_ringtone_file_accessible_name + Choose ringtone file + + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + + + + + CallStatistics + + + call_stats_audio_title + "Audio" + + + + + call_stats_video_title + "Vidéo" + + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + + + + + + information_popup_error_title + + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + + + + + call_can_be_trusted_toast + "Appareil authentifié" + + + + + call_dir + + + + + call_ended + Appel terminé + + + + + conference_paused + Meeting paused + + + + + call_paused + Call paused + + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + + + + + call_zrtp_sas_validation_required + Vérification nécessaire + + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + + + + + call_not_encrypted + "Appel non chiffré" + + + + + + call_waiting_for_encryption_info + Waiting for encryption + + + + + call_paused_by_remote + Call paused by remote + + + + + conference_user_is_recording + "You are recording the meeting" + + + + + call_user_is_recording + "You are recording the call" + + + + + conference_remote_is_recording + "Someone is recording the meeting" + + + + + call_remote_recording + "%1 is recording the call" + + + + + call_stop_recording + "Stop recording" + + + + + add + + + + + call_transfer_current_call_title + "Transférer %1 à…" + + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + + + + + call_action_start_new_call + "Nouvel appel" + + + + + + call_action_show_dialer + "Pavé numérique" + + + + + call_action_change_layout + "Modifier la disposition" + + + + + call_action_go_to_calls_list + "Liste d'appel" + + + + + Merger tous les appels + call_action_merge_calls + + + + + + call_action_go_to_settings + "Paramètres" + + + + + conference_action_screen_sharing + "Partage de votre écran" + + + + + conference_share_link_title + Partager le lien de la réunion + + + + + copied + Copié + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + + + conference_participants_list_title + "Participants (%1)" + + + + + + group_call_participant_selected + + + + + + + + meeting_schedule_add_participants_title + + + + + call_encryption_title + Chiffrement + + + + + open_statistic_panel_accessible_name + + + + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + + + + + stop_recording_accessible_name + Stop recording + + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + + + + + call_stats_title + Statistiques + + + + + + call_action_end_call + "Terminer l'appel" + + + + + + call_action_resume_call + "Reprendre l'appel" + + + + + + call_action_pause_call + "Mettre l'appel en pause" + + + + + + call_action_transfer_call + "Transférer l'appel" + + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + + + + + + call_activate_video_hint + + + + + + call_activate_microphone + "Activer le micro" + + + + + + call_deactivate_microphone + "Désactiver le micro" + + + + + + call_share_screen_hint + Partager l'écran… + + + + + + call_open_chat_hint + Open chat… + + + + + + call_rise_hand_hint + "Lever la main" + + + + + + call_send_reaction_hint + "Envoyer une réaction" + + + + + + call_manage_participants_hint + "Gérer les participants" + + + + + + call_more_options_hint + "Plus d'options…" + + + + + call_action_change_conference_layout + "Modifier la disposition" + + + + + call_action_full_screen + "Mode Plein écran" + + + + + call_action_stop_recording + "Terminer l'enregistrement" + + + + + call_action_record + "Enregistrer l'appel" + + + + + call_activate_speaker_hint + "Activer le son" + + + + + call_deactivate_speaker_hint + "Désactiver le son" + + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + + + + + information_popup_error_title + + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + + + + + information_popup_synchronization_success_title + + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + + + + + settings_contacts_carddav_popup_synchronization_error_title + + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + + + + + sip_address_display_name + Nom d'affichage + + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + + + + + username + + + + + password + + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + + + + + ChangeLayoutForm + + + conference_layout_grid + + + + + conference_layout_active_speaker + + + + + conference_layout_audio_only + + + + + ChatAudioContent + + + + information_popup_error_title + Error + + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + + + + + ChatCore + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message_history + Message history has been deleted + + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + + + + + chat_message_draft_sending_text + + + + + chat_room_delete + "Delete" + + + + + chat_room_mute + + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + + + + + chat_room_leave + "leave" + + + + + chat_list_leave_chat_popup_title + leave the conversation ? + + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + + + + + chat_message_copy + "Copy" + + + + + chat_message_copied_to_clipboard_title + Copied + + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + + + + + chat_message_remote_replied + %1 replied + + + + + chat_message_forwarded + Forwarded + + + + + chat_message_remote_replied_to + %1 replied to %2 + + + + + chat_message_user_replied_to + You replied to %1 + + + + + chat_message_user_replied + You replied + + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + + + + + chat_message_forward + Forward + + + + + chat_message_delete + "Delete" + + + + + ChatMessageContentCore + + + popup_error_title + Error + + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + + + + + popup_error_path_does_not_exist_message + File was not found: %1 + + + + + popup_error_nb_files_not_found_message + + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + + + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + + + + + popup_error_unsupported_files_message + + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + + + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message + The message has been deleted + + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + + + + + ics_bubble_meeting_to + + + + + ics_bubble_meeting_modified + Meeting has been updated + + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + + + + + + + + + + ics_bubble_description_title + Description + + + + + ics_bubble_join + "Rejoindre" + + + + + ics_bubble_participants + %n participant(s) + + + + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + + + + + info_popup_no_result_message + No result found + + + + + info_popup_first_result_message + First result reached + + + + + info_popup_last_result_message + Last result reached + + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + + + + + chat_message_is_writing_info + %1 is writing… + + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + + + + + chat_empty_title + "Aucune conversation" + + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + + + + + chat_list_title + "Conversations" + + + + + menu_mark_all_as_read + "mark all as read" + + + + + chat_search_in_history + "Rechercher une conversation" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + + + + + chat_action_start_new_chat + "New chat" + + + + + chat_start_group_chat_title + "Nouveau groupe" + + + + + chat_action_start_group_chat + "Créer" + + + + + + + information_popup_error_title + + + + + information_popup_chat_creation_failed_message + "La création a échoué" + + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + chat_creation_in_progress + Creation de la conversation en cours … + + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + + + + + CliModel + + + show_function_description + + + + + fetch_config_function_description + + + + + call_function_description + + + + + bye_function_description + + + + + accept_function_description + + + + + decline_function_description + + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + + + + + Contact + + + information_popup_error_title + Erreur + + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + + + + + account_settings_name_accessible_name + Account settings of %1 + + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + + + + + save + "Enregistrer + + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + + + + + close_accessible_name + Close %1 + + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + + + + + contact_editor_add_image_label + "Ajouter une image" + + + + + contact_details_edit + "Modifier" + + + + + edit_contact_image_accessible_name + "Edit contact image" + + + + + contact_details_delete + "Supprimer" + + + + + delete_contact_image_accessible_name + "Delete contact image" + + + + + + contact_editor_first_name + "Prénom" + + + + + + contact_editor_last_name + "Nom" + + + + + + contact_editor_company + "Entreprise" + + + + + + contact_editor_job_title + "Fonction" + + + + + + sip_address + + + + + sip_address_number_accessible_name + "SIP address number %1" + + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + + + + + new_sip_address_accessible_name + "New SIP address" + + + + + phone_number_number_accessible_name + "Phone number number %1" + + + + + remove_phone_number_accessible_name + Remove phone number %1 + + + + + new_phone_number_accessible_name + "New phone number" + + + + + + phone + "Téléphone" + + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + Partager + + + + + information_popup_error_title + + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + + + + + information_popup_vcard_creation_title + VCard créée + + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + + + + + contact_sharing_email_title + Partage de contact + + + + + contact_details_delete + "Supprimer" + + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + + + + + expand_accessible_name + Expand %1 + + + + + ContactPage + + + contacts_add + "Ajouter un contact" + + + + + contacts_list_empty + "Aucun contact pour le moment" + + + + + contact_new_title + "Nouveau contact" + + + + + create + + + + + contact_edit_title + "Modifier contact" + + + + + save + + + + + contact_dialog_delete_title + Supprimer %1 ?" + + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + + + + + contact_deleted_toast + "Contact supprimé" + + + + + contact_deleted_message + "%1 a été supprimé" + + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + + + + + popup_do_not_show_again + Ne plus afficher + + + + + cancel + + + + + dialog_call + "Appeler" + + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + + + + + dialog_ok + "Ok" + + + + + bottom_navigation_contacts_label + "Contacts" + + + + + search_bar_look_for_contact_text + Rechercher un contact + + + + + list_filter_no_result_found + Aucun résultat… + + + + + contact_list_empty + Aucun contact pour le moment + + + + + expand_accessible_name + Expand %1 + + + + + shrink_accessible_name + Shrink %1 + + + + + create_contact_accessible_name + Create new contact + + + + + more_info_accessible_name + More info %1 + + + + + + contact_details_edit + Edit +---------- +"Éditer" + + + + + contact_call_action + "Appel" + + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel vidéo" + + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + + + + + call_adress_accessible_name + Call address %1 + + + + + contact_details_company_name + "Société :" + + + + + contact_details_job_title + "Poste :" + + + + + contact_details_medias_title + "Medias" + + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + + + + + contact_details_trust_title + "Confiance" + + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + + + + + contact_details_no_device_found + "Aucun appareil" + + + + + contact_device_without_name + "Appareil inconnu" + + + + + contact_make_call_check_device_trust + "Vérifier" + + + + + verify_device_accessible_name + Verify %1 device + + + + + contact_details_actions_title + "Autres actions" + + + + + contact_details_remove_from_favourites + "Retirer des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + contact_details_share + "Partager" + + + + + information_popup_error_title + + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + + + + + contact_details_share_success_title + "VCard créée" + + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + + + + + contact_details_share_email_title + "Partage de contact" + + + + + contact_details_delete + "Supprimer ce contact" + + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + + + + + settings_contacts_carddav_title + + + + + settings_contacts_carddav_subtitle + + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + add + "Ajouter" + + + + + ConversationInfos + + + one_one_infos_call + "Appel" + + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + + + + + group_infos_participants + + + + + group_infos_media_docs + Medias & documents + + + + + group_infos_shared_medias + Shared medias + + + + + group_infos_shared_docs + Shared documents + + + + + group_infos_other_actions + Other actions + + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + + + + + group_infos_leave_room + Leave chat room + + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + group_infos_delete_history + Delete history + + + + + group_infos_delete_history_toast_title + Delete history ? + + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + one_one_infos_open_contact + Show contact + + + + + one_one_infos_create_contact + Create contact + + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + + + + + one_one_infos_delete_history_toast_title + Delete history ? + + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + + + + + settings_debug_clipboard + "Presse-papier" + + + + + settings_debug_email + "E-Mail" + + + + + debug_settings_trace + "Traces %1" + + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + + + + + + information_popup_error_title + Une erreur est survenue. + + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + + + + + settings_debug_delete_logs_title + "Supprimer les traces" + + + + + settings_debug_share_logs_title + "Partager les traces" + + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + + + + + settings_debug_app_version_title + "Version de l'application" + + + + + settings_debug_sdk_version_title + "Version du SDK" + + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + + + + + textfield_error_message_unknown_format + "Format non reconnu" + + + + + Dialog + + + + dialog_confirm + "Confirmer" + + + + + + dialog_cancel + "Annuler" + + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + + + + + call_stats_media_encryption + Media encryption : %1 + + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + + + + + call_zrtp_validation_button_label + "Validation chiffrement" + + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + + + + + one_hour + + + + + one_day + + + + + one_week + + + + + disabled + + + + + custom + + + + + EventLogCore + + + conference_created_event + + + + + conference_created_terminated + + + + + conference_participant_added_event + + + + + conference_participant_removed_event + + + + + conference_participant_set_admin_event + + + + + conference_participant_unset_admin_event + + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + + + + + + + device_id + "Téléphone" + + + + + information_popup_error_title + + + + + information_popup_invalid_address_message + "Adresse invalide" + + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + + + + + group_infos_participant_is_admin + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + group_infos_give_admin_rights + + + + + group_infos_remove_admin_rights + + + + + group_infos_copy_sip_address + + + + + group_infos_remove_participant + + + + + group_infos_remove_participants_toast_title + + + + + group_infos_remove_participants_toast_message + + + + + GroupCreationFormLayout + + + return_accessible_name + Return + + + + + + group_start_dialog_subject_hint + "Nom du groupe" + + + + + required + "Requis" + + + + + HelpPage + + + help_title + "Aide" + + + + + + help_about_title + "À propos de %1" + + + + + help_about_privacy_policy_title + "Règles de confidentialité" + + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + + + + + help_about_version_title + "Version" + + + + + help_about_gpl_licence_title + "Licences GPLv3" + + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + + + + + help_troubleshooting_title + "Dépannage" + + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + + + + + settings_contacts_ldap_subtitle + + + + + information_popup_success_title + + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + + + + + information_popup_error_title + + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + + + + + delete_ldap_server_accessible_name + Delete LDAP server + + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + + + + + settings_contacts_ldap_password_title + "Mot de passe" + + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + + + + + settings_contacts_ldap_search_filter_title + "Filtre" + + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + + + + + settings_contacts_ldap_debug_title + "Débogage" + + + + + LoadingPopup + + + cancel + + + + + LoginForm + + + + username + Nom d'utilisateur : username + + + + + + password + Mot de passe + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + assistant_account_login + "Connexion" + + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + + + + + assistant_forgotten_password + "Mot de passe oublié ?" + + + + + LoginLayout + + + + help_about_title + À propos de %1 + + + + + help_about_privacy_policy_title + "Politique de confidentialité" + + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + + + + + help_about_version_title + "Version" + + + + + help_about_licence_title + "Licence" + + + + + help_about_copyright_title + "Copyright + + + + + close + "Fermer" + + + + + LoginPage + + + return_accessible_name + Return + + + + + assistant_account_login + Connexion + + + + + assistant_no_account_yet + "Pas encore de compte ?" + + + + + assistant_account_register + "S'inscrire" + + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + + + + + assistant_login_remote_provisioning + "Configuration distante" + + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + + + + + cancel + + + + + validate + "Valider" + + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + + + + + default_account_connection_state_error_toast + + + + + MagicSearchList + + + device_id + + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + + + + + open_calls_page_accessible_name + "Open calls page" + + + + + bottom_navigation_contacts_label + "Contacts" + + + + + open_contacts_page_accessible_name + "Open contacts page" + + + + + bottom_navigation_conversations_label + "Conversations" + + + + + open_conversations_page_accessible_name + "Open conversations page" + + + + + bottom_navigation_meetings_label + "Réunions" + + + + + open_contact_page_accessible_name + "Open meetings page" + + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + + + + + do_not_disturb_accessible_name + "Do not disturb" + + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + + + + + information_popup_error_title + + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + + + + + account_list_accessible_name + "Account list" + + + + + application_options_accessible_name + "Application options" + + + + + drawer_menu_manage_account + Mon compte + + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + + + + + settings_title + + + + + recordings_title + "Enregistrements" + + + + + help_title + "Aide" + + + + + help_quit_title + "Quitter l'application" + + + + + quit_app_question + "Quitter %1 ?" + + + + + drawer_menu_add_account + "Ajouter un compte" + + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + + + + + interoperable + interopérable + + + + + call_transfer_successful_toast_title + "Appel transféré" + + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + + + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + + + + + assistant_register_error_title + "Erreur lors de la création" + + + + + assistant_register_success_title + "Compte créé" + + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + + + + + assistant_register_error_code + "Erreur dans le code de validation" + + + + + information_popup_error_title + + + + + ManageParticipants + + + group_infos_manage_participants + + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + + + + + meeting_schedule_broadcast_label + "Webinar" + + + + + meeting_schedule_subject_hint + "Ajouter un titre" + + + + + meeting_schedule_description_hint + "Ajouter une description" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + MeetingPage + + + meetings_add + "Créer une réunion" + + + + + meetings_list_empty + "Aucune réunion" + + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + + + + + meeting_schedule_delete_action + "Supprimer" + + + + + back_action + Retour + + + + + meetings_list_title + Réunions + + + + + meetings_search_hint + "Rechercher une réunion" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + meetings_empty_list + "Aucune réunion" + + + + + + meeting_schedule_title + "Nouvelle réunion" + + + + + create + + + + + + + + + + information_popup_error_title + + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + + + + + save + + + + + + saved + "Enregistré" + + + + + meeting_info_updated_toast + "Réunion mise à jour" + + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_add_participants_apply + + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + + + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + + + + + meeting_schedule_timezone_title + "Fuseau horaire" + + + + + meeting_info_organizer_label + "Organisateur" + + + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + + + + + click_to_delete_reaction_info + Click to delete + + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + + + + + no_shared_documents + No document + + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + + + + + + + + choose_something_accessible_name + Choose %1 + + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + + + + + + device_volume_accessible_name + %1 volume + + + + + + + multimedia_settings_microphone_title + "Microphone" + + + + + + multimedia_settings_camera_title + "Caméra" + + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + + + + + call_start_group_call_title + Appel de groupe + + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + + + + + dialog_accept + "Accepter" + + + + + dialog_deny + "Refuser + + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + + + + + new_file_message + + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + + + + + new_message_alert_accessible_name + New message on chatroom %1 + + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + + + + + oidc_authentication_granted_message + Authentication granted + + + + + oidc_authentication_not_authenticated_message + Not authenticated + + + + + oidc_authentication_refresh_message + Refreshing token + + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + + + + + oidc_authentication_network_error + Network error + + + + + oidc_authentication_server_error + Server error + + + + + oidc_authentication_token_not_found_error + OAuth token not found + + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + + + + + oidc_authentication_no_token_found_error + + + + + oidc_authentication_request_token_message + Requesting access token + + + + + oidc_authentication_refresh_token_message + Refreshing access token + + + + + oidc_authentication_request_authorization_message + Requesting authorization + + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + + + + + meeting_add_participants_title + "Ajouter des participants" + + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + + + + + number_phone_number_accessible_name + %1 number + + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + + + + + open_popup_panel_accessible_name + "Open %1" popup + + + + + Presence + + + contact_presence_reset_status + + + + + contact_presence_button_set_custom_status + + + + + contact_presence_button_edit_custom_status + + + + + contact_presence_button_delete_custom_status + + + + + contact_presence_custom_status + + + + + PresenceNoteLayout + + + contact_presence_note_title + + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + + + + + contact_presence_button_save_custom_status + + + + + QObject + + + media_encryption_dtls + + + + + media_encryption_none + + + + + media_encryption_srtp + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + message_state_in_progress + "delivery in progress" + + + + + message_state_delivered + sent + + + + + message_state_not_delivered + error + + + + + message_state_file_transfer_error + cannot get file from server + + + + + message_state_file_transfer_done + file transfer has been completed successfully + + + + + message_state_delivered_to_user + received + + + + + message_state_displayed + read + + + + + message_state_file_transfer__in_progress + file transfer in progress + + + + + message_state_pending_delivery + pending delivery + + + + + message_state_file_transfer_cancelling + file transfer canceled + + + + + incoming + "Entrant" + + + + + outgoing + "Sortant" + + + + + conference_layout_active_speaker + "Participant actif" + + + + + conference_layout_grid + "Mosaïque" + + + + + conference_layout_audio_only + "Audio uniquement" + + + + + RegisterCheckingPage + + + email + "email" + + + + + phone_number + "numéro de téléphone" + + + + + confirm_register_title + "Inscription | Confirmer votre %1" + + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + + + + + RegisterPage + + + return_accessible_name + Return + + + + + assistant_account_register + "Inscription + + + + + assistant_already_have_an_account + + + + + assistant_account_login + + + + + assistant_account_register_with_phone_number + + + + + assistant_account_register_with_email + + + + + + username + + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + domain + + + + + + + phone_number + "Numéro de téléphone" + + + + + + email + + + + + + password + + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + + + + + assistant_account_create + "Créer" + + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + + + + + SIPLoginPage + + + return_accessible_name + Return + + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + + + + + assistant_no_account_yet + Pas encore de compte ? + + + + + assistant_account_register + S'inscrire + + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + + + + + + username + "Nom d'utilisateur" + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + password + + + + + + sip_address_domain + "Domaine" + + + + + + sip_address_display_name + Nom d'affichage + + + + + + transport + "Transport" + + + + + + assistant_account_login + + + + + assistant_account_login_missing_username + + + + + assistant_account_login_missing_password + + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + + + + + login_advanced_parameters_label + Advanced parameters + + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + + + + + screencast_settings_all_screen_label + "Ecran entier" + + + + + screencast_settings_one_window_label + "Fenêtre" + + + + + screencast_settings_screen + "Ecran %1" + + + + + stop + "Stop + + + + + share + "Partager" + + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + + + + + dialog_continue + "Continuer" + + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + + + + + SelectedChatView + + + chat_view_group_call_toast_message + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + reply_to_label + Reply to %1 + + + + + shared_medias_title + Shared medias + + + + + shared_documents_title + Shared documents + + + + + forward_to_title + Forward to… + + + + + conversations_title + Conversations + + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + + + + + SettingsPage + + + settings_title + "Paramètres" + + + + + settings_calls_title + "Appels" + + + + + settings_call_forward + "Transfert d'appel" + + + + + settings_conversations_title + "Conversations" + + + + + settings_contacts_title + "Contacts" + + + + + settings_meetings_title + "Réunions" + + + + + settings_network_title + "Affichage" "Security" "Réseau" + + + + + settings_advanced_title + "Paramètres avancés" + + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + + + + + conference_participant_paused_text + "En pause" + + + + + TextField + + + show_accessible_name + Show %1 + + + + + hide_accessible_name + Hide %1 + + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + + + + + group_call_error_no_account + + + + + group_call_error_participants_invite + + + + + group_call_error_creation + + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + + + + + unknown_audio_device_name + + + + + conference_invitation + + + + + conference_invitation_cancelled + + + + + conference_invitation_updated + + + + + Utils + + + nSeconds + + + + + + + + nMinute + + + + + + + + chat_message_forward_error + Cannot forward an invalid message + + + + + info_popup_forward_message_error + Could not forward message : %1 + + + + + info_popup_send_forward_message_error_message + Failed to create forward message + + + + + chat_message_reply_error + Cannot reply to invalid message + + + + + info_popup_reply_message_error + Could not send reply message : %1 + + + + + info_popup_send_reply_message_error_message + Failed to create reply message + + + + + nHour + + + + + + + + + nDay + + + + + + + + nWeek + + + + + + + + contact_presence_status_available + + + + + contact_presence_status_busy + + + + + contact_presence_status_do_not_disturb + + + + + contact_presence_status_offline + + + + + contact_presence_status_away + + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + + + + + information_popup_group_call_not_created_message + + + + + number_of_years + %n an(s) + + + + + + + + number_of_month + "%n mois" + + + + + + + + number_of_weeks + %n semaine(s) + + + + + + + + number_of_days + %n jour(s) + + + + + + + + today + "Aujourd'hui" + + + + + yesterday + "Hier + + + + + duration_tomorrow + Tomorrow + + + + + duration_number_of_days + %1 jour(s) + + + + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + + + + + recorder_error + Error with the recorder + + + + + + + chat_error + + + + + + + + + + info_popup_error_title + Error + + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + + + + + meeting_waiting_room_join + "Rejoindre" + + + + + + cancel + Cancel + + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + + + + + welcome_page_subtitle + "sur %1" + + + + + welcome_carousel_skip + "Passer" + + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + + + + + welcome_page_2_title + "Sécurisé" + + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + + + + + welcome_page_3_title + "Open Source" + + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + + + + + next + "Suivant" + + + + + start + "Commencer" + + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + + + + + call_zrtp_sas_validation_skip + "Passer" + + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + + + + + call_action_hang_up + "Raccrocher" + + + + + country + + + Afghanistan + + + + + Albania + + + + + Algeria + + + + + AmericanSamoa + + + + + Andorra + + + + + Angola + + + + + Anguilla + + + + + AntiguaAndBarbuda + + + + + Argentina + + + + + Armenia + + + + + Aruba + + + + + Australia + + + + + Austria + + + + + Azerbaijan + + + + + Bahamas + + + + + Bahrain + + + + + Bangladesh + + + + + Barbados + + + + + Belarus + + + + + Belgium + + + + + Belize + + + + + Benin + + + + + Bermuda + + + + + Bhutan + + + + + Bolivia + + + + + BosniaAndHerzegowina + + + + + Botswana + + + + + Brazil + + + + + Brunei + + + + + Bulgaria + + + + + BurkinaFaso + + + + + Burundi + + + + + Cambodia + + + + + Cameroon + + + + + Canada + + + + + CapeVerde + + + + + CaymanIslands + + + + + CentralAfricanRepublic + + + + + Chad + + + + + Chile + + + + + China + + + + + Colombia + + + + + Comoros + + + + + PeoplesRepublicOfCongo + + + + + CookIslands + + + + + CostaRica + + + + + IvoryCoast + + + + + Croatia + + + + + Cuba + + + + + Cyprus + + + + + CzechRepublic + + + + + Denmark + + + + + Djibouti + + + + + Dominica + + + + + DominicanRepublic + + + + + Ecuador + + + + + Egypt + + + + + ElSalvador + + + + + EquatorialGuinea + + + + + Eritrea + + + + + Estonia + + + + + Ethiopia + + + + + FalklandIslands + + + + + FaroeIslands + + + + + Fiji + + + + + Finland + + + + + France + + + + + FrenchGuiana + + + + + FrenchPolynesia + + + + + Gabon + + + + + Gambia + + + + + Georgia + + + + + Germany + + + + + Ghana + + + + + Gibraltar + + + + + Greece + + + + + Greenland + + + + + Grenada + + + + + Guadeloupe + + + + + Guam + + + + + Guatemala + + + + + Guinea + + + + + GuineaBissau + + + + + Guyana + + + + + Haiti + + + + + Honduras + + + + + DemocraticRepublicOfCongo + + + + + HongKong + + + + + Hungary + + + + + Iceland + + + + + India + + + + + Indonesia + + + + + Iran + + + + + Iraq + + + + + Ireland + + + + + Israel + + + + + Italy + + + + + Jamaica + + + + + Japan + + + + + Jordan + + + + + Kazakhstan + + + + + Kenya + + + + + Kiribati + + + + + DemocraticRepublicOfKorea + + + + + RepublicOfKorea + + + + + Kuwait + + + + + Kyrgyzstan + + + + + Laos + + + + + Latvia + + + + + Lebanon + + + + + Lesotho + + + + + Liberia + + + + + Libya + + + + + Liechtenstein + + + + + Lithuania + + + + + Luxembourg + + + + + Macau + + + + + Macedonia + + + + + Madagascar + + + + + Malawi + + + + + Malaysia + + + + + Maldives + + + + + Mali + + + + + Malta + + + + + MarshallIslands + + + + + Martinique + + + + + Mauritania + + + + + Mauritius + + + + + Mayotte + + + + + Mexico + + + + + Micronesia + + + + + Moldova + + + + + Monaco + + + + + Mongolia + + + + + Montenegro + + + + + Montserrat + + + + + Morocco + + + + + Mozambique + + + + + Myanmar + + + + + Namibia + + + + + NauruCountry + + + + + Nepal + + + + + Netherlands + + + + + NewCaledonia + + + + + NewZealand + + + + + Nicaragua + + + + + Niger + + + + + Nigeria + + + + + Niue + + + + + NorfolkIsland + + + + + NorthernMarianaIslands + + + + + Norway + + + + + Oman + + + + + Pakistan + + + + + Palau + + + + + PalestinianTerritories + + + + + Panama + + + + + PapuaNewGuinea + + + + + Paraguay + + + + + Peru + + + + + Philippines + + + + + Poland + + + + + Portugal + + + + + PuertoRico + + + + + Qatar + + + + + Reunion + + + + + Romania + + + + + RussianFederation + + + + + Rwanda + + + + + SaintHelena + + + + + SaintKittsAndNevis + + + + + SaintLucia + + + + + SaintPierreAndMiquelon + + + + + SaintVincentAndTheGrenadines + + + + + Samoa + + + + + SanMarino + + + + + SaoTomeAndPrincipe + + + + + SaudiArabia + + + + + Senegal + + + + + Serbia + + + + + Seychelles + + + + + SierraLeone + + + + + Singapore + + + + + Slovakia + + + + + Slovenia + + + + + SolomonIslands + + + + + Somalia + + + + + SouthAfrica + + + + + Spain + + + + + SriLanka + + + + + Sudan + + + + + Suriname + + + + + Swaziland + + + + + Sweden + + + + + Switzerland + + + + + Syria + + + + + Taiwan + + + + + Tajikistan + + + + + Tanzania + + + + + Thailand + + + + + Togo + + + + + Tokelau + + + + + Tonga + + + + + TrinidadAndTobago + + + + + Tunisia + + + + + Turkey + + + + + Turkmenistan + + + + + TurksAndCaicosIslands + + + + + Tuvalu + + + + + Uganda + + + + + Ukraine + + + + + UnitedArabEmirates + + + + + UnitedKingdom + + + + + UnitedStates + + + + + Uruguay + + + + + Uzbekistan + + + + + Vanuatu + + + + + Venezuela + + + + + Vietnam + + + + + WallisAndFutunaIslands + + + + + Yemen + + + + + Zambia + + + + + Zimbabwe + + + + + utils + + + formatYears + '%1 year' + + + + + + + + formatMonths + '%1 month' + + + + + + + + formatWeeks + '%1 week' + + + + + + + + formatDays + '%1 day' + + + + + + + + formatHours + '%1 hour' + + + + + + + + formatMinutes + '%1 minute' + + + + + + + + formatSeconds + '%1 second' + + + + + + + + codec_install + "Installation de codec" + + + + + download_codec + "Télécharger le codec %1 (%2) ?" + + + + + information_popup_success_title + "Succès" + + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + + + + + + + information_popup_error_title + + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + + + + + okButton + + + + diff --git a/Linphone/data/languages/nl.ts b/Linphone/data/languages/nl.ts new file mode 100644 index 000000000..38c5c9c28 --- /dev/null +++ b/Linphone/data/languages/nl.ts @@ -0,0 +1,7420 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + + + + + save + "Enregistrer" + + + + + save_settings_accessible_name + Save %1 settings + + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + + + + + fps_counter + + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + + + + + drawer_menu_account_connection_status_refreshing + + + + + drawer_menu_account_connection_status_progress + + + + + drawer_menu_account_connection_status_failed + + + + + drawer_menu_account_connection_status_cleared + + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + + + + + AccountListView + + + add_an_account + Add an account + + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + + + + + assistant_account_login_forbidden_error + "Username and password do not match" + + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + + + + + assistant_account_add_error + "Unable to add account." + + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + + + + + manage_account_devices_title + "Vos appareils" + + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + + + + + manage_account_add_picture + "Ajouter une image" + + + + + manage_account_edit_picture + "Modifier l'image" + + + + + manage_account_remove_picture + "Supprimer l'image" + + + + + sip_address + + + + + sip_address_display_name + "Nom d'affichage + + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + + + + + manage_account_international_prefix + Indicatif international* + + + + + manage_account_delete + "Déconnecter mon compte" + + + + + manage_account_delete_message + + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + + + + + error + Erreur + + + + + manage_account_device_remove + "Supprimer" + + + + + manage_account_device_remove_confirm_dialog + + + + + manage_account_device_last_connection + "Dernière connexion:" + + + + + device_last_updated_time_no_info + "No information" + + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + + + + + settings_general_title + "Général" + + + + + settings_account_title + "Paramètres de compte" + + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + + + + + AccountSettingsParametersLayout + + + settings_title + + + + + settings_account_title + + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_error_title + + + + + information_popup_success_title + + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + + + + + information_popup_error_title + + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + + + + + account_settings_transport_title + "Transport" + + + + + account_settings_registrar_uri_title + + + + + account_settings_sip_proxy_url_title + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + + + + + account_settings_enable_ice_title + "Activer ICE" + + + + + account_settings_avpf_title + "AVPF" + + + + + account_settings_bundle_mode_title + "Mode bundle" + + + + + account_settings_expire_title + "Expiration (en seconde)" + + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + + + + + + + remove_participant_accessible_name + Remove participant %1 + + + + + list_filter_no_result_found + "Aucun contact" + + + + + contact_list_empty + + + + + AdvancedSettingsLayout + + + settings_system_title + System + + + + + settings_remote_provisioning_title + Remote provisioning + + + + + settings_security_title + Security / Encryption + + + + + settings_advanced_audio_codecs_title + Audio codecs + + + + + settings_advanced_video_codecs_title + Video codecs + + + + + settings_advanced_auto_start_title + Auto start %1 + + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + + + + + information_popup_error_title + Invalid URL format + + + + + settings_advanced_invalid_url_message + + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + + + + + + settings_advanced_media_encryption_title + Media encryption + + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + + + + + settings_advanced_hide_fps_title + + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + + + + + generic_address_picker_contacts_list_title + 'Contacts' + + + + + generic_address_picker_suggestions_list_title + "Suggestions" + + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + + + + + + info_popup_error_title + Error + + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + + + + + configuration_error_detail + not reachable + + + + + application_description + "A free and open source SIP video-phone." + + + + + command_line_arg_order + "Send an order to the application towards a command line" + + + + + command_line_option_show_help + + + + + command_line_option_show_app_version + + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + + + + + command_line_option_minimized + + + + + command_line_option_log_to_stdout + + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + + + + + hide_action + "Cacher" "Afficher" + + + + + show_action + + + + + quit_action + "Quitter" + + + + + mark_all_read_action + + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + + + + + password + + + + + cancel + "Annuler + + + + + assistant_account_login + Connexion + + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + + + + + media_encryption_dtls + DTLS + + + + + media_encryption_none + None + + + + + media_encryption_srtp + SRTP + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + + + + + settings_call_forward_destination_choose + Forward to destination + + + + + + + settings_call_forward_to_voicemail + + + + + settings_call_forward_to_sipaddress + + + + + settings_call_forward_sipaddress_title + SIP Address + + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + + + + + settings_call_forward_address_timeout + + + + + settings_call_forward_address_progress_disabling + + + + + settings_call_forward_address_progress_enabling + + + + + settings_call_forward_activation_success + + + + + settings_call_forward_deactivation_success + + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + contact_call_action + "Appel" + + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel Video" + + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + + + + + call_ended_by_user + "Vous avez terminé l'appel" + + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + + + + + conference_call_empty + "En attente d'autres participants…" + + + + + conference_share_link_title + "Partager le lien" + + + + + copied + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + CallList + + + remote_group_call + Remote group call + + + + + local_group_call + + + + + info_popup_error_title + + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + + + + + CallListView + + + meeting + "Réunion + + + + + call + "Appel" + + + + + paused_call_or_meeting + "%1 en pause" + + + + + ongoing_call_or_meeting + "%1 en cours" + + + + + transfer_call_name_accessible_name + Transfer call %1 + + + + + resume_call_name_accessible_name + Resume %1 call + + + + + pause_call_name_accessible_name + Pause %1 call + + + + + end_call_name_accessible_name + End %1 call + + + + + CallModel + + + call_error_no_response_toast + "No response" + + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + + + + + call_error_not_answered_toast + "Request timeout" + + + + + call_error_user_declined_toast + "User declined the call" + + + + + call_error_user_not_found_toast + "User was not found" + + + + + call_error_user_busy_toast + "User is busy" + + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + + + + + call_error_io_error_toast + "Unavailable service or network error" + + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + + + + + call_error_server_timeout_toast + "Server tiemout" + + + + + CallPage + + + call_forward_to_address_info + + + + + call_forward_to_address_info_voicemail + + + + + history_call_start_title + "Nouvel appel" + + + + + call_history_empty_title + "Historique d'appel vide" + + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + + + + + call_history_call_list_title + "Appels" + + + + + call_history_options_accessible_name + + + + + + menu_delete_history + "Supprimer l'historique" + + + + + call_history_list_options_accessible_name + Call history options + + + + + create_new_call_accessible_name + Create new call + + + + + call_search_in_history + "Rechercher un appel" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + history_list_empty_history + "Aucun appel dans votre historique" + + + + + return_to_call_history_accessible_name + Return to call history + + + + + call_action_start_new_call + "Nouvel appel" + + + + + call_start_group_call_title + "Appel de groupe" + + + + + call_action_start_group_call + "Lancer" + + + + + + + information_popup_error_title + + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + menu_copy_sip_address + "Copier l'adresse SIP" + + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + + + + + notification_missed_call_title + "Appel manqué" + + + + + call_outgoing + "Appel sortant" + + + + + call_audio_incoming + "Appel entrant" + + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + + + + + settings_call_enable_tones_title + Tonalités + + + + + settings_call_enable_tones_subtitle + Activer les tonalités + + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + + + + + settings_calls_command_line_title + Command line + + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + + + + + settings_calls_current_ringtone_filename + Current ringtone : + + + + + choose_ringtone_file_accessible_name + Choose ringtone file + + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + + + + + CallStatistics + + + call_stats_audio_title + "Audio" + + + + + call_stats_video_title + "Vidéo" + + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + + + + + + information_popup_error_title + + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + + + + + call_can_be_trusted_toast + "Appareil authentifié" + + + + + call_dir + + + + + call_ended + Appel terminé + + + + + conference_paused + Meeting paused + + + + + call_paused + Call paused + + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + + + + + call_zrtp_sas_validation_required + Vérification nécessaire + + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + + + + + call_not_encrypted + "Appel non chiffré" + + + + + + call_waiting_for_encryption_info + Waiting for encryption + + + + + call_paused_by_remote + Call paused by remote + + + + + conference_user_is_recording + "You are recording the meeting" + + + + + call_user_is_recording + "You are recording the call" + + + + + conference_remote_is_recording + "Someone is recording the meeting" + + + + + call_remote_recording + "%1 is recording the call" + + + + + call_stop_recording + "Stop recording" + + + + + add + + + + + call_transfer_current_call_title + "Transférer %1 à…" + + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + + + + + call_action_start_new_call + "Nouvel appel" + + + + + + call_action_show_dialer + "Pavé numérique" + + + + + call_action_change_layout + "Modifier la disposition" + + + + + call_action_go_to_calls_list + "Liste d'appel" + + + + + Merger tous les appels + call_action_merge_calls + + + + + + call_action_go_to_settings + "Paramètres" + + + + + conference_action_screen_sharing + "Partage de votre écran" + + + + + conference_share_link_title + Partager le lien de la réunion + + + + + copied + Copié + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + + + conference_participants_list_title + "Participants (%1)" + + + + + + group_call_participant_selected + + + + + + + + meeting_schedule_add_participants_title + + + + + call_encryption_title + Chiffrement + + + + + open_statistic_panel_accessible_name + + + + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + + + + + stop_recording_accessible_name + Stop recording + + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + + + + + call_stats_title + Statistiques + + + + + + call_action_end_call + "Terminer l'appel" + + + + + + call_action_resume_call + "Reprendre l'appel" + + + + + + call_action_pause_call + "Mettre l'appel en pause" + + + + + + call_action_transfer_call + "Transférer l'appel" + + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + + + + + + call_activate_video_hint + + + + + + call_activate_microphone + "Activer le micro" + + + + + + call_deactivate_microphone + "Désactiver le micro" + + + + + + call_share_screen_hint + Partager l'écran… + + + + + + call_open_chat_hint + Open chat… + + + + + + call_rise_hand_hint + "Lever la main" + + + + + + call_send_reaction_hint + "Envoyer une réaction" + + + + + + call_manage_participants_hint + "Gérer les participants" + + + + + + call_more_options_hint + "Plus d'options…" + + + + + call_action_change_conference_layout + "Modifier la disposition" + + + + + call_action_full_screen + "Mode Plein écran" + + + + + call_action_stop_recording + "Terminer l'enregistrement" + + + + + call_action_record + "Enregistrer l'appel" + + + + + call_activate_speaker_hint + "Activer le son" + + + + + call_deactivate_speaker_hint + "Désactiver le son" + + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + + + + + information_popup_error_title + + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + + + + + information_popup_synchronization_success_title + + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + + + + + settings_contacts_carddav_popup_synchronization_error_title + + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + + + + + sip_address_display_name + Nom d'affichage + + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + + + + + username + + + + + password + + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + + + + + ChangeLayoutForm + + + conference_layout_grid + + + + + conference_layout_active_speaker + + + + + conference_layout_audio_only + + + + + ChatAudioContent + + + + information_popup_error_title + Error + + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + + + + + ChatCore + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message_history + Message history has been deleted + + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + + + + + chat_message_draft_sending_text + + + + + chat_room_delete + "Delete" + + + + + chat_room_mute + + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + + + + + chat_room_leave + "leave" + + + + + chat_list_leave_chat_popup_title + leave the conversation ? + + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + + + + + chat_message_copy + "Copy" + + + + + chat_message_copied_to_clipboard_title + Copied + + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + + + + + chat_message_remote_replied + %1 replied + + + + + chat_message_forwarded + Forwarded + + + + + chat_message_remote_replied_to + %1 replied to %2 + + + + + chat_message_user_replied_to + You replied to %1 + + + + + chat_message_user_replied + You replied + + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + + + + + chat_message_forward + Forward + + + + + chat_message_delete + "Delete" + + + + + ChatMessageContentCore + + + popup_error_title + Error + + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + + + + + popup_error_path_does_not_exist_message + File was not found: %1 + + + + + popup_error_nb_files_not_found_message + + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + + + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + + + + + popup_error_unsupported_files_message + + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + + + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message + The message has been deleted + + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + + + + + ics_bubble_meeting_to + + + + + ics_bubble_meeting_modified + Meeting has been updated + + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + + + + + + + + + + ics_bubble_description_title + Description + + + + + ics_bubble_join + "Rejoindre" + + + + + ics_bubble_participants + %n participant(s) + + + + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + + + + + info_popup_no_result_message + No result found + + + + + info_popup_first_result_message + First result reached + + + + + info_popup_last_result_message + Last result reached + + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + + + + + chat_message_is_writing_info + %1 is writing… + + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + + + + + chat_empty_title + "Aucune conversation" + + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + + + + + chat_list_title + "Conversations" + + + + + menu_mark_all_as_read + "mark all as read" + + + + + chat_search_in_history + "Rechercher une conversation" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + + + + + chat_action_start_new_chat + "New chat" + + + + + chat_start_group_chat_title + "Nouveau groupe" + + + + + chat_action_start_group_chat + "Créer" + + + + + + + information_popup_error_title + + + + + information_popup_chat_creation_failed_message + "La création a échoué" + + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + chat_creation_in_progress + Creation de la conversation en cours … + + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + + + + + CliModel + + + show_function_description + + + + + fetch_config_function_description + + + + + call_function_description + + + + + bye_function_description + + + + + accept_function_description + + + + + decline_function_description + + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + + + + + Contact + + + information_popup_error_title + Erreur + + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + + + + + account_settings_name_accessible_name + Account settings of %1 + + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + + + + + save + "Enregistrer + + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + + + + + close_accessible_name + Close %1 + + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + + + + + contact_editor_add_image_label + "Ajouter une image" + + + + + contact_details_edit + "Modifier" + + + + + edit_contact_image_accessible_name + "Edit contact image" + + + + + contact_details_delete + "Supprimer" + + + + + delete_contact_image_accessible_name + "Delete contact image" + + + + + + contact_editor_first_name + "Prénom" + + + + + + contact_editor_last_name + "Nom" + + + + + + contact_editor_company + "Entreprise" + + + + + + contact_editor_job_title + "Fonction" + + + + + + sip_address + + + + + sip_address_number_accessible_name + "SIP address number %1" + + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + + + + + new_sip_address_accessible_name + "New SIP address" + + + + + phone_number_number_accessible_name + "Phone number number %1" + + + + + remove_phone_number_accessible_name + Remove phone number %1 + + + + + new_phone_number_accessible_name + "New phone number" + + + + + + phone + "Téléphone" + + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + Partager + + + + + information_popup_error_title + + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + + + + + information_popup_vcard_creation_title + VCard créée + + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + + + + + contact_sharing_email_title + Partage de contact + + + + + contact_details_delete + "Supprimer" + + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + + + + + expand_accessible_name + Expand %1 + + + + + ContactPage + + + contacts_add + "Ajouter un contact" + + + + + contacts_list_empty + "Aucun contact pour le moment" + + + + + contact_new_title + "Nouveau contact" + + + + + create + + + + + contact_edit_title + "Modifier contact" + + + + + save + + + + + contact_dialog_delete_title + Supprimer %1 ?" + + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + + + + + contact_deleted_toast + "Contact supprimé" + + + + + contact_deleted_message + "%1 a été supprimé" + + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + + + + + popup_do_not_show_again + Ne plus afficher + + + + + cancel + + + + + dialog_call + "Appeler" + + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + + + + + dialog_ok + "Ok" + + + + + bottom_navigation_contacts_label + "Contacts" + + + + + search_bar_look_for_contact_text + Rechercher un contact + + + + + list_filter_no_result_found + Aucun résultat… + + + + + contact_list_empty + Aucun contact pour le moment + + + + + expand_accessible_name + Expand %1 + + + + + shrink_accessible_name + Shrink %1 + + + + + create_contact_accessible_name + Create new contact + + + + + more_info_accessible_name + More info %1 + + + + + + contact_details_edit + Edit +---------- +"Éditer" + + + + + contact_call_action + "Appel" + + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel vidéo" + + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + + + + + call_adress_accessible_name + Call address %1 + + + + + contact_details_company_name + "Société :" + + + + + contact_details_job_title + "Poste :" + + + + + contact_details_medias_title + "Medias" + + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + + + + + contact_details_trust_title + "Confiance" + + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + + + + + contact_details_no_device_found + "Aucun appareil" + + + + + contact_device_without_name + "Appareil inconnu" + + + + + contact_make_call_check_device_trust + "Vérifier" + + + + + verify_device_accessible_name + Verify %1 device + + + + + contact_details_actions_title + "Autres actions" + + + + + contact_details_remove_from_favourites + "Retirer des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + contact_details_share + "Partager" + + + + + information_popup_error_title + + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + + + + + contact_details_share_success_title + "VCard créée" + + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + + + + + contact_details_share_email_title + "Partage de contact" + + + + + contact_details_delete + "Supprimer ce contact" + + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + + + + + settings_contacts_carddav_title + + + + + settings_contacts_carddav_subtitle + + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + add + "Ajouter" + + + + + ConversationInfos + + + one_one_infos_call + "Appel" + + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + + + + + group_infos_participants + + + + + group_infos_media_docs + Medias & documents + + + + + group_infos_shared_medias + Shared medias + + + + + group_infos_shared_docs + Shared documents + + + + + group_infos_other_actions + Other actions + + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + + + + + group_infos_leave_room + Leave chat room + + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + group_infos_delete_history + Delete history + + + + + group_infos_delete_history_toast_title + Delete history ? + + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + one_one_infos_open_contact + Show contact + + + + + one_one_infos_create_contact + Create contact + + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + + + + + one_one_infos_delete_history_toast_title + Delete history ? + + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + + + + + settings_debug_clipboard + "Presse-papier" + + + + + settings_debug_email + "E-Mail" + + + + + debug_settings_trace + "Traces %1" + + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + + + + + + information_popup_error_title + Une erreur est survenue. + + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + + + + + settings_debug_delete_logs_title + "Supprimer les traces" + + + + + settings_debug_share_logs_title + "Partager les traces" + + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + + + + + settings_debug_app_version_title + "Version de l'application" + + + + + settings_debug_sdk_version_title + "Version du SDK" + + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + + + + + textfield_error_message_unknown_format + "Format non reconnu" + + + + + Dialog + + + + dialog_confirm + "Confirmer" + + + + + + dialog_cancel + "Annuler" + + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + + + + + call_stats_media_encryption + Media encryption : %1 + + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + + + + + call_zrtp_validation_button_label + "Validation chiffrement" + + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + + + + + one_hour + + + + + one_day + + + + + one_week + + + + + disabled + + + + + custom + + + + + EventLogCore + + + conference_created_event + + + + + conference_created_terminated + + + + + conference_participant_added_event + + + + + conference_participant_removed_event + + + + + conference_participant_set_admin_event + + + + + conference_participant_unset_admin_event + + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + + + + + + + device_id + "Téléphone" + + + + + information_popup_error_title + + + + + information_popup_invalid_address_message + "Adresse invalide" + + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + + + + + group_infos_participant_is_admin + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + group_infos_give_admin_rights + + + + + group_infos_remove_admin_rights + + + + + group_infos_copy_sip_address + + + + + group_infos_remove_participant + + + + + group_infos_remove_participants_toast_title + + + + + group_infos_remove_participants_toast_message + + + + + GroupCreationFormLayout + + + return_accessible_name + Return + + + + + + group_start_dialog_subject_hint + "Nom du groupe" + + + + + required + "Requis" + + + + + HelpPage + + + help_title + "Aide" + + + + + + help_about_title + "À propos de %1" + + + + + help_about_privacy_policy_title + "Règles de confidentialité" + + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + + + + + help_about_version_title + "Version" + + + + + help_about_gpl_licence_title + "Licences GPLv3" + + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + + + + + help_troubleshooting_title + "Dépannage" + + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + + + + + settings_contacts_ldap_subtitle + + + + + information_popup_success_title + + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + + + + + information_popup_error_title + + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + + + + + delete_ldap_server_accessible_name + Delete LDAP server + + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + + + + + settings_contacts_ldap_password_title + "Mot de passe" + + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + + + + + settings_contacts_ldap_search_filter_title + "Filtre" + + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + + + + + settings_contacts_ldap_debug_title + "Débogage" + + + + + LoadingPopup + + + cancel + + + + + LoginForm + + + + username + Nom d'utilisateur : username + + + + + + password + Mot de passe + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + assistant_account_login + "Connexion" + + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + + + + + assistant_forgotten_password + "Mot de passe oublié ?" + + + + + LoginLayout + + + + help_about_title + À propos de %1 + + + + + help_about_privacy_policy_title + "Politique de confidentialité" + + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + + + + + help_about_version_title + "Version" + + + + + help_about_licence_title + "Licence" + + + + + help_about_copyright_title + "Copyright + + + + + close + "Fermer" + + + + + LoginPage + + + return_accessible_name + Return + + + + + assistant_account_login + Connexion + + + + + assistant_no_account_yet + "Pas encore de compte ?" + + + + + assistant_account_register + "S'inscrire" + + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + + + + + assistant_login_remote_provisioning + "Configuration distante" + + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + + + + + cancel + + + + + validate + "Valider" + + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + + + + + default_account_connection_state_error_toast + + + + + MagicSearchList + + + device_id + + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + + + + + open_calls_page_accessible_name + "Open calls page" + + + + + bottom_navigation_contacts_label + "Contacts" + + + + + open_contacts_page_accessible_name + "Open contacts page" + + + + + bottom_navigation_conversations_label + "Conversations" + + + + + open_conversations_page_accessible_name + "Open conversations page" + + + + + bottom_navigation_meetings_label + "Réunions" + + + + + open_contact_page_accessible_name + "Open meetings page" + + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + + + + + do_not_disturb_accessible_name + "Do not disturb" + + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + + + + + information_popup_error_title + + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + + + + + account_list_accessible_name + "Account list" + + + + + application_options_accessible_name + "Application options" + + + + + drawer_menu_manage_account + Mon compte + + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + + + + + settings_title + + + + + recordings_title + "Enregistrements" + + + + + help_title + "Aide" + + + + + help_quit_title + "Quitter l'application" + + + + + quit_app_question + "Quitter %1 ?" + + + + + drawer_menu_add_account + "Ajouter un compte" + + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + + + + + interoperable + interopérable + + + + + call_transfer_successful_toast_title + "Appel transféré" + + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + + + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + + + + + assistant_register_error_title + "Erreur lors de la création" + + + + + assistant_register_success_title + "Compte créé" + + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + + + + + assistant_register_error_code + "Erreur dans le code de validation" + + + + + information_popup_error_title + + + + + ManageParticipants + + + group_infos_manage_participants + + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + + + + + meeting_schedule_broadcast_label + "Webinar" + + + + + meeting_schedule_subject_hint + "Ajouter un titre" + + + + + meeting_schedule_description_hint + "Ajouter une description" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + MeetingPage + + + meetings_add + "Créer une réunion" + + + + + meetings_list_empty + "Aucune réunion" + + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + + + + + meeting_schedule_delete_action + "Supprimer" + + + + + back_action + Retour + + + + + meetings_list_title + Réunions + + + + + meetings_search_hint + "Rechercher une réunion" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + meetings_empty_list + "Aucune réunion" + + + + + + meeting_schedule_title + "Nouvelle réunion" + + + + + create + + + + + + + + + + information_popup_error_title + + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + + + + + save + + + + + + saved + "Enregistré" + + + + + meeting_info_updated_toast + "Réunion mise à jour" + + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_add_participants_apply + + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + + + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + + + + + meeting_schedule_timezone_title + "Fuseau horaire" + + + + + meeting_info_organizer_label + "Organisateur" + + + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + + + + + click_to_delete_reaction_info + Click to delete + + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + + + + + no_shared_documents + No document + + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + + + + + + + + choose_something_accessible_name + Choose %1 + + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + + + + + + device_volume_accessible_name + %1 volume + + + + + + + multimedia_settings_microphone_title + "Microphone" + + + + + + multimedia_settings_camera_title + "Caméra" + + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + + + + + call_start_group_call_title + Appel de groupe + + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + + + + + dialog_accept + "Accepter" + + + + + dialog_deny + "Refuser + + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + + + + + new_file_message + + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + + + + + new_message_alert_accessible_name + New message on chatroom %1 + + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + + + + + oidc_authentication_granted_message + Authentication granted + + + + + oidc_authentication_not_authenticated_message + Not authenticated + + + + + oidc_authentication_refresh_message + Refreshing token + + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + + + + + oidc_authentication_network_error + Network error + + + + + oidc_authentication_server_error + Server error + + + + + oidc_authentication_token_not_found_error + OAuth token not found + + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + + + + + oidc_authentication_no_token_found_error + + + + + oidc_authentication_request_token_message + Requesting access token + + + + + oidc_authentication_refresh_token_message + Refreshing access token + + + + + oidc_authentication_request_authorization_message + Requesting authorization + + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + + + + + meeting_add_participants_title + "Ajouter des participants" + + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + + + + + number_phone_number_accessible_name + %1 number + + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + + + + + open_popup_panel_accessible_name + "Open %1" popup + + + + + Presence + + + contact_presence_reset_status + + + + + contact_presence_button_set_custom_status + + + + + contact_presence_button_edit_custom_status + + + + + contact_presence_button_delete_custom_status + + + + + contact_presence_custom_status + + + + + PresenceNoteLayout + + + contact_presence_note_title + + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + + + + + contact_presence_button_save_custom_status + + + + + QObject + + + media_encryption_dtls + + + + + media_encryption_none + + + + + media_encryption_srtp + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + message_state_in_progress + "delivery in progress" + + + + + message_state_delivered + sent + + + + + message_state_not_delivered + error + + + + + message_state_file_transfer_error + cannot get file from server + + + + + message_state_file_transfer_done + file transfer has been completed successfully + + + + + message_state_delivered_to_user + received + + + + + message_state_displayed + read + + + + + message_state_file_transfer__in_progress + file transfer in progress + + + + + message_state_pending_delivery + pending delivery + + + + + message_state_file_transfer_cancelling + file transfer canceled + + + + + incoming + "Entrant" + + + + + outgoing + "Sortant" + + + + + conference_layout_active_speaker + "Participant actif" + + + + + conference_layout_grid + "Mosaïque" + + + + + conference_layout_audio_only + "Audio uniquement" + + + + + RegisterCheckingPage + + + email + "email" + + + + + phone_number + "numéro de téléphone" + + + + + confirm_register_title + "Inscription | Confirmer votre %1" + + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + + + + + RegisterPage + + + return_accessible_name + Return + + + + + assistant_account_register + "Inscription + + + + + assistant_already_have_an_account + + + + + assistant_account_login + + + + + assistant_account_register_with_phone_number + + + + + assistant_account_register_with_email + + + + + + username + + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + domain + + + + + + + phone_number + "Numéro de téléphone" + + + + + + email + + + + + + password + + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + + + + + assistant_account_create + "Créer" + + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + + + + + SIPLoginPage + + + return_accessible_name + Return + + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + + + + + assistant_no_account_yet + Pas encore de compte ? + + + + + assistant_account_register + S'inscrire + + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + + + + + + username + "Nom d'utilisateur" + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + password + + + + + + sip_address_domain + "Domaine" + + + + + + sip_address_display_name + Nom d'affichage + + + + + + transport + "Transport" + + + + + + assistant_account_login + + + + + assistant_account_login_missing_username + + + + + assistant_account_login_missing_password + + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + + + + + login_advanced_parameters_label + Advanced parameters + + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + + + + + screencast_settings_all_screen_label + "Ecran entier" + + + + + screencast_settings_one_window_label + "Fenêtre" + + + + + screencast_settings_screen + "Ecran %1" + + + + + stop + "Stop + + + + + share + "Partager" + + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + + + + + dialog_continue + "Continuer" + + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + + + + + SelectedChatView + + + chat_view_group_call_toast_message + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + reply_to_label + Reply to %1 + + + + + shared_medias_title + Shared medias + + + + + shared_documents_title + Shared documents + + + + + forward_to_title + Forward to… + + + + + conversations_title + Conversations + + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + + + + + SettingsPage + + + settings_title + "Paramètres" + + + + + settings_calls_title + "Appels" + + + + + settings_call_forward + "Transfert d'appel" + + + + + settings_conversations_title + "Conversations" + + + + + settings_contacts_title + "Contacts" + + + + + settings_meetings_title + "Réunions" + + + + + settings_network_title + "Affichage" "Security" "Réseau" + + + + + settings_advanced_title + "Paramètres avancés" + + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + + + + + conference_participant_paused_text + "En pause" + + + + + TextField + + + show_accessible_name + Show %1 + + + + + hide_accessible_name + Hide %1 + + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + + + + + group_call_error_no_account + + + + + group_call_error_participants_invite + + + + + group_call_error_creation + + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + + + + + unknown_audio_device_name + + + + + conference_invitation + + + + + conference_invitation_cancelled + + + + + conference_invitation_updated + + + + + Utils + + + nSeconds + + + + + + + + nMinute + + + + + + + + chat_message_forward_error + Cannot forward an invalid message + + + + + info_popup_forward_message_error + Could not forward message : %1 + + + + + info_popup_send_forward_message_error_message + Failed to create forward message + + + + + chat_message_reply_error + Cannot reply to invalid message + + + + + info_popup_reply_message_error + Could not send reply message : %1 + + + + + info_popup_send_reply_message_error_message + Failed to create reply message + + + + + nHour + + + + + + + + + nDay + + + + + + + + nWeek + + + + + + + + contact_presence_status_available + + + + + contact_presence_status_busy + + + + + contact_presence_status_do_not_disturb + + + + + contact_presence_status_offline + + + + + contact_presence_status_away + + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + + + + + information_popup_group_call_not_created_message + + + + + number_of_years + %n an(s) + + + + + + + + number_of_month + "%n mois" + + + + + + + + number_of_weeks + %n semaine(s) + + + + + + + + number_of_days + %n jour(s) + + + + + + + + today + "Aujourd'hui" + + + + + yesterday + "Hier + + + + + duration_tomorrow + Tomorrow + + + + + duration_number_of_days + %1 jour(s) + + + + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + + + + + recorder_error + Error with the recorder + + + + + + + chat_error + + + + + + + + + + info_popup_error_title + Error + + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + + + + + meeting_waiting_room_join + "Rejoindre" + + + + + + cancel + Cancel + + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + + + + + welcome_page_subtitle + "sur %1" + + + + + welcome_carousel_skip + "Passer" + + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + + + + + welcome_page_2_title + "Sécurisé" + + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + + + + + welcome_page_3_title + "Open Source" + + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + + + + + next + "Suivant" + + + + + start + "Commencer" + + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + + + + + call_zrtp_sas_validation_skip + "Passer" + + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + + + + + call_action_hang_up + "Raccrocher" + + + + + country + + + Afghanistan + + + + + Albania + + + + + Algeria + + + + + AmericanSamoa + + + + + Andorra + + + + + Angola + + + + + Anguilla + + + + + AntiguaAndBarbuda + + + + + Argentina + + + + + Armenia + + + + + Aruba + + + + + Australia + + + + + Austria + + + + + Azerbaijan + + + + + Bahamas + + + + + Bahrain + + + + + Bangladesh + + + + + Barbados + + + + + Belarus + + + + + Belgium + + + + + Belize + + + + + Benin + + + + + Bermuda + + + + + Bhutan + + + + + Bolivia + + + + + BosniaAndHerzegowina + + + + + Botswana + + + + + Brazil + + + + + Brunei + + + + + Bulgaria + + + + + BurkinaFaso + + + + + Burundi + + + + + Cambodia + + + + + Cameroon + + + + + Canada + + + + + CapeVerde + + + + + CaymanIslands + + + + + CentralAfricanRepublic + + + + + Chad + + + + + Chile + + + + + China + + + + + Colombia + + + + + Comoros + + + + + PeoplesRepublicOfCongo + + + + + CookIslands + + + + + CostaRica + + + + + IvoryCoast + + + + + Croatia + + + + + Cuba + + + + + Cyprus + + + + + CzechRepublic + + + + + Denmark + + + + + Djibouti + + + + + Dominica + + + + + DominicanRepublic + + + + + Ecuador + + + + + Egypt + + + + + ElSalvador + + + + + EquatorialGuinea + + + + + Eritrea + + + + + Estonia + + + + + Ethiopia + + + + + FalklandIslands + + + + + FaroeIslands + + + + + Fiji + + + + + Finland + + + + + France + + + + + FrenchGuiana + + + + + FrenchPolynesia + + + + + Gabon + + + + + Gambia + + + + + Georgia + + + + + Germany + + + + + Ghana + + + + + Gibraltar + + + + + Greece + + + + + Greenland + + + + + Grenada + + + + + Guadeloupe + + + + + Guam + + + + + Guatemala + + + + + Guinea + + + + + GuineaBissau + + + + + Guyana + + + + + Haiti + + + + + Honduras + + + + + DemocraticRepublicOfCongo + + + + + HongKong + + + + + Hungary + + + + + Iceland + + + + + India + + + + + Indonesia + + + + + Iran + + + + + Iraq + + + + + Ireland + + + + + Israel + + + + + Italy + + + + + Jamaica + + + + + Japan + + + + + Jordan + + + + + Kazakhstan + + + + + Kenya + + + + + Kiribati + + + + + DemocraticRepublicOfKorea + + + + + RepublicOfKorea + + + + + Kuwait + + + + + Kyrgyzstan + + + + + Laos + + + + + Latvia + + + + + Lebanon + + + + + Lesotho + + + + + Liberia + + + + + Libya + + + + + Liechtenstein + + + + + Lithuania + + + + + Luxembourg + + + + + Macau + + + + + Macedonia + + + + + Madagascar + + + + + Malawi + + + + + Malaysia + + + + + Maldives + + + + + Mali + + + + + Malta + + + + + MarshallIslands + + + + + Martinique + + + + + Mauritania + + + + + Mauritius + + + + + Mayotte + + + + + Mexico + + + + + Micronesia + + + + + Moldova + + + + + Monaco + + + + + Mongolia + + + + + Montenegro + + + + + Montserrat + + + + + Morocco + + + + + Mozambique + + + + + Myanmar + + + + + Namibia + + + + + NauruCountry + + + + + Nepal + + + + + Netherlands + + + + + NewCaledonia + + + + + NewZealand + + + + + Nicaragua + + + + + Niger + + + + + Nigeria + + + + + Niue + + + + + NorfolkIsland + + + + + NorthernMarianaIslands + + + + + Norway + + + + + Oman + + + + + Pakistan + + + + + Palau + + + + + PalestinianTerritories + + + + + Panama + + + + + PapuaNewGuinea + + + + + Paraguay + + + + + Peru + + + + + Philippines + + + + + Poland + + + + + Portugal + + + + + PuertoRico + + + + + Qatar + + + + + Reunion + + + + + Romania + + + + + RussianFederation + + + + + Rwanda + + + + + SaintHelena + + + + + SaintKittsAndNevis + + + + + SaintLucia + + + + + SaintPierreAndMiquelon + + + + + SaintVincentAndTheGrenadines + + + + + Samoa + + + + + SanMarino + + + + + SaoTomeAndPrincipe + + + + + SaudiArabia + + + + + Senegal + + + + + Serbia + + + + + Seychelles + + + + + SierraLeone + + + + + Singapore + + + + + Slovakia + + + + + Slovenia + + + + + SolomonIslands + + + + + Somalia + + + + + SouthAfrica + + + + + Spain + + + + + SriLanka + + + + + Sudan + + + + + Suriname + + + + + Swaziland + + + + + Sweden + + + + + Switzerland + + + + + Syria + + + + + Taiwan + + + + + Tajikistan + + + + + Tanzania + + + + + Thailand + + + + + Togo + + + + + Tokelau + + + + + Tonga + + + + + TrinidadAndTobago + + + + + Tunisia + + + + + Turkey + + + + + Turkmenistan + + + + + TurksAndCaicosIslands + + + + + Tuvalu + + + + + Uganda + + + + + Ukraine + + + + + UnitedArabEmirates + + + + + UnitedKingdom + + + + + UnitedStates + + + + + Uruguay + + + + + Uzbekistan + + + + + Vanuatu + + + + + Venezuela + + + + + Vietnam + + + + + WallisAndFutunaIslands + + + + + Yemen + + + + + Zambia + + + + + Zimbabwe + + + + + utils + + + formatYears + '%1 year' + + + + + + + + formatMonths + '%1 month' + + + + + + + + formatWeeks + '%1 week' + + + + + + + + formatDays + '%1 day' + + + + + + + + formatHours + '%1 hour' + + + + + + + + formatMinutes + '%1 minute' + + + + + + + + formatSeconds + '%1 second' + + + + + + + + codec_install + "Installation de codec" + + + + + download_codec + "Télécharger le codec %1 (%2) ?" + + + + + information_popup_success_title + "Succès" + + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + + + + + + + information_popup_error_title + + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + + + + + okButton + + + + diff --git a/Linphone/data/languages/pt.ts b/Linphone/data/languages/pt.ts new file mode 100644 index 000000000..65de2cf2a --- /dev/null +++ b/Linphone/data/languages/pt.ts @@ -0,0 +1,7433 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + + + + + save + "Enregistrer" + Gravar + + + + save_settings_accessible_name + Save %1 settings + + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + Escolha um número ou endereço SIP + + + + fps_counter + %1 FPS + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + Conectado + + + + drawer_menu_account_connection_status_refreshing + Atualizando… + + + + drawer_menu_account_connection_status_progress + Conectando… + + + + drawer_menu_account_connection_status_failed + Erro + + + + drawer_menu_account_connection_status_cleared + Desabilitado + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + Você está online e alcançável. + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + Erro de conexão, verifique suas configurações. + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + Conta desabilitada, você não irá receber ligações ou mensagens. + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + Erro ao recuperar dispositivos + + + + AccountListView + + + add_an_account + Add an account + + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + A conta já está conectada + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + Impossível criar endereço proxy. Por favor verifique o nome do domínio. + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + Impossível configurar o endereço: `%1`. + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + Impossível configurar os parâmetros da conta. + + + + assistant_account_login_forbidden_error + "Username and password do not match" + Usuário e a senha não correspondem + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + Erro durante a conexão + + + + assistant_account_add_error + "Unable to add account." + Impossível adicionar conta. + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + Detalhes + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + Edite as informações de sua conta. + + + + manage_account_devices_title + "Vos appareils" + Seus dispositivos + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + A lista de dispositivos conectados em sua conta. Você pode remover dispositivos fora de uso. + + + + manage_account_add_picture + "Ajouter une image" + Adicione uma imagem + + + + manage_account_edit_picture + "Modifier l'image" + Edite sua imagem + + + + manage_account_remove_picture + "Supprimer l'image" + Apague a imagem + + + + sip_address + Endereço SIP + + + + sip_address_display_name + "Nom d'affichage + Nome de exibição + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + O nome exibido para seus contatos. + + + + manage_account_international_prefix + Indicatif international* + Código internacional* + + + + manage_account_delete + "Déconnecter mon compte" + Desconecte minha conta + + + + manage_account_delete_message + Sua conta será desconectada deste cliente Linphone, mas você permanecerá conectado em outros aplicativos + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + Sair da sua conta? + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + Se você deseja apagar sua conta permanentemente, acesse: https://sip.linphone.org + + + + error + Erreur + Erro + + + + manage_account_device_remove + "Supprimer" + Apagar + + + + manage_account_device_remove_confirm_dialog + Apagar %1? + + + + manage_account_device_last_connection + "Dernière connexion:" + Última conexão: + + + + device_last_updated_time_no_info + "No information" + + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + Minha conta + + + + settings_general_title + "Général" + Geral + + + + settings_account_title + "Paramètres de compte" + Parâmetros de conta + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + Modificações não salvas + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + Você tem modificações que não foram salvas. Se você deixar esta página, suas modificações serão perdidas. Você gostaria de salvar suas modificações antes de continuar? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + Não gravar + + + + contact_editor_dialog_abort_confirmation_save + Gravar + + + + AccountSettingsParametersLayout + + + settings_title + Ajustes + + + + settings_account_title + Parâmetros de conta + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_error_title + Erro + + + + information_popup_success_title + Sucesso + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + Modificações gravadas + + + + information_popup_error_title + Erro + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + URI do servidor de correio de voz + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + URI Correio de voz + + + + account_settings_transport_title + "Transport" + Transporte + + + + account_settings_registrar_uri_title + + + + + account_settings_sip_proxy_url_title + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + Endereço do servidor STUN + + + + account_settings_enable_ice_title + "Activer ICE" + Habilitar ICE + + + + account_settings_avpf_title + "AVPF" + AVPF + + + + account_settings_bundle_mode_title + "Mode bundle" + Modo bundle + + + + account_settings_expire_title + "Expiration (en seconde)" + Expiração (em segundos) + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + URI do servidor de conferência + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + URI do servidor de conferência em vídeo + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + URL do servidor Lime + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + Localizar contatos + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + + + + + + + remove_participant_accessible_name + Remove participant %1 + + + + + list_filter_no_result_found + "Aucun contact" + Nenhum resultado encontrado… + + + + contact_list_empty + Nenhum contato neste momento + + + + AdvancedSettingsLayout + + + settings_system_title + System + Sistema + + + + settings_remote_provisioning_title + Remote provisioning + Provisionamento remoto + + + + settings_security_title + Security / Encryption + Segurança / Criptografia + + + + settings_advanced_audio_codecs_title + Audio codecs + Codecs de áudio + + + + settings_advanced_video_codecs_title + Video codecs + Codecs de vídeo + + + + settings_advanced_auto_start_title + Auto start %1 + Auto iniciar %1 + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + URL para provisionamento remoto + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + Fazer o download e aplicar + + + + information_popup_error_title + Invalid URL format + Erro + + + + settings_advanced_invalid_url_message + Formato de URL inválido + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + + + + + + settings_advanced_media_encryption_title + Media encryption + Criptografia de mídia + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + Criptografia de mídia mandatória + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + Criar reuniões e ligações em grupo usando criptografia fim a fim + + + + settings_advanced_hide_fps_title + Esconder FPS + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + Favoritos + + + + generic_address_picker_contacts_list_title + 'Contacts' + Contatos + + + + generic_address_picker_suggestions_list_title + "Suggestions" + Sugestões + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + Você quer fazer o download e aplicar o provisionamento remoto deste endereço? + + + + + info_popup_error_title + Error + Erro + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + O provisionamento remoto falhou: %1 + + + + configuration_error_detail + not reachable + Não alcançável + + + + application_description + "A free and open source SIP video-phone." + Um cliente SIP para vídeo chamada livre e de código aberto. + + + + command_line_arg_order + "Send an order to the application towards a command line" + Enviar uma ordem para o aplicativo por meio da linha de comando + + + + command_line_option_show_help + Mostrar esta ajuda + + + + command_line_option_show_app_version + Mostrar versão da aplicação + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + Especifique o arquivo de configuração do Linphone a ser obtido. Ele será mesclado com a configuração atual. + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + URL, caminho ou arquivo + + + + command_line_option_minimized + Minimizar + + + + command_line_option_log_to_stdout + Registrar no stdout algumas informações de depuração durante a execução + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + Imprimir somente logs do aplicativo + + + + hide_action + "Cacher" "Afficher" + esconder + + + + show_action + Mostrar + + + + quit_action + "Quitter" + Sair + + + + mark_all_read_action + + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + Autenticação necessária + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + Falha no login da conta %1. Você pode digitar sua senha novamente ou verificar as configurações da sua conta. + + + + password + Senha + + + + cancel + "Annuler + Cancelar + + + + assistant_account_login + Connexion + Conexão + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + Por favor, digite uma senha + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + Gravação encerrada + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + A gravação foi salva no arquivo: %1 + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + Codec: %1 / %2 kHz + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + Largura de banda : %1 %2 kbits/s %3 %4 kbits/s + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + Taxa de perda: %1% %2% + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + Buffer de jitter: %1 ms + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + Resolução de vídeo: %1 %2 %3 %4 + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + FPS : %1 %2 %3 %4 + + + + media_encryption_dtls + DTLS + DTLS + + + + media_encryption_none + None + Nenhum + + + + media_encryption_srtp + SRTP + SRTP + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + ZRTP pós-quântico + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + + + + + settings_call_forward_destination_choose + Forward to destination + + + + + + + settings_call_forward_to_voicemail + + + + + settings_call_forward_to_sipaddress + + + + + settings_call_forward_sipaddress_title + SIP Address + + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + + + + + settings_call_forward_address_timeout + + + + + settings_call_forward_address_progress_disabling + + + + + settings_call_forward_address_progress_enabling + + + + + settings_call_forward_activation_success + + + + + settings_call_forward_deactivation_success + + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + Participar da reunião + + + + contact_call_action + "Appel" + Chamar + + + + contact_message_action + "Message" + Mensagem + + + + contact_video_call_action + "Appel Video" + Video chamada + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + Você saiu da reunião + + + + call_ended_by_user + "Vous avez terminé l'appel" + Você encerrou a chamada + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + Seu chamador encerrou a chamada + + + + conference_call_empty + "En attente d'autres participants…" + Esperando por outros participantes… + + + + conference_share_link_title + "Partager le lien" + Compartilhar link + + + + copied + Copiado + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + O link da reunião foi copiado para a área de transferência + + + + CallList + + + remote_group_call + Remote group call + + + + + local_group_call + + + + + info_popup_error_title + Erro + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + + + + + CallListView + + + meeting + "Réunion + Reunião + + + + call + "Appel" + Chamar + + + + paused_call_or_meeting + "%1 en pause" + %1 em pausa + + + + ongoing_call_or_meeting + "%1 en cours" + %1 em andamento + + + + transfer_call_name_accessible_name + Transfer call %1 + + + + + resume_call_name_accessible_name + Resume %1 call + + + + + pause_call_name_accessible_name + Pause %1 call + + + + + end_call_name_accessible_name + End %1 call + + + + + CallModel + + + call_error_no_response_toast + "No response" + + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + + + + + call_error_not_answered_toast + "Request timeout" + + + + + call_error_user_declined_toast + "User declined the call" + Ligação recusada pelo usuário + + + + call_error_user_not_found_toast + "User was not found" + Usuário não encontrado + + + + call_error_user_busy_toast + "User is busy" + O usuário está ocupado + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + O usuário não pode aceitar sua ligação + + + + call_error_io_error_toast + "Unavailable service or network error" + Serviço indisponível ou erro de rede + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + + + + + call_error_server_timeout_toast + "Server tiemout" + + + + + CallPage + + + call_forward_to_address_info + + + + + call_forward_to_address_info_voicemail + + + + + history_call_start_title + "Nouvel appel" + Nova chamada + + + + call_history_empty_title + "Historique d'appel vide" + + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + Histórico de ligações com esse usuário será permanentemente deletado. + + + + call_history_call_list_title + "Appels" + Ligações + + + + call_history_options_accessible_name + + + + + + menu_delete_history + "Supprimer l'historique" + Deletar histórico + + + + call_history_list_options_accessible_name + Call history options + + + + + create_new_call_accessible_name + Create new call + + + + + call_search_in_history + "Rechercher un appel" + Encontrar chamada + + + + list_filter_no_result_found + "Aucun résultat…" + Nenhum resultado encontrado… + + + + history_list_empty_history + "Aucun appel dans votre historique" + Sem ligação no histórico + + + + return_to_call_history_accessible_name + Return to call history + + + + + call_action_start_new_call + "Nouvel appel" + Nova chamada + + + + call_start_group_call_title + "Appel de groupe" + Chamada em grupo + + + + call_action_start_group_call + "Lancer" + Iniciar + + + + + + information_popup_error_title + Erro + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + Um nome deve ser fornecido para a chamada + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + Você não está conectado + + + + menu_see_existing_contact + "Show contact" + Mostrar contato + + + + menu_add_address_to_contacts + "Add to contacts" + Adicionar aos contatos + + + + menu_copy_sip_address + "Copier l'adresse SIP" + Copiar endereço SIP + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + Endereço SIP copiado + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + O endereço foi copiado para a área de transferência + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + Erro ao copiar o endereço + + + + notification_missed_call_title + "Appel manqué" + Chamada perdida + + + + call_outgoing + "Appel sortant" + Chamada de saída + + + + call_audio_incoming + "Appel entrant" + Chamada recebida + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + Dispositivo + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + Você pode alterar os dispositivos de saída de áudio, microfone e câmera. + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + Cancelamento de eco + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + Impede que o eco seja ouvido pelo seu correspondente + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + Habilitar gravação automática de chamadas + + + + settings_call_enable_tones_title + Tonalités + Tons + + + + settings_call_enable_tones_subtitle + Activer les tonalités + Habilitar tons + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + Habilitar video + + + + settings_calls_command_line_title + Command line + + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + + + + + settings_calls_current_ringtone_filename + Current ringtone : + + + + + choose_ringtone_file_accessible_name + Choose ringtone file + + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + + + + + CallStatistics + + + call_stats_audio_title + "Audio" + Audio + + + + call_stats_video_title + "Vidéo" + Vídeo + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + Transferência em progresso, aguarde + + + + + information_popup_error_title + Erro + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + A transferência falhou + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + A reunião não pôde começar devido a um erro de URI. + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + + + + + call_can_be_trusted_toast + "Appareil authentifié" + + + + + call_dir + + + + + call_ended + Appel terminé + + + + + conference_paused + Meeting paused + + + + + call_paused + Call paused + + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + + + + + call_zrtp_sas_validation_required + Vérification nécessaire + + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + + + + + call_not_encrypted + "Appel non chiffré" + + + + + + call_waiting_for_encryption_info + Waiting for encryption + + + + + call_paused_by_remote + Call paused by remote + + + + + conference_user_is_recording + "You are recording the meeting" + + + + + call_user_is_recording + "You are recording the call" + + + + + conference_remote_is_recording + "Someone is recording the meeting" + + + + + call_remote_recording + "%1 is recording the call" + + + + + call_stop_recording + "Stop recording" + + + + + add + + + + + call_transfer_current_call_title + "Transférer %1 à…" + + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + + + + + call_action_start_new_call + "Nouvel appel" + Nova chamada + + + + + call_action_show_dialer + "Pavé numérique" + + + + + call_action_change_layout + "Modifier la disposition" + + + + + call_action_go_to_calls_list + "Liste d'appel" + + + + + Merger tous les appels + call_action_merge_calls + + + + + + call_action_go_to_settings + "Paramètres" + Ajustes + + + + conference_action_screen_sharing + "Partage de votre écran" + + + + + conference_share_link_title + Partager le lien de la réunion + + + + + copied + Copié + Copiado + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + + + conference_participants_list_title + "Participants (%1)" + Participantes (%1) + + + + + group_call_participant_selected + + + + + + + + meeting_schedule_add_participants_title + + + + + call_encryption_title + Chiffrement + + + + + open_statistic_panel_accessible_name + + + + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + + + + + stop_recording_accessible_name + Stop recording + + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + + + + + call_stats_title + Statistiques + + + + + + call_action_end_call + "Terminer l'appel" + + + + + + call_action_resume_call + "Reprendre l'appel" + + + + + + call_action_pause_call + "Mettre l'appel en pause" + + + + + + call_action_transfer_call + "Transférer l'appel" + + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + + + + + + call_activate_video_hint + Habilitar video + + + + + call_activate_microphone + "Activer le micro" + + + + + + call_deactivate_microphone + "Désactiver le micro" + + + + + + call_share_screen_hint + Partager l'écran… + + + + + + call_open_chat_hint + Open chat… + + + + + + call_rise_hand_hint + "Lever la main" + + + + + + call_send_reaction_hint + "Envoyer une réaction" + + + + + + call_manage_participants_hint + "Gérer les participants" + + + + + + call_more_options_hint + "Plus d'options…" + + + + + call_action_change_conference_layout + "Modifier la disposition" + + + + + call_action_full_screen + "Mode Plein écran" + + + + + call_action_stop_recording + "Terminer l'enregistrement" + + + + + call_action_record + "Enregistrer l'appel" + + + + + call_activate_speaker_hint + "Activer le son" + + + + + call_deactivate_speaker_hint + "Désactiver le son" + + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + + + + + information_popup_error_title + Erro + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + + + + + information_popup_synchronization_success_title + Sucesso + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + + + + + settings_contacts_carddav_popup_synchronization_error_title + Erro + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + + + + + sip_address_display_name + Nom d'affichage + Nome de exibição + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + + + + + username + + + + + password + Senha + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + + + + + ChangeLayoutForm + + + conference_layout_grid + + + + + conference_layout_active_speaker + + + + + conference_layout_audio_only + + + + + ChatAudioContent + + + + information_popup_error_title + Error + Erro + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + + + + + ChatCore + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message_history + Message history has been deleted + + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + + + + + chat_message_draft_sending_text + + + + + chat_room_delete + "Delete" + Apagar + + + + chat_room_mute + + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + + + + + chat_room_leave + "leave" + + + + + chat_list_leave_chat_popup_title + leave the conversation ? + + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + + + + + chat_message_copy + "Copy" + + + + + chat_message_copied_to_clipboard_title + Copied + Copiado + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + + + + + chat_message_remote_replied + %1 replied + + + + + chat_message_forwarded + Forwarded + + + + + chat_message_remote_replied_to + %1 replied to %2 + + + + + chat_message_user_replied_to + You replied to %1 + + + + + chat_message_user_replied + You replied + + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + + + + + chat_message_forward + Forward + + + + + chat_message_delete + "Delete" + Apagar + + + + ChatMessageContentCore + + + popup_error_title + Error + Erro + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + + + + + info_popup_error_titile + Erro + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + + + + + popup_error_path_does_not_exist_message + File was not found: %1 + + + + + popup_error_nb_files_not_found_message + + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + + + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + + + + + popup_error_unsupported_files_message + + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + + + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message + The message has been deleted + + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + + + + + ics_bubble_meeting_to + + + + + ics_bubble_meeting_modified + Meeting has been updated + + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + + + + + + + + + + ics_bubble_description_title + Description + + + + + ics_bubble_join + "Rejoindre" + + + + + ics_bubble_participants + %n participant(s) + + + + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + + + + + info_popup_no_result_message + No result found + + + + + info_popup_first_result_message + First result reached + + + + + info_popup_last_result_message + Last result reached + + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + + + + + chat_message_is_writing_info + %1 is writing… + + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + + + + + chat_empty_title + "Aucune conversation" + + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + + + + + chat_list_title + "Conversations" + + + + + menu_mark_all_as_read + "mark all as read" + + + + + chat_search_in_history + "Rechercher une conversation" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + + + + + chat_action_start_new_chat + "New chat" + + + + + chat_start_group_chat_title + "Nouveau groupe" + + + + + chat_action_start_group_chat + "Créer" + + + + + + + information_popup_error_title + Erro + + + + information_popup_chat_creation_failed_message + "La création a échoué" + + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + Você não está conectado + + + + chat_creation_in_progress + Creation de la conversation en cours … + + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + + + + + CliModel + + + show_function_description + Mostrar + + + + fetch_config_function_description + + + + + call_function_description + Chamar + + + + bye_function_description + + + + + accept_function_description + + + + + decline_function_description + + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + Erro + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + + + + + Contact + + + information_popup_error_title + Erreur + Erro + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + + + + + account_settings_name_accessible_name + Account settings of %1 + + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + + + + + save + "Enregistrer + Gravar + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + + + + + close_accessible_name + Close %1 + + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + + + + + contact_editor_add_image_label + "Ajouter une image" + Adicione uma imagem + + + + contact_details_edit + "Modifier" + + + + + edit_contact_image_accessible_name + "Edit contact image" + + + + + contact_details_delete + "Supprimer" + Apagar + + + + delete_contact_image_accessible_name + "Delete contact image" + + + + + + contact_editor_first_name + "Prénom" + + + + + + contact_editor_last_name + "Nom" + + + + + + contact_editor_company + "Entreprise" + + + + + + contact_editor_job_title + "Fonction" + + + + + + sip_address + Endereço SIP + + + + sip_address_number_accessible_name + "SIP address number %1" + + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + + + + + new_sip_address_accessible_name + "New SIP address" + + + + + phone_number_number_accessible_name + "Phone number number %1" + + + + + remove_phone_number_accessible_name + Remove phone number %1 + + + + + new_phone_number_accessible_name + "New phone number" + + + + + + phone + "Téléphone" + + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + Partager + + + + + information_popup_error_title + Erro + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + + + + + information_popup_vcard_creation_title + VCard créée + + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + + + + + contact_sharing_email_title + Partage de contact + + + + + contact_details_delete + "Supprimer" + Apagar + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + + + + + expand_accessible_name + Expand %1 + + + + + ContactPage + + + contacts_add + "Ajouter un contact" + + + + + contacts_list_empty + "Aucun contact pour le moment" + + + + + contact_new_title + "Nouveau contact" + + + + + create + + + + + contact_edit_title + "Modifier contact" + + + + + save + Gravar + + + + contact_dialog_delete_title + Supprimer %1 ?" + Apagar %1? + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + + + + + contact_deleted_toast + "Contact supprimé" + + + + + contact_deleted_message + "%1 a été supprimé" + + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + + + + + popup_do_not_show_again + Ne plus afficher + + + + + cancel + Cancelar + + + + dialog_call + "Appeler" + Chamar + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + + + + + dialog_ok + "Ok" + Ok + + + + bottom_navigation_contacts_label + "Contacts" + Contatos + + + + search_bar_look_for_contact_text + Rechercher un contact + + + + + list_filter_no_result_found + Aucun résultat… + + + + + contact_list_empty + Aucun contact pour le moment + + + + + expand_accessible_name + Expand %1 + + + + + shrink_accessible_name + Shrink %1 + + + + + create_contact_accessible_name + Create new contact + + + + + more_info_accessible_name + More info %1 + + + + + + contact_details_edit + Edit +---------- +"Éditer" + + + + + contact_call_action + "Appel" + Chamar + + + + contact_message_action + "Message" + Mensagem + + + + contact_video_call_action + "Appel vidéo" + Video chamada + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + + + + + call_adress_accessible_name + Call address %1 + + + + + contact_details_company_name + "Société :" + + + + + contact_details_job_title + "Poste :" + + + + + contact_details_medias_title + "Medias" + + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + + + + + contact_details_trust_title + "Confiance" + + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + + + + + contact_details_no_device_found + "Aucun appareil" + + + + + contact_device_without_name + "Appareil inconnu" + + + + + contact_make_call_check_device_trust + "Vérifier" + + + + + verify_device_accessible_name + Verify %1 device + + + + + contact_details_actions_title + "Autres actions" + + + + + contact_details_remove_from_favourites + "Retirer des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + contact_details_share + "Partager" + + + + + information_popup_error_title + Erro + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + + + + + contact_details_share_success_title + "VCard créée" + + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + + + + + contact_details_share_email_title + "Partage de contact" + + + + + contact_details_delete + "Supprimer ce contact" + + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + + + + + settings_contacts_carddav_title + + + + + settings_contacts_carddav_subtitle + + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + Sucesso + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + add + "Ajouter" + + + + + ConversationInfos + + + one_one_infos_call + "Appel" + Chamar + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + + + + + group_infos_participants + Participantes (%1) + + + + group_infos_media_docs + Medias & documents + + + + + group_infos_shared_medias + Shared medias + + + + + group_infos_shared_docs + Shared documents + + + + + group_infos_other_actions + Other actions + + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + + + + + group_infos_leave_room + Leave chat room + + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + group_infos_delete_history + Delete history + Deletar histórico + + + + group_infos_delete_history_toast_title + Delete history ? + + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + one_one_infos_open_contact + Show contact + Mostrar contato + + + + one_one_infos_create_contact + Create contact + + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + Deletar histórico + + + + one_one_infos_delete_history_toast_title + Delete history ? + + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + + + + + settings_debug_clipboard + "Presse-papier" + + + + + settings_debug_email + "E-Mail" + + + + + debug_settings_trace + "Traces %1" + + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + + + + + + information_popup_error_title + Une erreur est survenue. + + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + + + + + settings_debug_delete_logs_title + "Supprimer les traces" + + + + + settings_debug_share_logs_title + "Partager les traces" + + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + + + + + settings_debug_app_version_title + "Version de l'application" + + + + + settings_debug_sdk_version_title + "Version du SDK" + + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + + + + + textfield_error_message_unknown_format + "Format non reconnu" + + + + + Dialog + + + + dialog_confirm + "Confirmer" + + + + + + dialog_cancel + "Annuler" + Cancelar + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + + + + + call_stats_media_encryption + Media encryption : %1 + + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + + + + + call_zrtp_validation_button_label + "Validation chiffrement" + + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + + + + + one_hour + + + + + one_day + + + + + one_week + + + + + disabled + Desabilitado + + + + custom + + + + + EventLogCore + + + conference_created_event + + + + + conference_created_terminated + + + + + conference_participant_added_event + + + + + conference_participant_removed_event + + + + + conference_participant_set_admin_event + + + + + conference_participant_unset_admin_event + + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + Endereço SIP + + + + + + device_id + "Téléphone" + + + + + information_popup_error_title + Erro + + + + information_popup_invalid_address_message + "Adresse invalide" + + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + + + + + group_infos_participant_is_admin + + + + + menu_see_existing_contact + "Show contact" + Mostrar contato + + + + menu_add_address_to_contacts + "Add to contacts" + Adicionar aos contatos + + + + group_infos_give_admin_rights + + + + + group_infos_remove_admin_rights + + + + + group_infos_copy_sip_address + + + + + group_infos_remove_participant + + + + + group_infos_remove_participants_toast_title + + + + + group_infos_remove_participants_toast_message + + + + + GroupCreationFormLayout + + + return_accessible_name + Return + + + + + + group_start_dialog_subject_hint + "Nom du groupe" + Nome do grupo + + + + required + "Requis" + Obrigatório + + + + HelpPage + + + help_title + "Aide" + + + + + + help_about_title + "À propos de %1" + + + + + help_about_privacy_policy_title + "Règles de confidentialité" + + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + + + + + help_about_version_title + "Version" + + + + + help_about_gpl_licence_title + "Licences GPLv3" + + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + + + + + help_troubleshooting_title + "Dépannage" + + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + + + + + settings_contacts_ldap_subtitle + + + + + information_popup_success_title + Sucesso + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + + + + + information_popup_error_title + Erro + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + + + + + delete_ldap_server_accessible_name + Delete LDAP server + + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + + + + + settings_contacts_ldap_password_title + "Mot de passe" + Senha + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + + + + + settings_contacts_ldap_search_filter_title + "Filtre" + + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + + + + + settings_contacts_ldap_debug_title + "Débogage" + + + + + LoadingPopup + + + cancel + Cancelar + + + + LoginForm + + + + username + Nom d'utilisateur : username + + + + + + password + Mot de passe + Senha + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + assistant_account_login + "Connexion" + Conexão + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + Por favor, digite uma senha + + + + assistant_forgotten_password + "Mot de passe oublié ?" + + + + + LoginLayout + + + + help_about_title + À propos de %1 + + + + + help_about_privacy_policy_title + "Politique de confidentialité" + + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + + + + + help_about_version_title + "Version" + + + + + help_about_licence_title + "Licence" + + + + + help_about_copyright_title + "Copyright + + + + + close + "Fermer" + + + + + LoginPage + + + return_accessible_name + Return + + + + + assistant_account_login + Connexion + Conexão + + + + assistant_no_account_yet + "Pas encore de compte ?" + + + + + assistant_account_register + "S'inscrire" + + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + + + + + assistant_login_remote_provisioning + "Configuration distante" + Provisionamento remoto + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + + + + + cancel + Cancelar + + + + validate + "Valider" + + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + + + + + default_account_connection_state_error_toast + Erro durante a conexão + + + + MagicSearchList + + + device_id + + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + Ligações + + + + open_calls_page_accessible_name + "Open calls page" + + + + + bottom_navigation_contacts_label + "Contacts" + Contatos + + + + open_contacts_page_accessible_name + "Open contacts page" + + + + + bottom_navigation_conversations_label + "Conversations" + + + + + open_conversations_page_accessible_name + "Open conversations page" + + + + + bottom_navigation_meetings_label + "Réunions" + + + + + open_contact_page_accessible_name + "Open meetings page" + + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + + + + + do_not_disturb_accessible_name + "Do not disturb" + Não perturbe + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + + + + + information_popup_error_title + Erro + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + + + + + account_list_accessible_name + "Account list" + + + + + application_options_accessible_name + "Application options" + + + + + drawer_menu_manage_account + Mon compte + Minha conta + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + + + + + settings_title + Ajustes + + + + recordings_title + "Enregistrements" + + + + + help_title + "Aide" + + + + + help_quit_title + "Quitter l'application" + + + + + quit_app_question + "Quitter %1 ?" + + + + + drawer_menu_add_account + "Ajouter un compte" + + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + + + + + interoperable + interopérable + + + + + call_transfer_successful_toast_title + "Appel transféré" + + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + + + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + + + + + assistant_register_error_title + "Erreur lors de la création" + + + + + assistant_register_success_title + "Compte créé" + + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + + + + + assistant_register_error_code + "Erreur dans le code de validation" + + + + + information_popup_error_title + Erro + + + + ManageParticipants + + + group_infos_manage_participants + + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + Reunião + + + + meeting_schedule_broadcast_label + "Webinar" + + + + + meeting_schedule_subject_hint + "Ajouter un titre" + + + + + meeting_schedule_description_hint + "Ajouter une description" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + MeetingPage + + + meetings_add + "Créer une réunion" + + + + + meetings_list_empty + "Aucune réunion" + + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + + + + + meeting_schedule_delete_action + "Supprimer" + Apagar + + + + back_action + Retour + + + + + meetings_list_title + Réunions + + + + + meetings_search_hint + "Rechercher une réunion" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + meetings_empty_list + "Aucune réunion" + + + + + + meeting_schedule_title + "Nouvelle réunion" + + + + + create + + + + + + + + + + information_popup_error_title + Erro + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + + + + + save + Gravar + + + + + saved + "Enregistré" + + + + + meeting_info_updated_toast + "Réunion mise à jour" + + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_add_participants_apply + + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + + + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + + + + + meeting_schedule_timezone_title + "Fuseau horaire" + + + + + meeting_info_organizer_label + "Organisateur" + + + + + meeting_info_join_title + "Rejoindre la réunion" + Participar da reunião + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + + + + + click_to_delete_reaction_info + Click to delete + + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + + + + + no_shared_documents + No document + + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + + + + + + + + choose_something_accessible_name + Choose %1 + + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + + + + + + device_volume_accessible_name + %1 volume + + + + + + + multimedia_settings_microphone_title + "Microphone" + + + + + + multimedia_settings_camera_title + "Caméra" + + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + + + + + call_start_group_call_title + Appel de groupe + Chamada em grupo + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + Chamada recebida + + + + dialog_accept + "Accepter" + + + + + dialog_deny + "Refuser + + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + + + + + new_file_message + + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + + + + + new_message_alert_accessible_name + New message on chatroom %1 + + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + + + + + oidc_authentication_granted_message + Authentication granted + + + + + oidc_authentication_not_authenticated_message + Not authenticated + + + + + oidc_authentication_refresh_message + Refreshing token + + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + + + + + oidc_authentication_network_error + Network error + + + + + oidc_authentication_server_error + Server error + + + + + oidc_authentication_token_not_found_error + OAuth token not found + + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + + + + + oidc_authentication_no_token_found_error + + + + + oidc_authentication_request_token_message + Requesting access token + + + + + oidc_authentication_refresh_token_message + Refreshing access token + + + + + oidc_authentication_request_authorization_message + Requesting authorization + + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + + + + + meeting_add_participants_title + "Ajouter des participants" + + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + + + + + number_phone_number_accessible_name + %1 number + + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + + + + + open_popup_panel_accessible_name + "Open %1" popup + + + + + Presence + + + contact_presence_reset_status + + + + + contact_presence_button_set_custom_status + + + + + contact_presence_button_edit_custom_status + + + + + contact_presence_button_delete_custom_status + Apagar + + + + contact_presence_custom_status + + + + + PresenceNoteLayout + + + contact_presence_note_title + + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + + + + + contact_presence_button_save_custom_status + Gravar + + + + QObject + + + media_encryption_dtls + DTLS + + + + media_encryption_none + Nenhum + + + + media_encryption_srtp + SRTP + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + ZRTP pós-quântico + + + + message_state_in_progress + "delivery in progress" + + + + + message_state_delivered + sent + + + + + message_state_not_delivered + error + + + + + message_state_file_transfer_error + cannot get file from server + + + + + message_state_file_transfer_done + file transfer has been completed successfully + + + + + message_state_delivered_to_user + received + + + + + message_state_displayed + read + + + + + message_state_file_transfer__in_progress + file transfer in progress + + + + + message_state_pending_delivery + pending delivery + + + + + message_state_file_transfer_cancelling + file transfer canceled + + + + + incoming + "Entrant" + + + + + outgoing + "Sortant" + + + + + conference_layout_active_speaker + "Participant actif" + + + + + conference_layout_grid + "Mosaïque" + + + + + conference_layout_audio_only + "Audio uniquement" + + + + + RegisterCheckingPage + + + email + "email" + + + + + phone_number + "numéro de téléphone" + + + + + confirm_register_title + "Inscription | Confirmer votre %1" + + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + + + + + RegisterPage + + + return_accessible_name + Return + + + + + assistant_account_register + "Inscription + + + + + assistant_already_have_an_account + + + + + assistant_account_login + Conexão + + + + assistant_account_register_with_phone_number + + + + + assistant_account_register_with_email + + + + + + username + + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + domain + + + + + + + phone_number + "Numéro de téléphone" + + + + + + email + + + + + + password + Senha + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + + + + + assistant_account_create + "Créer" + + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + Por favor, digite uma senha + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + + + + + SIPLoginPage + + + return_accessible_name + Return + + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + + + + + assistant_no_account_yet + Pas encore de compte ? + + + + + assistant_account_register + S'inscrire + + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + + + + + + username + "Nom d'utilisateur" + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + password + Senha + + + + + sip_address_domain + "Domaine" + + + + + + sip_address_display_name + Nom d'affichage + Nome de exibição + + + + + transport + "Transport" + Transporte + + + + + assistant_account_login + Conexão + + + + assistant_account_login_missing_username + + + + + assistant_account_login_missing_password + Por favor, digite uma senha + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + + + + + login_advanced_parameters_label + Advanced parameters + + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + + + + + screencast_settings_all_screen_label + "Ecran entier" + + + + + screencast_settings_one_window_label + "Fenêtre" + + + + + screencast_settings_screen + "Ecran %1" + + + + + stop + "Stop + + + + + share + "Partager" + + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + + + + + dialog_continue + "Continuer" + + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + + + + + SelectedChatView + + + chat_view_group_call_toast_message + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + reply_to_label + Reply to %1 + + + + + shared_medias_title + Shared medias + + + + + shared_documents_title + Shared documents + + + + + forward_to_title + Forward to… + + + + + conversations_title + Conversations + + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + + + + + SettingsPage + + + settings_title + "Paramètres" + Ajustes + + + + settings_calls_title + "Appels" + Ligações + + + + settings_call_forward + "Transfert d'appel" + + + + + settings_conversations_title + "Conversations" + + + + + settings_contacts_title + "Contacts" + Contatos + + + + settings_meetings_title + "Réunions" + + + + + settings_network_title + "Affichage" "Security" "Réseau" + + + + + settings_advanced_title + "Paramètres avancés" + + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + Modificações não salvas + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + Você tem modificações que não foram salvas. Se você deixar esta página, suas modificações serão perdidas. Você gostaria de salvar suas modificações antes de continuar? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + Não gravar + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + Gravar + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + + + + + conference_participant_paused_text + "En pause" + + + + + TextField + + + show_accessible_name + Show %1 + + + + + hide_accessible_name + Hide %1 + + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + + + + + group_call_error_no_account + + + + + group_call_error_participants_invite + + + + + group_call_error_creation + + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + + + + + unknown_audio_device_name + + + + + conference_invitation + + + + + conference_invitation_cancelled + + + + + conference_invitation_updated + + + + + Utils + + + nSeconds + + + + + + + + nMinute + + + + + + + + chat_message_forward_error + Cannot forward an invalid message + + + + + info_popup_forward_message_error + Could not forward message : %1 + + + + + info_popup_send_forward_message_error_message + Failed to create forward message + + + + + chat_message_reply_error + Cannot reply to invalid message + + + + + info_popup_reply_message_error + Could not send reply message : %1 + + + + + info_popup_send_reply_message_error_message + Failed to create reply message + + + + + nHour + + + + + + + + + nDay + + + + + + + + nWeek + + + + + + + + contact_presence_status_available + + + + + contact_presence_status_busy + Ocupado + + + + contact_presence_status_do_not_disturb + Não perturbe + + + + contact_presence_status_offline + + + + + contact_presence_status_away + + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + Erro + + + + information_popup_group_call_not_created_message + + + + + number_of_years + %n an(s) + + + + + + + + number_of_month + "%n mois" + + + + + + + + number_of_weeks + %n semaine(s) + + + + + + + + number_of_days + %n jour(s) + + + + + + + + today + "Aujourd'hui" + + + + + yesterday + "Hier + + + + + duration_tomorrow + Tomorrow + + + + + duration_number_of_days + %1 jour(s) + + + + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + + + + + recorder_error + Error with the recorder + + + + + + + chat_error + + + + + + + + + + info_popup_error_title + Error + Erro + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + + + + + meeting_waiting_room_join + "Rejoindre" + + + + + + cancel + Cancel + Cancelar + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + + + + + welcome_page_subtitle + "sur %1" + + + + + welcome_carousel_skip + "Passer" + + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + + + + + welcome_page_2_title + "Sécurisé" + + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + + + + + welcome_page_3_title + "Open Source" + + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + + + + + next + "Suivant" + + + + + start + "Commencer" + Iniciar + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + + + + + call_zrtp_sas_validation_skip + "Passer" + + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + + + + + call_action_hang_up + "Raccrocher" + + + + + country + + + Afghanistan + + + + + Albania + + + + + Algeria + + + + + AmericanSamoa + + + + + Andorra + + + + + Angola + + + + + Anguilla + + + + + AntiguaAndBarbuda + + + + + Argentina + + + + + Armenia + + + + + Aruba + + + + + Australia + + + + + Austria + + + + + Azerbaijan + + + + + Bahamas + + + + + Bahrain + + + + + Bangladesh + + + + + Barbados + + + + + Belarus + + + + + Belgium + + + + + Belize + + + + + Benin + + + + + Bermuda + + + + + Bhutan + + + + + Bolivia + + + + + BosniaAndHerzegowina + + + + + Botswana + + + + + Brazil + + + + + Brunei + + + + + Bulgaria + + + + + BurkinaFaso + + + + + Burundi + + + + + Cambodia + + + + + Cameroon + + + + + Canada + + + + + CapeVerde + + + + + CaymanIslands + + + + + CentralAfricanRepublic + + + + + Chad + + + + + Chile + + + + + China + + + + + Colombia + + + + + Comoros + + + + + PeoplesRepublicOfCongo + + + + + CookIslands + + + + + CostaRica + + + + + IvoryCoast + + + + + Croatia + + + + + Cuba + + + + + Cyprus + + + + + CzechRepublic + + + + + Denmark + + + + + Djibouti + + + + + Dominica + + + + + DominicanRepublic + + + + + Ecuador + + + + + Egypt + + + + + ElSalvador + + + + + EquatorialGuinea + + + + + Eritrea + + + + + Estonia + + + + + Ethiopia + + + + + FalklandIslands + + + + + FaroeIslands + + + + + Fiji + + + + + Finland + + + + + France + + + + + FrenchGuiana + + + + + FrenchPolynesia + + + + + Gabon + + + + + Gambia + + + + + Georgia + + + + + Germany + + + + + Ghana + + + + + Gibraltar + + + + + Greece + + + + + Greenland + + + + + Grenada + + + + + Guadeloupe + + + + + Guam + + + + + Guatemala + + + + + Guinea + + + + + GuineaBissau + + + + + Guyana + + + + + Haiti + + + + + Honduras + + + + + DemocraticRepublicOfCongo + + + + + HongKong + + + + + Hungary + + + + + Iceland + + + + + India + + + + + Indonesia + + + + + Iran + + + + + Iraq + + + + + Ireland + + + + + Israel + + + + + Italy + + + + + Jamaica + + + + + Japan + + + + + Jordan + + + + + Kazakhstan + + + + + Kenya + + + + + Kiribati + + + + + DemocraticRepublicOfKorea + + + + + RepublicOfKorea + + + + + Kuwait + + + + + Kyrgyzstan + + + + + Laos + + + + + Latvia + + + + + Lebanon + + + + + Lesotho + + + + + Liberia + + + + + Libya + + + + + Liechtenstein + + + + + Lithuania + + + + + Luxembourg + + + + + Macau + + + + + Macedonia + + + + + Madagascar + + + + + Malawi + + + + + Malaysia + + + + + Maldives + + + + + Mali + + + + + Malta + + + + + MarshallIslands + + + + + Martinique + + + + + Mauritania + + + + + Mauritius + + + + + Mayotte + + + + + Mexico + + + + + Micronesia + + + + + Moldova + + + + + Monaco + + + + + Mongolia + + + + + Montenegro + + + + + Montserrat + + + + + Morocco + + + + + Mozambique + + + + + Myanmar + + + + + Namibia + + + + + NauruCountry + + + + + Nepal + + + + + Netherlands + + + + + NewCaledonia + + + + + NewZealand + + + + + Nicaragua + + + + + Niger + + + + + Nigeria + + + + + Niue + + + + + NorfolkIsland + + + + + NorthernMarianaIslands + + + + + Norway + + + + + Oman + + + + + Pakistan + + + + + Palau + + + + + PalestinianTerritories + + + + + Panama + + + + + PapuaNewGuinea + + + + + Paraguay + + + + + Peru + + + + + Philippines + + + + + Poland + + + + + Portugal + + + + + PuertoRico + + + + + Qatar + + + + + Reunion + + + + + Romania + + + + + RussianFederation + + + + + Rwanda + + + + + SaintHelena + + + + + SaintKittsAndNevis + + + + + SaintLucia + + + + + SaintPierreAndMiquelon + + + + + SaintVincentAndTheGrenadines + + + + + Samoa + + + + + SanMarino + + + + + SaoTomeAndPrincipe + + + + + SaudiArabia + + + + + Senegal + + + + + Serbia + + + + + Seychelles + + + + + SierraLeone + + + + + Singapore + + + + + Slovakia + + + + + Slovenia + + + + + SolomonIslands + + + + + Somalia + + + + + SouthAfrica + + + + + Spain + + + + + SriLanka + + + + + Sudan + + + + + Suriname + + + + + Swaziland + + + + + Sweden + + + + + Switzerland + + + + + Syria + + + + + Taiwan + + + + + Tajikistan + + + + + Tanzania + + + + + Thailand + + + + + Togo + + + + + Tokelau + + + + + Tonga + + + + + TrinidadAndTobago + + + + + Tunisia + + + + + Turkey + + + + + Turkmenistan + + + + + TurksAndCaicosIslands + + + + + Tuvalu + + + + + Uganda + + + + + Ukraine + + + + + UnitedArabEmirates + + + + + UnitedKingdom + + + + + UnitedStates + + + + + Uruguay + + + + + Uzbekistan + + + + + Vanuatu + + + + + Venezuela + + + + + Vietnam + + + + + WallisAndFutunaIslands + + + + + Yemen + + + + + Zambia + + + + + Zimbabwe + + + + + utils + + + formatYears + '%1 year' + + + + + + + + formatMonths + '%1 month' + + + + + + + + formatWeeks + '%1 week' + + + + + + + + formatDays + '%1 day' + + + + + + + + formatHours + '%1 hour' + + + + + + + + formatMinutes + '%1 minute' + + + + + + + + formatSeconds + '%1 second' + + + + + + + + codec_install + "Installation de codec" + + + + + download_codec + "Télécharger le codec %1 (%2) ?" + + + + + information_popup_success_title + "Succès" + Sucesso + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + O codec foi instalado com sucesso. + + + + + + information_popup_error_title + Erro + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + + + + + okButton + Ok + + + + CoreModel + + + info_popup_error_title + Erro + + + diff --git a/Linphone/data/languages/pt_BR.ts b/Linphone/data/languages/pt_BR.ts new file mode 100644 index 000000000..aebcd953f --- /dev/null +++ b/Linphone/data/languages/pt_BR.ts @@ -0,0 +1,7439 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + Voltar + + + + save + "Enregistrer" + Salvar + + + + save_settings_accessible_name + Save %1 settings + Salvar configurações %1 + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + Escolha um endereço ou número SIP + + + + fps_counter + %1 FPS + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + Conectado + + + + drawer_menu_account_connection_status_refreshing + Atualizando… + + + + drawer_menu_account_connection_status_progress + Conectando… + + + + drawer_menu_account_connection_status_failed + Erro + + + + drawer_menu_account_connection_status_cleared + Desabilitado + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + Você está online e disponível. + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + Erro de conexão, verifique suas configurações. + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + Conta desativada, você não irá receber mensagens ou chamadas. + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + Erro ao recuperar dispositivos + + + + AccountListView + + + add_an_account + Add an account + Adicionar uma conta + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + A conta já está conectada + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + Impossível criar endereço do proxy. Por favor verifique o nome do domínio. + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + Falha ao configurar o endereço: `%1`. + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + Impossível configurar os parâmetros de conta. + + + + assistant_account_login_forbidden_error + "Username and password do not match" + Usuário e senha não coincidem + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + Erro durante a conexão + + + + assistant_account_add_error + "Unable to add account." + Impossível adicionar conta. + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + Não foi possível definir o endereço do servidor de correio de voz, falha ao criar endereço de %1 + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + Não foi possível definir o endereço do servidor, falha ao criar endereço de %1 + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + Não foi possível definir URI do proxy de saída, falha ao criar endereço de %1 + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + Não foi possível definir o endereço do servidor de conversa, falha ao criar endereço de %1 + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + Não foi possível definir o endereço do servidor de conferência, falha ao criar endereço de %1 + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + Não foi possível definir o endereço do correio de voz, falha ao criar endereço de %1 + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + Detalhes + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + Editar informações da sua conta. + + + + manage_account_devices_title + "Vos appareils" + Seus dispositivos + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + Lista de dispositivos conectados a sua conta. Você pode remover dispositivos que não utiliza mais. + + + + manage_account_add_picture + "Ajouter une image" + Adicionar uma imagem + + + + manage_account_edit_picture + "Modifier l'image" + Editar imagem + + + + manage_account_remove_picture + "Supprimer l'image" + Apagar imagem + + + + sip_address + Endereço SIP + + + + sip_address_display_name + "Nom d'affichage + Nome de exibição + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + O nome exibido aos seus contatos durante as trocas. + + + + manage_account_international_prefix + Indicatif international* + Código internacional* + + + + manage_account_delete + "Déconnecter mon compte" + Desconectar minha conta + + + + manage_account_delete_message + Sua conta será removida deste cliente Linphone, mas você continuará conectado em seus outros clientes + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + Sair da conta? + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + Se deseja excluir sua conta permanentemente, acesse: https://sip.linphone.org + + + + error + Erreur + Erro + + + + manage_account_device_remove + "Supprimer" + Apagar + + + + manage_account_device_remove_confirm_dialog + Apagar %1? + + + + manage_account_device_last_connection + "Dernière connexion:" + Último login: + + + + device_last_updated_time_no_info + "No information" + Sem informação + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + Minha conta + + + + settings_general_title + "Général" + Geral + + + + settings_account_title + "Paramètres de compte" + Configurações de conta + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + Modificações não salvas + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + Você possui modificações não salvas. Se sair desta página, suas modificações serão perdidas. Você deseja salvar suas modificações antes de continuar? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + Não salvar + + + + contact_editor_dialog_abort_confirmation_save + Salvar + + + + AccountSettingsParametersLayout + + + settings_title + Configurações + + + + settings_account_title + Configurações de conta + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + O URI do proxy de saída está inválido. Por favor, certifique-se que ele está no seguinte formato: sip:<host>:<porta>;transport=<transporte> (:<porta> é opcional) + + + + info_popup_error_title + Erro + + + + information_popup_success_title + Sucesso + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + Alterações salvas + + + + information_popup_error_title + Erro + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + URI do servidor de correio de voz + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + URI do correio de voz + + + + account_settings_transport_title + "Transport" + Transporte + + + + account_settings_registrar_uri_title + + + + + account_settings_sip_proxy_url_title + URI do proxy SIP de saída + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + Se este campo estiver preenchido, o proxy de saída será ativado automaticamente. Deixe vazio para desabilitá-lo. + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + Endereço do servidor STUN + + + + account_settings_enable_ice_title + "Activer ICE" + Ativar ICE + + + + account_settings_avpf_title + "AVPF" + AVPF + + + + account_settings_bundle_mode_title + "Mode bundle" + Modo pacote + + + + account_settings_expire_title + "Expiration (en seconde)" + Expiração (em segundos) + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + URI da fábrica de conferência + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + URI da fábrica de vídeoconferência + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + URL do servidor de troca de chaves de criptografia + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + Pesquisar contatos + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + %1 participante selecionado + %1 participantes selecionados + + + + + remove_participant_accessible_name + Remove participant %1 + Remover participante %1 + + + + list_filter_no_result_found + "Aucun contact" + Nenhum resultado encontrado… + + + + contact_list_empty + Sem contato no momento + + + + AdvancedSettingsLayout + + + settings_system_title + System + Sistema + + + + settings_remote_provisioning_title + Remote provisioning + Provisionamento remoto + + + + settings_security_title + Security / Encryption + Segurança / Criptografia + + + + settings_advanced_audio_codecs_title + Audio codecs + Codecs de áudio + + + + settings_advanced_video_codecs_title + Video codecs + Codecs de vídeo + + + + settings_advanced_auto_start_title + Auto start %1 + Iniciar automaticamente %1 + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + URL de provisionamento remoto + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + Baixar e aplicar + + + + information_popup_error_title + Invalid URL format + Erro + + + + settings_advanced_invalid_url_message + Formato inválido da URL + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + + + + + + settings_advanced_media_encryption_title + Media encryption + Criptografia de mídia + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + Criptografia de mídia obrigatória + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + Criar conferências e grupos de chamadas com criptografia de ponta-a-ponta + + + + settings_advanced_hide_fps_title + Ocultar FPS + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + Favoritos + + + + generic_address_picker_contacts_list_title + 'Contacts' + Contatos + + + + generic_address_picker_suggestions_list_title + "Suggestions" + Sugestões + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + Deseja baixar e aplicar o provisionamento remoto deste endereço? + + + + + info_popup_error_title + Error + Erro + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + O provisionamento remoto falhou: %1 + + + + configuration_error_detail + not reachable + Não alcançável + + + + application_description + "A free and open source SIP video-phone." + Um videofone SIP gratuito e de código aberto. + + + + command_line_arg_order + "Send an order to the application towards a command line" + Enviar comando para o aplicativo por linha de comando + + + + command_line_option_show_help + Exibir esta ajuda + + + + command_line_option_show_app_version + Exibir versão do aplicativo + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + Especifique o arquivo de configuração do Linphone a ser obtido. Ele será mesclado com a configuração atual. + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + URL, caminho ou arquivo + + + + command_line_option_minimized + Minimizar + + + + command_line_option_log_to_stdout + Registrar na saída padrão informações de depuração durante a execução + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + Imprimir somente registros da aplicação + + + + hide_action + "Cacher" "Afficher" + Ocultar + + + + show_action + Exibir + + + + quit_action + "Quitter" + Sair + + + + mark_all_read_action + + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + Autenticação requerida + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + Falha no login da conta %1. Você pode digitar sua senha novamente ou verificar as configurações da sua conta. + + + + password + Senha + + + + cancel + "Annuler + Cancelar + + + + assistant_account_login + Connexion + Conexão + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + Por favor, insira uma senha + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + Fim da gravação + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + A gravação foi salva no arquivo: %1 + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + Codec: %1 / %2 kHz + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + Largura de banda: %1 %2 kbits/s %3 %4 kbits/s + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + Taxa de perda: %1% %2% + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + Buffer de jitter: %1 ms + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + Resolução de vídeo: %1 %2 %3 %4 + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + QPS : %1 %2 %3 %4 + + + + media_encryption_dtls + DTLS + DTLS + + + + media_encryption_none + None + Nenhum + + + + media_encryption_srtp + SRTP + SRTP + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + ZRTP pós-quântico + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + Encaminhar chamadas + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + Encaminhar chamadas para um correio de voz, um número ou endereço SIP + + + + settings_call_forward_destination_choose + Forward to destination + Encaminhar chamadas para: + + + + + + settings_call_forward_to_voicemail + Correio de voz + + + + settings_call_forward_to_sipaddress + Número / Endereço SIP + + + + settings_call_forward_sipaddress_title + SIP Address + Número / Endereço SIP: + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + Um número ou endereço SIP é exigido + + + + settings_call_forward_address_timeout + Não foi possível definir encaminhamento de chamada, tempo de requisição esgotado + + + + settings_call_forward_address_progress_disabling + Desabilitando encaminhamento de chamada + + + + settings_call_forward_address_progress_enabling + Habilitando encaminhamento de chamada para: + + + + settings_call_forward_activation_success + Encaminhamento de chamada ativado para: + + + + settings_call_forward_deactivation_success + Encaminhamento de chamada desativado + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + Entrar na conferência + + + + contact_call_action + "Appel" + Chamada + + + + contact_message_action + "Message" + Mensagem + + + + contact_video_call_action + "Appel Video" + Video chamada + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + Ligar para %1 + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + Você saiu da conferência + + + + call_ended_by_user + "Vous avez terminé l'appel" + Você encerrou a chamada + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + O destinatário encerrou a chamada + + + + conference_call_empty + "En attente d'autres participants…" + Aguardando por outros participantes… + + + + conference_share_link_title + "Partager le lien" + Compartilhar link + + + + copied + Copiado + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + O link da reunião foi copiado para a área de transferência + + + + CallList + + + remote_group_call + Remote group call + Chamada em grupo remota + + + + local_group_call + Chamada em grupo local + + + + info_popup_error_title + Erro + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + Falha ao unir chamadas! + + + + CallListView + + + meeting + "Réunion + Conferência + + + + call + "Appel" + Chamada + + + + paused_call_or_meeting + "%1 en pause" + %1 Em pausa + + + + ongoing_call_or_meeting + "%1 en cours" + Em andamento %1 + + + + transfer_call_name_accessible_name + Transfer call %1 + Transferir chamada %1 + + + + resume_call_name_accessible_name + Resume %1 call + Retomar chamada %1 + + + + pause_call_name_accessible_name + Pause %1 call + Pausar chamada %1 + + + + end_call_name_accessible_name + End %1 call + Encerrar chamada %1 + + + + CallModel + + + call_error_no_response_toast + "No response" + Sem resposta + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + 403: recurso proibido + + + + call_error_not_answered_toast + "Request timeout" + Tempo de requisição esgotado + + + + call_error_user_declined_toast + "User declined the call" + Ligação recusada pelo usuário + + + + call_error_user_not_found_toast + "User was not found" + Usuário não encontrado + + + + call_error_user_busy_toast + "User is busy" + Usuário ocupado + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + O usuário não pode aceitar sua ligação + + + + call_error_io_error_toast + "Unavailable service or network error" + Serviço indisponível ou erro de rede + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + O usuário não pode ser perturbado + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + Indisponível temporariamente + + + + call_error_server_timeout_toast + "Server tiemout" + Tempo esgotado do servidor + + + + CallPage + + + call_forward_to_address_info + Encaminhar chamadas para: + + + + call_forward_to_address_info_voicemail + Correio de voz + + + + history_call_start_title + "Nouvel appel" + Nova chamada + + + + call_history_empty_title + "Historique d'appel vide" + Histórico de chamadas vazio + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + Apagar histórico de chamadas? + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + O histórico de chamadas será apagado permanentemente. + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + Apagar histórico de chamadas? + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + O histórico de chamadas deste usuário será apagado permanentemente. + + + + call_history_call_list_title + "Appels" + Chamadas + + + + call_history_options_accessible_name + Opções de histórico de chamada + + + + + menu_delete_history + "Supprimer l'historique" + Apagar histórico + + + + call_history_list_options_accessible_name + Call history options + Opções de histórico de chamada + + + + create_new_call_accessible_name + Create new call + Criar nova chamada + + + + call_search_in_history + "Rechercher un appel" + Encontrar chamada + + + + list_filter_no_result_found + "Aucun résultat…" + Não encontrado… + + + + history_list_empty_history + "Aucun appel dans votre historique" + Nenhuma chamada no histórico + + + + return_to_call_history_accessible_name + Return to call history + Retornar para o histórico de chamada + + + + call_action_start_new_call + "Nouvel appel" + Nova chamada + + + + call_start_group_call_title + "Appel de groupe" + Chamada em grupo + + + + call_action_start_group_call + "Lancer" + Iniciar + + + + + + information_popup_error_title + Erro + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + Um nome deve ser fornecido para a chamada + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + Você não está conectado + + + + menu_see_existing_contact + "Show contact" + Mostrar contato + + + + menu_add_address_to_contacts + "Add to contacts" + Adicionar aos contatos + + + + menu_copy_sip_address + "Copier l'adresse SIP" + Copiar endereço SIP + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + Endereço SIP copiado + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + O endereço foi copiado para a área de transferência + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + Erro ao copiar endereço + + + + notification_missed_call_title + "Appel manqué" + Chamada perdida + + + + call_outgoing + "Appel sortant" + Chamada de saída + + + + call_audio_incoming + "Appel entrant" + Chamada recebida + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + Dispositivos + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + Você pode alterar os dispositivos de saída de áudio, microfone e câmera. + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + Cancelador de eco + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + Impede que o eco seja ouvido pelo seu correspondente + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + Habilitar gravação automática de chamadas + + + + settings_call_enable_tones_title + Tonalités + Tons + + + + settings_call_enable_tones_subtitle + Activer les tonalités + Habilitar tons + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + Habilitar vídeo + + + + settings_calls_command_line_title + Command line + Linha de comando para executar ao receber chamada + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + Alterar toque de chamada + + + + settings_calls_current_ringtone_filename + Current ringtone : + Toque de chamada atual: + + + + choose_ringtone_file_accessible_name + Choose ringtone file + Selecionar arquivo de toque de chamada + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + Fechar painel %1 + + + + CallStatistics + + + call_stats_audio_title + "Audio" + Áudio + + + + call_stats_video_title + "Vidéo" + Vídeo + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + Transferência em andamento, aguarde + + + + + information_popup_error_title + Erro + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + A transferência falhou + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + A reunião pode começar devido a um erro de URI. + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + Encerrar todas as chamadas atuais? + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + A janela está prestes a ser fechada. Isso encerrará todas as chamadas atuais. + + + + call_can_be_trusted_toast + "Appareil authentifié" + Dispositivo confiável + + + + call_dir + %1 chamada + + + + call_ended + Appel terminé + Chamada encerrada + + + + conference_paused + Meeting paused + Reunião pausada + + + + call_paused + Call paused + Chamada pausada + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + Chamada criptografada ponto a ponto + + + + call_zrtp_sas_validation_required + Vérification nécessaire + Validação necessária + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + Chamada criptografada de ponta a ponta + + + + call_not_encrypted + "Appel non chiffré" + Chamada não criptografada + + + + + call_waiting_for_encryption_info + Waiting for encryption + Aguardando criptografia + + + + call_paused_by_remote + Call paused by remote + Chamada pausada remotamente + + + + conference_user_is_recording + "You are recording the meeting" + Você está gravando a reunião + + + + call_user_is_recording + "You are recording the call" + Você está gravando a chamada + + + + conference_remote_is_recording + "Someone is recording the meeting" + Alguém está gravando a reunião + + + + call_remote_recording + "%1 is recording the call" + A chamada está sendo gravada por %1 + + + + call_stop_recording + "Stop recording" + Parar de gravar + + + + add + Adicionar + + + + call_transfer_current_call_title + "Transférer %1 à…" + Transferir %1 para… + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + Confirmar transferência + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + Você vai transferir %1 para %2. + + + + call_action_start_new_call + "Nouvel appel" + Nova chamada + + + + + call_action_show_dialer + "Pavé numérique" + Discador + + + + call_action_change_layout + "Modifier la disposition" + Alterar layout + + + + call_action_go_to_calls_list + "Liste d'appel" + Lista de chamadas + + + + Merger tous les appels + call_action_merge_calls + Mesclar todas as chamadas + + + + + call_action_go_to_settings + "Paramètres" + Configurações + + + + conference_action_screen_sharing + "Partage de votre écran" + Compartilhar sua tela + + + + conference_share_link_title + Partager le lien de la réunion + Compartilhar link da reunião + + + + copied + Copié + Copiado + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + O endereço da reunião foi copiado para a área de transferência + + + + + + conference_participants_list_title + "Participants (%1)" + Participantes (%1) + + + + + group_call_participant_selected + + %1 participante selecionado + %1 participantes selecionados + + + + + meeting_schedule_add_participants_title + Adicionar participantes + + + + call_encryption_title + Chiffrement + Criptografia + + + + open_statistic_panel_accessible_name + Abrir painel de estatísticas + + + + conference_user_is_sharing_screen + "You are sharing your screen" + Você está compartilhando sua tela + + + + call_stop_screen_sharing + "Stop sharing" + Parar + + + + stop_recording_accessible_name + Stop recording + Parar gravação + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + Parar compartilhamento de tela + + + + call_stats_title + Statistiques + Estatísticas + + + + + call_action_end_call + "Terminer l'appel" + Encerrar chamada + + + + + call_action_resume_call + "Reprendre l'appel" + Retomar chamada + + + + + call_action_pause_call + "Mettre l'appel en pause" + Pausar chamada + + + + + call_action_transfer_call + "Transférer l'appel" + Transferir chamada + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + Iniciar nova chamada + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + Ver lista de chamadas + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + Desligar vídeo + + + + + call_activate_video_hint + Habilitar vídeo + + + + + call_activate_microphone + "Activer le micro" + Ativar microfone + + + + + call_deactivate_microphone + "Désactiver le micro" + Microfone mudo + + + + + call_share_screen_hint + Partager l'écran… + Compartilhar tela… + + + + + call_open_chat_hint + Open chat… + Abrir conversa… + + + + + call_rise_hand_hint + "Lever la main" + Levantar a mão + + + + + call_send_reaction_hint + "Envoyer une réaction" + Enviar reação + + + + + call_manage_participants_hint + "Gérer les participants" + Gerenciar participantes + + + + + call_more_options_hint + "Plus d'options…" + Mais opções… + + + + call_action_change_conference_layout + "Modifier la disposition" + Alterar layout + + + + call_action_full_screen + "Mode Plein écran" + Modo de tela cheia + + + + call_action_stop_recording + "Terminer l'enregistrement" + Terminar gravação + + + + call_action_record + "Enregistrer l'appel" + Gravar chamada + + + + call_activate_speaker_hint + "Activer le son" + Ativar alto-falante + + + + call_deactivate_speaker_hint + "Désactiver le son" + Desativar alto-falante + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + Catálogo de endereços CardDAV + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + Adicione um catálogo de endereços CardDAV para sincronizar seus contatos do Linphone com um catálogo de endereços de terceiros. + + + + information_popup_error_title + Erro + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + Verifique se todas as informações foram inseridas. + + + + information_popup_synchronization_success_title + Sucesso + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + O catálogo de endereços do CardDAV está sincronizado. + + + + settings_contacts_carddav_popup_synchronization_error_title + Erro + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + Erro de sincronização! + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + Excluir catálogo de endereços do CardDAV? + + + + sip_address_display_name + Nom d'affichage + Nome de exibição + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + URL do servidor + + + + username + Nome de usuário + + + + password + Senha + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + Domínio de autenticação + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + Armazene os contatos recém-criados aqui + + + + ChangeLayoutForm + + + conference_layout_grid + Mosaico + + + + conference_layout_active_speaker + Falante ativo + + + + conference_layout_audio_only + Apenas áudio + + + + ChatAudioContent + + + + information_popup_error_title + Error + Erro + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + Falha ao criar mensagem de voz: erro no gravador + + + + ChatCore + + + info_toast_deleted_title + Deleted + Apagado + + + + info_toast_deleted_message_history + Message history has been deleted + O histórico de mensagem foi apagado + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + Diga algo… + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + Não é possível gravar uma mensagem enquanto uma chamada está em progresso + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + %1 está escrevendo… + + + + chat_message_draft_sending_text + Rascunho: %1 + + + + chat_room_delete + "Delete" + Apagar + + + + chat_room_mute + Silenciar + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + Marcar como lida + + + + chat_room_leave + "leave" + Sair + + + + chat_list_leave_chat_popup_title + leave the conversation ? + Sair da conversa? + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + Você não será mais capaz de enviar ou receber mensagens nesta conversa. Você deseja continuar? + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + Apagar a conversa? + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + Esta conversa e todas as suas mensagens serão apagadas. Você deseja continuar? + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + Copiar seleção + + + + chat_message_copy + "Copy" + Copiar + + + + chat_message_copied_to_clipboard_title + Copied + Copiado + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + na área de transferência + + + + chat_message_remote_replied + %1 replied + %1 respondeu + + + + chat_message_forwarded + Forwarded + Encaminhado + + + + chat_message_remote_replied_to + %1 replied to %2 + %1 respondeu %2 + + + + chat_message_user_replied_to + You replied to %1 + Você respondeu %1 + + + + chat_message_user_replied + You replied + Você respondeu + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + Responder + + + + chat_message_forward + Forward + Encaminhar + + + + chat_message_delete + "Delete" + Apagar + + + + ChatMessageContentCore + + + popup_error_title + Error + Erro + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + Não foi possível abrir o arquivo: caminho %1 desconhecido + + + + info_popup_error_titile + Erro + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + Erro ao adicionar arquivo + + + + popup_error_path_does_not_exist_message + File was not found: %1 + O arquivo não foi encontrado: %1 + + + + popup_error_nb_files_not_found_message + %1 arquivos não foram encontrados + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + Você pode enviar um máximo de 12 arquivos por vez. %n arquivo foi ignorado + Você pode enviar um máximo de 12 arquivos por vez. %n arquivos foram ignorados + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + %n arquivos foram ignorados porque eles excedem o tamanho máximo. (Limite de tamanho=%2) + + + + popup_error_unsupported_files_message + Não foi possível obter o tipo MIME suportado para %1 arquivos. + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + Não foi possível obter o tipo MIME suportado para: `%1`. + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + Reações + + + + info_toast_deleted_title + Deleted + Apagado + + + + info_toast_deleted_message + The message has been deleted + Esta mensagem foi apagada + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + de + + + + ics_bubble_meeting_to + para + + + + ics_bubble_meeting_modified + Meeting has been updated + A conferência foi atualizada + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + A conferência foi cancelada + + + + + de %1 para %2 (UTC%3) + + + + ics_bubble_description_title + Description + Descrição + + + + ics_bubble_join + "Rejoindre" + Entrar + + + + ics_bubble_participants + %n participant(s) + + %1 participante + %1 participantes + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + Encontrar mensagem + + + + info_popup_no_result_message + No result found + Nenhum resultado encontrado + + + + info_popup_first_result_message + First result reached + Primeiro resultado alcançado + + + + info_popup_last_result_message + Last result reached + Último resultado alcançado + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + Conversa criptografada de ponta-a-ponta + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + Esta conversa não está criptografada! + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + Mensagens nesta conversa possuem criptografia E2EE. +Apenas seu correspondente pode descriptografá-las. + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + As mensagens não possuem criptografia de ponta-a-ponta, + certifique-se de não compartilhar informações sensíveis! + + + + chat_message_is_writing_info + %1 is writing… + %1 está escrevendo… + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + Nova conversa + + + + chat_empty_title + "Aucune conversation" + Nenhuma conversa + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + Apagar conversa? + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + Esta conversa e todas as suas mensagens serão apagadas. + + + + chat_list_title + "Conversations" + Conversas + + + + menu_mark_all_as_read + "mark all as read" + Marcar todas como lidas + + + + chat_search_in_history + "Rechercher une conversation" + Procurar por uma conversa + + + + list_filter_no_result_found + "Aucun résultat…" + Nenhum resultado… + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + Nenhuma conversa no histórico + + + + chat_action_start_new_chat + "New chat" + Nova conversa + + + + chat_start_group_chat_title + "Nouveau groupe" + Novo grupo + + + + chat_action_start_group_chat + "Créer" + Criar + + + + + + information_popup_error_title + Erro + + + + information_popup_chat_creation_failed_message + "La création a échoué" + Falha ao criar + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + Um nome deve ser definido para o grupo + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + Você não está conectado + + + + chat_creation_in_progress + Creation de la conversation en cours … + Criando conversa… + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + Arquivos anexados + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + Download automático + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + Automaticamente baixar arquivos transferidos ou recebidos nas conversas + + + + CliModel + + + show_function_description + Exibir + + + + fetch_config_function_description + Obter configuração + + + + call_function_description + Chamada + + + + bye_function_description + Encerrar + + + + accept_function_description + Aceitar + + + + decline_function_description + Recusar + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + Erro + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + Sua conta foi desconectada + + + + Contact + + + information_popup_error_title + Erreur + Erro + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + O URI do correio de voz não está definido. + + + + account_settings_name_accessible_name + Account settings of %1 + Configurações de conta de %1 + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + Editar contato + + + + save + "Enregistrer + Salvar + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + As alterações serão descartadas. Deseja continuar? + + + + close_accessible_name + Close %1 + Fechar %1 + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + Por favor, insira um primeiro nome ou o nome de uma empresa + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + Por favor, insira um endereço SIP ou número de telefone + + + + contact_editor_add_image_label + "Ajouter une image" + Adicione uma imagem + + + + contact_details_edit + "Modifier" + Editar + + + + edit_contact_image_accessible_name + "Edit contact image" + Editar imagem de contato + + + + contact_details_delete + "Supprimer" + Apagar + + + + delete_contact_image_accessible_name + "Delete contact image" + Apagar imagem de contato + + + + + contact_editor_first_name + "Prénom" + Primeiro nome + + + + + contact_editor_last_name + "Nom" + Último nome + + + + + contact_editor_company + "Entreprise" + Empresa + + + + + contact_editor_job_title + "Fonction" + Trabalho + + + + + sip_address + Endereço SIP + + + + sip_address_number_accessible_name + "SIP address number %1" + Número de endereço SIP %1 + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + Apagar endereço SIP %1 + + + + new_sip_address_accessible_name + "New SIP address" + Novo endereço SIP + + + + phone_number_number_accessible_name + "Phone number number %1" + Número de número de telefone %1 + + + + remove_phone_number_accessible_name + Remove phone number %1 + Apagar número de telefone %1 + + + + new_phone_number_accessible_name + "New phone number" + Novo número de telefone + + + + + phone + "Téléphone" + Telefone + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + Remover dos favoritos + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + Adicionar aos favoritos + + + + Partager + Compartilhar + + + + information_popup_error_title + Erro + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + Falha na criação do VCard + + + + information_popup_vcard_creation_title + VCard créée + VCard Criado + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + O VCard foi salvo em %1 + + + + contact_sharing_email_title + Partage de contact + Compartilhar contato + + + + contact_details_delete + "Supprimer" + Apagar + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + Contrair %1 + + + + expand_accessible_name + Expand %1 + Expandir %1 + + + + ContactPage + + + contacts_add + "Ajouter un contact" + Adicionar um contato + + + + contacts_list_empty + "Aucun contact pour le moment" + Nenhum contato no momento + + + + contact_new_title + "Nouveau contact" + Novo contato + + + + create + Criar + + + + contact_edit_title + "Modifier contact" + Editar contato + + + + save + Salvar + + + + contact_dialog_delete_title + Supprimer %1 ?" + Apagar %1? + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + Este contato será apagado permanentemente. + + + + contact_deleted_toast + "Contact supprimé" + Contato apagado + + + + contact_deleted_message + "%1 a été supprimé" + %1 foi apagado + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + Aumentar o nível de confiança + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + Para aumentar o nível de confiança, você deve ligar para os dispositivos do seu contato e validar um código.<br><br>Você está prestes a ligar para "%1". Deseja continuar? + + + + popup_do_not_show_again + Ne plus afficher + Não mostrar novamente + + + + cancel + Cancelar + + + + dialog_call + "Appeler" + Chamar + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + Nível de confiança + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + Verifique os dispositivos dos seus contatos para confirmar que suas comunicações serão seguras e sem comprometimento. Quando todos forem verificados, você atingirá o nível máximo de confiança. + + + + dialog_ok + "Ok" + Ok + + + + bottom_navigation_contacts_label + "Contacts" + Contatos + + + + search_bar_look_for_contact_text + Rechercher un contact + Procurar contato + + + + list_filter_no_result_found + Aucun résultat… + Nenhum resultado… + + + + contact_list_empty + Aucun contact pour le moment + Nenhum contato no momento + + + + expand_accessible_name + Expand %1 + Expandir %1 + + + + shrink_accessible_name + Shrink %1 + Contrair %1 + + + + create_contact_accessible_name + Create new contact + Criar novo contato + + + + more_info_accessible_name + More info %1 + Mais informações %1 + + + + + contact_details_edit + Edit +---------- +"Éditer" + Editar + + + + contact_call_action + "Appel" + Chamar + + + + contact_message_action + "Message" + Enviar mensagem + + + + contact_video_call_action + "Appel vidéo" + Video chamada + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + Detalhes de contato + + + + call_adress_accessible_name + Call address %1 + Endereço de chamada %1 + + + + contact_details_company_name + "Société :" + Empresa: + + + + contact_details_job_title + "Poste :" + Trabalho: + + + + contact_details_medias_title + "Medias" + Metade + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + Mostrar mídias compartilhadas + + + + contact_details_trust_title + "Confiance" + Confiar + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + Nível de confiança - Dispositivos verificados + + + + contact_details_no_device_found + "Aucun appareil" + Nenhum dispositivo + + + + contact_device_without_name + "Appareil inconnu" + Dispositivo desconhecido + + + + contact_make_call_check_device_trust + "Vérifier" + Verificar + + + + verify_device_accessible_name + Verify %1 device + Verificar dispositivo %1 + + + + contact_details_actions_title + "Autres actions" + Outras ações + + + + contact_details_remove_from_favourites + "Retirer des favoris" + Remover dos favoritos + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + Adicionar aos favoritos + + + + contact_details_share + "Partager" + Compartilhar + + + + information_popup_error_title + Erro + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + Falha na criação do VCard + + + + contact_details_share_success_title + "VCard créée" + VCard Criado + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + O VCard foi salvo em %1 + + + + contact_details_share_email_title + "Partage de contact" + Compartilhar contato + + + + contact_details_delete + "Supprimer ce contact" + Apagar contato + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + Servidores LDAP + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + Adicione seus servidores LDAP para poder pesquisar na barra de pesquisa mágica. + + + + settings_contacts_carddav_title + Catálogo de endereços CardDAV + + + + settings_contacts_carddav_subtitle + Adicione um catálogo de endereços CardDAV para sincronizar seus contatos do Linphone com um catálogo de endereços de terceiros. + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + Adicionar servidor LDAP + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + Editar um servidor LDAP + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + Editar o servidor LDAP %1 + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + Usar o servidor LDAP %1 + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + Adicionar um catálogo de endereços do CardDAV + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + Editar um catálogo de endereços do CardDAV + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + Editar a lista de endereço CardDAV %1 + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + Usar a lista de endereço CardDAV %1 + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + Sucesso + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + As modificações foram salvas + + + + add + "Ajouter" + Adicionar + + + + ConversationInfos + + + one_one_infos_call + "Appel" + Chamada + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + Silenciar + + + + group_infos_participants + Participantes (%1) + + + + group_infos_media_docs + Medias & documents + Mídias e documentos + + + + group_infos_shared_medias + Shared medias + Mídias compartilhadas + + + + group_infos_shared_docs + Shared documents + Documentos compartilhados + + + + group_infos_other_actions + Other actions + Outras ações + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + Agendar uma conferência + + + + group_infos_leave_room + Leave chat room + Sair da sala de conversa + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + Sair da sala de conversa? + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + Todas as mensagens serão removidas da sala de conversa. Você deseja continuar? + + + + group_infos_delete_history + Delete history + Excluir histórico + + + + group_infos_delete_history_toast_title + Delete history ? + Apagar o histórico? + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + Todas as mensagens serão removidas da sala de conversa. Você deseja continuar? + + + + one_one_infos_open_contact + Show contact + Mostrar contato + + + + one_one_infos_create_contact + Create contact + Criar contato + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + Excluir histórico + + + + one_one_infos_delete_history_toast_title + Delete history ? + Apagar histórico? + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + Todas as mensagens serão removidas da sala de conversa. Você deseja continuar? + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + Procurar contato + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + Os rastreamentos de depuração serão apagados. Deseja continuar? + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + Os rastreamentos de depuração foram carregados. Como você gostaria de compartilhar o link? + + + + settings_debug_clipboard + "Presse-papier" + Área de transferência + + + + settings_debug_email + "E-Mail" + Email + + + + debug_settings_trace + "Traces %1" + %1 rastreamentos + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + Falha no compartilhamento de e-mail. Envie o link %1 diretamente para %2. + + + + + information_popup_error_title + Une erreur est survenue. + Ocorreu um erro. + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + Habilitar rastreamentos de depuração + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + Habilitar registros completos + + + + settings_debug_delete_logs_title + "Supprimer les traces" + Excluir rastreamentos de depuração + + + + settings_debug_share_logs_title + "Partager les traces" + Compartilhar rastreamentos de depuração + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + Carregando rastreamentos… + + + + settings_debug_app_version_title + "Version de l'application" + Versão do aplicativo + + + + settings_debug_sdk_version_title + "Version du SDK" + Versão do SDK + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + Falha no upload de rastreamentos. Você pode compartilhar arquivos de rastreamento diretamente do seguinte diretório: %1 + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + não pode estar vazio + + + + textfield_error_message_unknown_format + "Format non reconnu" + não pode estar vazio + + + + Dialog + + + + dialog_confirm + "Confirmer" + Confirmar + + + + + dialog_cancel + "Annuler" + Cancelar + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + Criptografia: + + + + call_stats_media_encryption + Media encryption : %1 + Criptografia de mídia: %1%2 + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + Algoritmo de criptografia: %1 + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + Algoritmo de concordância de chave: %1 + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + Algoritmo de hash: %1 + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + Algoritmo de autenticação: %1 + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + Algoritmo SAS: %1 + + + + call_zrtp_validation_button_label + "Validation chiffrement" + Validação de criptografia + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + 1 minuto + + + + one_hour + 1 hora + + + + one_day + 1 dia + + + + one_week + 1 semana + + + + disabled + Desativado + + + + custom + Customizado: + + + + EventLogCore + + + conference_created_event + Você entrou no grupo + + + + conference_created_terminated + Você saiu do grupo + + + + conference_participant_added_event + %1 entrou + + + + conference_participant_removed_event + %1 não está mais na conversa + + + + conference_participant_set_admin_event + %1 agora é um administrador + + + + conference_participant_unset_admin_event + %1 não é mais um administrador + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + Novo assunto: %1 + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + Endereço SIP + + + + + + device_id + "Téléphone" + Telefone + + + + information_popup_error_title + Erro + + + + information_popup_invalid_address_message + "Adresse invalide" + Endereço inválido + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + Gerenciar participantes + + + + group_infos_participant_is_admin + Administrador + + + + menu_see_existing_contact + "Show contact" + Mostrar contato + + + + menu_add_address_to_contacts + "Add to contacts" + Adicionar aos contatos + + + + group_infos_give_admin_rights + Dar direitos de administrador + + + + group_infos_remove_admin_rights + Remover direitos de administrador + + + + group_infos_copy_sip_address + Copiar endereço SIP + + + + group_infos_remove_participant + Remover participante + + + + group_infos_remove_participants_toast_title + Remover participante? + + + + group_infos_remove_participants_toast_message + O participante será removido da sala de conversa. + + + + GroupCreationFormLayout + + + return_accessible_name + Return + Retornar + + + + + group_start_dialog_subject_hint + "Nom du groupe" + Nome do grupo + + + + required + "Requis" + Obrigatório + + + + HelpPage + + + help_title + "Aide" + Ajuda + + + + + help_about_title + "À propos de %1" + Sobre %1 + + + + help_about_privacy_policy_title + "Règles de confidentialité" + Política de privacidade + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + Quais informações o %1 coleta e usa + + + + help_about_version_title + "Version" + Versão + + + + help_about_gpl_licence_title + "Licences GPLv3" + Licenças GPLv3 + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + Contribua para a tradução de %1 + + + + help_troubleshooting_title + "Dépannage" + Solucionando problemas + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + Servidores LDAP + + + + settings_contacts_ldap_subtitle + Adicione seus servidores LDAP para poder pesquisar na barra de pesquisa mágica. + + + + information_popup_success_title + Sucesso + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + O servidor LDAP foi salvo + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + Ocorreu um erro, a configuração LDAP não foi salva! + + + + information_popup_error_title + Erro + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + Excluir servidor LDAP? + + + + delete_ldap_server_accessible_name + Delete LDAP server + Apagar servidor LDAP + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + URL do servidor (não pode estar vazio) + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + Bind DN + + + + settings_contacts_ldap_password_title + "Mot de passe" + Senha + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + Usar TLS + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + Base de pesquisa (não pode estar vazia) + + + + settings_contacts_ldap_search_filter_title + "Filtre" + Filtro + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + Resultados máximos + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + Atraso entre duas consultas (em milissegundos) + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + Tempo limite (em segundos) + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + Número mínimo de caracteres para a consulta + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + Atributos de nome + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + Atributos SIP + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + Domínio SIP + + + + settings_contacts_ldap_debug_title + "Débogage" + Depuração + + + + LoadingPopup + + + cancel + Cancelar + + + + LoginForm + + + + username + Nom d'utilisateur : username + Nome de usuário + + + + + password + Mot de passe + Senha + + + + mandatory_field_accessible_name + "%1 mandatory" + %1 exigido + + + + + assistant_account_login + "Connexion" + Conexão + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + Por favor, insira um nome de usuário + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + Por favor, insira uma senha + + + + assistant_forgotten_password + "Mot de passe oublié ?" + Esqueceu a senha? + + + + LoginLayout + + + + help_about_title + À propos de %1 + Sobre %1 + + + + help_about_privacy_policy_title + "Politique de confidentialité" + Política de privacidade + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + Visite nossa política de privacidade + + + + help_about_version_title + "Version" + Versão + + + + help_about_licence_title + "Licence" + Licença + + + + help_about_copyright_title + "Copyright + Direitos autorais + + + + close + "Fermer" + Fechar + + + + LoginPage + + + return_accessible_name + Return + Retornar + + + + assistant_account_login + Connexion + Conexão + + + + assistant_no_account_yet + "Pas encore de compte ?" + Ainda não possui uma conta? + + + + assistant_account_register + "S'inscrire" + Registro + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + Conta SIP de terceiros + + + + assistant_login_remote_provisioning + "Configuration distante" + Provisionamento remoto + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + Baixar uma configuração remota + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + Por favor, insira o endereço de configuração fornecido: + + + + cancel + Cancelar + + + + validate + "Valider" + Confirmar + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + Link de provisionamento remoto + + + + default_account_connection_state_error_toast + Erro durante a conexão + + + + MagicSearchList + + + device_id + Telefone + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + Ligações + + + + open_calls_page_accessible_name + "Open calls page" + Abrir páginas de chamada + + + + bottom_navigation_contacts_label + "Contacts" + Contatos + + + + open_contacts_page_accessible_name + "Open contacts page" + Abrir página de contatos + + + + bottom_navigation_conversations_label + "Conversations" + Conversas + + + + open_conversations_page_accessible_name + "Open conversations page" + Abrir página de conversas + + + + bottom_navigation_meetings_label + "Réunions" + Conferências + + + + open_contact_page_accessible_name + "Open meetings page" + Abrir página de conferências + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + Encontre contato, ligue para %1 + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + ou envie uma mensagem… + + + + do_not_disturb_accessible_name + "Do not disturb" + Não perturbe + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + Desativar não perturbe + + + + information_popup_error_title + Erro + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + O URI do correio de voz não está definido. + + + + account_list_accessible_name + "Account list" + lista de contas + + + + application_options_accessible_name + "Application options" + Opções da aplicação + + + + drawer_menu_manage_account + Mon compte + Minha conta + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + Ativar não perturbe + + + + settings_title + Configurações + + + + recordings_title + "Enregistrements" + Gravações + + + + help_title + "Aide" + Ajuda + + + + help_quit_title + "Quitter l'application" + Sair do aplicativo + + + + quit_app_question + "Quitter %1 ?" + Sair do %1? + + + + drawer_menu_add_account + "Ajouter un compte" + Adicionar uma conta + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + Conexão bem-sucedida + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + Você está logado no modo %1 + + + + interoperable + interopérable + interoperável + + + + call_transfer_successful_toast_title + "Appel transféré" + Chamada encaminhada + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + O seu correspondente foi transferido para o contato selecionado + + + + information_popup_success_title + Salvo + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + As modificações foram salvas + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + Por favor, valide o CAPTCHA na página web + + + + assistant_register_error_title + "Erreur lors de la création" + Erro ao criar + + + + assistant_register_success_title + "Compte créé" + Conta criada + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + A conta foi criada. Você pode entrar agora. + + + + assistant_register_error_code + "Erreur dans le code de validation" + Erro no código de validação + + + + information_popup_error_title + Erro + + + + ManageParticipants + + + group_infos_manage_participants + Participantes + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + Conferência + + + + meeting_schedule_broadcast_label + "Webinar" + Webinário + + + + meeting_schedule_subject_hint + "Ajouter un titre" + Adicionar um título + + + + meeting_schedule_description_hint + "Ajouter une description" + Adicionar uma descrição + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + Adicionar participantes + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + Enviar um convite para os participantes + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + Conferência cancelada + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + Nenhuma reunião para hoje + + + + meeting_info_delete + "Supprimer la réunion" + Apagar conferência + + + + MeetingPage + + + meetings_add + "Créer une réunion" + Criar reunião + + + + meetings_list_empty + "Aucune réunion" + Sem reunião + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + Gostaria de cancelar e apagar esta reunião? + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + Gostaria de apagar esta reunião? + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + Cancelar e apagar + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + Apenas apagar + + + + meeting_schedule_delete_action + "Supprimer" + Apagar + + + + back_action + Retour + Voltar + + + + meetings_list_title + Réunions + Conferências + + + + meetings_search_hint + "Rechercher une réunion" + Encontrar reunião + + + + list_filter_no_result_found + "Aucun résultat…" + Nenhum resultado… + + + + meetings_empty_list + "Aucune réunion" + Sem reunião + + + + + meeting_schedule_title + "Nouvelle réunion" + Nova reunião + + + + create + Criar + + + + + + + + + information_popup_error_title + Erro + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + Preencha o título e selecione pelo menos um participante + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + O fim da conferência deve ser mais recente do que o seu início + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + Criando a reunião… + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + Conferência criada com sucesso + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + Falha ao criar conferência! + + + + save + Salvar + + + + + saved + "Enregistré" + Salvo + + + + meeting_info_updated_toast + "Réunion mise à jour" + Conferência atualizada + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + Atualização de conferência em progresso… + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + Falha ao atualizar conferência! + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + Adicionar participantes + + + + meeting_schedule_add_participants_apply + Aplicar + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + %1 participante selecionado + %1 participantes selecionados + + + + + meeting_info_delete + "Supprimer la réunion" + Apagar conferência + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + URI da conferência copiado + + + + meeting_schedule_timezone_title + "Fuseau horaire" + Fuso horário + + + + meeting_info_organizer_label + "Organisateur" + Organizador + + + + meeting_info_join_title + "Rejoindre la réunion" + Entrar na conferência + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + Exibir + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + Modo de exibição padrão + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + Como os participantes são exibidos nas reuniões + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + Estado da mensagem + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + Reações + + + + click_to_delete_reaction_info + Click to delete + Clique para apagar + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + Sem mídia + + + + no_shared_documents + No document + Sem documento + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + Toque - Chamadas recebidas + + + + + + + choose_something_accessible_name + Choose %1 + Escolher %1 + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + Alto-falantes + + + + + device_volume_accessible_name + %1 volume + %1 volume + + + + + + multimedia_settings_microphone_title + "Microphone" + Microfone + + + + + multimedia_settings_camera_title + "Caméra" + Câmera + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + Rede + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + Habilitar IPv6 + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + Chamada em andamento + + + + call_start_group_call_title + Appel de groupe + Chamada em grupo + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + Novo grupo + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + Chamada recebida + + + + dialog_accept + "Accepter" + Aceitar + + + + dialog_deny + "Refuser + Recusar + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + Nova chamada de %1 + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + Mensagem de voz recebida! + + + + new_file_message + Arquivo recebido! + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + Convite de conferência recebido! + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + Novas mensagens recebidas! + + + + new_message_alert_accessible_name + New message on chatroom %1 + Nova mensagem na sala de conversa %1 + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + OAuthHttpServerReplyHandler não está escutando + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + Tempo limite: Não autenticado + + + + oidc_authentication_granted_message + Authentication granted + Autenticação concedida + + + + oidc_authentication_not_authenticated_message + Not authenticated + Não autenticado + + + + oidc_authentication_refresh_message + Refreshing token + Token de atualização + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + Credenciais temporárias recebidas + + + + oidc_authentication_network_error + Network error + Erro de rede + + + + oidc_authentication_server_error + Server error + Erro do servidor + + + + oidc_authentication_token_not_found_error + OAuth token not found + Token OAuth não encontrado + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + Segredo do token OAuth não encontrado + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + Retorno de chamada OAuth não verificado + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + Solicitando autorização do navegador + + + + oidc_authentication_no_token_found_error + Nenhum token encontrado + + + + oidc_authentication_request_token_message + Requesting access token + Solicitando token de acesso + + + + oidc_authentication_refresh_token_message + Refreshing access token + Atualizando o token de acesso + + + + oidc_authentication_request_authorization_message + Requesting authorization + Solicitando autorização + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + Solicitando credenciais temporárias + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + Nenhum endpoint de autorização encontrado na configuração do OpenID + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + Nenhum endpoint de token encontrado na configuração do OpenID + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + Administrador + + + + meeting_add_participants_title + "Ajouter des participants" + Adicionar participantes + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + Prefixo %1 + + + + number_phone_number_accessible_name + %1 number + Número %1 + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + Fechar popup %1 + + + + open_popup_panel_accessible_name + "Open %1" popup + Abrir popup %1 + + + + Presence + + + contact_presence_reset_status + Redefinir estado + + + + contact_presence_button_set_custom_status + Definir + + + + contact_presence_button_edit_custom_status + Editar + + + + contact_presence_button_delete_custom_status + Apagar + + + + contact_presence_custom_status + Estado customizado + + + + PresenceNoteLayout + + + contact_presence_note_title + Mensagem customizada + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + Definir uma mensagem de estado customizada + + + + contact_presence_button_save_custom_status + Salvar + + + + QObject + + + media_encryption_dtls + DTLS + + + + media_encryption_none + Nenhum + + + + media_encryption_srtp + SRTP + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + ZRTP Pós-quântico + + + + message_state_in_progress + "delivery in progress" + encaminhamento em progresso + + + + message_state_delivered + sent + enviado + + + + message_state_not_delivered + error + erro + + + + message_state_file_transfer_error + cannot get file from server + não foi possível obter arquivo do servidor + + + + message_state_file_transfer_done + file transfer has been completed successfully + transferência de arquivo completada com sucesso + + + + message_state_delivered_to_user + received + recebido + + + + message_state_displayed + read + lido + + + + message_state_file_transfer__in_progress + file transfer in progress + transferência de arquivo em progresso + + + + message_state_pending_delivery + pending delivery + encaminhamento pendente + + + + message_state_file_transfer_cancelling + file transfer canceled + transferência de arquivo cancelada + + + + incoming + "Entrant" + Recebidas + + + + outgoing + "Sortant" + Enviadas + + + + conference_layout_active_speaker + "Participant actif" + Falante ativo + + + + conference_layout_grid + "Mosaïque" + Mosaico + + + + conference_layout_audio_only + "Audio uniquement" + Apenas áudio + + + + RegisterCheckingPage + + + email + "email" + email + + + + phone_number + "numéro de téléphone" + número de telefone + + + + confirm_register_title + "Inscription | Confirmer votre %1" + Cadastrar | Confirme seu %1 + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + Nós enviamos um código de verificação no seu %1 %2<br>Por favor, insira-o abaixo + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + Não recebeu o código? + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + Reenviar código + + + + RegisterPage + + + return_accessible_name + Return + Voltar + + + + assistant_account_register + "Inscription + Registro + + + + assistant_already_have_an_account + Já possui uma conta? + + + + assistant_account_login + Conexão + + + + assistant_account_register_with_phone_number + Cadastrar com um número de telefone + + + + assistant_account_register_with_email + Cadastrar com email + + + + + username + Nome de usuário + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + %1 exigido + + + + domain + Domínio + + + + + + phone_number + "Numéro de téléphone" + Número de telefone + + + + + email + Email + + + + + password + Senha + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + Confirmar senha + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + Eu aceito o %1 e o %2 + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + termos de uso + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + política de privacidade + + + + assistant_account_create + "Créer" + Criar + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + Por favor, insira um nome de usuário + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + Por favor, insira uma senha + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + As senhas não combinam + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + Por favor, insira um número de telefone + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + Por favor, insira um email + + + + SIPLoginPage + + + return_accessible_name + Return + Voltar + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + Conta SIP de terceiros + + + + assistant_no_account_yet + Pas encore de compte ? + Ainda não há conta? + + + + assistant_account_register + S'inscrire + Registro + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + Algumas funcionalidades, como conversas em grupo, videoconferências, e outros, exigem uma conta %1. + +Estas funcionalidades serão escondidas se você utilizar uma conta SIP de terceiros. + +Para habilitá-las em um projeto comercial, por favor, entre em contato conosco. + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + Criar uma conta Linphone + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + Entendi + + + + + username + "Nom d'utilisateur" + Nome de usuário + + + + + mandatory_field_accessible_name + "%1 mandatory" + %1 exigido + + + + + password + Senha + + + + + sip_address_domain + "Domaine" + Domínio + + + + + sip_address_display_name + Nom d'affichage + Nome de exibição + + + + + transport + "Transport" + Transporte + + + + + assistant_account_login + Conexão + + + + assistant_account_login_missing_username + Por favor, insira um nome de usuário + + + + assistant_account_login_missing_password + Por favor, insira uma senha + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + Por favor, insira um domínio + + + + login_advanced_parameters_label + Advanced parameters + Parâmetros avançados + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + URI do proxy SIP de saída + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + Se este campo for preenchido, o proxy de saída será ativado automaticamente. Mantenha vazio para desabilitá-lo. + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + ID de autenticação (caso diferente) + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + Por favor, selecione a tela ou janela que você gostaria de compartilhar com os outros participantes. + + + + screencast_settings_all_screen_label + "Ecran entier" + Tela inteira + + + + screencast_settings_one_window_label + "Fenêtre" + Janela + + + + screencast_settings_screen + "Ecran %1" + Tela %1 + + + + stop + "Stop + Parar + + + + share + "Partager" + Compartilhar + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + Limpar entrada de texto + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + Selecione seu modo + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + Você pode alterar este modo mais tarde. + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + Criptografia de ponta-a-ponta + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + Este modo garante a confidencialidade de todas as suas comunicações. Nossa tecnologia de criptografia de ponta-a-ponta garante segurança máxima para todas suas comunicações. + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + Interoperável + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + Este modo permite que você desfrute de todas as funcionalidades do Linphone, mantendo interoperatividade com outros serviços SIP. + + + + dialog_continue + "Continuer" + Continuar + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + Criptografar todos os arquivos + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + Aviso: não pode ser desativado após ativado! + + + + SelectedChatView + + + chat_view_group_call_toast_message + Iniciar uma chamada em grupo? + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + Esta conversa não está criptografada! + + + + reply_to_label + Reply to %1 + Responder %1 + + + + shared_medias_title + Shared medias + Mídias compartilhadas + + + + shared_documents_title + Shared documents + Documentos compartilhados + + + + forward_to_title + Forward to… + Encaminhar para… + + + + conversations_title + Conversations + Conversas + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + Configurações %1 + + + + SettingsPage + + + settings_title + "Paramètres" + Configurações + + + + settings_calls_title + "Appels" + Chamadas + + + + settings_call_forward + "Transfert d'appel" + Encaminhamento de chamada + + + + settings_conversations_title + "Conversations" + Conversas + + + + settings_contacts_title + "Contacts" + Contatos + + + + settings_meetings_title + "Réunions" + Conferências + + + + settings_network_title + "Affichage" "Security" "Réseau" + Rede + + + + settings_advanced_title + "Paramètres avancés" + Parâmetros avançados + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + Modificações não salvas + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + Você possui modificações não salvas. Se sair desta página, suas modificações serão perdidas. Você deseja salvar suas modificações antes de continuar? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + Não salvar + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + Salvar + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + entrando… + + + + conference_participant_paused_text + "En pause" + Em pausa + + + + TextField + + + show_accessible_name + Show %1 + Exibir %1 + + + + hide_accessible_name + Hide %1 + Esconder %1 + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + O endereço de chamada não é um endereço SIP interpretável: %1 + + + + group_call_error_no_account + Nenhuma conta padrão encontrada, não foi possível criar a chamada em grupo + + + + group_call_error_participants_invite + Não foi possível convidar os participantes para a chamada em grupo + + + + group_call_error_creation + A chamada em grupo não pôde ser criada + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + Gravação de voz (%1) + + + + unknown_audio_device_name + Nome de dispositivo desconhecido + + + + conference_invitation + Convite de conferência + + + + conference_invitation_cancelled + Cancelamento de conferência + + + + conference_invitation_updated + Modificação de conferência + + + + Utils + + + nSeconds + + %1 segundo + %1 segundos + + + + + nMinute + + %1 minuto + %1 minutos + + + + + chat_message_forward_error + Cannot forward an invalid message + Não é possível encaminhar uma mensagem inválida + + + + info_popup_forward_message_error + Could not forward message : %1 + Não foi possível encaminhar a mensagem: %1 + + + + info_popup_send_forward_message_error_message + Failed to create forward message + Falhar ao criar encaminhamento de mensagem + + + + chat_message_reply_error + Cannot reply to invalid message + Não é possível responder uma mensagem inválida + + + + info_popup_reply_message_error + Could not send reply message : %1 + Não foi possível enviar mensagem de resposta: %1 + + + + info_popup_send_reply_message_error_message + Failed to create reply message + Falha ao criar mensagem de resposta + + + + nHour + + %1 hora + %1 horas + + + + + + nDay + + %1 dia + %1 dias + + + + + nWeek + + %1 semana + %1 semanas + + + + + contact_presence_status_available + Disponível + + + + contact_presence_status_busy + Ocupado + + + + contact_presence_status_do_not_disturb + Não perturbe + + + + contact_presence_status_offline + Indisponível + + + + contact_presence_status_away + Ocioso/Ausente + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + A chamada não pôde ser criada + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + Erro + + + + information_popup_group_call_not_created_message + A chamada em grupo não pôde ser criada + + + + number_of_years + %n an(s) + + um ano + %1 anos + + + + + number_of_month + "%n mois" + + um mês + %1 meses + + + + + number_of_weeks + %n semaine(s) + + uma semana + %1 semanas + + + + + number_of_days + %n jour(s) + + um dia + %1 dias + + + + + today + "Aujourd'hui" + Hoje + + + + yesterday + "Hier + Ontem + + + + duration_tomorrow + Tomorrow + Amanhã + + + + duration_number_of_days + %1 jour(s) + + %n dia + %n dias + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + Falha ao criar conversa única com %1! + + + + recorder_error + Error with the recorder + Erro com o gravador + + + + + + chat_error + Erro na conversa + + + + + + + + + info_popup_error_title + Error + Erro + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + Não foi possível enviar mensagem de voz: %1 + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + Falha ao criar mensagem a partir de gravação + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + Entrar: + + + + meeting_waiting_room_join + "Rejoindre" + Entrar + + + + + cancel + Cancel + Cancelar + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + Conexão para a conferência + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + Você entrará na conferência em alguns instantes… + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + Bem-vindo + + + + welcome_page_subtitle + "sur %1" + ao %1 + + + + welcome_carousel_skip + "Passer" + Pular + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + Um aplicativo de comunicação <b>seguro</b>,<br><b>de código aberto</b> e <b>francês</b>. + + + + welcome_page_2_title + "Sécurisé" + Seguro + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + Suas comunicações estão seguras graças à<br><b>criptografia de ponta-a-ponta</b>. + + + + welcome_page_3_title + "Open Source" + Código aberto + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + Um aplicativo de código aberto e um <b>serviço gratuito</b><br>desde <b>2001</b> + + + + next + "Suivant" + Próximo + + + + start + "Commencer" + Iniciar + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + Verificação de segurança + + + + call_zrtp_sas_validation_skip + "Passer" + Pular + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + Para garantiar a criptografia, nós precisamos re-autenticar o dispositivo do seu contato. Troquem seus códigos: + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + Para garantir a criptografia, nós precisamos autenticar o dispositivo do seu contato. Por favor, troquem seus códigos: + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + Seu código: + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + Código correspondente: + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + O código fornecido não corresponde. + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + A confidencialidade da sua chamada pode estar comprometida! + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + Nenhuma correspondência + + + + call_action_hang_up + "Raccrocher" + Encerrar + + + + country + + + Afghanistan + Afeganistão + + + + Albania + Albânia + + + + Algeria + Argélia + + + + AmericanSamoa + Samoa Americana + + + + Andorra + Andorra + + + + Angola + Angola + + + + Anguilla + Anguila + + + + AntiguaAndBarbuda + Antígua e Barbuda + + + + Argentina + Argentina + + + + Armenia + Armênia + + + + Aruba + Aruba + + + + Australia + Austrália + + + + Austria + Áustria + + + + Azerbaijan + Azerbaijão + + + + Bahamas + Bahamas + + + + Bahrain + Barém + + + + Bangladesh + Bangladesh + + + + Barbados + Barbados + + + + Belarus + Bielorrússia + + + + Belgium + Bélgica + + + + Belize + Belize + + + + Benin + Benim + + + + Bermuda + Bermudas + + + + Bhutan + Butão + + + + Bolivia + Bolívia + + + + BosniaAndHerzegowina + Bósnia e Herzegovina + + + + Botswana + Botswana + + + + Brazil + Brasil + + + + Brunei + Brunei + + + + Bulgaria + Bulgária + + + + BurkinaFaso + Burquina Fasso + + + + Burundi + Burundi + + + + Cambodia + Camboja + + + + Cameroon + Camarões + + + + Canada + Canadá + + + + CapeVerde + Cabo Verde + + + + CaymanIslands + Ilhas Cayman + + + + CentralAfricanRepublic + República Centro-Africana + + + + Chad + Chade + + + + Chile + Chile + + + + China + China + + + + Colombia + Colômbia + + + + Comoros + Comores + + + + PeoplesRepublicOfCongo + República Popular do Congo + + + + CookIslands + Ilhas Cook + + + + CostaRica + Costa Rica + + + + IvoryCoast + Costa do Marfim + + + + Croatia + Croácia + + + + Cuba + Cuba + + + + Cyprus + Chipre + + + + CzechRepublic + República Tcheca + + + + Denmark + Dinamarca + + + + Djibouti + Djibuti + + + + Dominica + Dominica + + + + DominicanRepublic + República Dominicana + + + + Ecuador + Equador + + + + Egypt + Egito + + + + ElSalvador + El Salvador + + + + EquatorialGuinea + Guiné Equatorial + + + + Eritrea + Eritreia + + + + Estonia + Estônia + + + + Ethiopia + Etiópia + + + + FalklandIslands + Ilhas Malvinas + + + + FaroeIslands + Ilhas Feroe + + + + Fiji + Fiji + + + + Finland + Finlândia + + + + France + França + + + + FrenchGuiana + Guiana Francesa + + + + FrenchPolynesia + Polinésia Francesa + + + + Gabon + Gabão + + + + Gambia + Gâmbia + + + + Georgia + Geórgia + + + + Germany + Alemanha + + + + Ghana + Gana + + + + Gibraltar + Gibraltar + + + + Greece + Grécia + + + + Greenland + Groenlândia + + + + Grenada + Granada + + + + Guadeloupe + Guadalupe + + + + Guam + Guam + + + + Guatemala + Guatemala + + + + Guinea + Guiné + + + + GuineaBissau + Guiné-Bissau + + + + Guyana + Guiana + + + + Haiti + Haiti + + + + Honduras + Honduras + + + + DemocraticRepublicOfCongo + República Democrática do Congo + + + + HongKong + Hong Kong + + + + Hungary + Hungria + + + + Iceland + Islândia + + + + India + Índia + + + + Indonesia + Indonésia + + + + Iran + Irã + + + + Iraq + Iraque + + + + Ireland + Irlanda + + + + Israel + Israel + + + + Italy + Itália + + + + Jamaica + Jamaica + + + + Japan + Japão + + + + Jordan + Jordânia + + + + Kazakhstan + Cazaquistão + + + + Kenya + Quênia + + + + Kiribati + Kiribati + + + + DemocraticRepublicOfKorea + + + + + RepublicOfKorea + República da Coreia + + + + Kuwait + Kuwait + + + + Kyrgyzstan + Quirguistão + + + + Laos + Laos + + + + Latvia + Letônia + + + + Lebanon + Líbano + + + + Lesotho + Lesoto + + + + Liberia + Libéria + + + + Libya + Líbia + + + + Liechtenstein + Liechtenstein + + + + Lithuania + Lituânia + + + + Luxembourg + Luxemburgo + + + + Macau + Macau + + + + Macedonia + Macedônia + + + + Madagascar + Madagascar + + + + Malawi + Malawi + + + + Malaysia + Malásia + + + + Maldives + Maldivas + + + + Mali + Mali + + + + Malta + Malta + + + + MarshallIslands + Ilhas Marshall + + + + Martinique + Martinica + + + + Mauritania + Mauritânia + + + + Mauritius + Maurício + + + + Mayotte + Mayotte + + + + Mexico + México + + + + Micronesia + Micronésia + + + + Moldova + + + + + Monaco + Mônaco + + + + Mongolia + + + + + Montenegro + Montenegro + + + + Montserrat + + + + + Morocco + + + + + Mozambique + Moçambique + + + + Myanmar + + + + + Namibia + + + + + NauruCountry + + + + + Nepal + + + + + Netherlands + Países Baixos + + + + NewCaledonia + + + + + NewZealand + Nova Zelândia + + + + Nicaragua + Nicarágua + + + + Niger + Níger + + + + Nigeria + Nigéria + + + + Niue + + + + + NorfolkIsland + + + + + NorthernMarianaIslands + + + + + Norway + Noruega + + + + Oman + + + + + Pakistan + Paquistão + + + + Palau + + + + + PalestinianTerritories + + + + + Panama + Panamá + + + + PapuaNewGuinea + + + + + Paraguay + Paraguai + + + + Peru + Peru + + + + Philippines + Filipinas + + + + Poland + Polônia + + + + Portugal + Portugal + + + + PuertoRico + Porto Rico + + + + Qatar + Catar + + + + Reunion + Reunião + + + + Romania + Romênia + + + + RussianFederation + Federação da Rússia + + + + Rwanda + + + + + SaintHelena + + + + + SaintKittsAndNevis + + + + + SaintLucia + + + + + SaintPierreAndMiquelon + + + + + SaintVincentAndTheGrenadines + + + + + Samoa + + + + + SanMarino + + + + + SaoTomeAndPrincipe + + + + + SaudiArabia + Arábia Saudita + + + + Senegal + + + + + Serbia + Sérvia + + + + Seychelles + Seicheles + + + + SierraLeone + + + + + Singapore + Singapura + + + + Slovakia + Eslováquia + + + + Slovenia + Eslovênia + + + + SolomonIslands + + + + + Somalia + + + + + SouthAfrica + África do Sul + + + + Spain + Espanha + + + + SriLanka + + + + + Sudan + + + + + Suriname + Suriname + + + + Swaziland + + + + + Sweden + Suécia + + + + Switzerland + Suíça + + + + Syria + Síria + + + + Taiwan + Taiwan + + + + Tajikistan + + + + + Tanzania + + + + + Thailand + Tailândia + + + + Togo + + + + + Tokelau + + + + + Tonga + + + + + TrinidadAndTobago + + + + + Tunisia + + + + + Turkey + Turquia + + + + Turkmenistan + + + + + TurksAndCaicosIslands + + + + + Tuvalu + + + + + Uganda + Uganda + + + + Ukraine + Ucrânia + + + + UnitedArabEmirates + Emirados Árabes Unidos + + + + UnitedKingdom + Reino Unido + + + + UnitedStates + Estados Unidos + + + + Uruguay + Uruguai + + + + Uzbekistan + + + + + Vanuatu + + + + + Venezuela + Venezuela + + + + Vietnam + Vietnã + + + + WallisAndFutunaIslands + + + + + Yemen + Iêmen + + + + Zambia + + + + + Zimbabwe + + + + + utils + + + formatYears + '%1 year' + + um ano + %1 anos + + + + + formatMonths + '%1 month' + + + + + + + + formatWeeks + '%1 week' + + uma semana + %1 semanas + + + + + formatDays + '%1 day' + + um dia + %1 dias + + + + + formatHours + '%1 hour' + + uma hora + %1 horas + + + + + formatMinutes + '%1 minute' + + um minuto + %1 minutos + + + + + formatSeconds + '%1 second' + + um segundo + %1 segundos + + + + + codec_install + "Installation de codec" + Instalação do codec + + + + download_codec + "Télécharger le codec %1 (%2) ?" + Baixar o codec %1 (%2)? + + + + information_popup_success_title + "Succès" + Sucesso + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + O codec foi instalado com sucesso. + + + + + + information_popup_error_title + Erro + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + O codec não pôde ser instalado. + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + O codec não pôde ser salvo. + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + O codec não pôde ser baixado. + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + Baixando… + + + + okButton + Ok + + + + CoreModel + + + info_popup_error_title + Erro + + + diff --git a/Linphone/data/languages/ru.ts b/Linphone/data/languages/ru.ts new file mode 100644 index 000000000..245f37034 --- /dev/null +++ b/Linphone/data/languages/ru.ts @@ -0,0 +1,7459 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + + + + + save + "Enregistrer" + Сохранить + + + + save_settings_accessible_name + Save %1 settings + + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + Выберите SIP-номер или адрес + + + + fps_counter + %1 Кадров в секунду + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + Подключенный + + + + drawer_menu_account_connection_status_refreshing + Обновление… + + + + drawer_menu_account_connection_status_progress + Соединение… + + + + drawer_menu_account_connection_status_failed + Ошибка + + + + drawer_menu_account_connection_status_cleared + Отключенный + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + Вы в сети и доступны. + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + Ошибка подключения, проверьте настройки. + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + Учетная запись отключена, прием сообщений и звонков невозможен. + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + Ошибка опроса устройств + + + + AccountListView + + + add_an_account + Add an account + Добавить учетную запись + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + Учетная запись уже подключена + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + Создание прокси-адреса невозможно. Проверьте имя домена. + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + Невозможно настроить адрес: `%1`. + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + Невозможно настроить учетную запись. + + + + assistant_account_login_forbidden_error + "Username and password do not match" + Имя пользователя и пароль не соответствуют + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + Ошибка во время соединения + + + + assistant_account_add_error + "Unable to add account." + Не удалось добавить учетную запись. + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + Подробности + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + Изменить информацию учетной записи. + + + + manage_account_devices_title + "Vos appareils" + Ваши устройства + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + Список устройств, подключенных к вашей учетной записи. Вы можете удалить устройства, которые больше не используете. + + + + manage_account_add_picture + "Ajouter une image" + Добавить изображение + + + + manage_account_edit_picture + "Modifier l'image" + Изменить изображение + + + + manage_account_remove_picture + "Supprimer l'image" + Удалить изображение + + + + sip_address + SIP-адрес + + + + sip_address_display_name + "Nom d'affichage + Отображаемое имя + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + Отображаемое вашим контактам имя. + + + + manage_account_international_prefix + Indicatif international* + Международный код* + + + + manage_account_delete + "Déconnecter mon compte" + Отключить мою учётную запись + + + + manage_account_delete_message + Ваша учетная запись будет удалена из Linphone, но вы всё ещё будете подключены на других клиентах + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + Выйти из вашей учетной записи? + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + Для полного удаления учетной записи перейдите на https://sip.linphone.org + + + + error + Erreur + Ошибка + + + + manage_account_device_remove + "Supprimer" + Удалить + + + + manage_account_device_remove_confirm_dialog + Удалить %1? + + + + manage_account_device_last_connection + "Dernière connexion:" + Последний вход: + + + + device_last_updated_time_no_info + "No information" + + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + Моя учетная запись + + + + settings_general_title + "Général" + Основные + + + + settings_account_title + "Paramètres de compte" + Настройки учётной записи + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + Несохраненные изменения + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + У вас есть несохранённые изменения. Если вы покинете эту страницу, ваши изменения будут потеряны. Сохранить изменения перед продолжением? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + Не сохранено + + + + contact_editor_dialog_abort_confirmation_save + Сохранить + + + + AccountSettingsParametersLayout + + + settings_title + Настройки + + + + settings_account_title + Настройки учётной записи + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_error_title + Ошибка + + + + information_popup_success_title + Успешно + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + Изменения сохранены + + + + information_popup_error_title + Ошибка + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + URI сервера голосовой почты + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + URI голосовой почты + + + + account_settings_transport_title + "Transport" + Транспорт + + + + account_settings_registrar_uri_title + + + + + account_settings_sip_proxy_url_title + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + Адрес сервера STUN + + + + account_settings_enable_ice_title + "Activer ICE" + Включить ICE + + + + account_settings_avpf_title + "AVPF" + AVPF + + + + account_settings_bundle_mode_title + "Mode bundle" + Режим объединения + + + + account_settings_expire_title + "Expiration (en seconde)" + Таймаут (сек) + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + URI фабрики конференции + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + URI фабрики видеоконференции + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + URL сервера Lime + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + Найти контакты + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + + + + + + + + remove_participant_accessible_name + Remove participant %1 + + + + + list_filter_no_result_found + "Aucun contact" + Результат не найден… + + + + contact_list_empty + Пока нет контактов + + + + AdvancedSettingsLayout + + + settings_system_title + System + Система + + + + settings_remote_provisioning_title + Remote provisioning + Удаленное конфигурирование + + + + settings_security_title + Security / Encryption + Безопасность / Шифрование + + + + settings_advanced_audio_codecs_title + Audio codecs + Аудио кодеки + + + + settings_advanced_video_codecs_title + Video codecs + Видео кодеки + + + + settings_advanced_auto_start_title + Auto start %1 + Автозапуск %1 + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + URL-адрес удалённого конфигурирования + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + Скачать и применить + + + + information_popup_error_title + Invalid URL format + Ошибка + + + + settings_advanced_invalid_url_message + Неверный формат URL + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + + + + + + settings_advanced_media_encryption_title + Media encryption + Шифрование медиа + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + Обязательное шифрование медиа + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + Создавать зашифрованные собрания и групповые звонки + + + + settings_advanced_hide_fps_title + Скрыть кадры/с + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + Избранное + + + + generic_address_picker_contacts_list_title + 'Contacts' + Контакты + + + + generic_address_picker_suggestions_list_title + "Suggestions" + Предложения + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + Хотите скачать и применить конфигурацию с этого адреса? + + + + + info_popup_error_title + Error + Ошибка + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + + + + + configuration_error_detail + not reachable + + + + + application_description + "A free and open source SIP video-phone." + SIP-видеофон, бесплатный и с открытым исходным кодом. + + + + command_line_arg_order + "Send an order to the application towards a command line" + Отправить команду приложению через командную строку + + + + command_line_option_show_help + Отображать эту подсказку + + + + command_line_option_show_app_version + Показать версию приложения + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + Укажите файл конфигурации Linphone, который необходимо загрузить. Он будет объединён с текущей конфигурацией. + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + URL, путь или файл + + + + command_line_option_minimized + Свернуть + + + + command_line_option_log_to_stdout + Войдите в систему, чтобы получить информацию отладки во время работы + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + Печатайте только журналы приложения + + + + hide_action + "Cacher" "Afficher" + Скрыть + + + + show_action + Показать + + + + quit_action + "Quitter" + Выйти + + + + mark_all_read_action + + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + Требуется аутентификация + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + Не удалось войти в учётную запись %1. Введите пароль ещё раз или проверьте настройки учётной записи. + + + + password + Пароль + + + + cancel + "Annuler + Отмена + + + + assistant_account_login + Connexion + Подключение + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + Пожалуйста, введите пароль + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + Запись завершена + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + Запись сохранена в файл: %1 + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + Кодек: %1 / %2 kHz + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + Пропускная способность: %1 %2 кбит/с %3 %4 кбит/с + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + Коэффициент потерь: %1% %2% + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + Задержка буфера : 1 мс + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + Разрешение видео: %1 %2 %3 %4 + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + Количество кадров: 1 2 3 4 + + + + media_encryption_dtls + DTLS + DTLS + + + + media_encryption_none + None + None + + + + media_encryption_srtp + SRTP + Безопасный протокол транспорта в реальном времени (SRTP) + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + ZRTP с постквантовой криптографией + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + + + + + settings_call_forward_destination_choose + Forward to destination + + + + + + + settings_call_forward_to_voicemail + + + + + settings_call_forward_to_sipaddress + + + + + settings_call_forward_sipaddress_title + SIP Address + + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + + + + + settings_call_forward_address_timeout + + + + + settings_call_forward_address_progress_disabling + + + + + settings_call_forward_address_progress_enabling + + + + + settings_call_forward_activation_success + + + + + settings_call_forward_deactivation_success + + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + Присоединиться к собранию + + + + contact_call_action + "Appel" + Звонок + + + + contact_message_action + "Message" + Сообщение + + + + contact_video_call_action + "Appel Video" + Видеозвонок + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + Вы покинули встречу + + + + call_ended_by_user + "Vous avez terminé l'appel" + Вы завершили звонок + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + Ваш собеседник завершил вызов + + + + conference_call_empty + "En attente d'autres participants…" + Ожидание остальных участников… + + + + conference_share_link_title + "Partager le lien" + Поделиться ссылкой + + + + copied + Скопированный + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + Ссылка на встречу скопирована в буфер обмена + + + + CallList + + + remote_group_call + Remote group call + + + + + local_group_call + + + + + info_popup_error_title + Ошибка + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + + + + + CallListView + + + meeting + "Réunion + Встреча + + + + call + "Appel" + Звонок + + + + paused_call_or_meeting + "%1 en pause" + приостановлен + + + + ongoing_call_or_meeting + "%1 en cours" + Непрерывный + + + + transfer_call_name_accessible_name + Transfer call %1 + + + + + resume_call_name_accessible_name + Resume %1 call + + + + + pause_call_name_accessible_name + Pause %1 call + + + + + end_call_name_accessible_name + End %1 call + + + + + CallModel + + + call_error_no_response_toast + "No response" + + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + + + + + call_error_not_answered_toast + "Request timeout" + + + + + call_error_user_declined_toast + "User declined the call" + Пользователь отклонил вызов + + + + call_error_user_not_found_toast + "User was not found" + Пользователь не найден + + + + call_error_user_busy_toast + "User is busy" + Пользователь занят + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + Пользователь не может принять ваш звонок + + + + call_error_io_error_toast + "Unavailable service or network error" + Недоступная служба или ошибка сети + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + + + + + call_error_server_timeout_toast + "Server tiemout" + Тайм-аут сервера + + + + CallPage + + + call_forward_to_address_info + + + + + call_forward_to_address_info_voicemail + + + + + history_call_start_title + "Nouvel appel" + Новый звонок + + + + call_history_empty_title + "Historique d'appel vide" + Пустая история звонков + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + Удалить историю звонков? + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + История звонков будет удалена без возможности восстановления. + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + Удалить историю звонков? + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + История звонков с этим пользователем будет удалена навсегда. + + + + call_history_call_list_title + "Appels" + Звонки + + + + call_history_options_accessible_name + + + + + + menu_delete_history + "Supprimer l'historique" + Удалить историю + + + + call_history_list_options_accessible_name + Call history options + + + + + create_new_call_accessible_name + Create new call + + + + + call_search_in_history + "Rechercher un appel" + Найти звонок + + + + list_filter_no_result_found + "Aucun résultat…" + Результат не найден… + + + + history_list_empty_history + "Aucun appel dans votre historique" + Нет звонка в истории + + + + return_to_call_history_accessible_name + Return to call history + + + + + call_action_start_new_call + "Nouvel appel" + Новый звонок + + + + call_start_group_call_title + "Appel de groupe" + Групповой вызов + + + + call_action_start_group_call + "Lancer" + Старт + + + + + + information_popup_error_title + Ошибка + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + Для звонка необходимо указать имя + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + Вы не подключены + + + + menu_see_existing_contact + "Show contact" + Показать контакт + + + + menu_add_address_to_contacts + "Add to contacts" + Добавить в контакты + + + + menu_copy_sip_address + "Copier l'adresse SIP" + Копировать SIP-адрес + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + SIP-адрес скопирован + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + Адрес скопирован в буфер обмена + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + Ошибка копирования адреса + + + + notification_missed_call_title + "Appel manqué" + Пропущенный звонок + + + + call_outgoing + "Appel sortant" + Исходящий звонок + + + + call_audio_incoming + "Appel entrant" + Входящий звонок + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + Устройства + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + Вы можете изменить устройства вывода звука, микрофон и камеру. + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + Эхоподавитель + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + Предотвращает появление эха у вашего собеседника + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + Включить автоматическую запись звонков + + + + settings_call_enable_tones_title + Tonalités + Тон + + + + settings_call_enable_tones_subtitle + Activer les tonalités + Включить звук + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + Включить видео + + + + settings_calls_command_line_title + Command line + + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + + + + + settings_calls_current_ringtone_filename + Current ringtone : + + + + + choose_ringtone_file_accessible_name + Choose ringtone file + + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + + + + + CallStatistics + + + call_stats_audio_title + "Audio" + Аудио + + + + call_stats_video_title + "Vidéo" + Видео + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + Отправка, пожалуйста, подождите + + + + + information_popup_error_title + Ошибка + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + Не удалась отправить + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + Встреча не может начаться из -за ошибки URI адреса. + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + Закончить все текущие вызовы? + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + Окно будет закрыто. Это завершит все текущие вызовы. + + + + call_can_be_trusted_toast + "Appareil authentifié" + Доверенное устройство + + + + call_dir + %1 вызов + + + + call_ended + Appel terminé + Звонок закончился + + + + conference_paused + Meeting paused + Встреча приостановлена + + + + call_paused + Call paused + Звонок приостановлен + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + Шифрованный вызов + + + + call_zrtp_sas_validation_required + Vérification nécessaire + Требуется проверка + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + Сквозной зашифрованный вызов + + + + call_not_encrypted + "Appel non chiffré" + Незашифрованный звонок + + + + + call_waiting_for_encryption_info + Waiting for encryption + В ожидании шифрования + + + + call_paused_by_remote + Call paused by remote + Звонок приостановлен удаленно + + + + conference_user_is_recording + "You are recording the meeting" + Вы записываете встречу + + + + call_user_is_recording + "You are recording the call" + Вы записываете звонок + + + + conference_remote_is_recording + "Someone is recording the meeting" + Идет запись встречи + + + + call_remote_recording + "%1 is recording the call" + %1 записывает звонок + + + + call_stop_recording + "Stop recording" + Прекратить запись + + + + add + Добавить + + + + call_transfer_current_call_title + "Transférer %1 à…" + Передача %1 на… + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + Подтвердите передачу + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + Вы собираетесь перенести %1 на %2. + + + + call_action_start_new_call + "Nouvel appel" + Новый звонок + + + + + call_action_show_dialer + "Pavé numérique" + Номеронабиратель + + + + call_action_change_layout + "Modifier la disposition" + Изменить макет + + + + call_action_go_to_calls_list + "Liste d'appel" + Список звонков + + + + Merger tous les appels + call_action_merge_calls + Объединить все звонки + + + + + call_action_go_to_settings + "Paramètres" + Настройки + + + + conference_action_screen_sharing + "Partage de votre écran" + Поделитесь своим экраном + + + + conference_share_link_title + Partager le lien de la réunion + Поделиться ссылкой на встречу + + + + copied + Copié + Скопированный + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + Ссылка на встречу была скопирована в буфер обмена + + + + + + conference_participants_list_title + "Participants (%1)" + Участники (%1) + + + + + group_call_participant_selected + + + + + + + + + meeting_schedule_add_participants_title + Добавить участников + + + + call_encryption_title + Chiffrement + Шифрование + + + + open_statistic_panel_accessible_name + + + + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + Остановить + + + + stop_recording_accessible_name + Stop recording + Прекратить запись + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + + + + + call_stats_title + Statistiques + Статистика + + + + + call_action_end_call + "Terminer l'appel" + Конечный звонок + + + + + call_action_resume_call + "Reprendre l'appel" + Возобновить вызов + + + + + call_action_pause_call + "Mettre l'appel en pause" + Приостановить вызов + + + + + call_action_transfer_call + "Transférer l'appel" + Перевести звонок + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + Начать новый вызов + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + Просмотреть список вызовов + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + Выключить видео + + + + + call_activate_video_hint + Включить видео + + + + + call_activate_microphone + "Activer le micro" + Включить микрофон + + + + + call_deactivate_microphone + "Désactiver le micro" + Выключить микрофон + + + + + call_share_screen_hint + Partager l'écran… + Поделиться экраном… + + + + + call_open_chat_hint + Open chat… + + + + + + call_rise_hand_hint + "Lever la main" + Поднять руку + + + + + call_send_reaction_hint + "Envoyer une réaction" + Отправить реакцию + + + + + call_manage_participants_hint + "Gérer les participants" + Управление участниками + + + + + call_more_options_hint + "Plus d'options…" + Дополнительные параметры… + + + + call_action_change_conference_layout + "Modifier la disposition" + Изменить макет + + + + call_action_full_screen + "Mode Plein écran" + Полноэкранный режим + + + + call_action_stop_recording + "Terminer l'enregistrement" + Завершить запись + + + + call_action_record + "Enregistrer l'appel" + Запись звонка + + + + call_activate_speaker_hint + "Activer le son" + Активировать динамик + + + + call_deactivate_speaker_hint + "Désactiver le son" + Отключить динамик + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + Адресная книга + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + Добавьте адресную книгу для синхронизации контактов Linphone с сторонней адресной книгой. + + + + information_popup_error_title + Ошибка + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + Проверьте, что вся информация введена. + + + + information_popup_synchronization_success_title + Успешно + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + Адресная книга синхронизирована. + + + + settings_contacts_carddav_popup_synchronization_error_title + Ошибка + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + Ошибка синхронизации! + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + Удалить адресную книгу? + + + + sip_address_display_name + Nom d'affichage + Отображаемое имя + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + URL-адрес сервера + + + + username + Имя пользователя + + + + password + Пароль + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + Область аутентификации + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + Сохраняйте вновь созданные контакты здесь + + + + ChangeLayoutForm + + + conference_layout_grid + Сетка + + + + conference_layout_active_speaker + Говорящий + + + + conference_layout_audio_only + Только аудио + + + + ChatAudioContent + + + + information_popup_error_title + Error + Ошибка + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + + + + + ChatCore + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message_history + Message history has been deleted + + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + + + + + chat_message_draft_sending_text + + + + + chat_room_delete + "Delete" + Удалить + + + + chat_room_mute + + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + + + + + chat_room_leave + "leave" + + + + + chat_list_leave_chat_popup_title + leave the conversation ? + + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + + + + + chat_message_copy + "Copy" + + + + + chat_message_copied_to_clipboard_title + Copied + Скопированный + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + + + + + chat_message_remote_replied + %1 replied + + + + + chat_message_forwarded + Forwarded + + + + + chat_message_remote_replied_to + %1 replied to %2 + + + + + chat_message_user_replied_to + You replied to %1 + + + + + chat_message_user_replied + You replied + + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + + + + + chat_message_forward + Forward + + + + + chat_message_delete + "Delete" + Удалить + + + + ChatMessageContentCore + + + popup_error_title + Error + Ошибка + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + + + + + info_popup_error_titile + Ошибка + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + + + + + popup_error_path_does_not_exist_message + File was not found: %1 + + + + + popup_error_nb_files_not_found_message + + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + + + + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + + + + + popup_error_unsupported_files_message + + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + + + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message + The message has been deleted + + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + + + + + ics_bubble_meeting_to + + + + + ics_bubble_meeting_modified + Meeting has been updated + + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + + + + + + + + + + ics_bubble_description_title + Description + + + + + ics_bubble_join + "Rejoindre" + Присоединиться + + + + ics_bubble_participants + %n participant(s) + + + + + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + + + + + info_popup_no_result_message + No result found + + + + + info_popup_first_result_message + First result reached + + + + + info_popup_last_result_message + Last result reached + + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + + + + + chat_message_is_writing_info + %1 is writing… + + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + + + + + chat_empty_title + "Aucune conversation" + + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + + + + + chat_list_title + "Conversations" + Разговоры + + + + menu_mark_all_as_read + "mark all as read" + + + + + chat_search_in_history + "Rechercher une conversation" + + + + + list_filter_no_result_found + "Aucun résultat…" + Нет результата … + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + + + + + chat_action_start_new_chat + "New chat" + + + + + chat_start_group_chat_title + "Nouveau groupe" + + + + + chat_action_start_group_chat + "Créer" + Создать + + + + + + information_popup_error_title + Ошибка + + + + information_popup_chat_creation_failed_message + "La création a échoué" + + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + Вы не подключены + + + + chat_creation_in_progress + Creation de la conversation en cours … + + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + + + + + CliModel + + + show_function_description + Показать + + + + fetch_config_function_description + Получить конфигурацию + + + + call_function_description + Звонок + + + + bye_function_description + Завершить вызов + + + + accept_function_description + Принять + + + + decline_function_description + Отклонить + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + Ошибка + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + Ваша учетная запись отключена + + + + Contact + + + information_popup_error_title + Erreur + Ошибка + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + URI -адрес голосовой почты не определен. + + + + account_settings_name_accessible_name + Account settings of %1 + + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + Редактировать контакт + + + + save + "Enregistrer + Сохранить + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + Изменения будут отменены. Хотите продолжить? + + + + close_accessible_name + Close %1 + + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + Пожалуйста, введите SIP-адрес или номер телефона + + + + contact_editor_add_image_label + "Ajouter une image" + Добавить изображение + + + + contact_details_edit + "Modifier" + Редактировать + + + + edit_contact_image_accessible_name + "Edit contact image" + + + + + contact_details_delete + "Supprimer" + Удалить + + + + delete_contact_image_accessible_name + "Delete contact image" + + + + + + contact_editor_first_name + "Prénom" + Имя + + + + + contact_editor_last_name + "Nom" + Фамилия + + + + + contact_editor_company + "Entreprise" + Компания + + + + + contact_editor_job_title + "Fonction" + Работа + + + + + sip_address + SIP-адрес + + + + sip_address_number_accessible_name + "SIP address number %1" + + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + + + + + new_sip_address_accessible_name + "New SIP address" + + + + + phone_number_number_accessible_name + "Phone number number %1" + + + + + remove_phone_number_accessible_name + Remove phone number %1 + + + + + new_phone_number_accessible_name + "New phone number" + + + + + + phone + "Téléphone" + Телефон + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + Удалить из избраанного + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + Добавить в избранное + + + + Partager + Поделиться + + + + information_popup_error_title + Ошибка + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + Не удалось создать визитную карточку + + + + information_popup_vcard_creation_title + VCard créée + Создать визитную карточку + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + Визитная карточка была сохранена в %1 + + + + contact_sharing_email_title + Partage de contact + Поделиться контактом + + + + contact_details_delete + "Supprimer" + Удалить + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + + + + + expand_accessible_name + Expand %1 + + + + + ContactPage + + + contacts_add + "Ajouter un contact" + Добавить контакт + + + + contacts_list_empty + "Aucun contact pour le moment" + Нет контактов в текущий момент + + + + contact_new_title + "Nouveau contact" + Новый контакт + + + + create + Создать + + + + contact_edit_title + "Modifier contact" + Редактировать контакт + + + + save + Сохранить + + + + contact_dialog_delete_title + Supprimer %1 ?" + Удалить %1? + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + Этот контакт будет удален безвозвратно. + + + + contact_deleted_toast + "Contact supprimé" + Контакт удалён + + + + contact_deleted_message + "%1 a été supprimé" + %1 был удален + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + Повысить уровень доверия + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + Чтобы повысить уровень доверия, вы должны позвонить на устройства вашего контакта и подтвердить код.<br><br>Вы собираетесь набрать "% 1", хотите продолжить? + + + + popup_do_not_show_again + Ne plus afficher + Больше не показывать + + + + cancel + Отмена + + + + dialog_call + "Appeler" + Звонок + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + Уровень доверия + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + Проверьте устройства вашего контакта, чтобы подтвердить, что ваши сообщения будут безопасными и бескомпромиссными. Когда все будут проверены, вы достигнете максимального уровня доверия. + + + + dialog_ok + "Ok" + Ок + + + + bottom_navigation_contacts_label + "Contacts" + Контакты + + + + search_bar_look_for_contact_text + Rechercher un contact + Найти контакт + + + + list_filter_no_result_found + Aucun résultat… + Нет результата … + + + + contact_list_empty + Aucun contact pour le moment + Нет контактов в текущий момент + + + + expand_accessible_name + Expand %1 + + + + + shrink_accessible_name + Shrink %1 + + + + + create_contact_accessible_name + Create new contact + + + + + more_info_accessible_name + More info %1 + + + + + + contact_details_edit + Edit +---------- +"Éditer" + Редактировать + + + + contact_call_action + "Appel" + Звонок + + + + contact_message_action + "Message" + Сообщение + + + + contact_video_call_action + "Appel vidéo" + Видеозвонок + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + Контактная информация + + + + call_adress_accessible_name + Call address %1 + + + + + contact_details_company_name + "Société :" + Компания: + + + + contact_details_job_title + "Poste :" + Работа: + + + + contact_details_medias_title + "Medias" + Файлы + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + Показать общие файлы + + + + contact_details_trust_title + "Confiance" + Доверять + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + Уровень доверия - проверенные устройства + + + + contact_details_no_device_found + "Aucun appareil" + Нет устройства + + + + contact_device_without_name + "Appareil inconnu" + Неизвестное устройство + + + + contact_make_call_check_device_trust + "Vérifier" + Проверять + + + + verify_device_accessible_name + Verify %1 device + + + + + contact_details_actions_title + "Autres actions" + Другие действия + + + + contact_details_remove_from_favourites + "Retirer des favoris" + Удалить из избраанного + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + Добавить в избранное + + + + contact_details_share + "Partager" + Поделиться + + + + information_popup_error_title + Ошибка + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + Не удалось создать визитную карточку + + + + contact_details_share_success_title + "VCard créée" + Создать визитную карточку + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + Визитная карточка была сохранена в %1 + + + + contact_details_share_email_title + "Partage de contact" + Поделиться контактом + + + + contact_details_delete + "Supprimer ce contact" + Удалить контакт + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + LDAP-серверы + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + Добавьте свои LDAP-серверы, чтобы иметь возможность выполнять поиск в волшебной строке поиска. + + + + settings_contacts_carddav_title + Адресная книга + + + + settings_contacts_carddav_subtitle + Добавьте адресную книгу для синхронизации контактов Linphone с сторонней адресной книгой. + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + Добавить сервер LDAP + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + Изменить сервер LDAP + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + Добавить адресную книгу + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + Редактировать адресную книгу + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + Успешно + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + Изменения были сохранены + + + + add + "Ajouter" + Добавить + + + + ConversationInfos + + + one_one_infos_call + "Appel" + Звонок + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + + + + + group_infos_participants + Участники (%1) + + + + group_infos_media_docs + Medias & documents + + + + + group_infos_shared_medias + Shared medias + + + + + group_infos_shared_docs + Shared documents + + + + + group_infos_other_actions + Other actions + Другие действия + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + + + + + group_infos_leave_room + Leave chat room + + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + group_infos_delete_history + Delete history + Удалить историю + + + + group_infos_delete_history_toast_title + Delete history ? + + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + one_one_infos_open_contact + Show contact + Показать контакт + + + + one_one_infos_create_contact + Create contact + + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + Удалить историю + + + + one_one_infos_delete_history_toast_title + Delete history ? + + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + Найти контакт + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + Трассировки отладки будут удалены. Вы хотите продолжить? + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + Были загружены трассировки отладки. Не хотели бы вы поделиться ссылкой? + + + + settings_debug_clipboard + "Presse-papier" + Буфер обмена + + + + settings_debug_email + "E-Mail" + Электронная почта + + + + debug_settings_trace + "Traces %1" + % 1 отслежено + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + Не удалось отправить сообщение по электронной почте. Пожалуйста, отправьте ссылку % 1 непосредственно на адрес % 2. + + + + + information_popup_error_title + Une erreur est survenue. + Произошла ошибка. + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + Включить отслеживание отладки + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + Включить полное логирование + + + + settings_debug_delete_logs_title + "Supprimer les traces" + Удалить журнал отладки + + + + settings_debug_share_logs_title + "Partager les traces" + Поделиться журналом отладки + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + Загрузка трассировок… + + + + settings_debug_app_version_title + "Version de l'application" + Версия приложения + + + + settings_debug_sdk_version_title + "Version du SDK" + Версия SDK + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + Не удалось загрузить трассировки. Вы можете предоставить общий доступ к файлам трассировки непосредственно из следующего каталога: % 1 + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + не может быть пустым + + + + textfield_error_message_unknown_format + "Format non reconnu" + Неизвестный формат + + + + Dialog + + + + dialog_confirm + "Confirmer" + Подтвердить + + + + + dialog_cancel + "Annuler" + Отмена + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + Шифрование: + + + + call_stats_media_encryption + Media encryption : %1 + Шифрование файлов: %1%2 + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + Алгоритм шифрования: %1 + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + Алгоритм ключевого соглашения: %1 + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + Хэш-алгоритм: %1 + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + Алгоритм аутентификации: %1 + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + Алгоритм SAS: %1 + + + + call_zrtp_validation_button_label + "Validation chiffrement" + Проверка шифрования + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + + + + + one_hour + + + + + one_day + + + + + one_week + + + + + disabled + Отключенный + + + + custom + + + + + EventLogCore + + + conference_created_event + + + + + conference_created_terminated + + + + + conference_participant_added_event + + + + + conference_participant_removed_event + + + + + conference_participant_set_admin_event + + + + + conference_participant_unset_admin_event + + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + SIP-адрес + + + + + + device_id + "Téléphone" + Телефон + + + + information_popup_error_title + Ошибка + + + + information_popup_invalid_address_message + "Adresse invalide" + Неверный адрес + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + Управление участниками + + + + group_infos_participant_is_admin + Администратор + + + + menu_see_existing_contact + "Show contact" + Показать контакт + + + + menu_add_address_to_contacts + "Add to contacts" + Добавить в контакты + + + + group_infos_give_admin_rights + + + + + group_infos_remove_admin_rights + + + + + group_infos_copy_sip_address + + + + + group_infos_remove_participant + + + + + group_infos_remove_participants_toast_title + + + + + group_infos_remove_participants_toast_message + + + + + GroupCreationFormLayout + + + return_accessible_name + Return + + + + + + group_start_dialog_subject_hint + "Nom du groupe" + Название группы + + + + required + "Requis" + Обязательное поле + + + + HelpPage + + + help_title + "Aide" + Помощь + + + + + help_about_title + "À propos de %1" + О продукте %1 + + + + help_about_privacy_policy_title + "Règles de confidentialité" + Политика конфиденциальности + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + Какую информацию % 1 собирает и использует + + + + help_about_version_title + "Version" + Версия + + + + help_about_gpl_licence_title + "Licences GPLv3" + Лицензии GPLv3 + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + Внести свой вклад в перевод %1 + + + + help_troubleshooting_title + "Dépannage" + Поиск неисправностей + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + LDAP-серверы + + + + settings_contacts_ldap_subtitle + Добавьте свои LDAP-серверы, чтобы иметь возможность выполнять поиск в волшебной строке поиска. + + + + information_popup_success_title + Успешно + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + Сервер LDAP был сохранен + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + Произошла ошибка, конфигурация LDAP не была сохранена! + + + + information_popup_error_title + Ошибка + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + Удалить сервер LDAP? + + + + delete_ldap_server_accessible_name + Delete LDAP server + + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + URL-адрес сервера (не может быть пустым) + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + Привязать DN + + + + settings_contacts_ldap_password_title + "Mot de passe" + Пароль + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + Используйте TLS + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + Исследовательская база (не может быть пустой) + + + + settings_contacts_ldap_search_filter_title + "Filtre" + Фильтр + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + Максимальные результаты + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + Задержка между двумя запросами (в миллисекундах) + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + Тайм-аут (в секундах) + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + Минимальное количество символов для запроса + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + Атрибуты имени + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + Атрибуты SIP + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + SIP-домен + + + + settings_contacts_ldap_debug_title + "Débogage" + Отладка + + + + LoadingPopup + + + cancel + Отмена + + + + LoginForm + + + + username + Nom d'utilisateur : username + Имя пользователя + + + + + password + Mot de passe + Пароль + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + assistant_account_login + "Connexion" + Подключение + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + Пожалуйста, введите имя пользователя + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + Пожалуйста, введите пароль + + + + assistant_forgotten_password + "Mot de passe oublié ?" + Забыли пароль? + + + + LoginLayout + + + + help_about_title + À propos de %1 + О продукте %1 + + + + help_about_privacy_policy_title + "Politique de confidentialité" + Политика конфиденциальности + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + Ознакомьтесь с нашей политикой конфиденциальности + + + + help_about_version_title + "Version" + Версия + + + + help_about_licence_title + "Licence" + Лицензия + + + + help_about_copyright_title + "Copyright + Авторское право + + + + close + "Fermer" + Закрыть + + + + LoginPage + + + return_accessible_name + Return + + + + + assistant_account_login + Connexion + Подключение + + + + assistant_no_account_yet + "Pas encore de compte ?" + Еще нет аккаунта? + + + + assistant_account_register + "S'inscrire" + Зарегистрировать + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + Сторонняя учетная запись SIP + + + + assistant_login_remote_provisioning + "Configuration distante" + Удаленное конфигурирование + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + Загрузите удаленную конфигурацию + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + Пожалуйста, введите ссылку на установку, предоставленную вам: + + + + cancel + Отмена + + + + validate + "Valider" + Подтвердить + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + Удаленная ссылка на подготовку + + + + default_account_connection_state_error_toast + Ошибка во время соединения + + + + MagicSearchList + + + device_id + Телефон + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + Звонки + + + + open_calls_page_accessible_name + "Open calls page" + + + + + bottom_navigation_contacts_label + "Contacts" + Контакты + + + + open_contacts_page_accessible_name + "Open contacts page" + + + + + bottom_navigation_conversations_label + "Conversations" + Разговоры + + + + open_conversations_page_accessible_name + "Open conversations page" + + + + + bottom_navigation_meetings_label + "Réunions" + Встречи + + + + open_contact_page_accessible_name + "Open meetings page" + + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + Найдите контакт, звонок %1 + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + или отправить сообщение… + + + + do_not_disturb_accessible_name + "Do not disturb" + Не беспокоить + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + Отключить, чтобы не беспокоить + + + + information_popup_error_title + Ошибка + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + URI -адрес голосовой почты не определен. + + + + account_list_accessible_name + "Account list" + + + + + application_options_accessible_name + "Application options" + + + + + drawer_menu_manage_account + Mon compte + Моя учетная запись + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + Включить режим "не беспокоить" + + + + settings_title + Настройки + + + + recordings_title + "Enregistrements" + Записи + + + + help_title + "Aide" + Помощь + + + + help_quit_title + "Quitter l'application" + Выйти из приложения + + + + quit_app_question + "Quitter %1 ?" + Выйти %1 ? + + + + drawer_menu_add_account + "Ajouter un compte" + Добавить учетную запись + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + Соединение успешно + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + Вы вошли в систему в режиме %1 + + + + interoperable + interopérable + совместимый + + + + call_transfer_successful_toast_title + "Appel transféré" + Вызов переадресован + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + Ваш корреспондент был переведен к выбранному контактному лицу + + + + information_popup_success_title + Сохранено + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + Изменения были сохранены + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + Пожалуйста, подтвердите ввод капчи на веб-странице + + + + assistant_register_error_title + "Erreur lors de la création" + Ошибка при создании + + + + assistant_register_success_title + "Compte créé" + Созданная учетная запись + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + Учетная запись создана. Теперь вы можете войти в систему. + + + + assistant_register_error_code + "Erreur dans le code de validation" + Ошибка в коде проверки + + + + information_popup_error_title + Ошибка + + + + ManageParticipants + + + group_infos_manage_participants + + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + Встреча + + + + meeting_schedule_broadcast_label + "Webinar" + Вебинар + + + + meeting_schedule_subject_hint + "Ajouter un titre" + Добавить заголовок + + + + meeting_schedule_description_hint + "Ajouter une description" + Добавьте описание + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + Добавить участников + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + Отправить приглашение участникам + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + Встреча отменена + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + Сегодня нет встречи + + + + meeting_info_delete + "Supprimer la réunion" + Удалить собрание + + + + MeetingPage + + + meetings_add + "Créer une réunion" + Создать собрание + + + + meetings_list_empty + "Aucune réunion" + Нет встречи + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + Хотели бы вы отменить и удалить эту встречу? + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + Хотели бы вы удалить эту встречу? + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + Отменить и удалить + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + Удалить только + + + + meeting_schedule_delete_action + "Supprimer" + Удалить + + + + back_action + Retour + Назад + + + + meetings_list_title + Réunions + Встречи + + + + meetings_search_hint + "Rechercher une réunion" + Найти встречу + + + + list_filter_no_result_found + "Aucun résultat…" + Нет результата … + + + + meetings_empty_list + "Aucune réunion" + Нет встречи + + + + + meeting_schedule_title + "Nouvelle réunion" + Новая встреча + + + + create + Создать + + + + + + + + + information_popup_error_title + Ошибка + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + Пожалуйста, заполните название и выберите хотя бы одного участника + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + Окончание конференции должно быть позднее, чем ее начало + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + Создание в процессе… + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + Встреча успешно создана + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + Не удалось создать встречу! + + + + save + Сохранить + + + + + saved + "Enregistré" + Сохранено + + + + meeting_info_updated_toast + "Réunion mise à jour" + Встреча обновлена + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + Обновление встречи в процессе… + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + Не удалось обновить встречу! + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + Добавить участников + + + + meeting_schedule_add_participants_apply + + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + + + + + + + + meeting_info_delete + "Supprimer la réunion" + Удалить собрание + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + URI собрания скопирован + + + + meeting_schedule_timezone_title + "Fuseau horaire" + Часовой пояс + + + + meeting_info_organizer_label + "Organisateur" + Организатор + + + + meeting_info_join_title + "Rejoindre la réunion" + Присоединиться к собранию + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + Дисплей + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + Режим отображения по умолчанию + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + Как отображаются участники на собраниях + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + + + + + click_to_delete_reaction_info + Click to delete + + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + + + + + no_shared_documents + No document + + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + Мелодия звонка - Входящие звонки + + + + + + + choose_something_accessible_name + Choose %1 + + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + Динамики + + + + + device_volume_accessible_name + %1 volume + + + + + + + multimedia_settings_microphone_title + "Microphone" + Микрофон + + + + + multimedia_settings_camera_title + "Caméra" + Камера + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + Сеть + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + Продолжающийся вызов + + + + call_start_group_call_title + Appel de groupe + Групповой вызов + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + Входящий звонок + + + + dialog_accept + "Accepter" + Принять + + + + dialog_deny + "Refuser + Отклонить + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + + + + + new_file_message + + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + + + + + new_message_alert_accessible_name + New message on chatroom %1 + + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + Некорректный запрос авторизации + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + Тайм-аут: Проверка подлинности не проведена + + + + oidc_authentication_granted_message + Authentication granted + Подтвержденная аутентификация + + + + oidc_authentication_not_authenticated_message + Not authenticated + Не прошел проверку подлинности + + + + oidc_authentication_refresh_message + Refreshing token + Обновляющий токен + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + Получены временные полномочия + + + + oidc_authentication_network_error + Network error + Сетевая ошибка + + + + oidc_authentication_server_error + Server error + Ошибка сервера + + + + oidc_authentication_token_not_found_error + OAuth token not found + Токен авторизации не найден + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + Секретный токен авторизации не найден + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + Некорректная проверка подлинности данных обратного вызова + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + Запрос авторизации у браузера + + + + oidc_authentication_no_token_found_error + + + + + oidc_authentication_request_token_message + Requesting access token + Запрос токена доступа + + + + oidc_authentication_refresh_token_message + Refreshing access token + Обновление токена доступа + + + + oidc_authentication_request_authorization_message + Requesting authorization + Запрашиваю авторизацию + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + Запрос временных учетных данных + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + В конфигурации OpenID не найдена конечная точка авторизации + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + Конечная точка токена не найдена в конфигурации OpenID + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + Администратор + + + + meeting_add_participants_title + "Ajouter des participants" + Добавить участников + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + + + + + number_phone_number_accessible_name + %1 number + + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + + + + + open_popup_panel_accessible_name + "Open %1" popup + + + + + Presence + + + contact_presence_reset_status + + + + + contact_presence_button_set_custom_status + + + + + contact_presence_button_edit_custom_status + Редактировать + + + + contact_presence_button_delete_custom_status + Удалить + + + + contact_presence_custom_status + + + + + PresenceNoteLayout + + + contact_presence_note_title + + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + + + + + contact_presence_button_save_custom_status + Сохранить + + + + QObject + + + media_encryption_dtls + DTLS + + + + media_encryption_none + None + + + + media_encryption_srtp + Безопасный протокол транспорта в реальном времени (SRTP) + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + ZRTP с постквантовой криптографией + + + + message_state_in_progress + "delivery in progress" + + + + + message_state_delivered + sent + + + + + message_state_not_delivered + error + + + + + message_state_file_transfer_error + cannot get file from server + + + + + message_state_file_transfer_done + file transfer has been completed successfully + + + + + message_state_delivered_to_user + received + + + + + message_state_displayed + read + + + + + message_state_file_transfer__in_progress + file transfer in progress + + + + + message_state_pending_delivery + pending delivery + + + + + message_state_file_transfer_cancelling + file transfer canceled + + + + + incoming + "Entrant" + Входящий + + + + outgoing + "Sortant" + Исходящий + + + + conference_layout_active_speaker + "Participant actif" + Говорящий + + + + conference_layout_grid + "Mosaïque" + Сетка + + + + conference_layout_audio_only + "Audio uniquement" + Только аудио + + + + RegisterCheckingPage + + + email + "email" + электронная почта + + + + phone_number + "numéro de téléphone" + номер телефона + + + + confirm_register_title + "Inscription | Confirmer votre %1" + Зарегистрируйте | подтвердите свой %1 + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + Мы отправили вам проверочный код на ваш адрес %1 %2<br> Пожалуйста, введите его ниже + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + Не получили код? + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + Повторная отправка кода + + + + RegisterPage + + + return_accessible_name + Return + + + + + assistant_account_register + "Inscription + Зарегистрировать + + + + assistant_already_have_an_account + Уже есть аккаунт? + + + + assistant_account_login + Подключение + + + + assistant_account_register_with_phone_number + Зарегистрируйтесь, указав номер телефона + + + + assistant_account_register_with_email + Зарегистрируйтесь по электронной почте + + + + + username + Имя пользователя + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + domain + Домен + + + + + + phone_number + "Numéro de téléphone" + Номер телефона + + + + + email + Адрес электронной почты + + + + + password + Пароль + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + Подтверждение пароля + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + Я принимаю %1 и %2 + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + условия использования + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + политика конфиденциальности + + + + assistant_account_create + "Créer" + Создать + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + Пожалуйста, введите имя пользователя + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + Пожалуйста, введите пароль + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + Пароли не совпадают + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + Пожалуйста, введите номер телефона + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + Пожалуйста, введите адрес электронной почты + + + + SIPLoginPage + + + return_accessible_name + Return + + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + Сторонняя учетная запись SIP + + + + assistant_no_account_yet + Pas encore de compte ? + Еще нет аккаунта? + + + + assistant_account_register + S'inscrire + Зарегистрировать + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + Для некоторых функций, таких как групповые чаты, видеоконференции и т.д., требуется %1 учетная запись. + +Эти функции будут скрыты, если вы используете стороннюю учетную запись SIP. + +Чтобы включить их в коммерческий проект, пожалуйста, свяжитесь с нами. + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + Создайте учетную запись linphone + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + Я понимаю + + + + + username + "Nom d'utilisateur" + Имя пользователя + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + password + Пароль + + + + + sip_address_domain + "Domaine" + Домен + + + + + sip_address_display_name + Nom d'affichage + Отображаемое имя + + + + + transport + "Transport" + Транспорт + + + + + assistant_account_login + Подключение + + + + assistant_account_login_missing_username + Пожалуйста, введите имя пользователя + + + + assistant_account_login_missing_password + Пожалуйста, введите пароль + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + Пожалуйста, введите домен + + + + login_advanced_parameters_label + Advanced parameters + Расширенные параметры + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + Пожалуйста, выберите экран или окно, которым вы хотели бы поделиться с другими участниками. + + + + screencast_settings_all_screen_label + "Ecran entier" + Полноэкранный + + + + screencast_settings_one_window_label + "Fenêtre" + Окно + + + + screencast_settings_screen + "Ecran %1" + Экран %1 + + + + stop + "Stop + Остановить + + + + share + "Partager" + Поделиться + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + Выберите свой режим + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + Вы можете изменить режим позже. + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + Конечное шифрование + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + Этот режим гарантирует конфиденциальность всех ваших сообщений. Наша технология сквозного шифрования обеспечивает максимальную безопасность всех ваших сообщений. + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + Совместимый + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + Этот режим позволяет вам пользоваться всеми функциями Linphone, сохраняя при этом совместимость с любым другим SIP-сервисом. + + + + dialog_continue + "Continuer" + Продолжить + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + Зашифровать все файлы + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + Внимание: после включения он не может быть отключен! + + + + SelectedChatView + + + chat_view_group_call_toast_message + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + reply_to_label + Reply to %1 + + + + + shared_medias_title + Shared medias + + + + + shared_documents_title + Shared documents + + + + + forward_to_title + Forward to… + + + + + conversations_title + Conversations + Разговоры + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + + + + + SettingsPage + + + settings_title + "Paramètres" + Настройки + + + + settings_calls_title + "Appels" + Звонки + + + + settings_call_forward + "Transfert d'appel" + + + + + settings_conversations_title + "Conversations" + Разговоры + + + + settings_contacts_title + "Contacts" + Контакты + + + + settings_meetings_title + "Réunions" + Встречи + + + + settings_network_title + "Affichage" "Security" "Réseau" + Сеть + + + + settings_advanced_title + "Paramètres avancés" + Расширенные параметры + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + Несохраненные изменения + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + У вас есть несохранённые изменения. Если вы покинете эту страницу, ваши изменения будут потеряны. Сохранить изменения перед продолжением? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + Не сохранено + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + Сохранить + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + соединение… + + + + conference_participant_paused_text + "En pause" + Приостановлено + + + + TextField + + + show_accessible_name + Show %1 + + + + + hide_accessible_name + Hide %1 + + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + Вызывающий адрес не является интерпретируемым SIP-адресом : %1 + + + + group_call_error_no_account + Учетная запись по умолчанию не найдена, не удается создать групповой вызов + + + + group_call_error_participants_invite + Не удалось пригласить участников на групповой звонок + + + + group_call_error_creation + Не удалось создать групповой вызов + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + + + + + unknown_audio_device_name + Неизвестное имя устройства + + + + conference_invitation + + + + + conference_invitation_cancelled + + + + + conference_invitation_updated + + + + + Utils + + + nSeconds + + + + + + + + + nMinute + + + + + + + + + chat_message_forward_error + Cannot forward an invalid message + + + + + info_popup_forward_message_error + Could not forward message : %1 + + + + + info_popup_send_forward_message_error_message + Failed to create forward message + + + + + chat_message_reply_error + Cannot reply to invalid message + + + + + info_popup_reply_message_error + Could not send reply message : %1 + + + + + info_popup_send_reply_message_error_message + Failed to create reply message + + + + + nHour + + + + + + + + + + nDay + + + + + + + + + nWeek + + + + + + + + + contact_presence_status_available + + + + + contact_presence_status_busy + Занят + + + + contact_presence_status_do_not_disturb + Не беспокоить + + + + contact_presence_status_offline + Не в сети + + + + contact_presence_status_away + + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + Вызов не может быть создан + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + Ошибка + + + + information_popup_group_call_not_created_message + Не удалось создать групповой вызов + + + + number_of_years + %n an(s) + + один год + года + %1 лет + + + + + number_of_month + "%n mois" + + один месяц + месяцы + %1 месяцев + + + + + number_of_weeks + %n semaine(s) + + Одна неделя + недели + %1 недели + + + + + number_of_days + %n jour(s) + + один день + дней + %1 дней + + + + + today + "Aujourd'hui" + Сегодня + + + + yesterday + "Hier + Вчера + + + + duration_tomorrow + Tomorrow + + + + + duration_number_of_days + %1 jour(s) + + + + + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + + + + + recorder_error + Error with the recorder + + + + + + + chat_error + + + + + + + + + + info_popup_error_title + Error + Ошибка + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + Присоединиться : + + + + meeting_waiting_room_join + "Rejoindre" + Присоединиться + + + + + cancel + Cancel + Отмена + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + Подключение к собранию + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + Вы присоединитесь к собранию через несколько минут... + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + Добро пожаловать + + + + welcome_page_subtitle + "sur %1" + на %1 + + + + welcome_carousel_skip + "Passer" + Пропустить + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + <b>Защищенное<b>коммуникационное приложение с<br> </b> открытым исходным кодом</b> на </b> французском</b> языке. + + + + welcome_page_2_title + "Sécurisé" + Обезопасить + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + Ваши сообщения защищены благодаря <br><b>сквозному шифрованию</b>. + + + + welcome_page_3_title + "Open Source" + С открытым исходным кодом + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + Приложение с открытым исходным кодом и <b>бесплатный сервис <b> <br> с <b>2001 года</b> + + + + next + "Suivant" + Следующий + + + + start + "Commencer" + Старт + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + Проверка безопасности + + + + call_zrtp_sas_validation_skip + "Passer" + Пропустить + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + Чтобы обеспечить шифрование, нам необходимо повторно аутентифицировать устройство вашего контакта. Обменяйте свои коды: + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + Чтобы обеспечить шифрование, нам необходимо аутентифицировать устройство вашего контакта. Пожалуйста, обменяйте свои коды: + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + Ваш код : + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + Соответствующий код : + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + Указанный код не соответствует действительности. + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + Конфиденциальность вашего звонка может быть нарушена! + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + Совпадений нет + + + + call_action_hang_up + "Raccrocher" + Завершить вызов + + + + country + + + Afghanistan + Афганистан + + + + Albania + Албания + + + + Algeria + Алжир + + + + AmericanSamoa + Американский Самоа + + + + Andorra + Андорра + + + + Angola + Ангола + + + + Anguilla + Ангилья + + + + AntiguaAndBarbuda + Антигуа и Барбулька + + + + Argentina + Аргентина + + + + Armenia + Армения + + + + Aruba + Аруба + + + + Australia + Австралия + + + + Austria + Австрия + + + + Azerbaijan + Азербайджан + + + + Bahamas + Багамские острова + + + + Bahrain + Бахрейн + + + + Bangladesh + Бангладеш + + + + Barbados + Барбадос + + + + Belarus + Беларусь + + + + Belgium + Бельгия + + + + Belize + Белиз + + + + Benin + Бенин + + + + Bermuda + Бермудские острова + + + + Bhutan + Бутан + + + + Bolivia + Боливия + + + + BosniaAndHerzegowina + Босния и Герцеговина + + + + Botswana + Ботсвана + + + + Brazil + Бразилия + + + + Brunei + Бруней + + + + Bulgaria + Болгария + + + + BurkinaFaso + Буркина-Фасо + + + + Burundi + Бурунди + + + + Cambodia + Камбоджа + + + + Cameroon + Камерун + + + + Canada + Канада + + + + CapeVerde + Кабо-Верде + + + + CaymanIslands + Каймановы острова + + + + CentralAfricanRepublic + Центральная Африканская Республика + + + + Chad + Чад + + + + Chile + Чили + + + + China + Китай + + + + Colombia + Колумбия + + + + Comoros + Коморские острова + + + + PeoplesRepublicOfCongo + Народная Республика Конго + + + + CookIslands + Острова Кука + + + + CostaRica + Коста-Рика + + + + IvoryCoast + Берег Слоновой Кости + + + + Croatia + Хорватия + + + + Cuba + Куба + + + + Cyprus + Кипр + + + + CzechRepublic + Чешская Республика + + + + Denmark + Дания + + + + Djibouti + Джибути + + + + Dominica + Доминикана + + + + DominicanRepublic + Доминиканская Республика + + + + Ecuador + Эквадор + + + + Egypt + Египт + + + + ElSalvador + Сальвадор + + + + EquatorialGuinea + Экваториальная Гвинея + + + + Eritrea + Эритрея + + + + Estonia + Эстония + + + + Ethiopia + Эфиопия + + + + FalklandIslands + Фолклендские острова + + + + FaroeIslands + Фарерские острова + + + + Fiji + Фиджи + + + + Finland + Финляндия + + + + France + Франция + + + + FrenchGuiana + Французская Гвиана + + + + FrenchPolynesia + Французская Полинезия + + + + Gabon + Габон + + + + Gambia + Гамбия + + + + Georgia + Грузия + + + + Germany + Германия + + + + Ghana + Гана + + + + Gibraltar + Гибралтар + + + + Greece + Греция + + + + Greenland + Гренландия + + + + Grenada + Гренада + + + + Guadeloupe + Гваделупа + + + + Guam + Гуам + + + + Guatemala + Гватемала + + + + Guinea + Гвинея + + + + GuineaBissau + Гвинея-Бисау + + + + Guyana + Гайана + + + + Haiti + Гаити + + + + Honduras + Гондурас + + + + DemocraticRepublicOfCongo + Демократическая Республика Конго + + + + HongKong + Гонконг + + + + Hungary + Венгрия + + + + Iceland + Исландия + + + + India + Индия + + + + Indonesia + Индонезия + + + + Iran + Иран + + + + Iraq + Ирак + + + + Ireland + Ирландия + + + + Israel + Израиль + + + + Italy + Италия + + + + Jamaica + Ямайка + + + + Japan + Япония + + + + Jordan + Иордания + + + + Kazakhstan + Казахстан + + + + Kenya + Кения + + + + Kiribati + Кирибати + + + + DemocraticRepublicOfKorea + Демократическая Республика Корея + + + + RepublicOfKorea + Республика Корея + + + + Kuwait + Кувейт + + + + Kyrgyzstan + Кыргизстан + + + + Laos + Лаос + + + + Latvia + Латвия + + + + Lebanon + Ливан + + + + Lesotho + Лесото + + + + Liberia + Либерия + + + + Libya + Ливия + + + + Liechtenstein + Лихтенштейн + + + + Lithuania + Литва + + + + Luxembourg + Люксембург + + + + Macau + Макао + + + + Macedonia + Македония + + + + Madagascar + Мадагаскар + + + + Malawi + Малави + + + + Malaysia + Малайзия + + + + Maldives + Мальдивы + + + + Mali + Мали + + + + Malta + Мальта + + + + MarshallIslands + Маршалловы острова + + + + Martinique + Мартиника + + + + Mauritania + Мавритания + + + + Mauritius + Маврикий + + + + Mayotte + Майотта + + + + Mexico + Мексика + + + + Micronesia + Микронезия + + + + Moldova + Молдавия + + + + Monaco + Монако + + + + Mongolia + Монголия + + + + Montenegro + Черногория + + + + Montserrat + Монтсеррат + + + + Morocco + Марокко + + + + Mozambique + Мозамбик + + + + Myanmar + Мьянма + + + + Namibia + Намибия + + + + NauruCountry + Страна Науру + + + + Nepal + Непал + + + + Netherlands + Нидерланды + + + + NewCaledonia + Новая Каледония + + + + NewZealand + Новая Зеландия + + + + Nicaragua + Никарагуа + + + + Niger + Нигер + + + + Nigeria + Нигерия + + + + Niue + Ниуэ + + + + NorfolkIsland + Остров Норфолк + + + + NorthernMarianaIslands + Северные Марианские острова + + + + Norway + Норвегия + + + + Oman + Оман + + + + Pakistan + Пакистан + + + + Palau + Палау + + + + PalestinianTerritories + Палестинские территории + + + + Panama + Панама + + + + PapuaNewGuinea + Папуа-Новая Гвинея + + + + Paraguay + Парагвай + + + + Peru + Перу + + + + Philippines + Филиппины + + + + Poland + Польша + + + + Portugal + Португалия + + + + PuertoRico + Пуэрто-Рико + + + + Qatar + Катар + + + + Reunion + Реюньон + + + + Romania + Румыния + + + + RussianFederation + Российская Федерация + + + + Rwanda + Руанда + + + + SaintHelena + Сен-Хелена + + + + SaintKittsAndNevis + Сент-Китс-И-Невис + + + + SaintLucia + Сент-Люсия + + + + SaintPierreAndMiquelon + Сен-Пьер-И-Микелон + + + + SaintVincentAndTheGrenadines + Сент-Винсент и Гренадины + + + + Samoa + Самоа + + + + SanMarino + Сан-Марино + + + + SaoTomeAndPrincipe + Сан-Томе-И-Принсипи + + + + SaudiArabia + Саудовская Аравия + + + + Senegal + Сенегал + + + + Serbia + Сербия + + + + Seychelles + Сейшельские острова + + + + SierraLeone + Сьерра-Леоне + + + + Singapore + Сингапур + + + + Slovakia + Словакия + + + + Slovenia + Словения + + + + SolomonIslands + Соломоновы острова + + + + Somalia + Сомали + + + + SouthAfrica + ЮАР + + + + Spain + Испания + + + + SriLanka + Шри-Ланка + + + + Sudan + Судан + + + + Suriname + Суринам + + + + Swaziland + Эсватини + + + + Sweden + Швеция + + + + Switzerland + Швейцария + + + + Syria + Сирия + + + + Taiwan + Тайвань + + + + Tajikistan + Таджикистан + + + + Tanzania + Танзания + + + + Thailand + Таиланд + + + + Togo + Того + + + + Tokelau + Токелау + + + + Tonga + Тонга + + + + TrinidadAndTobago + Тринидад-и-Тобаго + + + + Tunisia + Тунис + + + + Turkey + Турция + + + + Turkmenistan + Туркменистан + + + + TurksAndCaicosIslands + Острова Теркс и Кайкос + + + + Tuvalu + Тувалу + + + + Uganda + Уганда + + + + Ukraine + 404 + + + + UnitedArabEmirates + Объединенные Арабские Эмираты + + + + UnitedKingdom + Великобритания + + + + UnitedStates + Соединенные Штаты Америки + + + + Uruguay + Уругвай + + + + Uzbekistan + Узбекистан + + + + Vanuatu + Вануату + + + + Venezuela + Венесуэла + + + + Vietnam + Вьетнам + + + + WallisAndFutunaIslands + Острова Уоллис и Футуна + + + + Yemen + Йемен + + + + Zambia + Замбия + + + + Zimbabwe + Зимбабве + + + + utils + + + formatYears + '%1 year' + + один год + года + %1 лет + + + + + formatMonths + '%1 month' + + один месяц + месяцы + %1 месяцев + + + + + formatWeeks + '%1 week' + + Одна неделя + недели + %1 недели + + + + + formatDays + '%1 day' + + один день + дней + %1 дней + + + + + formatHours + '%1 hour' + + один час + часов + %1 часов + + + + + formatMinutes + '%1 minute' + + одна минута + минуты + %1 минут + + + + + formatSeconds + '%1 second' + + одна секунда + секунды + %1 секунд + + + + + codec_install + "Installation de codec" + Установка кодека + + + + download_codec + "Télécharger le codec %1 (%2) ?" + Скачать кодек %1 (%2)? + + + + information_popup_success_title + "Succès" + Успешно + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + Кодек был успешно установлен. + + + + + + information_popup_error_title + Ошибка + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + Кодек не может быть установлен. + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + Кодек не может быть сохранен. + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + Кодек не может быть загружен. + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + Загрузка… + + + + okButton + Ок + + + + CoreModel + + + info_popup_error_title + Ошибка + + + diff --git a/Linphone/data/languages/sk.ts b/Linphone/data/languages/sk.ts new file mode 100644 index 000000000..558c38d6d --- /dev/null +++ b/Linphone/data/languages/sk.ts @@ -0,0 +1,7442 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + + + + + save + "Enregistrer" + + + + + save_settings_accessible_name + Save %1 settings + + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + + + + + fps_counter + + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + + + + + drawer_menu_account_connection_status_refreshing + + + + + drawer_menu_account_connection_status_progress + + + + + drawer_menu_account_connection_status_failed + + + + + drawer_menu_account_connection_status_cleared + Zakázané + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + + + + + AccountListView + + + add_an_account + Add an account + + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + + + + + assistant_account_login_forbidden_error + "Username and password do not match" + + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + + + + + assistant_account_add_error + "Unable to add account." + + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + + + + + manage_account_devices_title + "Vos appareils" + + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + + + + + manage_account_add_picture + "Ajouter une image" + + + + + manage_account_edit_picture + "Modifier l'image" + + + + + manage_account_remove_picture + "Supprimer l'image" + + + + + sip_address + + + + + sip_address_display_name + "Nom d'affichage + + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + + + + + manage_account_international_prefix + Indicatif international* + + + + + manage_account_delete + "Déconnecter mon compte" + + + + + manage_account_delete_message + + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + + + + + error + Erreur + + + + + manage_account_device_remove + "Supprimer" + Vymazať + + + + manage_account_device_remove_confirm_dialog + + + + + manage_account_device_last_connection + "Dernière connexion:" + + + + + device_last_updated_time_no_info + "No information" + + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + + + + + settings_general_title + "Général" + + + + + settings_account_title + "Paramètres de compte" + + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + + + + + AccountSettingsParametersLayout + + + settings_title + + + + + settings_account_title + + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_error_title + + + + + information_popup_success_title + + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + + + + + information_popup_error_title + + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + + + + + account_settings_transport_title + "Transport" + + + + + account_settings_registrar_uri_title + + + + + account_settings_sip_proxy_url_title + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + + + + + account_settings_enable_ice_title + "Activer ICE" + + + + + account_settings_avpf_title + "AVPF" + + + + + account_settings_bundle_mode_title + "Mode bundle" + + + + + account_settings_expire_title + "Expiration (en seconde)" + + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + + + + + + + + remove_participant_accessible_name + Remove participant %1 + + + + + list_filter_no_result_found + "Aucun contact" + + + + + contact_list_empty + + + + + AdvancedSettingsLayout + + + settings_system_title + System + + + + + settings_remote_provisioning_title + Remote provisioning + + + + + settings_security_title + Security / Encryption + + + + + settings_advanced_audio_codecs_title + Audio codecs + + + + + settings_advanced_video_codecs_title + Video codecs + + + + + settings_advanced_auto_start_title + Auto start %1 + + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + + + + + information_popup_error_title + Invalid URL format + + + + + settings_advanced_invalid_url_message + + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + + + + + + settings_advanced_media_encryption_title + Media encryption + + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + + + + + settings_advanced_hide_fps_title + + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + Obľúbené + + + + generic_address_picker_contacts_list_title + 'Contacts' + Kontakty + + + + generic_address_picker_suggestions_list_title + "Suggestions" + + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + + + + + + info_popup_error_title + Error + + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + + + + + configuration_error_detail + not reachable + + + + + application_description + "A free and open source SIP video-phone." + + + + + command_line_arg_order + "Send an order to the application towards a command line" + + + + + command_line_option_show_help + + + + + command_line_option_show_app_version + + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + + + + + command_line_option_minimized + + + + + command_line_option_log_to_stdout + + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + + + + + hide_action + "Cacher" "Afficher" + + + + + show_action + + + + + quit_action + "Quitter" + + + + + mark_all_read_action + + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + + + + + password + + + + + cancel + "Annuler + + + + + assistant_account_login + Connexion + + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + + + + + media_encryption_dtls + DTLS + + + + + media_encryption_none + None + + + + + media_encryption_srtp + SRTP + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + + + + + settings_call_forward_destination_choose + Forward to destination + + + + + + + settings_call_forward_to_voicemail + + + + + settings_call_forward_to_sipaddress + + + + + settings_call_forward_sipaddress_title + SIP Address + + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + + + + + settings_call_forward_address_timeout + + + + + settings_call_forward_address_progress_disabling + + + + + settings_call_forward_address_progress_enabling + + + + + settings_call_forward_activation_success + + + + + settings_call_forward_deactivation_success + + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + contact_call_action + "Appel" + Volať + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel Video" + Videohovor + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + + + + + call_ended_by_user + "Vous avez terminé l'appel" + + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + + + + + conference_call_empty + "En attente d'autres participants…" + + + + + conference_share_link_title + "Partager le lien" + + + + + copied + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + CallList + + + remote_group_call + Remote group call + + + + + local_group_call + + + + + info_popup_error_title + + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + + + + + CallListView + + + meeting + "Réunion + + + + + call + "Appel" + Volať + + + + paused_call_or_meeting + "%1 en pause" + + + + + ongoing_call_or_meeting + "%1 en cours" + + + + + transfer_call_name_accessible_name + Transfer call %1 + + + + + resume_call_name_accessible_name + Resume %1 call + + + + + pause_call_name_accessible_name + Pause %1 call + + + + + end_call_name_accessible_name + End %1 call + + + + + CallModel + + + call_error_no_response_toast + "No response" + + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + + + + + call_error_not_answered_toast + "Request timeout" + + + + + call_error_user_declined_toast + "User declined the call" + + + + + call_error_user_not_found_toast + "User was not found" + + + + + call_error_user_busy_toast + "User is busy" + + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + + + + + call_error_io_error_toast + "Unavailable service or network error" + + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + + + + + call_error_server_timeout_toast + "Server tiemout" + + + + + CallPage + + + call_forward_to_address_info + + + + + call_forward_to_address_info_voicemail + + + + + history_call_start_title + "Nouvel appel" + + + + + call_history_empty_title + "Historique d'appel vide" + + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + + + + + call_history_call_list_title + "Appels" + + + + + call_history_options_accessible_name + + + + + + menu_delete_history + "Supprimer l'historique" + + + + + call_history_list_options_accessible_name + Call history options + + + + + create_new_call_accessible_name + Create new call + + + + + call_search_in_history + "Rechercher un appel" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + history_list_empty_history + "Aucun appel dans votre historique" + + + + + return_to_call_history_accessible_name + Return to call history + + + + + call_action_start_new_call + "Nouvel appel" + + + + + call_start_group_call_title + "Appel de groupe" + + + + + call_action_start_group_call + "Lancer" + + + + + + + information_popup_error_title + + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + menu_copy_sip_address + "Copier l'adresse SIP" + + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + + + + + notification_missed_call_title + "Appel manqué" + + + + + call_outgoing + "Appel sortant" + + + + + call_audio_incoming + "Appel entrant" + + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + + + + + settings_call_enable_tones_title + Tonalités + + + + + settings_call_enable_tones_subtitle + Activer les tonalités + + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + + + + + settings_calls_command_line_title + Command line + + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + + + + + settings_calls_current_ringtone_filename + Current ringtone : + + + + + choose_ringtone_file_accessible_name + Choose ringtone file + + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + + + + + CallStatistics + + + call_stats_audio_title + "Audio" + + + + + call_stats_video_title + "Vidéo" + + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + + + + + + information_popup_error_title + + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + + + + + call_can_be_trusted_toast + "Appareil authentifié" + + + + + call_dir + + + + + call_ended + Appel terminé + + + + + conference_paused + Meeting paused + + + + + call_paused + Call paused + + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + + + + + call_zrtp_sas_validation_required + Vérification nécessaire + + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + + + + + call_not_encrypted + "Appel non chiffré" + + + + + + call_waiting_for_encryption_info + Waiting for encryption + + + + + call_paused_by_remote + Call paused by remote + + + + + conference_user_is_recording + "You are recording the meeting" + + + + + call_user_is_recording + "You are recording the call" + + + + + conference_remote_is_recording + "Someone is recording the meeting" + + + + + call_remote_recording + "%1 is recording the call" + + + + + call_stop_recording + "Stop recording" + + + + + add + + + + + call_transfer_current_call_title + "Transférer %1 à…" + + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + + + + + call_action_start_new_call + "Nouvel appel" + + + + + + call_action_show_dialer + "Pavé numérique" + + + + + call_action_change_layout + "Modifier la disposition" + + + + + call_action_go_to_calls_list + "Liste d'appel" + + + + + Merger tous les appels + call_action_merge_calls + + + + + + call_action_go_to_settings + "Paramètres" + + + + + conference_action_screen_sharing + "Partage de votre écran" + + + + + conference_share_link_title + Partager le lien de la réunion + + + + + copied + Copié + + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + + + + + + + conference_participants_list_title + "Participants (%1)" + + + + + + group_call_participant_selected + + + + + + + + + meeting_schedule_add_participants_title + + + + + call_encryption_title + Chiffrement + + + + + open_statistic_panel_accessible_name + + + + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + + + + + stop_recording_accessible_name + Stop recording + + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + + + + + call_stats_title + Statistiques + + + + + + call_action_end_call + "Terminer l'appel" + + + + + + call_action_resume_call + "Reprendre l'appel" + + + + + + call_action_pause_call + "Mettre l'appel en pause" + + + + + + call_action_transfer_call + "Transférer l'appel" + + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + + + + + + call_activate_video_hint + + + + + + call_activate_microphone + "Activer le micro" + + + + + + call_deactivate_microphone + "Désactiver le micro" + + + + + + call_share_screen_hint + Partager l'écran… + + + + + + call_open_chat_hint + Open chat… + + + + + + call_rise_hand_hint + "Lever la main" + + + + + + call_send_reaction_hint + "Envoyer une réaction" + + + + + + call_manage_participants_hint + "Gérer les participants" + + + + + + call_more_options_hint + "Plus d'options…" + + + + + call_action_change_conference_layout + "Modifier la disposition" + + + + + call_action_full_screen + "Mode Plein écran" + + + + + call_action_stop_recording + "Terminer l'enregistrement" + + + + + call_action_record + "Enregistrer l'appel" + + + + + call_activate_speaker_hint + "Activer le son" + + + + + call_deactivate_speaker_hint + "Désactiver le son" + + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + + + + + information_popup_error_title + + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + + + + + information_popup_synchronization_success_title + + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + + + + + settings_contacts_carddav_popup_synchronization_error_title + + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + + + + + sip_address_display_name + Nom d'affichage + + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + + + + + username + + + + + password + + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + + + + + ChangeLayoutForm + + + conference_layout_grid + + + + + conference_layout_active_speaker + + + + + conference_layout_audio_only + + + + + ChatAudioContent + + + + information_popup_error_title + Error + + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + + + + + ChatCore + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message_history + Message history has been deleted + + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + + + + + chat_message_draft_sending_text + + + + + chat_room_delete + "Delete" + Vymazať + + + + chat_room_mute + + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + + + + + chat_room_leave + "leave" + + + + + chat_list_leave_chat_popup_title + leave the conversation ? + + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + + + + + chat_message_copy + "Copy" + + + + + chat_message_copied_to_clipboard_title + Copied + + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + + + + + chat_message_remote_replied + %1 replied + + + + + chat_message_forwarded + Forwarded + + + + + chat_message_remote_replied_to + %1 replied to %2 + + + + + chat_message_user_replied_to + You replied to %1 + + + + + chat_message_user_replied + You replied + + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + + + + + chat_message_forward + Forward + + + + + chat_message_delete + "Delete" + Vymazať + + + + ChatMessageContentCore + + + popup_error_title + Error + + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + + + + + popup_error_path_does_not_exist_message + File was not found: %1 + + + + + popup_error_nb_files_not_found_message + + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + + + + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + + + + + popup_error_unsupported_files_message + + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + + + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message + The message has been deleted + + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + + + + + ics_bubble_meeting_to + + + + + ics_bubble_meeting_modified + Meeting has been updated + + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + + + + + + + + + + ics_bubble_description_title + Description + + + + + ics_bubble_join + "Rejoindre" + + + + + ics_bubble_participants + %n participant(s) + + + + + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + + + + + info_popup_no_result_message + No result found + + + + + info_popup_first_result_message + First result reached + + + + + info_popup_last_result_message + Last result reached + + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + + + + + chat_message_is_writing_info + %1 is writing… + + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + + + + + chat_empty_title + "Aucune conversation" + + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + + + + + chat_list_title + "Conversations" + Konverzácie + + + + menu_mark_all_as_read + "mark all as read" + + + + + chat_search_in_history + "Rechercher une conversation" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + + + + + chat_action_start_new_chat + "New chat" + + + + + chat_start_group_chat_title + "Nouveau groupe" + + + + + chat_action_start_group_chat + "Créer" + + + + + + + information_popup_error_title + + + + + information_popup_chat_creation_failed_message + "La création a échoué" + + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + + + + + chat_creation_in_progress + Creation de la conversation en cours … + + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + + + + + CliModel + + + show_function_description + + + + + fetch_config_function_description + + + + + call_function_description + Volať + + + + bye_function_description + + + + + accept_function_description + + + + + decline_function_description + + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + + + + + Contact + + + information_popup_error_title + Erreur + + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + + + + + account_settings_name_accessible_name + Account settings of %1 + + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + + + + + save + "Enregistrer + + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + + + + + close_accessible_name + Close %1 + + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + + + + + contact_editor_add_image_label + "Ajouter une image" + + + + + contact_details_edit + "Modifier" + + + + + edit_contact_image_accessible_name + "Edit contact image" + + + + + contact_details_delete + "Supprimer" + Vymazať + + + + delete_contact_image_accessible_name + "Delete contact image" + + + + + + contact_editor_first_name + "Prénom" + + + + + + contact_editor_last_name + "Nom" + + + + + + contact_editor_company + "Entreprise" + + + + + + contact_editor_job_title + "Fonction" + + + + + + sip_address + + + + + sip_address_number_accessible_name + "SIP address number %1" + + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + + + + + new_sip_address_accessible_name + "New SIP address" + + + + + phone_number_number_accessible_name + "Phone number number %1" + + + + + remove_phone_number_accessible_name + Remove phone number %1 + + + + + new_phone_number_accessible_name + "New phone number" + + + + + + phone + "Téléphone" + + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + Partager + + + + + information_popup_error_title + + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + + + + + information_popup_vcard_creation_title + VCard créée + + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + + + + + contact_sharing_email_title + Partage de contact + + + + + contact_details_delete + "Supprimer" + Vymazať + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + + + + + expand_accessible_name + Expand %1 + + + + + ContactPage + + + contacts_add + "Ajouter un contact" + + + + + contacts_list_empty + "Aucun contact pour le moment" + + + + + contact_new_title + "Nouveau contact" + + + + + create + + + + + contact_edit_title + "Modifier contact" + + + + + save + + + + + contact_dialog_delete_title + Supprimer %1 ?" + + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + + + + + contact_deleted_toast + "Contact supprimé" + + + + + contact_deleted_message + "%1 a été supprimé" + + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + + + + + popup_do_not_show_again + Ne plus afficher + + + + + cancel + + + + + dialog_call + "Appeler" + Volať + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + + + + + dialog_ok + "Ok" + + + + + bottom_navigation_contacts_label + "Contacts" + Kontakty + + + + search_bar_look_for_contact_text + Rechercher un contact + + + + + list_filter_no_result_found + Aucun résultat… + + + + + contact_list_empty + Aucun contact pour le moment + + + + + expand_accessible_name + Expand %1 + + + + + shrink_accessible_name + Shrink %1 + + + + + create_contact_accessible_name + Create new contact + + + + + more_info_accessible_name + More info %1 + + + + + + contact_details_edit + Edit +---------- +"Éditer" + + + + + contact_call_action + "Appel" + Volať + + + + contact_message_action + "Message" + + + + + contact_video_call_action + "Appel vidéo" + Videohovor + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + + + + + call_adress_accessible_name + Call address %1 + + + + + contact_details_company_name + "Société :" + + + + + contact_details_job_title + "Poste :" + + + + + contact_details_medias_title + "Medias" + + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + + + + + contact_details_trust_title + "Confiance" + + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + + + + + contact_details_no_device_found + "Aucun appareil" + + + + + contact_device_without_name + "Appareil inconnu" + + + + + contact_make_call_check_device_trust + "Vérifier" + + + + + verify_device_accessible_name + Verify %1 device + + + + + contact_details_actions_title + "Autres actions" + + + + + contact_details_remove_from_favourites + "Retirer des favoris" + + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + + + + + contact_details_share + "Partager" + + + + + information_popup_error_title + + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + + + + + contact_details_share_success_title + "VCard créée" + + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + + + + + contact_details_share_email_title + "Partage de contact" + + + + + contact_details_delete + "Supprimer ce contact" + + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + + + + + settings_contacts_carddav_title + + + + + settings_contacts_carddav_subtitle + + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + add + "Ajouter" + + + + + ConversationInfos + + + one_one_infos_call + "Appel" + Volať + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + + + + + group_infos_participants + + + + + group_infos_media_docs + Medias & documents + + + + + group_infos_shared_medias + Shared medias + + + + + group_infos_shared_docs + Shared documents + + + + + group_infos_other_actions + Other actions + + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + + + + + group_infos_leave_room + Leave chat room + + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + group_infos_delete_history + Delete history + + + + + group_infos_delete_history_toast_title + Delete history ? + + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + one_one_infos_open_contact + Show contact + + + + + one_one_infos_create_contact + Create contact + + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + + + + + one_one_infos_delete_history_toast_title + Delete history ? + + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + + + + + settings_debug_clipboard + "Presse-papier" + + + + + settings_debug_email + "E-Mail" + + + + + debug_settings_trace + "Traces %1" + + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + + + + + + information_popup_error_title + Une erreur est survenue. + + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + + + + + settings_debug_delete_logs_title + "Supprimer les traces" + + + + + settings_debug_share_logs_title + "Partager les traces" + + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + + + + + settings_debug_app_version_title + "Version de l'application" + + + + + settings_debug_sdk_version_title + "Version du SDK" + + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + + + + + textfield_error_message_unknown_format + "Format non reconnu" + + + + + Dialog + + + + dialog_confirm + "Confirmer" + + + + + + dialog_cancel + "Annuler" + + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + + + + + call_stats_media_encryption + Media encryption : %1 + + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + + + + + call_zrtp_validation_button_label + "Validation chiffrement" + + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + + + + + one_hour + + + + + one_day + + + + + one_week + + + + + disabled + Zakázané + + + + custom + + + + + EventLogCore + + + conference_created_event + + + + + conference_created_terminated + + + + + conference_participant_added_event + + + + + conference_participant_removed_event + + + + + conference_participant_set_admin_event + + + + + conference_participant_unset_admin_event + + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + + + + + + + device_id + "Téléphone" + + + + + information_popup_error_title + + + + + information_popup_invalid_address_message + "Adresse invalide" + + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + + + + + group_infos_participant_is_admin + + + + + menu_see_existing_contact + "Show contact" + + + + + menu_add_address_to_contacts + "Add to contacts" + + + + + group_infos_give_admin_rights + + + + + group_infos_remove_admin_rights + + + + + group_infos_copy_sip_address + + + + + group_infos_remove_participant + + + + + group_infos_remove_participants_toast_title + + + + + group_infos_remove_participants_toast_message + + + + + GroupCreationFormLayout + + + return_accessible_name + Return + + + + + + group_start_dialog_subject_hint + "Nom du groupe" + + + + + required + "Requis" + + + + + HelpPage + + + help_title + "Aide" + + + + + + help_about_title + "À propos de %1" + + + + + help_about_privacy_policy_title + "Règles de confidentialité" + + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + + + + + help_about_version_title + "Version" + + + + + help_about_gpl_licence_title + "Licences GPLv3" + + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + + + + + help_troubleshooting_title + "Dépannage" + + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + + + + + settings_contacts_ldap_subtitle + + + + + information_popup_success_title + + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + + + + + information_popup_error_title + + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + + + + + delete_ldap_server_accessible_name + Delete LDAP server + + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + + + + + settings_contacts_ldap_password_title + "Mot de passe" + + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + + + + + settings_contacts_ldap_search_filter_title + "Filtre" + + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + Maximálny počet výsledkov + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + + + + + settings_contacts_ldap_debug_title + "Débogage" + + + + + LoadingPopup + + + cancel + + + + + LoginForm + + + + username + Nom d'utilisateur : username + + + + + + password + Mot de passe + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + assistant_account_login + "Connexion" + + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + + + + + assistant_forgotten_password + "Mot de passe oublié ?" + + + + + LoginLayout + + + + help_about_title + À propos de %1 + + + + + help_about_privacy_policy_title + "Politique de confidentialité" + + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + + + + + help_about_version_title + "Version" + + + + + help_about_licence_title + "Licence" + + + + + help_about_copyright_title + "Copyright + + + + + close + "Fermer" + + + + + LoginPage + + + return_accessible_name + Return + + + + + assistant_account_login + Connexion + + + + + assistant_no_account_yet + "Pas encore de compte ?" + + + + + assistant_account_register + "S'inscrire" + + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + + + + + assistant_login_remote_provisioning + "Configuration distante" + + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + + + + + cancel + + + + + validate + "Valider" + + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + + + + + default_account_connection_state_error_toast + + + + + MagicSearchList + + + device_id + + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + + + + + open_calls_page_accessible_name + "Open calls page" + + + + + bottom_navigation_contacts_label + "Contacts" + Kontakty + + + + open_contacts_page_accessible_name + "Open contacts page" + + + + + bottom_navigation_conversations_label + "Conversations" + Konverzácie + + + + open_conversations_page_accessible_name + "Open conversations page" + + + + + bottom_navigation_meetings_label + "Réunions" + Schôdzky + + + + open_contact_page_accessible_name + "Open meetings page" + + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + + + + + do_not_disturb_accessible_name + "Do not disturb" + + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + + + + + information_popup_error_title + + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + + + + + account_list_accessible_name + "Account list" + + + + + application_options_accessible_name + "Application options" + + + + + drawer_menu_manage_account + Mon compte + + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + + + + + settings_title + + + + + recordings_title + "Enregistrements" + + + + + help_title + "Aide" + + + + + help_quit_title + "Quitter l'application" + + + + + quit_app_question + "Quitter %1 ?" + + + + + drawer_menu_add_account + "Ajouter un compte" + + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + + + + + interoperable + interopérable + + + + + call_transfer_successful_toast_title + "Appel transféré" + + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + + + + + information_popup_success_title + + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + + + + + assistant_register_error_title + "Erreur lors de la création" + + + + + assistant_register_success_title + "Compte créé" + + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + + + + + assistant_register_error_code + "Erreur dans le code de validation" + + + + + information_popup_error_title + + + + + ManageParticipants + + + group_infos_manage_participants + + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + + + + + meeting_schedule_broadcast_label + "Webinar" + + + + + meeting_schedule_subject_hint + "Ajouter un titre" + + + + + meeting_schedule_description_hint + "Ajouter une description" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + MeetingPage + + + meetings_add + "Créer une réunion" + + + + + meetings_list_empty + "Aucune réunion" + + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + + + + + meeting_schedule_delete_action + "Supprimer" + Vymazať + + + + back_action + Retour + + + + + meetings_list_title + Réunions + Schôdzky + + + + meetings_search_hint + "Rechercher une réunion" + + + + + list_filter_no_result_found + "Aucun résultat…" + + + + + meetings_empty_list + "Aucune réunion" + + + + + + meeting_schedule_title + "Nouvelle réunion" + + + + + create + + + + + + + + + + information_popup_error_title + + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + + + + + save + + + + + + saved + "Enregistré" + + + + + meeting_info_updated_toast + "Réunion mise à jour" + + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + + + + + meeting_schedule_add_participants_apply + + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + + + + + + + + meeting_info_delete + "Supprimer la réunion" + + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + + + + + meeting_schedule_timezone_title + "Fuseau horaire" + + + + + meeting_info_organizer_label + "Organisateur" + + + + + meeting_info_join_title + "Rejoindre la réunion" + + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + + + + + click_to_delete_reaction_info + Click to delete + + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + + + + + no_shared_documents + No document + + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + + + + + + + + choose_something_accessible_name + Choose %1 + + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + + + + + + device_volume_accessible_name + %1 volume + + + + + + + multimedia_settings_microphone_title + "Microphone" + + + + + + multimedia_settings_camera_title + "Caméra" + + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + + + + + call_start_group_call_title + Appel de groupe + + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + + + + + dialog_accept + "Accepter" + + + + + dialog_deny + "Refuser + + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + + + + + new_file_message + + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + + + + + new_message_alert_accessible_name + New message on chatroom %1 + + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + + + + + oidc_authentication_granted_message + Authentication granted + + + + + oidc_authentication_not_authenticated_message + Not authenticated + + + + + oidc_authentication_refresh_message + Refreshing token + + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + + + + + oidc_authentication_network_error + Network error + + + + + oidc_authentication_server_error + Server error + + + + + oidc_authentication_token_not_found_error + OAuth token not found + + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + + + + + oidc_authentication_no_token_found_error + + + + + oidc_authentication_request_token_message + Requesting access token + + + + + oidc_authentication_refresh_token_message + Refreshing access token + + + + + oidc_authentication_request_authorization_message + Requesting authorization + + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + + + + + meeting_add_participants_title + "Ajouter des participants" + + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + + + + + number_phone_number_accessible_name + %1 number + + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + + + + + open_popup_panel_accessible_name + "Open %1" popup + + + + + Presence + + + contact_presence_reset_status + + + + + contact_presence_button_set_custom_status + + + + + contact_presence_button_edit_custom_status + + + + + contact_presence_button_delete_custom_status + Vymazať + + + + contact_presence_custom_status + + + + + PresenceNoteLayout + + + contact_presence_note_title + + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + + + + + contact_presence_button_save_custom_status + + + + + QObject + + + media_encryption_dtls + + + + + media_encryption_none + + + + + media_encryption_srtp + + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + + + + + message_state_in_progress + "delivery in progress" + + + + + message_state_delivered + sent + + + + + message_state_not_delivered + error + + + + + message_state_file_transfer_error + cannot get file from server + + + + + message_state_file_transfer_done + file transfer has been completed successfully + + + + + message_state_delivered_to_user + received + + + + + message_state_displayed + read + + + + + message_state_file_transfer__in_progress + file transfer in progress + + + + + message_state_pending_delivery + pending delivery + + + + + message_state_file_transfer_cancelling + file transfer canceled + + + + + incoming + "Entrant" + + + + + outgoing + "Sortant" + + + + + conference_layout_active_speaker + "Participant actif" + + + + + conference_layout_grid + "Mosaïque" + + + + + conference_layout_audio_only + "Audio uniquement" + + + + + RegisterCheckingPage + + + email + "email" + + + + + phone_number + "numéro de téléphone" + + + + + confirm_register_title + "Inscription | Confirmer votre %1" + + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + + + + + RegisterPage + + + return_accessible_name + Return + + + + + assistant_account_register + "Inscription + + + + + assistant_already_have_an_account + + + + + assistant_account_login + + + + + assistant_account_register_with_phone_number + + + + + assistant_account_register_with_email + + + + + + username + + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + domain + + + + + + + phone_number + "Numéro de téléphone" + + + + + + email + + + + + + password + + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + + + + + assistant_account_create + "Créer" + + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + + + + + SIPLoginPage + + + return_accessible_name + Return + + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + + + + + assistant_no_account_yet + Pas encore de compte ? + + + + + assistant_account_register + S'inscrire + + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + + + + + + username + "Nom d'utilisateur" + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + password + + + + + + sip_address_domain + "Domaine" + + + + + + sip_address_display_name + Nom d'affichage + + + + + + transport + "Transport" + + + + + + assistant_account_login + + + + + assistant_account_login_missing_username + + + + + assistant_account_login_missing_password + + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + + + + + login_advanced_parameters_label + Advanced parameters + + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + + + + + screencast_settings_all_screen_label + "Ecran entier" + + + + + screencast_settings_one_window_label + "Fenêtre" + + + + + screencast_settings_screen + "Ecran %1" + + + + + stop + "Stop + + + + + share + "Partager" + + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + + + + + dialog_continue + "Continuer" + + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + + + + + SelectedChatView + + + chat_view_group_call_toast_message + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + reply_to_label + Reply to %1 + + + + + shared_medias_title + Shared medias + + + + + shared_documents_title + Shared documents + + + + + forward_to_title + Forward to… + + + + + conversations_title + Conversations + Konverzácie + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + + + + + SettingsPage + + + settings_title + "Paramètres" + + + + + settings_calls_title + "Appels" + + + + + settings_call_forward + "Transfert d'appel" + + + + + settings_conversations_title + "Conversations" + Konverzácie + + + + settings_contacts_title + "Contacts" + Kontakty + + + + settings_meetings_title + "Réunions" + Schôdzky + + + + settings_network_title + "Affichage" "Security" "Réseau" + + + + + settings_advanced_title + "Paramètres avancés" + + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + + + + + conference_participant_paused_text + "En pause" + + + + + TextField + + + show_accessible_name + Show %1 + + + + + hide_accessible_name + Hide %1 + + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + + + + + group_call_error_no_account + + + + + group_call_error_participants_invite + + + + + group_call_error_creation + + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + + + + + unknown_audio_device_name + + + + + conference_invitation + + + + + conference_invitation_cancelled + + + + + conference_invitation_updated + + + + + Utils + + + nSeconds + + + + + + + + + nMinute + + + + + + + + + chat_message_forward_error + Cannot forward an invalid message + + + + + info_popup_forward_message_error + Could not forward message : %1 + + + + + info_popup_send_forward_message_error_message + Failed to create forward message + + + + + chat_message_reply_error + Cannot reply to invalid message + + + + + info_popup_reply_message_error + Could not send reply message : %1 + + + + + info_popup_send_reply_message_error_message + Failed to create reply message + + + + + nHour + + + + + + + + + + nDay + + + + + + + + + nWeek + + + + + + + + + contact_presence_status_available + + + + + contact_presence_status_busy + + + + + contact_presence_status_do_not_disturb + + + + + contact_presence_status_offline + + + + + contact_presence_status_away + + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + + + + + information_popup_group_call_not_created_message + + + + + number_of_years + %n an(s) + + + + + + + + + number_of_month + "%n mois" + + + + + + + + + number_of_weeks + %n semaine(s) + + + + + + + + + number_of_days + %n jour(s) + + + + + + + + + today + "Aujourd'hui" + + + + + yesterday + "Hier + + + + + duration_tomorrow + Tomorrow + + + + + duration_number_of_days + %1 jour(s) + + + + + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + + + + + recorder_error + Error with the recorder + + + + + + + chat_error + + + + + + + + + + info_popup_error_title + Error + + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + + + + + meeting_waiting_room_join + "Rejoindre" + + + + + + cancel + Cancel + + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + + + + + welcome_page_subtitle + "sur %1" + + + + + welcome_carousel_skip + "Passer" + + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + + + + + welcome_page_2_title + "Sécurisé" + + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + + + + + welcome_page_3_title + "Open Source" + + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + + + + + next + "Suivant" + + + + + start + "Commencer" + + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + + + + + call_zrtp_sas_validation_skip + "Passer" + + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + + + + + call_action_hang_up + "Raccrocher" + + + + + country + + + Afghanistan + + + + + Albania + + + + + Algeria + + + + + AmericanSamoa + + + + + Andorra + + + + + Angola + + + + + Anguilla + + + + + AntiguaAndBarbuda + + + + + Argentina + + + + + Armenia + + + + + Aruba + + + + + Australia + + + + + Austria + + + + + Azerbaijan + + + + + Bahamas + + + + + Bahrain + + + + + Bangladesh + + + + + Barbados + + + + + Belarus + + + + + Belgium + + + + + Belize + + + + + Benin + + + + + Bermuda + + + + + Bhutan + + + + + Bolivia + + + + + BosniaAndHerzegowina + + + + + Botswana + + + + + Brazil + + + + + Brunei + + + + + Bulgaria + + + + + BurkinaFaso + + + + + Burundi + + + + + Cambodia + + + + + Cameroon + + + + + Canada + + + + + CapeVerde + + + + + CaymanIslands + + + + + CentralAfricanRepublic + + + + + Chad + + + + + Chile + + + + + China + + + + + Colombia + + + + + Comoros + + + + + PeoplesRepublicOfCongo + + + + + CookIslands + + + + + CostaRica + + + + + IvoryCoast + + + + + Croatia + + + + + Cuba + + + + + Cyprus + + + + + CzechRepublic + + + + + Denmark + + + + + Djibouti + + + + + Dominica + + + + + DominicanRepublic + + + + + Ecuador + + + + + Egypt + + + + + ElSalvador + + + + + EquatorialGuinea + + + + + Eritrea + + + + + Estonia + + + + + Ethiopia + + + + + FalklandIslands + + + + + FaroeIslands + + + + + Fiji + + + + + Finland + + + + + France + + + + + FrenchGuiana + + + + + FrenchPolynesia + + + + + Gabon + + + + + Gambia + + + + + Georgia + + + + + Germany + + + + + Ghana + + + + + Gibraltar + + + + + Greece + + + + + Greenland + + + + + Grenada + + + + + Guadeloupe + + + + + Guam + + + + + Guatemala + + + + + Guinea + + + + + GuineaBissau + + + + + Guyana + + + + + Haiti + + + + + Honduras + + + + + DemocraticRepublicOfCongo + + + + + HongKong + + + + + Hungary + + + + + Iceland + + + + + India + + + + + Indonesia + + + + + Iran + + + + + Iraq + + + + + Ireland + + + + + Israel + + + + + Italy + + + + + Jamaica + + + + + Japan + + + + + Jordan + + + + + Kazakhstan + + + + + Kenya + + + + + Kiribati + + + + + DemocraticRepublicOfKorea + + + + + RepublicOfKorea + + + + + Kuwait + + + + + Kyrgyzstan + + + + + Laos + + + + + Latvia + + + + + Lebanon + + + + + Lesotho + + + + + Liberia + + + + + Libya + + + + + Liechtenstein + + + + + Lithuania + + + + + Luxembourg + + + + + Macau + + + + + Macedonia + + + + + Madagascar + + + + + Malawi + + + + + Malaysia + + + + + Maldives + + + + + Mali + + + + + Malta + + + + + MarshallIslands + + + + + Martinique + + + + + Mauritania + + + + + Mauritius + + + + + Mayotte + + + + + Mexico + + + + + Micronesia + + + + + Moldova + + + + + Monaco + + + + + Mongolia + + + + + Montenegro + + + + + Montserrat + + + + + Morocco + + + + + Mozambique + + + + + Myanmar + + + + + Namibia + + + + + NauruCountry + + + + + Nepal + + + + + Netherlands + + + + + NewCaledonia + + + + + NewZealand + + + + + Nicaragua + + + + + Niger + + + + + Nigeria + + + + + Niue + + + + + NorfolkIsland + + + + + NorthernMarianaIslands + + + + + Norway + + + + + Oman + + + + + Pakistan + + + + + Palau + + + + + PalestinianTerritories + + + + + Panama + + + + + PapuaNewGuinea + + + + + Paraguay + + + + + Peru + + + + + Philippines + + + + + Poland + + + + + Portugal + + + + + PuertoRico + + + + + Qatar + + + + + Reunion + + + + + Romania + + + + + RussianFederation + + + + + Rwanda + + + + + SaintHelena + + + + + SaintKittsAndNevis + + + + + SaintLucia + + + + + SaintPierreAndMiquelon + + + + + SaintVincentAndTheGrenadines + + + + + Samoa + + + + + SanMarino + + + + + SaoTomeAndPrincipe + + + + + SaudiArabia + + + + + Senegal + + + + + Serbia + + + + + Seychelles + + + + + SierraLeone + + + + + Singapore + + + + + Slovakia + + + + + Slovenia + + + + + SolomonIslands + + + + + Somalia + + + + + SouthAfrica + + + + + Spain + + + + + SriLanka + + + + + Sudan + + + + + Suriname + + + + + Swaziland + + + + + Sweden + + + + + Switzerland + + + + + Syria + + + + + Taiwan + + + + + Tajikistan + + + + + Tanzania + + + + + Thailand + + + + + Togo + + + + + Tokelau + + + + + Tonga + + + + + TrinidadAndTobago + + + + + Tunisia + + + + + Turkey + + + + + Turkmenistan + + + + + TurksAndCaicosIslands + + + + + Tuvalu + + + + + Uganda + + + + + Ukraine + + + + + UnitedArabEmirates + + + + + UnitedKingdom + + + + + UnitedStates + + + + + Uruguay + + + + + Uzbekistan + + + + + Vanuatu + + + + + Venezuela + + + + + Vietnam + + + + + WallisAndFutunaIslands + + + + + Yemen + + + + + Zambia + + + + + Zimbabwe + + + + + utils + + + formatYears + '%1 year' + + + + + + + + + formatMonths + '%1 month' + + + + + + + + + formatWeeks + '%1 week' + + + + + + + + + formatDays + '%1 day' + + + + + + + + + formatHours + '%1 hour' + + + + + + + + + formatMinutes + '%1 minute' + + + + + + + + + formatSeconds + '%1 second' + + + + + + + + + codec_install + "Installation de codec" + + + + + download_codec + "Télécharger le codec %1 (%2) ?" + + + + + information_popup_success_title + "Succès" + + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + + + + + + + information_popup_error_title + + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + + + + + okButton + + + + diff --git a/Linphone/data/languages/uk.ts b/Linphone/data/languages/uk.ts new file mode 100644 index 000000000..dc540ce80 --- /dev/null +++ b/Linphone/data/languages/uk.ts @@ -0,0 +1,7459 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + + + + + save + "Enregistrer" + Зберегти + + + + save_settings_accessible_name + Save %1 settings + + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + Оберіть номер SIP або адресу + + + + fps_counter + %1 FPS + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + Підключено + + + + drawer_menu_account_connection_status_refreshing + Оновлюється… + + + + drawer_menu_account_connection_status_progress + Підключення… + + + + drawer_menu_account_connection_status_failed + Помилка + + + + drawer_menu_account_connection_status_cleared + Вимкнено + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + Ви в мережі та доступні. + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + Помилка підключення, перевірте налаштування. + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + Обліковий запис вимкнено, ви не отримуватимете дзвінків чи повідомлень. + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + Помилка отримання пристроїв + + + + AccountListView + + + add_an_account + Add an account + Додати обліковий запис + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + Обліковий запис підключено + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + Не вдалося створити проксі-адресу. Перевірте доменне ім'я. + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + Не вдалося налаштувати адресу: `%1`. + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + Не вдається налаштувати параметри облікового запису. + + + + assistant_account_login_forbidden_error + "Username and password do not match" + Ім'я користувача та пароль не збігаються + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + Помилка під час підключення + + + + assistant_account_add_error + "Unable to add account." + Не вдалося додати обліковий запис. + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + Подробиці + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + Відредагуйте інформацію свого облікового запису. + + + + manage_account_devices_title + "Vos appareils" + Ваші пристрої + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + Список пристроїв, підключених до вашого облікового запису. Ви можете видалити пристрої, які більше не використовуєте. + + + + manage_account_add_picture + "Ajouter une image" + Додати зображення + + + + manage_account_edit_picture + "Modifier l'image" + Редагувати зображення + + + + manage_account_remove_picture + "Supprimer l'image" + Видалити зображення + + + + sip_address + SIP-адреса + + + + sip_address_display_name + "Nom d'affichage + Ім'я для відображення + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + Ім'я, яке відображається вашим контактам під час обміну повідомленнями. + + + + manage_account_international_prefix + Indicatif international* + Міжнародний код* + + + + manage_account_delete + "Déconnecter mon compte" + Відключити мій обліковий запис + + + + manage_account_delete_message + Ваш обліковий запис буде видалено з цього клієнта Linphone, але ви залишитеся підключеними в інших клієнтах. + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + Вийти з облікового запису? + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + Якщо ви хочете остаточно видалити свій обліковий запис, перейдіть за посиланням: https://sip.linphone.org + + + + error + Erreur + Помилка + + + + manage_account_device_remove + "Supprimer" + Видалити + + + + manage_account_device_remove_confirm_dialog + Видалити %1? + + + + manage_account_device_last_connection + "Dernière connexion:" + Останній вхід: + + + + device_last_updated_time_no_info + "No information" + + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + Мій обліковий запис + + + + settings_general_title + "Général" + Загальні + + + + settings_account_title + "Paramètres de compte" + Налаштування облікового запису + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + Незбережені зміни + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + У вас є незбережені зміни. Якщо ви залишите цю сторінку, ваші зміни будуть втрачені. Бажаєте зберегти зміни, перш ніж продовжити? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + Не зберігати + + + + contact_editor_dialog_abort_confirmation_save + Зберегти + + + + AccountSettingsParametersLayout + + + settings_title + Налаштування + + + + settings_account_title + Налаштування облікового запису + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_error_title + Помилка + + + + information_popup_success_title + Успіх + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + Зміни збережено + + + + information_popup_error_title + Помилка + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + URI сервера голосової пошти + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + URI голосової пошти + + + + account_settings_transport_title + "Transport" + Транспорт + + + + account_settings_registrar_uri_title + + + + + account_settings_sip_proxy_url_title + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + Адреса STUN-сервера + + + + account_settings_enable_ice_title + "Activer ICE" + Увімкнути ICE + + + + account_settings_avpf_title + "AVPF" + AVPF + + + + account_settings_bundle_mode_title + "Mode bundle" + Режим об'єднання + + + + account_settings_expire_title + "Expiration (en seconde)" + Термін дії (у секундах) + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + URI конференцій + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + URI відеоконференцій + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + URL-адреса сервера Lime + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + Знайти контакти + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + + + + + + + + remove_participant_accessible_name + Remove participant %1 + + + + + list_filter_no_result_found + "Aucun contact" + Результатів не знайдено… + + + + contact_list_empty + Контакти відсутні + + + + AdvancedSettingsLayout + + + settings_system_title + System + Система + + + + settings_remote_provisioning_title + Remote provisioning + Віддалене налаштування + + + + settings_security_title + Security / Encryption + Безпека / Шифрування + + + + settings_advanced_audio_codecs_title + Audio codecs + Аудіокодеки + + + + settings_advanced_video_codecs_title + Video codecs + Відеокодеки + + + + settings_advanced_auto_start_title + Auto start %1 + Авто старт %1 + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + URL-адреса віддаленого налаштування + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + Завантажити та застосувати + + + + information_popup_error_title + Invalid URL format + Помилка + + + + settings_advanced_invalid_url_message + Недійсний формат URL-адреси + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + + + + + + settings_advanced_media_encryption_title + Media encryption + Шифрування медіа + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + Обов'язкове шифрування медіа + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + Створюйте наскрізні зашифровані зустрічі та групові дзвінки + + + + settings_advanced_hide_fps_title + Приховати FPS + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + Обрані + + + + generic_address_picker_contacts_list_title + 'Contacts' + Контакти + + + + generic_address_picker_suggestions_list_title + "Suggestions" + Пропозиції + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + Ви хочете завантажити та застосувати віддалене налаштування з цієї адреси? + + + + + info_popup_error_title + Error + Помилка + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + + + + + configuration_error_detail + not reachable + + + + + application_description + "A free and open source SIP video-phone." + Безплатний та з відкритим вихідним кодом застосунок для спілкування. + + + + command_line_arg_order + "Send an order to the application towards a command line" + Надіслати команду до програми через командний рядок + + + + command_line_option_show_help + Показати цю довідку + + + + command_line_option_show_app_version + Показати версію застосунку + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + Вкажіть файл конфігурації linphone, який потрібно отримати. Він буде об'єднаний з поточною конфігурацією. + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + URL-адреса, шлях або файл + + + + command_line_option_minimized + Мінімізувати + + + + command_line_option_log_to_stdout + Виводити додаткову налагоджувальну інформацію в лог файли + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + Відображати лише логи від застосунку + + + + hide_action + "Cacher" "Afficher" + Сховати + + + + show_action + Відобразити + + + + quit_action + "Quitter" + Вийти + + + + mark_all_read_action + + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + Потрібна автентифікація + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + Не вдалося увійти в обліковий запис %1. Ви можете ввести пароль ще раз або перевірити налаштування облікового запису. + + + + password + Пароль + + + + cancel + "Annuler + Скасувати + + + + assistant_account_login + Connexion + Підключення + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + Будь ласка, введіть пароль + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + Запис завершено + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + Запис збережено у файл: %1 + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + Кодек: %1 / %2 kHz + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + Пропускна спроможність: %1 %2 kbits/s %3 %4 kbits/s + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + Коефіцієнт втрат: %1% %2% + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + Jitter буфер: %1 ms + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + Роздільна здатність відео: %1 %2 %3 %4 + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + FPS : %1 %2 %3 %4 + + + + media_encryption_dtls + DTLS + DTLS + + + + media_encryption_none + None + Немає + + + + media_encryption_srtp + SRTP + SRTP + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + Постквантовий ZRTP + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + + + + + settings_call_forward_destination_choose + Forward to destination + + + + + + + settings_call_forward_to_voicemail + + + + + settings_call_forward_to_sipaddress + + + + + settings_call_forward_sipaddress_title + SIP Address + + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + + + + + settings_call_forward_address_timeout + + + + + settings_call_forward_address_progress_disabling + + + + + settings_call_forward_address_progress_enabling + + + + + settings_call_forward_activation_success + + + + + settings_call_forward_deactivation_success + + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + Приєднатись до наради + + + + contact_call_action + "Appel" + Виклик + + + + contact_message_action + "Message" + Повідомлення + + + + contact_video_call_action + "Appel Video" + Відеодзвінок + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + Ви залишили нараду + + + + call_ended_by_user + "Vous avez terminé l'appel" + Дзвінок завершено + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + Ваш співрозмовник завершив дзвінок + + + + conference_call_empty + "En attente d'autres participants…" + Чекаємо на інших учасників… + + + + conference_share_link_title + "Partager le lien" + Поділитися посиланням + + + + copied + Скопійовано + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + Посилання на нараду скопійовано в буфер обміну + + + + CallList + + + remote_group_call + Remote group call + + + + + local_group_call + + + + + info_popup_error_title + Помилка + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + + + + + CallListView + + + meeting + "Réunion + Нарада + + + + call + "Appel" + Виклик + + + + paused_call_or_meeting + "%1 en pause" + %1 призупинено + + + + ongoing_call_or_meeting + "%1 en cours" + Поточний виклик %1 + + + + transfer_call_name_accessible_name + Transfer call %1 + + + + + resume_call_name_accessible_name + Resume %1 call + + + + + pause_call_name_accessible_name + Pause %1 call + + + + + end_call_name_accessible_name + End %1 call + + + + + CallModel + + + call_error_no_response_toast + "No response" + + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + + + + + call_error_not_answered_toast + "Request timeout" + + + + + call_error_user_declined_toast + "User declined the call" + Дзвінок відхилено + + + + call_error_user_not_found_toast + "User was not found" + Користувача не знайдено + + + + call_error_user_busy_toast + "User is busy" + Користувач зайнятий + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + Користувач не може прийняти ваш дзвінок + + + + call_error_io_error_toast + "Unavailable service or network error" + Недоступний сервіс або помилка мережі + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + + + + + call_error_server_timeout_toast + "Server tiemout" + Час очікування сервера + + + + CallPage + + + call_forward_to_address_info + + + + + call_forward_to_address_info_voicemail + + + + + history_call_start_title + "Nouvel appel" + Новий виклик + + + + call_history_empty_title + "Historique d'appel vide" + Очистити історію дзвінків + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + Видалити історію дзвінків? + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + Історію дзвінків буде видалено назавжди. + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + Видалити історію дзвінків? + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + Історію дзвінків від цього користувача буде видалено назавжди. + + + + call_history_call_list_title + "Appels" + Виклики + + + + call_history_options_accessible_name + + + + + + menu_delete_history + "Supprimer l'historique" + Видалити історію + + + + call_history_list_options_accessible_name + Call history options + + + + + create_new_call_accessible_name + Create new call + + + + + call_search_in_history + "Rechercher un appel" + Знайти дзвінок + + + + list_filter_no_result_found + "Aucun résultat…" + Результатів не знайдено… + + + + history_list_empty_history + "Aucun appel dans votre historique" + Немає дзвінків в історії + + + + return_to_call_history_accessible_name + Return to call history + + + + + call_action_start_new_call + "Nouvel appel" + Новий виклик + + + + call_start_group_call_title + "Appel de groupe" + Груповий виклик + + + + call_action_start_group_call + "Lancer" + Старт + + + + + + information_popup_error_title + Помилка + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + Для виклику необхідно вказати ім'я + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + Ви не підключені + + + + menu_see_existing_contact + "Show contact" + Відобразити контакт + + + + menu_add_address_to_contacts + "Add to contacts" + Додати до контактів + + + + menu_copy_sip_address + "Copier l'adresse SIP" + Копіювати SIP-адресу + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + SIP-адресу скопійовано + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + Адресу скопійовано в буфер обміну + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + Помилка копіювання адреси + + + + notification_missed_call_title + "Appel manqué" + Пропущено дзвінок + + + + call_outgoing + "Appel sortant" + Вихідний дзвінок + + + + call_audio_incoming + "Appel entrant" + Вихідний виклик + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + Пристрої + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + Ви можете змінити аудіовихідні пристрої, мікрофон та камеру. + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + Придушення луни + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + Запобігання луни + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + Увімкнути автоматичний запис дзвінків + + + + settings_call_enable_tones_title + Tonalités + Тони + + + + settings_call_enable_tones_subtitle + Activer les tonalités + Увімкнути тони + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + Увімкнути відео + + + + settings_calls_command_line_title + Command line + + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + + + + + settings_calls_current_ringtone_filename + Current ringtone : + + + + + choose_ringtone_file_accessible_name + Choose ringtone file + + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + + + + + CallStatistics + + + call_stats_audio_title + "Audio" + Аудіо + + + + call_stats_video_title + "Vidéo" + Відео + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + Триває перенаправлення, будь ласка, зачекайте + + + + + information_popup_error_title + Помилка + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + Перенаправлення не вдалося + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + Зустріч не можу розпочатись через помилку URI. + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + Завершити всі поточні дзвінки? + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + Вікно ось-ось закриється. Це завершить усі поточні дзвінки. + + + + call_can_be_trusted_toast + "Appareil authentifié" + Пристрій довірений + + + + call_dir + %1 виклик + + + + call_ended + Appel terminé + Виклик завершено + + + + conference_paused + Meeting paused + Нараду призупинено + + + + call_paused + Call paused + Виклик призупинено + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + Дзвінок захищено наскрізним шифруванням + + + + call_zrtp_sas_validation_required + Vérification nécessaire + Потрібна перевірка + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + Наскрізне шифрування дзвінків + + + + call_not_encrypted + "Appel non chiffré" + Незашифрований дзвінок + + + + + call_waiting_for_encryption_info + Waiting for encryption + Очікування шифрування + + + + call_paused_by_remote + Call paused by remote + Виклик призупинено співрозмовником + + + + conference_user_is_recording + "You are recording the meeting" + Ви записуєте нараду + + + + call_user_is_recording + "You are recording the call" + Ви записуєте виклик + + + + conference_remote_is_recording + "Someone is recording the meeting" + Хтось записує нараду + + + + call_remote_recording + "%1 is recording the call" + %1 записує виклик + + + + call_stop_recording + "Stop recording" + Зупинити запис + + + + add + Додати + + + + call_transfer_current_call_title + "Transférer %1 à…" + Перенаправити %1 на… + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + Підтвердити перенаправлення + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + Ви збираєтеся перенаправити %1 до %2. + + + + call_action_start_new_call + "Nouvel appel" + Новий виклик + + + + + call_action_show_dialer + "Pavé numérique" + Номеронабирач + + + + call_action_change_layout + "Modifier la disposition" + Змінити формат + + + + call_action_go_to_calls_list + "Liste d'appel" + Список викликів + + + + Merger tous les appels + call_action_merge_calls + Об'єднати всі дзвінки + + + + + call_action_go_to_settings + "Paramètres" + Налаштування + + + + conference_action_screen_sharing + "Partage de votre écran" + Поділитися своїм екраном + + + + conference_share_link_title + Partager le lien de la réunion + Поділитися посиланням на нараду + + + + copied + Copié + Скопійовано + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + Посилання на зустріч скопійовано в буфер обміну + + + + + + conference_participants_list_title + "Participants (%1)" + Учасники (%1) + + + + + group_call_participant_selected + + + + + + + + + meeting_schedule_add_participants_title + Додати учасників + + + + call_encryption_title + Chiffrement + Шифрування + + + + open_statistic_panel_accessible_name + + + + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + Стоп + + + + stop_recording_accessible_name + Stop recording + Зупинити запис + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + + + + + call_stats_title + Statistiques + Статистика + + + + + call_action_end_call + "Terminer l'appel" + Завершити виклик + + + + + call_action_resume_call + "Reprendre l'appel" + Відновити виклик + + + + + call_action_pause_call + "Mettre l'appel en pause" + Призупинити виклик + + + + + call_action_transfer_call + "Transférer l'appel" + Перенаправити виклик + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + Розпочати новий виклик + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + Переглянути список викликів + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + Вимкнути відео + + + + + call_activate_video_hint + Увімкнути відео + + + + + call_activate_microphone + "Activer le micro" + Активувати мікрофон + + + + + call_deactivate_microphone + "Désactiver le micro" + Вимкнути мікрофон + + + + + call_share_screen_hint + Partager l'écran… + Поділитися екраном… + + + + + call_open_chat_hint + Open chat… + + + + + + call_rise_hand_hint + "Lever la main" + Підняти руку + + + + + call_send_reaction_hint + "Envoyer une réaction" + Надіслати реакцію + + + + + call_manage_participants_hint + "Gérer les participants" + Керування учасниками + + + + + call_more_options_hint + "Plus d'options…" + Більше налаштувань… + + + + call_action_change_conference_layout + "Modifier la disposition" + Змінити формат + + + + call_action_full_screen + "Mode Plein écran" + Повноекранний режим + + + + call_action_stop_recording + "Terminer l'enregistrement" + Закінчити запис + + + + call_action_record + "Enregistrer l'appel" + Запис дзвінка + + + + call_activate_speaker_hint + "Activer le son" + Активувати динамік + + + + call_deactivate_speaker_hint + "Désactiver le son" + Вимкнути динамік + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + Адресна книга CardDAV + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + Додайте адресну книгу CardDAV, щоб синхронізувати контакти Linphone із адресною книгою стороннього виробника. + + + + information_popup_error_title + Помилка + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + Перевірте, чи введено всю інформацію. + + + + information_popup_synchronization_success_title + Успіх + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + Адресна книга CardDAV синхронізована. + + + + settings_contacts_carddav_popup_synchronization_error_title + Помилка + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + Помилка синхронізації! + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + Видалити адресну книгу CardDAV? + + + + sip_address_display_name + Nom d'affichage + Ім'я для відображення + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + URL-адреса сервера + + + + username + Ім'я користувача + + + + password + Пароль + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + Аутентифікація + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + Зберігати тут щойно створені контакти + + + + ChangeLayoutForm + + + conference_layout_grid + Сітка + + + + conference_layout_active_speaker + Активний динамік + + + + conference_layout_audio_only + Тільки аудіо + + + + ChatAudioContent + + + + information_popup_error_title + Error + Помилка + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + + + + + ChatCore + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message_history + Message history has been deleted + + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + + + + + chat_message_draft_sending_text + + + + + chat_room_delete + "Delete" + Видалити + + + + chat_room_mute + + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + + + + + chat_room_leave + "leave" + + + + + chat_list_leave_chat_popup_title + leave the conversation ? + + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + + + + + chat_message_copy + "Copy" + + + + + chat_message_copied_to_clipboard_title + Copied + Скопійовано + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + + + + + chat_message_remote_replied + %1 replied + + + + + chat_message_forwarded + Forwarded + + + + + chat_message_remote_replied_to + %1 replied to %2 + + + + + chat_message_user_replied_to + You replied to %1 + + + + + chat_message_user_replied + You replied + + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + + + + + chat_message_forward + Forward + + + + + chat_message_delete + "Delete" + Видалити + + + + ChatMessageContentCore + + + popup_error_title + Error + Помилка + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + + + + + info_popup_error_titile + Помилка + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + + + + + popup_error_path_does_not_exist_message + File was not found: %1 + + + + + popup_error_nb_files_not_found_message + + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + + + + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + + + + + popup_error_unsupported_files_message + + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + + + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message + The message has been deleted + + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + + + + + ics_bubble_meeting_to + + + + + ics_bubble_meeting_modified + Meeting has been updated + + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + + + + + + + + + + ics_bubble_description_title + Description + + + + + ics_bubble_join + "Rejoindre" + Приєднатися + + + + ics_bubble_participants + %n participant(s) + + + + + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + + + + + info_popup_no_result_message + No result found + + + + + info_popup_first_result_message + First result reached + + + + + info_popup_last_result_message + Last result reached + + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + + + + + chat_message_is_writing_info + %1 is writing… + + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + + + + + chat_empty_title + "Aucune conversation" + + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + + + + + chat_list_title + "Conversations" + Розмови + + + + menu_mark_all_as_read + "mark all as read" + + + + + chat_search_in_history + "Rechercher une conversation" + + + + + list_filter_no_result_found + "Aucun résultat…" + Без результату… + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + + + + + chat_action_start_new_chat + "New chat" + + + + + chat_start_group_chat_title + "Nouveau groupe" + + + + + chat_action_start_group_chat + "Créer" + Створити + + + + + + information_popup_error_title + Помилка + + + + information_popup_chat_creation_failed_message + "La création a échoué" + + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + Ви не підключені + + + + chat_creation_in_progress + Creation de la conversation en cours … + + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + + + + + CliModel + + + show_function_description + Відобразити + + + + fetch_config_function_description + Отримання конфігурації + + + + call_function_description + Виклик + + + + bye_function_description + Завершити + + + + accept_function_description + Прийняти + + + + decline_function_description + Відхилити + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + Помилка + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + Ваш обліковий запис відключено + + + + Contact + + + information_popup_error_title + Erreur + Помилка + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + URI голосової пошти не визначено. + + + + account_settings_name_accessible_name + Account settings of %1 + + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + Редагувати контакт + + + + save + "Enregistrer + Зберегти + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + Зміни будуть скасовані. Продовжити? + + + + close_accessible_name + Close %1 + + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + Будь ласка, введіть SIP-адресу або номер телефону + + + + contact_editor_add_image_label + "Ajouter une image" + Додати зображення + + + + contact_details_edit + "Modifier" + Редагувати + + + + edit_contact_image_accessible_name + "Edit contact image" + + + + + contact_details_delete + "Supprimer" + Видалити + + + + delete_contact_image_accessible_name + "Delete contact image" + + + + + + contact_editor_first_name + "Prénom" + Ім'я + + + + + contact_editor_last_name + "Nom" + Прізвище + + + + + contact_editor_company + "Entreprise" + Компанія + + + + + contact_editor_job_title + "Fonction" + Посада + + + + + sip_address + SIP-адреса + + + + sip_address_number_accessible_name + "SIP address number %1" + + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + + + + + new_sip_address_accessible_name + "New SIP address" + + + + + phone_number_number_accessible_name + "Phone number number %1" + + + + + remove_phone_number_accessible_name + Remove phone number %1 + + + + + new_phone_number_accessible_name + "New phone number" + + + + + + phone + "Téléphone" + Телефон + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + Видалити з обраних + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + Додати в обрані + + + + Partager + Поділитись + + + + information_popup_error_title + Помилка + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + Не вдалося створити VCard + + + + information_popup_vcard_creation_title + VCard créée + VCard створено + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + VCard збережено в %1 + + + + contact_sharing_email_title + Partage de contact + Поділитись контактом + + + + contact_details_delete + "Supprimer" + Видалити + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + + + + + expand_accessible_name + Expand %1 + + + + + ContactPage + + + contacts_add + "Ajouter un contact" + Додати контакт + + + + contacts_list_empty + "Aucun contact pour le moment" + Контакти відсутні + + + + contact_new_title + "Nouveau contact" + Новий контакт + + + + create + Створити + + + + contact_edit_title + "Modifier contact" + Редагувати контакт + + + + save + Зберегти + + + + contact_dialog_delete_title + Supprimer %1 ?" + Видалити %1? + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + Цей контакт буде видалено назавжди. + + + + contact_deleted_toast + "Contact supprimé" + Контакт видалено + + + + contact_deleted_message + "%1 a été supprimé" + %1 видалено + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + Підвищити рівень довіри + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + Щоб підвищити рівень довіри, вам потрібно зателефонувати на пристрої вашого контакту та підтвердити код.<br><br>Ви збираєтеся зателефонувати "%1". Бажаєте продовжити? + + + + popup_do_not_show_again + Ne plus afficher + Не відображати знову + + + + cancel + Скасувати + + + + dialog_call + "Appeler" + Виклик + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + Рівень довіри + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + Перевірте пристрої вашого контакту, щоб переконатися, що ваш зв’язок буде безпечним та безкомпромісним. Після перевірки всіх пристроїв ви досягнете максимального рівня довіри. + + + + dialog_ok + "Ok" + Ок + + + + bottom_navigation_contacts_label + "Contacts" + Контакти + + + + search_bar_look_for_contact_text + Rechercher un contact + Знайти контакт + + + + list_filter_no_result_found + Aucun résultat… + Без результату… + + + + contact_list_empty + Aucun contact pour le moment + Контакти відсутні + + + + expand_accessible_name + Expand %1 + + + + + shrink_accessible_name + Shrink %1 + + + + + create_contact_accessible_name + Create new contact + + + + + more_info_accessible_name + More info %1 + + + + + + contact_details_edit + Edit +---------- +"Éditer" + Редагувати + + + + contact_call_action + "Appel" + Виклик + + + + contact_message_action + "Message" + Повідомлення + + + + contact_video_call_action + "Appel vidéo" + Відеодзвінок + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + Детальніше + + + + call_adress_accessible_name + Call address %1 + + + + + contact_details_company_name + "Société :" + Компанія: + + + + contact_details_job_title + "Poste :" + Посада: + + + + contact_details_medias_title + "Medias" + Медіа + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + Показати спільні медіафайли + + + + contact_details_trust_title + "Confiance" + Довіра + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + Рівень довіри – перевірені пристрої + + + + contact_details_no_device_found + "Aucun appareil" + Немає пристрою + + + + contact_device_without_name + "Appareil inconnu" + Невідомий пристрій + + + + contact_make_call_check_device_trust + "Vérifier" + Перевірити + + + + verify_device_accessible_name + Verify %1 device + + + + + contact_details_actions_title + "Autres actions" + Інші дії + + + + contact_details_remove_from_favourites + "Retirer des favoris" + Видалити з обраних + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + Додати в обрані + + + + contact_details_share + "Partager" + Поділитись + + + + information_popup_error_title + Помилка + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + Не вдалося створити VCard + + + + contact_details_share_success_title + "VCard créée" + VCard створено + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + VCard збережено в %1 + + + + contact_details_share_email_title + "Partage de contact" + Поділитись контактом + + + + contact_details_delete + "Supprimer ce contact" + Видалити контакт + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + LDAP-сервери + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + Додайте свої LDAP-сервери, щоб мати змогу шукати в пошуку. + + + + settings_contacts_carddav_title + Адресна книга CardDAV + + + + settings_contacts_carddav_subtitle + Додайте адресну книгу CardDAV, щоб синхронізувати контакти Linphone із адресною книгою стороннього виробника. + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + Додати LDAP-сервер + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + Редагувати LDAP-сервер + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + Додати адресну книгу CardDAV + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + Редагувати адресну книгу CardDAV + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + Успіх + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + Зміни збережено + + + + add + "Ajouter" + Додати + + + + ConversationInfos + + + one_one_infos_call + "Appel" + Виклик + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + + + + + group_infos_participants + Учасники (%1) + + + + group_infos_media_docs + Medias & documents + + + + + group_infos_shared_medias + Shared medias + + + + + group_infos_shared_docs + Shared documents + + + + + group_infos_other_actions + Other actions + Інші дії + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + + + + + group_infos_leave_room + Leave chat room + + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + group_infos_delete_history + Delete history + Видалити історію + + + + group_infos_delete_history_toast_title + Delete history ? + + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + one_one_infos_open_contact + Show contact + Відобразити контакт + + + + one_one_infos_create_contact + Create contact + + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + Видалити історію + + + + one_one_infos_delete_history_toast_title + Delete history ? + + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + Знайти контакт + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + Трасування налагодження будуть видалені. Продовжити? + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + Трасування налагодження завантажено. Як поділитися посиланням? + + + + settings_debug_clipboard + "Presse-papier" + Буфер обміну + + + + settings_debug_email + "E-Mail" + E-Mail + + + + debug_settings_trace + "Traces %1" + %1 трасувань + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + Не вдалося надіслати електронною поштою. Будь ласка, надішліть посилання %1 безпосередньо %2. + + + + + information_popup_error_title + Une erreur est survenue. + Сталася помилка. + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + Увімкнути трасування налагодження + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + Увімкнути повне логування + + + + settings_debug_delete_logs_title + "Supprimer les traces" + Видалити трасування налагодження + + + + settings_debug_share_logs_title + "Partager les traces" + Спільний доступ до трас налагодження + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + Завантаження трасування… + + + + settings_debug_app_version_title + "Version de l'application" + Версія застосунку + + + + settings_debug_sdk_version_title + "Version du SDK" + Версія SDK + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + Не вдалося завантажити трасування. Ви можете поділитися файлами трасування безпосередньо з каталогу: %1 + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + не може бути порожнім + + + + textfield_error_message_unknown_format + "Format non reconnu" + Невідомий формат + + + + Dialog + + + + dialog_confirm + "Confirmer" + Підтвердити + + + + + dialog_cancel + "Annuler" + Скасувати + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + Шифрування: + + + + call_stats_media_encryption + Media encryption : %1 + Шифрування медіа: %1%2 + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + Алгоритм шифрування: %1 + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + Алгоритм узгодження ключів: %1 + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + Алгоритм хешування: %1 + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + Алгоритм автентифікації: %1 + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + Алгоритм SAS: %1 + + + + call_zrtp_validation_button_label + "Validation chiffrement" + Перевірка шифрування + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + + + + + one_hour + + + + + one_day + + + + + one_week + + + + + disabled + Вимкнено + + + + custom + + + + + EventLogCore + + + conference_created_event + + + + + conference_created_terminated + + + + + conference_participant_added_event + + + + + conference_participant_removed_event + + + + + conference_participant_set_admin_event + + + + + conference_participant_unset_admin_event + + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + SIP-адреса + + + + + + device_id + "Téléphone" + Телефон + + + + information_popup_error_title + Помилка + + + + information_popup_invalid_address_message + "Adresse invalide" + Недійсна адреса + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + Керування учасниками + + + + group_infos_participant_is_admin + Адміністратор + + + + menu_see_existing_contact + "Show contact" + Відобразити контакт + + + + menu_add_address_to_contacts + "Add to contacts" + Додати до контактів + + + + group_infos_give_admin_rights + + + + + group_infos_remove_admin_rights + + + + + group_infos_copy_sip_address + + + + + group_infos_remove_participant + + + + + group_infos_remove_participants_toast_title + + + + + group_infos_remove_participants_toast_message + + + + + GroupCreationFormLayout + + + return_accessible_name + Return + + + + + + group_start_dialog_subject_hint + "Nom du groupe" + Назва групи + + + + required + "Requis" + Обов'язково + + + + HelpPage + + + help_title + "Aide" + Допомога + + + + + help_about_title + "À propos de %1" + Про %1 + + + + help_about_privacy_policy_title + "Règles de confidentialité" + Політика конфіденційності + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + Яку інформацію збирає та використовує %1 + + + + help_about_version_title + "Version" + Версія + + + + help_about_gpl_licence_title + "Licences GPLv3" + Ліцензії GPLv3 + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + Зробити внесок у переклад %1 + + + + help_troubleshooting_title + "Dépannage" + Усунення несправностей + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + LDAP-сервери + + + + settings_contacts_ldap_subtitle + Додайте свої LDAP-сервери, щоб мати змогу шукати в пошуку. + + + + information_popup_success_title + Успіх + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + LDAP-сервер збережено + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + Сталася помилка, конфігурацію LDAP не збережено! + + + + information_popup_error_title + Помилка + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + Видалити LDAP-сервер? + + + + delete_ldap_server_accessible_name + Delete LDAP server + + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + URL-адреса сервера (не може бути порожньою) + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + Пов'язаний DN + + + + settings_contacts_ldap_password_title + "Mot de passe" + Пароль + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + Використовувати TLS + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + Дослідницька база (не може бути порожньою) + + + + settings_contacts_ldap_search_filter_title + "Filtre" + Фільтр + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + Максимальні результати + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + Затримка між двома запитами (у мілісекундах) + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + Тайм-аут (у секундах) + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + Мінімальна кількість символів для запиту + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + Атрибути назви + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + Атрибути SIP + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + SIP-домен + + + + settings_contacts_ldap_debug_title + "Débogage" + Налагодження + + + + LoadingPopup + + + cancel + Скасувати + + + + LoginForm + + + + username + Nom d'utilisateur : username + Ім'я користувача + + + + + password + Mot de passe + Пароль + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + assistant_account_login + "Connexion" + Підключення + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + Будь ласка, введіть ім'я користувача + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + Будь ласка, введіть пароль + + + + assistant_forgotten_password + "Mot de passe oublié ?" + Забули пароль? + + + + LoginLayout + + + + help_about_title + À propos de %1 + Про %1 + + + + help_about_privacy_policy_title + "Politique de confidentialité" + Політика конфіденційності + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + Перегляньте нашу політику конфіденційності + + + + help_about_version_title + "Version" + Версія + + + + help_about_licence_title + "Licence" + Ліцензія + + + + help_about_copyright_title + "Copyright + Copyright + + + + close + "Fermer" + Закрити + + + + LoginPage + + + return_accessible_name + Return + + + + + assistant_account_login + Connexion + Підключення + + + + assistant_no_account_yet + "Pas encore de compte ?" + Ще немає облікового запису? + + + + assistant_account_register + "S'inscrire" + Зареєструватися + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + Сторонній обліковий запис SIP + + + + assistant_login_remote_provisioning + "Configuration distante" + Віддалене налаштування + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + Завантажити віддалену конфігурацію + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + Будь ласка, введіть надане вам посилання для налаштування: + + + + cancel + Скасувати + + + + validate + "Valider" + Підтвердити + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + Посилання для віддаленого налаштування + + + + default_account_connection_state_error_toast + Помилка під час підключення + + + + MagicSearchList + + + device_id + Телефон + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + Виклики + + + + open_calls_page_accessible_name + "Open calls page" + + + + + bottom_navigation_contacts_label + "Contacts" + Контакти + + + + open_contacts_page_accessible_name + "Open contacts page" + + + + + bottom_navigation_conversations_label + "Conversations" + Розмови + + + + open_conversations_page_accessible_name + "Open conversations page" + + + + + bottom_navigation_meetings_label + "Réunions" + Наради + + + + open_contact_page_accessible_name + "Open meetings page" + + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + Знайти контакт, зателефонувати %1 + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + або надішліть повідомлення… + + + + do_not_disturb_accessible_name + "Do not disturb" + Не турбувати + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + Вимкнути режим «Не турбувати» + + + + information_popup_error_title + Помилка + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + URI голосової пошти не визначено. + + + + account_list_accessible_name + "Account list" + + + + + application_options_accessible_name + "Application options" + + + + + drawer_menu_manage_account + Mon compte + Мій обліковий запис + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + Увімкнути режим «Не турбувати» + + + + settings_title + Налаштування + + + + recordings_title + "Enregistrements" + Записи + + + + help_title + "Aide" + Допомога + + + + help_quit_title + "Quitter l'application" + Закрити застосунок + + + + quit_app_question + "Quitter %1 ?" + Закрити %1? + + + + drawer_menu_add_account + "Ajouter un compte" + Додати обліковий запис + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + Підключення успішне + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + Ви увійшли в режим %1 + + + + interoperable + interopérable + сумісним + + + + call_transfer_successful_toast_title + "Appel transféré" + Переадресація виклику + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + Вашого співрозмовника перенаправлено до обраного контакту + + + + information_popup_success_title + Збережено + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + Зміни збережено + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + Будь ласка, підтвердьте капчу на веб-сторінці + + + + assistant_register_error_title + "Erreur lors de la création" + Помилка під час створення + + + + assistant_register_success_title + "Compte créé" + Обліковий запис створено + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + Обліковий запис створено. Тепер ви можете увійти. + + + + assistant_register_error_code + "Erreur dans le code de validation" + Помилка в коді перевірки + + + + information_popup_error_title + Помилка + + + + ManageParticipants + + + group_infos_manage_participants + + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + Нарада + + + + meeting_schedule_broadcast_label + "Webinar" + Вебінар + + + + meeting_schedule_subject_hint + "Ajouter un titre" + Додати заголовок + + + + meeting_schedule_description_hint + "Ajouter une description" + Додати опис + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + Додати учасників + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + Надіслати запрошення учасникам + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + Нараду скасовано + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + Наради на сьогодні відсутні + + + + meeting_info_delete + "Supprimer la réunion" + Видалити нараду + + + + MeetingPage + + + meetings_add + "Créer une réunion" + Створити нараду + + + + meetings_list_empty + "Aucune réunion" + Нарада відсутня + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + Ви хочете скасувати та видалити цю нараду? + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + Ви хочете видалити цю нараду? + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + Скасувати та видалити + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + Тільки видалити + + + + meeting_schedule_delete_action + "Supprimer" + Видалити + + + + back_action + Retour + Назад + + + + meetings_list_title + Réunions + Наради + + + + meetings_search_hint + "Rechercher une réunion" + Знайти нараду + + + + list_filter_no_result_found + "Aucun résultat…" + Без результату… + + + + meetings_empty_list + "Aucune réunion" + Нарада відсутня + + + + + meeting_schedule_title + "Nouvelle réunion" + Нова нарада + + + + create + Створити + + + + + + + + + information_popup_error_title + Помилка + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + Будь ласка, введіть назву та оберіть хоча б одного учасника + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + Кінець конференції має бути нещодавнішим за її початок + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + Створення триває… + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + Нараду успішно створено + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + Не вдалося створити нараду! + + + + save + Зберегти + + + + + saved + "Enregistré" + Збережено + + + + meeting_info_updated_toast + "Réunion mise à jour" + Нараду оновлено + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + Триває оновлення інформації про нараду… + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + Не вдалося оновити нараду! + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + Додати учасників + + + + meeting_schedule_add_participants_apply + + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + + + + + + + + meeting_info_delete + "Supprimer la réunion" + Видалити нараду + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + URI наради скопійовано + + + + meeting_schedule_timezone_title + "Fuseau horaire" + Часовий пояс + + + + meeting_info_organizer_label + "Organisateur" + Організатор + + + + meeting_info_join_title + "Rejoindre la réunion" + Приєднатись до наради + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + Відображення + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + Режим відображення за замовчуванням + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + Як відображаються учасники на нарадах + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + + + + + click_to_delete_reaction_info + Click to delete + + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + + + + + no_shared_documents + No document + + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + Мелодія дзвінка - Вхідні виклики + + + + + + + choose_something_accessible_name + Choose %1 + + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + Динаміки + + + + + device_volume_accessible_name + %1 volume + + + + + + + multimedia_settings_microphone_title + "Microphone" + Мікрофон + + + + + multimedia_settings_camera_title + "Caméra" + Камера + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + Мережа + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + Поточний виклик + + + + call_start_group_call_title + Appel de groupe + Груповий виклик + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + Вихідний виклик + + + + dialog_accept + "Accepter" + Прийняти + + + + dialog_deny + "Refuser + Відхилити + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + + + + + new_file_message + + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + + + + + new_message_alert_accessible_name + New message on chatroom %1 + + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + Обробник відповідей HTTP-сервера OAuth не активний + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + Тайм-аут: Не автентифіковано + + + + oidc_authentication_granted_message + Authentication granted + Автентифікацію пройдена + + + + oidc_authentication_not_authenticated_message + Not authenticated + Не автентифіковано + + + + oidc_authentication_refresh_message + Refreshing token + Оновлення токена + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + Отримано тимчасові облікові дані + + + + oidc_authentication_network_error + Network error + Помилка мережі + + + + oidc_authentication_server_error + Server error + Помилка сервера + + + + oidc_authentication_token_not_found_error + OAuth token not found + OAuth токен не знайдено + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + OAuth секретний токен не знайдено + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + Зворотний OAuth виклик не перевірено + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + Запит авторизації з браузера + + + + oidc_authentication_no_token_found_error + + + + + oidc_authentication_request_token_message + Requesting access token + Запит токена доступу + + + + oidc_authentication_refresh_token_message + Refreshing access token + Оновлення токена доступу + + + + oidc_authentication_request_authorization_message + Requesting authorization + Запит на авторизацію + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + Запит тимчасових облікових даних + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + У конфігурації OpenID не знайдено кінцевої точки авторизації + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + У конфігурації OpenID не знайдено кінцевої точки токена + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + Адміністратор + + + + meeting_add_participants_title + "Ajouter des participants" + Додати учасників + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + + + + + number_phone_number_accessible_name + %1 number + + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + + + + + open_popup_panel_accessible_name + "Open %1" popup + + + + + Presence + + + contact_presence_reset_status + + + + + contact_presence_button_set_custom_status + + + + + contact_presence_button_edit_custom_status + Редагувати + + + + contact_presence_button_delete_custom_status + Видалити + + + + contact_presence_custom_status + + + + + PresenceNoteLayout + + + contact_presence_note_title + + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + + + + + contact_presence_button_save_custom_status + Зберегти + + + + QObject + + + media_encryption_dtls + DTLS + + + + media_encryption_none + Немає + + + + media_encryption_srtp + SRTP + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + Постквантовий ZRTP + + + + message_state_in_progress + "delivery in progress" + + + + + message_state_delivered + sent + + + + + message_state_not_delivered + error + + + + + message_state_file_transfer_error + cannot get file from server + + + + + message_state_file_transfer_done + file transfer has been completed successfully + + + + + message_state_delivered_to_user + received + + + + + message_state_displayed + read + + + + + message_state_file_transfer__in_progress + file transfer in progress + + + + + message_state_pending_delivery + pending delivery + + + + + message_state_file_transfer_cancelling + file transfer canceled + + + + + incoming + "Entrant" + Вхідний + + + + outgoing + "Sortant" + Вихідний + + + + conference_layout_active_speaker + "Participant actif" + Активний динамік + + + + conference_layout_grid + "Mosaïque" + Сітка + + + + conference_layout_audio_only + "Audio uniquement" + Тільки аудіо + + + + RegisterCheckingPage + + + email + "email" + email + + + + phone_number + "numéro de téléphone" + номер телефону + + + + confirm_register_title + "Inscription | Confirmer votre %1" + Зареєструватися | Підтвердити свій %1 + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + Ми надіслали вам код підтвердження на ваш %1 %2<br> Будь ласка, введіть його нижче + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + Не отримали код? + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + Надіслати код повторно + + + + RegisterPage + + + return_accessible_name + Return + + + + + assistant_account_register + "Inscription + Зареєструватися + + + + assistant_already_have_an_account + Вже маєте обліковий запис? + + + + assistant_account_login + Підключення + + + + assistant_account_register_with_phone_number + Зареєструватися за допомогою номера телефону + + + + assistant_account_register_with_email + Зареєструватися за допомогою електронної пошти + + + + + username + Ім'я користувача + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + domain + Домен + + + + + + phone_number + "Numéro de téléphone" + Номер телефону + + + + + email + Email + + + + + password + Пароль + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + Підтвердження пароля + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + Я приймаю %1 та %2 + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + умови використання + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + політика конфіденційності + + + + assistant_account_create + "Créer" + Створити + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + Будь ласка, введіть ім'я користувача + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + Будь ласка, введіть пароль + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + Паролі не збігаються + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + Будь ласка, введіть номер телефону + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + Будь ласка, введіть email + + + + SIPLoginPage + + + return_accessible_name + Return + + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + Сторонній обліковий запис SIP + + + + assistant_no_account_yet + Pas encore de compte ? + Ще немає облікового запису? + + + + assistant_account_register + S'inscrire + Зареєструватися + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + Деякі функції, такі як групові чати, відеоконференції тощо, вимагають облікового запису %1. + +Ці функції будуть приховані, якщо ви використовуєте сторонній обліковий запис SIP. + +Щоб увімкнути їх у комерційному проєкті, зв’яжіться з нами. + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + Створити обліковий запис Linphone + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + Я розумію + + + + + username + "Nom d'utilisateur" + Ім'я користувача + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + password + Пароль + + + + + sip_address_domain + "Domaine" + Домен + + + + + sip_address_display_name + Nom d'affichage + Ім'я для відображення + + + + + transport + "Transport" + Транспорт + + + + + assistant_account_login + Підключення + + + + assistant_account_login_missing_username + Будь ласка, введіть ім'я користувача + + + + assistant_account_login_missing_password + Будь ласка, введіть пароль + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + Будь ласка, введіть домен + + + + login_advanced_parameters_label + Advanced parameters + Додаткові налаштування + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + Будь ласка, виберіть екран або вікно, яким ви хочете поділитися з іншими учасниками. + + + + screencast_settings_all_screen_label + "Ecran entier" + Повний екран + + + + screencast_settings_one_window_label + "Fenêtre" + Вікно + + + + screencast_settings_screen + "Ecran %1" + Екран %1 + + + + stop + "Stop + Стоп + + + + share + "Partager" + Поділитись + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + Оберіть режим + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + Ви зможете змінити режим пізніше. + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + Наскрізне шифрування + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + Цей режим гарантує конфіденційність усіх ваших повідомлень. Наша технологія наскрізного шифрування забезпечує максимальну безпеку усього вашого спілкування. + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + Сумісний + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + Цей режим дозволяє вам користуватися всіма функціями Linphone, залишаючись сумісним з будь-яким іншим SIP-сервісом. + + + + dialog_continue + "Continuer" + Продовжити + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + Зашифрувати усі файли + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + Увага: після увімкнення його не можна вимкнути! + + + + SelectedChatView + + + chat_view_group_call_toast_message + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + reply_to_label + Reply to %1 + + + + + shared_medias_title + Shared medias + + + + + shared_documents_title + Shared documents + + + + + forward_to_title + Forward to… + + + + + conversations_title + Conversations + Розмови + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + + + + + SettingsPage + + + settings_title + "Paramètres" + Налаштування + + + + settings_calls_title + "Appels" + Виклики + + + + settings_call_forward + "Transfert d'appel" + + + + + settings_conversations_title + "Conversations" + Розмови + + + + settings_contacts_title + "Contacts" + Контакти + + + + settings_meetings_title + "Réunions" + Наради + + + + settings_network_title + "Affichage" "Security" "Réseau" + Мережа + + + + settings_advanced_title + "Paramètres avancés" + Додаткові налаштування + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + Незбережені зміни + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + У вас є незбережені зміни. Якщо ви залишите цю сторінку, ваші зміни будуть втрачені. Бажаєте зберегти зміни, перш ніж продовжити? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + Не зберігати + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + Зберегти + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + приєднуються… + + + + conference_participant_paused_text + "En pause" + Призупинено + + + + TextField + + + show_accessible_name + Show %1 + + + + + hide_accessible_name + Hide %1 + + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + Адреса виклику не є інтерпретованою SIP-адресою: %1 + + + + group_call_error_no_account + Не знайдено облікового запису за замовчуванням, не вдається створити груповий виклик + + + + group_call_error_participants_invite + Не вдалося запросити учасників до групового виклику + + + + group_call_error_creation + Не вдалося створити груповий виклик + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + + + + + unknown_audio_device_name + Невідома назва пристрою + + + + conference_invitation + + + + + conference_invitation_cancelled + + + + + conference_invitation_updated + + + + + Utils + + + nSeconds + + + + + + + + + nMinute + + + + + + + + + chat_message_forward_error + Cannot forward an invalid message + + + + + info_popup_forward_message_error + Could not forward message : %1 + + + + + info_popup_send_forward_message_error_message + Failed to create forward message + + + + + chat_message_reply_error + Cannot reply to invalid message + + + + + info_popup_reply_message_error + Could not send reply message : %1 + + + + + info_popup_send_reply_message_error_message + Failed to create reply message + + + + + nHour + + + + + + + + + + nDay + + + + + + + + + nWeek + + + + + + + + + contact_presence_status_available + + + + + contact_presence_status_busy + Зайнятий + + + + contact_presence_status_do_not_disturb + Не турбувати + + + + contact_presence_status_offline + Не в мережі + + + + contact_presence_status_away + + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + Не вдалося створити виклик + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + Помилка + + + + information_popup_group_call_not_created_message + Не вдалося створити груповий виклик + + + + number_of_years + %n an(s) + + %1 рік + %1 роки + %1 років + + + + + number_of_month + "%n mois" + + %1 місяць + %1 місяці + %1 місяців + + + + + number_of_weeks + %n semaine(s) + + %1 тиждень + %1 тижні + %1 тижнів + + + + + number_of_days + %n jour(s) + + %1 день + %1 дні + %1 днів + + + + + today + "Aujourd'hui" + Сьогодні + + + + yesterday + "Hier + Вчора + + + + duration_tomorrow + Tomorrow + + + + + duration_number_of_days + %1 jour(s) + + + + + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + + + + + recorder_error + Error with the recorder + + + + + + + chat_error + + + + + + + + + + info_popup_error_title + Error + Помилка + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + Приєднатися: + + + + meeting_waiting_room_join + "Rejoindre" + Приєднатися + + + + + cancel + Cancel + Скасувати + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + Приєднання до наради + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + Ви приєднаєтесь до наради за кілька хвилин... + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + Ласкаво просимо + + + + welcome_page_subtitle + "sur %1" + на %1 + + + + welcome_carousel_skip + "Passer" + Пропустити + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + <b>Захищений</b>, <b>відкритий код</b> та <b>французький</b> застосунок для спілкування. + + + + welcome_page_2_title + "Sécurisé" + Захищений + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + Ваше спілкування убезпечене завдяки <br><b>наскрізному шифруванню</b>. + + + + welcome_page_3_title + "Open Source" + Відкритий код + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + <b>Безкоштовний</b> застосунок з відкритим кодом<br>з <b>2001 року</b> + + + + next + "Suivant" + Наступний + + + + start + "Commencer" + Старт + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + Перевірка безпеки + + + + call_zrtp_sas_validation_skip + "Passer" + Пропустити + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + Щоб забезпечити шифрування, нам потрібно повторно автентифікувати пристрій вашого контакту. Обміняйтесь кодами: + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + Щоб забезпечити шифрування, нам потрібно автентифікувати пристрій вашого контакту. Будь ласка, обміняйтесь кодами: + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + Ваш код: + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + Відповідний код: + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + Наданий код не збігається. + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + Конфіденційність вашого дзвінка може бути порушена! + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + Немає збігу + + + + call_action_hang_up + "Raccrocher" + Завершити + + + + country + + + Afghanistan + Афганістан + + + + Albania + Албанія + + + + Algeria + Алжир + + + + AmericanSamoa + Американське Самоа + + + + Andorra + Андорра + + + + Angola + Ангола + + + + Anguilla + Ангілья + + + + AntiguaAndBarbuda + Антигуа і Барбуда + + + + Argentina + Аргентина + + + + Armenia + Вірменія + + + + Aruba + Аруба + + + + Australia + Австралія + + + + Austria + Австрія + + + + Azerbaijan + Азербайджан + + + + Bahamas + Багами + + + + Bahrain + Бахрейн + + + + Bangladesh + Бангладеш + + + + Barbados + Барбадос + + + + Belarus + білорусь + + + + Belgium + Бельгія + + + + Belize + Беліз + + + + Benin + Бенін + + + + Bermuda + Бермудські острови + + + + Bhutan + Бутан + + + + Bolivia + Болівія + + + + BosniaAndHerzegowina + Боснія та Герцеговина + + + + Botswana + Ботсвана + + + + Brazil + Бразилія + + + + Brunei + Бруней + + + + Bulgaria + Болгарія + + + + BurkinaFaso + Буркіна-Фасо + + + + Burundi + Бурунді + + + + Cambodia + Камбоджа + + + + Cameroon + Камерун + + + + Canada + Канада + + + + CapeVerde + Кабо-Верде + + + + CaymanIslands + Кайманові острови + + + + CentralAfricanRepublic + Центральноафриканська Республіка + + + + Chad + Чад + + + + Chile + Чилі + + + + China + Китай + + + + Colombia + Колумбія + + + + Comoros + Коморські Острови + + + + PeoplesRepublicOfCongo + Народна Республіка Конго + + + + CookIslands + Острови Кука + + + + CostaRica + Коста-Рика + + + + IvoryCoast + Кот-д'Івуар + + + + Croatia + Хорватія + + + + Cuba + Куба + + + + Cyprus + Кіпр + + + + CzechRepublic + Чеська Республіка + + + + Denmark + Данія + + + + Djibouti + Джибуті + + + + Dominica + Домініка + + + + DominicanRepublic + Домініканська Республіка + + + + Ecuador + Еквадор + + + + Egypt + Єгипет + + + + ElSalvador + Сальвадор + + + + EquatorialGuinea + Екваторіальна Гвінея + + + + Eritrea + Еритрея + + + + Estonia + Естонія + + + + Ethiopia + Ефіопія + + + + FalklandIslands + Фолклендські острови + + + + FaroeIslands + Фарерські острови + + + + Fiji + Фіджі + + + + Finland + Фінляндія + + + + France + Франція + + + + FrenchGuiana + Французька Гвіана + + + + FrenchPolynesia + Французька Полінезія + + + + Gabon + Габон + + + + Gambia + Гамбія + + + + Georgia + Грузія + + + + Germany + Німеччина + + + + Ghana + Гана + + + + Gibraltar + Гібралтар + + + + Greece + Греція + + + + Greenland + Гренландія + + + + Grenada + Гренада + + + + Guadeloupe + Гваделупа + + + + Guam + Гуам + + + + Guatemala + Гватемала + + + + Guinea + Гвінея + + + + GuineaBissau + Гвінея-Бісау + + + + Guyana + Гайана + + + + Haiti + Гаїті + + + + Honduras + Гондурас + + + + DemocraticRepublicOfCongo + Демократична Республіка Конго + + + + HongKong + Гонконг + + + + Hungary + Угорщина + + + + Iceland + Ісландія + + + + India + Індія + + + + Indonesia + Індонезія + + + + Iran + Іран + + + + Iraq + Ірак + + + + Ireland + Ірландія + + + + Israel + Ізраїль + + + + Italy + Італія + + + + Jamaica + Ямайка + + + + Japan + Японія + + + + Jordan + Йорданія + + + + Kazakhstan + Казахстан + + + + Kenya + Кенія + + + + Kiribati + Кірибаті + + + + DemocraticRepublicOfKorea + Демократична Республіка Корея + + + + RepublicOfKorea + Республіка Корея + + + + Kuwait + Кувейт + + + + Kyrgyzstan + Киргизстан + + + + Laos + Лаос + + + + Latvia + Латвія + + + + Lebanon + Ліван + + + + Lesotho + Лесото + + + + Liberia + Ліберія + + + + Libya + Лівія + + + + Liechtenstein + Ліхтенштейн + + + + Lithuania + Литва + + + + Luxembourg + Люксембург + + + + Macau + Макао + + + + Macedonia + Македонія + + + + Madagascar + Мадагаскар + + + + Malawi + Малаві + + + + Malaysia + Малайзія + + + + Maldives + Мальдіви + + + + Mali + Малі + + + + Malta + Мальта + + + + MarshallIslands + Маршаллові острови + + + + Martinique + Мартиніка + + + + Mauritania + Мавританія + + + + Mauritius + Маврикій + + + + Mayotte + Майотта + + + + Mexico + Мексика + + + + Micronesia + Мікронезія + + + + Moldova + Молдова + + + + Monaco + Монако + + + + Mongolia + Монголія + + + + Montenegro + Чорногорія + + + + Montserrat + Монтсеррат + + + + Morocco + Марокко + + + + Mozambique + Мозамбік + + + + Myanmar + М'янма + + + + Namibia + Намібія + + + + NauruCountry + Країна Науру + + + + Nepal + Непал + + + + Netherlands + Нідерланди + + + + NewCaledonia + Нова Каледонія + + + + NewZealand + Нова Зеландія + + + + Nicaragua + Нікарагуа + + + + Niger + Нігер + + + + Nigeria + Нігерія + + + + Niue + Ніуе + + + + NorfolkIsland + Острів Норфолк + + + + NorthernMarianaIslands + Північні Маріанські острови + + + + Norway + Норвегія + + + + Oman + Оман + + + + Pakistan + Пакистан + + + + Palau + Палау + + + + PalestinianTerritories + Палестинські території + + + + Panama + Панама + + + + PapuaNewGuinea + Папуа-Нова Гвінея + + + + Paraguay + Парагвай + + + + Peru + Перу + + + + Philippines + Філіппіни + + + + Poland + Польща + + + + Portugal + Португалія + + + + PuertoRico + Пуерто-Рико + + + + Qatar + Катар + + + + Reunion + Реюніон + + + + Romania + Румунія + + + + RussianFederation + росія + + + + Rwanda + Руанда + + + + SaintHelena + Свята Єлена + + + + SaintKittsAndNevis + Сент-Кітс-і-Невіс + + + + SaintLucia + Сент-Люсія + + + + SaintPierreAndMiquelon + Сен-П'єр і Мікелон + + + + SaintVincentAndTheGrenadines + Сен-Вінсент і Гренадини + + + + Samoa + Самоа + + + + SanMarino + Сан-Марино + + + + SaoTomeAndPrincipe + Сан-Томе і Прінсіпі + + + + SaudiArabia + Саудівська Аравія + + + + Senegal + Сенегал + + + + Serbia + Сербія + + + + Seychelles + Сейшельські острови + + + + SierraLeone + Сьєрра-Леоне + + + + Singapore + Сінгапур + + + + Slovakia + Словаччина + + + + Slovenia + Словенія + + + + SolomonIslands + Соломонові острови + + + + Somalia + Сомалі + + + + SouthAfrica + Південна Африка + + + + Spain + Іспанія + + + + SriLanka + Шрі-Ланка + + + + Sudan + Судан + + + + Suriname + Суринам + + + + Swaziland + Свазіленд + + + + Sweden + Швеція + + + + Switzerland + Швейцарія + + + + Syria + Сирія + + + + Taiwan + Тайвань + + + + Tajikistan + Таджикистан + + + + Tanzania + Танзанія + + + + Thailand + Таїланд + + + + Togo + Того + + + + Tokelau + Токелау + + + + Tonga + Тонга + + + + TrinidadAndTobago + Тринідад і Тобаго + + + + Tunisia + Туніс + + + + Turkey + Туреччина + + + + Turkmenistan + Туркменістан + + + + TurksAndCaicosIslands + Острови Теркс і Кайкос + + + + Tuvalu + Тувалу + + + + Uganda + Уганда + + + + Ukraine + Україна + + + + UnitedArabEmirates + Об'єднані Арабські Емірати + + + + UnitedKingdom + Сполучене Королівство Великобританії + + + + UnitedStates + США + + + + Uruguay + Уругвай + + + + Uzbekistan + Узбекистан + + + + Vanuatu + Вануату + + + + Venezuela + Венесуела + + + + Vietnam + В'єтнам + + + + WallisAndFutunaIslands + Острови Уолліс і Футуна + + + + Yemen + Ємен + + + + Zambia + Замбія + + + + Zimbabwe + Зімбабве + + + + utils + + + formatYears + '%1 year' + + %1 рік + %1 роки + %1 років + + + + + formatMonths + '%1 month' + + %1 місяць + %1 місяці + %1 місяців + + + + + formatWeeks + '%1 week' + + %1 тиждень + %1 тижні + %1 тижнів + + + + + formatDays + '%1 day' + + %1 день + %1 дні + %1 днів + + + + + formatHours + '%1 hour' + + %1 година + %1 години + %1 годин + + + + + formatMinutes + '%1 minute' + + %1 хвилина + %1 хвилини + %1 хвилин + + + + + formatSeconds + '%1 second' + + %1 секунда + %1 секунди + %1 секунд + + + + + codec_install + "Installation de codec" + Встановлення кодеків + + + + download_codec + "Télécharger le codec %1 (%2) ?" + Завантажити кодек %1 (%2) ? + + + + information_popup_success_title + "Succès" + Успіх + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + Кодек успішно встановлено. + + + + + + information_popup_error_title + Помилка + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + Кодек не вдалося встановити. + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + Кодек не вдалося зберегти. + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + Кодек не вдалося завантажити. + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + Триває завантаження… + + + + okButton + Ок + + + + CoreModel + + + info_popup_error_title + Помилка + + + diff --git a/Linphone/data/languages/zh_Hans.ts b/Linphone/data/languages/zh_Hans.ts new file mode 100644 index 000000000..7e4f33e58 --- /dev/null +++ b/Linphone/data/languages/zh_Hans.ts @@ -0,0 +1,7420 @@ + + + + + AbstractSettingsLayout + + + return_accessible_name + Return + 返回 + + + + save + "Enregistrer" + 保存 + + + + save_settings_accessible_name + Save %1 settings + 保存%1设置 + + + + AbstractWindow + + + contact_dialog_pick_phone_number_or_sip_address_title + "Choisissez un numéro ou adresse SIP" + 选择一个SIP号码或地址 + + + + fps_counter + %1 FPS + + + + AccountCore + + + drawer_menu_account_connection_status_connected + "Connecté" + 已连接 + + + + drawer_menu_account_connection_status_refreshing + 正在刷新… + + + + drawer_menu_account_connection_status_progress + 正在连接… + + + + drawer_menu_account_connection_status_failed + 错误 + + + + drawer_menu_account_connection_status_cleared + 已禁用 + + + + manage_account_status_connected_summary + "Vous êtes en ligne et joignable." + 您已在线并且可以联系到。 + + + + manage_account_status_failed_summary + "Erreur de connexion, vérifiez vos paramètres." + 连接错误,请检查您的设置。 + + + + manage_account_status_cleared_summary + "Compte désactivé, vous ne recevrez ni appel ni message." + 账户已禁用,您将不会收到电话或消息。 + + + + AccountDeviceList + + + manage_account_no_device_found_error_message + "Erreur lors de la récupération des appareils" + 检索设备时出错 + + + + AccountListView + + + add_an_account + Add an account + 添加账户 + + + + AccountManager + + + assistant_account_login_already_connected_error + "The account is already connected" + 该账户已连接 + + + + assistant_account_login_proxy_address_error + "Unable to create proxy address. Please check the domain name." + 无法创建代理地址。请检查域名。 + + + + assistant_account_login_address_configuration_error + "Unable to configure address: `%1`." + 无法配置地址:“%1”。 + + + + assistant_account_login_params_configuration_error + "Unable to configure account settings." + 无法配置账户设置。 + + + + assistant_account_login_forbidden_error + "Username and password do not match" + 用户名和密码不匹配 + + + + assistant_account_login_error + "Error during connection, please verify your parameters" + 连接时出错 + + + + assistant_account_add_error + "Unable to add account." + 无法添加账户。 + + + + AccountModel + + + set_mwi_server_address_failed_error_message + "Unable to set voicemail server address, failed creating address from %1" : %1 is address + 无法设置语音信箱服务器地址,未能从%1创建地址 + + + + set_server_address_failed_error_message + "Unable to set server address, failed creating address from %1" + 无法设置服务器地址,未能从%1创建地址 + + + + set_outbound_proxy_uri_failed_error_message + Unable to set outbound proxy uri, failed creating address from %1 + 无法设置出站代理 URI,无法从 %1 创建地址 + + + + set_conference_factory_address_failed_error_message + "Unable to set the conversation server address, failed creating address from %1" + 无法设置会话服务器地址,未能从%1创建地址 + + + + set_audio_conference_factory_address_failed_error_message + "Unable to set the meeting server address, failed creating address from %1" + 无法设置会议服务器地址,未能从%1创建地址 + + + + set_voicemail_address_failed_error_message + Unable to set voicemail address, failed creating address from %1 + 无法设置语音信箱地址,无法从%1创建地址 + + + + AccountSettingsGeneralLayout + + + manage_account_details_title + "Détails" + 详细 + + + + manage_account_details_subtitle + Éditer les informations de votre compte. + 编辑您账户户信息。 + + + + manage_account_devices_title + "Vos appareils" + 您的设备 + + + + manage_account_devices_subtitle + "La liste des appareils connectés à votre compte. Vous pouvez retirer les appareils que vous n’utilisez plus." + 连接到您账户的设备列表。您可以删除不再使用的设备。 + + + + manage_account_add_picture + "Ajouter une image" + 添加图像 + + + + manage_account_edit_picture + "Modifier l'image" + 修改图像 + + + + manage_account_remove_picture + "Supprimer l'image" + 删除图像 + + + + sip_address + SIP地址 + + + + sip_address_display_name + "Nom d'affichage + 昵称 + + + + sip_address_display_name_explaination + "Le nom qui sera affiché à vos correspondants lors de vos échanges." + 在交流过程中显示给您的联系人的姓名。 + + + + manage_account_international_prefix + Indicatif international* + 国际代码* + + + + manage_account_delete + "Déconnecter mon compte" + 断开我的账户 + + + + manage_account_delete_message + 您的账户将从此Linphone客户端中删除,但您将在其他客户端上保持连接 + + + + manage_account_dialog_remove_account_title + "Se déconnecter du compte ?" + 退出账户? + + + + manage_account_dialog_remove_account_message + Si vous souhaitez supprimer définitivement votre compte rendez-vous sur : https://sip.linphone.org + 如果您想永久删除您的账户,请转到:https://sip.linphone.org + + + + error + Erreur + 错误 + + + + manage_account_device_remove + "Supprimer" + 删除 + + + + manage_account_device_remove_confirm_dialog + 删除 %1? + + + + manage_account_device_last_connection + "Dernière connexion:" + 上次登录时间: + + + + device_last_updated_time_no_info + "No information" + 无信息 + + + + AccountSettingsPage + + + drawer_menu_manage_account + "Mon compte" + 我的账户 + + + + settings_general_title + "Général" + 通用 + + + + settings_account_title + "Paramètres de compte" + 账户设置 + + + + contact_editor_popup_abort_confirmation_title + "Modifications non enregistrées" + 未保存的更改 + + + + contact_editor_popup_abort_confirmation_message + "Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ?" + 您有未保存的更改。如果您离开此页面,您的更改将丢失。您想在继续之前保存更改吗? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" "Enregistrer" + 不保存 + + + + contact_editor_dialog_abort_confirmation_save + 保存 + + + + AccountSettingsParametersLayout + + + settings_title + 设置 + + + + settings_account_title + 账户设置 + + + + info_popup_invalid_registrar_uri_message + Registrar uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_invalid_outbound_proxy_message + Outbound proxy uri is invalid. Please make sure it matches the following format : sip:<host>:<port>;transport=<transport> (:<port> is optional) + + + + + info_popup_error_title + 错误 + + + + information_popup_success_title + 成功 + + + + contact_editor_saved_changes_toast + "Modifications sauvegardés" + 已保存更改 + + + + information_popup_error_title + 错误 + + + + account_settings_mwi_uri_title + "URI du serveur de messagerie vocale" + 语音邮箱服务器URI + + + + account_settings_voicemail_uri_title + "URI de messagerie vocale" + 语音邮箱服务器URI + + + + account_settings_transport_title + "Transport" + 传输 + + + + account_settings_registrar_uri_title + + + + + account_settings_sip_proxy_url_title + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + account_settings_stun_server_url_title + "Adresse du serveur STUN" + STUN服务器地址 + + + + account_settings_enable_ice_title + "Activer ICE" + 启用ICE + + + + account_settings_avpf_title + "AVPF" + AVPF + + + + account_settings_bundle_mode_title + "Mode bundle" + 捆绑模式 + + + + account_settings_expire_title + "Expiration (en seconde)" + 过期时间(秒) + + + + account_settings_conference_factory_uri_title + "URI du serveur de conversations" + 会议工厂URI + + + + account_settings_audio_video_conference_factory_uri_title + "URI du serveur de réunions" + 视频会议工厂URI + + + + account_settings_lime_server_url_title + "URL du serveur d’échange de clés de chiffrement" + 端对端加密服务器URL + + + + AddParticipantsForm + + + search_bar_search_contacts_placeholder + "Rechercher des contacts" + 查找联系人 + + + + add_participant_selected_count + 0 + "%n participant(s) sélectionné(s)" + + + + + + + remove_participant_accessible_name + Remove participant %1 + + + + + list_filter_no_result_found + "Aucun contact" + 未找到结果… + + + + contact_list_empty + 暂时没有联系 + + + + AdvancedSettingsLayout + + + settings_system_title + System + 系统 + + + + settings_remote_provisioning_title + Remote provisioning + 远程部署 + + + + settings_security_title + Security / Encryption + 安全/加密 + + + + settings_advanced_audio_codecs_title + Audio codecs + 音频编解码器 + + + + settings_advanced_video_codecs_title + Video codecs + 视频编解码器 + + + + settings_advanced_auto_start_title + Auto start %1 + 自动启动%1 + + + + settings_advanced_remote_provisioning_url + Remote provisioning URL + 远程部署URL + + + + settings_advanced_download_apply_remote_provisioning + Download and apply + 下载并应用 + + + + information_popup_error_title + Invalid URL format + 错误 + + + + settings_advanced_invalid_url_message + URL格式无效 + + + + download_apply_remote_provisioning_accessible_name + "Download and apply remote provisioning" + + + + + + settings_advanced_media_encryption_title + Media encryption + 媒体加密 + + + + settings_advanced_media_encryption_mandatory_title + Media encryption mandatory + 强制媒体加密 + + + + settings_advanced_create_endtoend_encrypted_meetings_title + Create end to end encrypted meetings and group calls + 创建端到端加密会议和群组呼叫 + + + + settings_advanced_hide_fps_title + 隐藏FPS + + + + AllContactListView + + + car_favorites_contacts_title + "Favoris" + 收藏夹 + + + + generic_address_picker_contacts_list_title + 'Contacts' + 联系人 + + + + generic_address_picker_suggestions_list_title + "Suggestions" + 建议 + + + + App + + + remote_provisioning_dialog + Voulez-vous télécharger et appliquer la configuration depuis cette adresse ? + 您想从该地址下载并应用远程部署配置吗? + + + + + info_popup_error_title + Error + 错误 + + + + + info_popup_configuration_failed_message + Remote provisioning failed : %1 + 远程配置失败:%1 + + + + configuration_error_detail + not reachable + 无法接通 + + + + application_description + "A free and open source SIP video-phone." + 一款自由开源的SIP可视电话。 + + + + command_line_arg_order + "Send an order to the application towards a command line" + 通过命令行向应用程序发送命令 + + + + command_line_option_show_help + 显示此帮助 + + + + command_line_option_show_app_version + 显示应用程序版本 + + + + command_line_option_config_to_fetch + "Specify the linphone configuration file to be fetched. It will be merged with the current configuration." + 指定要获取的LinPhone配置文件。它将与当前配置合并。 + + + + command_line_option_config_to_fetch_arg + "URL, path or file" + URL、路径或文件 + + + + command_line_option_minimized + 最小化 + + + + command_line_option_log_to_stdout + 运行时将一些调试信息记录到标准输出stdout + + + + command_line_option_print_app_logs_only + "Print only logs from the application" + 仅打印应用程序中的日志 + + + + hide_action + "Cacher" "Afficher" + 隐藏 + + + + show_action + 显示 + + + + quit_action + "Quitter" + 退出 + + + + mark_all_read_action + + + + + info_popup_new_version_download_label + + + + + AuthenticationDialog + + + account_settings_dialog_invalid_password_title + "Authentification requise" + 需要认证 + + + + account_settings_dialog_invalid_password_message + La connexion a échoué pour le compte %1. Vous pouvez renseigner votre mot de passe à nouveau ou bien vérifier les options de configuration de votre compte. + 账户%1登录失败。您可以再次输入密码或检查账户设置。 + + + + password + 密码 + + + + cancel + "Annuler + 取消 + + + + assistant_account_login + Connexion + 连接 + + + + assistant_account_login_missing_password + Veuillez saisir un mot de passe + 请输入密码 + + + + CallCore + + + call_record_end_message + "Enregistrement terminé" + 录制已结束 + + + + call_record_saved_in_file_message + "L'appel a été enregistré dans le fichier : %1" + 录制已保存在文件中:%1 + + + + + call_stats_codec_label + "Codec: %1 / %2 kHz" + 编解码器:%1/%2 kHz + + + + + call_stats_bandwidth_label + "Bande passante : %1 %2 kbits/s %3 %4 kbits/s" + 带宽:%1 %2 kbits/s %3 %4 kbits/s + + + + + call_stats_loss_rate_label + "Taux de perte: %1% %2%" + 丢失率: %1% %2% + + + + call_stats_jitter_buffer_label + "Tampon de gigue: %1 ms" + 抖动缓冲区:%1毫秒 + + + + call_stats_resolution_label + "Définition vidéo : %1 %2 %3 %4" + 视频分辨率:%1 %2 %3 %4 + + + + call_stats_fps_label + "FPS : %1 %2 %3 %4" + FPS : %1 %2 %3 %4 + + + + media_encryption_dtls + DTLS + DTLS + + + + media_encryption_none + None + 没有 + + + + media_encryption_srtp + SRTP + SRTP + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + 后量子ZRTP + + + + CallForwardSettingsLayout + + + settings_call_forward_activate_title + "Forward calls" + + + + + settings_call_forward_activate_subtitle + "Enable call forwarding to voicemail or sip address" + + + + + settings_call_forward_destination_choose + Forward to destination + + + + + + + settings_call_forward_to_voicemail + + + + + settings_call_forward_to_sipaddress + + + + + settings_call_forward_sipaddress_title + SIP Address + + + + + settings_call_forward_sipaddress_placeholder + + + + + settings_call_forward_address_cannot_be_empty + + + + + settings_call_forward_address_timeout + + + + + settings_call_forward_address_progress_disabling + + + + + settings_call_forward_address_progress_enabling + + + + + settings_call_forward_activation_success + + + + + settings_call_forward_deactivation_success + + + + + CallHistoryLayout + + + meeting_info_join_title + "Rejoindre la réunion" + 加入会议 + + + + contact_call_action + "Appel" + 通话 + + + + contact_message_action + "Message" + 消息 + + + + contact_video_call_action + "Appel Video" + 视频呼叫 + + + + CallHistoryListView + + + call_name_accessible_button + Call %1 + + + + + CallLayout + + + meeting_event_conference_destroyed + "Vous avez quitté la conférence" + 你已离开会议 + + + + call_ended_by_user + "Vous avez terminé l'appel" + 您已结束通话 + + + + call_ended_by_remote + "Votre correspondant a terminé l'appel" + 您的来电者已结束通话 + + + + conference_call_empty + "En attente d'autres participants…" + 正在等待其他参与者… + + + + conference_share_link_title + "Partager le lien" + 分享链接 + + + + copied + 已复制 + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + 会议链接已复制到剪贴板 + + + + CallList + + + remote_group_call + Remote group call + + + + + local_group_call + + + + + info_popup_error_title + 错误 + + + + info_popup_merge_calls_failed_message + Failed to merge calls ! + + + + + CallListView + + + meeting + "Réunion + 会议 + + + + call + "Appel" + 通话 + + + + paused_call_or_meeting + "%1 en pause" + %1已暂停 + + + + ongoing_call_or_meeting + "%1 en cours" + 正在进行%1 + + + + transfer_call_name_accessible_name + Transfer call %1 + + + + + resume_call_name_accessible_name + Resume %1 call + + + + + pause_call_name_accessible_name + Pause %1 call + + + + + end_call_name_accessible_name + End %1 call + + + + + CallModel + + + call_error_no_response_toast + "No response" + + + + + call_error_forbidden_resource_toast + "403 : Forbidden resource" + + + + + call_error_not_answered_toast + "Request timeout" + + + + + call_error_user_declined_toast + "User declined the call" + 用户拒绝了通话 + + + + call_error_user_not_found_toast + "User was not found" + 找不到用户 + + + + call_error_user_busy_toast + "User is busy" + 用户正忙 + + + + call_error_incompatible_media_params_toast + "User can&apos;t accept your call" + 用户无法接听您的电话 + + + + call_error_io_error_toast + "Unavailable service or network error" + 服务不可用或网络错误 + + + + call_error_do_not_disturb_toast + "Le correspondant ne peut être dérangé" + + + + + call_error_temporarily_unavailable_toast + "Temporarily unavailable" + + + + + call_error_server_timeout_toast + "Server tiemout" + 服务器连接超时 + + + + CallPage + + + call_forward_to_address_info + + + + + call_forward_to_address_info_voicemail + + + + + history_call_start_title + "Nouvel appel" + 新呼叫 + + + + call_history_empty_title + "Historique d'appel vide" + 清空通话记录 + + + + history_dialog_delete_all_call_logs_title + Supprimer l'historique d'appels ? + 删除通话记录? + + + + history_dialog_delete_all_call_logs_message + "L'ensemble de votre historique d'appels sera définitivement supprimé." + 通话记录将被永久删除。 + + + + history_dialog_delete_call_logs_title + Supprimer l'historique d'appels ? + 删除通话记录? + + + + history_dialog_delete_call_logs_message + "L'ensemble de votre historique d'appels avec ce correspondant sera définitivement supprimé." + 与此用户的通话记录将被永久删除。 + + + + call_history_call_list_title + "Appels" + 通话 + + + + call_history_options_accessible_name + + + + + + menu_delete_history + "Supprimer l'historique" + 删除历史 + + + + call_history_list_options_accessible_name + Call history options + + + + + create_new_call_accessible_name + Create new call + + + + + call_search_in_history + "Rechercher un appel" + 查找通话 + + + + list_filter_no_result_found + "Aucun résultat…" + 未找到结果… + + + + history_list_empty_history + "Aucun appel dans votre historique" + 没有通话历史 + + + + return_to_call_history_accessible_name + Return to call history + + + + + call_action_start_new_call + "Nouvel appel" + 新呼叫 + + + + call_start_group_call_title + "Appel de groupe" + 群组通话 + + + + call_action_start_group_call + "Lancer" + 开始 + + + + + + information_popup_error_title + 错误 + + + + group_call_error_must_have_name + "Un nom doit être donné à l'appel de groupe + 必须为呼叫提供名称 + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + 您未连接 + + + + menu_see_existing_contact + "Show contact" + 显示联系人 + + + + menu_add_address_to_contacts + "Add to contacts" + 添加到联系人通讯簿 + + + + menu_copy_sip_address + "Copier l'adresse SIP" + 复制SIP地址 + + + + sip_address_copied_to_clipboard_toast + Adresse copiée + SIP地址已复制 + + + + sip_address_copied_to_clipboard_message + L'adresse a été copié dans le presse_papiers + 地址已复制到剪贴板 + + + + sip_address_copy_to_clipboard_error + "Erreur lors de la copie de l'adresse" + 复制地址时出错 + + + + notification_missed_call_title + "Appel manqué" + 未接来电 + + + + call_outgoing + "Appel sortant" + 呼出 + + + + call_audio_incoming + "Appel entrant" + 来电 + + + + CallSettingsLayout + + + settings_call_devices_title + "Périphériques" + 设备 + + + + settings_call_devices_subtitle + "Vous pouvez modifier les périphériques de sortie audio, le microphone et la caméra de capture." + 您可以更改音频输出设备、麦克风和摄像头。 + + + + settings_calls_echo_canceller_title + "Annulateur d'écho" + 回声消除器 + + + + settings_calls_echo_canceller_subtitle + "Évite que de l'écho soit entendu par votre correspondant" + 防止对方听到回声 + + + + settings_calls_auto_record_title + "Activer l’enregistrement automatique des appels" + 启用通话自动录制 + + + + settings_call_enable_tones_title + Tonalités + 铃声 + + + + settings_call_enable_tones_subtitle + Activer les tonalités + 启用铃声 + + + + settings_calls_enable_video_title + "Autoriser la vidéo" + 启用视频 + + + + settings_calls_command_line_title + Command line + + + + + settings_calls_command_line_title_place_holder + + + + + settings_calls_change_ringtone_title + "Change ringtone" + + + + + settings_calls_current_ringtone_filename + Current ringtone : + + + + + choose_ringtone_file_accessible_name + Choose ringtone file + + + + + CallSettingsPanel + + + close_name_panel_accessible_button + Close %1 panel + + + + + CallStatistics + + + call_stats_audio_title + "Audio" + 音频 + + + + call_stats_video_title + "Vidéo" + 视频 + + + + CallsWindow + + + call_transfer_in_progress_toast + "Transfert en cours, veuillez patienter" + 转发正在进行中,请稍候 + + + + + information_popup_error_title + 错误 + + + + call_transfer_failed_toast + "Le transfert d'appel a échoué" + 转发失败 + + + + conference_error_empty_uri + "La conférence n'a pas pu démarrer en raison d'une erreur d'uri." + 由于URI错误,会议无法开始。 + + + + call_close_window_dialog_title + "Terminer tous les appels en cours ?" + 结束所有当前通话? + + + + call_close_window_dialog_message + "La fenêtre est sur le point d'être fermée. Cela terminera tous les appels en cours." + 窗户即将关闭。这将结束所有当前通话。 + + + + call_can_be_trusted_toast + "Appareil authentifié" + 受信任的设备 + + + + call_dir + %1通话 + + + + call_ended + Appel terminé + 呼叫结束 + + + + conference_paused + Meeting paused + 会议已暂停 + + + + call_paused + Call paused + 通话已暂停 + + + + + call_srtp_point_to_point_encrypted + Appel chiffré de point à point + 点对点加密呼叫 + + + + call_zrtp_sas_validation_required + Vérification nécessaire + 需要验证 + + + + call_zrtp_end_to_end_encrypted + Appel chiffré de bout en bout + 端到端加密通话 + + + + call_not_encrypted + "Appel non chiffré" + 未加密呼叫 + + + + + call_waiting_for_encryption_info + Waiting for encryption + 正在等待加密 + + + + call_paused_by_remote + Call paused by remote + 通话被远程暂停 + + + + conference_user_is_recording + "You are recording the meeting" + 您正在录制会议 + + + + call_user_is_recording + "You are recording the call" + 您正在录制通话 + + + + conference_remote_is_recording + "Someone is recording the meeting" + 有人正在录制会议 + + + + call_remote_recording + "%1 is recording the call" + %1录制通话 + + + + call_stop_recording + "Stop recording" + 停止录制 + + + + add + 添加 + + + + call_transfer_current_call_title + "Transférer %1 à…" + 转发%1到… + + + + + call_transfer_confirm_dialog_tittle + "Confirmer le transfert" + 确认转发 + + + + + call_transfer_confirm_dialog_message + "Vous allez transférer %1 à %2." + 您将把%1转发到%2。 + + + + call_action_start_new_call + "Nouvel appel" + 新呼叫 + + + + + call_action_show_dialer + "Pavé numérique" + 拨号 + + + + call_action_change_layout + "Modifier la disposition" + 更改布局 + + + + call_action_go_to_calls_list + "Liste d'appel" + 通话列表 + + + + Merger tous les appels + call_action_merge_calls + 合并所有通话 + + + + + call_action_go_to_settings + "Paramètres" + 设置 + + + + conference_action_screen_sharing + "Partage de votre écran" + 共享您的屏幕 + + + + conference_share_link_title + Partager le lien de la réunion + 共享会议链接 + + + + copied + Copié + 已复制 + + + + information_popup_meeting_address_copied_to_clipboard + Le lien de la réunion a été copié dans le presse-papier + 会议链接已复制到剪贴板 + + + + + + conference_participants_list_title + "Participants (%1)" + 参与者(%1) + + + + + group_call_participant_selected + + + + + + + meeting_schedule_add_participants_title + 添加参与者 + + + + call_encryption_title + Chiffrement + 加密 + + + + open_statistic_panel_accessible_name + + + + + conference_user_is_sharing_screen + "You are sharing your screen" + + + + + call_stop_screen_sharing + "Stop sharing" + 停止 + + + + stop_recording_accessible_name + Stop recording + 停止录制 + + + + stop_screen_sharing_accessible_name + "Stop screen sharing" + + + + + call_stats_title + Statistiques + 统计 + + + + + call_action_end_call + "Terminer l'appel" + 结束通话 + + + + + call_action_resume_call + "Reprendre l'appel" + 恢复通话 + + + + + call_action_pause_call + "Mettre l'appel en pause" + 暂停通话 + + + + + call_action_transfer_call + "Transférer l'appel" + 转发通话 + + + + + call_action_start_new_call_hint + "Initier un nouvel appel" + 开始新呼叫 + + + + + call_display_call_list_hint + "Afficher la liste d'appels" + 查看通话列表 + + + + + call_deactivate_video_hint + "Désactiver la vidéo" "Activer la vidéo" + 关闭视频 + + + + + call_activate_video_hint + 启用视频 + + + + + call_activate_microphone + "Activer le micro" + 激活麦克风 + + + + + call_deactivate_microphone + "Désactiver le micro" + 静音麦克风 + + + + + call_share_screen_hint + Partager l'écran… + 共享屏幕… + + + + + call_open_chat_hint + Open chat… + + + + + + call_rise_hand_hint + "Lever la main" + 举来 + + + + + call_send_reaction_hint + "Envoyer une réaction" + 发送响应 + + + + + call_manage_participants_hint + "Gérer les participants" + 管理参与者 + + + + + call_more_options_hint + "Plus d'options…" + 更多选项… + + + + call_action_change_conference_layout + "Modifier la disposition" + 更改布局 + + + + call_action_full_screen + "Mode Plein écran" + 全屏模式 + + + + call_action_stop_recording + "Terminer l'enregistrement" + 结束录制 + + + + call_action_record + "Enregistrer l'appel" + 录制通话 + + + + call_activate_speaker_hint + "Activer le son" + 激活扬声器 + + + + call_deactivate_speaker_hint + "Désactiver le son" + 静音扬声器 + + + + CarddavSettingsLayout + + + settings_contacts_carddav_title + Carnet d'adresse CardDAV + CardDAV通讯地址簿 + + + + settings_contacts_carddav_subtitle + "Ajouter un carnet d’adresse CardDAV pour synchroniser vos contacts Linphone avec un carnet d’adresse tiers." + 添加CardDAV通讯簿,将您的Linphone联系人与第三方通讯簿同步。 + + + + information_popup_error_title + 错误 + + + + settings_contacts_carddav_popup_invalid_error + "Vérifiez que toutes les informations ont été saisies." + 检查是否已输入所有信息。 + + + + information_popup_synchronization_success_title + 成功 + + + + settings_contacts_carddav_synchronization_success_message + "Le carnet d'adresse CardDAV est synchronisé." + CardDAV通讯簿已同步。 + + + + settings_contacts_carddav_popup_synchronization_error_title + 错误 + + + + settings_contacts_carddav_popup_synchronization_error_message + "Erreur de synchronisation!" + 同步错误! + + + + settings_contacts_delete_carddav_server_title + "Supprimer le carnet d'adresse CardDAV ?" + 删除CardDAV通讯簿? + + + + sip_address_display_name + Nom d'affichage + 昵称 + + + + settings_contacts_carddav_server_url_title + "URL du serveur" + 服务器URL + + + + username + 用户名 + + + + password + 密码 + + + + settings_contacts_carddav_realm_title + Domaine d’authentification + 认证域 + + + + settings_contacts_carddav_use_as_default_title + "Stocker ici les contacts nouvellement crées" + 在此处存储新创建的联系人 + + + + ChangeLayoutForm + + + conference_layout_grid + 网格 + + + + conference_layout_active_speaker + 当前发言人 + + + + conference_layout_audio_only + 仅限音频 + + + + ChatAudioContent + + + + information_popup_error_title + Error + 错误 + + + + information_popup_voice_message_error_message + Failed to create voice message : error in recorder + + + + + ChatCore + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message_history + Message history has been deleted + + + + + ChatDroppableTextArea + + + chat_view_send_area_placeholder_text + Say something… : placeholder text for sending message text area + + + + + cannot_record_while_in_call_tooltip + Cannot record a message while a call is ongoing + + + + + ChatListView + + + chat_message_is_writing_info + %1 is writing… + + + + + chat_message_draft_sending_text + + + + + chat_room_delete + "Delete" + 删除 + + + + chat_room_mute + + + + + chat_room_unmute + "Mute" + + + + + chat_room_mark_as_read + "Mark as read" + + + + + chat_room_leave + "leave" + + + + + chat_list_leave_chat_popup_title + leave the conversation ? + + + + + chat_list_leave_chat_popup_message + You will not be able to send or receive messages in this conversation anymore. Do You want to continue ? + + + + + chat_list_delete_chat_popup_title + Delete the conversation ? + + + + + chat_list_delete_chat_popup_message + This conversation and all its messages will be deleted. Do You want to continue ? + + + + + ChatMessage + + + chat_message_copy_selection + "Copy selection" + + + + + chat_message_copy + "Copy" + + + + + chat_message_copied_to_clipboard_title + Copied + 已复制 + + + + chat_message_copied_to_clipboard_toast + "to clipboard" + + + + + chat_message_remote_replied + %1 replied + + + + + chat_message_forwarded + Forwarded + + + + + chat_message_remote_replied_to + %1 replied to %2 + + + + + chat_message_user_replied_to + You replied to %1 + + + + + chat_message_user_replied + You replied + + + + + chat_message_reception_info + "Reception info" + + + + + chat_message_reply + Reply + + + + + chat_message_forward + Forward + + + + + chat_message_delete + "Delete" + 删除 + + + + ChatMessageContentCore + + + popup_error_title + Error + 错误 + + + + popup_open_file_error_does_not_exist_message + Could not open file : unknown path %1 + + + + + info_popup_error_titile + 错误 + + + + ChatMessageContentList + + + + + + popup_error_title + Error adding file +---------- +Error + + + + + popup_error_path_does_not_exist_message + File was not found: %1 + + + + + popup_error_nb_files_not_found_message + + + + + popup_error_max_files_count_message + You can send 12 files maximum at a time. %n files were ignored + + + + + + + popup_error_file_too_big_message + %n files were ignored cause they exceed the maximum size. (Size limit=%2) + + + + + popup_error_unsupported_files_message + + + + + popup_error_unsupported_file_message + Unable to get supported mime type for: `%1`. + + + + + ChatMessageContentModel + + + ChatMessageCore + + + all_reactions_label + "Reactions": all reactions for one message label + + + + + info_toast_deleted_title + Deleted + + + + + info_toast_deleted_message + The message has been deleted + + + + + ChatMessageInvitationBubble + + + ics_bubble_meeting_from + + + + + ics_bubble_meeting_to + + + + + ics_bubble_meeting_modified + Meeting has been updated + + + + + ics_bubble_meeting_cancelled + Meeting has been canceled + + + + + + + + + + ics_bubble_description_title + Description + + + + + ics_bubble_join + "Rejoindre" + 加入 + + + + ics_bubble_participants + %n participant(s) + + + + + + + ChatMessagesListView + + + + popup_info_find_message_title + Find message + + + + + info_popup_no_result_message + No result found + + + + + info_popup_first_result_message + First result reached + + + + + info_popup_last_result_message + Last result reached + + + + + chat_message_list_encrypted_header_title + End to end encrypted chat + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + chat_message_list_encrypted_header_message + Messages in this conversation are e2e encrypted. + Only your correspondent can decrypt them. + + + + + chat_message_list_not_encrypted_header_message + Messages are not end to end encrypted, + may sure you don't share any sensitive information ! + + + + + chat_message_is_writing_info + %1 is writing… + + + + + ChatPage + + + chat_start_title + "Nouvelle conversation" + + + + + chat_empty_title + "Aucune conversation" + + + + + chat_dialog_delete_chat_title + Supprimer la conversation ? + + + + + chat_dialog_delete_chat_message + "La conversation et tous ses messages seront supprimés." + + + + + chat_list_title + "Conversations" + 聊天 + + + + menu_mark_all_as_read + "mark all as read" + + + + + chat_search_in_history + "Rechercher une conversation" + + + + + list_filter_no_result_found + "Aucun résultat…" + 没有结果… + + + + chat_list_empty_history + "Aucune conversation dans votre historique" + + + + + chat_action_start_new_chat + "New chat" + + + + + chat_start_group_chat_title + "Nouveau groupe" + + + + + chat_action_start_group_chat + "Créer" + 创建 + + + + + + information_popup_error_title + 错误 + + + + information_popup_chat_creation_failed_message + "La création a échoué" + + + + + group_chat_error_must_have_name + "Un nom doit être donné au groupe + + + + + group_call_error_not_connected + "Vous n'etes pas connecté" + 您未连接 + + + + chat_creation_in_progress + Creation de la conversation en cours … + + + + + ChatSettingsLayout + + + settings_chat_attached_files_title + Attached files + + + + + settings_chat_attached_files_auto_download_title + "Automatic download" + + + + + settings_chat_attached_files_auto_download_subtitle + "Automatically download transferred or received files in conversations" + + + + + CliModel + + + show_function_description + 显示 + + + + fetch_config_function_description + 获取配置 + + + + call_function_description + 通话 + + + + bye_function_description + 挂断 + + + + accept_function_description + 接受 + + + + decline_function_description + 拒绝 + + + + ConferenceInfoCore + + + information_popup_error_title + "Erreur" + 错误 + + + + information_popup_disconnected_account_message + "Votre compte est déconnecté" + 您的账户已断开连接 + + + + Contact + + + information_popup_error_title + Erreur + 错误 + + + + information_popup_voicemail_address_undefined_message + L'URI de messagerie vocale n'est pas définie. + 未定义语音邮件URI。 + + + + account_settings_name_accessible_name + Account settings of %1 + + + + + ContactEdition + + + contact_editor_title + "Modifier contact" + 编辑联系人 + + + + save + "Enregistrer + 保存 + + + + + contact_editor_dialog_cancel_change_message + "Les changements seront annulés. Souhaitez-vous continuer ?" + 更改将被丢弃。您想继续吗? + + + + close_accessible_name + Close %1 + + + + + contact_editor_mandatory_first_name_or_company_not_filled + "Veuillez saisir un prénom ou un nom d'entreprise" + + + + + contact_editor_mandatory_address_or_number_not_filled + "Veuillez saisir une adresse ou un numéro de téléphone" + 请输入SIP地址或电话号码 + + + + contact_editor_add_image_label + "Ajouter une image" + 添加图像 + + + + contact_details_edit + "Modifier" + 编辑 + + + + edit_contact_image_accessible_name + "Edit contact image" + + + + + contact_details_delete + "Supprimer" + 删除 + + + + delete_contact_image_accessible_name + "Delete contact image" + + + + + + contact_editor_first_name + "Prénom" + 名字 + + + + + contact_editor_last_name + "Nom" + + + + + + contact_editor_company + "Entreprise" + 公司 + + + + + contact_editor_job_title + "Fonction" + 职位 + + + + + sip_address + SIP地址 + + + + sip_address_number_accessible_name + "SIP address number %1" + + + + + remove_sip_address_accessible_name + "Remove SIP address %1" + + + + + new_sip_address_accessible_name + "New SIP address" + + + + + phone_number_number_accessible_name + "Phone number number %1" + + + + + remove_phone_number_accessible_name + Remove phone number %1 + + + + + new_phone_number_accessible_name + "New phone number" + + + + + + phone + "Téléphone" + 电话号码 + + + + ContactListItem + + + contact_details_remove_from_favourites + "Enlever des favoris" + 从收藏夹中删除 + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + 添加到收藏夹 + + + + Partager + 分享 + + + + information_popup_error_title + 错误 + + + + information_popup_vcard_creation_error + La création du fichier vcard a échoué + 联系人VCard创建失败 + + + + information_popup_vcard_creation_title + VCard créée + 联系人VCard已创建 + + + + information_popup_vcard_creation_success + "VCard du contact enregistrée dans %1" + VCard已保存在%1中 + + + + contact_sharing_email_title + Partage de contact + 分享联系人 + + + + contact_details_delete + "Supprimer" + 删除 + + + + ContactListView + + + shrink_accessible_name + Shrink %1 + + + + + expand_accessible_name + Expand %1 + + + + + ContactPage + + + contacts_add + "Ajouter un contact" + 添加联系人 + + + + contacts_list_empty + "Aucun contact pour le moment" + 目前没有联系人 + + + + contact_new_title + "Nouveau contact" + 新建联系人 + + + + create + 创建 + + + + contact_edit_title + "Modifier contact" + 编辑联系人 + + + + save + 保存 + + + + contact_dialog_delete_title + Supprimer %1 ?" + 删除 %1? + + + + contact_dialog_delete_message + Ce contact sera définitivement supprimé. + 此联系人将被永久删除。 + + + + contact_deleted_toast + "Contact supprimé" + 联系人已删除 + + + + contact_deleted_message + "%1 a été supprimé" + %1已被删除 + + + + contact_dialog_devices_trust_popup_title + "Augmenter la confiance" + 提高信任级别 + + + + contact_dialog_devices_trust_popup_message + "Pour augmenter le niveau de confiance vous devez appeler les différents appareils de votre contact et valider un code.<br><br>Vous êtes sur le point d’appeler “%1” voulez vous continuer ?" + 要提高信任级别,您必须呼叫联系人的设备并验证代码。<br><br>您将要呼叫“%1”,是否要继续? + + + + popup_do_not_show_again + Ne plus afficher + 不再显示 + + + + cancel + 取消 + + + + dialog_call + "Appeler" + 通话 + + + + contact_dialog_devices_trust_help_title + "Niveau de confiance" + 信任级别 + + + + contact_dialog_devices_trust_help_message + "Vérifiez les appareils de votre contact pour confirmer que vos communications seront sécurisées et sans compromission. <br>Quand tous seront vérifiés, vous atteindrez le niveau de confiance maximal." + 验证您联系人的设备,以确认您的通信是安全且不受影响的。当所有内容都得到验证时,您将达到最大信任级别。 + + + + dialog_ok + "Ok" + OK + + + + bottom_navigation_contacts_label + "Contacts" + 联系人 + + + + search_bar_look_for_contact_text + Rechercher un contact + 查找联系人 + + + + list_filter_no_result_found + Aucun résultat… + 没有结果… + + + + contact_list_empty + Aucun contact pour le moment + 目前没有联系人 + + + + expand_accessible_name + Expand %1 + + + + + shrink_accessible_name + Shrink %1 + + + + + create_contact_accessible_name + Create new contact + + + + + more_info_accessible_name + More info %1 + + + + + + contact_details_edit + Edit +---------- +"Éditer" + 编辑 + + + + contact_call_action + "Appel" + 通话 + + + + contact_message_action + "Message" + 消息 + + + + contact_video_call_action + "Appel vidéo" + 视频呼叫 + + + + contact_details_numbers_and_addresses_title + "Coordonnées" + 联系人详细信息 + + + + call_adress_accessible_name + Call address %1 + + + + + contact_details_company_name + "Société :" + 公司: + + + + contact_details_job_title + "Poste :" + 职位: + + + + contact_details_medias_title + "Medias" + 媒体 + + + + + contact_details_medias_subtitle + "Afficher les medias partagés" + 显示共享媒体 + + + + contact_details_trust_title + "Confiance" + 信任 + + + + contact_dialog_devices_trust_title + "Niveau de confiance - Appareils vérifiés" + 信任级别-已验证设备 + + + + contact_details_no_device_found + "Aucun appareil" + 没有设备 + + + + contact_device_without_name + "Appareil inconnu" + 未知设备 + + + + contact_make_call_check_device_trust + "Vérifier" + 验证 + + + + verify_device_accessible_name + Verify %1 device + + + + + contact_details_actions_title + "Autres actions" + 其他 + + + + contact_details_remove_from_favourites + "Retirer des favoris" + 从收藏夹中删除 + + + + contact_details_add_to_favourites + "Ajouter aux favoris" + 添加到收藏夹 + + + + contact_details_share + "Partager" + 分享 + + + + information_popup_error_title + 错误 + + + + contact_details_share_error_mesage + "La création du fichier vcard a échoué" + 联系人VCard创建失败 + + + + contact_details_share_success_title + "VCard créée" + 联系人VCard已创建 + + + + contact_details_share_success_mesage + "VCard du contact enregistrée dans %1" + VCard已保存在%1中 + + + + contact_details_share_email_title + "Partage de contact" + 分享联系人 + + + + contact_details_delete + "Supprimer ce contact" + 删除联系人 + + + + ContactsSettingsLayout + + + settings_contacts_ldap_title + Annuaires LDAP + LDAP服务器 + + + + settings_contacts_ldap_subtitle + "Ajouter vos annuaires LDAP pour pouvoir effectuer des recherches dans la barre de recherche." + 添加LDAP服务器,以便能够在魔术搜索栏中搜索。 + + + + settings_contacts_carddav_title + CardDAV通讯地址簿 + + + + settings_contacts_carddav_subtitle + 添加CardDAV通讯簿,将您的Linphone联系人与第三方通讯簿同步。 + + + + settings_contacts_add_ldap_server_title + "Ajouter un annuaire LDAP" + 添加LDAP服务器 + + + + settings_contacts_edit_ldap_server_title + "Modifier un annuaire LDAP" + 编辑LDAP服务器 + + + + edit_ldap_server_accessible_name + "Editer le serveur LDAP %1" + + + + + use_ldap_server_accessible_name + "Utiliser le serveur LDAP %1" + + + + + settings_contacts_add_carddav_server_title + "Ajouter un carnet d'adresse CardDAV" + 添加一个CardDAV通讯簿 + + + + settings_contacts_edit_carddav_server_title + "Modifier un carnet d'adresse CardDAV" + 编辑一个CardDAV通讯簿 + + + + edit_cardav_server_accessible_name + "Editer le carnet d'adresses CardDAV %1" + + + + + use_cardav_server_accessible_name + "Utiliser le d'adresses CardDAV %1" + + + + + ContactsSettingsProviderLayout + + + information_popup_success_title + 成功 + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + 更改已保存 + + + + add + "Ajouter" + 添加 + + + + ConversationInfos + + + one_one_infos_call + "Appel" + 通话 + + + + one_one_infos_unmute + "Sourdine" + + + + + one_one_infos_mute + + + + + group_infos_participants + 参与者(%1) + + + + group_infos_media_docs + Medias & documents + + + + + group_infos_shared_medias + Shared medias + + + + + group_infos_shared_docs + Shared documents + + + + + group_infos_other_actions + Other actions + 其他 + + + + group_infos_ephemerals + + + + + group_infos_enable_ephemerals + + + + + group_infos_meeting + Schedule a meeting + + + + + group_infos_leave_room + Leave chat room + + + + + group_infos_leave_room_toast_title + Leave Chat Room ? + + + + + group_infos_leave_room_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + group_infos_delete_history + Delete history + 删除历史 + + + + group_infos_delete_history_toast_title + Delete history ? + + + + + group_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + one_one_infos_open_contact + Show contact + 显示联系人 + + + + one_one_infos_create_contact + Create contact + + + + + one_one_infos_ephemerals + + + + + one_one_infos_enable_ephemerals + + + + + one_one_infos_delete_history + 删除历史 + + + + one_one_infos_delete_history_toast_title + Delete history ? + + + + + one_one_infos_delete_history_toast_message + All the messages will be removed from the chat room. Do you want to continue ? + + + + + CreationFormLayout + + + search_bar_look_for_contact_text + "Rechercher un contact" + 查找联系人 + + + + DebugSettingsLayout + + + settings_debug_clean_logs_message + "Les traces de débogage seront supprimées. Souhaitez-vous continuer ?" + 调试跟踪将被删除。您想继续吗? + + + + settings_debug_share_logs_message + "Les traces de débogage ont été téléversées. Comment souhaitez-vous partager le lien ? " + 调试跟踪已上传。您希望如何分享该链接? + + + + settings_debug_clipboard + "Presse-papier" + 剪贴板 + + + + settings_debug_email + "E-Mail" + 电子邮件 + + + + debug_settings_trace + "Traces %1" + %1 跟踪 + + + + information_popup_email_sharing_failed + "Le partage par mail a échoué. Veuillez envoyer le lien %1 directement à l'adresse %2." + 电子邮件共享失败。请将%1链接直接发送到%2。 + + + + + information_popup_error_title + Une erreur est survenue. + 发生了一个错误。 + + + + settings_debug_enable_logs_title + "Activer les traces de débogage" + 启用调试跟踪 + + + + settings_debug_enable_full_logs_title + "Activer les traces de débogage intégrales" + 启用完整日志 + + + + settings_debug_delete_logs_title + "Supprimer les traces" + 删除调试跟踪 + + + + settings_debug_share_logs_title + "Partager les traces" + 分享调试跟踪 + + + + settings_debug_share_logs_loading_message + "Téléversement des traces en cours …" + 上传调试跟踪… + + + + settings_debug_app_version_title + "Version de l'application" + 应用版本 + + + + settings_debug_sdk_version_title + "Version du SDK" + SDK版本 + + + + settings_debug_share_logs_error + "Le téléversement des traces a échoué. Vous pouvez partager les fichiers de trace directement depuis le répertoire suivant : %1" + 上传跟踪失败。您可以直接从以下目录共享跟踪文件:%1 + + + + DecoratedTextField + + + textfield_error_message_cannot_be_empty + "ne peut être vide" + 不能为空 + + + + textfield_error_message_unknown_format + "Format non reconnu" + 未知格式 + + + + Dialog + + + + dialog_confirm + "Confirmer" + 确认 + + + + + dialog_cancel + "Annuler" + 取消 + + + + EncryptionSettings + + + call_stats_media_encryption_title + "Encryption :" + 加密: + + + + call_stats_media_encryption + Media encryption : %1 + 媒体加密:%1%2 + + + + call_stats_zrtp_cipher_algo + "Algorithme de chiffrement : %1" + 加密算法:%1 + + + + call_stats_zrtp_key_agreement_algo + "Algorithme d'accord de clé : %1" + 密钥协商算法:%1 + + + + call_stats_zrtp_hash_algo + "Algorithme de hachage : %1" + 哈希算法:%1 + + + + call_stats_zrtp_auth_tag_algo + "Algorithme d'authentification : %1" + 身份验证算法:%1 + + + + call_stats_zrtp_sas_algo + "Algorithme SAS : %1" + SAS算法:%1 + + + + call_zrtp_validation_button_label + "Validation chiffrement" + 加密验证 + + + + EphemeralSettings + + + title + + + + + explanations + + + + + one_minute + + + + + one_hour + + + + + one_day + + + + + one_week + + + + + disabled + 已禁用 + + + + custom + + + + + EventLogCore + + + conference_created_event + + + + + conference_created_terminated + + + + + conference_participant_added_event + + + + + conference_participant_removed_event + + + + + conference_participant_set_admin_event + + + + + conference_participant_unset_admin_event + + + + + + conference_security_event + + + + + conference_ephemeral_message_enabled_event + + + + + conference_ephemeral_message_disabled_event + + + + + conference_subject_changed_event + + + + + conference_ephemeral_message_lifetime_changed_event + + + + + FriendCore + + + + + + + sip_address + "Adresse SIP" + SIP地址 + + + + + + device_id + "Téléphone" + 电话号码 + + + + information_popup_error_title + 错误 + + + + information_popup_invalid_address_message + "Adresse invalide" + 无效地址 + + + + GroupChatInfoParticipants + + + group_infos_manage_participants_title + "Gérer des participants" + 管理参与者 + + + + group_infos_participant_is_admin + 管理员 + + + + menu_see_existing_contact + "Show contact" + 显示联系人 + + + + menu_add_address_to_contacts + "Add to contacts" + 添加到联系人通讯簿 + + + + group_infos_give_admin_rights + + + + + group_infos_remove_admin_rights + + + + + group_infos_copy_sip_address + + + + + group_infos_remove_participant + + + + + group_infos_remove_participants_toast_title + + + + + group_infos_remove_participants_toast_message + + + + + GroupCreationFormLayout + + + return_accessible_name + Return + + + + + + group_start_dialog_subject_hint + "Nom du groupe" + 群组名称 + + + + required + "Requis" + 需要的 + + + + HelpPage + + + help_title + "Aide" + 帮助 + + + + + help_about_title + "À propos de %1" + 关于%1 + + + + help_about_privacy_policy_title + "Règles de confidentialité" + 隐私政策 + + + + help_about_privacy_policy_subtitle + Quelles informations %1 collecte et utilise + %1收集和使用哪些信息 + + + + help_about_version_title + "Version" + 版本 + + + + help_about_gpl_licence_title + "Licences GPLv3" + GPLv3许可证 + + + + help_about_contribute_translations_title + "Contribuer à la traduction de %1" + 为%1的翻译做出贡献 + + + + help_troubleshooting_title + "Dépannage" + 故障排除 + + + + LdapSettingsLayout + + + settings_contacts_ldap_title + LDAP服务器 + + + + settings_contacts_ldap_subtitle + 添加LDAP服务器,以便能够在魔术搜索栏中搜索。 + + + + information_popup_success_title + 成功 + + + + settings_contacts_ldap_success_toast + "L'annuaire LDAP a été sauvegardé" + LDAP服务器已保存 + + + + settings_contacts_ldap_error_toast + "Une erreur s'est produite, la configuration LDAP n'a pas été sauvegardée !" + 发生错误,LDAP配置未保存! + + + + information_popup_error_title + 错误 + + + + settings_contacts_ldap_delete_confirmation_message + "Supprimer l'annuaire LDAP ?" + 删除LDAP服务器? + + + + delete_ldap_server_accessible_name + Delete LDAP server + + + + + settings_contacts_ldap_server_url_title + "URL du serveur (ne peut être vide)" + 服务器URL(不能为空) + + + + settings_contacts_ldap_bind_dn_title + "Bind DN" + 绑定DN + + + + settings_contacts_ldap_password_title + "Mot de passe" + 密码 + + + + settings_contacts_ldap_use_tls_title + "Utiliser TLS" + 使用TLS + + + + settings_contacts_ldap_search_base_title + "Base de recherche (ne peut être vide)" + 研究基地Base(不能为空) + + + + settings_contacts_ldap_search_filter_title + "Filtre" + 过滤器 + + + + settings_contacts_ldap_max_results_title + "Nombre maximum de résultats" + 最大结果数 + + + + settings_contacts_ldap_request_delay_title + "Délai entre 2 requêtes (en millisecondes)" + 两次查询之间的延迟(毫秒) + + + + settings_contacts_ldap_request_timeout_title + "Durée maximun (en secondes)" + 超时(秒) + + + + settings_contacts_ldap_min_characters_title + "Nombre minimum de caractères pour la requête" + 查询的最小字符数 + + + + settings_contacts_ldap_name_attributes_title + "Attributs de nom" + 名称属性 + + + + settings_contacts_ldap_sip_attributes_title + "Attributs SIP" + SIP属性 + + + + settings_contacts_ldap_sip_domain_title + "Domaine SIP" + SIP域名 + + + + settings_contacts_ldap_debug_title + "Débogage" + 调试 + + + + LoadingPopup + + + cancel + 取消 + + + + LoginForm + + + + username + Nom d'utilisateur : username + 用户名 + + + + + password + Mot de passe + 密码 + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + assistant_account_login + "Connexion" + 连接 + + + + assistant_account_login_missing_username + "Veuillez saisir un nom d'utilisateur" + 请输入用户名 + + + + assistant_account_login_missing_password + "Veuillez saisir un mot de passe" + 请输入密码 + + + + assistant_forgotten_password + "Mot de passe oublié ?" + 忘记密码? + + + + LoginLayout + + + + help_about_title + À propos de %1 + 关于%1 + + + + help_about_privacy_policy_title + "Politique de confidentialité" + 隐私政策 + + + + help_about_privacy_policy_link + "Visiter notre potilique de confidentialité" + 访问我们的隐私政策 + + + + help_about_version_title + "Version" + 版本 + + + + help_about_licence_title + "Licence" + 许可证 + + + + help_about_copyright_title + "Copyright + 版权 + + + + close + "Fermer" + 关闭 + + + + LoginPage + + + return_accessible_name + Return + + + + + assistant_account_login + Connexion + 连接 + + + + assistant_no_account_yet + "Pas encore de compte ?" + 还没有账号? + + + + assistant_account_register + "S'inscrire" + 注册 + + + + assistant_login_third_party_sip_account_title + "Compte SIP tiers" + 第三方SIP账户 + + + + assistant_login_remote_provisioning + "Configuration distante" + 远程部署 + + + + assistant_login_download_remote_config + "Télécharger une configuration distante" + 下载远程部署配置 + + + + assistant_login_remote_provisioning_url + 'Veuillez entrer le lien de configuration qui vous a été fourni :' + 请输入提供给您的设置链接: + + + + cancel + 取消 + + + + validate + "Valider" + 确认 + + + + settings_advanced_remote_provisioning_url + 'Lien de configuration distante' + 远程部署配置链接 + + + + default_account_connection_state_error_toast + 连接时出错 + + + + MagicSearchList + + + device_id + 电话号码 + + + + MainLayout + + + bottom_navigation_calls_label + "Appels" + 通话 + + + + open_calls_page_accessible_name + "Open calls page" + + + + + bottom_navigation_contacts_label + "Contacts" + 联系人 + + + + open_contacts_page_accessible_name + "Open contacts page" + + + + + bottom_navigation_conversations_label + "Conversations" + 聊天 + + + + open_conversations_page_accessible_name + "Open conversations page" + + + + + bottom_navigation_meetings_label + "Réunions" + 会议 + + + + open_contact_page_accessible_name + "Open meetings page" + + + + + searchbar_placeholder_text + "Rechercher un contact, appeler %1" + 查找联系人,呼叫%1 + + + + searchbar_placeholder_text_chat_feature_enabled + "ou envoyer un message …" + 或发送消息… + + + + do_not_disturb_accessible_name + "Do not disturb" + 请勿打扰 + + + + + contact_presence_status_disable_do_not_disturb + "Désactiver ne pas déranger" + 禁用请勿打扰 + + + + information_popup_error_title + 错误 + + + + no_voicemail_uri_error_message + "L'URI de messagerie vocale n'est pas définie." + 未定义语音邮件URI。 + + + + account_list_accessible_name + "Account list" + + + + + application_options_accessible_name + "Application options" + + + + + drawer_menu_manage_account + Mon compte + 我的账户 + + + + contact_presence_status_enable_do_not_disturb + "Activer ne pas déranger" + 启用请勿打扰 + + + + settings_title + 设置 + + + + recordings_title + "Enregistrements" + 录音 + + + + help_title + "Aide" + 帮助 + + + + help_quit_title + "Quitter l'application" + 退出应用 + + + + quit_app_question + "Quitter %1 ?" + 退出%1? + + + + drawer_menu_add_account + "Ajouter un compte" + 添加账户 + + + + MainWindow + + + information_popup_connexion_succeed_title + "Connexion réussie" + 连接成功 + + + + information_popup_connexion_succeed_message + "Vous êtes connecté en mode %1" + 您以%1模式登录 + + + + interoperable + interopérable + 互操作性 + + + + call_transfer_successful_toast_title + "Appel transféré" + 呼叫已转接 + + + + call_transfer_successful_toast_message + "Votre correspondant a été transféré au contact sélectionné" + 您的对话方已转接到所选联系人 + + + + information_popup_success_title + 已保存 + + + + information_popup_changes_saved + "Les changements ont été sauvegardés" + 更改已保存 + + + + captcha_validation_loading_message + "Veuillez valider le captcha sur la page web" + 请在网页上验证验证码 + + + + assistant_register_error_title + "Erreur lors de la création" + 创建时出错 + + + + assistant_register_success_title + "Compte créé" + 已创建账户 + + + + assistant_register_success_message + "Le compte a été créé. Vous pouvez maintenant vous connecter" + 账户户已创建。您现在可以登录了。 + + + + assistant_register_error_code + "Erreur dans le code de validation" + 验证码错误 + + + + information_popup_error_title + 错误 + + + + ManageParticipants + + + group_infos_manage_participants + + + + + MeetingForm + + + meeting_schedule_meeting_label + "Réunion" + 会议 + + + + meeting_schedule_broadcast_label + "Webinar" + 网络线上研讨会 + + + + meeting_schedule_subject_hint + "Ajouter un titre" + 添加标题 + + + + meeting_schedule_description_hint + "Ajouter une description" + 添加描述 + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + 添加参与者 + + + + meeting_schedule_send_invitations_title + "Envoyer une invitation aux participants" + 向参与者发送邀请 + + + + MeetingListView + + + meeting_info_cancelled + "Réunion annulée" + 会议取消 + + + + meetings_list_no_meeting_for_today + "Aucune réunion aujourd'hui" + 今天没有会议 + + + + meeting_info_delete + "Supprimer la réunion" + 删除会议 + + + + MeetingPage + + + meetings_add + "Créer une réunion" + 创建会议 + + + + meetings_list_empty + "Aucune réunion" + 没有会议 + + + + meeting_schedule_cancel_dialog_message + "Souhaitez-vous annuler et supprimer cette réunion ?" + 您想取消并删除此会议吗? + + + + meeting_schedule_delete_dialog_message + Souhaitez-vous supprimer cette réunion ? + 是否要删除此会议? + + + + meeting_schedule_cancel_and_delete_action + "Annuler et supprimer" + 取消并删除 + + + + meeting_schedule_delete_only_action + "Supprimer seulement" + 仅删除 + + + + meeting_schedule_delete_action + "Supprimer" + 删除 + + + + back_action + Retour + 上一步 + + + + meetings_list_title + Réunions + 会议 + + + + meetings_search_hint + "Rechercher une réunion" + 查找会议 + + + + list_filter_no_result_found + "Aucun résultat…" + 没有结果… + + + + meetings_empty_list + "Aucune réunion" + 没有会议 + + + + + meeting_schedule_title + "Nouvelle réunion" + 新会议 + + + + create + 创建 + + + + + + + + + information_popup_error_title + 错误 + + + + + meeting_schedule_mandatory_field_not_filled_toast + Veuillez saisir un titre et sélectionner au moins un participant + 请填写标题并选择至少一名参与者 + + + + + meeting_schedule_duration_error_toast + "La fin de la conférence doit être plus récente que son début" + 会议的结束必须比开始晚 + + + + + meeting_schedule_creation_in_progress + "Création de la réunion en cours …" + 正在创建… + + + + meeting_info_created_toast + "Réunion planifiée avec succès" + 会议已成功创建 + + + + meeting_failed_to_schedule_toast + "Échec de création de la réunion !" + 创建会议失败! + + + + save + 保存 + + + + + saved + "Enregistré" + 已保存 + + + + meeting_info_updated_toast + "Réunion mise à jour" + 会议已更新 + + + + meeting_schedule_edit_in_progress + "Modification de la réunion en cours…" + 会议更新正在进行中… + + + + meeting_failed_to_edit_toast + "Échec de la modification de la réunion !" + 更新会议失败! + + + + meeting_schedule_add_participants_title + "Ajouter des participants" + 添加参与者 + + + + meeting_schedule_add_participants_apply + + + + + group_call_participant_selected + "%n participant(s) sélectionné(s)" + + + + + + + meeting_info_delete + "Supprimer la réunion" + 删除会议 + + + + meeting_address_copied_to_clipboard_toast + "Adresse de la réunion copiée" + 已复制会议URI + + + + meeting_schedule_timezone_title + "Fuseau horaire" + 时区 + + + + meeting_info_organizer_label + "Organisateur" + 主办单位 + + + + meeting_info_join_title + "Rejoindre la réunion" + 加入会议 + + + + MeetingsSettingsLayout + + + settings_meetings_display_title + "Affichage" + 显示 + + + + settings_meetings_default_layout_title + "Mode d’affichage par défaut" + 默认显示模式 + + + + settings_meetings_default_layout_subtitle + "Le mode d’affichage des participants en réunions" + 如何在会议中显示参与者 + + + + MessageImdnStatusInfos + + + message_details_status_title + Message status + + + + + MessageReactionsInfos + + + message_details_reactions_title + Reactions + + + + + click_to_delete_reaction_info + Click to delete + + + + + MessageSharedFilesInfos + + + no_shared_medias + No media + + + + + no_shared_documents + No document + + + + + MultimediaSettings + + + + multimedia_settings_ringer_title + Ringtone - Incoming calls + 铃声-来电 + + + + + + + choose_something_accessible_name + Choose %1 + + + + + + + multimedia_settings_speaker_title + "Haut-parleurs" + 发言人 + + + + + device_volume_accessible_name + %1 volume + + + + + + + multimedia_settings_microphone_title + "Microphone" + 麦克风 + + + + + multimedia_settings_camera_title + "Caméra" + 照相机 + + + + NetworkSettingsLayout + + + settings_network_title + "Réseau" + 网络 + + + + settings_network_allow_ipv6 + "Autoriser l'IPv6" + + + + + NewCallForm + + + call_transfer_active_calls_label + "Appels en cours" + 正在进行的通话 + + + + call_start_group_call_title + Appel de groupe + 群组通话 + + + + NewChatForm + + + chat_start_group_chat_title + Nouveau groupe + + + + + NotificationReceivedCall + + + call_audio_incoming + "Appel entrant" + 来电 + + + + dialog_accept + "Accepter" + 接受 + + + + dialog_deny + "Refuser + 拒绝 + + + + Notifier + + + new_call_alert_accessible_name + New call from %1 + + + + + new_voice_message + 'Voice message received!' : message to warn the user in a notofication for voice messages. + + + + + new_file_message + + + + + new_conference_invitation + 'Conference invitation received!' : Notification about receiving an invitation to a conference. + + + + + new_chat_room_messages + 'New messages received!' Notification that warn the user of new messages. + + + + + new_message_alert_accessible_name + New message on chatroom %1 + + + + + OIDCModel + + + OAuthHttpServerReplyHandler is not listening + OAuthHttpServerReplyHandler未在侦听 + + + + oidc_authentication_timeout_message + Timeout: Not authenticated + 超时:未通过身份验证 + + + + oidc_authentication_granted_message + Authentication granted + 已授予身份验证 + + + + oidc_authentication_not_authenticated_message + Not authenticated + 未通过身份验证 + + + + oidc_authentication_refresh_message + Refreshing token + 刷新令牌 + + + + oidc_authentication_temporary_credentials_message + Temporary credentials received + 已收到临时凭据 + + + + oidc_authentication_network_error + Network error + 网络错误 + + + + oidc_authentication_server_error + Server error + 服务器错误 + + + + oidc_authentication_token_not_found_error + OAuth token not found + 找不到OAuth令牌 + + + + oidc_authentication_token_secret_not_found_error + OAuth token secret not found + 未找到OAuth令牌密钥 + + + + oidc_authentication_callback_not_verified_error + OAuth callback not verified + OAuth回调未验证 + + + + oidc_authentication_request_auth_message + Requesting authorization from browser + 向浏览器请求授权中 + + + + oidc_authentication_no_token_found_error + + + + + oidc_authentication_request_token_message + Requesting access token + 请求访问令牌中 + + + + oidc_authentication_refresh_token_message + Refreshing access token + 刷新访问令牌中 + + + + oidc_authentication_request_authorization_message + Requesting authorization + 请求授权中 + + + + oidc_authentication_request_temporary_credentials_message + Requesting temporary credentials + 请求临时凭据 + + + + oidc_authentication_no_auth_found_in_config_error + No authorization endpoint found in OpenID configuration + 在OpenID配置中找不到授权终结点 + + + + oidc_authentication_no_token_found_in_config_error + No token endpoint found in OpenID configuration + 在OpenID配置中找不到令牌终结点 + + + + ParticipantListView + + + meeting_participant_is_admin_label + "Admin" + 管理员 + + + + meeting_add_participants_title + "Ajouter des participants" + 添加参与者 + + + + PhoneNumberInput + + + prefix_phone_number_accessible_name + %1 prefix + + + + + number_phone_number_accessible_name + %1 number + + + + + PopupButton + + + close_popup_panel_accessible_name + "Close %1 popup" + + + + + open_popup_panel_accessible_name + "Open %1" popup + + + + + Presence + + + contact_presence_reset_status + + + + + contact_presence_button_set_custom_status + + + + + contact_presence_button_edit_custom_status + 编辑 + + + + contact_presence_button_delete_custom_status + 删除 + + + + contact_presence_custom_status + + + + + PresenceNoteLayout + + + contact_presence_note_title + + + + + PresenceSetCustomStatus + + + contact_presence_button_set_custom_status_title + + + + + contact_presence_button_save_custom_status + 保存 + + + + QObject + + + media_encryption_dtls + DTLS + + + + media_encryption_none + 没有 + + + + media_encryption_srtp + SRTP + + + + media_encryption_post_quantum + "ZRTP - Post quantique" + 后量子ZRTP + + + + message_state_in_progress + "delivery in progress" + + + + + message_state_delivered + sent + + + + + message_state_not_delivered + error + + + + + message_state_file_transfer_error + cannot get file from server + + + + + message_state_file_transfer_done + file transfer has been completed successfully + + + + + message_state_delivered_to_user + received + + + + + message_state_displayed + read + + + + + message_state_file_transfer__in_progress + file transfer in progress + + + + + message_state_pending_delivery + pending delivery + + + + + message_state_file_transfer_cancelling + file transfer canceled + + + + + incoming + "Entrant" + 来电 + + + + outgoing + "Sortant" + 去电 + + + + conference_layout_active_speaker + "Participant actif" + 当前发言人 + + + + conference_layout_grid + "Mosaïque" + 网格 + + + + conference_layout_audio_only + "Audio uniquement" + 仅限音频 + + + + RegisterCheckingPage + + + email + "email" + 电子邮件 + + + + phone_number + "numéro de téléphone" + 电话号码 + + + + confirm_register_title + "Inscription | Confirmer votre %1" + 注册|确认您的%1 + + + + assistant_account_creation_confirmation_explanation + Nous vous avons envoyé un code de vérification sur votre %1 %2<br> Merci de le saisir ci-dessous + 我们已向您的%1 %2发送了验证码<br>请在下面输入 + + + + assistant_account_creation_confirmation_did_not_receive_code + "Vous n'avez pas reçu le code ?" + 没有收到代码? + + + + assistant_account_creation_confirmation_resend_code + "Renvoyer un code" + 重新发送验证码 + + + + RegisterPage + + + return_accessible_name + Return + + + + + assistant_account_register + "Inscription + 注册 + + + + assistant_already_have_an_account + 已经有账号了? + + + + assistant_account_login + 连接 + + + + assistant_account_register_with_phone_number + 使用电话号码注册 + + + + assistant_account_register_with_email + 通过电子邮件注册 + + + + + username + 用户名 + + + + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + domain + 域名 + + + + + + phone_number + "Numéro de téléphone" + 电话号码 + + + + + email + 电子邮件 + + + + + password + 密码 + + + + + assistant_account_register_password_confirmation + "Confirmation mot de passe" + 密码确认 + + + + assistant_dialog_cgu_and_privacy_policy_message + "J'accepte les %1 et la %2" + 我接受%1和%2 + + + + assistant_dialog_general_terms_label + "conditions d'utilisation" + 使用条款 + + + + assistant_dialog_privacy_policy_label + "politique de confidentialité" + 隐私政策 + + + + assistant_account_create + "Créer" + 创建 + + + + assistant_account_create_missing_username_error + "Veuillez entrer un nom d'utilisateur" + 请输入用户名 + + + + assistant_account_create_missing_password_error + "Veuillez entrer un mot de passe" + 请输入密码 + + + + assistant_account_create_confirm_password_error + "Les mots de passe sont différents" + 密码不匹配 + + + + assistant_account_create_missing_number_error + "Veuillez entrer un numéro de téléphone" + 请输入电话号码 + + + + assistant_account_create_missing_email_error + "Veuillez entrer un email" + 请输入电子邮件 + + + + SIPLoginPage + + + return_accessible_name + Return + + + + + assistant_login_third_party_sip_account_title + Compte SIP tiers + 第三方SIP账户 + + + + assistant_no_account_yet + Pas encore de compte ? + 还没有账号? + + + + assistant_account_register + S'inscrire + 注册 + + + + Certaines fonctionnalités telles que les conversations de groupe, les vidéo-conférences, etc… nécessitent un compte %1. + +Ces fonctionnalités seront masquées si vous utilisez un compte SIP tiers. + +Pour les activer dans un projet commercial, merci de nous contacter. + 某些功能(如群聊、视频会议等)需要%1账户。 + +如果您使用第三方SIP账户,这些功能将被隐藏。 + +为了使他们能够参与商业项目,请联系我们。 + + + + assistant_third_party_sip_account_create_linphone_account + "Créer un compte linphone" + 创建linphone账户 + + + + assistant_third_party_sip_account_warning_ok + "Je comprends" + 我明白 + + + + + username + "Nom d'utilisateur" + 用户名 + + + + + mandatory_field_accessible_name + "%1 mandatory" + + + + + + password + 密码 + + + + + sip_address_domain + "Domaine" + 域名 + + + + + sip_address_display_name + Nom d'affichage + 昵称 + + + + + transport + "Transport" + 传输 + + + + + assistant_account_login + 连接 + + + + assistant_account_login_missing_username + 请输入用户名 + + + + assistant_account_login_missing_password + 请输入密码 + + + + assistant_account_login_missing_domain + "Veuillez saisir un nom de domaine + 请输入域名 + + + + login_advanced_parameters_label + Advanced parameters + 高级参数 + + + + + login_proxy_server_url + "Outbound SIP Proxy URI" + + + + + login_proxy_server_url_tooltip + "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + + + + + + login_registrar_uri + "Registrar URI" + + + + + + login_id + "Authentication ID (if different)" + + + + + ScreencastSettings + + + screencast_settings_choose_window_text + "Veuillez choisir l’écran ou la fenêtre que vous souihaitez partager au autres participants" + 请选择要与其他参与者共享的屏幕或窗口。 + + + + screencast_settings_all_screen_label + "Ecran entier" + 全屏 + + + + screencast_settings_one_window_label + "Fenêtre" + 窗口 + + + + screencast_settings_screen + "Ecran %1" + 屏幕%1 + + + + stop + "Stop + 停止 + + + + share + "Partager" + 分享 + + + + SearchBar + + + open_dialer_acccessibility_label + "Open dialer" + + + + + clear_text_input_acccessibility_label + "Clear text input" + + + + + SecurityModePage + + + manage_account_choose_mode_title + "Choisir votre mode" + 选择您的模式 + + + + manage_account_choose_mode_message + "Vous pourrez changer de mode plus tard." + 您可以稍后更改模式。 + + + + manage_account_e2e_encrypted_mode_default_title + "Chiffrement de bout en bout" + 端对端加密 + + + + manage_account_e2e_encrypted_mode_default_summary + "Ce mode vous garanti la confidentialité de tous vos échanges. Notre technologie de chiffrement de bout en bout assure un niveau de sécurité maximal pour tous vos échanges." + 此模式保证您所有通信的机密性。我们的端到端加密技术可确保您所有通信的最大安全性。 + + + + manage_account_e2e_encrypted_mode_interoperable_title + "Interoperable" + 互操作性 + + + + manage_account_e2e_encrypted_mode_interoperable_summary + "Ce mode vous permet de profiter de toute les fonctionnalités de Linphone, toute en restant interopérable avec n’importe qu’elle autre service SIP." + 此模式允许您受益于Linphone的所有功能,同时保持与任何其他SIP服务的互操作性。 + + + + dialog_continue + "Continuer" + 继续 + + + + SecuritySettingsLayout + + + settings_security_enable_vfs_title + "Chiffrer tous les fichiers" + 加密所有文件 + + + + settings_security_enable_vfs_subtitle + "Attention, vous ne pourrez pas revenir en arrière !" + 警告:一旦启用,就不能禁用! + + + + SelectedChatView + + + chat_view_group_call_toast_message + + + + + unencrypted_conversation_warning + This conversation is not encrypted ! + + + + + reply_to_label + Reply to %1 + + + + + shared_medias_title + Shared medias + + + + + shared_documents_title + Shared documents + + + + + forward_to_title + Forward to… + + + + + conversations_title + Conversations + 聊天 + + + + SettingsMenuItem + + + setting_tab_accessible_name + %1 settings + + + + + SettingsPage + + + settings_title + "Paramètres" + 设置 + + + + settings_calls_title + "Appels" + 通话 + + + + settings_call_forward + "Transfert d'appel" + + + + + settings_conversations_title + "Conversations" + 聊天 + + + + settings_contacts_title + "Contacts" + 联系人 + + + + settings_meetings_title + "Réunions" + 会议 + + + + settings_network_title + "Affichage" "Security" "Réseau" + 网络 + + + + settings_advanced_title + "Paramètres avancés" + 高级参数 + + + + contact_editor_popup_abort_confirmation_title + Modifications non enregistrées + 未保存的更改 + + + + contact_editor_popup_abort_confirmation_message + Vous avez des modifications non enregistrées. Si vous quittez cette page, vos changements seront perdus. Voulez-vous enregistrer vos modifications avant de continuer ? + 您有未保存的更改。如果您离开此页面,您的更改将丢失。您想在继续之前保存更改吗? + + + + contact_editor_dialog_abort_confirmation_do_not_save + "Ne pas enregistrer" + 不保存 + + + + contact_editor_dialog_abort_confirmation_save + "Enregistrer" + 保存 + + + + Sticker + + + conference_participant_joining_text + "rejoint…" + 加入… + + + + conference_participant_paused_text + "En pause" + 已暂停 + + + + TextField + + + show_accessible_name + Show %1 + + + + + hide_accessible_name + Hide %1 + + + + + ToolModel + + + call_error_uninterpretable_sip_address + "The calling address is not an interpretable SIP address : %1 + 呼叫地址不是可解释的SIP地址:%1 + + + + group_call_error_no_account + 未找到默认账户,无法创建组呼叫 + + + + group_call_error_participants_invite + 无法邀请参与者进行群呼 + + + + group_call_error_creation + 无法创建组呼叫 + + + + voice_recording_duration + "Voice recording (%1)" : %1 is the duration formated in mm:ss + + + + + unknown_audio_device_name + 未知设备名称 + + + + conference_invitation + + + + + conference_invitation_cancelled + + + + + conference_invitation_updated + + + + + Utils + + + nSeconds + + + + + + + nMinute + + + + + + + chat_message_forward_error + Cannot forward an invalid message + + + + + info_popup_forward_message_error + Could not forward message : %1 + + + + + info_popup_send_forward_message_error_message + Failed to create forward message + + + + + chat_message_reply_error + Cannot reply to invalid message + + + + + info_popup_reply_message_error + Could not send reply message : %1 + + + + + info_popup_send_reply_message_error_message + Failed to create reply message + + + + + nHour + + + + + + + + nDay + + + + + + + nWeek + + + + + + + contact_presence_status_available + + + + + contact_presence_status_busy + 忙碌的 + + + + contact_presence_status_do_not_disturb + 请勿打扰 + + + + contact_presence_status_offline + 离线 + + + + contact_presence_status_away + + + + + information_popup_call_not_created_message + "L'appel n'a pas pu être créé" + 无法创建呼叫 + + + + + + + information_popup_error_title + Error +---------- +Failed to create 1-1 conversation with %1 ! + 错误 + + + + information_popup_group_call_not_created_message + 无法创建组呼叫 + + + + number_of_years + %n an(s) + + %1年 + + + + + number_of_month + "%n mois" + + %1月 + + + + + number_of_weeks + %n semaine(s) + + %1周 + + + + + number_of_days + %n jour(s) + + %1天 + + + + + today + "Aujourd'hui" + 今天 + + + + yesterday + "Hier + 昨天 + + + + duration_tomorrow + Tomorrow + + + + + duration_number_of_days + %1 jour(s) + + + + + + + call_zrtp_token_verification_possible_characters + "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" + ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 + + + + + information_popup_chatroom_creation_error_message + Failed to create 1-1 conversation with %1 ! + + + + + recorder_error + Error with the recorder + + + + + + + chat_error + + + + + + + + + + info_popup_error_title + Error + 错误 + + + + info_popup_send_voice_message_error_message + Could not send voice message : %1 + + + + + info_popup_send_voice_message_sending_error_message + Failed to create message from record + + + + + WaitingRoom + + + meeting_waiting_room_title + Participer à : + 加入: + + + + meeting_waiting_room_join + "Rejoindre" + 加入 + + + + + cancel + Cancel + 取消 + + + + meeting_waiting_room_joining_title + "Connexion à la réunion" + 与会议的连接 + + + + meeting_waiting_room_joining_subtitle + "Vous allez rejoindre la réunion dans quelques instants…" + 您稍后将加入会议... + + + + WelcomePage + + + welcome_page_title + "Bienvenue" + 欢迎 + + + + welcome_page_subtitle + "sur %1" + 在%1 + + + + welcome_carousel_skip + "Passer" + 跳过 + + + + welcome_page_1_message + "Une application de communication <b>sécurisée</b>,<br> <b>open source</b> et <b>française</b>." + <b>安全</b>、<br><b>开源</b>和<b>法语</b>通信应用程序。 + + + + welcome_page_2_title + "Sécurisé" + 安全 + + + + welcome_page_2_message + "Vos communications sont en sécurité grâce aux <br><b>Chiffrement de bout en bout</b>." + 由于<br><b>端到端加密</b>,您的通信是安全的。 + + + + welcome_page_3_title + "Open Source" + 开源 + + + + welcome_page_3_message + "Une application open source et un <b>service gratuit</b> <br>depuis <b>2001</b>" + 自2001年以来,一个开源应用程序和一个自由服务</b> + + + + next + "Suivant" + 下一步 + + + + start + "Commencer" + 开始 + + + + ZrtpAuthenticationDialog + + + call_dialog_zrtp_validate_trust_title + Vérification de sécurité + 安全检查 + + + + call_zrtp_sas_validation_skip + "Passer" + 跳过 + + + + call_dialog_zrtp_validate_trust_warning_message + "Pour garantir le chiffrement, nous avons besoin de réauthentifier l’appareil de votre correspondant. Echangez vos codes :" + 为了确保加密,我们需要重新验证您联系人的设备。交换您的代码: + + + + call_dialog_zrtp_validate_trust_message + "Pour garantir le chiffrement, nous avons besoin d’authentifier l’appareil de votre correspondant. Veuillez échanger vos codes : " + 为了确保加密,我们需要验证您联系人的设备。请交换您的代码: + + + + call_dialog_zrtp_validate_trust_local_code_label + "Votre code :" + 您的验证码: + + + + call_dialog_zrtp_validate_trust_remote_code_label + "Code correspondant :" + 对话方验证码: + + + + call_dialog_zrtp_validate_trust_letters_do_not_match_text + "Le code fourni ne correspond pas." + 提供的验证码不匹配。 + + + + call_dialog_zrtp_security_alert_message + "La confidentialité de votre appel peut être compromise !" + 您通话的保密性可能会受到损害! + + + + call_dialog_zrtp_validate_trust_letters_do_not_match + "Aucune correspondance" + 不匹配 + + + + call_action_hang_up + "Raccrocher" + 挂断 + + + + country + + + Afghanistan + 阿富汗 + + + + Albania + 阿尔巴尼亚 + + + + Algeria + 阿尔及利亚 + + + + AmericanSamoa + 美属萨摩亚 + + + + Andorra + 安道尔 + + + + Angola + 安哥拉 + + + + Anguilla + 安圭拉 + + + + AntiguaAndBarbuda + 安提瓜和巴布达 + + + + Argentina + 阿根廷 + + + + Armenia + 亚美尼亚 + + + + Aruba + 阿鲁巴 + + + + Australia + 澳大利亚 + + + + Austria + 奥地利 + + + + Azerbaijan + 阿塞拜疆 + + + + Bahamas + 巴哈马 + + + + Bahrain + 巴林 + + + + Bangladesh + 孟加拉国 + + + + Barbados + 巴巴多斯 + + + + Belarus + 白俄罗斯 + + + + Belgium + 比利时 + + + + Belize + 伯利兹 + + + + Benin + 贝宁 + + + + Bermuda + 百慕大群岛 + + + + Bhutan + 不丹 + + + + Bolivia + 玻利维亚 + + + + BosniaAndHerzegowina + 波斯尼亚和黑塞哥维那 + + + + Botswana + 博茨瓦纳 + + + + Brazil + 巴西 + + + + Brunei + 文莱 + + + + Bulgaria + 保加利亚 + + + + BurkinaFaso + 布基纳法索 + + + + Burundi + 布隆迪 + + + + Cambodia + 柬埔寨 + + + + Cameroon + 喀麦隆 + + + + Canada + 加拿大 + + + + CapeVerde + 佛得角共和国 + + + + CaymanIslands + Cayman Islands + + + + CentralAfricanRepublic + 中非共和国 + + + + Chad + 乍得共和国 + + + + Chile + 智利 + + + + China + 中国 + + + + Colombia + 哥伦比亚 + + + + Comoros + 科摩罗 + + + + PeoplesRepublicOfCongo + 刚果人民共和国 + + + + CookIslands + 库克群岛 + + + + CostaRica + 哥斯达黎加 + + + + IvoryCoast + 科特迪瓦共和国 + + + + Croatia + 克罗地亚 + + + + Cuba + 古巴 + + + + Cyprus + 塞浦路斯 + + + + CzechRepublic + 捷克共和国 + + + + Denmark + 丹麦 + + + + Djibouti + 吉布提 + + + + Dominica + 多米尼克 + + + + DominicanRepublic + 多米尼加共和国 + + + + Ecuador + 厄瓜多尔 + + + + Egypt + 埃及 + + + + ElSalvador + 萨尔瓦多 + + + + EquatorialGuinea + 赤道几内亚 + + + + Eritrea + 厄立特里亚 + + + + Estonia + 爱沙尼亚 + + + + Ethiopia + 埃塞俄比亚 + + + + FalklandIslands + 福克兰群岛 + + + + FaroeIslands + 法罗群岛 + + + + Fiji + 斐济 + + + + Finland + 芬兰 + + + + France + 法国 + + + + FrenchGuiana + 法属圭亚那 + + + + FrenchPolynesia + 法属波利尼西亚 + + + + Gabon + 加蓬 + + + + Gambia + 冈比亚 + + + + Georgia + 格鲁吉亚 + + + + Germany + 德国 + + + + Ghana + 加纳 + + + + Gibraltar + 直布罗陀 + + + + Greece + 希腊 + + + + Greenland + 格陵兰 + + + + Grenada + 格林纳达 + + + + Guadeloupe + 瓜德罗普岛 + + + + Guam + 关岛 + + + + Guatemala + 危地马拉 + + + + Guinea + 几尼 + + + + GuineaBissau + 几内亚比绍 + + + + Guyana + 圭亚那 + + + + Haiti + 海地 + + + + Honduras + 洪都拉斯 + + + + DemocraticRepublicOfCongo + 刚果民主共和国 + + + + HongKong + 香港 + + + + Hungary + 匈牙利 + + + + Iceland + 冰岛 + + + + India + 印度 + + + + Indonesia + 印度尼西亚 + + + + Iran + 伊朗 + + + + Iraq + 伊拉克 + + + + Ireland + 爱尔兰 + + + + Israel + 以色列 + + + + Italy + 意大利 + + + + Jamaica + 牙买加 + + + + Japan + 日本 + + + + Jordan + 约旦 + + + + Kazakhstan + 哈萨克斯坦 + + + + Kenya + 肯尼亚 + + + + Kiribati + 基里巴斯 + + + + DemocraticRepublicOfKorea + 朝鲜民主主义共和国 + + + + RepublicOfKorea + 韩国 + + + + Kuwait + 科威特 + + + + Kyrgyzstan + 吉尔吉斯斯坦 + + + + Laos + 老挝 + + + + Latvia + 拉脱维亚 + + + + Lebanon + 黎巴嫩 + + + + Lesotho + 莱索托 + + + + Liberia + 利比里亚 + + + + Libya + 利比亚 + + + + Liechtenstein + 列支敦士登 + + + + Lithuania + 立陶宛 + + + + Luxembourg + 卢森堡 + + + + Macau + 澳门 + + + + Macedonia + 马其顿 + + + + Madagascar + 马达加斯加 + + + + Malawi + 马拉维 + + + + Malaysia + 马来西亚 + + + + Maldives + 马尔代夫 + + + + Mali + 马里 + + + + Malta + 马耳他 + + + + MarshallIslands + 马绍尔群岛 + + + + Martinique + 马提尼克 + + + + Mauritania + 毛里塔尼亚 + + + + Mauritius + 毛里求斯 + + + + Mayotte + 马约特 + + + + Mexico + 墨西哥 + + + + Micronesia + 密克罗尼西亚 + + + + Moldova + 摩尔多瓦共和国 + + + + Monaco + 摩纳哥 + + + + Mongolia + 蒙古 + + + + Montenegro + 黑山 + + + + Montserrat + 蒙特塞拉特 + + + + Morocco + 摩洛哥 + + + + Mozambique + 莫桑比克 + + + + Myanmar + 缅甸 + + + + Namibia + 纳米比亚 + + + + NauruCountry + 瑙鲁国家 + + + + Nepal + 尼泊尔 + + + + Netherlands + 荷兰 + + + + NewCaledonia + 新喀里多尼亚 + + + + NewZealand + 新西兰 + + + + Nicaragua + 尼加拉瓜 + + + + Niger + 尼日尔 + + + + Nigeria + 尼日利亚 + + + + Niue + 纽埃 + + + + NorfolkIsland + 诺福克岛 + + + + NorthernMarianaIslands + 北马里亚纳群岛 + + + + Norway + 挪威 + + + + Oman + Oman + + + + Pakistan + 巴基斯坦 + + + + Palau + 帕劳 + + + + PalestinianTerritories + 巴勒斯坦领土 + + + + Panama + 巴拿马 + + + + PapuaNewGuinea + 巴布亚新几内亚 + + + + Paraguay + 巴拉圭 + + + + Peru + 秘鲁 + + + + Philippines + 菲律宾 + + + + Poland + 波兰 + + + + Portugal + 葡萄牙 + + + + PuertoRico + 波多黎各 + + + + Qatar + 卡塔尔 + + + + Reunion + 留尼汪岛 + + + + Romania + Romania + + + + RussianFederation + 俄罗斯联邦 + + + + Rwanda + 卢旺达 + + + + SaintHelena + 圣赫勒拿 + + + + SaintKittsAndNevis + 圣基茨和尼维斯 + + + + SaintLucia + 圣卢西亚 + + + + SaintPierreAndMiquelon + 圣皮埃尔和密克隆岛 + + + + SaintVincentAndTheGrenadines + 圣文森特和格林纳丁斯 + + + + Samoa + 萨摩亚 + + + + SanMarino + San-Marino + + + + SaoTomeAndPrincipe + 圣多美和普林西比 + + + + SaudiArabia + 沙特阿拉伯 + + + + Senegal + 塞内加尔 + + + + Serbia + 塞尔维亚 + + + + Seychelles + 塞舌尔 + + + + SierraLeone + 塞拉利昂 + + + + Singapore + 新加坡 + + + + Slovakia + 斯洛伐克 + + + + Slovenia + 斯洛文尼亚 + + + + SolomonIslands + 所罗门群岛 + + + + Somalia + 索马里 + + + + SouthAfrica + 南非 + + + + Spain + 西班牙 + + + + SriLanka + 斯里兰卡 + + + + Sudan + 苏丹 + + + + Suriname + 苏里南 + + + + Swaziland + 斯威士兰 + + + + Sweden + 瑞典 + + + + Switzerland + 瑞士 + + + + Syria + 叙利亚 + + + + Taiwan + 台湾 + + + + Tajikistan + 塔吉克斯坦 + + + + Tanzania + 坦桑尼亚 + + + + Thailand + 泰国 + + + + Togo + 多哥 + + + + Tokelau + 托克劳 + + + + Tonga + 汤加 + + + + TrinidadAndTobago + 特立尼达和多巴哥 + + + + Tunisia + 突尼斯 + + + + Turkey + 土耳其 + + + + Turkmenistan + 土库曼斯坦 + + + + TurksAndCaicosIslands + 特克斯与凯科斯群岛 + + + + Tuvalu + 图瓦卢 + + + + Uganda + 乌干达 + + + + Ukraine + Ukraine + + + + UnitedArabEmirates + 阿拉伯联合酋长国 + + + + UnitedKingdom + 英国 + + + + UnitedStates + 美国 + + + + Uruguay + 乌拉圭 + + + + Uzbekistan + 乌兹别克斯坦 + + + + Vanuatu + 瓦努阿图 + + + + Venezuela + 委内瑞拉 + + + + Vietnam + 越南 + + + + WallisAndFutunaIslands + 瓦利斯和富图纳群岛 + + + + Yemen + 也门 + + + + Zambia + 赞比亚 + + + + Zimbabwe + 津巴布韦 + + + + utils + + + formatYears + '%1 year' + + %1年 + + + + + formatMonths + '%1 month' + + %1月 + + + + + formatWeeks + '%1 week' + + %1周 + + + + + formatDays + '%1 day' + + %1天 + + + + + formatHours + '%1 hour' + + %1时 + + + + + formatMinutes + '%1 minute' + + %1分 + + + + + formatSeconds + '%1 second' + + %1秒 + + + + + codec_install + "Installation de codec" + 编解码器安装 + + + + download_codec + "Télécharger le codec %1 (%2) ?" + 是否下载编解码器%1(%2)? + + + + information_popup_success_title + "Succès" + 成功 + + + + information_popup_codec_install_success_text + "Le codec a été installé avec succès." + 编解码器已成功安装。 + + + + + + information_popup_error_title + 错误 + + + + information_popup_codec_install_error_text + "Le codec n'a pas pu être installé." + 无法安装编解码器。 + + + + information_popup_codec_save_error_text + "Le codec n'a pas pu être sauvegardé." + 无法保存编解码器。 + + + + information_popup_codec_download_error_text + "Le codec n'a pas pu être téléchargé." + 无法下载编解码器。 + + + + loading_popup_codec_install_progress + "Téléchargement en cours …" + Download in progress… + + + + okButton + OK + + + + CoreModel + + + info_popup_error_title + 错误 + + + diff --git a/Linphone/model/account/AccountManager.cpp b/Linphone/model/account/AccountManager.cpp index 6828f60e8..068d87fa1 100644 --- a/Linphone/model/account/AccountManager.cpp +++ b/Linphone/model/account/AccountManager.cpp @@ -19,6 +19,7 @@ */ #include "AccountManager.hpp" +#include "tool/accessibility/AccessibilityHelper.hpp" #include #include @@ -66,7 +67,7 @@ bool AccountManager::login(QString username, mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); auto core = CoreModel::getInstance()->getCore(); auto factory = linphone::Factory::get(); - QString assistantFile = (!QString::compare(domain, "sip.linphone.org") || domain.isEmpty()) + QString assistantFile = (!QString::compare(domain, "sip.linphone.org", Qt::CaseInsensitive) || domain.isEmpty()) ? "use-app-sip-account.rc" : "use-other-sip-account.rc"; auto account = createAccount(assistantFile); @@ -81,8 +82,13 @@ bool AccountManager::login(QString username, auto otherAccounts = core->getAccountList(); for (auto otherAccount : otherAccounts) { auto otherParams = otherAccount->getParams(); - if (otherParams->getIdentityAddress()->getUsername() == Utils::appStringToCoreString(username) && - otherParams->getDomain() == Utils::appStringToCoreString(domain)) { + if (domain.isEmpty()) { + lDebug() << "domain is empty, setting \"sip.linphone.org\" by default"; + domain = "sip.linphone.org"; + } + if (!QString::compare(Utils::coreStringToAppString(otherParams->getIdentityAddress()->getUsername()), username, + Qt::CaseInsensitive) && + !QString::compare(Utils::coreStringToAppString(otherParams->getDomain()), domain, Qt::CaseInsensitive)) { //: "The account is already connected" *errorMessage = tr("assistant_account_login_already_connected_error"); return false; @@ -153,6 +159,7 @@ bool AccountManager::login(QString username, errorMessage = tr("assistant_account_login_forbidden_error"); //: "Error during connection, please verify your parameters" else errorMessage = tr("assistant_account_login_error"); + AccessibilityHelper::announceMessage(errorMessage); mAccountModel->removeAccount(); } else if (state == linphone::RegistrationState::Ok) { core->setDefaultAccount(account); diff --git a/Linphone/model/account/AccountModel.cpp b/Linphone/model/account/AccountModel.cpp index e47b10a9f..c177b6b29 100644 --- a/Linphone/model/account/AccountModel.cpp +++ b/Linphone/model/account/AccountModel.cpp @@ -125,7 +125,7 @@ void AccountModel::setPictureUri(QString uri) { // Hack because Account doesn't provide callbacks on updated data // emit pictureUriChanged(uri); auto core = CoreModel::getInstance()->getCore(); - emit CoreModel::getInstance()->defaultAccountChanged(core, core->getDefaultAccount()); + emit CoreModel::getInstance() -> defaultAccountChanged(core, core->getDefaultAccount()); } void AccountModel::onDefaultAccountChanged() { @@ -182,7 +182,7 @@ void AccountModel::setDisplayName(QString displayName) { // Hack because Account doesn't provide callbacks on updated data // emit displayNameChanged(displayName); auto core = CoreModel::getInstance()->getCore(); - emit CoreModel::getInstance()->defaultAccountChanged(core, core->getDefaultAccount()); + emit CoreModel::getInstance() -> defaultAccountChanged(core, core->getDefaultAccount()); } void AccountModel::setDialPlan(int index) { @@ -274,7 +274,7 @@ void AccountModel::setTransport(linphone::TransportType value, bool save) { QString AccountModel::getRegistrarUri() const { if (mMonitor->getParams()->getServerAddress()) - return Utils::coreStringToAppString(mMonitor->getParams()->getServerAddress()->asString()); + return Utils::coreStringToAppString(mMonitor->getParams()->getServerAddress()->asStringUriOnly()); else return ""; } @@ -292,13 +292,12 @@ void AccountModel::setRegistrarUri(QString value) { emit setValueFailed(tr("set_server_address_failed_error_message").arg(value)); qWarning() << "Unable to set ServerAddress, failed creating address from" << value; } - emit registrarUriChanged(Utils::coreStringToAppString(address->asString())); } QString AccountModel::getOutboundProxyUri() const { auto routeAddresses = mMonitor->getParams()->getRoutesAddresses(); auto outbound = - routeAddresses.empty() ? QString() : Utils::coreStringToAppString(routeAddresses.front()->asString()); + routeAddresses.empty() ? QString() : Utils::coreStringToAppString(routeAddresses.front()->asStringUriOnly()); return outbound; } @@ -308,11 +307,11 @@ void AccountModel::setOutboundProxyUri(QString value) { //: Unable to set outbound proxy uri, failed creating address from %1 emit setValueFailed(tr("set_outbound_proxy_uri_failed_error_message").arg(value)); return; + } else { + auto params = mMonitor->getParams()->clone(); + params->setRoutesAddresses({linOutboundProxyAddress}); + emit outboundProxyUriChanged(value); } - auto params = mMonitor->getParams()->clone(); - params->setRoutesAddresses({linOutboundProxyAddress}); - - emit outboundProxyUriChanged(value); } bool AccountModel::getOutboundProxyEnabled() const { @@ -400,7 +399,7 @@ void AccountModel::setExpire(int value) { QString AccountModel::getConferenceFactoryAddress() const { auto confAddress = mMonitor->getParams()->getConferenceFactoryAddress(); - return confAddress ? Utils::coreStringToAppString(confAddress->asString()) : QString(); + return confAddress ? Utils::coreStringToAppString(confAddress->asStringUriOnly()) : QString(); } void AccountModel::setConferenceFactoryAddress(QString value) { @@ -422,7 +421,7 @@ void AccountModel::setConferenceFactoryAddress(QString value) { QString AccountModel::getAudioVideoConferenceFactoryAddress() const { auto confAddress = mMonitor->getParams()->getAudioVideoConferenceFactoryAddress(); - return confAddress ? Utils::coreStringToAppString(confAddress->asString()) : QString(); + return confAddress ? Utils::coreStringToAppString(confAddress->asStringUriOnly()) : QString(); } void AccountModel::setAudioVideoConferenceFactoryAddress(QString value) { @@ -491,7 +490,7 @@ void AccountModel::setVoicemailAddress(QString value) { QString AccountModel::getVoicemailAddress() const { auto addr = mMonitor->getParams()->getVoicemailAddress(); - return addr ? Utils::coreStringToAppString(addr->asString()) : ""; + return addr ? Utils::coreStringToAppString(addr->asStringUriOnly()) : ""; } // UserData (see hpp for explanations) @@ -585,7 +584,7 @@ void AccountModel::setPresence(LinphoneEnums::Presence presence, } setNotificationsAllowed( - presence != LinphoneEnums::Presence::DoNotDisturb && + presence != LinphoneEnums::Presence::Offline && presence != LinphoneEnums::Presence::DoNotDisturb && (presence != LinphoneEnums::Presence::Away || core->getConfig()->getBool(accountSection, "allow_notifications_in_presence_away", true)) && (presence != LinphoneEnums::Presence::Busy || diff --git a/Linphone/model/address-books/carddav/CarddavModel.cpp b/Linphone/model/address-books/carddav/CarddavModel.cpp index 8786268e8..38621b04e 100644 --- a/Linphone/model/address-books/carddav/CarddavModel.cpp +++ b/Linphone/model/address-books/carddav/CarddavModel.cpp @@ -97,15 +97,16 @@ void CarddavModel::remove() { void CarddavModel::onSyncStatusChanged(const std::shared_ptr &friendList, linphone::FriendList::SyncStatus status, const std::string &message) { + lInfo() << log().arg("carddav sync status changed :") << message; if (status == linphone::FriendList::SyncStatus::Successful) { lInfo() << log().arg("Successfully synchronized:") << mCarddavFriendList->getUri(); setMonitor(nullptr); SettingsModel::setCardDAVListForNewFriends(mStoreNewFriendsInIt ? friendList->getDisplayName() : ""); - emit saved(true); + emit saved(true, Utils::coreStringToAppString(message)); } if (status == linphone::FriendList::SyncStatus::Failure) { lWarning() << log().arg("Synchronization failure:") << mCarddavFriendList->getUri(); setMonitor(nullptr); - emit saved(false); + emit saved(false, Utils::coreStringToAppString(message)); } } diff --git a/Linphone/model/address-books/carddav/CarddavModel.hpp b/Linphone/model/address-books/carddav/CarddavModel.hpp index 30287a063..f94de0157 100644 --- a/Linphone/model/address-books/carddav/CarddavModel.hpp +++ b/Linphone/model/address-books/carddav/CarddavModel.hpp @@ -36,12 +36,17 @@ public: CarddavModel(const std::shared_ptr &carddavFriendList, QObject *parent = nullptr); ~CarddavModel(); - void save(std::string displayName, std::string uri, std::string username, std::string password, std::string realm, bool storeNewFriendsInIt); + void save(std::string displayName, + std::string uri, + std::string username, + std::string password, + std::string realm, + bool storeNewFriendsInIt); void remove(); bool storeNewFriendsInIt(); signals: - void saved(bool success); + void saved(bool success, QString message); void removed(); private: diff --git a/Linphone/model/call/CallModel.cpp b/Linphone/model/call/CallModel.cpp index a753b377e..b6c05cf6d 100644 --- a/Linphone/model/call/CallModel.cpp +++ b/Linphone/model/call/CallModel.cpp @@ -69,6 +69,7 @@ void CallModel::accept(bool withVideo) { activateLocalVideo(params, withVideo); mMonitor->acceptWithParams(params); emit localVideoEnabledChanged(withVideo); + emit cameraEnabledChanged(params->cameraEnabled()); } void CallModel::decline() { @@ -104,7 +105,9 @@ void CallModel::transferTo(const std::shared_ptr &address) { void CallModel::transferToAnother(const std::shared_ptr &call) { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); - if (mMonitor->transferToAnother(call) == -1) + if (!call) return; + // Transfer paused call to current call + if (call->transferToAnother(mMonitor) == -1) lWarning() << log() .arg(QStringLiteral("Unable to transfer: `%1`.")) .arg(Utils::coreStringToAppString(call->getRemoteAddress()->asStringUriOnly())); @@ -128,13 +131,25 @@ void CallModel::setSpeakerMuted(bool isMuted) { emit speakerMutedChanged(isMuted); } +void CallModel::enableVideo(bool enable) { + mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); + auto params = CoreModel::getInstance()->getCore()->createCallParams(mMonitor); + params->enableVideo(enable); + mMonitor->update(params); +} + +bool CallModel::videoEnabled() const { + return mMonitor->getParams()->videoEnabled(); +} + void CallModel::activateLocalVideo(std::shared_ptr ¶ms, bool enable) { lInfo() << sLog() .arg("Updating call with video enabled and media direction set to %1") .arg((int)params->getVideoDirection()); params->enableVideo(SettingsModel::getInstance()->getVideoEnabled()); - auto videoDirection = enable ? linphone::MediaDirection::SendRecv : linphone::MediaDirection::RecvOnly; - params->setVideoDirection(videoDirection); + auto videoDirection = params->getVideoDirection(); + params->setVideoDirection(enable || params->screenSharingEnabled() ? linphone::MediaDirection::SendRecv + : linphone::MediaDirection::RecvOnly); } void CallModel::setLocalVideoEnabled(bool enabled) { @@ -144,6 +159,15 @@ void CallModel::setLocalVideoEnabled(bool enabled) { mMonitor->update(params); } +void CallModel::setCameraEnabled(bool enabled) { + mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); + auto params = CoreModel::getInstance()->getCore()->createCallParams(mMonitor); + activateLocalVideo(params, enabled); + lInfo() << log().arg("Enable camera :") << enabled; + params->enableCamera(enabled); + mMonitor->update(params); +} + void CallModel::startRecording() { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); mMonitor->startRecording(); @@ -431,8 +455,11 @@ void CallModel::onStateChanged(const std::shared_ptr &call, setConference(call->getConference()); mDurationTimer.start(); // After UpdatedByRemote, video direction could be changed. - auto videoDirection = call->getParams()->getVideoDirection(); + auto params = call->getParams(); + auto videoDirection = params->getVideoDirection(); auto remoteVideoDirection = call->getRemoteParams()->getVideoDirection(); + lInfo() << log().arg("Camera enabled changed") << params->cameraEnabled(); + emit cameraEnabledChanged(params->cameraEnabled()); emit localVideoEnabledChanged(videoDirection == linphone::MediaDirection::SendOnly || videoDirection == linphone::MediaDirection::SendRecv); emit remoteVideoEnabledChanged(remoteVideoDirection == linphone::MediaDirection::SendOnly || @@ -491,6 +518,7 @@ void CallModel::onVideoDisplayErrorOccurred(const std::shared_ptr &call, const std::shared_ptr &audioDevice) { + lInfo() << log().arg("audio device changed"); emit audioDeviceChanged(call, audioDevice); } diff --git a/Linphone/model/call/CallModel.hpp b/Linphone/model/call/CallModel.hpp index 847f50f41..db5c04abe 100644 --- a/Linphone/model/call/CallModel.hpp +++ b/Linphone/model/call/CallModel.hpp @@ -45,6 +45,7 @@ public: void setMicrophoneMuted(bool isMuted); void setSpeakerMuted(bool isMuted); void setLocalVideoEnabled(bool enabled); + void setCameraEnabled(bool enabled); void startRecording(); void stopRecording(); void setRecordFile(const std::string &path); @@ -82,7 +83,8 @@ public: LinphoneEnums::VideoSourceScreenSharingType getVideoSourceType() const; int getScreenSharingIndex() const; void setVideoSourceDescriptorModel(std::shared_ptr model = nullptr); - + void enableVideo(bool enable); + bool videoEnabled() const; static void activateLocalVideo(std::shared_ptr ¶ms, bool enable); void sendDtmf(const QString &dtmf); @@ -97,6 +99,7 @@ signals: void microphoneVolumeChanged(float); void pausedChanged(bool paused); void remoteVideoEnabledChanged(bool remoteVideoEnabled); + void cameraEnabledChanged(bool enalbed); void localVideoEnabledChanged(bool enabled); void recordingChanged(const std::shared_ptr &call, bool recording); void speakerVolumeGainChanged(float volume); diff --git a/Linphone/model/chat/ChatModel.cpp b/Linphone/model/chat/ChatModel.cpp index e6a65ac02..1adad7fbe 100644 --- a/Linphone/model/chat/ChatModel.cpp +++ b/Linphone/model/chat/ChatModel.cpp @@ -44,7 +44,7 @@ ChatModel::ChatModel(const std::shared_ptr &chatroom, QObjec ChatModel::~ChatModel() { mustBeInLinphoneThread("~" + getClassName()); - disconnect(CoreModel::getInstance().get(), &CoreModel::messageReadInChatRoom, this, nullptr); + disconnect(CoreModel::getInstance().get(), &CoreModel::chatRoomRead, this, nullptr); } QDateTime ChatModel::getLastUpdateTime() { @@ -173,7 +173,6 @@ void ChatModel::leave() { void ChatModel::deleteChatRoom() { CoreModel::getInstance()->getCore()->deleteChatRoom(mMonitor); - emit deleted(); } std::shared_ptr diff --git a/Linphone/model/chat/message/ChatMessageModel.cpp b/Linphone/model/chat/message/ChatMessageModel.cpp index 5e1622de5..d69fbd94d 100644 --- a/Linphone/model/chat/message/ChatMessageModel.cpp +++ b/Linphone/model/chat/message/ChatMessageModel.cpp @@ -92,7 +92,7 @@ bool ChatMessageModel::isRead() const { void ChatMessageModel::markAsRead() { mMonitor->markAsRead(); emit messageRead(); - emit CoreModel::getInstance()->messageReadInChatRoom(mMonitor->getChatRoom()); + emit CoreModel::getInstance() -> messageReadInChatRoom(mMonitor->getChatRoom()); } void ChatMessageModel::deleteMessageFromChatRoom(bool deletedByUser) { diff --git a/Linphone/model/chat/message/content/ChatMessageContentModel.cpp b/Linphone/model/chat/message/content/ChatMessageContentModel.cpp index be3404643..2345c56fd 100644 --- a/Linphone/model/chat/message/content/ChatMessageContentModel.cpp +++ b/Linphone/model/chat/message/content/ChatMessageContentModel.cpp @@ -74,8 +74,12 @@ void ChatMessageContentModel::removeDownloadedFile(QString filePath) { } } -void ChatMessageContentModel::downloadFile(const QString &name) { - if (!mChatMessageModel) return; +bool ChatMessageContentModel::downloadFile(const QString &name, QString *error) { + if (!mChatMessageModel) { + //: Internal error : message object does not exist anymore ! + if (error) *error = tr("download_error_object_doesnt_exist"); + return false; + } switch (mChatMessageModel->getState()) { case linphone::ChatMessage::State::Delivered: case linphone::ChatMessage::State::DeliveredToUser: @@ -83,10 +87,13 @@ void ChatMessageContentModel::downloadFile(const QString &name) { case linphone::ChatMessage::State::FileTransferDone: break; case linphone::ChatMessage::State::FileTransferInProgress: - return; + return true; default: - lWarning() << QStringLiteral("Wrong message state when requesting downloading, state=.") - << LinphoneEnums::fromLinphone(mChatMessageModel->getState()); + auto state = LinphoneEnums::fromLinphone(mChatMessageModel->getState()); + lWarning() << QStringLiteral("Wrong message state when requesting downloading, state=") << state; + //: Error while trying to download content : %1 + if (error) *error = tr("download_file_server_error").arg(LinphoneEnums::toString(state)); + return false; } bool soFarSoGood; const QString safeFilePath = Utils::getSafeFilePath( @@ -94,21 +101,32 @@ void ChatMessageContentModel::downloadFile(const QString &name) { if (!soFarSoGood) { lWarning() << QStringLiteral("Unable to create safe file path for: %1.").arg(name); - return; + //: Unable to create safe file path for: %1 + if (error) *error = tr("download_file_error_no_safe_file_path").arg(name); + return false; } mContent->setFilePath(Utils::appStringToCoreString(safeFilePath)); if (!mContent->isFileTransfer()) { lWarning() << QStringLiteral("file transfer is not available"); - Utils::showInformationPopup( - //: Error - tr("popup_error_title"), - //: This file was already downloaded and is no more on the server. Your peer have to resend it if you want - //: to get it - tr("popup_download_error_message"), false); + //: This file was already downloaded and is no more on the server. Your peer have to resend it if you want + //: to get it + if (error) *error = tr("download_file_error_file_transfer_unavailable"); + return false; + } else if (mContent->getName().empty()) { + lWarning() << QStringLiteral("content name is null, can't download it !"); + //: Content name is null, can't download it ! + if (error) *error = tr("download_file_error_null_name"); + return false; } else { - if (!mChatMessageModel->getMonitor()->downloadContent(mContent)) + lDebug() << log().arg("download file : %1").arg(name); + auto downloaded = mChatMessageModel->getMonitor()->downloadContent(mContent); + if (!downloaded) { lWarning() << QStringLiteral("Unable to download file of entry %1.").arg(name); + //: Unable to download file of entry %1 + if (error) *error = tr("download_file_error_unable_to_download").arg(name); + } + return downloaded; } } diff --git a/Linphone/model/chat/message/content/ChatMessageContentModel.hpp b/Linphone/model/chat/message/content/ChatMessageContentModel.hpp index cb94cfb65..b552f536f 100644 --- a/Linphone/model/chat/message/content/ChatMessageContentModel.hpp +++ b/Linphone/model/chat/message/content/ChatMessageContentModel.hpp @@ -40,17 +40,21 @@ public: std::shared_ptr chatMessageModel); ~ChatMessageContentModel(); - QString getThumbnail() const; - void setThumbnail(const QString &data); void setWasDownloaded(bool wasDownloaded); void createThumbnail(); void removeDownloadedFile(QString filePath); - void downloadFile(const QString &name); + /** + * Returns true if download succeed, false otherwise + */ + bool downloadFile(const QString &name, QString *error = nullptr); void cancelDownloadFile(); void openFile(const QString &name, bool wasDownloaded, bool showDirectory = false); + /** + * Returns true if file saved successfully, false otherwise + */ bool saveAs(const QString &path); const std::shared_ptr &getContent() const; @@ -70,4 +74,4 @@ private: QSharedPointer mConferenceInfoModel; }; -#endif \ No newline at end of file +#endif diff --git a/Linphone/model/conference/ConferenceModel.cpp b/Linphone/model/conference/ConferenceModel.cpp index 8564e0173..13288700b 100644 --- a/Linphone/model/conference/ConferenceModel.cpp +++ b/Linphone/model/conference/ConferenceModel.cpp @@ -236,8 +236,8 @@ void ConferenceModel::onParticipantDeviceMediaCapabilityChanged( void ConferenceModel::onParticipantDeviceMediaAvailabilityChanged( const std::shared_ptr &conference, const std::shared_ptr &participantDevice) { - lInfo() << "onParticipantDeviceMediaAvailabilityChanged: " - << (int)participantDevice->getStreamAvailability(linphone::StreamType::Video) + lInfo() << "onParticipantDeviceMediaAvailabilityChanged: video stream available =" + << participantDevice->getStreamAvailability(linphone::StreamType::Video) << ". Device: " << participantDevice->getAddress()->asString().c_str(); emit participantDeviceMediaAvailabilityChanged(participantDevice); } diff --git a/Linphone/model/core/CoreModel.cpp b/Linphone/model/core/CoreModel.cpp index 9f05fbb39..fff5a3d21 100644 --- a/Linphone/model/core/CoreModel.cpp +++ b/Linphone/model/core/CoreModel.cpp @@ -114,6 +114,10 @@ void CoreModel::start() { if (mCore->getLogCollectionUploadServerUrl().empty()) mCore->setLogCollectionUploadServerUrl(Constants::DefaultUploadLogsServer); + /// These 2 API should not be used as they manage internal gains insterad of those of the soundcard. + // Use playback/capture gain from capture graph and call only + mCore->setMicGainDb(0.0); + mCore->setPlaybackGainDb(0.0); mIterateTimer = new QTimer(this); mIterateTimer->setInterval(20); connect(mIterateTimer, &QTimer::timeout, [this]() { mCore->iterate(); }); @@ -200,7 +204,7 @@ void CoreModel::setPathAfterStart() { QString rootCaPath = Utils::coreStringToAppString(mCore->getRootCa()); QString relativeRootCa = Paths::getAppRootCaFilePath(); lDebug() << "[CoreModel] Getting rootCa paths: " << rootCaPath << " VS " << relativeRootCa; - if (!Paths::filePathExists(rootCaPath) || Paths::isSameRelativeFile(rootCaPath, relativeRootCa) ) { + if (!Paths::filePathExists(rootCaPath) || Paths::isSameRelativeFile(rootCaPath, relativeRootCa)) { lInfo() << "[CoreModel] Reset rootCa path to: " << relativeRootCa; mCore->setRootCa(Utils::appStringToCoreString(relativeRootCa)); } @@ -219,7 +223,10 @@ QString CoreModel::getFetchConfig(QString filePath, bool *error) { if (!filePath.isEmpty()) filePath = "file://" + filePath; } if (filePath.isEmpty()) { - qWarning() << "Remote provisionning cannot be retrieved. Command have been cleaned"; + qWarning() << "Remote provisioning cannot be retrieved. Command have been cleaned"; + Utils::showInformationPopup(tr("info_popup_error_title"), + //: "Remote provisioning cannot be retrieved" + tr("fetching_config_failed_error_message"), false); *error = true; } } @@ -368,6 +375,23 @@ void CoreModel::searchInMagicSearch(QString filter, mMagicSearch->search(filter, sourceFlags, aggregation, maxResults); } +void CoreModel::checkForUpdate(const std::string &applicationVersion, bool requestedByUser) { + mCheckVersionRequestedByUser = requestedByUser; + auto settingsModel = SettingsModel::getInstance(); + if (settingsModel->isCheckForUpdateEnabled()) { + if (settingsModel->getVersionCheckUrl().isEmpty()) + settingsModel->setVersionCheckUrl(Constants::VersionCheckReleaseUrl); + lInfo() << log().arg("Checking for update for version") << applicationVersion; + getCore()->checkForUpdate(applicationVersion); + } else { + lWarning() << log().arg("Check for update settings is not set"); + } +} + +bool CoreModel::isCheckVersionRequestedByUser() const { + return mCheckVersionRequestedByUser; +} + //--------------------------------------------------------------------------------------------------------------------------- void CoreModel::onAccountAdded(const std::shared_ptr &core, @@ -525,6 +549,7 @@ void CoreModel::onLogCollectionUploadProgressIndication(const std::shared_ptr
  • &core, const std::shared_ptr &room, const std::shared_ptr &message) { + if (SettingsModel::getInstance()->getDisableChatFeature()) return; if (message->isOutgoing()) return; emit unreadNotificationsChanged(); std::list> messages; @@ -537,6 +562,7 @@ void CoreModel::onMessageReceived(const std::shared_ptr &core, void CoreModel::onMessagesReceived(const std::shared_ptr &core, const std::shared_ptr &room, const std::list> &messages) { + if (SettingsModel::getInstance()->getDisableChatFeature()) return; std::list> finalMessages; for (auto &message : messages) { if (message->isOutgoing()) continue; @@ -554,6 +580,7 @@ void CoreModel::onNewMessageReaction(const std::shared_ptr &core const std::shared_ptr &chatRoom, const std::shared_ptr &message, const std::shared_ptr &reaction) { + if (SettingsModel::getInstance()->getDisableChatFeature()) return; emit newMessageReaction(core, chatRoom, message, reaction); } void CoreModel::onNotifyPresenceReceivedForUriOrTel( @@ -574,6 +601,7 @@ void CoreModel::onReactionRemoved(const std::shared_ptr &core, const std::shared_ptr &chatRoom, const std::shared_ptr &message, const std::shared_ptr &address) { + if (SettingsModel::getInstance()->getDisableChatFeature()) return; emit reactionRemoved(core, chatRoom, message, address); } void CoreModel::onTransferStateChanged(const std::shared_ptr &core, @@ -585,7 +613,7 @@ void CoreModel::onVersionUpdateCheckResultReceived(const std::shared_ptr &core, @@ -611,3 +639,12 @@ void CoreModel::onFriendListRemoved(const std::shared_ptr &core, } */ } + +void CoreModel::onAudioDevicesListUpdated(const std::shared_ptr &core) { + emit audioDevicesListUpdated(core); +} + +void CoreModel::onAudioDeviceChanged(const std::shared_ptr &core, + const std::shared_ptr &device) { + emit audioDeviceChanged(core, device); +} \ No newline at end of file diff --git a/Linphone/model/core/CoreModel.hpp b/Linphone/model/core/CoreModel.hpp index 1c07c9cc7..94caad489 100644 --- a/Linphone/model/core/CoreModel.hpp +++ b/Linphone/model/core/CoreModel.hpp @@ -71,6 +71,9 @@ public: LinphoneEnums::MagicSearchAggregation aggregation, int maxResults); + void checkForUpdate(const std::string &applicationVersion, bool requestedByUser = false); + bool isCheckVersionRequestedByUser() const; + bool mEnd = false; linphone::ConfiguringState mConfigStatus; QString mConfigMessage; @@ -97,6 +100,7 @@ private: QMap mOpenIdConnections; std::shared_ptr mMagicSearch; bool mStarted = false; + bool mCheckVersionRequestedByUser = false; void setPathBeforeCreation(); void setPathsAfterCreation(); @@ -202,6 +206,9 @@ private: const std::string &url) override; virtual void onFriendListRemoved(const std::shared_ptr &core, const std::shared_ptr &friendList) override; + virtual void onAudioDevicesListUpdated(const std::shared_ptr &core) override; + virtual void onAudioDeviceChanged(const std::shared_ptr &core, + const std::shared_ptr &device) override; signals: void accountAdded(const std::shared_ptr &core, const std::shared_ptr &account); @@ -281,9 +288,13 @@ signals: void versionUpdateCheckResultReceived(const std::shared_ptr &core, linphone::VersionUpdateCheckResult result, const std::string &version, - const std::string &url); + const std::string &url, + bool checkRequestedByUser); void friendListRemoved(const std::shared_ptr &core, const std::shared_ptr &friendList); + void audioDevicesListUpdated(const std::shared_ptr &core); + void audioDeviceChanged(const std::shared_ptr &core, + const std::shared_ptr &device); }; #endif diff --git a/Linphone/model/search/MagicSearchModel.cpp b/Linphone/model/search/MagicSearchModel.cpp index 237d9c9d9..721fbcaef 100644 --- a/Linphone/model/search/MagicSearchModel.cpp +++ b/Linphone/model/search/MagicSearchModel.cpp @@ -155,5 +155,5 @@ void MagicSearchModel::updateFriendListWithFriend(const std::shared_ptraddFriend(linphoneFriend); - emit CoreModel::getInstance()->friendCreated(linphoneFriend); + emit CoreModel::getInstance() -> friendCreated(linphoneFriend); } diff --git a/Linphone/model/setting/SettingsModel.cpp b/Linphone/model/setting/SettingsModel.cpp index a2de2a0d2..bfe4024c9 100644 --- a/Linphone/model/setting/SettingsModel.cpp +++ b/Linphone/model/setting/SettingsModel.cpp @@ -81,6 +81,20 @@ SettingsModel::SettingsModel() { QObject::connect(CoreModel::getInstance().get(), &CoreModel::lastCallEnded, this, [this]() { if (mCaptureGraphListenerCount > 0) createCaptureGraph(); // Repair the capture graph }); + QObject::connect(CoreModel::getInstance().get(), &CoreModel::audioDevicesListUpdated, this, + [this](const std::shared_ptr &core) { + lInfo() << log().arg("audio device list updated"); + updateCallSettings(); + }); + QObject::connect( + CoreModel::getInstance().get(), &CoreModel::audioDeviceChanged, this, + [this](const std::shared_ptr &core, const std::shared_ptr &device) { + lInfo() << log().arg("audio device changed"); + if (device) lInfo() << "device :" << device->getDeviceName(); + // emit playbackDeviceChanged(getPlaybackDevice()); + // emit captureDeviceChanged(getCaptureDevice()); + // emit ringerDeviceChanged(getRingerDevice()); + }); } SettingsModel::~SettingsModel() { @@ -173,8 +187,10 @@ void SettingsModel::stopCaptureGraph() { // Force a call on the 'detect' method of all audio filters, updating new or removed devices void SettingsModel::accessCallSettings() { - // Audio mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); + startCaptureGraph(); + + // Audio CoreModel::getInstance()->getCore()->reloadSoundDevices(); emit captureDevicesChanged(getCaptureDevices()); emit playbackDevicesChanged(getPlaybackDevices()); @@ -185,12 +201,28 @@ void SettingsModel::accessCallSettings() { emit playbackGainChanged(getPlaybackGain()); emit captureGainChanged(getCaptureGain()); - startCaptureGraph(); // Video CoreModel::getInstance()->getCore()->reloadVideoDevices(); emit videoDevicesChanged(getVideoDevices()); } +void SettingsModel::updateCallSettings() { + mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); + + // Audio + emit captureDevicesChanged(getCaptureDevices()); + emit playbackDevicesChanged(getPlaybackDevices()); + emit playbackDeviceChanged(getPlaybackDevice()); + emit ringerDevicesChanged(getRingerDevices()); + emit ringerDeviceChanged(getRingerDevice()); + emit captureDeviceChanged(getCaptureDevice()); + emit playbackGainChanged(getPlaybackGain()); + emit captureGainChanged(getCaptureGain()); + + // Video + emit videoDevicesChanged(getVideoDevices()); +} + void SettingsModel::closeCallSettings() { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); stopCaptureGraph(); @@ -205,13 +237,12 @@ bool SettingsModel::getCaptureGraphRunning() { float SettingsModel::getMicVolume() { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); float v = 0.0; - if (mSimpleCaptureGraph && mSimpleCaptureGraph->isRunning()) { v = mSimpleCaptureGraph->getCaptureVolume(); } else { auto call = CoreModel::getInstance()->getCore()->getCurrentCall(); if (call) { - v = MediastreamerUtils::computeVu(call->getRecordVolume()); + v = call->getRecordVolume(); } } @@ -221,33 +252,49 @@ float SettingsModel::getMicVolume() { float SettingsModel::getPlaybackGain() const { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); - float dbGain = CoreModel::getInstance()->getCore()->getPlaybackGainDb(); - return MediastreamerUtils::dbToLinear(dbGain); + if (mSimpleCaptureGraph && mSimpleCaptureGraph->isRunning()) { + return mSimpleCaptureGraph->getPlaybackGain(); + } else { + auto call = CoreModel::getInstance()->getCore()->getCurrentCall(); + if (call) return call->getSpeakerVolumeGain(); + else return 0.0; + } } void SettingsModel::setPlaybackGain(float gain) { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); float oldGain = getPlaybackGain(); - CoreModel::getInstance()->getCore()->setPlaybackGainDb(MediastreamerUtils::linearToDb(gain)); if (mSimpleCaptureGraph && mSimpleCaptureGraph->isRunning()) { mSimpleCaptureGraph->setPlaybackGain(gain); } + auto currentCall = CoreModel::getInstance()->getCore()->getCurrentCall(); + if (currentCall) { + currentCall->setSpeakerVolumeGain(gain); + } if ((int)(oldGain * 1000) != (int)(gain * 1000)) emit playbackGainChanged(gain); } float SettingsModel::getCaptureGain() const { mustBeInLinphoneThread(getClassName()); - float dbGain = CoreModel::getInstance()->getCore()->getMicGainDb(); - return MediastreamerUtils::dbToLinear(dbGain); + if (mSimpleCaptureGraph && mSimpleCaptureGraph->isRunning()) { + return mSimpleCaptureGraph->getCaptureGain(); + } else { + auto call = CoreModel::getInstance()->getCore()->getCurrentCall(); + if (call) return call->getMicrophoneVolumeGain(); + else return 0.0; + } } void SettingsModel::setCaptureGain(float gain) { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); float oldGain = getCaptureGain(); - CoreModel::getInstance()->getCore()->setMicGainDb(MediastreamerUtils::linearToDb(gain)); if (mSimpleCaptureGraph && mSimpleCaptureGraph->isRunning()) { mSimpleCaptureGraph->setCaptureGain(gain); } + auto currentCall = CoreModel::getInstance()->getCore()->getCurrentCall(); + if (currentCall) { + currentCall->setMicrophoneVolumeGain(gain); + } if ((int)(oldGain * 1000) != (int)(gain * 1000)) emit captureGainChanged(gain); } @@ -396,8 +443,7 @@ void SettingsModel::setPlaybackDevice(const QVariantMap &device) { QVariantMap SettingsModel::getRingerDevice() const { mustBeInLinphoneThread(log().arg(Q_FUNC_INFO)); for (const auto &device : CoreModel::getInstance()->getCore()->getExtendedAudioDevices()) { - if (device->getUseForRinging()) - return ToolModel::createVariant(device); + if (device->getUseForRinging()) return ToolModel::createVariant(device); } return ToolModel::createVariant(nullptr); } @@ -408,8 +454,7 @@ void SettingsModel::setRingerDevice(QVariantMap device) { auto id = Utils::appStringToCoreString(device["id"].toString()); if (ldevice->getId() == id) { ldevice->setUseForRinging(true); - }else - ldevice->setUseForRinging(false); + } else ldevice->setUseForRinging(false); } emit ringerDeviceChanged(device); } @@ -863,6 +908,40 @@ bool SettingsModel::getDisableMeetingsFeature() const { return !!mConfig->getInt(UiSection, "disable_meetings_feature", 0); } +bool SettingsModel::isCheckForUpdateAvailable() const { +#ifdef ENABLE_UPDATE_CHECK + return true; +#else + return false; +#endif +} + +bool SettingsModel::isCheckForUpdateEnabled() const { + return !!mConfig->getInt(UiSection, "check_for_update_enabled", isCheckForUpdateAvailable()); +} + +void SettingsModel::setCheckForUpdateEnabled(bool enable) { + mConfig->setInt(UiSection, "check_for_update_enabled", enable); + emit checkForUpdateEnabledChanged(); +} + +QString SettingsModel::getVersionCheckUrl() { + auto url = mConfig->getString("misc", "version_check_url_root", ""); + if (url == "") { + url = Constants::VersionCheckReleaseUrl; + if (url != "") mConfig->setString("misc", "version_check_url_root", url); + } + return Utils::coreStringToAppString(url); +} + +void SettingsModel::setVersionCheckUrl(const QString &url) { + if (url != getVersionCheckUrl()) { + // Do not trim the url before because we want to update GUI from potential auto fix. + mConfig->setString("misc", "version_check_url_root", Utils::appStringToCoreString(url.trimmed())); + emit versionCheckUrlChanged(); + } +} + void SettingsModel::setChatNotificationSoundPath(const QString &path) { QString cleanedPath = QDir::cleanPath(path); mConfig->setString(UiSection, "chat_sound_notification_file", Utils::appStringToCoreString(cleanedPath)); diff --git a/Linphone/model/setting/SettingsModel.hpp b/Linphone/model/setting/SettingsModel.hpp index 2673dd7e7..25b57b2a7 100644 --- a/Linphone/model/setting/SettingsModel.hpp +++ b/Linphone/model/setting/SettingsModel.hpp @@ -22,6 +22,7 @@ #define SETTINGS_MODEL_H_ #include "MediastreamerUtils.hpp" +#include "tool/LinphoneEnums.hpp" #include #include #include @@ -69,6 +70,7 @@ public: bool getIsInCall() const; void accessCallSettings(); + void updateCallSettings(); void closeCallSettings(); void startCaptureGraph(); @@ -186,6 +188,13 @@ public: void setDisableMeetingsFeature(bool value); bool getDisableMeetingsFeature() const; + bool isCheckForUpdateAvailable() const; + bool isCheckForUpdateEnabled() const; + void setCheckForUpdateEnabled(bool enable); + QString getVersionCheckUrl(); + void setVersionCheckUrl(const QString &url); + void setVersionCheckType(const LinphoneEnums::VersionCheckType &type); + // UI DECLARE_GETSET(bool, disableChatFeature, DisableChatFeature) DECLARE_GETSET(bool, disableBroadcastFeature, DisableBroadcastFeature) @@ -269,6 +278,9 @@ signals: void disableMeetingsFeatureChanged(bool value); + void checkForUpdateEnabledChanged(); + void versionCheckUrlChanged(); + // Messages. -------------------------------------------------------------------- void autoDownloadReceivedFilesChanged(bool enabled); diff --git a/Linphone/model/tool/ToolModel.cpp b/Linphone/model/tool/ToolModel.cpp index 4ec89f5f7..9e654721a 100644 --- a/Linphone/model/tool/ToolModel.cpp +++ b/Linphone/model/tool/ToolModel.cpp @@ -320,7 +320,10 @@ bool ToolModel::createCall(const QString &sipAddress, SettingsModel::getInstance()->setCallToneIndicationsEnabled(true); } std::shared_ptr params = core->createCallParams(nullptr); - CallModel::activateLocalVideo(params, localVideoEnabled); + params->enableVideo(localVideoEnabled); + params->enableCamera(localVideoEnabled); + auto videoDirection = localVideoEnabled ? linphone::MediaDirection::SendRecv : linphone::MediaDirection::RecvOnly; + params->setVideoDirection(videoDirection); bool micEnabled = options.contains("microEnabled") ? options["microEnabled"].toBool() : true; params->enableMic(micEnabled); @@ -627,6 +630,8 @@ ToolModel::getChatRoomParams(std::shared_ptr call, std::shared_p //: Dummy subject params->setSubject("Dummy subject"); params->setAccount(account); + params->enableAudio(false); + params->enableVideo(false); auto chatParams = params->getChatParams(); if (!chatParams) { @@ -758,6 +763,7 @@ ToolModel::createGroupChatRoom(QString subject, std::listgetParams(); auto chatRoom = core->createChatRoom(params, participantsAddresses); + if (!chatRoom) lWarning() << ("[ToolModel] Failed to create group chat"); return chatRoom; } diff --git a/Linphone/tool/Constants.hpp b/Linphone/tool/Constants.hpp index fa805cb9c..c0e9b7762 100644 --- a/Linphone/tool/Constants.hpp +++ b/Linphone/tool/Constants.hpp @@ -66,8 +66,8 @@ public: static constexpr int DefaultExpires = 600; static constexpr int DefaultPublishExpires = 120; static constexpr char DownloadUrl[] = "https://www.linphone.org/technical-corner/linphone"; - static constexpr char VersionCheckReleaseUrl[] = "https://linphone.org/releases"; - static constexpr char VersionCheckNightlyUrl[] = "https://linphone.org/snapshots"; + static constexpr char VersionCheckReleaseUrl[] = "https://download.linphone.org/releases"; + static constexpr char VersionCheckNightlyUrl[] = "https://download.linphone.org/snapshots"; static constexpr char PasswordRecoveryUrl[] = "https://subscribe.linphone.org/recovery/email"; static constexpr char CguUrl[] = "https://www.linphone.org/en/terms-of-use/"; static constexpr char PrivatePolicyUrl[] = "https://www.linphone.org/en/privacy-policy/"; @@ -129,7 +129,7 @@ public: static constexpr char LinphoneDomain[] = "sip.linphone.org"; // Use for checking if config are a Linphone static constexpr char WindowIconPath[] = ":/data/image/logo.svg"; - static constexpr char ApplicationMinimalQtVersion[] = "6.6.5"; + static constexpr char ApplicationMinimalQtVersion[] = "6.10.0"; static constexpr char DefaultConferenceURI[] = "sip:conference-factory@sip.linphone.org"; // Default for a Linphone account static constexpr char DefaultVideoConferenceURI[] = diff --git a/Linphone/tool/LinphoneEnums.cpp b/Linphone/tool/LinphoneEnums.cpp index 77619551d..c64d82dd5 100644 --- a/Linphone/tool/LinphoneEnums.cpp +++ b/Linphone/tool/LinphoneEnums.cpp @@ -120,6 +120,9 @@ LinphoneEnums::ChatMessageState LinphoneEnums::fromLinphone(const linphone::Chat QString LinphoneEnums::toString(const LinphoneEnums::ChatMessageState &data) { switch (data) { + case LinphoneEnums::ChatMessageState::StateIdle: + //: "idle" + return QObject::tr("message_state_idle"); case LinphoneEnums::ChatMessageState::StateInProgress: //: "delivery in progress" return QObject::tr("message_state_in_progress"); diff --git a/Linphone/tool/LinphoneEnums.hpp b/Linphone/tool/LinphoneEnums.hpp index d13deccca..849b870f4 100644 --- a/Linphone/tool/LinphoneEnums.hpp +++ b/Linphone/tool/LinphoneEnums.hpp @@ -399,6 +399,9 @@ LinphoneEnums::VideoSourceScreenSharingType fromLinphone(const linphone::VideoSo enum class PlaybackState { PlayingState = 0, PausedState = 1, StoppedState = 2, ErrorState = 3 }; Q_ENUM_NS(PlaybackState); +enum class VersionCheckType { Release = 0, Nightly = 1, Custom = 2 }; +Q_ENUM_NS(VersionCheckType) + } // namespace LinphoneEnums /* Q_DECLARE_METATYPE(LinphoneEnums::CallState) diff --git a/Linphone/tool/Utils.cpp b/Linphone/tool/Utils.cpp index e476433e7..451c11c3a 100644 --- a/Linphone/tool/Utils.cpp +++ b/Linphone/tool/Utils.cpp @@ -209,22 +209,22 @@ void Utils::createGroupCall(QString subject, const std::list &participa // Comment on annule ? Si on ferme la fenêtre ça va finir l'appel en cours void Utils::setupConference(ConferenceInfoGui *confGui) { if (!confGui) return; - auto window = App::getInstance()->getCallsWindow(QVariant()); + auto window = App::getInstance()->getOrCreateCallsWindow(QVariant()); window->setProperty("conferenceInfo", QVariant::fromValue(confGui)); window->show(); } void Utils::openCallsWindow(CallGui *call) { if (call) { - auto window = App::getInstance()->getCallsWindow(QVariant::fromValue(call)); + auto window = App::getInstance()->getOrCreateCallsWindow(QVariant::fromValue(call)); window->show(); window->raise(); } } -QQuickWindow *Utils::getCallsWindow(CallGui *callGui) { +QQuickWindow *Utils::getOrCreateCallsWindow(CallGui *callGui) { auto app = App::getInstance(); - auto window = app->getCallsWindow(QVariant::fromValue(callGui)); + auto window = app->getOrCreateCallsWindow(QVariant::fromValue(callGui)); return window; } @@ -269,11 +269,14 @@ VariantObject *Utils::haveAccount() { void Utils::smartShowWindow(QQuickWindow *window) { if (!window) return; - if (window->visibility() == QWindow::Maximized) // Avoid to change visibility mode - window->showMaximized(); - else window->show(); + // if (window->visibility() == QWindow::Maximized) // Avoid to change visibility mode + // window->showMaximized(); + lInfo() << "[Utils] : show window" << window; + window->show(); App::getInstance()->setLastActiveWindow(window); + lInfo() << "[Utils] : raise window" << window; window->raise(); // Raise ensure to get focus on Mac + lInfo() << "[Utils] : request activate"; window->requestActivate(); } @@ -1432,9 +1435,9 @@ QDateTime Utils::addYears(QDateTime date, int years) { return date; } -int Utils::timeOffset(QDateTime start, QDateTime end) { +int Utils::timeOffset(QTime start, QTime end) { int offset = start.secsTo(end); - return std::min(offset, INT_MAX); + return std::max(std::min(offset, INT_MAX), INT_MIN); } int Utils::daysOffset(QDateTime start, QDateTime end) { @@ -1601,7 +1604,7 @@ VariantObject *Utils::getCurrentCallChat(CallGui *call) { showInformationPopup(tr("information_popup_error_title"), //: Failed to create 1-1 conversation with %1 ! tr("information_popup_chatroom_creation_error_message"), false, - getCallsWindow()); + getOrCreateCallsWindow()); }); return QVariant(); } @@ -1635,7 +1638,7 @@ VariantObject *Utils::getChatForAddress(QString address) { data->mConnection->invokeToCore([] { showInformationPopup(tr("information_popup_error_title"), tr("information_popup_chatroom_creation_error_message"), false, - getCallsWindow()); + getOrCreateCallsWindow()); }); return QVariant(); } diff --git a/Linphone/tool/Utils.hpp b/Linphone/tool/Utils.hpp index 7b8f1ea68..0e74b556e 100644 --- a/Linphone/tool/Utils.hpp +++ b/Linphone/tool/Utils.hpp @@ -84,7 +84,7 @@ public: const QString &description, bool isSuccess = true, QQuickWindow *window = nullptr); - Q_INVOKABLE static QQuickWindow *getCallsWindow(CallGui *callGui = nullptr); + Q_INVOKABLE static QQuickWindow *getOrCreateCallsWindow(CallGui *callGui = nullptr); Q_INVOKABLE static void closeCallsWindow(); Q_INVOKABLE static VariantObject *haveAccount(); Q_INVOKABLE static void smartShowWindow(QQuickWindow *window); @@ -126,7 +126,7 @@ public: Q_INVOKABLE static int secsTo(const QString &start, const QString &end); Q_INVOKABLE static QDateTime addSecs(QDateTime date, int secs); Q_INVOKABLE static QDateTime addYears(QDateTime date, int years); - Q_INVOKABLE static int timeOffset(QDateTime start, QDateTime end); + Q_INVOKABLE static int timeOffset(QTime start, QTime end); Q_INVOKABLE static int daysOffset(QDateTime start, QDateTime end); Q_INVOKABLE static VariantObject *interpretUrl(QString uri); Q_INVOKABLE static bool isValidURL(const QString &url); diff --git a/Linphone/view/CMakeLists.txt b/Linphone/view/CMakeLists.txt index af4931e7f..54d73d826 100644 --- a/Linphone/view/CMakeLists.txt +++ b/Linphone/view/CMakeLists.txt @@ -54,6 +54,7 @@ list(APPEND _LINPHONEAPP_QML_FILES view/Control/Display/TemporaryText.qml view/Control/Display/Text.qml view/Control/Display/ToolTip.qml + view/Control/Display/UnreadNotification.qml view/Control/Display/Call/CallListView.qml view/Control/Display/Call/CallHistoryListView.qml view/Control/Display/Call/CallStatistics.qml diff --git a/Linphone/view/Control/Button/Button.qml b/Linphone/view/Control/Button/Button.qml index 0d15acdd0..e6007dff9 100644 --- a/Linphone/view/Control/Button/Button.qml +++ b/Linphone/view/Control/Button/Button.qml @@ -52,14 +52,14 @@ Control.Button { property real keyboardFocusedBorderWidth: Utils.getSizeWithScreenRatio(3) // Image properties property var contentImageColor: style?.image? style.image.normal : DefaultStyle.main2_600 - property var hoveredImageColor: style?.image? style.image.pressed : Qt.darker(contentImageColor, 1.05) - property var checkedImageColor: style?.image? style.image.checked : Qt.darker(contentImageColor, 1.1) - property var pressedImageColor: style?.image? style.image.pressed : Qt.darker(contentImageColor, 1.1) + property var hoveredImageColor: style && style.image && style.image.hovered ? style.image.hovered : Qt.darker(contentImageColor, 1.05) + property var checkedImageColor: style && style.image && style.image.checked ? style.image.checked : Qt.darker(contentImageColor, 1.1) + property var pressedImageColor: style && style.image && style.image.pressed ? style.image.pressed : Qt.darker(contentImageColor, 1.1) icon.source: style?.iconSource || "" property color colorizationColor: checkable && checked ? checkedImageColor : pressed - ? pressedImageColor + ? pressedImageColor : hovered ? hoveredImageColor : contentImageColor @@ -139,6 +139,12 @@ Control.Button { underline: mainItem.underline bold: (mainItem.style === ButtonStyle.noBackground || mainItem.style === ButtonStyle.noBackgroundRed) && (mainItem.hovered || mainItem.pressed) } + ToolTip { + parent: mainItem + text: mainItem.text + visible: mainItem.hovered && (buttonText.implicitWidth > buttonText.width) + delay: 500 + } TextMetrics { id: textMetrics text: mainItem.text @@ -147,7 +153,6 @@ Control.Button { } component ButtonImage: EffectImage { - asynchronous: mainItem.asynchronous imageSource: mainItem.icon.source imageWidth: mainItem.icon.width imageHeight: mainItem.icon.height diff --git a/Linphone/view/Control/Button/CalendarComboBox.qml b/Linphone/view/Control/Button/CalendarComboBox.qml index f671f8cfe..f2d3a7d46 100644 --- a/Linphone/view/Control/Button/CalendarComboBox.qml +++ b/Linphone/view/Control/Button/CalendarComboBox.qml @@ -14,14 +14,14 @@ ComboBox { property alias contentText: contentText contentItem: Text { id: contentText - text: UtilsCpp.formatDate(calendar.selectedDate, false, true, "ddd d, MMMM") + text: calendar.selectedDate ? UtilsCpp.formatDate(calendar.selectedDate, false, true, "ddd d, MMMM") : "" anchors.fill: parent anchors.leftMargin: Utils.getSizeWithScreenRatio(15) anchors.verticalCenter: parent.verticalCenter verticalAlignment: Text.AlignVCenter font { pixelSize: Utils.getSizeWithScreenRatio(14) - weight: Math.min(Utils.getSizeWithScreenRatio(700), 1000) + weight: Font.Bold } } popup: Control.Popup { diff --git a/Linphone/view/Control/Button/ComboBox.qml b/Linphone/view/Control/Button/ComboBox.qml index 1dd66ca8c..5175ffc3d 100644 --- a/Linphone/view/Control/Button/ComboBox.qml +++ b/Linphone/view/Control/Button/ComboBox.qml @@ -223,7 +223,7 @@ Control.ComboBox { font { family: DefaultStyle.defaultFont pixelSize: Utils.getSizeWithScreenRatio(15) - weight: Math.min(Utils.getSizeWithScreenRatio(400), 1000) + weight: Font.Normal } } } diff --git a/Linphone/view/Control/Button/HelpIconLabelButton.qml b/Linphone/view/Control/Button/HelpIconLabelButton.qml index a7802f7a3..aa82aab57 100644 --- a/Linphone/view/Control/Button/HelpIconLabelButton.qml +++ b/Linphone/view/Control/Button/HelpIconLabelButton.qml @@ -3,6 +3,7 @@ import QtQuick.Effects import QtQuick.Layouts import Linphone import "qrc:/qt/qml/Linphone/view/Control/Tool/Helper/utils.js" as Utils +import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle MouseArea { id: mainItem @@ -11,6 +12,8 @@ MouseArea { property string subTitle property real iconSize: Utils.getSizeWithScreenRatio(32) property bool shadowEnabled: containsMouse || activeFocus + property bool arrowImageVisible: false + property alias image: image hoverEnabled: true width: content.implicitWidth height: content.implicitHeight @@ -27,6 +30,7 @@ MouseArea { anchors.verticalCenter: parent.verticalCenter anchors.fill:parent EffectImage { + id: image Layout.preferredWidth: mainItem.iconSize Layout.preferredHeight: mainItem.iconSize width: mainItem.iconSize @@ -36,10 +40,12 @@ MouseArea { } ColumnLayout { width: implicitWidth + Layout.preferredWidth: width height: implicitHeight Layout.leftMargin: Utils.getSizeWithScreenRatio(16) Text { Layout.fillWidth: true + maximumLineCount: 1 text: mainItem.title color: DefaultStyle.main2_600 font: Typography.p2 @@ -49,6 +55,7 @@ MouseArea { Text { Layout.alignment: Qt.AlignTop verticalAlignment: Text.AlignTop + maximumLineCount: 2 Layout.fillWidth: true text: mainItem.subTitle color: DefaultStyle.main2_500_main @@ -56,6 +63,13 @@ MouseArea { font: Typography.p1 } } + Item{Layout.fillWidth: true} + EffectImage { + id: arrowImage + visible: mainItem.arrowImageVisible + imageSource: AppIcons.rightArrow + colorizationColor: DefaultStyle.main2_600 + } } MultiEffect { enabled: mainItem.shadowEnabled diff --git a/Linphone/view/Control/Button/IconButton.qml b/Linphone/view/Control/Button/IconButton.qml index 040e20c80..fce059491 100644 --- a/Linphone/view/Control/Button/IconButton.qml +++ b/Linphone/view/Control/Button/IconButton.qml @@ -23,7 +23,7 @@ Button { : mainItem.hovered || mainItem.hasNavigationFocus ? mainItem.hoveredColor : mainItem.color - border.color: mainItem.hovered ? mainItem.focusedBorderColor : mainItem.borderColor + border.color: mainItem.borderColor } contentItem: EffectImage { diff --git a/Linphone/view/Control/Button/IconLabelButton.qml b/Linphone/view/Control/Button/IconLabelButton.qml index 1bb535681..fbe322714 100644 --- a/Linphone/view/Control/Button/IconLabelButton.qml +++ b/Linphone/view/Control/Button/IconLabelButton.qml @@ -15,9 +15,10 @@ Button { shadowEnabled: mainItem.activeFocus || hovered style: ButtonStyle.hoveredBackground property bool inverseLayout: false - + spacing: Utils.getSizeWithScreenRatio(5) + contentItem: RowLayout { - spacing: Utils.getSizeWithScreenRatio(5) + spacing: mainItem.spacing layoutDirection: mainItem.inverseLayout ? Qt.RightToLeft: Qt.LeftToRight EffectImage { imageSource: mainItem.icon.source diff --git a/Linphone/view/Control/Button/PopupButton.qml b/Linphone/view/Control/Button/PopupButton.qml index fb42a3641..38d4724bd 100644 --- a/Linphone/view/Control/Button/PopupButton.qml +++ b/Linphone/view/Control/Button/PopupButton.qml @@ -55,6 +55,7 @@ Button { } function _getPreviousItem(content, index) { + if (!content.visible) return null if (content.visibleChildren.length == 0 || !hasFocusableChild(content)) return null; --index; diff --git a/Linphone/view/Control/Container/Call/ActiveSpeakerLayout.qml b/Linphone/view/Control/Container/Call/ActiveSpeakerLayout.qml index 95df7b4c2..8599aa97b 100644 --- a/Linphone/view/Control/Container/Call/ActiveSpeakerLayout.qml +++ b/Linphone/view/Control/Container/Call/ActiveSpeakerLayout.qml @@ -79,6 +79,9 @@ Item { anchors.bottomMargin: Utils.getSizeWithScreenRatio(15)// Spacing qmlName: 'S_'+index visible: parent.visible + videoEnabled: (index === 0 && mainItem.call.core.cameraEnabled) + || (!previewEnabled && call && call.core.remoteVideoEnabled) + || (!previewEnabled && participantDevice && participantDevice.core.videoEnabled) participantDevice: $modelData displayAll: false displayPresence: false diff --git a/Linphone/view/Control/Container/Call/CallHistoryLayout.qml b/Linphone/view/Control/Container/Call/CallHistoryLayout.qml index e177ef7e4..b2f849033 100644 --- a/Linphone/view/Control/Container/Call/CallHistoryLayout.qml +++ b/Linphone/view/Control/Container/Call/CallHistoryLayout.qml @@ -113,7 +113,7 @@ ColumnLayout { style: ButtonStyle.grey onClicked: { if (mainItem.conferenceInfo) { - var callsWindow = UtilsCpp.getCallsWindow() + var callsWindow = UtilsCpp.getOrCreateCallsWindow() callsWindow.setupConference(mainItem.conferenceInfo) UtilsCpp.smartShowWindow(callsWindow) } diff --git a/Linphone/view/Control/Container/Call/CallLayout.qml b/Linphone/view/Control/Container/Call/CallLayout.qml index eb14d0508..607f623b7 100644 --- a/Linphone/view/Control/Container/Call/CallLayout.qml +++ b/Linphone/view/Control/Container/Call/CallLayout.qml @@ -113,8 +113,7 @@ Item { anchors.bottom: mainItem.bottom anchors.rightMargin: Utils.getSizeWithScreenRatio(20) anchors.bottomMargin: Utils.getSizeWithScreenRatio(10) - videoEnabled: preview.visible && mainItem.call && mainItem.call.core.localVideoEnabled - onVideoEnabledChanged: console.log("P : " +videoEnabled + " / " +visible +" / " +mainItem.call) + onVideoEnabledChanged: console.log("Preview : " +videoEnabled + " / " +visible +" / " +mainItem.call) property var accountObj: UtilsCpp.findLocalAccountByAddress(mainItem.localAddress) account: accountObj && accountObj.value || null call: mainItem.call diff --git a/Linphone/view/Control/Container/CreationFormLayout.qml b/Linphone/view/Control/Container/CreationFormLayout.qml index 8fbcbd286..d93454cf7 100644 --- a/Linphone/view/Control/Container/CreationFormLayout.qml +++ b/Linphone/view/Control/Container/CreationFormLayout.qml @@ -14,6 +14,7 @@ FocusScope { property color searchBarBorderColor: "transparent" property alias searchBar: searchBar property string startGroupButtonText + property bool startGroupButtonVisible: true property NumericPadPopup numPadPopup signal groupCreationRequested() signal contactClicked(FriendGui contact) @@ -52,6 +53,7 @@ FocusScope { spacing: Utils.getSizeWithScreenRatio(32) Button { id: groupCreationButton + visible: mainItem.startGroupButtonVisible Layout.preferredWidth: Utils.getSizeWithScreenRatio(320) Layout.preferredHeight: Utils.getSizeWithScreenRatio(44) padding: 0 diff --git a/Linphone/view/Control/Container/FormItemLayout.qml b/Linphone/view/Control/Container/FormItemLayout.qml index 090581cef..fceaf1296 100644 --- a/Linphone/view/Control/Container/FormItemLayout.qml +++ b/Linphone/view/Control/Container/FormItemLayout.qml @@ -9,6 +9,7 @@ FocusScope{ id: mainItem property alias contentItem: contentItem.data property string label: "" + property string labelIndication property string tooltip: "" property bool mandatory: false @@ -73,6 +74,12 @@ FocusScope{ text: mainItem.tooltip } } + Text { + visible: mainItem.labelIndication !== undefined + font.pixelSize: Utils.getSizeWithScreenRatio(12) + font.weight: Utils.getSizeWithScreenRatio(300) + text: mainItem.labelIndication + } } Item { diff --git a/Linphone/view/Control/Container/GroupCreationFormLayout.qml b/Linphone/view/Control/Container/GroupCreationFormLayout.qml index bd01db9c8..e2c1c80d3 100644 --- a/Linphone/view/Control/Container/GroupCreationFormLayout.qml +++ b/Linphone/view/Control/Container/GroupCreationFormLayout.qml @@ -12,6 +12,7 @@ import "qrc:/qt/qml/Linphone/view/Style/buttonStyle.js" as ButtonStyle FocusScope { id: mainItem property alias addParticipantsLayout: addParticipantsLayout + property alias groupNameItem: groupNameItem property alias groupName: groupName property string formTitle property string createGroupButtonText @@ -65,34 +66,24 @@ FocusScope { } } } - RowLayout { - spacing: 0 + FormItemLayout { + id: groupNameItem + enableErrorText: true + Layout.fillWidth: true Layout.topMargin: Utils.getSizeWithScreenRatio(18) Layout.rightMargin: Utils.getSizeWithScreenRatio(38) - Text { - font.pixelSize: Typography.p2.pixelSize - font.weight: Typography.p2.weight - //: "Nom du groupe" - text: qsTr("group_start_dialog_subject_hint") - } - Item { + //: "Nom du groupe" + label: qsTr("group_start_dialog_subject_hint") + //: "Requis" + labelIndication: qsTr("required") + contentItem: TextField { + id: groupName Layout.fillWidth: true + Layout.preferredHeight: Utils.getSizeWithScreenRatio(49) + focus: true + KeyNavigation.down: addParticipantsLayout //participantList.count > 0 ? participantList : searchbar + Accessible.name: qsTr("group_start_dialog_subject_hint") } - Text { - font.pixelSize: Utils.getSizeWithScreenRatio(12) - font.weight: Utils.getSizeWithScreenRatio(300) - //: "Requis" - text: qsTr("required") - } - } - TextField { - id: groupName - Layout.fillWidth: true - Layout.rightMargin: Utils.getSizeWithScreenRatio(38) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(49) - focus: true - KeyNavigation.down: addParticipantsLayout //participantList.count > 0 ? participantList : searchbar - Accessible.name: qsTr("group_start_dialog_subject_hint") } AddParticipantsForm { id: addParticipantsLayout diff --git a/Linphone/view/Control/Container/VerticalTabBar.qml b/Linphone/view/Control/Container/VerticalTabBar.qml index 8190fc03a..329ece59e 100644 --- a/Linphone/view/Control/Container/VerticalTabBar.qml +++ b/Linphone/view/Control/Container/VerticalTabBar.qml @@ -35,25 +35,6 @@ Control.TabBar { initButtons() } } - - component UnreadNotification: Rectangle { - property int unread: 0 - visible: unread > 0 - width: Utils.getSizeWithScreenRatio(15) - height: Utils.getSizeWithScreenRatio(15) - radius: width/2 - color: DefaultStyle.danger_500_main - Text{ - id: unreadCount - anchors.fill: parent - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - color: DefaultStyle.grey_0 - fontSizeMode: Text.Fit - font.pixelSize: Utils.getSizeWithScreenRatio(15) - text: parent.unread > 100 ? '99+' : parent.unread - } - } contentItem: ListView { model: mainItem.contentModel diff --git a/Linphone/view/Control/Display/Call/CallHistoryListView.qml b/Linphone/view/Control/Display/Call/CallHistoryListView.qml index f5db09fc4..167676433 100644 --- a/Linphone/view/Control/Display/Call/CallHistoryListView.qml +++ b/Linphone/view/Control/Display/Call/CallHistoryListView.qml @@ -205,7 +205,7 @@ ListView { Accessible.name: qsTr("call_name_accessible_button").arg(historyAvatar.displayNameVal) onClicked: { if (modelData.core.isConference) { - var callsWindow = UtilsCpp.getCallsWindow() + var callsWindow = UtilsCpp.getOrCreateCallsWindow() callsWindow.setupConference( modelData.core.conferenceInfo) UtilsCpp.smartShowWindow(callsWindow) diff --git a/Linphone/view/Control/Display/Chat/ChatListView.qml b/Linphone/view/Control/Display/Chat/ChatListView.qml index 8d237364d..1291b6d5e 100644 --- a/Linphone/view/Control/Display/Chat/ChatListView.qml +++ b/Linphone/view/Control/Display/Chat/ChatListView.qml @@ -18,20 +18,21 @@ ListView { property real busyIndicatorSize: Utils.getSizeWithScreenRatio(60) property ChatGui currentChatGui: model.getAt(currentIndex) || null + onCurrentChatGuiChanged: positionViewAtIndex(currentIndex, ListView.Center) property ChatGui chatToSelect: null + property ChatGui chatToSelectLater: null onChatToSelectChanged: { - var index = chatProxy.findChatIndex(chatToSelect) - if (index != -1) { - currentIndex = index + if (chatToSelect) { + // first clear the chatToSelect property in case we need to + // force adding the chat to the list and the layout changes + var toselect = chatToSelect chatToSelect = null + selectChat(toselect, true) } } onChatClicked: (chat) => {selectChat(chat)} - onCountChanged: { - selectChat(currentChatGui) - } - + signal markAllAsRead() signal chatClicked(ChatGui chat) @@ -41,40 +42,47 @@ ListView { loading = true } filterText: mainItem.searchText - initialDisplayItems: Math.max(20, Math.round(2 * mainItem.height / Utils.getSizeWithScreenRatio(56))) - displayItemsStep: 3 * initialDisplayItems / 2 - onModelReset: { - loading = false - if (mainItem.chatToSelect) { - selectChat(mainItem.chatToSelect) - } + onFilterTextChanged: { + chatToSelectLater = currentChatGui } onModelAboutToBeReset: { loading = true } - onChatRemoved: { - var currentChat = model.getAt(currentIndex) + onModelReset: { + loading = false + } + onRowsRemoved: { + var index = mainItem.currentIndex mainItem.currentIndex = -1 - selectChat(currentChat) + mainItem.currentIndex = index } onLayoutChanged: { - selectChat(mainItem.currentChatGui) + loading = false + if (mainItem.chatToSelectLater) { + selectChat(mainItem.chatToSelectLater) + mainItem.chatToSelectLater = null + } + else if (mainItem.chatToSelect) { + selectChat(mainItem.chatToSelect) + mainItem.chatToSelect = null + } + else { + selectChat(mainItem.currentChatGui) + } } } // flickDeceleration: 10000 spacing: Utils.getSizeWithScreenRatio(10) - function selectChat(chatGui) { + function selectChat(chatGui, force) { var index = chatProxy.findChatIndex(chatGui) - mainItem.currentIndex = index - // if the chat exists, it may not be displayed - // in list if hide_empty_chatrooms is set. Thus, we need - // to force adding it in the list so it is displayed - if (index === -1 && chatGui) { - chatProxy.addChatInList(chatGui) - var index = chatProxy.findChatIndex(chatGui) - mainItem.currentIndex = index + // force adding chat to list if not in list for now + if (index === -1 && force === true && chatGui) { + if (chatProxy.addChatInList(chatGui)) { + var index = chatProxy.findChatIndex(chatGui) + } } + mainItem.currentIndex = index } Component.onCompleted: cacheBuffer = Math.max(contentHeight, 0) //contentHeight>0 ? contentHeight : 0// cache all items @@ -87,12 +95,6 @@ ListView { onActiveFocusChanged: if (activeFocus && currentIndex < 0 && count > 0) currentIndex = 0 - onAtYEndChanged: { - if (atYEnd && count > 0) { - chatProxy.displayMore() - } - } - //---------------------------------------------------------------- function moveToCurrentItem() { if (mainItem.currentIndex >= 0) @@ -131,40 +133,6 @@ ListView { // So we need to use this variable to switch off all hovered items. property int lastMouseContainsIndex: -1 - component UnreadNotification: Item { - id: unreadNotif - property int unread: 0 - width: Utils.getSizeWithScreenRatio(14) - height: Utils.getSizeWithScreenRatio(14) - visible: unread > 0 - Rectangle { - id: background - anchors.fill: parent - radius: width/2 - color: DefaultStyle.danger_500_main - Text{ - anchors.fill: parent - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - color: DefaultStyle.grey_0 - fontSizeMode: Text.Fit - font.pixelSize: Utils.getSizeWithScreenRatio(10) - text: parent.unreadNotif > 100 ? '99+' : unreadNotif.unread - } - } - MultiEffect { - id: shadow - anchors.fill: background - source: background - // Crash : https://bugreports.qt.io/browse/QTBUG-124730? - shadowEnabled: true - shadowColor: DefaultStyle.grey_1000 - shadowBlur: 1 - shadowOpacity: 0.15 - z: unreadNotif.z - 1 - } - } - delegate: FocusScope { visible: !mainItem.loading width: mainItem.width @@ -331,6 +299,8 @@ ListView { } UnreadNotification { id: unreadCount + Layout.preferredWidth: Utils.getSizeWithScreenRatio(14) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(14) unread: modelData?.core.unreadMessagesCount || false } EffectImage { @@ -377,6 +347,7 @@ ListView { } } IconLabelButton { + visible: modelData && modelData.core.unreadMessagesCount !== 0 || false //: "Mark as read" text: qsTr("chat_room_mark_as_read") icon.source: AppIcons.checks diff --git a/Linphone/view/Control/Display/Chat/ChatMessage.qml b/Linphone/view/Control/Display/Chat/ChatMessage.qml index 0f3fb1b4e..16c3df312 100644 --- a/Linphone/view/Control/Display/Chat/ChatMessage.qml +++ b/Linphone/view/Control/Display/Chat/ChatMessage.qml @@ -254,6 +254,7 @@ Control.Control { chatGui: mainItem.chat searchedTextPart: mainItem.searchedTextPart chatMessageGui: mainItem.chatMessage + maxWidth: mainItem.maxWidth onMouseEvent: (event) => { mainItem.handleDefaultMouseEvent(event) } diff --git a/Linphone/view/Control/Display/Chat/ChatMessageContent.qml b/Linphone/view/Control/Display/Chat/ChatMessageContent.qml index a227d4ae4..7751fd8e2 100644 --- a/Linphone/view/Control/Display/Chat/ChatMessageContent.qml +++ b/Linphone/view/Control/Display/Chat/ChatMessageContent.qml @@ -30,9 +30,9 @@ ColumnLayout { property string searchedTextPart property int fileBorderWidth : 0 + property int maxWidth spacing: Utils.getSizeWithScreenRatio(5) - property int padding: Utils.getSizeWithScreenRatio(10) property ChatMessageContentProxy filescontentProxy: ChatMessageContentProxy { filterType: ChatMessageContentProxy.FilterContentType.File @@ -86,7 +86,7 @@ ColumnLayout { contentGui: mainItem.filescontentProxy.count === 1 ? mainItem.filescontentProxy.getChatMessageContentAtIndex(0) : null - width: Utils.getSizeWithScreenRatio(285) + Layout.fillWidth: true Layout.alignment: Qt.AlignHCenter fillMode: Image.PreserveAspectFit } @@ -96,7 +96,7 @@ ColumnLayout { contentGui: mainItem.filescontentProxy.count === 1 ? mainItem.filescontentProxy.getChatMessageContentAtIndex(0) : null - Layout.preferredWidth: Utils.getSizeWithScreenRatio(285) + Layout.fillWidth: true Layout.preferredHeight: paintedHeight Layout.alignment: Qt.AlignHCenter fillMode: Image.PreserveAspectFit @@ -107,8 +107,9 @@ ColumnLayout { contentGui: mainItem.filescontentProxy.count === 1 ? mainItem.filescontentProxy.getChatMessageContentAtIndex(0) : null - width: Utils.getSizeWithScreenRatio(285) - height: Utils.getSizeWithScreenRatio(285) + Layout.fillWidth: true + width: Math.min(Utils.getSizeWithScreenRatio(285), mainItem.maxWidth) + height: Math.min(Utils.getSizeWithScreenRatio(285), mainItem.maxWidth) Layout.preferredWidth: videoOutput.contentRect.width Layout.preferredHeight: videoOutput.contentRect.height Layout.alignment: Qt.AlignHCenter diff --git a/Linphone/view/Control/Display/Chat/ChatMessageInvitationBubble.qml b/Linphone/view/Control/Display/Chat/ChatMessageInvitationBubble.qml index fa8082937..0c12f4813 100644 --- a/Linphone/view/Control/Display/Chat/ChatMessageInvitationBubble.qml +++ b/Linphone/view/Control/Display/Chat/ChatMessageInvitationBubble.qml @@ -286,7 +286,7 @@ ColumnLayout { text: qsTr("ics_bubble_join") visible: !SettingsCpp.disableMeetingsFeature && conferenceInfo.state != LinphoneEnums.ConferenceInfoState.Cancelled onClicked: { - var callsWindow = UtilsCpp.getCallsWindow() + var callsWindow = UtilsCpp.getOrCreateCallsWindow() callsWindow.setupConference(mainItem.conferenceInfoGui) UtilsCpp.smartShowWindow(callsWindow) } diff --git a/Linphone/view/Control/Display/Chat/ChatMessagesListView.qml b/Linphone/view/Control/Display/Chat/ChatMessagesListView.qml index 38fbfebe6..a152f0285 100644 --- a/Linphone/view/Control/Display/Chat/ChatMessagesListView.qml +++ b/Linphone/view/Control/Display/Chat/ChatMessagesListView.qml @@ -18,6 +18,7 @@ ListView { property real busyIndicatorSize: Utils.getSizeWithScreenRatio(60) property bool loading: false property bool isEncrypted: chat && chat.core.isEncrypted + highlightFollowsCurrentItem: false verticalLayoutDirection: ListView.BottomToTop signal showReactionsForMessageRequested(ChatMessageGui chatMessage) @@ -40,24 +41,16 @@ ListView { property bool searchForward: true onFindIndexWithFilter: (forward) => { searchForward = forward - eventLogProxy.findIndexCorrespondingToFilter(currentIndex, forward, false) - } - - Component.onCompleted: { - Qt.callLater(function() { - var index = eventLogProxy.findFirstUnreadIndex() - positionViewAtIndex(index, ListView.Beginning) - eventLogProxy.markIndexAsRead(index) - }) + eventLogProxy.findIndexCorrespondingToFilter(currentIndex, searchForward, false) } Button { visible: !mainItem.lastItemVisible icon.source: AppIcons.downArrow - leftPadding: Utils.getSizeWithScreenRatio(16) - rightPadding: Utils.getSizeWithScreenRatio(16) - topPadding: Utils.getSizeWithScreenRatio(16) - bottomPadding: Utils.getSizeWithScreenRatio(16) + leftPadding: Utils.getSizeWithScreenRatio(20) + rightPadding: Utils.getSizeWithScreenRatio(20) + topPadding: Utils.getSizeWithScreenRatio(20) + bottomPadding: Utils.getSizeWithScreenRatio(20) anchors.bottom: parent.bottom style: ButtonStyle.main anchors.right: parent.right @@ -65,17 +58,24 @@ ListView { anchors.rightMargin: Utils.getSizeWithScreenRatio(18) onClicked: { var index = eventLogProxy.findFirstUnreadIndex() - mainItem.positionViewAtIndex(index, ListView.Beginning) + mainItem.positionViewAtIndex(index, ListView.Contain) eventLogProxy.markIndexAsRead(index) } + UnreadNotification { + anchors.top: parent.top + anchors.right: parent.right + anchors.topMargin: Utils.getSizeWithScreenRatio(-5) + anchors.rightMargin: Utils.getSizeWithScreenRatio(-5) + unread: mainItem.chat?.core.unreadMessagesCount || 0 + } } + onAtYBeginningChanged: if (atYBeginning && count !== 0) { + eventLogProxy.displayMore() + } onAtYEndChanged: if (atYEnd && chat) { chat.core.lMarkAsRead() } - onAtYBeginningChanged: if (atYBeginning) { - eventLogProxy.displayMore() - } model: EventLogProxy { id: eventLogProxy @@ -83,23 +83,18 @@ ListView { filterText: mainItem.filterText initialDisplayItems: 20 displayItemsStep: 20 - onEventInserted: (index, gui) => { - if (!mainItem.visible) return - if(mainItem.lastItemVisible) { - mainItem.positionViewAtIndex(index, ListView.Beginning) - markIndexAsRead(index) - } - } onModelAboutToBeReset: { loading = true } onModelReset: { loading = false var index = eventLogProxy.findFirstUnreadIndex() - positionViewAtIndex(index, ListView.Beginning) + mainItem.positionViewAtIndex(index, ListView.Contain) eventLogProxy.markIndexAsRead(index) } - onChatGuiChanged: forceLayout() + onEventInsertedByUser: (index) => { + mainItem.positionViewAtIndex(index, ListView.Beginning) + } onIndexWithFilterFound: (index) => { if (index !== -1) { currentIndex = index @@ -246,9 +241,10 @@ ListView { } } Component.onCompleted: { - if (index === 0) mainItem.lastItemVisible = isFullyVisible + if (index === 0) { + mainItem.lastItemVisible = isFullyVisible + } } - // onYChanged: if (index === 0) mainItem.lastItemVisible = isFullyVisible chat: mainItem.chat searchedTextPart: mainItem.filterText maxWidth: Math.round(mainItem.width * (3/4)) diff --git a/Linphone/view/Control/Display/Chat/FileView.qml b/Linphone/view/Control/Display/Chat/FileView.qml index f95a9b139..f9725f992 100644 --- a/Linphone/view/Control/Display/Chat/FileView.qml +++ b/Linphone/view/Control/Display/Chat/FileView.qml @@ -14,12 +14,12 @@ import 'qrc:/qt/qml/Linphone/view/Control/Tool/Helper/utils.js' as Utils Item { id: mainItem property ChatMessageContentGui contentGui - property string thumbnail: contentGui && contentGui.core.thumbnail + property string thumbnail: contentGui && contentGui.core.thumbnail || "" property string name: contentGui && contentGui.core.name property string filePath: contentGui && contentGui.core.filePath property bool wasDownloaded: contentGui && contentGui.core.wasDownloaded property bool isAnimatedImage : contentGui && contentGui.core.wasDownloaded && UtilsCpp.isAnimatedImage(filePath) - property bool haveThumbnail: contentGui && UtilsCpp.canHaveThumbnail(filePath) + property bool haveThumbnail: contentGui && UtilsCpp.canHaveThumbnail(filePath) && UtilsCpp.fileExists(filePath) property int fileSize: contentGui ? contentGui.core.fileSize : 0 property bool isTransferring property bool isVideo: UtilsCpp.isVideo(filePath) @@ -67,20 +67,31 @@ Item { sourceSize.height: mainItem.height fillMode: Image.PreserveAspectFit } - Rectangle { + Image { + id: errorImage anchors.fill: parent - color: DefaultStyle.main1_200 - opacity: 0.5 - Image { + z: image.z + 1 + visible: image.status == Image.Error || image.status == Image.Null + source: AppIcons.fileImage + sourceSize.width: mainItem.width + sourceSize.height: mainItem.height + fillMode: Image.PreserveAspectFit + } + Item { + id: loadingImageItem + anchors.fill: parent + visible: image.status === Image.Loading && !image.visible && !errorImage.visilbe + Rectangle { anchors.fill: parent - z: parent.z + 1 - visible: image.status == Image.Error || image.status == Image.Null || !UtilsCpp.fileExists(mainItem.filePath) - source: AppIcons.fileImage - sourceSize.width: mainItem.width - sourceSize.height: mainItem.height - fillMode: Image.PreserveAspectFit + color: DefaultStyle.main1_200 + opacity: 0.2 + } + BusyIndicator { + anchors.centerIn: parent + width: Utils.getSizeWithScreenRatio(20) } } + Image { id: image visible: mainItem.isImage && status !== Image.Loading @@ -102,17 +113,6 @@ Item { position: 100 source: mainItem.isVideo ? "file:///" + mainItem.filePath : "" fillMode: playbackState === MediaPlayer.PlayingState ? VideoOutput.PreserveAspectFit : VideoOutput.PreserveAspectCrop - MouseArea { - propagateComposedEvents: false - enabled: videoThumbnail.visible - anchors.fill: parent - hoverEnabled: false - acceptedButtons: Qt.LeftButton - onClicked: (mouse) => { - mouse.accepted = true - videoThumbnail.playbackState === MediaPlayer.PlayingState ? videoThumbnail.pause() : videoThumbnail.play() - } - } EffectImage { anchors.centerIn: parent visible: videoThumbnail.playbackState !== MediaPlayer.PlayingState @@ -354,4 +354,4 @@ Item { } } } -} \ No newline at end of file +} diff --git a/Linphone/view/Control/Display/Chat/ImageFileView.qml b/Linphone/view/Control/Display/Chat/ImageFileView.qml index c7d6b93cb..4adc01790 100644 --- a/Linphone/view/Control/Display/Chat/ImageFileView.qml +++ b/Linphone/view/Control/Display/Chat/ImageFileView.qml @@ -26,10 +26,6 @@ Image { fillMode: Image.PreserveAspectFit source: contentGui && contentGui.core.thumbnail || "" - states: State { - name: 'hovered' - } - MouseArea { anchors.fill: parent hoverEnabled: true @@ -40,7 +36,6 @@ Image { onContainsMouseChanged: { if (containsMouse) UtilsCpp.setGlobalCursor(Qt.PointingHandCursor) else UtilsCpp.restoreGlobalCursor() - mainItem.state = containsMouse ? 'hovered' : '' } onPressed: (mouse) => { mouse.accepted = true @@ -53,4 +48,4 @@ Image { mainItem.contentGui.core.lOpenFile() } } -} \ No newline at end of file +} diff --git a/Linphone/view/Control/Display/Chat/VideoFileView.qml b/Linphone/view/Control/Display/Chat/VideoFileView.qml index 00621baf8..e24208377 100644 --- a/Linphone/view/Control/Display/Chat/VideoFileView.qml +++ b/Linphone/view/Control/Display/Chat/VideoFileView.qml @@ -17,6 +17,7 @@ Rectangle { property var fillMode: playbackState === MediaPlayer.PlayingState ? VideoOutput.PreserveAspectFit : VideoOutput.PreserveAspectCrop property alias videoOutput: output property string source: mediaPlayer.source + MediaPlayer { id: mediaPlayer source: UtilsCpp.isVideo(mainItem.filePath) ? "file:///" + mainItem.filePath : "" @@ -54,11 +55,18 @@ Rectangle { propagateComposedEvents: false enabled: mainItem.visible anchors.fill: parent - hoverEnabled: false + hoverEnabled: true acceptedButtons: Qt.LeftButton - onClicked: (mouse) => { + cursorShape: containsMouse ? Qt.PointingHandCursor : Qt.ArrowCursor + // Changing cursor in MouseArea seems not to work with the Loader + // Use override cursor for this case + onContainsMouseChanged: { + if (containsMouse) UtilsCpp.setGlobalCursor(Qt.PointingHandCursor) + else UtilsCpp.restoreGlobalCursor() + } + onPressed: (mouse) => { mouse.accepted = true - mediaPlayer.playbackState === MediaPlayer.PlayingState ? mediaPlayer.pause() : mediaPlayer.play() + mainItem.contentGui.core.lOpenFile() } } EffectImage { diff --git a/Linphone/view/Control/Display/Contact/AllContactListView.qml b/Linphone/view/Control/Display/Contact/AllContactListView.qml index 7c6b7d43c..2965d20b8 100644 --- a/Linphone/view/Control/Display/Contact/AllContactListView.qml +++ b/Linphone/view/Control/Display/Contact/AllContactListView.qml @@ -18,6 +18,7 @@ Flickable { property bool showContactMenu: true // Display the dot menu for contacts. property bool showFavorites: true // Display the favorites in the header property bool hideSuggestions: false // Hide not stored contacts (not suggestions) + property bool showMe: true // Wether to display current account address or not (disabled for adding participants) property string highlightText: searchText // Bold characters in Display name. property var sourceFlags: LinphoneEnums.MagicSearchSource.All @@ -295,6 +296,7 @@ Flickable { property MagicSearchProxy proxy: MagicSearchProxy { id: favoritesProxy parentProxy: mainItem.mainModel + showMe: mainItem.showMe filterType: MagicSearchProxy.FilteringTypes.Favorites } model: mainItem.showFavorites diff --git a/Linphone/view/Control/Display/Contact/Avatar.qml b/Linphone/view/Control/Display/Contact/Avatar.qml index 6dc981534..301f771c0 100644 --- a/Linphone/view/Control/Display/Contact/Avatar.qml +++ b/Linphone/view/Control/Display/Contact/Avatar.qml @@ -102,7 +102,6 @@ Loader{ anchors.bottom: parent.bottom width: parent.width / 4.5 height: width - asynchronous: true imageSource: mainItem.secured ? AppIcons.trusted : AppIcons.notTrusted fillMode: Image.PreserveAspectFit diff --git a/Linphone/view/Control/Display/Contact/Contact.qml b/Linphone/view/Control/Display/Contact/Contact.qml index 0b6ee84a9..9ee7b2349 100644 --- a/Linphone/view/Control/Display/Contact/Contact.qml +++ b/Linphone/view/Control/Display/Contact/Contact.qml @@ -95,7 +95,21 @@ Control.Control{ } } } - ContactStatusPopup{} + Item { + Layout.minimumWidth: Utils.getSizeWithScreenRatio(86) + Layout.maximumWidth: Utils.getSizeWithScreenRatio(150) + width: contactStatusPopup.width + height: contactStatusPopup.height + ContactStatusPopup{ + id: contactStatusPopup + } + MouseArea { + anchors.fill: contactStatusPopup + enabled: !contactStatusPopup.enabled + cursorShape: Qt.PointingHandCursor + onClicked: mainItem.account.core.lSetRegisterEnabled(true) + } + } Item{ Layout.preferredWidth: Utils.getSizeWithScreenRatio(26) Layout.preferredHeight: Utils.getSizeWithScreenRatio(26) diff --git a/Linphone/view/Control/Display/Contact/ContactStatusPopup.qml b/Linphone/view/Control/Display/Contact/ContactStatusPopup.qml index a095e1089..c209ca22d 100644 --- a/Linphone/view/Control/Display/Contact/ContactStatusPopup.qml +++ b/Linphone/view/Control/Display/Contact/ContactStatusPopup.qml @@ -13,10 +13,8 @@ import 'qrc:/qt/qml/Linphone/view/Style/buttonStyle.js' as ButtonStyle PopupButton { id: presenceAndRegistrationItem - Layout.minimumWidth: Utils.getSizeWithScreenRatio(86) - Layout.maximumWidth: Utils.getSizeWithScreenRatio(150) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) - Layout.preferredWidth: presenceOrRegistrationText.implicitWidth + Utils.getSizeWithScreenRatio(50) + width: presenceOrRegistrationText.implicitWidth + Utils.getSizeWithScreenRatio(50) + height: Utils.getSizeWithScreenRatio(24) enabled: mainItem.account && mainItem.account.core.registrationState === LinphoneEnums.RegistrationState.Ok onEnabledChanged: if(!enabled) close() property bool editCustomStatus : false diff --git a/Linphone/view/Control/Display/Contact/PresenceStatusItem.qml b/Linphone/view/Control/Display/Contact/PresenceStatusItem.qml index 8eed0010d..7d2668a65 100644 --- a/Linphone/view/Control/Display/Contact/PresenceStatusItem.qml +++ b/Linphone/view/Control/Display/Contact/PresenceStatusItem.qml @@ -26,7 +26,6 @@ IconLabelButton { icon.source: UtilsCpp.getPresenceIcon(mainItem.presence) Layout.fillWidth: true shadowEnabled: false - contentImageColor: undefined padding: 0 onClicked: { diff --git a/Linphone/view/Control/Display/EffectImage.qml b/Linphone/view/Control/Display/EffectImage.qml index d285b93a4..9a406f80d 100644 --- a/Linphone/view/Control/Display/EffectImage.qml +++ b/Linphone/view/Control/Display/EffectImage.qml @@ -5,85 +5,80 @@ import QtQuick.Effects import Linphone -// The loader is needed here to refresh the colorization effect (effect2) which is not refreshed when visibility change -// and causes colorization issue when effect image is inside a popup -Loader { +// TODO : A loader may be needed here to refresh the colorization effect (effect2) which is not refreshed when visibility change +// and causes colorization issue when effect image is inside a popup (not seen in the popup recently tested, may be an obsolete bug) +Item { id: mainItem - active: visible property url imageSource: "" property var fillMode: Image.PreserveAspectFit property var colorizationColor - property real imageWidth: width - property real imageHeight: height + property real imageWidth: width + property real imageHeight: height property bool useColor: colorizationColor != undefined property bool shadowEnabled: false property bool isImageReady: false - asynchronous: true - sourceComponent: Component{Item { - Image { - id: image - visible: !effect2.effectEnabled - source: mainItem.imageSource - fillMode: mainItem.fillMode - sourceSize.width: width - sourceSize.height: height - width: mainItem.imageWidth - height: mainItem.imageHeight - Layout.preferredWidth: mainItem.imageWidth - Layout.preferredHeight: mainItem.imageHeight - anchors.centerIn: parent - onStatusChanged: mainItem.isImageReady = (status == Image.Ready) - } - MultiEffect { - id: effect - visible: false - anchors.fill: image - source: image - maskSource: image - brightness: effect2.effectEnabled ? 1.0 : 0.0 - } - - MultiEffect { - id: effect2 - enabled: effectEnabled - visible: mainItem.useColor - property bool effectEnabled: mainItem.useColor - anchors.fill: effect - source: effect - maskSource: effect - colorizationColor: effectEnabled && mainItem.colorizationColor ? mainItem.colorizationColor : 'black' - colorization: effectEnabled ? 1.0: 0.0 - } - /* Alernative to shadow for no blackcolors - MultiEffect { - visible: mainItem.shadowEnabled - source: image - width: image.width - height: image.height - x: image.x - y: image.y + 6 - z: -1 - blurEnabled: true - blurMax: 12 - blur: 1.0 - contrast: -1.0 - brightness: 1.0 - colorizationColor: DefaultStyle.grey_400 - colorization: 1.0 - }*/ - MultiEffect { - id: shadow - enabled: mainItem.shadowEnabled - anchors.fill: image - source: image - visible: mainItem.shadowEnabled - // Crash : https://bugreports.qt.io/browse/QTBUG-124730? - shadowEnabled: true //mainItem.shadowEnabled - shadowColor: DefaultStyle.grey_1000 - shadowBlur: 0 - shadowOpacity: mainItem.shadowEnabled ? 0.7 : 0.0 - z: mainItem.z - 1 - } + Image { + id: image + visible: !effect2.effectEnabled + source: mainItem.imageSource + fillMode: mainItem.fillMode + sourceSize.width: width + sourceSize.height: height + width: mainItem.imageWidth + height: mainItem.imageHeight + Layout.preferredWidth: mainItem.imageWidth + Layout.preferredHeight: mainItem.imageHeight + anchors.centerIn: parent + onStatusChanged: mainItem.isImageReady = (status == Image.Ready) } + MultiEffect { + id: effect + visible: false + anchors.fill: image + source: image + maskSource: image + brightness: effect2.effectEnabled ? 1.0 : 0.0 + } + + MultiEffect { + id: effect2 + enabled: effectEnabled + visible: mainItem.useColor + property bool effectEnabled: mainItem.useColor + anchors.fill: effect + source: effect + maskSource: effect + colorizationColor: effectEnabled && mainItem.colorizationColor ? mainItem.colorizationColor : 'black' + colorization: effectEnabled ? 1.0: 0.0 + } + /* Alernative to shadow for no blackcolors + MultiEffect { + visible: mainItem.shadowEnabled + source: image + width: image.width + height: image.height + x: image.x + y: image.y + 6 + z: -1 + blurEnabled: true + blurMax: 12 + blur: 1.0 + contrast: -1.0 + brightness: 1.0 + colorizationColor: DefaultStyle.grey_400 + colorization: 1.0 + }*/ + MultiEffect { + id: shadow + enabled: mainItem.shadowEnabled + anchors.fill: image + source: image + visible: mainItem.shadowEnabled + // Crash : https://bugreports.qt.io/browse/QTBUG-124730? + shadowEnabled: true //mainItem.shadowEnabled + shadowColor: DefaultStyle.grey_1000 + shadowBlur: 0 + shadowOpacity: mainItem.shadowEnabled ? 0.7 : 0.0 + z: mainItem.z - 1 } } diff --git a/Linphone/view/Control/Display/Meeting/MeetingListView.qml b/Linphone/view/Control/Display/Meeting/MeetingListView.qml index cf6ad3d26..4983b0567 100644 --- a/Linphone/view/Control/Display/Meeting/MeetingListView.qml +++ b/Linphone/view/Control/Display/Meeting/MeetingListView.qml @@ -102,18 +102,15 @@ ListView { initialDisplayItems: Math.max(20, Math.round(2 * mainItem.height / Utils.getSizeWithScreenRatio(63))) displayItemsStep: initialDisplayItems/2 Component.onCompleted: { - mainItem.loading = !confInfoProxy.accountConnected + mainItem.loading = false } onModelAboutToBeReset: { mainItem.loading = true } onModelReset: { - mainItem.loading = !confInfoProxy.accountConnected + mainItem.loading = false selectData(getCurrentDateConfInfo()) } - onAccountConnectedChanged: (connected) => { - mainItem.loading = !connected - } function selectData(confInfoGui){ mainItem.currentIndex = loadUntil(confInfoGui) } @@ -317,9 +314,7 @@ ListView { visible: itemDelegate.haveModel acceptedButtons: Qt.LeftButton | Qt.RightButton onClicked: (mouse) => { - console.log("clicked", mouse.button) if (mouse.button === Qt.RightButton) { - console.log("open popup") deletePopup.x = mouse.x deletePopup.y = mouse.y deletePopup.open() diff --git a/Linphone/view/Control/Display/Sticker.qml b/Linphone/view/Control/Display/Sticker.qml index 8afe80d84..0a1dd10e1 100644 --- a/Linphone/view/Control/Display/Sticker.qml +++ b/Linphone/view/Control/Display/Sticker.qml @@ -58,7 +58,7 @@ Item { property var contact: contactObj && contactObj.value || null property var identityAddress: account ? UtilsCpp.getDisplayName(account.core.identityAddress) : null - property bool videoEnabled: (previewEnabled && call && call.core.localVideoEnabled) + property bool videoEnabled: (previewEnabled && call && call.core.cameraEnabled) || (!previewEnabled && call && call.core.remoteVideoEnabled) || (participantDevice && participantDevice.core.videoEnabled) property string qmlName diff --git a/Linphone/view/Control/Display/UnreadNotification.qml b/Linphone/view/Control/Display/UnreadNotification.qml new file mode 100644 index 000000000..a99c6ab0c --- /dev/null +++ b/Linphone/view/Control/Display/UnreadNotification.qml @@ -0,0 +1,42 @@ +import QtQuick +import Linphone +import QtQuick.Controls.Basic as Control +import QtQuick.Effects +import "qrc:/qt/qml/Linphone/view/Control/Tool/Helper/utils.js" as Utils + +Control.Control { + id: mainItem + property int unread: 0 + width: Utils.getSizeWithScreenRatio(14) + height: Utils.getSizeWithScreenRatio(14) + visible: unread > 0 + background: Item { + anchors.fill: parent + Rectangle { + id: background + anchors.fill: parent + radius: width/2 + color: DefaultStyle.danger_500_main + } + MultiEffect { + id: shadow + anchors.fill: background + source: background + // Crash : https://bugreports.qt.io/browse/QTBUG-124730? + shadowEnabled: true + shadowColor: DefaultStyle.grey_1000 + shadowBlur: 1 + shadowOpacity: 0.15 + z: mainItem.z - 1 + } + } + contentItem: Text { + anchors.fill: parent + verticalAlignment: Text.AlignVCenter + horizontalAlignment: Text.AlignHCenter + color: DefaultStyle.grey_0 + fontSizeMode: Text.Fit + font.pixelSize: Utils.getSizeWithScreenRatio(10) + text: mainItem.unread > 100 ? '99+' : mainItem.unread + } +} \ No newline at end of file diff --git a/Linphone/view/Control/Form/Settings/ScreencastSettings.qml b/Linphone/view/Control/Form/Settings/ScreencastSettings.qml index ef2078aa2..340c834dd 100644 --- a/Linphone/view/Control/Form/Settings/ScreencastSettings.qml +++ b/Linphone/view/Control/Form/Settings/ScreencastSettings.qml @@ -173,13 +173,15 @@ ColumnLayout { Layout.preferredHeight: height height: implicitHeight visible: mainItem.screenSharingAvailable$ - enabled: windowsLayout.currentIndex !== -1 || screensLayout.currentIndex !== -1 + enabled: mainItem.isLocalScreenSharing || windowsLayout.currentIndex !== -1 || screensLayout.currentIndex !== -1 text: mainItem.conference && mainItem.conference.core.isLocalScreenSharing //: "Stop ? qsTr("stop") //: "Partager" : qsTr("share") - onClicked: mainItem.conference.core.lToggleScreenSharing() + onClicked: { + mainItem.conference.core.lToggleScreenSharing() + } style: ButtonStyle.main } } diff --git a/Linphone/view/Control/Popup/InformationPopup.qml b/Linphone/view/Control/Popup/InformationPopup.qml index 84f6d2c03..e9e5d89b2 100644 --- a/Linphone/view/Control/Popup/InformationPopup.qml +++ b/Linphone/view/Control/Popup/InformationPopup.qml @@ -86,6 +86,7 @@ Popup { text: mainItem.description wrapMode: Text.WordWrap color: DefaultStyle.main2_500_main + onLinkActivated: Qt.openUrlExternally(link) font { pixelSize: Utils.getSizeWithScreenRatio(12) weight: Utils.getSizeWithScreenRatio(300) diff --git a/Linphone/view/Control/Popup/Loading/LoadingPopup.qml b/Linphone/view/Control/Popup/Loading/LoadingPopup.qml index ded7f22e1..560310aa8 100644 --- a/Linphone/view/Control/Popup/Loading/LoadingPopup.qml +++ b/Linphone/view/Control/Popup/Loading/LoadingPopup.qml @@ -23,8 +23,10 @@ Popup { // height: childrenRect.height BusyIndicator{ Layout.alignment: Qt.AlignHCenter - Layout.preferredWidth: Utils.getSizeWithScreenRatio(33) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(33) + width: Utils.getSizeWithScreenRatio(33) + height: width + Layout.preferredWidth: width + Layout.preferredHeight: width } Text { id: contentText diff --git a/Linphone/view/Control/Tool/Helper/utils.js b/Linphone/view/Control/Tool/Helper/utils.js index 79011e8a7..9b72b4c14 100644 --- a/Linphone/view/Control/Tool/Helper/utils.js +++ b/Linphone/view/Control/Tool/Helper/utils.js @@ -154,8 +154,8 @@ function isDescendant(child, parent) { // ----------------------------------------------------------------------------- -// Retrieve first focussable item of an Item. If no item found, return undefined -function getFirstFocussableItemInItem(item) { +// Retrieve first focusable item of an Item. If no item found, return undefined +function getFirstFocusableItemInItem(item) { var next = item.nextItemInFocusChain(); if (next && isDescendant(next, item)){ return next; @@ -163,8 +163,8 @@ function getFirstFocussableItemInItem(item) { return undefined; } -// Retrieve last focussable item of an Item. If no item found, return undefined -function getLastFocussableItemInItem(item) { +// Retrieve last focusable item of an Item. If no item found, return undefined +function getLastFocusableItemInItem(item) { var next = item.nextItemInFocusChain(); if(next && !isDescendant(next, item)){ return undefined; @@ -173,7 +173,7 @@ function getLastFocussableItemInItem(item) { do{ current = next; next = current.nextItemInFocusChain(); - } while(isDescendant(next, item) && next.visible) + } while(isDescendant(next, item) && next.visible && next !== current) return current; } @@ -876,4 +876,4 @@ function getSizeWithScreenRatio(size){ : size > 0 ? Math.max(Math.round(size * Linphone.DefaultStyle.dp), 1) : Math.min(Math.round(size * Linphone.DefaultStyle.dp), -1); -} \ No newline at end of file +} diff --git a/Linphone/view/Page/Form/Call/NewCallForm.qml b/Linphone/view/Page/Form/Call/NewCallForm.qml index 8af410caf..29801021c 100644 --- a/Linphone/view/Page/Form/Call/NewCallForm.qml +++ b/Linphone/view/Page/Form/Call/NewCallForm.qml @@ -15,6 +15,7 @@ CreationFormLayout { //: Appel de groupe startGroupButtonText: qsTr("call_start_group_call_title") + startGroupButtonVisible: !SettingsCpp.disableMeetingsFeature topLayoutVisible: mainItem.displayCurrentCalls && callList.count > 0 topContent: [ diff --git a/Linphone/view/Page/Form/Chat/SelectedChatView.qml b/Linphone/view/Page/Form/Chat/SelectedChatView.qml index ab8826e3e..96cdd5c1c 100644 --- a/Linphone/view/Page/Form/Chat/SelectedChatView.qml +++ b/Linphone/view/Page/Form/Chat/SelectedChatView.qml @@ -26,6 +26,16 @@ FocusScope { signal oneOneCall(bool video) signal groupCall() + onActiveFocusChanged: if(activeFocus) { + if (chatMessagesListView.lastItemVisible) chat.core.lMarkAsRead() + } + MouseArea{ + anchors.fill: parent + onPressed: { + forceActiveFocus() + } + } + onOneOneCall: { if (contact) mainWindow.startCallWithContact(contact, video, mainItem) @@ -100,7 +110,6 @@ FocusScope { font { pixelSize: Typography.h4.pixelSize weight: Utils.getSizeWithScreenRatio(400) - capitalization: Font.Capitalize } } RowLayout { @@ -136,7 +145,7 @@ FocusScope { RowLayout { spacing: Utils.getSizeWithScreenRatio(16) RoundButton { - visible: !mainItem.call + visible: !mainItem.call && !mainItem.chat?.core.isReadOnly style: ButtonStyle.noBackground icon.source: AppIcons.phone onPressed: { @@ -310,7 +319,7 @@ FocusScope { Control.Control { id: participantListPopup width: parent.width - height: Math.min(participantInfoList.height, Utils.getSizeWithScreenRatio(200)) + height: visible ? Math.min(participantInfoList.height, Utils.getSizeWithScreenRatio(200)) : 0 visible: false anchors.bottom: chatMessagesListView.bottom anchors.left: chatMessagesListView.left diff --git a/Linphone/view/Page/Form/Contact/ContactEdition.qml b/Linphone/view/Page/Form/Contact/ContactEdition.qml index a80f1cab0..902058eed 100644 --- a/Linphone/view/Page/Form/Contact/ContactEdition.qml +++ b/Linphone/view/Page/Form/Contact/ContactEdition.qml @@ -58,7 +58,7 @@ MainRightPanel { icon.source: AppIcons.closeX icon.width: Utils.getSizeWithScreenRatio(24) icon.height: Utils.getSizeWithScreenRatio(24) - //: Close %n + //: Close %1 Accessible.name: qsTr("close_accessible_name").arg(mainItem.title) onClicked: { if (contact.core.isSaved) mainItem.closeEdition('') @@ -203,10 +203,11 @@ MainRightPanel { sig.connect(f) } - ScrollBar.vertical: Control.ScrollBar { + ScrollBar.vertical: ScrollBar { anchors.right: parent.right + visible: editionLayout.contentHeight > editionLayout.height } - ScrollBar.horizontal: Control.ScrollBar { + ScrollBar.horizontal: ScrollBar { } ColumnLayout { spacing: Utils.getSizeWithScreenRatio(20) diff --git a/Linphone/view/Page/Form/Login/SIPLoginPage.qml b/Linphone/view/Page/Form/Login/SIPLoginPage.qml index 16fd38c7d..55b5bbfd1 100644 --- a/Linphone/view/Page/Form/Login/SIPLoginPage.qml +++ b/Linphone/view/Page/Form/Login/SIPLoginPage.qml @@ -385,16 +385,14 @@ LoginLayout { ColumnLayout { spacing: Utils.getSizeWithScreenRatio(10) FormItemLayout { - id: outboundProxyUri - //: "Outbound SIP Proxy URI" - label: qsTr("login_proxy_server_url") - //: "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." - tooltip: qsTr("login_proxy_server_url_tooltip") + id: connectionId + //: "Authentication ID (if different)" + label: qsTr("login_id") Layout.fillWidth: true contentItem: TextField { - id: outboundProxyUriEdit + id: connectionIdEdit Layout.preferredWidth: Utils.getSizeWithScreenRatio(360) - Accessible.name: qsTr("login_proxy_server_url") + Accessible.name: qsTr("login_id") KeyNavigation.up: transportCbox KeyNavigation.down: registrarUriEdit } @@ -413,15 +411,17 @@ LoginLayout { } } FormItemLayout { - id: connectionId - //: "Authentication ID (if different)" - label: qsTr("login_id") + id: outboundProxyUri + //: "Outbound SIP Proxy URI" + label: qsTr("login_proxy_server_url") + //: "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." + tooltip: qsTr("login_proxy_server_url_tooltip") Layout.fillWidth: true contentItem: TextField { - id: connectionIdEdit + id: outboundProxyUriEdit Layout.preferredWidth: Utils.getSizeWithScreenRatio(360) + Accessible.name: qsTr("login_proxy_server_url") KeyNavigation.up: registrarUriEdit - Accessible.name: qsTr("login_id") } } } diff --git a/Linphone/view/Page/Form/Meeting/AddParticipantsForm.qml b/Linphone/view/Page/Form/Meeting/AddParticipantsForm.qml index d808f991b..95815f484 100644 --- a/Linphone/view/Page/Form/Meeting/AddParticipantsForm.qml +++ b/Linphone/view/Page/Form/Meeting/AddParticipantsForm.qml @@ -161,6 +161,7 @@ FocusScope { itemsRightMargin: Utils.getSizeWithScreenRatio(28) multiSelectionEnabled: true showContactMenu: false + showMe: false confInfoGui: mainItem.conferenceInfoGui selectedContacts: mainItem.selectedParticipants onSelectedContactsChanged: Qt.callLater(function () { diff --git a/Linphone/view/Page/Form/Meeting/MeetingForm.qml b/Linphone/view/Page/Form/Meeting/MeetingForm.qml index b50d307f5..18cdad514 100644 --- a/Linphone/view/Page/Form/Meeting/MeetingForm.qml +++ b/Linphone/view/Page/Form/Meeting/MeetingForm.qml @@ -108,7 +108,7 @@ FocusScope { id: startDate background.visible: mainItem.isCreation indicator.visible: mainItem.isCreation - contentText.font.weight: Math.min(Utils.getSizeWithScreenRatio(isCreation ? 700 : 400), 1000) + contentText.font.weight: isCreation ? Font.Bold : Font.Normal Layout.fillWidth: true Layout.preferredHeight: Utils.getSizeWithScreenRatio(30) KeyNavigation.up: confTitle @@ -134,7 +134,7 @@ FocusScope { Layout.preferredWidth: Utils.getSizeWithScreenRatio(94) Layout.preferredHeight: Utils.getSizeWithScreenRatio(30) background.visible: mainItem.isCreation - contentText.font.weight: Math.min(Utils.getSizeWithScreenRatio(isCreation ? 700 : 400), 1000) + contentText.font.weight: isCreation ? Font.Bold : Font.Normal KeyNavigation.up: startDate KeyNavigation.down: timeZoneCbox KeyNavigation.left: endHour @@ -154,7 +154,7 @@ FocusScope { Layout.preferredWidth: Utils.getSizeWithScreenRatio(94) Layout.preferredHeight: Utils.getSizeWithScreenRatio(30) background.visible: mainItem.isCreation - contentText.font.weight: Math.min(Utils.getSizeWithScreenRatio(isCreation ? 700 : 400), 1000) + contentText.font.weight: isCreation ? Font.Bold : Font.Normal onSelectedDateTimeChanged: mainItem.conferenceInfoGui.core.endDateTime = selectedDateTime KeyNavigation.up: startDate KeyNavigation.down: timeZoneCbox diff --git a/Linphone/view/Page/Layout/Chat/ConversationInfos.qml b/Linphone/view/Page/Layout/Chat/ConversationInfos.qml index eddad7739..35bb8319d 100644 --- a/Linphone/view/Page/Layout/Chat/ConversationInfos.qml +++ b/Linphone/view/Page/Layout/Chat/ConversationInfos.qml @@ -171,6 +171,7 @@ ColumnLayout { } RowLayout { + visible: !mainItem.chatCore.isReadOnly spacing: Utils.getSizeWithScreenRatio(10) Layout.alignment: Qt.AlignHCenter Layout.topMargin: Utils.getSizeWithScreenRatio(30) diff --git a/Linphone/view/Page/Layout/Chat/GroupChatInfoParticipants.qml b/Linphone/view/Page/Layout/Chat/GroupChatInfoParticipants.qml index 8eb72692e..ad50a401e 100644 --- a/Linphone/view/Page/Layout/Chat/GroupChatInfoParticipants.qml +++ b/Linphone/view/Page/Layout/Chat/GroupChatInfoParticipants.qml @@ -18,9 +18,7 @@ ColumnLayout { property var chatCore signal manageParticipantsRequested() - function isGroupEditable() { - return chatCore && chatCore.meAdmin && !chatCore.isReadOnly - } + property bool isGroupEditable: chatCore && chatCore.meAdmin && !chatCore.isReadOnly RowLayout { Text { @@ -139,7 +137,7 @@ ColumnLayout { } } IconLabelButton { - visible: mainItem.isGroupEditable() + visible: mainItem.isGroupEditable Layout.fillWidth: true text: participantCore.isAdmin ? qsTr("group_infos_remove_admin_rights") : qsTr("group_infos_give_admin_rights") icon.source: AppIcons.profile @@ -163,7 +161,7 @@ ColumnLayout { } } Rectangle { - visible: mainItem.isGroupEditable() + visible: mainItem.isGroupEditable color: DefaultStyle.main2_200 Layout.fillWidth: true height: Utils.getSizeWithScreenRatio(1) @@ -171,7 +169,7 @@ ColumnLayout { Layout.leftMargin: Utils.getSizeWithScreenRatio(17) } IconLabelButton { - visible: mainItem.isGroupEditable() + visible: mainItem.isGroupEditable Layout.fillWidth: true text: qsTr("group_infos_remove_participant") icon.source: AppIcons.trashCan @@ -199,7 +197,7 @@ ColumnLayout { MediumButton { id: manageParticipants - visible: mainItem.isGroupEditable() + visible: mainItem.isGroupEditable height: Utils.getSizeWithScreenRatio(40) icon.source: AppIcons.plusCircle icon.width: Utils.getSizeWithScreenRatio(16) diff --git a/Linphone/view/Page/Layout/Main/MainLayout.qml b/Linphone/view/Page/Layout/Main/MainLayout.qml index bd31603fe..1d000de46 100644 --- a/Linphone/view/Page/Layout/Main/MainLayout.qml +++ b/Linphone/view/Page/Layout/Main/MainLayout.qml @@ -113,7 +113,7 @@ Item { style: ButtonStyle.toast text: currentCallNotif.currentCall ? currentCallNotif.currentCall.core.conference ? ("Réunion en cours : ") + currentCallNotif.currentCall.core.conference.core.subject : (("Appel en cours : ") + currentCallNotif.remoteName) : "appel en cours" onClicked: { - var callsWindow = UtilsCpp.getCallsWindow(currentCallNotif.currentCall); + var callsWindow = UtilsCpp.getOrCreateCallsWindow(currentCallNotif.currentCall); UtilsCpp.smartShowWindow(callsWindow); } } @@ -494,7 +494,7 @@ Item { IconLabelButton { id: recordsButton Layout.fillWidth: true - visible: !SettingsCpp.disableCallRecordings + visible: false// !SettingsCpp.disableCallRecordings icon.width: Utils.getSizeWithScreenRatio(32) icon.height: Utils.getSizeWithScreenRatio(32) //: "Enregistrements" diff --git a/Linphone/view/Page/Layout/Settings/AccountSettingsGeneralLayout.qml b/Linphone/view/Page/Layout/Settings/AccountSettingsGeneralLayout.qml index 8f70da2df..7e36fddd0 100644 --- a/Linphone/view/Page/Layout/Settings/AccountSettingsGeneralLayout.qml +++ b/Linphone/view/Page/Layout/Settings/AccountSettingsGeneralLayout.qml @@ -103,6 +103,7 @@ AbstractSettingsLayout { spacing: Utils.getSizeWithScreenRatio(5) Text { Layout.alignment: Qt.AlignLeft + //: SIP address text: "%1 :".arg(qsTr("sip_address")) color: DefaultStyle.main2_600 font: Typography.p2l @@ -120,7 +121,18 @@ AbstractSettingsLayout { Layout.alignment: Qt.AlignRight icon.source: AppIcons.copy style: ButtonStyle.noBackground - onClicked: UtilsCpp.copyToClipboard(model.core.identityAddress) + onClicked: { + if (UtilsCpp.copyToClipboard(model.core.identityAddress)) { + //: Copied + UtilsCpp.showInformationPopup(qsTr("copied"), + //: Your SIP address has been copied in the clipboard + qsTr("account_settings_sip_address_copied_message")) + } else { + UtilsCpp.showInformationPopup(qsTr("error"), + //: Error copying your SIP address + qsTr("account_settings_sip_address_copied_error_message"), false) + } + } } } ColumnLayout { diff --git a/Linphone/view/Page/Layout/Settings/AccountSettingsParametersLayout.qml b/Linphone/view/Page/Layout/Settings/AccountSettingsParametersLayout.qml index 17b26e9e8..3b87fadb2 100644 --- a/Linphone/view/Page/Layout/Settings/AccountSettingsParametersLayout.qml +++ b/Linphone/view/Page/Layout/Settings/AccountSettingsParametersLayout.qml @@ -27,34 +27,23 @@ AbstractSettingsLayout { property alias account: mainItem.model onSave: { - if (!registrarUriIsValid || !outboundProxyIsValid) { - var message = !registrarUriIsValid - //: Registrar uri is invalid. Please make sure it matches the following format : sip::;transport= (: is optional) - ? qsTr("info_popup_invalid_registrar_uri_message") - //: Outbound proxy uri is invalid. Please make sure it matches the following format : sip::;transport= (: is optional) - : qsTr("info_popup_invalid_outbound_proxy_message") - mainWindow.showInformationPopup(qsTr("info_popup_error_title"), message, false) - } - else account.core.save() + account.core.save() } onUndo: account.core.undo() Connections { target: account.core function onIsSavedChanged() { + console.log("saved changed", account.core.isSaved) if (account.core.isSaved) { - UtilsCpp.showInformationPopup( - qsTr("information_popup_success_title"), + UtilsCpp.showInformationPopup(qsTr("information_popup_success_title"), //: "Modifications sauvegardés" - qsTr("contact_editor_saved_changes_toast"), true, - mainWindow) + qsTr("contact_editor_saved_changes_toast"), true, mainWindow) } } function onSetValueFailed(error) { if (error) { UtilsCpp.showInformationPopup( - qsTr("information_popup_error_title"), - error, false, - mainWindow) + qsTr("information_popup_error_title"), error, false, mainWindow) } } } @@ -129,11 +118,6 @@ AbstractSettingsLayout { propertyName: "registrarUri" propertyOwnerGui: account toValidate: true - isValid: function(text) { - var valid = text === "" || UtilsCpp.stringMatchFormat(text, ConstantsCpp.uriRegExp) - mainItem.registrarUriIsValid = valid - return valid - } } DecoratedTextField { Layout.fillWidth: true @@ -141,14 +125,9 @@ AbstractSettingsLayout { title: qsTr("account_settings_sip_proxy_url_title") propertyName: "outboundProxyUri" propertyOwnerGui: account - toValidate: true //: "If this field is filled, the outbound proxy will be enabled automatically. Leave it empty to disable it." tooltip: qsTr("login_proxy_server_url_tooltip") - isValid: function(text) { - var isValid = text === "" || UtilsCpp.stringMatchFormat(text, ConstantsCpp.uriRegExp) - mainItem.outboundProxyIsValid = isValid - return isValid - } + toValidate: true } DecoratedTextField { Layout.fillWidth: true diff --git a/Linphone/view/Page/Layout/Settings/AdvancedSettingsLayout.qml b/Linphone/view/Page/Layout/Settings/AdvancedSettingsLayout.qml index e61474910..c48a06830 100644 --- a/Linphone/view/Page/Layout/Settings/AdvancedSettingsLayout.qml +++ b/Linphone/view/Page/Layout/Settings/AdvancedSettingsLayout.qml @@ -137,6 +137,7 @@ AbstractSettingsLayout { propertyOwner: SettingsCpp } SwitchSetting { + visible: false Layout.fillWidth: true //: Create end to end encrypted meetings and group calls titleText: qsTr("settings_advanced_create_endtoend_encrypted_meetings_title") diff --git a/Linphone/view/Page/Layout/Settings/CarddavSettingsLayout.qml b/Linphone/view/Page/Layout/Settings/CarddavSettingsLayout.qml index b2e966a84..ae7bf8396 100644 --- a/Linphone/view/Page/Layout/Settings/CarddavSettingsLayout.qml +++ b/Linphone/view/Page/Layout/Settings/CarddavSettingsLayout.qml @@ -35,15 +35,15 @@ AbstractSettingsLayout { } Connections { target: carddavGui.core - function onSaved(success) { + function onSaved(success, message) { if (success) UtilsCpp.showInformationPopup(qsTr("information_popup_synchronization_success_title"), //: "Le carnet d'adresse CardDAV est synchronisé." qsTr("settings_contacts_carddav_synchronization_success_message"), true, mainWindow) else UtilsCpp.showInformationPopup(qsTr("settings_contacts_carddav_popup_synchronization_error_title"), - //: "Erreur de synchronisation!" - qsTr("settings_contacts_carddav_popup_synchronization_error_message"), false, mainWindow) + //: "Erreur de synchronisation : %1" + qsTr("settings_contacts_carddav_popup_synchronization_error_message").arg(message), false, mainWindow) } } Component { diff --git a/Linphone/view/Page/Layout/Settings/DebugSettingsLayout.qml b/Linphone/view/Page/Layout/Settings/DebugSettingsLayout.qml index ac0883c66..5b290f44b 100644 --- a/Linphone/view/Page/Layout/Settings/DebugSettingsLayout.qml +++ b/Linphone/view/Page/Layout/Settings/DebugSettingsLayout.qml @@ -118,63 +118,35 @@ AbstractSettingsLayout { id: versionContent ColumnLayout { spacing: Utils.getSizeWithScreenRatio(20) - RowLayout { - EffectImage { - imageSource: AppIcons.appWindow - colorizationColor: DefaultStyle.main1_500_main - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) - imageWidth: Utils.getSizeWithScreenRatio(24) - imageHeight: Utils.getSizeWithScreenRatio(24) - Layout.alignment: Qt.AlignTop - } - ColumnLayout { - Text { - //: "Version de l'application" - text: qsTr("settings_debug_app_version_title") - font: Typography.p2l - wrapMode: Text.WordWrap - color: DefaultStyle.main2_600 - Layout.fillWidth: true - } - TextEdit { - text: AppCpp.applicationVersion + ' ('+ AppCpp.gitBranchName + ')' - font: Typography.p1 - wrapMode: Text.WordWrap - color: DefaultStyle.main2_600 - Layout.fillWidth: true - readOnly: true - } - } + HelpIconLabelButton { + enabled: false + // Layout.preferredWidth: width + // Layout.minimumWidth: width + iconSize: Utils.getSizeWithScreenRatio(24) + //: "Version de l'application" + title: qsTr("settings_debug_app_version_title") + iconSource: AppIcons.appWindow + subTitle: AppCpp.applicationVersion + ' ('+ AppCpp.gitBranchName + ')' } - RowLayout { - EffectImage { - imageSource: AppIcons.resourcePackage - colorizationColor: DefaultStyle.main1_500_main - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) - imageWidth: Utils.getSizeWithScreenRatio(24) - imageHeight: Utils.getSizeWithScreenRatio(24) - Layout.alignment: Qt.AlignTop - } - ColumnLayout { - Text { - //: "Version du SDK" - text: qsTr("settings_debug_sdk_version_title") - font: Typography.p2l - wrapMode: Text.WordWrap - color: DefaultStyle.main2_600 - Layout.fillWidth: true - } - TextEdit { - text: AppCpp.sdkVersion - font: Typography.p1 - wrapMode: Text.WordWrap - color: DefaultStyle.main2_600 - Layout.fillWidth: true - readOnly: true - } - } + HelpIconLabelButton { + enabled: false + // Layout.preferredWidth: width + // Layout.minimumWidth: width + iconSize: Utils.getSizeWithScreenRatio(24) + //: "Version du SDK" + title: qsTr("settings_debug_sdk_version_title") + iconSource: AppIcons.resourcePackage + subTitle: AppCpp.sdkVersion + } + HelpIconLabelButton { + enabled: false + // Layout.preferredWidth: width + // Layout.minimumWidth: width + iconSize: Utils.getSizeWithScreenRatio(24) + iconSource: AppIcons.qtLogo + //: "Qt Version" + title: qsTr("settings_debug_qt_version_title") + subTitle: AppCpp.qtVersion } } } diff --git a/Linphone/view/Page/Main/AbstractMainPage.qml b/Linphone/view/Page/Main/AbstractMainPage.qml index 282184a84..df78de0fa 100644 --- a/Linphone/view/Page/Main/AbstractMainPage.qml +++ b/Linphone/view/Page/Main/AbstractMainPage.qml @@ -21,6 +21,8 @@ FocusScope { property alias leftPanelContent: leftPanel.children property alias rightPanelStackView: rightPanelStackView property alias rightPanel: rightPanel + property int rightPanelStackTopMargin: 0 + property int rightPanelStackBottomMargin: 0 signal noItemButtonPressed() // Control.SplitView { @@ -193,6 +195,8 @@ FocusScope { id: rightPanelStackView Layout.fillWidth: true Layout.fillHeight: true + Layout.topMargin: mainItem.rightPanelStackTopMargin + Layout.bottomMargin: mainItem.rightPanelStackBottomMargin visible: false } } diff --git a/Linphone/view/Page/Main/Account/AccountListView.qml b/Linphone/view/Page/Main/Account/AccountListView.qml index a7554c50b..98d80954b 100644 --- a/Linphone/view/Page/Main/Account/AccountListView.qml +++ b/Linphone/view/Page/Main/Account/AccountListView.qml @@ -32,7 +32,7 @@ ColumnLayout{ property var popupId Component{ id: contactDelegate - Contact{ + Contact { id: contactItem Layout.preferredWidth: mainItem.childrenWidth account: modelData @@ -94,6 +94,6 @@ ColumnLayout{ != 0 ? getNextItem( AppCpp.accounts.getCount()) : null } - } +} diff --git a/Linphone/view/Page/Main/Call/CallPage.qml b/Linphone/view/Page/Main/Call/CallPage.qml index 77b2fff86..33b5a63ed 100644 --- a/Linphone/view/Page/Main/Call/CallPage.qml +++ b/Linphone/view/Page/Main/Call/CallPage.qml @@ -138,9 +138,13 @@ AbstractMainPage { ColumnLayout { anchors.fill: parent spacing: 0 - RowLayout { + FlexboxLayout { id: titleCallLayout - spacing: Utils.getSizeWithScreenRatio(16) + direction: FlexboxLayout.Row + gap: Utils.getSizeWithScreenRatio(16) + alignItems: FlexboxLayout.AlignCenter + Layout.rightMargin: Utils.getSizeWithScreenRatio(39) + Layout.fillHeight: false Text { Layout.fillWidth: true //: "Appels" @@ -149,9 +153,6 @@ AbstractMainPage { font.pixelSize: Typography.h2.pixelSize font.weight: Typography.h2.weight } - Item { - Layout.fillWidth: true - } PopupButton { id: removeHistory icon.width: Utils.getSizeWithScreenRatio(24) @@ -190,7 +191,6 @@ AbstractMainPage { icon.source: AppIcons.newCall Layout.preferredWidth: Utils.getSizeWithScreenRatio(34) Layout.preferredHeight: Utils.getSizeWithScreenRatio(34) - Layout.rightMargin: Utils.getSizeWithScreenRatio(39) icon.width: Utils.getSizeWithScreenRatio(28) icon.height: Utils.getSizeWithScreenRatio(28) KeyNavigation.left: removeHistory diff --git a/Linphone/view/Page/Main/Chat/ChatPage.qml b/Linphone/view/Page/Main/Chat/ChatPage.qml index d530b3f42..19b0bd7ad 100644 --- a/Linphone/view/Page/Main/Chat/ChatPage.qml +++ b/Linphone/view/Page/Main/Chat/ChatPage.qml @@ -30,8 +30,32 @@ AbstractMainPage { onRemoteAddressChanged: console.log("ChatPage : remote address changed :", remoteAddress) property var remoteChatObj: UtilsCpp.getChatForAddress(remoteAddress) property var remoteChat: remoteChatObj ? remoteChatObj.value : null + + signal openChatRequested(ChatGui chat) + + Connections { + enabled: remoteChat !== null + target: remoteChat ? remoteChat.core : null + function onChatRoomStateChanged() { + if (remoteChat.core.state === LinphoneEnums.ChatRoomState.CreationPending) { + //: Chat room is being created... + mainWindow.showLoadingPopup(qsTr("loading_popup_chatroom_creation_pending_message")) + } else { + mainWindow.closeLoadingPopup() + if (remoteChat.core.state === LinphoneEnums.ChatRoomState.CreationFailed) { + UtilsCpp.showInformationPopup(qsTr("info_popup_error_title"), + //: Chat room creation failed ! + qsTr("info_popup_chatroom_creation_failed"), false) + } else if (remoteChat.core.state === LinphoneEnums.ChatRoomState.Created) { + openChatRequested(remoteChat) + } + } + } + } onRemoteChatChanged: { - if (remoteChat) selectedChatGui = remoteChat + if (remoteChat && remoteChat.core.state === LinphoneEnums.ChatRoomState.Created) { + openChatRequested(remoteChat) + } } onSelectedChatGuiChanged: { @@ -57,14 +81,14 @@ AbstractMainPage { showDefaultItem: listStackView.currentItem && listStackView.currentItem.objectName == "chatListItem" - && listStackView.currentItem.listView.count === 0 || false + && listStackView.currentItem.listView.count === 0 + && !listStackView.currentItem.listView.loading || false function goToNewChat() { if (listStackView.currentItem && listStackView.currentItem.objectName != "newChatItem") listStackView.push(newChatItem) } - signal openChatRequested(ChatGui chat) Dialog { id: deleteChatPopup @@ -96,8 +120,12 @@ AbstractMainPage { ColumnLayout { anchors.fill: parent spacing: 0 - RowLayout { - spacing: Utils.getSizeWithScreenRatio(16) + FlexboxLayout { + direction: FlexboxLayout.Row + gap: Utils.getSizeWithScreenRatio(16) + alignItems: FlexboxLayout.AlignCenter + Layout.rightMargin: Utils.getSizeWithScreenRatio(39) + Layout.fillHeight: false Text { Layout.fillWidth: true //: "Conversations" @@ -106,9 +134,6 @@ AbstractMainPage { font.pixelSize: Typography.h2.pixelSize font.weight: Typography.h2.weight } - Item { - Layout.fillWidth: true - } PopupButton { id: chatListMenu width: Utils.getSizeWithScreenRatio(24) @@ -137,7 +162,6 @@ AbstractMainPage { icon.source: AppIcons.plusCircle Layout.preferredWidth: Utils.getSizeWithScreenRatio(28) Layout.preferredHeight: Utils.getSizeWithScreenRatio(28) - Layout.rightMargin: Utils.getSizeWithScreenRatio(39) icon.width: Utils.getSizeWithScreenRatio(28) icon.height: Utils.getSizeWithScreenRatio(28) KeyNavigation.down: searchBar @@ -198,9 +222,6 @@ AbstractMainPage { Connections { target: mainItem - function onSelectedChatGuiChanged() { - chatListView.selectChat(mainItem.selectedChatGui) - } function onOpenChatRequested(chat) { chatListView.chatToSelect = chat } @@ -261,12 +282,13 @@ AbstractMainPage { } NewChatForm { id: newChatForm + startGroupButtonVisible: mainItem.account && mainItem.account.core.conferenceFactoryAddress !== "" Layout.fillWidth: true Layout.fillHeight: true Layout.rightMargin: Utils.getSizeWithScreenRatio(8) Layout.topMargin: Utils.getSizeWithScreenRatio(18) onGroupCreationRequested: { - console.log("groupe call requetsed") + console.log("groupe call requested") listStackView.push(groupChatItem) } onContactClicked: (contact) => { @@ -322,22 +344,29 @@ AbstractMainPage { } onGroupCreationRequested: { + var hasError = false if (groupName.text.length === 0) { + //: "Un nom doit être donné au groupe + groupNameItem.errorMessage = qsTr("group_chat_error_must_have_name") + hasError = true + } if (addParticipantsLayout.selectedParticipantsCount === 0) { UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), - //: "Un nom doit être donné au groupe - qsTr("group_chat_error_must_have_name"), false) - } else if (!mainItem.isRegistered) { + //: "Please select at least one participant + qsTr("group_chat_error_no_participant"), false) + hasError = true + } if (!mainItem.isRegistered) { UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), //: "Vous n'etes pas connecté" qsTr("group_call_error_not_connected"), false) - } else { - console.log("create group chat") - //: Creation de la conversation en cours … - mainWindow.showLoadingPopup(qsTr("chat_creation_in_progress"), true, function () { - if (chatCreationLayout.groupChat) chatCreationLayout.groupChat.core.lDelete() - }) - chatCreationLayout.groupChatObj = UtilsCpp.createGroupChat(chatCreationLayout.groupName.text, addParticipantsLayout.selectedParticipants) - } + hasError = true + } + if (hasError) return + console.log("Create group chat") + //: Creation de la conversation en cours … + mainWindow.showLoadingPopup(qsTr("chat_creation_in_progress"), true, function () { + if (chatCreationLayout.groupChat) chatCreationLayout.groupChat.core.lDelete() + }) + chatCreationLayout.groupChatObj = UtilsCpp.createGroupChat(chatCreationLayout.groupName.text, addParticipantsLayout.selectedParticipants) } } } @@ -360,12 +389,10 @@ AbstractMainPage { } SelectedChatView { id: selectedChatView - visible: chat != undefined //&& (chat.core.isBasic || chat.core.conferenceJoined) + visible: chat != undefined anchors.fill: parent chat: mainItem.selectedChatGui ? mainItem.selectedChatGui : null - onChatChanged: { - if (mainItem.selectedChatGui !== chat) mainItem.selectedChatGui = chat - } + // Reset current chat when switching account, otherwise the binding makes // the last chat from last account the current chat for the new default account Connections { @@ -379,7 +406,7 @@ AbstractMainPage { Connections { target: mainItem function onSelectedChatGuiChanged() { - if (mainItem.selectedChatGui) selectedChatView.chat = mainItem.selectedChatGui + selectedChatView.chat = mainItem.selectedChatGui ? mainItem.selectedChatGui : null } } Binding { @@ -391,4 +418,4 @@ AbstractMainPage { } } } -} \ No newline at end of file +} diff --git a/Linphone/view/Page/Main/Contact/ContactPage.qml b/Linphone/view/Page/Main/Contact/ContactPage.qml index 989a514d6..47008aadc 100644 --- a/Linphone/view/Page/Main/Contact/ContactPage.qml +++ b/Linphone/view/Page/Main/Contact/ContactPage.qml @@ -213,25 +213,25 @@ FriendGui{ Layout.fillHeight: true Layout.fillWidth: true - RowLayout { + FlexboxLayout { id: title - spacing: 0 + direction: FlexboxLayout.Row + gap: Utils.getSizeWithScreenRatio(16) + alignItems: FlexboxLayout.AlignCenter anchors.top: leftPanel.top anchors.right: leftPanel.right anchors.left: leftPanel.left anchors.leftMargin: leftPanel.leftMargin anchors.rightMargin: leftPanel.rightMargin - + Layout.fillHeight: false Text { + Layout.fillWidth: true //: "Contacts" text: qsTr("bottom_navigation_contacts_label") color: DefaultStyle.main2_700 font.pixelSize: Typography.h2.pixelSize font.weight: Typography.h2.weight } - Item { - Layout.fillWidth: true - } Button { id: createContactButton visible: !rightPanelStackView.currentItem diff --git a/Linphone/view/Page/Main/Help/HelpPage.qml b/Linphone/view/Page/Main/Help/HelpPage.qml index a9defedc0..71ab04360 100644 --- a/Linphone/view/Page/Main/Help/HelpPage.qml +++ b/Linphone/view/Page/Main/Help/HelpPage.qml @@ -21,14 +21,15 @@ AbstractMainPage { id: leftPanel Layout.fillWidth: true Layout.fillHeight: true - property real sideMargin: Utils.getSizeWithScreenRatio(45) + property real leftMargin: Utils.getSizeWithScreenRatio(45) + property real rightMargin: Utils.getSizeWithScreenRatio(29) spacing: Utils.getSizeWithScreenRatio(5) RowLayout { Layout.fillWidth: true - Layout.leftMargin: leftPanel.sideMargin - Layout.rightMargin: leftPanel.sideMargin - spacing: Utils.getSizeWithScreenRatio(5) - Button { + Layout.leftMargin: leftPanel.leftMargin + Layout.rightMargin: leftPanel.rightMargin + spacing: Utils.getSizeWithScreenRatio(8) + RoundButton { icon.source: AppIcons.leftArrow style: ButtonStyle.noBackground icon.width: Utils.getSizeWithScreenRatio(24) @@ -51,8 +52,8 @@ AbstractMainPage { id: aboutImage Layout.fillWidth: true Layout.preferredHeight: Utils.getSizeWithScreenRatio(100) - Layout.leftMargin: leftPanel.sideMargin - Layout.rightMargin: leftPanel.sideMargin + Layout.leftMargin: leftPanel.leftMargin + Layout.rightMargin: leftPanel.rightMargin Layout.topMargin: Utils.getSizeWithScreenRatio(41) fillMode: Image.PreserveAspectFit source: SettingsCpp.themeAboutPictureUrl @@ -64,8 +65,8 @@ AbstractMainPage { } } Text { - Layout.leftMargin: leftPanel.sideMargin - Layout.rightMargin: leftPanel.sideMargin + Layout.leftMargin: leftPanel.leftMargin + Layout.rightMargin: leftPanel.rightMargin Layout.topMargin: Utils.getSizeWithScreenRatio(aboutImage.visible ? 41 : 24) Layout.fillWidth: true //: "À propos de %1" @@ -75,8 +76,8 @@ AbstractMainPage { } ColumnLayout { Layout.fillWidth: true - Layout.leftMargin: leftPanel.sideMargin - Layout.rightMargin: leftPanel.sideMargin + Layout.leftMargin: leftPanel.leftMargin + Layout.rightMargin: leftPanel.rightMargin Layout.topMargin: Utils.getSizeWithScreenRatio(24) spacing: Utils.getSizeWithScreenRatio(32) HelpIconLabelButton { @@ -91,13 +92,24 @@ AbstractMainPage { Qt.openUrlExternally(ConstantsCpp.PrivatePolicyUrl) } } - HelpIconLabelButton { - Layout.fillWidth: true - iconSource: AppIcons.info - //: "Version" - title: qsTr("help_about_version_title") - subTitle: AppCpp.shortApplicationVersion - onClicked: {} + RowLayout { + HelpIconLabelButton { + Layout.preferredWidth: width + Layout.minimumWidth: width + iconSource: AppIcons.info + //: "Version" + title: qsTr("help_about_version_title") + subTitle: AppCpp.shortApplicationVersion + onClicked: {} + } + Item{Layout.fillWidth: true} + MediumButton { + style: ButtonStyle.tertiary + Layout.fillWidth: true + //: Check update + text: qsTr("help_check_for_update_button_label") + onClicked: AppCpp.checkForUpdate(true) + } } HelpIconLabelButton { Layout.fillWidth: true @@ -122,8 +134,8 @@ AbstractMainPage { } } Text { - Layout.leftMargin: leftPanel.sideMargin - Layout.rightMargin: leftPanel.sideMargin + Layout.leftMargin: leftPanel.leftMargin + Layout.rightMargin: leftPanel.rightMargin Layout.topMargin: Utils.getSizeWithScreenRatio(32) Layout.fillWidth: true //: "À propos de %1" @@ -134,10 +146,11 @@ AbstractMainPage { HelpIconLabelButton { id: troubleShooting Layout.fillWidth: true - Layout.leftMargin: leftPanel.sideMargin - Layout.rightMargin: leftPanel.sideMargin + Layout.leftMargin: leftPanel.leftMargin + Layout.rightMargin: leftPanel.rightMargin Layout.topMargin: Utils.getSizeWithScreenRatio(24) iconSource: AppIcons.debug + arrowImageVisible: true //: "Dépannage" title: qsTr("help_troubleshooting_title") onClicked: { diff --git a/Linphone/view/Page/Main/Meeting/MeetingPage.qml b/Linphone/view/Page/Main/Meeting/MeetingPage.qml index 5b93e49c7..f0dac9a7f 100644 --- a/Linphone/view/Page/Main/Meeting/MeetingPage.qml +++ b/Linphone/view/Page/Main/Meeting/MeetingPage.qml @@ -10,7 +10,6 @@ import "qrc:/qt/qml/Linphone/view/Control/Tool/Helper/utils.js" as Utils // TODO : spacing AbstractMainPage { id: mainItem - property ConferenceInfoGui selectedConference property int meetingListCount: 0 signal returnRequested() @@ -23,6 +22,9 @@ AbstractMainPage { rightPanelColor: selectedConference ? DefaultStyle.grey_0 : DefaultStyle.grey_100 showDefaultItem: leftPanelStackView.currentItem && leftPanelStackView.currentItem.objectName === "listLayout" && meetingListCount === 0 + rightPanelStackView.width: Utils.getSizeWithScreenRatio(393) + rightPanelStackTopMargin: Utils.getSizeWithScreenRatio(45) + rightPanelStackBottomMargin: Utils.getSizeWithScreenRatio(30) function createPreFilledMeeting(subject, addresses) { mainItem.selectedConference = Qt.createQmlObject('import Linphone @@ -47,7 +49,7 @@ AbstractMainPage { item.forceActiveFocus() } else { mainItem.selectedConference = confInfoGui - item = overridenRightPanelStackView.push(editConf, {"conferenceInfoGui": mainItem.selectedConference}) + item = rightPanelStackView.push(editConf, {"conferenceInfoGui": mainItem.selectedConference}) item.forceActiveFocus() } } @@ -60,25 +62,14 @@ AbstractMainPage { onSelectedConferenceChanged: { // While a conference is being edited, we need to stay on the edit page - if (overridenRightPanelStackView.currentItem && (overridenRightPanelStackView.currentItem.objectName === "editConf" || overridenRightPanelStackView.currentItem.objectName === "createConf")) return - overridenRightPanelStackView.clear() + if (rightPanelStackView.currentItem && (rightPanelStackView.currentItem.objectName === "editConf")) return + rightPanelStackView.clear() if (selectedConference && selectedConference.core && selectedConference.core.haveModel) { - if (!overridenRightPanelStackView.currentItem || overridenRightPanelStackView.currentItem != meetingDetail) overridenRightPanelStackView.replace(meetingDetail, Control.StackView.Immediate) + rightPanelStackView.push(meetingDetail, Control.StackView.Immediate) } } onNoItemButtonPressed: editConference() - - Component.onCompleted: rightPanelStackView.push(overridenRightPanel, Control.StackView.Immediate) - - leftPanelContent: Control.StackView { - id: leftPanelStackView - Layout.fillWidth: true - Layout.fillHeight: true - Layout.leftMargin: Utils.getSizeWithScreenRatio(45) - initialItem: listLayout - clip: true - } Dialog { id: cancelAndDeleteConfDialog @@ -132,34 +123,13 @@ AbstractMainPage { ] } - Control.ScrollView { - id: overridenRightPanel - width: Utils.getSizeWithScreenRatio(393 + 10) - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.topMargin: Utils.getSizeWithScreenRatio(58) - anchors.bottomMargin: Utils.getSizeWithScreenRatio(30) - height: parent.height - anchors.topMargin - anchors.horizontalCenter: parent.horizontalCenter - contentWidth: width + leftPanelContent: Control.StackView { + id: leftPanelStackView + Layout.fillWidth: true + Layout.fillHeight: true + Layout.leftMargin: Utils.getSizeWithScreenRatio(45) + initialItem: listLayout clip: true - Control.ScrollBar.vertical: ScrollBar { - visible: overridenRightPanel.contentHeight > overridenRightPanel.height - anchors.top: parent.top - anchors.bottom: parent.bottom - anchors.right: parent.right - } - ColumnLayout { - anchors.fill: parent - anchors.rightMargin: Utils.getSizeWithScreenRatio(10) - width: Utils.getSizeWithScreenRatio(393) - Control.StackView { - id: overridenRightPanelStackView - Layout.fillWidth: true - Layout.fillHeight: true - Layout.preferredHeight: currentItem ? currentItem.childrenRect.height : 0 - } - } } Component { @@ -172,33 +142,34 @@ AbstractMainPage { Control.StackView.onActivated: { mainItem.selectedConference = conferenceList.selectedConference } - enabled: !overridenRightPanelStackView.currentItem || overridenRightPanelStackView.currentItem.objectName !== "editConf" - + enabled: !rightPanelStackView.currentItem || rightPanelStackView.currentItem.objectName !== "editConf" + ColumnLayout { anchors.fill: parent spacing: 0 - RowLayout { - Layout.rightMargin: Utils.getSizeWithScreenRatio(38) + FlexboxLayout { + direction: FlexboxLayout.Row + gap: Utils.getSizeWithScreenRatio(16) + alignItems: FlexboxLayout.AlignCenter + Layout.rightMargin: Utils.getSizeWithScreenRatio(39) Layout.alignment: Qt.AlignTop - Layout.fillWidth: true - spacing: 0 + Layout.fillHeight: false Text { Layout.fillWidth: true - //: Réunions - text: qsTr("meetings_list_title") + //: Réunions + text: qsTr("meetings_list_title") color: DefaultStyle.main2_700 - font.pixelSize: Typography.h2.pixelSize - font.weight: Typography.h2.weight + font.pixelSize: Typography.h2.pixelSize + font.weight: Typography.h2.weight } - Item{Layout.fillWidth: true} Button { id: newConfButton style: ButtonStyle.noBackground icon.source: AppIcons.plusCircle - Layout.preferredWidth: Utils.getSizeWithScreenRatio(28) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(28) - icon.width: Utils.getSizeWithScreenRatio(28) - icon.height: Utils.getSizeWithScreenRatio(28) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(28) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(28) + icon.width: Utils.getSizeWithScreenRatio(28) + icon.height: Utils.getSizeWithScreenRatio(28) KeyNavigation.down: scrollToCurrentDateButton onClicked: { mainItem.editConference() @@ -237,27 +208,27 @@ AbstractMainPage { } Text { visible: conferenceList.count === 0 && !conferenceList.loading - Layout.topMargin: Utils.getSizeWithScreenRatio(137) + Layout.topMargin: Utils.getSizeWithScreenRatio(137) Layout.fillHeight: true Layout.alignment: Qt.AlignHCenter - //: "Aucun résultat…" - text: searchBar.text.length !== 0 ? qsTr("list_filter_no_result_found") - //: "Aucune réunion" - : qsTr("meetings_empty_list") + //: "Aucun résultat…" + text: searchBar.text.length !== 0 ? qsTr("list_filter_no_result_found") + //: "Aucune réunion" + : qsTr("meetings_empty_list") font { - pixelSize: Typography.h4.pixelSize - weight: Typography.h4.weight + pixelSize: Typography.h4.pixelSize + weight: Typography.h4.weight } } MeetingListView { id: conferenceList // Remove 24 from first section padding because we cannot know that it is the first section. 24 is the margins between sections. - Layout.topMargin: Utils.getSizeWithScreenRatio(38 - 24) + Layout.topMargin: Utils.getSizeWithScreenRatio(38 - 24) Layout.fillWidth: true Layout.fillHeight: true - + searchBarText: searchBar.text - + onCountChanged: { mainItem.meetingListCount = count } @@ -275,13 +246,13 @@ AbstractMainPage { cancelAndDeleteConfDialog.cancel = canCancel cancelAndDeleteConfDialog.open() } - + Keys.onPressed: (event) => { if(event.key == Qt.Key_Escape){ searchBar.forceActiveFocus() event.accepted = true }else if(event.key == Qt.Key_Right){ - overridenRightPanelStackView.currentItem.forceActiveFocus() + rightPanelStackView.currentItem.forceActiveFocus() event.accepted = true } } @@ -297,18 +268,18 @@ AbstractMainPage { objectName: "createConf" property ConferenceInfoGui conferenceInfoGui ColumnLayout { - spacing: Utils.getSizeWithScreenRatio(33) + spacing: Utils.getSizeWithScreenRatio(33) anchors.fill: parent RowLayout { - spacing: Utils.getSizeWithScreenRatio(5) + spacing: Utils.getSizeWithScreenRatio(5) Layout.rightMargin: Utils.getSizeWithScreenRatio(35) Button { id: backButton style: ButtonStyle.noBackground icon.source: AppIcons.leftArrow focus: true - icon.width: Utils.getSizeWithScreenRatio(24) - icon.height: Utils.getSizeWithScreenRatio(24) + icon.width: Utils.getSizeWithScreenRatio(24) + icon.height: Utils.getSizeWithScreenRatio(24) KeyNavigation.right: createButton KeyNavigation.down: meetingSetup onClicked: { @@ -317,38 +288,38 @@ AbstractMainPage { } } Text { - //: "Nouvelle réunion" - text: qsTr("meeting_schedule_title") + //: "Nouvelle réunion" + text: qsTr("meeting_schedule_title") color: DefaultStyle.main2_700 font { - pixelSize: Typography.h3.pixelSize - weight: Typography.h3.weight + pixelSize: Typography.h3.pixelSize + weight: Typography.h3.weight } Layout.fillWidth: true } Item {Layout.fillWidth: true} SmallButton { id: createButton - text: qsTr("create") + text: qsTr("create") style: ButtonStyle.main KeyNavigation.left: backButton KeyNavigation.down: meetingSetup - + onClicked: { - if (meetingSetup.conferenceInfoGui.core.subject.length === 0 || meetingSetup.conferenceInfoGui.core.participantCount === 0) { - UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), - //: Veuillez saisir un titre et sélectionner au moins un participant - qsTr("meeting_schedule_mandatory_field_not_filled_toast"), false) + if (meetingSetup.conferenceInfoGui.core.subject.length === 0 || meetingSetup.conferenceInfoGui.core.participantCount === 0) { + UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), + //: Veuillez saisir un titre et sélectionner au moins un participant + qsTr("meeting_schedule_mandatory_field_not_filled_toast"), false) } else if (meetingSetup.conferenceInfoGui.core.duration <= 0) { - UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), - //: "La fin de la conférence doit être plus récente que son début" - qsTr("meeting_schedule_duration_error_toast"), false) - } else { + UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), + //: "La fin de la conférence doit être plus récente que son début" + qsTr("meeting_schedule_duration_error_toast"), false) + } else { meetingSetup.conferenceInfoGui.core.save() - //: "Création de la réunion en cours …" - mainWindow.showLoadingPopup(qsTr("meeting_schedule_creation_in_progress"), true, function () { - meetingSetup.conferenceInfoGui.core.cancelCreation() - }) + //: "Création de la réunion en cours …" + mainWindow.showLoadingPopup(qsTr("meeting_schedule_creation_in_progress"), true, function () { + meetingSetup.conferenceInfoGui.core.cancelCreation() + }) } } } @@ -405,7 +376,7 @@ AbstractMainPage { } } onAddParticipantsRequested: { - leftPanelStackView.push(addParticipants, {"conferenceInfoGui": conferenceInfoGui, "container": leftPanelStackView}) + leftPanelStackView.push(addParticipants, {"conferenceInfoGui": conferenceInfoGui, "container": leftPanelStackView, "overridenWidth": leftPanelStackView.width}) } Connections { target: mainItem @@ -426,24 +397,26 @@ AbstractMainPage { id: editFocusScope objectName: "editConf" property ConferenceInfoGui conferenceInfoGui - width: overridenRightPanelStackView.width + anchors.horizontalCenter: parent?.horizontalCenter + width: Utils.getSizeWithScreenRatio(393) ColumnLayout { id: editLayout - anchors.left: parent.left - anchors.right: parent.right anchors.top: parent.top + width: Utils.getSizeWithScreenRatio(393) height: childrenRect.height + anchors.horizontalCenter: parent?.horizontalCenter spacing: 0 Section { - Layout.fillWidth: true + Layout.alignment: Qt.AlignHCenter + Layout.fillWidth: true content: RowLayout { - spacing: Utils.getSizeWithScreenRatio(16) - Layout.preferredWidth: overridenRightPanelStackView.width + spacing: Utils.getSizeWithScreenRatio(16) + // Layout.preferredWidth: rightPanelStackView.width Button { id: backButton icon.source: AppIcons.leftArrow - icon.width: Utils.getSizeWithScreenRatio(24) - icon.height: Utils.getSizeWithScreenRatio(24) + icon.width: Utils.getSizeWithScreenRatio(24) + icon.height: Utils.getSizeWithScreenRatio(24) style: ButtonStyle.noBackground KeyNavigation.left: saveButton KeyNavigation.right: titleText @@ -451,16 +424,16 @@ AbstractMainPage { KeyNavigation.up: conferenceEdit onClicked: { conferenceEdit.conferenceInfoGui.core.undo() - overridenRightPanelStackView.pop() + rightPanelStackView.pop() } } RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage{ imageSource: AppIcons.usersThree colorizationColor: DefaultStyle.main2_600 - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) } TextInput { id: titleText @@ -468,8 +441,8 @@ AbstractMainPage { color: DefaultStyle.main2_600 clip: true font { - pixelSize: Utils.getSizeWithScreenRatio(20) - weight: Typography.h4.weight + pixelSize: Utils.getSizeWithScreenRatio(20) + weight: Typography.h4.weight } KeyNavigation.left: backButton KeyNavigation.right: saveButton @@ -485,19 +458,19 @@ AbstractMainPage { id: saveButton style: ButtonStyle.main focus: true - text: qsTr("save") + text: qsTr("save") KeyNavigation.left: titleText KeyNavigation.right: backButton KeyNavigation.down: conferenceEdit KeyNavigation.up: conferenceEdit onClicked: { - if (mainItem.selectedConference.core.subject.length === 0 || mainItem.selectedConference.core.participantCount === 0) { - UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), - qsTr("meeting_schedule_mandatory_field_not_filled_toast"), false) + if (mainItem.selectedConference.core.subject.length === 0 || mainItem.selectedConference.core.participantCount === 0) { + UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), + qsTr("meeting_schedule_mandatory_field_not_filled_toast"), false) } else if (mainItem.selectedConference.core.duration <= 0) { - UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), - qsTr("meeting_schedule_duration_error_toast"), false) - } else { + UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), + qsTr("meeting_schedule_duration_error_toast"), false) + } else { mainItem.selectedConference.core.save() } } @@ -508,18 +481,18 @@ AbstractMainPage { MeetingForm { id: conferenceEdit isCreation: false - conferenceInfoGui: editFocusScope.conferenceInfoGui Layout.fillWidth: true - Layout.preferredHeight: childrenRect.height - + Layout.fillHeight: true + conferenceInfoGui: editFocusScope.conferenceInfoGui + onAddParticipantsRequested: { - overridenRightPanelStackView.push(addParticipants, {"conferenceInfoGui": conferenceInfoGui, "container": overridenRightPanelStackView}) + rightPanelStackView.push(addParticipants, {"conferenceInfoGui": conferenceInfoGui, "container": rightPanelStackView, "overridenWidth": Utils.getSizeWithScreenRatio(393)}) } Connections { target: mainItem function onAddParticipantsValidated(selectedParticipants) { conferenceEdit.conferenceInfoGui.core.resetParticipants(selectedParticipants) - overridenRightPanelStackView.pop() + rightPanelStackView.pop() } } Connections { @@ -531,21 +504,21 @@ AbstractMainPage { function onSchedulerStateChanged() { editFocusScope.enabled = conferenceInfoGui.core.schedulerState != LinphoneEnums.ConferenceSchedulerState.AllocationPending if (conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.Ready) { - overridenRightPanelStackView.pop() + rightPanelStackView.pop() UtilsCpp.getMainWindow().closeLoadingPopup() - //: "Enregistré" - UtilsCpp.showInformationPopup(qsTr("saved"), - //: "Réunion mise à jour" - qsTr("meeting_info_updated_toast"), true) + //: "Enregistré" + UtilsCpp.showInformationPopup(qsTr("saved"), + //: "Réunion mise à jour" + qsTr("meeting_info_updated_toast"), true) } else if (conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.AllocationPending || conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.Updating) { - //: "Modification de la réunion en cours…" - UtilsCpp.getMainWindow().showLoadingPopup(qsTr("meeting_schedule_edit_in_progress")) + //: "Modification de la réunion en cours…" + UtilsCpp.getMainWindow().showLoadingPopup(qsTr("meeting_schedule_edit_in_progress")) } else if (conferenceEdit.conferenceInfoGui.core.schedulerState == LinphoneEnums.ConferenceSchedulerState.Error) { - UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), - //: "Échec de la modification de la réunion !" - qsTr("meeting_failed_to_edit_toast"), false) + UtilsCpp.showInformationPopup(qsTr("information_popup_error_title"), + //: "Échec de la modification de la réunion !" + qsTr("meeting_failed_to_edit_toast"), false) UtilsCpp.getMainWindow().closeLoadingPopup() } } @@ -559,20 +532,24 @@ AbstractMainPage { id: addParticipants FocusScope{ id: addParticipantInItem + property int overridenWidth property Control.StackView container property ConferenceInfoGui conferenceInfoGui + anchors.horizontalCenter: parent?.horizontalCenter ColumnLayout { id: addParticipantsLayout spacing: Utils.getSizeWithScreenRatio(18) + width: parent.overridenWidth ? parent.overridenWidth : parent.width + anchors.horizontalCenter: parent?.horizontalCenter anchors.rightMargin: Utils.getSizeWithScreenRatio(8) - anchors.left: parent.left - anchors.right: parent.right anchors.top: parent.top anchors.bottom: parent.bottom ColumnLayout { id: title - Layout.fillWidth: true - Layout.preferredHeight: childrenRect.height + Layout.fillHeight: true + Layout.fillWidth: false + Layout.preferredWidth: addParticipantsLayout.width + Layout.alignment: Qt.AlignHCenter spacing: Utils.getSizeWithScreenRatio(4) RowLayout { id: addParticipantsButtons @@ -584,7 +561,7 @@ AbstractMainPage { icon.width: Utils.getSizeWithScreenRatio(24) icon.height: Utils.getSizeWithScreenRatio(24) KeyNavigation.right: addButton - KeyNavigation.down: addParticipantLayout + KeyNavigation.down: addParticipantsForm onClicked: container.pop() } Text { @@ -600,20 +577,20 @@ AbstractMainPage { } SmallButton { id: addButton - enabled: addParticipantLayout.selectedParticipantsCount.length != 0 + enabled: addParticipantsForm.selectedParticipantsCount.length != 0 focus: enabled style: ButtonStyle.main text: qsTr("meeting_schedule_add_participants_apply") KeyNavigation.left: addParticipantsBackButton - KeyNavigation.down: addParticipantLayout + KeyNavigation.down: addParticipantsForm onClicked: { - mainItem.addParticipantsValidated(addParticipantLayout.selectedParticipants) + mainItem.addParticipantsValidated(addParticipantsForm.selectedParticipants) } } } Text { //: "%n participant(s) sélectionné(s)" - text: qsTr("group_call_participant_selected", '', addParticipantLayout.selectedParticipantsCount).arg(addParticipantLayout.selectedParticipantsCount) + text: qsTr("group_call_participant_selected", '', addParticipantsForm.selectedParticipantsCount).arg(addParticipantsForm.selectedParticipantsCount) color: DefaultStyle.main2_500_main Layout.leftMargin: addParticipantsBackButton.width + addParticipantsButtons.spacing maximumLineCount: 1 @@ -625,10 +602,9 @@ AbstractMainPage { } } AddParticipantsForm { - id: addParticipantLayout + id: addParticipantsForm Layout.fillWidth: true Layout.fillHeight: true - height: addParticipantInItem.height - title.height conferenceInfoGui: addParticipantInItem.conferenceInfoGui participantscSrollBarRightMargin: 0 } @@ -639,34 +615,37 @@ AbstractMainPage { Component { id: meetingDetail FocusScope{ - width: overridenRightPanelStackView.width - height: meetingDetailsLayout.childrenRect.height - ColumnLayout { + width: Utils.getSizeWithScreenRatio(393) + anchors.horizontalCenter: parent?.horizontalCenter + FlexboxLayout { id: meetingDetailsLayout - anchors.left: parent.left - anchors.right: parent.right - anchors.top: parent.top - // anchors.fill: parent visible: mainItem.selectedConference - spacing: Utils.getSizeWithScreenRatio(16) + anchors.top: parent.top + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + anchors.bottomMargin: Utils.getSizeWithScreenRatio(30) + width: Utils.getSizeWithScreenRatio(393) + direction: FlexboxLayout.Column + alignContent: FlexboxLayout.AlignSpaceBetween + gap: Utils.getSizeWithScreenRatio(16) Section { visible: mainItem.selectedConference Layout.fillWidth: true content: RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage { imageSource: AppIcons.usersThree colorizationColor: DefaultStyle.main2_600 - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) } Text { Layout.fillWidth: true text: mainItem.selectedConference && mainItem.selectedConference.core? mainItem.selectedConference.core.subject : "" maximumLineCount: 1 font { - pixelSize: Utils.getSizeWithScreenRatio(20) - weight: Typography.h4.weight + pixelSize: Utils.getSizeWithScreenRatio(20) + weight: Typography.h4.weight } } Item { @@ -687,22 +666,22 @@ AbstractMainPage { } PopupButton { id: deletePopup - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) contentImageColor: DefaultStyle.main1_500_main KeyNavigation.left: editButton.visible ? editButton : leftPanelStackView.currentItem KeyNavigation.right: leftPanelStackView.currentItem KeyNavigation.up: joinButton KeyNavigation.down: shareNetworkButton - + popup.contentItem: IconLabelButton { style: ButtonStyle.hoveredBackgroundRed property var isMeObj: UtilsCpp.isMe(mainItem.selectedConference?.core?.organizerAddress) property bool canCancel: isMeObj && isMeObj.value && mainItem.selectedConference?.core?.state !== LinphoneEnums.ConferenceInfoState.Cancelled icon.source: AppIcons.trashCan - //: "Supprimer la réunion" - text: qsTr("meeting_info_delete") - + //: "Supprimer la réunion" + text: qsTr("meeting_info_delete") + onClicked: { if (mainItem.selectedConference) { cancelAndDeleteConfDialog.confInfoToDelete = mainItem.selectedConference @@ -716,15 +695,16 @@ AbstractMainPage { } } Section { + Layout.fillWidth: true content: ColumnLayout { - spacing: Utils.getSizeWithScreenRatio(15) + spacing: Utils.getSizeWithScreenRatio(15) width: parent.width RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) Layout.fillWidth: true EffectImage { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) colorizationColor: DefaultStyle.main2_600 imageSource: AppIcons.videoCamera } @@ -761,47 +741,47 @@ AbstractMainPage { KeyNavigation.down: joinButton onClicked: { var success = UtilsCpp.copyToClipboard(mainItem.selectedConference.core.uri) - if (success) UtilsCpp.showInformationPopup(qsTr("saved"), - //: "Adresse de la réunion copiée" - qsTr("meeting_address_copied_to_clipboard_toast")) + if (success) UtilsCpp.showInformationPopup(qsTr("saved"), + //: "Adresse de la réunion copiée" + qsTr("meeting_address_copied_to_clipboard_toast")) } } } RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) imageSource: AppIcons.clock colorizationColor: DefaultStyle.main2_600 } Text { text: mainItem.selectedConference && mainItem.selectedConference.core - ? UtilsCpp.toDateString(mainItem.selectedConference.core.dateTime) - + " | " + UtilsCpp.toDateHourString(mainItem.selectedConference.core.dateTime) - + " - " + ? UtilsCpp.toDateString(mainItem.selectedConference.core.dateTime) + + " | " + UtilsCpp.toDateHourString(mainItem.selectedConference.core.dateTime) + + " - " + UtilsCpp.toDateHourString(mainItem.selectedConference.core.endDateTime) : '' font { - pixelSize: Utils.getSizeWithScreenRatio(14) + pixelSize: Utils.getSizeWithScreenRatio(14) capitalization: Font.Capitalize } } } RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) imageSource: AppIcons.globe colorizationColor: DefaultStyle.main2_600 } Text { Layout.fillWidth: true - //: "Fuseau horaire" - text: "%1: %2".arg(qsTr("meeting_schedule_timezone_title")).arg(mainItem.selectedConference && mainItem.selectedConference.core ? (mainItem.selectedConference.core.timeZoneModel.displayName + ", " + mainItem.selectedConference.core.timeZoneModel.countryName) : "") + //: "Fuseau horaire" + text: "%1: %2".arg(qsTr("meeting_schedule_timezone_title")).arg(mainItem.selectedConference && mainItem.selectedConference.core ? (mainItem.selectedConference.core.timeZoneModel.displayName + ", " + mainItem.selectedConference.core.timeZoneModel.countryName) : "") font { - pixelSize: Utils.getSizeWithScreenRatio(14) + pixelSize: Utils.getSizeWithScreenRatio(14) capitalization: Font.Capitalize } } @@ -809,12 +789,13 @@ AbstractMainPage { } } Section { + Layout.fillWidth: true visible: mainItem.selectedConference && mainItem.selectedConference.core?.description.length != 0 content: RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) imageSource: AppIcons.note colorizationColor: DefaultStyle.main2_600 } @@ -822,30 +803,31 @@ AbstractMainPage { text: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.description : "" Layout.fillWidth: true font { - pixelSize: Utils.getSizeWithScreenRatio(14) + pixelSize: Utils.getSizeWithScreenRatio(14) } } } } Section { + Layout.fillWidth: true content: RowLayout { - spacing: Utils.getSizeWithScreenRatio(8) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) imageSource: AppIcons.userRectangle colorizationColor: DefaultStyle.main2_600 } Avatar { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(45) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(45) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(45) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(45) _address: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.organizerAddress : "" secured: friendSecurityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified } Text { text: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.organizerName : "" font { - pixelSize: Utils.getSizeWithScreenRatio(14) + pixelSize: Utils.getSizeWithScreenRatio(14) capitalization: Font.Capitalize } } @@ -853,22 +835,25 @@ AbstractMainPage { } Section { visible: participantList.count > 0 + Layout.fillWidth: true + Layout.fillHeight: true + Layout.maximumHeight: participantList.contentHeight + Utils.getSizeWithScreenRatio(1) + spacing content: RowLayout { - Layout.preferredHeight: participantList.contentHeight - width: Utils.getSizeWithScreenRatio(393) - spacing: Utils.getSizeWithScreenRatio(8) + width: Utils.getSizeWithScreenRatio(393) + spacing: Utils.getSizeWithScreenRatio(8) EffectImage { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(24) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(24) Layout.alignment: Qt.AlignLeft | Qt.AlignTop - Layout.topMargin: Utils.getSizeWithScreenRatio(20) + Layout.topMargin: Utils.getSizeWithScreenRatio(20) imageSource: AppIcons.usersTwo colorizationColor: DefaultStyle.main2_600 } ListView { id: participantList - Layout.preferredHeight: contentHeight + // Layout.preferredHeight: contentHeight Layout.fillWidth: true + Layout.fillHeight: true model: mainItem.selectedConference && mainItem.selectedConference.core ? mainItem.selectedConference.core.participants : [] clip: true Control.ScrollBar.vertical: ScrollBar { @@ -879,11 +864,11 @@ AbstractMainPage { visible: participantList.height < participantList.contentHeight } delegate: RowLayout { - height: Utils.getSizeWithScreenRatio(56) + height: Utils.getSizeWithScreenRatio(56) width: participantList.width - participantScrollBar.width - Utils.getSizeWithScreenRatio(5) Avatar { - Layout.preferredWidth: Utils.getSizeWithScreenRatio(45) - Layout.preferredHeight: Utils.getSizeWithScreenRatio(45) + Layout.preferredWidth: Utils.getSizeWithScreenRatio(45) + Layout.preferredHeight: Utils.getSizeWithScreenRatio(45) _address: modelData.address secured: friendSecurityLevel === LinphoneEnums.SecurityLevel.EndToEndEncryptedAndVerified shadowEnabled: false @@ -894,18 +879,18 @@ AbstractMainPage { maximumLineCount: 1 Layout.fillWidth: true font { - pixelSize: Utils.getSizeWithScreenRatio(14) + pixelSize: Utils.getSizeWithScreenRatio(14) capitalization: Font.Capitalize } } Text { - //: "Organisateur" - text: qsTr("meeting_info_organizer_label") + //: "Organisateur" + text: qsTr("meeting_info_organizer_label") visible: mainItem.selectedConference && mainItem.selectedConference.core?.organizerAddress === modelData.address color: DefaultStyle.main2_400 font { - pixelSize: Utils.getSizeWithScreenRatio(12) - weight: Utils.getSizeWithScreenRatio(300) + pixelSize: Utils.getSizeWithScreenRatio(12) + weight: Utils.getSizeWithScreenRatio(300) } } } @@ -916,10 +901,8 @@ AbstractMainPage { id: joinButton visible: mainItem.selectedConference && mainItem.selectedConference.core?.state !== LinphoneEnums.ConferenceInfoState.Cancelled Layout.fillWidth: true - Layout.preferredHeight: implicitHeight - Layout.bottomMargin: Utils.getSizeWithScreenRatio(5) - //: "Rejoindre la réunion" - text: qsTr("meeting_info_join_title") + //: "Rejoindre la réunion" + text: qsTr("meeting_info_join_title") focus: true KeyNavigation.up: shareNetworkButton KeyNavigation.down: deletePopup @@ -927,7 +910,7 @@ AbstractMainPage { KeyNavigation.right: leftPanelStackView.currentItem onClicked: { console.log(mainItem.selectedConference.core.uri) - var callsWindow = UtilsCpp.getCallsWindow() + var callsWindow = UtilsCpp.getOrCreateCallsWindow() callsWindow.setupConference(mainItem.selectedConference) UtilsCpp.smartShowWindow(callsWindow) } @@ -935,4 +918,5 @@ AbstractMainPage { } } } + } diff --git a/Linphone/view/Page/Window/AbstractWindow.qml b/Linphone/view/Page/Window/AbstractWindow.qml index 5f24c8126..2b21920fe 100644 --- a/Linphone/view/Page/Window/AbstractWindow.qml +++ b/Linphone/view/Page/Window/AbstractWindow.qml @@ -16,7 +16,10 @@ ApplicationWindow { width: Math.min(Utils.getSizeWithScreenRatio(1512), Screen.desktopAvailableWidth) height: Math.min(Utils.getSizeWithScreenRatio(982), Screen.desktopAvailableHeight) - onActiveChanged: UtilsCpp.setLastActiveWindow(this) + onActiveChanged: { + if (active) UtilsCpp.setLastActiveWindow(this) + } + Component.onDestruction: if (UtilsCpp.getLastActiveWindow() === this) UtilsCpp.setLastActiveWindow(null) property bool isFullscreen: visibility == Window.FullScreen onIsFullscreenChanged: DesktopToolsCpp.screenSaverStatus = !isFullscreen diff --git a/Linphone/view/Page/Window/Call/CallsWindow.qml b/Linphone/view/Page/Window/Call/CallsWindow.qml index 51a242b8b..e17661707 100644 --- a/Linphone/view/Page/Window/Call/CallsWindow.qml +++ b/Linphone/view/Page/Window/Call/CallsWindow.qml @@ -22,8 +22,12 @@ AbstractWindow { property ConferenceGui conference: call && call.core.conference || null property bool isConference: call ? call.core.isConference : false + // Chat related to call + property var chatObj + property ChatGui chat: chatObj ? chatObj.value : null + property int conferenceLayout: call && call.core.conferenceVideoLayout || 0 - property bool localVideoEnabled: call && call.core.localVideoEnabled + property bool cameraEnabled: call && call.core.cameraEnabled property bool remoteVideoEnabled: call && call.core.remoteVideoEnabled property bool callTerminatedByUser: false @@ -38,7 +42,7 @@ AbstractWindow { == LinphoneEnums.CallState.OutgoingEarlyMedia || mainWindow.callState == LinphoneEnums.CallState.IncomingReceived property Item firstButtonInBottomTab : mainWindow.startingCall ? endCallButton : (videoCameraButton.visible && videoCameraButton.enabled ? videoCameraButton : audioMicrophoneButton) - property Item lastButtonInBottomTab : mainWindow.startingCall ? Utils.getLastFocussableItemInItem(controlCallButtons) : endCallButton + property Item lastButtonInBottomTab : mainWindow.startingCall ? Utils.getLastFocusableItemInItem(controlCallButtons) : endCallButton onCallStateChanged: { if (callState === LinphoneEnums.CallState.Connected) { @@ -61,7 +65,7 @@ AbstractWindow { onTransferStateChanged: { console.log("Transfer state:", transferState) if (mainWindow.transferState === LinphoneEnums.CallState.OutgoingInit) { - var callsWin = UtilsCpp.getCallsWindow() + var callsWin = UtilsCpp.getOrCreateCallsWindow() if (!callsWin) return //: "Transfert en cours, veuillez patienter" @@ -70,7 +74,7 @@ AbstractWindow { || mainWindow.transferState === LinphoneEnums.CallState.End || mainWindow.transferState === LinphoneEnums.CallState.Released || mainWindow.transferState === LinphoneEnums.CallState.Connected) { - var callsWin = UtilsCpp.getCallsWindow() + var callsWin = UtilsCpp.getOrCreateCallsWindow() callsWin.closeLoadingPopup() if (transferState === LinphoneEnums.CallState.Error) UtilsCpp.showInformationPopup( @@ -738,9 +742,9 @@ AbstractWindow { if (!rightPanel.contentLoader.item || rightPanel.contentLoader.item.objectName !== "participantListPanel") participantListButton.checked = false // Update tab focus properties - var firstContentFocusableItem = Utils.getFirstFocussableItemInItem(rightPanel.contentLoader.item) + var firstContentFocusableItem = Utils.getFirstFocusableItemInItem(rightPanel.contentLoader.item) rightPanel.firstContentFocusableItem = firstContentFocusableItem ?? mainWindow.firstButtonInBottomTab - var lastContentFocusableItem = Utils.getLastFocussableItemInItem(rightPanel.contentLoader.item) + var lastContentFocusableItem = Utils.getLastFocusableItemInItem(rightPanel.contentLoader.item) if(lastContentFocusableItem != undefined){ lastContentFocusableItem.KeyNavigation.tab = mainWindow.firstButtonInBottomTab } @@ -782,29 +786,29 @@ AbstractWindow { searchBarBorderColor: DefaultStyle.grey_200 searchBarRightMaring: 0 onContactClicked: contact => { - var callsWin = UtilsCpp.getCallsWindow() - if (contact) - //: "Confirmer le transfert" - callsWin.showConfirmationLambdaPopup(qsTr("call_transfer_confirm_dialog_tittle"), - //: "Vous allez transférer %1 à %2." - qsTr("call_transfer_confirm_dialog_message").arg(mainWindow.call.core.remoteName).arg(contact.core.fullName), "", - function (confirmed) { - if (confirmed) { - mainWindow.transferCallToContact(mainWindow.call,contact,newCallForm) - } - }) - } + var callsWin = UtilsCpp.getOrCreateCallsWindow() + if (contact) + //: "Confirmer le transfert" + callsWin.showConfirmationLambdaPopup(qsTr("call_transfer_confirm_dialog_tittle"), + //: "Vous allez transférer %1 à %2." + qsTr("call_transfer_confirm_dialog_message").arg(mainWindow.call.core.remoteName).arg(contact.core.fullName), "", + function (confirmed) { + if (confirmed) { + mainWindow.transferCallToContact(mainWindow.call,contact,newCallForm) + } + }) + } onTransferCallToAnotherRequested: dest => { - var callsWin = UtilsCpp.getCallsWindow() - console.log("transfer to",dest) - callsWin.showConfirmationLambdaPopup(qsTr("call_transfer_confirm_dialog_tittle"), - qsTr("call_transfer_confirm_dialog_message").arg(mainWindow.call.core.remoteName).arg(dest.core.remoteName),"", - function (confirmed) { - if (confirmed) { - mainWindow.call.core.lTransferCallToAnother(dest.core.remoteAddress) - } - }) - } + var callsWin = UtilsCpp.getOrCreateCallsWindow() + console.log("transfer to",dest) + callsWin.showConfirmationLambdaPopup(qsTr("call_transfer_confirm_dialog_tittle"), + qsTr("call_transfer_confirm_dialog_message").arg(mainWindow.call.core.remoteName).arg(dest.core.remoteName),"", + function (confirmed) { + if (confirmed) { + mainWindow.call.core.lTransferCallToAnother(dest.core.remoteAddress) + } + }) + } numPadPopup: numPadPopup NumericPadPopup { @@ -989,6 +993,7 @@ AbstractWindow { Control.Control { objectName: "chatPanel" width: parent.width + Component.onCompleted: chatView.forceActiveFocus() SelectedChatView { id: chatView width: parent.width @@ -998,8 +1003,7 @@ AbstractWindow { event.accepted = true } call: mainWindow.call - property var chatObj: UtilsCpp.getCurrentCallChat(mainWindow.call) - chat: chatObj ? chatObj.value : null + chat: mainWindow.chat } Connections { target: rightPanel.contentLoader @@ -1039,7 +1043,11 @@ AbstractWindow { anchors.topMargin: Utils.getSizeWithScreenRatio(16) width: parent.width call: mainWindow.call - onIsLocalScreenSharingChanged: if (isLocalScreenSharing) rightPanel.visible = false + onIsLocalScreenSharingChanged: { + // Check if component is ready as well so we can reopen the panel after starting sharing screen + // and change shared window or screen if needed + if (isLocalScreenSharing && status === Component.Ready) rightPanel.visible = false + } } } } @@ -1215,11 +1223,11 @@ AbstractWindow { } } onJoinConfRequested: uri => { - mainWindow.joinConference(uri, { - "microEnabled": microEnabled, - "localVideoEnabled": localVideoEnabled - }) - } + mainWindow.joinConference(uri, { + "microEnabled": microEnabled, + "localVideoEnabled": localVideoEnabled + }) + } onCancelJoiningRequested: mainWindow.cancelJoinConference() onCancelAfterJoinRequested: mainWindow.cancelAfterJoin() } @@ -1298,7 +1306,7 @@ AbstractWindow { style: ButtonStyle.phoneRedLightBorder Layout.column: mainWindow.startingCall ? 0 : bottomButtonsLayout.columns - 1 KeyNavigation.tab: mainWindow.startingCall ? (videoCameraButton.visible && videoCameraButton.enabled ? videoCameraButton : audioMicrophoneButton) : openStatisticPanelButton - KeyNavigation.backtab: mainWindow.startingCall ? rightPanel.visible ? Utils.getLastFocussableItemInItem(rightPanel) : nextItemInFocusChain(false): callListButton + KeyNavigation.backtab: mainWindow.startingCall ? rightPanel.visible ? Utils.getLastFocusableItemInItem(rightPanel) : nextItemInFocusChain(false): callListButton onClicked: { mainWindow.callTerminatedByUser = true mainWindow.endCall(mainWindow.call) @@ -1439,15 +1447,14 @@ AbstractWindow { checkedIconUrl: AppIcons.videoCameraSlash //: "Désactiver la vidéo" //: "Activer la vidéo" - ToolTip.text: mainWindow.localVideoEnabled ? qsTr("call_deactivate_video_hint") : qsTr("call_activate_video_hint") - Accessible.name: mainWindow.localVideoEnabled ? qsTr("call_deactivate_video_hint") : qsTr("call_activate_video_hint") - checked: !mainWindow.localVideoEnabled + ToolTip.text: mainWindow.cameraEnabled ? qsTr("call_deactivate_video_hint") : qsTr("call_activate_video_hint") + Accessible.name: mainWindow.cameraEnabled ? qsTr("call_deactivate_video_hint") : qsTr("call_activate_video_hint") + checked: !mainWindow.cameraEnabled Layout.preferredWidth: Utils.getSizeWithScreenRatio(55) Layout.preferredHeight: Utils.getSizeWithScreenRatio(55) icon.width: Utils.getSizeWithScreenRatio(32) icon.height: Utils.getSizeWithScreenRatio(32) - onClicked: mainWindow.call.core.lSetLocalVideoEnabled( - !mainWindow.call.core.localVideoEnabled) + onClicked: mainWindow.call.core.lSetCameraEnabled(!mainWindow.call.core.cameraEnabled) } // Audio microphone button @@ -1491,11 +1498,13 @@ AbstractWindow { rightPanel.visible = false } } + } // Chat panel button CheckableButton { id: chatPanelButton + visible: !mainWindow.conference || mainWindow.conference.core.isChatEnabled iconUrl: AppIcons.chatTeardropText //: Open chat… ToolTip.text: qsTr("call_open_chat_hint") @@ -1504,9 +1513,15 @@ AbstractWindow { Layout.preferredHeight: Utils.getSizeWithScreenRatio(55) icon.width: Utils.getSizeWithScreenRatio(32) icon.height: Utils.getSizeWithScreenRatio(32) + UnreadNotification { + anchors.top: parent.top + anchors.right: parent.right + unread: mainWindow.chat ? mainWindow.chat.core.unreadMessagesCount : 0 + } onToggled: { if (checked) { rightPanel.visible = true + mainWindow.chatObj = UtilsCpp.getCurrentCallChat(mainWindow.call) rightPanel.replace(chatPanel) } else { rightPanel.visible = false @@ -1734,4 +1749,4 @@ AbstractWindow { } } } -} \ No newline at end of file +} diff --git a/Linphone/view/Style/AppIcons.qml b/Linphone/view/Style/AppIcons.qml index 42d66e6fe..0697a8d36 100644 --- a/Linphone/view/Style/AppIcons.qml +++ b/Linphone/view/Style/AppIcons.qml @@ -159,4 +159,5 @@ QtObject { property string photo: "image://internal/photo.svg" property string ephemeralSettings: "image://internal/ephemeral-settings.svg" property string hourglass: "image://internal/hourglass-simple.svg" + property string qtLogo: "image://internal/qt-logo.png" } diff --git a/Linphone/view/Style/DefaultStyle.qml b/Linphone/view/Style/DefaultStyle.qml index 3e8ee06d9..c514f19e7 100644 --- a/Linphone/view/Style/DefaultStyle.qml +++ b/Linphone/view/Style/DefaultStyle.qml @@ -8,51 +8,51 @@ QtObject { property var currentTheme: Themes.themes.hasOwnProperty(SettingsCpp.themeMainColor) ? Themes.themes[SettingsCpp.themeMainColor] : Themes.themes["orange"] - property color main1_100: currentTheme.main100 - property color main1_200: currentTheme.main200 - property color main1_300: currentTheme.main300 - property color main1_500_main: currentTheme.main500 - property color main1_600: currentTheme.main600 - property color main1_700: currentTheme.main700 + property var main1_100: currentTheme.main100 + property var main1_200: currentTheme.main200 + property var main1_300: currentTheme.main300 + property var main1_500_main: currentTheme.main500 + property var main1_600: currentTheme.main600 + property var main1_700: currentTheme.main700 - property color main2_0: "#FAFEFF" - property color main2_100: "#EEF6F8" - property color main2_200: "#DFECF2" - property color main2_300: "#C0D1D9" - property color main2_400: "#9AABB5" - property color main2_500_main: "#6C7A87" - property color main2_600: "#4E6074" - property color main2_700: "#364860" - property color main2_800: "#22334D" - property color main2_900: "#2D3648" + property var main2_0: "#FAFEFF" + property var main2_100: "#EEF6F8" + property var main2_200: "#DFECF2" + property var main2_300: "#C0D1D9" + property var main2_400: "#9AABB5" + property var main2_500_main: "#6C7A87" + property var main2_600: "#4E6074" + property var main2_700: "#364860" + property var main2_800: "#22334D" + property var main2_900: "#2D3648" - property color grey_0: "#FFFFFF" - property color grey_100: "#F9F9F9" - property color grey_200: "#EDEDED" - property color grey_300: "#C9C9C9" - property color grey_400: "#949494" - property color grey_500: "#4E4E4E" - property color grey_600: "#2E3030" - property color grey_850: "#D9D9D9" - property color grey_900: "#070707" - property color grey_1000: "#000000" + property var grey_0: "#FFFFFF" + property var grey_100: "#F9F9F9" + property var grey_200: "#EDEDED" + property var grey_300: "#C9C9C9" + property var grey_400: "#949494" + property var grey_500: "#4E4E4E" + property var grey_600: "#2E3030" + property var grey_850: "#D9D9D9" + property var grey_900: "#070707" + property var grey_1000: "#000000" - property color warning_600: "#DBB820" - property color warning_700: "#AF9308" - property color danger_500_main: "#DD5F5F" - property color warning_500_main: "#FFDC2E" - property color danger_700: "#9E3548" - property color danger_900: "#723333" - property color success_500_main: "#4FAE80" - property color success_700: "#377d71" - property color success_900: "#1E4C53" - property color info_500_main: "#4AA8FF" + property var warning_600: "#DBB820" + property var warning_700: "#AF9308" + property var danger_500_main: "#DD5F5F" + property var warning_500_main: "#FFDC2E" + property var danger_700: "#9E3548" + property var danger_900: "#723333" + property var success_500_main: "#4FAE80" + property var success_700: "#377d71" + property var success_900: "#1E4C53" + property var info_500_main: "#4AA8FF" - property color vue_meter_light_green: "#6FF88D" - property color vue_meter_dark_green: "#00D916" + property var vue_meter_light_green: "#6FF88D" + property var vue_meter_dark_green: "#00D916" - property real defaultHeight: 1080.0 - property real defaultWidth: 1920.0 + property real defaultHeight: 1007.0 + property real defaultWidth: 1512.0 property real maxDp: 0.98 property real dp: Math.min((Screen.width/Screen.height)/(defaultWidth/defaultHeight), maxDp) @@ -66,10 +66,10 @@ QtObject { property string flagFont: "Noto Color Emoji" property string defaultFont: "Noto Sans" - property color numericPadPressedButtonColor: "#EEF7F8" + property var numericPadPressedButtonColor: "#EEF7F8" - property color groupCallButtonColor: "#EEF7F8" + property var groupCallButtonColor: "#EEF7F8" - property color placeholders: '#CACACA' // No name in design + property var placeholders: '#CACACA' // No name in design } diff --git a/Linphone/view/Style/Typography.qml b/Linphone/view/Style/Typography.qml index c132cba6d..0e0a8bf5f 100644 --- a/Linphone/view/Style/Typography.qml +++ b/Linphone/view/Style/Typography.qml @@ -8,132 +8,132 @@ QtObject { property font h4: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(16), - weight: Math.min(Utils.getSizeWithScreenRatio(800), 1000) + weight: Font.ExtraBold }) // Title/H3M - Bloc title property font h3m: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(16), - weight: Math.min(Utils.getSizeWithScreenRatio(700), 1000) + weight: Font.Bold }) // Title/H3 - Bloc title property font h3: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(22), - weight: Math.min(Utils.getSizeWithScreenRatio(800), 1000) + weight: Font.ExtraBold }) // Title/H2M - Large bloc title property font h2m: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(20), - weight: Math.min(Utils.getSizeWithScreenRatio(800), 1000) + weight: Font.ExtraBold }) // Title/H2 - Large bloc title property font h2: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(29), - weight: Math.min(Utils.getSizeWithScreenRatio(800), 1000) + weight: Font.ExtraBold }) // Title/H1 - Large bloc title property font h1: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(36), - weight: Math.min(Utils.getSizeWithScreenRatio(800), 1000) + weight: Font.ExtraBold }) // Text/P4 - Xsmall paragraph text property font p4: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(10), - weight: Math.min(Utils.getSizeWithScreenRatio(300), 1000) + weight: Font.Light }) // Text/P3 - Reduced paragraph text property font p3: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(12), - weight: Math.min(Utils.getSizeWithScreenRatio(300), 1000) + weight: Font.Light }) // Text/P2 - Bold, reduced paragraph text property font p2: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(13), - weight: Math.min(Utils.getSizeWithScreenRatio(700), 1000) + weight: Font.Bold }) // Text/P2l - Large Bold, reduced paragraph text property font p2l: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(14), - weight: Math.min(Utils.getSizeWithScreenRatio(700), 1000) + weight: Font.Bold }) // Text/P1 - Paragraph text property font p1: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(14), - weight: Math.min(Utils.getSizeWithScreenRatio(400), 1000) + weight: Font.Normal }) // Text/P1s - Paragraph text property font p1s: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(13), - weight: Math.min(Utils.getSizeWithScreenRatio(400), 1000) + weight: Font.Normal }) // Text/P1 - Paragraph text property font p1b: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(15), - weight: Math.min(Utils.getSizeWithScreenRatio(400), 1000) + weight: Font.Normal }) // Button/B1 - Big Button property font b1: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(18), - weight: Math.min(Utils.getSizeWithScreenRatio(600), 1000) + weight: Font.DemiBold }) // Button/B2 - Medium Button property font b2: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(15), - weight: Math.min(Utils.getSizeWithScreenRatio(600), 1000) + weight: Font.DemiBold }) // Button/B3 - Small Button property font b3: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(13), - weight: Math.min(Utils.getSizeWithScreenRatio(600), 1000) + weight: Font.DemiBold }) // FileView/F1 - File View name text property font f1: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(11), - weight: Math.min(Utils.getSizeWithScreenRatio(700), 1000) + weight: Font.Bold }) // FileView/F1light - File View size text property font f1l: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(10), - weight: Math.min(Utils.getSizeWithScreenRatio(500), 1000) + weight: Font.Medium }) // FileView/F1light - Duration text property font d1: Qt.font( { family: DefaultStyle.defaultFont, pixelSize: Utils.getSizeWithScreenRatio(8), - weight: Math.min(Utils.getSizeWithScreenRatio(600), 1000) + weight: Font.DemiBold }) } diff --git a/README.md b/README.md index cc00b02ea..9e6de4739 100644 --- a/README.md +++ b/README.md @@ -28,10 +28,12 @@ Linphone is dual licensed, and is available either : As linphone-desktop depends on [Linphone SDK](https://gitlab.linphone.org/BC/public/linphone-sdk), you need to install to Build dependencies common to all target platforms of this project: [The Linphone SDK depdencies](https://gitlab.linphone.org/BC/public/linphone-sdk#common-to-all-target-platforms) -For Desktop : you will need QT6 (_6.5.3 or newer_). `C++17` support is required!. You have two way to install it : +For Desktop : you will need QT6 (_6.10.0 or newer_). `C++17` support is required!. You have two way to install it : - Using the [official QT installer](https://www.qt.io/download-thank-you) - Using an alternative installer like [aqtinstall](https://github.com/miurahr/aqtinstall) +The following QT optional modules are required: qtmultimedia qtnetworkauth qtshadertools . + ### Set your environment 1. Make sure you have all your build dependencies installed @@ -39,8 +41,8 @@ For Desktop : you will need QT6 (_6.5.3 or newer_). `C++17` support is required! 2. You have to set the environment variable `Qt6_DIR` to point to the path containing the cmake folders of Qt6, and the `PATH` to the Qt6 `bin`. Example: ```bash -export Qt6_DIR="~/Qt/6.5.3/gcc_64/lib/cmake/Qt6" -export PATH="~/Qt/6.5.3/gcc_64/bin/:$PATH" +export Qt6_DIR="~/Qt/6.10.0/gcc_64/lib/cmake/Qt6" +export PATH="~/Qt/6.10.0/gcc_64/bin/:$PATH" ``` @@ -371,4 +373,4 @@ On some OS (like Fedora 22 and later), they disable Qt debug output by default. [Rules] *.debug=true qt.*.debug=false -``` \ No newline at end of file +``` diff --git a/cmake/install/install.cmake b/cmake/install/install.cmake index 7c4a6416c..8d855e876 100644 --- a/cmake/install/install.cmake +++ b/cmake/install/install.cmake @@ -34,7 +34,7 @@ if (GIT_EXECUTABLE AND NOT(LINPHONEAPP_VERSION)) endif() if (NOT(LINPHONEAPP_VERSION)) - set(LINPHONEAPP_VERSION "0.0.0") + set(LINPHONEAPP_VERSION "6.1.0") endif () set(LINPHONE_MAJOR_VERSION) diff --git a/docker-files/bc-dev-ubuntu-22-04-lts b/docker-files/bc-dev-ubuntu-22-04-lts index 64e138b51..88b2d6ec8 100644 --- a/docker-files/bc-dev-ubuntu-22-04-lts +++ b/docker-files/bc-dev-ubuntu-22-04-lts @@ -1,16 +1,9 @@ ############################################################################### -# Dockerfile used to make gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-ubuntu-20-04-lts:20231024_add_multimedia +# Dockerfile used to make gitlab.linphone.org:4567/bc/public/linphone-desktop/bc-dev-ubuntu-22-04-lts:20251106_add_commercial_qt_version_5.15.14_5.15.19_6.8.1_6.8.3_6.9.1_6.10.0 ############################################################################### FROM ubuntu:22.04 -# Qt on Ubuntu 22.04 is too old. Use a downloader. -ARG QT_VERSION=5.15.2 -ARG QT6_VERSION=6.9.1 - -#Do not use it. It seems that it cannot be used from python command. -#ARG QT_MODULES=qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools - LABEL Gaelle Braud # Use a Swiss mirror @@ -88,15 +81,18 @@ RUN sudo apt install --upgrade -y python3-setuptools # installation is split because there is a way where some modules are not downloaded in the first attempt. RUN sudo apt install -y python3-py7zr RUN sudo pip3 install --upgrade aqtinstall -RUN sudo python3 -m aqt install-qt linux desktop $QT_VERSION -O /opt/Qt/opensource -RUN sudo python3 -m aqt install-qt linux desktop $QT_VERSION -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d -RUN sudo python3 -m aqt install-qt linux desktop $QT6_VERSION -O /opt/Qt/opensource -RUN sudo python3 -m aqt install-qt linux desktop $QT6_VERSION -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools +RUN sudo python3 -m aqt install-qt linux desktop 5.15.2 -O /opt/Qt/opensource +RUN sudo python3 -m aqt install-qt linux desktop 5.15.2 -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d +RUN sudo python3 -m aqt install-qt linux desktop 6.9.1 -O /opt/Qt/opensource +RUN sudo python3 -m aqt install-qt linux desktop 6.9.1 -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools +RUN sudo python3 -m aqt install-qt linux desktop 6.10.0 -O /opt/Qt/opensource +RUN sudo python3 -m aqt install-qt linux desktop 6.10.0 -O /opt/Qt/opensource --noarchives -m qtnetworkauth qtquick3d qtmultimedia qt5compat qtshadertools RUN sudo chown -R bc:bc /opt/Qt/ -RUN qtchooser -install "$QT_VERSION-opensource" /opt/Qt/opensource/$QT_VERSION/gcc_64/bin/qmake -RUN qtchooser -install "$QT6_VERSION-opensource" /opt/Qt/opensource/$QT6_VERSION/gcc_64/bin/qmake +RUN qtchooser -install "5.15.2-opensource" /opt/Qt/opensource/5.15.2/gcc_64/bin/qmake +RUN qtchooser -install "6.9.1-opensource" /opt/Qt/opensource/6.9.1/gcc_64/bin/qmake +RUN qtchooser -install "6.10.0-opensource" /opt/Qt/opensource/6.10.0/gcc_64/bin/qmake # Download QT official installer for proprietary versions # -O : name the destination file after the remote file name, in the current directory @@ -158,10 +154,23 @@ RUN /opt/Qt/proprietary/MaintenanceTool \ --auto-answer OperationDoesNotExistError=Ignore,OverwriteTargetDirectory=Yes,stopProcessesForUpdates=Ignore,installationErrorWithCancel=Ignore,InstallationErrorWithIgnore=Ignore,AssociateCommonFiletypes=Yes,telemetry-question=No \ install qt.qt6.691.linux_gcc_64 qt.qt6.691.addons.qtnetworkauth qt.qt6.691.addons.qtquick3d qt.qt6.691.addons.qtmultimedia qt.qt6.691.addons.qt5compat qt.qt6.691.addons.qtshadertools +# # Install Qt 6.10.0 proprietary +RUN /opt/Qt/proprietary/MaintenanceTool \ + --accept-licenses \ + --accept-obligations \ + --confirm-command \ + --root "/opt/Qt/proprietary" \ + --auto-answer OperationDoesNotExistError=Ignore,OverwriteTargetDirectory=Yes,stopProcessesForUpdates=Ignore,installationErrorWithCancel=Ignore,InstallationErrorWithIgnore=Ignore,AssociateCommonFiletypes=Yes,telemetry-question=No \ + install qt.qt6.6100.linux_gcc_64 qt.qt6.6100.addons.qtnetworkauth qt.qt6.6100.addons.qtquick3d qt.qt6.6100.addons.qtmultimedia qt.qt6.6100.addons.qt5compat qt.qt6.6100.addons.qtshadertools + RUN qtchooser -install 5.15.19-proprietary /opt/Qt/proprietary/5.15.19/gcc_64/bin/qmake RUN qtchooser -install 5.15.14-proprietary /opt/Qt/proprietary/5.15.14/gcc_64/bin/qmake RUN qtchooser -install 6.8.1-proprietary /opt/Qt/proprietary/6.8.1/gcc_64/bin/qmake RUN qtchooser -install 6.8.3-proprietary /opt/Qt/proprietary/6.8.3/gcc_64/bin/qmake RUN qtchooser -install 6.9.1-proprietary /opt/Qt/proprietary/6.9.1/gcc_64/bin/qmake +RUN qtchooser -install 6.10.0-proprietary /opt/Qt/proprietary/6.10.0/gcc_64/bin/qmake + +RUN rm -f /home/bc/.local/share/Qt/qtaccount.ini +RUN rm -f /home/bc/.local/share/Qt/qtlicenses.ini cmd bash \ No newline at end of file diff --git a/external/linphone-sdk b/external/linphone-sdk index 7fd44ea3c..3ac59232c 160000 --- a/external/linphone-sdk +++ b/external/linphone-sdk @@ -1 +1 @@ -Subproject commit 7fd44ea3c8923de57801cd0e6bb0068a0d0439bf +Subproject commit 3ac59232c3f6c0553226708ef7ce81f716fbb10e