diff --git a/apps/android/app/build.gradle b/apps/android/app/build.gradle index f552566d3..eea4d3933 100644 --- a/apps/android/app/build.gradle +++ b/apps/android/app/build.gradle @@ -11,8 +11,8 @@ android { applicationId "chat.simplex.app" minSdk 26 targetSdk 32 - versionCode 109 - versionName "4.6.1-beta.0" + versionCode 110 + versionName "4.6.1-beta.1" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" vectorDrawables { diff --git a/apps/ios/SimpleX NSE/ru.lproj/Localizable.strings b/apps/ios/SimpleX NSE/ru.lproj/Localizable.strings index ab09b0ac2..8b1378917 100644 --- a/apps/ios/SimpleX NSE/ru.lproj/Localizable.strings +++ b/apps/ios/SimpleX NSE/ru.lproj/Localizable.strings @@ -1,90 +1 @@ -/* No comment provided by engineer. */ -"**e2e encrypted** audio call" = "**e2e зашифрованный** аудиозвонок"; - -/* No comment provided by engineer. */ -"**e2e encrypted** video call" = "**e2e зашифрованный** видеозвонок"; - -/* notification title */ -"%@ is connected!" = "соединение с %@ установлено!"; - -/* notification title */ -"%@ wants to connect!" = "%@ хочет соединиться!"; - -/* integrity error chat item */ -"%d skipped message(s)" = "%d пропущенных сообщений"; - -/* notification body */ -"Accept contact request from %@?" = "Принять запрос на соединение от %@?"; - -/* call status */ -"accepted call" = "принятный звонок"; - -/* No comment provided by engineer. */ -"audio call (not e2e encrypted)" = "аудиозвонок (не e2e зашифрованный)"; - -/* integrity error chat item */ -"bad message hash" = "ошибка хэш сообщения"; - -/* integrity error chat item */ -"bad message ID" = "ошибка ID сообщения"; - -/* call status */ -"call error" = "ошибка звонка"; - -/* call status */ -"call in progress" = "активный звонок"; - -/* call status */ -"calling…" = "входящий звонок…"; - -/* call status */ -"connecting call" = "звонок соединяется…"; - -/* chat list item title */ -"connecting…" = "соединяется…"; - -/* chat list item title (it should not be shown */ -"connection established" = "соединение установлено"; - -/* connection information */ -"connection:%@" = "connection:%@"; - -/* deleted chat item */ -"deleted" = "удалено"; - -/* integrity error chat item */ -"duplicate message" = "повторное сообщение"; - -/* call status */ -"ended call %@" = "завершённый звонок %@"; - -/* notification */ -"Incoming audio call" = "Входящий аудиозвонок"; - -/* notification */ -"Incoming video call" = "Входящий видеозвонок"; - -/* chat list item title */ -"invited to connect" = "приглашение соединиться"; - -/* call status */ -"missed call" = "пропущенный звонок"; - -/* call status */ -"rejected call" = "отклонённый звонок"; - -/* chat list item description */ -"via contact address link" = "через ссылку-контакт"; - -/* chat list item description */ -"via one-time link" = "через одноразовую ссылку"; - -/* No comment provided by engineer. */ -"video call (not e2e encrypted)" = "видеозвонок (не e2e зашифрованный)"; - -/* notification body */ -"You can now send messages to %@" = "Вы можете отправлять сообщения %@"; - -/* chat list item description */ -"you shared one-time link" = "вы создали одноразовую ссылку"; diff --git a/apps/ios/SimpleX.xcodeproj/project.pbxproj b/apps/ios/SimpleX.xcodeproj/project.pbxproj index c74b58931..bc1301fe1 100644 --- a/apps/ios/SimpleX.xcodeproj/project.pbxproj +++ b/apps/ios/SimpleX.xcodeproj/project.pbxproj @@ -53,11 +53,6 @@ 5C5E5D3B2824468B00B0488A /* ActiveCallView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C5E5D3A2824468B00B0488A /* ActiveCallView.swift */; }; 5C5F2B6D27EBC3FE006A9D5F /* ImagePicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C5F2B6C27EBC3FE006A9D5F /* ImagePicker.swift */; }; 5C5F2B7027EBC704006A9D5F /* ProfileImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C5F2B6F27EBC704006A9D5F /* ProfileImage.swift */; }; - 5C65DAF329CBA429003CEE45 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C65DAEE29CBA429003CEE45 /* libgmp.a */; }; - 5C65DAF429CBA429003CEE45 /* libHSsimplex-chat-4.6.0.0-KxI2qGrpKDHEZQGy0eoUXU-ghc8.10.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C65DAEF29CBA429003CEE45 /* libHSsimplex-chat-4.6.0.0-KxI2qGrpKDHEZQGy0eoUXU-ghc8.10.7.a */; }; - 5C65DAF529CBA429003CEE45 /* libHSsimplex-chat-4.6.0.0-KxI2qGrpKDHEZQGy0eoUXU.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C65DAF029CBA429003CEE45 /* libHSsimplex-chat-4.6.0.0-KxI2qGrpKDHEZQGy0eoUXU.a */; }; - 5C65DAF629CBA429003CEE45 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C65DAF129CBA429003CEE45 /* libgmpxx.a */; }; - 5C65DAF729CBA429003CEE45 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5C65DAF229CBA429003CEE45 /* libffi.a */; }; 5C65DAF929D0CC20003CEE45 /* DeveloperView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C65DAF829D0CC20003CEE45 /* DeveloperView.swift */; }; 5C65F343297D45E100B67AF3 /* VersionView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C65F341297D3F3600B67AF3 /* VersionView.swift */; }; 5C6AD81327A834E300348BD7 /* NewChatButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5C6AD81227A834E300348BD7 /* NewChatButton.swift */; }; @@ -120,6 +115,11 @@ 5CCD403427A5F6DF00368C90 /* AddContactView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD403327A5F6DF00368C90 /* AddContactView.swift */; }; 5CCD403727A5F9A200368C90 /* ScanToConnectView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CCD403627A5F9A200368C90 /* ScanToConnectView.swift */; }; 5CDCAD482818589900503DA2 /* NotificationService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5CDCAD472818589900503DA2 /* NotificationService.swift */; }; + 5CE0D4B729D871280080B488 /* libgmpxx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE0D4B229D871280080B488 /* libgmpxx.a */; }; + 5CE0D4B829D871280080B488 /* libffi.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE0D4B329D871280080B488 /* libffi.a */; }; + 5CE0D4B929D871280080B488 /* libHSsimplex-chat-4.6.1.0-DpQjqJf4weCDmTNQRKUceI-ghc8.10.7.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE0D4B429D871280080B488 /* libHSsimplex-chat-4.6.1.0-DpQjqJf4weCDmTNQRKUceI-ghc8.10.7.a */; }; + 5CE0D4BA29D871280080B488 /* libHSsimplex-chat-4.6.1.0-DpQjqJf4weCDmTNQRKUceI.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE0D4B529D871280080B488 /* libHSsimplex-chat-4.6.1.0-DpQjqJf4weCDmTNQRKUceI.a */; }; + 5CE0D4BB29D871280080B488 /* libgmp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE0D4B629D871280080B488 /* libgmp.a */; }; 5CE2BA702845308900EC33A6 /* SimpleXChat.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE2BA682845308900EC33A6 /* SimpleXChat.framework */; }; 5CE2BA712845308900EC33A6 /* SimpleXChat.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 5CE2BA682845308900EC33A6 /* SimpleXChat.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 5CE2BA77284530BF00EC33A6 /* SimpleXChat.h in Headers */ = {isa = PBXBuildFile; fileRef = 5CE2BA76284530BF00EC33A6 /* SimpleXChat.h */; }; @@ -290,11 +290,6 @@ 5C65DAEB29CB8867003CEE45 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = ""; }; 5C65DAEC29CB8908003CEE45 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = "es.lproj/SimpleX--iOS--InfoPlist.strings"; sourceTree = ""; }; 5C65DAED29CB8908003CEE45 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = ""; }; - 5C65DAEE29CBA429003CEE45 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; - 5C65DAEF29CBA429003CEE45 /* libHSsimplex-chat-4.6.0.0-KxI2qGrpKDHEZQGy0eoUXU-ghc8.10.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.6.0.0-KxI2qGrpKDHEZQGy0eoUXU-ghc8.10.7.a"; sourceTree = ""; }; - 5C65DAF029CBA429003CEE45 /* libHSsimplex-chat-4.6.0.0-KxI2qGrpKDHEZQGy0eoUXU.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.6.0.0-KxI2qGrpKDHEZQGy0eoUXU.a"; sourceTree = ""; }; - 5C65DAF129CBA429003CEE45 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; - 5C65DAF229CBA429003CEE45 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; 5C65DAF829D0CC20003CEE45 /* DeveloperView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DeveloperView.swift; sourceTree = ""; }; 5C65F341297D3F3600B67AF3 /* VersionView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = VersionView.swift; sourceTree = ""; }; 5C6AD81227A834E300348BD7 /* NewChatButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewChatButton.swift; sourceTree = ""; }; @@ -388,6 +383,11 @@ 5CDCAD7428188D2900503DA2 /* APITypes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = APITypes.swift; sourceTree = ""; }; 5CDCAD7D2818941F00503DA2 /* API.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = API.swift; sourceTree = ""; }; 5CDCAD80281A7E2700503DA2 /* Notifications.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Notifications.swift; sourceTree = ""; }; + 5CE0D4B229D871280080B488 /* libgmpxx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmpxx.a; sourceTree = ""; }; + 5CE0D4B329D871280080B488 /* libffi.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffi.a; sourceTree = ""; }; + 5CE0D4B429D871280080B488 /* libHSsimplex-chat-4.6.1.0-DpQjqJf4weCDmTNQRKUceI-ghc8.10.7.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.6.1.0-DpQjqJf4weCDmTNQRKUceI-ghc8.10.7.a"; sourceTree = ""; }; + 5CE0D4B529D871280080B488 /* libHSsimplex-chat-4.6.1.0-DpQjqJf4weCDmTNQRKUceI.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libHSsimplex-chat-4.6.1.0-DpQjqJf4weCDmTNQRKUceI.a"; sourceTree = ""; }; + 5CE0D4B629D871280080B488 /* libgmp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libgmp.a; sourceTree = ""; }; 5CE1330328E118CC00FFFD8C /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = "de.lproj/SimpleX--iOS--InfoPlist.strings"; sourceTree = ""; }; 5CE1330428E118CC00FFFD8C /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = ""; }; 5CE2BA682845308900EC33A6 /* SimpleXChat.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SimpleXChat.framework; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -467,13 +467,13 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 5C65DAF629CBA429003CEE45 /* libgmpxx.a in Frameworks */, + 5CE0D4B729D871280080B488 /* libgmpxx.a in Frameworks */, + 5CE0D4BB29D871280080B488 /* libgmp.a in Frameworks */, 5CE2BA93284534B000EC33A6 /* libiconv.tbd in Frameworks */, - 5C65DAF329CBA429003CEE45 /* libgmp.a in Frameworks */, - 5C65DAF429CBA429003CEE45 /* libHSsimplex-chat-4.6.0.0-KxI2qGrpKDHEZQGy0eoUXU-ghc8.10.7.a in Frameworks */, - 5C65DAF729CBA429003CEE45 /* libffi.a in Frameworks */, - 5C65DAF529CBA429003CEE45 /* libHSsimplex-chat-4.6.0.0-KxI2qGrpKDHEZQGy0eoUXU.a in Frameworks */, + 5CE0D4B929D871280080B488 /* libHSsimplex-chat-4.6.1.0-DpQjqJf4weCDmTNQRKUceI-ghc8.10.7.a in Frameworks */, 5CE2BA94284534BB00EC33A6 /* libz.tbd in Frameworks */, + 5CE0D4B829D871280080B488 /* libffi.a in Frameworks */, + 5CE0D4BA29D871280080B488 /* libHSsimplex-chat-4.6.1.0-DpQjqJf4weCDmTNQRKUceI.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -532,11 +532,11 @@ 5C764E5C279C70B7000C6508 /* Libraries */ = { isa = PBXGroup; children = ( - 5C65DAF229CBA429003CEE45 /* libffi.a */, - 5C65DAEE29CBA429003CEE45 /* libgmp.a */, - 5C65DAF129CBA429003CEE45 /* libgmpxx.a */, - 5C65DAEF29CBA429003CEE45 /* libHSsimplex-chat-4.6.0.0-KxI2qGrpKDHEZQGy0eoUXU-ghc8.10.7.a */, - 5C65DAF029CBA429003CEE45 /* libHSsimplex-chat-4.6.0.0-KxI2qGrpKDHEZQGy0eoUXU.a */, + 5CE0D4B329D871280080B488 /* libffi.a */, + 5CE0D4B629D871280080B488 /* libgmp.a */, + 5CE0D4B229D871280080B488 /* libgmpxx.a */, + 5CE0D4B429D871280080B488 /* libHSsimplex-chat-4.6.1.0-DpQjqJf4weCDmTNQRKUceI-ghc8.10.7.a */, + 5CE0D4B529D871280080B488 /* libHSsimplex-chat-4.6.1.0-DpQjqJf4weCDmTNQRKUceI.a */, ); path = Libraries; sourceTree = ""; @@ -1400,7 +1400,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 136; + CURRENT_PROJECT_VERSION = 137; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -1442,7 +1442,7 @@ CLANG_ENABLE_MODULES = YES; CODE_SIGN_ENTITLEMENTS = "SimpleX (iOS).entitlements"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 136; + CURRENT_PROJECT_VERSION = 137; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; ENABLE_PREVIEWS = YES; @@ -1522,7 +1522,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 136; + CURRENT_PROJECT_VERSION = 137; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GENERATE_INFOPLIST_FILE = YES; @@ -1554,7 +1554,7 @@ CODE_SIGN_ENTITLEMENTS = "SimpleX NSE/SimpleX NSE.entitlements"; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 136; + CURRENT_PROJECT_VERSION = 137; DEVELOPMENT_TEAM = 5NN7GUYB6T; ENABLE_BITCODE = NO; GENERATE_INFOPLIST_FILE = YES; diff --git a/scripts/ios/export-localizations.sh b/scripts/ios/export-localizations.sh index 71db84098..83882b329 100755 --- a/scripts/ios/export-localizations.sh +++ b/scripts/ios/export-localizations.sh @@ -1,10 +1,17 @@ #!/bin/sh -xcodebuild -exportLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations -exportLanguage cs -xcodebuild -exportLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations -exportLanguage de -xcodebuild -exportLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations -exportLanguage es -xcodebuild -exportLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations -exportLanguage fr -xcodebuild -exportLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations -exportLanguage it -xcodebuild -exportLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations -exportLanguage nl -xcodebuild -exportLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations -exportLanguage ru -xcodebuild -exportLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations -exportLanguage zh-Hans +set -e + +langs=( cs de es fr it nl ru zh-Hans ) + +for lang in "${langs[@]}"; do + echo "***" + echo "***" + echo "***" + echo "*** Exporting $lang" + xcodebuild -exportLocalizations \ + -project ./apps/ios/SimpleX.xcodeproj + -localizationPath ./apps/ios/SimpleX\ Localizations + -exportLanguage $lang + sleep 2 +done diff --git a/scripts/ios/import-localizations.sh b/scripts/ios/import-localizations.sh index 36b1a2589..f3ffae33c 100755 --- a/scripts/ios/import-localizations.sh +++ b/scripts/ios/import-localizations.sh @@ -1,10 +1,18 @@ #!/bin/sh -xcodebuild -importLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations/cs.xcloc -xcodebuild -importLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations/de.xcloc -xcodebuild -importLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations/es.xcloc -xcodebuild -importLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations/fr.xcloc -xcodebuild -importLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations/it.xcloc -xcodebuild -importLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations/nl.xcloc -xcodebuild -importLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations/ru.xcloc -xcodebuild -importLocalizations -project ./apps/ios/SimpleX.xcodeproj -localizationPath ./apps/ios/SimpleX\ Localizations/zh-Hans.xcloc +set -e + +langs=( cs de es fr it nl ru zh-Hans ) + +for lang in "${langs[@]}"; do + echo "***" + echo "***" + echo "***" + echo "*** Importing $lang" + xcodebuild -importLocalizations \ + -project ./apps/ios/SimpleX.xcodeproj \ + -localizationPath ./apps/ios/SimpleX\ Localizations/$lang.xcloc \ + -disableAutomaticPackageResolution \ + -skipPackageUpdates + sleep 2 +done