Merge pull request #467 from tooot-app/main

Release v4.6.1
This commit is contained in:
xmflsct 2022-11-18 00:03:16 +01:00 committed by GitHub
commit 9cf7b2f0a8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
62 changed files with 1019 additions and 1013 deletions

View File

@ -11,6 +11,8 @@ Please **do not** create a pull request to update translation. tooot's translati
## Special thanks
[@amrtf](https://crowdin.com/profile/amrtf) for Spanish translation
[@pat](https://piaille.fr/@pat) for French translation
[@forenta](https://github.com/forenta) for German translation

View File

@ -23,7 +23,7 @@ PODS:
- ExpoModulesCore
- EXNotifications (0.17.0):
- ExpoModulesCore
- Expo (47.0.3):
- Expo (47.0.6):
- ExpoModulesCore
- ExpoCrypto (12.0.0):
- ExpoModulesCore
@ -33,7 +33,7 @@ PODS:
- ExpoModulesCore
- ExpoLocalization (14.0.0):
- ExpoModulesCore
- ExpoModulesCore (1.0.2):
- ExpoModulesCore (1.0.3):
- React-Core
- ReactCommon/turbomodule/core
- ExpoRandom (13.0.0):
@ -46,19 +46,19 @@ PODS:
- ExpoModulesCore
- EXSecureStore (12.0.0):
- ExpoModulesCore
- EXSplashScreen (0.17.4):
- EXSplashScreen (0.17.5):
- ExpoModulesCore
- React-Core
- EXVideoThumbnails (7.0.0):
- ExpoModulesCore
- FBLazyVector (0.70.5)
- FBReactNativeSpec (0.70.5):
- FBLazyVector (0.70.6)
- FBReactNativeSpec (0.70.6):
- RCT-Folly (= 2021.07.22.00)
- RCTRequired (= 0.70.5)
- RCTTypeSafety (= 0.70.5)
- React-Core (= 0.70.5)
- React-jsi (= 0.70.5)
- ReactCommon/turbomodule/core (= 0.70.5)
- RCTRequired (= 0.70.6)
- RCTTypeSafety (= 0.70.6)
- React-Core (= 0.70.6)
- React-jsi (= 0.70.6)
- ReactCommon/turbomodule/core (= 0.70.6)
- Firebase (9.5.0):
- Firebase/Core (= 9.5.0)
- Firebase/Core (9.5.0):
@ -160,7 +160,7 @@ PODS:
- GoogleUtilities/MethodSwizzler
- GoogleUtilities/UserDefaults (7.10.0):
- GoogleUtilities/Logger
- hermes-engine (0.70.5)
- hermes-engine (0.70.6)
- libevent (2.1.12)
- libwebp (1.2.4):
- libwebp/demux (= 1.2.4)
@ -194,214 +194,214 @@ PODS:
- fmt (~> 6.2.1)
- glog
- libevent
- RCTRequired (0.70.5)
- RCTTypeSafety (0.70.5):
- FBLazyVector (= 0.70.5)
- RCTRequired (= 0.70.5)
- React-Core (= 0.70.5)
- React (0.70.5):
- React-Core (= 0.70.5)
- React-Core/DevSupport (= 0.70.5)
- React-Core/RCTWebSocket (= 0.70.5)
- React-RCTActionSheet (= 0.70.5)
- React-RCTAnimation (= 0.70.5)
- React-RCTBlob (= 0.70.5)
- React-RCTImage (= 0.70.5)
- React-RCTLinking (= 0.70.5)
- React-RCTNetwork (= 0.70.5)
- React-RCTSettings (= 0.70.5)
- React-RCTText (= 0.70.5)
- React-RCTVibration (= 0.70.5)
- React-bridging (0.70.5):
- RCTRequired (0.70.6)
- RCTTypeSafety (0.70.6):
- FBLazyVector (= 0.70.6)
- RCTRequired (= 0.70.6)
- React-Core (= 0.70.6)
- React (0.70.6):
- React-Core (= 0.70.6)
- React-Core/DevSupport (= 0.70.6)
- React-Core/RCTWebSocket (= 0.70.6)
- React-RCTActionSheet (= 0.70.6)
- React-RCTAnimation (= 0.70.6)
- React-RCTBlob (= 0.70.6)
- React-RCTImage (= 0.70.6)
- React-RCTLinking (= 0.70.6)
- React-RCTNetwork (= 0.70.6)
- React-RCTSettings (= 0.70.6)
- React-RCTText (= 0.70.6)
- React-RCTVibration (= 0.70.6)
- React-bridging (0.70.6):
- RCT-Folly (= 2021.07.22.00)
- React-jsi (= 0.70.5)
- React-callinvoker (0.70.5)
- React-Codegen (0.70.5):
- FBReactNativeSpec (= 0.70.5)
- React-jsi (= 0.70.6)
- React-callinvoker (0.70.6)
- React-Codegen (0.70.6):
- FBReactNativeSpec (= 0.70.6)
- RCT-Folly (= 2021.07.22.00)
- RCTRequired (= 0.70.5)
- RCTTypeSafety (= 0.70.5)
- React-Core (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- ReactCommon/turbomodule/core (= 0.70.5)
- React-Core (0.70.5):
- RCTRequired (= 0.70.6)
- RCTTypeSafety (= 0.70.6)
- React-Core (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- ReactCommon/turbomodule/core (= 0.70.6)
- React-Core (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default (= 0.70.5)
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-Core/Default (= 0.70.6)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/CoreModulesHeaders (0.70.5):
- React-Core/CoreModulesHeaders (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/Default (0.70.5):
- React-Core/Default (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/DevSupport (0.70.5):
- React-Core/DevSupport (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default (= 0.70.5)
- React-Core/RCTWebSocket (= 0.70.5)
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-jsinspector (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-Core/Default (= 0.70.6)
- React-Core/RCTWebSocket (= 0.70.6)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-jsinspector (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/RCTActionSheetHeaders (0.70.5):
- React-Core/RCTActionSheetHeaders (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/RCTAnimationHeaders (0.70.5):
- React-Core/RCTAnimationHeaders (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/RCTBlobHeaders (0.70.5):
- React-Core/RCTBlobHeaders (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/RCTImageHeaders (0.70.5):
- React-Core/RCTImageHeaders (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/RCTLinkingHeaders (0.70.5):
- React-Core/RCTLinkingHeaders (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/RCTNetworkHeaders (0.70.5):
- React-Core/RCTNetworkHeaders (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/RCTSettingsHeaders (0.70.5):
- React-Core/RCTSettingsHeaders (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/RCTTextHeaders (0.70.5):
- React-Core/RCTTextHeaders (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/RCTVibrationHeaders (0.70.5):
- React-Core/RCTVibrationHeaders (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-Core/RCTWebSocket (0.70.5):
- React-Core/RCTWebSocket (0.70.6):
- glog
- RCT-Folly (= 2021.07.22.00)
- React-Core/Default (= 0.70.5)
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-Core/Default (= 0.70.6)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-perflogger (= 0.70.6)
- Yoga
- React-CoreModules (0.70.5):
- React-CoreModules (0.70.6):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.70.5)
- React-Codegen (= 0.70.5)
- React-Core/CoreModulesHeaders (= 0.70.5)
- React-jsi (= 0.70.5)
- React-RCTImage (= 0.70.5)
- ReactCommon/turbomodule/core (= 0.70.5)
- React-cxxreact (0.70.5):
- RCTTypeSafety (= 0.70.6)
- React-Codegen (= 0.70.6)
- React-Core/CoreModulesHeaders (= 0.70.6)
- React-jsi (= 0.70.6)
- React-RCTImage (= 0.70.6)
- ReactCommon/turbomodule/core (= 0.70.6)
- React-cxxreact (0.70.6):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.07.22.00)
- React-callinvoker (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsinspector (= 0.70.5)
- React-logger (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-runtimeexecutor (= 0.70.5)
- React-hermes (0.70.5):
- React-callinvoker (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsinspector (= 0.70.6)
- React-logger (= 0.70.6)
- React-perflogger (= 0.70.6)
- React-runtimeexecutor (= 0.70.6)
- React-hermes (0.70.6):
- DoubleConversion
- glog
- hermes-engine
- RCT-Folly (= 2021.07.22.00)
- RCT-Folly/Futures (= 2021.07.22.00)
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-jsiexecutor (= 0.70.5)
- React-jsinspector (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-jsi (0.70.5):
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-jsiexecutor (= 0.70.6)
- React-jsinspector (= 0.70.6)
- React-perflogger (= 0.70.6)
- React-jsi (0.70.6):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.07.22.00)
- React-jsi/Default (= 0.70.5)
- React-jsi/Default (0.70.5):
- React-jsi/Default (= 0.70.6)
- React-jsi/Default (0.70.6):
- boost (= 1.76.0)
- DoubleConversion
- glog
- RCT-Folly (= 2021.07.22.00)
- React-jsiexecutor (0.70.5):
- React-jsiexecutor (0.70.6):
- DoubleConversion
- glog
- RCT-Folly (= 2021.07.22.00)
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-jsinspector (0.70.5)
- React-logger (0.70.5):
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-perflogger (= 0.70.6)
- React-jsinspector (0.70.6)
- React-logger (0.70.6):
- glog
- react-native-blur (4.3.0):
- React-Core
@ -411,7 +411,7 @@ PODS:
- React-Core
- react-native-context-menu-view (1.5.4):
- React
- react-native-image-picker (4.10.0):
- react-native-image-picker (4.10.1):
- React-Core
- react-native-language-detection (0.1.0):
- React
@ -432,72 +432,72 @@ PODS:
- ReactCommon/turbomodule/core
- react-native-segmented-control (2.2.2):
- React-Core
- React-perflogger (0.70.5)
- React-RCTActionSheet (0.70.5):
- React-Core/RCTActionSheetHeaders (= 0.70.5)
- React-RCTAnimation (0.70.5):
- React-perflogger (0.70.6)
- React-RCTActionSheet (0.70.6):
- React-Core/RCTActionSheetHeaders (= 0.70.6)
- React-RCTAnimation (0.70.6):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.70.5)
- React-Codegen (= 0.70.5)
- React-Core/RCTAnimationHeaders (= 0.70.5)
- React-jsi (= 0.70.5)
- ReactCommon/turbomodule/core (= 0.70.5)
- React-RCTBlob (0.70.5):
- RCTTypeSafety (= 0.70.6)
- React-Codegen (= 0.70.6)
- React-Core/RCTAnimationHeaders (= 0.70.6)
- React-jsi (= 0.70.6)
- ReactCommon/turbomodule/core (= 0.70.6)
- React-RCTBlob (0.70.6):
- RCT-Folly (= 2021.07.22.00)
- React-Codegen (= 0.70.5)
- React-Core/RCTBlobHeaders (= 0.70.5)
- React-Core/RCTWebSocket (= 0.70.5)
- React-jsi (= 0.70.5)
- React-RCTNetwork (= 0.70.5)
- ReactCommon/turbomodule/core (= 0.70.5)
- React-RCTImage (0.70.5):
- React-Codegen (= 0.70.6)
- React-Core/RCTBlobHeaders (= 0.70.6)
- React-Core/RCTWebSocket (= 0.70.6)
- React-jsi (= 0.70.6)
- React-RCTNetwork (= 0.70.6)
- ReactCommon/turbomodule/core (= 0.70.6)
- React-RCTImage (0.70.6):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.70.5)
- React-Codegen (= 0.70.5)
- React-Core/RCTImageHeaders (= 0.70.5)
- React-jsi (= 0.70.5)
- React-RCTNetwork (= 0.70.5)
- ReactCommon/turbomodule/core (= 0.70.5)
- React-RCTLinking (0.70.5):
- React-Codegen (= 0.70.5)
- React-Core/RCTLinkingHeaders (= 0.70.5)
- React-jsi (= 0.70.5)
- ReactCommon/turbomodule/core (= 0.70.5)
- React-RCTNetwork (0.70.5):
- RCTTypeSafety (= 0.70.6)
- React-Codegen (= 0.70.6)
- React-Core/RCTImageHeaders (= 0.70.6)
- React-jsi (= 0.70.6)
- React-RCTNetwork (= 0.70.6)
- ReactCommon/turbomodule/core (= 0.70.6)
- React-RCTLinking (0.70.6):
- React-Codegen (= 0.70.6)
- React-Core/RCTLinkingHeaders (= 0.70.6)
- React-jsi (= 0.70.6)
- ReactCommon/turbomodule/core (= 0.70.6)
- React-RCTNetwork (0.70.6):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.70.5)
- React-Codegen (= 0.70.5)
- React-Core/RCTNetworkHeaders (= 0.70.5)
- React-jsi (= 0.70.5)
- ReactCommon/turbomodule/core (= 0.70.5)
- React-RCTSettings (0.70.5):
- RCTTypeSafety (= 0.70.6)
- React-Codegen (= 0.70.6)
- React-Core/RCTNetworkHeaders (= 0.70.6)
- React-jsi (= 0.70.6)
- ReactCommon/turbomodule/core (= 0.70.6)
- React-RCTSettings (0.70.6):
- RCT-Folly (= 2021.07.22.00)
- RCTTypeSafety (= 0.70.5)
- React-Codegen (= 0.70.5)
- React-Core/RCTSettingsHeaders (= 0.70.5)
- React-jsi (= 0.70.5)
- ReactCommon/turbomodule/core (= 0.70.5)
- React-RCTText (0.70.5):
- React-Core/RCTTextHeaders (= 0.70.5)
- React-RCTVibration (0.70.5):
- RCTTypeSafety (= 0.70.6)
- React-Codegen (= 0.70.6)
- React-Core/RCTSettingsHeaders (= 0.70.6)
- React-jsi (= 0.70.6)
- ReactCommon/turbomodule/core (= 0.70.6)
- React-RCTText (0.70.6):
- React-Core/RCTTextHeaders (= 0.70.6)
- React-RCTVibration (0.70.6):
- RCT-Folly (= 2021.07.22.00)
- React-Codegen (= 0.70.5)
- React-Core/RCTVibrationHeaders (= 0.70.5)
- React-jsi (= 0.70.5)
- ReactCommon/turbomodule/core (= 0.70.5)
- React-runtimeexecutor (0.70.5):
- React-jsi (= 0.70.5)
- ReactCommon/turbomodule/core (0.70.5):
- React-Codegen (= 0.70.6)
- React-Core/RCTVibrationHeaders (= 0.70.6)
- React-jsi (= 0.70.6)
- ReactCommon/turbomodule/core (= 0.70.6)
- React-runtimeexecutor (0.70.6):
- React-jsi (= 0.70.6)
- ReactCommon/turbomodule/core (0.70.6):
- DoubleConversion
- glog
- RCT-Folly (= 2021.07.22.00)
- React-bridging (= 0.70.5)
- React-callinvoker (= 0.70.5)
- React-Core (= 0.70.5)
- React-cxxreact (= 0.70.5)
- React-jsi (= 0.70.5)
- React-logger (= 0.70.5)
- React-perflogger (= 0.70.5)
- React-bridging (= 0.70.6)
- React-callinvoker (= 0.70.6)
- React-Core (= 0.70.6)
- React-cxxreact (= 0.70.6)
- React-jsi (= 0.70.6)
- React-logger (= 0.70.6)
- React-perflogger (= 0.70.6)
- RNCAsyncStorage (1.17.11):
- React-Core
- RNCClipboard (1.11.1):
@ -508,7 +508,7 @@ PODS:
- SDWebImageWebPCoder (~> 0.9.1)
- RNGestureHandler (2.8.0):
- React-Core
- RNReanimated (2.12.0):
- RNReanimated (2.13.0):
- DoubleConversion
- FBLazyVector
- FBReactNativeSpec
@ -543,7 +543,7 @@ PODS:
- Sentry (= 7.29.0)
- RNShareMenu (6.0.0):
- React
- RNSVG (13.5.0):
- RNSVG (13.6.0):
- React-Core
- SDWebImage (5.14.2):
- SDWebImage/Core (= 5.14.2)
@ -830,21 +830,21 @@ SPEC CHECKSUMS:
EXFirebaseCore: d0d88cb904e893af07f809ab08c0892489bc6956
EXFont: 319606bfe48c33b5b5063fb0994afdc496befe80
EXNotifications: babce2a87b7922051354fcfe7a74dd279b7e272a
Expo: 8e4f1d149b58d5df10d302e0b5c489f9fc6623fc
Expo: a581e979539bae3e49cd02d9dee2432947383d3b
ExpoCrypto: 51e7662c7f5bfeab25b7909b8a5d545ec15d4877
ExpoHaptics: 5a56d30a87ea213dd00b09566dc4b441a4dff97f
ExpoKeepAwake: 69b59d0a8d2b24de9f82759c39b3821fec030318
ExpoLocalization: e202d1e2a4950df17ac8d0889d65a1ffd7532d7e
ExpoModulesCore: 20decc110ca3987e1728dee2ce4b3f79e147edda
ExpoModulesCore: b5d21c8880afda6fb6ee95469f9ac2ec9b98e995
ExpoRandom: 58b7e0a5fe1adf1cb6dc1cbe503a6fe9524f36ce
ExpoStoreReview: ff6d631f2949eb7e4b2d14146ef6af25a16d770d
ExpoWebBrowser: 073e50f16669d498fb49063b9b7fe780b24f7fda
EXScreenCapture: d9f1ec31042dfef109290d06c2b4789b7444d16d
EXSecureStore: daec0117c922a67c658cb229152a9e252e5c1750
EXSplashScreen: 4b57f8416a057411cb3c97db9fc9a615f8c1d5d9
EXSplashScreen: 3e989924f61a8dd07ee4ea584c6ba14be9b51949
EXVideoThumbnails: 8b3e48f3716679dd0cbf949217a31eab5c555799
FBLazyVector: affa4ba1bfdaac110a789192f4d452b053a86624
FBReactNativeSpec: fe8b5f1429cfe83a8d72dc8ed61dc7704cac8745
FBLazyVector: 48289402952f4f7a4e235de70a9a590aa0b79ef4
FBReactNativeSpec: dd1186fd05255e3457baa2f4ca65e94c2cd1e3ac
Firebase: 800f16f07af493d98d017446a315c27af0552f41
FirebaseAnalytics: 1b60984a408320dda637306f3f733699ef8473d7
FirebaseCore: 25c0400b670fd1e2f2104349cd3b5dcce8d9418f
@ -856,31 +856,31 @@ SPEC CHECKSUMS:
GoogleAppMeasurement: 6ee231473fbd75c11221dfce489894334024eead
GoogleDataTransport: 1c8145da7117bd68bbbed00cf304edb6a24de00f
GoogleUtilities: bad72cb363809015b1f7f19beb1f1cd23c589f95
hermes-engine: 7fe5fc6ef707b7fdcb161b63898ec500e285653d
hermes-engine: 2af7b7a59128f250adfd86f15aa1d5a2ecd39995
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef
nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431
PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb
RCT-Folly: 0080d0a6ebf2577475bda044aa59e2ca1f909cda
RCTRequired: 21229f84411088e5d8538f21212de49e46cc83e2
RCTTypeSafety: 62eed57a32924b09edaaf170a548d1fc96223086
React: f0254ccddeeef1defe66c6b1bb9133a4f040792b
React-bridging: e46911666b7ec19538a620a221d6396cd293d687
React-callinvoker: 66b62e2c34546546b2f21ab0b7670346410a2b53
React-Codegen: b6999435966df3bdf82afa3f319ba0d6f9a8532a
React-Core: dabbc9d1fe0a11d884e6ee1599789cf8eb1058a5
React-CoreModules: 5b6b7668f156f73a56420df9ec68ca2ec8f2e818
React-cxxreact: c7ca2baee46db22a30fce9e639277add3c3f6ad1
React-hermes: c93e1d759ad5560dfea54d233013d7d2c725c286
React-jsi: a565dcb49130ed20877a9bb1105ffeecbb93d02d
React-jsiexecutor: 31564fa6912459921568e8b0e49024285a4d584b
React-jsinspector: badd81696361249893a80477983e697aab3c1a34
React-logger: fdda34dd285bdb0232e059b19d9606fa0ec3bb9c
RCTRequired: e1866f61af7049eb3d8e08e8b133abd38bc1ca7a
RCTTypeSafety: 27c2ac1b00609a432ced1ae701247593f07f901e
React: bb3e06418d2cc48a84f9666a576c7b38e89cd7db
React-bridging: 572502ec59c9de30309afdc4932e278214288913
React-callinvoker: 6b708b79c69f3359d42f1abb4663f620dbd4dadf
React-Codegen: 74e1cd7cee692a8b983c18df3274b5e749de07c8
React-Core: b587d0a624f9611b0e032505f3d6f25e8daa2bee
React-CoreModules: c6ff48b985e7aa622e82ca51c2c353c7803eb04e
React-cxxreact: ade3d9e63c599afdead3c35f8a8bd12b3da6730b
React-hermes: ed09ae33512bbb8d31b2411778f3af1a2eb681a1
React-jsi: 5a3952e0c6d57460ad9ee2c905025b4c28f71087
React-jsiexecutor: b4a65947391c658450151275aa406f2b8263178f
React-jsinspector: 60769e5a0a6d4b32294a2456077f59d0266f9a8b
React-logger: 1623c216abaa88974afce404dc8f479406bbc3a0
react-native-blur: 50c9feabacbc5f49b61337ebc32192c6be7ec3c3
react-native-blurhash: add4df9a937b4e021a24bc67a0714f13e0bd40b7
react-native-cameraroll: a40b082318eb1ecd0336a2f29d9f74b7f2c8cae8
react-native-context-menu-view: b0beca02aad4bd9f9d7d932bf437e0a03baa69ef
react-native-image-picker: 4bc9ed38c8be255b515d8c88babbaf74973f91a8
react-native-image-picker: f2ab1215d17bcfe27b0eb6417cc236fd1f4775e7
react-native-language-detection: 0e43195ad014974f1b7a31b64820eff34a243f2d
react-native-live-text-image-view: 483bacfdba464162b8cf176bba555364f18b584c
react-native-netinfo: f80db8cac2151405633324cb645c60af098ee461
@ -888,32 +888,32 @@ SPEC CHECKSUMS:
react-native-paste-input: 183ad7dc224e192719616f4258dde5b548627d08
react-native-safe-area-context: 99b24a0c5acd0d5dcac2b1a7f18c49ea317be99a
react-native-segmented-control: 65df6cd0619b780b3843d574a72d4c7cec396097
React-perflogger: e68d3795cf5d247a0379735cbac7309adf2fb931
React-RCTActionSheet: 05452c3b281edb27850253db13ecd4c5a65bc247
React-RCTAnimation: 578eebac706428e68466118e84aeacf3a282b4da
React-RCTBlob: f47a0aa61e7d1fb1a0e13da832b0da934939d71a
React-RCTImage: 60f54b66eed65d86b6dffaf4733d09161d44929d
React-RCTLinking: 91073205aeec4b29450ca79b709277319368ac9e
React-RCTNetwork: ca91f2c9465a7e335c8a5fae731fd7f10572213b
React-RCTSettings: 1a9a5d01337d55c18168c1abe0f4a589167d134a
React-RCTText: c591e8bd9347a294d8416357ca12d779afec01d5
React-RCTVibration: 8e5c8c5d17af641f306d7380d8d0fe9b3c142c48
React-runtimeexecutor: 7401c4a40f8728fd89df4a56104541b760876117
ReactCommon: c9246996e73bf75a2c6c3ff15f1e16707cdc2da9
React-perflogger: 8c79399b0500a30ee8152d0f9f11beae7fc36595
React-RCTActionSheet: 7316773acabb374642b926c19aef1c115df5c466
React-RCTAnimation: 5341e288375451297057391227f691d9b2326c3d
React-RCTBlob: b0615fc2daf2b5684ade8fadcab659f16f6f0efa
React-RCTImage: 6487b9600f268ecedcaa86114d97954d31ad4750
React-RCTLinking: c8018ae9ebfefcec3839d690d4725f8d15e4e4b3
React-RCTNetwork: 8aa63578741e0fe1205c28d7d4b40dbfdabce8a8
React-RCTSettings: d00c15ad369cd62242a4dfcc6f277912b4a84ed3
React-RCTText: f532e5ca52681ecaecea452b3ad7a5b630f50d75
React-RCTVibration: c75ceef7aa60a33b2d5731ebe5800ddde40cefc4
React-runtimeexecutor: 15437b576139df27635400de0599d9844f1ab817
ReactCommon: 349be31adeecffc7986a0de875d7fb0dcf4e251c
RNCAsyncStorage: 8616bd5a58af409453ea4e1b246521bb76578d60
RNCClipboard: 2834e1c4af68697089cdd455ee4a4cdd198fa7dd
RNFastImage: c5dd1b551779c5826fe43b7d36788385da2021e2
RNGestureHandler: 62232ba8f562f7dea5ba1b3383494eb5bf97a4d3
RNReanimated: 2a91e85fcd343f8af3c58d3425b99fdd285590a5
RNReanimated: ce445c233a6ff5600223484a88ad5704945d972a
RNScreens: 34cc502acf1b916c582c60003dc3089fa01dc66d
RNSentry: db7fd7b66efda28885e4e904a8b5e7349aec61c1
RNShareMenu: cb9dac548c8bf147d06f0bf07296ad51ea9f5fc3
RNSVG: 38ca962c970dbce1ca38991a5aebf26d163f9efb
RNSVG: 3a79c0c4992213e4f06c08e62730c5e7b9e4dc17
SDWebImage: b9a731e1d6307f44ca703b3976d18c24ca561e84
SDWebImageWebPCoder: 18503de6621dd2c420d680e33d46bf8e1d5169b0
Sentry: 4272663eb0eda312024d795ca3f5a562a8ce5e18
Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b
Yoga: eca980a5771bf114c41a754098cd85e6e0d90ed7
Yoga: 99caf8d5ab45e9d637ee6e0174ec16fbbb01bcfc
PODFILE CHECKSUM: e4191b63c8f15031b2365226730770e7978dca41

View File

@ -0,0 +1,2 @@
"NSPhotoLibraryAddUsageDescription" = "Permita que tooot guarde imágenes en el rollo de su cámara";
"NSPhotoLibraryUsageDescription" = "Permita que tooot guarde imágenes en el rollo de su cámara";

View File

@ -78,6 +78,7 @@
E633A431281EB55C000E540F /* ShareExtension-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ShareExtension-Bridging-Header.h"; sourceTree = "<group>"; };
E66C0842291F095800DFFF60 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = fr.lproj/InfoPlist.strings; sourceTree = "<group>"; };
E671BDF8290EAFB800287BD0 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
E690AF692926B737002C38A8 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/InfoPlist.strings; sourceTree = "<group>"; };
E69EBACA28DF282D0057EDEC /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.lproj/InfoPlist.strings; sourceTree = "<group>"; };
E69EBACB28DF283A0057EDEC /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = "<group>"; };
E69EBACC28DF28420057EDEC /* ko */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ko; path = ko.lproj/InfoPlist.strings; sourceTree = "<group>"; };
@ -293,6 +294,7 @@
ja,
"zh-Hant",
fr,
es,
);
mainGroup = 83CBB9F61A601CBA00E9B192;
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
@ -522,6 +524,7 @@
E6C8B26628F5F9FC0062CF2E /* ja */,
E671BDF8290EAFB800287BD0 /* zh-Hant */,
E66C0842291F095800DFFF60 /* fr */,
E690AF692926B737002C38A8 /* es */,
);
name = InfoPlist.strings;
sourceTree = "<group>";

View File

@ -1,6 +1,6 @@
{
"name": "tooot",
"version": "4.6.0",
"version": "4.6.1",
"description": "tooot for Mastodon",
"author": "xmflsct <me@xmflsct.com>",
"license": "GPL-3.0-or-later",
@ -41,33 +41,33 @@
"@sentry/react-native": "4.8.0",
"@sharcoux/slider": "^6.0.3",
"axios": "^0.27.2",
"expo": "^47.0.3",
"expo-auth-session": "~3.7.2",
"expo-av": "~13.0.1",
"expo-constants": "~14.0.2",
"expo-crypto": "~12.0.0",
"expo-file-system": "~15.1.1",
"expo-firebase-analytics": "~8.0.0",
"expo-haptics": "~12.0.1",
"expo-linking": "~3.2.3",
"expo-localization": "~14.0.0",
"expo-notifications": "~0.17.0",
"expo-random": "~13.0.0",
"expo-screen-capture": "~5.0.0",
"expo-secure-store": "~12.0.0",
"expo-splash-screen": "~0.17.4",
"expo-store-review": "~6.0.0",
"expo-video-thumbnails": "~7.0.0",
"expo": "^47.0.6",
"expo-auth-session": "^3.7.2",
"expo-av": "^13.0.1",
"expo-constants": "^14.0.2",
"expo-crypto": "^12.0.0",
"expo-file-system": "^15.1.1",
"expo-firebase-analytics": "^8.0.0",
"expo-haptics": "^12.0.1",
"expo-linking": "^3.2.3",
"expo-localization": "^14.0.0",
"expo-notifications": "^0.17.0",
"expo-random": "^13.0.0",
"expo-screen-capture": "^5.0.0",
"expo-secure-store": "^12.0.0",
"expo-splash-screen": "^0.17.5",
"expo-store-review": "^6.0.0",
"expo-video-thumbnails": "^7.0.0",
"expo-web-browser": "~12.0.0",
"i18next": "^22.0.4",
"i18next": "^22.0.6",
"li": "^1.3.0",
"linkify-it": "^4.0.1",
"lodash": "^4.17.21",
"react": "18.2.0",
"react-dom": "18.2.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-i18next": "^12.0.0",
"react-intl": "^6.2.1",
"react-native": "0.70.5",
"react-native": "0.70.6",
"react-native-animated-spinkit": "^1.5.2",
"react-native-base64": "^0.2.1",
"react-native-blurhash": "^1.1.10",
@ -77,16 +77,16 @@
"react-native-flash-message": "^0.3.1",
"react-native-gesture-handler": "~2.8.0",
"react-native-htmlview": "^0.16.0",
"react-native-image-picker": "^4.10.0",
"react-native-image-picker": "^4.10.1",
"react-native-language-detection": "^0.1.0",
"react-native-live-text-image-view": "^0.4.0",
"react-native-pager-view": "6.1.0",
"react-native-reanimated": "~2.12.0",
"react-native-pager-view": "^6.1.0",
"react-native-reanimated": "^2.13.0",
"react-native-reanimated-zoom": "^0.3.3",
"react-native-safe-area-context": "4.4.1",
"react-native-screens": "~3.18.2",
"react-native-safe-area-context": "^4.4.1",
"react-native-screens": "^3.18.2",
"react-native-share-menu": "^6.0.0",
"react-native-svg": "13.5.0",
"react-native-svg": "^13.6.0",
"react-native-swipe-list-view": "^3.2.9",
"react-native-tab-view": "^3.3.0",
"react-query": "^3.39.2",
@ -102,9 +102,9 @@
"@babel/preset-typescript": "^7.18.6",
"@expo/config": "^7.0.3",
"@types/linkify-it": "^3.0.2",
"@types/lodash": "^4.14.188",
"@types/lodash": "^4.14.189",
"@types/react": "~18.0.25",
"@types/react-dom": "~18.0.8",
"@types/react-dom": "~18.0.9",
"@types/react-native": "~0.70.6",
"@types/react-native-base64": "^0.2.0",
"@types/react-native-share-menu": "^5.0.2",
@ -119,6 +119,6 @@
"patch-package": "^6.5.0",
"postinstall-postinstall": "^2.1.0",
"react-native-clean-project": "^4.0.1",
"typescript": "^4.8.4"
"typescript": "^4.9.3"
}
}

8
src/@types/i18next.d.ts vendored Normal file
View File

@ -0,0 +1,8 @@
import 'i18next'
declare module 'i18next' {
interface CustomTypeOptions {
defaultNS: 'common',
returnNull: false
}
}

View File

@ -22,13 +22,7 @@ export interface Props {
id: Mastodon.Account['id']
}
const contextMenuAccount = ({
actions,
type,
queryKey,
rootQueryKey,
id: accountId
}: Props) => {
const contextMenuAccount = ({ actions, type, queryKey, rootQueryKey, id: accountId }: Props) => {
const { theme } = useTheme()
const { t } = useTranslation('componentContextMenu')
@ -66,8 +60,8 @@ const contextMenuAccount = ({
err.data &&
err.data.error &&
typeof err.data.error === 'string' && {
description: err.data.error
})
description: err.data.error
})
})
},
onSettled: () => {
@ -76,10 +70,7 @@ const contextMenuAccount = ({
}
})
const instanceAccount = useSelector(
getInstanceAccount,
(prev, next) => prev.id === next.id
)
const instanceAccount = useSelector(getInstanceAccount, (prev, next) => prev.id === next.id)
const ownAccount = instanceAccount?.id === accountId
const { data: relationship } = useRelationshipQuery({
@ -88,15 +79,13 @@ const contextMenuAccount = ({
})
if (!ownAccount) {
actions.push(
{
id: 'account-mute',
title: t('account.mute.action', {
context: (relationship?.muting || false).toString()
}),
systemIcon: 'eye.slash'
}
)
actions.push({
id: 'account-mute',
title: t('account.mute.action', {
context: (relationship?.muting || false).toString()
}),
systemIcon: 'eye.slash'
})
switch (Platform.OS) {
case 'ios':
actions.push({
@ -153,7 +142,10 @@ const contextMenuAccount = ({
payload: { property: 'mute', currentValue: relationship?.muting }
})
}
if (actions[index].id === 'account-block') {
if (
actions[index].id === 'account-block' ||
(actions[index].id === 'account' && actions[index].actions?.[0].id === 'account-block')
) {
analytics('timeline_shared_headeractions_account_block_press', {
page: queryKey && queryKey[1].page
})
@ -164,7 +156,10 @@ const contextMenuAccount = ({
payload: { property: 'block', currentValue: relationship?.blocking }
})
}
if (actions[index].id === 'account-reports') {
if (
actions[index].id === 'account-reports' ||
(actions[index].id === 'account' && actions[index].actions?.[0].id === 'account-reports')
) {
analytics('timeline_shared_headeractions_account_reports_press', {
page: queryKey && queryKey[1].page
})

View File

@ -45,10 +45,6 @@ const TimelineDefault: React.FC<Props> = ({
disableDetails = false,
disableOnPress = false
}) => {
if (highlighted) {
disableOnPress = true
}
const { colors } = useTheme()
const instanceAccount = useSelector(getInstanceAccount, () => true)
const navigation = useNavigation<StackNavigationProp<TabLocalStackParamList>>()

View File

@ -49,65 +49,76 @@ export const shouldFilter = ({
const ownAccount = getInstanceAccount(store.getState())?.id === status.account?.id
let shouldFilter: string | null = null
if (!ownAccount) {
let rawContent = ''
const parser = new htmlparser2.Parser({
ontext: (text: string) => {
if (!copiableContent.current.complete) {
copiableContent.current.content = copiableContent.current.content + text
}
const checkFilter = (filter: Mastodon.Filter) => {
const escapedPhrase = filter.phrase.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // $& means the whole matched string
switch (filter.whole_word) {
case true:
if (new RegExp('\\b' + escapedPhrase + '\\b').test(text)) {
shouldFilter = filter.phrase
}
break
case false:
if (new RegExp(escapedPhrase).test(text)) {
shouldFilter = filter.phrase
}
break
}
}
instance?.filters?.forEach(filter => {
if (filter.expires_at) {
if (new Date().getTime() > new Date(filter.expires_at).getTime()) {
return
}
}
switch (queryKey[1].page) {
case 'Following':
case 'Local':
case 'List':
case 'Account_Default':
if (filter.context.includes('home')) {
checkFilter(filter)
}
break
case 'Notifications':
if (filter.context.includes('notifications')) {
checkFilter(filter)
}
break
case 'LocalPublic':
if (filter.context.includes('public')) {
checkFilter(filter)
}
break
case 'Toot':
if (filter.context.includes('thread')) {
checkFilter(filter)
}
}
})
rawContent = rawContent + text
}
})
status.spoiler_text && parser.write(status.spoiler_text)
if (status.spoiler_text) {
parser.write(status.spoiler_text)
rawContent = rawContent + `\n\n`
}
parser.write(status.content)
parser.end()
const checkFilter = (filter: Mastodon.Filter) => {
const escapedPhrase = filter.phrase.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // $& means the whole matched string
switch (filter.whole_word) {
case true:
if (new RegExp(`\\B${escapedPhrase}\\b`).test(rawContent)) {
shouldFilter = filter.phrase
}
break
case false:
if (new RegExp(escapedPhrase).test(rawContent)) {
shouldFilter = filter.phrase
}
break
}
}
instance?.filters?.forEach(filter => {
if (shouldFilter) {
return
}
if (filter.expires_at) {
if (new Date().getTime() > new Date(filter.expires_at).getTime()) {
return
}
}
switch (queryKey[1].page) {
case 'Following':
case 'Local':
case 'List':
case 'Account_Default':
if (filter.context.includes('home')) {
checkFilter(filter)
}
break
case 'Notifications':
if (filter.context.includes('notifications')) {
checkFilter(filter)
}
break
case 'LocalPublic':
if (filter.context.includes('public')) {
checkFilter(filter)
}
break
case 'Toot':
if (filter.context.includes('thread')) {
checkFilter(filter)
}
}
})
copiableContent.current.complete = true
}

View File

@ -82,6 +82,7 @@ const TimelineHeaderDefault = ({ queryKey, status, highlighted }: Props) => {
<Pressable
accessibilityHint={t('accessibilityHint')}
style={{ flex: 1, flexBasis: StyleConstants.Font.Size.L }}
onLongPress={() => null}
>
<ContextMenu
style={{ flex: 1, alignItems: 'center' }}

View File

@ -68,6 +68,7 @@ const TimelineHeaderNotification = ({ queryKey, notification }: Props) => {
return (
<Pressable
style={{ flex: 1, flexBasis: StyleConstants.Font.Size.L }}
onLongPress={() => null}
children={
<ContextMenu
style={{ flex: 1, alignItems: 'center' }}

View File

@ -4,7 +4,7 @@
"title": "Benutzeraktionen",
"mute": {
"action_false": "Profil stummschalten",
"action_true": "Stummschaltung Nutzers aufheben"
"action_true": "Stummschaltung des Nutzers aufheben"
},
"block": {
"action_false": "Nutzer blockieren",

View File

@ -42,7 +42,7 @@
"options": {
"title": "Boost-Sichtbarkeit ändern",
"public": "Öffentlicher Boost",
"unlisted": ""
"unlisted": "Boost entfernen"
}
},
"favourited": {
@ -88,7 +88,7 @@
"content": {
"expandHint": "Ausgeblendeter Inhalt"
},
"filtered": "",
"filtered": "Gefiltert: {{phrase}}.",
"fullConversation": "Unterhaltung anzeigen",
"translate": {
"default": "Übersetzen",
@ -107,7 +107,7 @@
"accessibilityHint": "Profil"
}
},
"application": "Getrötet mit {{application}}",
"application": "Mit {{application}}",
"edited": {
"accessibilityLabel": "Tröt bearbeitet"
},

View File

@ -12,7 +12,7 @@
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "",
"status": "Toot eines abonnierten Nutzers",
"update": "Boost wurde bearbeitet"
}
}

View File

@ -29,7 +29,7 @@
"title": "Ursprungsnachricht nicht verfügbar",
"description": "Ursprungströt wurde gelöscht. Möchtest du die Verknüpfung zu ihn entfernen?",
"cancel": "$t(common:buttons.cancel)",
"confirm": ""
"confirm": "Referenz entfernen"
}
}
}
@ -139,7 +139,7 @@
},
"emoji": {
"accessibilityLabel": "Emoji hinzufügen",
"accessibilityHint": ""
"accessibilityHint": "Emoji-Auswahlmenü öffnen, horizontal wischen, um die Seite zu ändern"
}
},
"drafts_one": "Entwurf ({{count}})",
@ -161,7 +161,7 @@
"heading": "Beschreibe den Inhalt für Sehbehinderte",
"placeholder": "Du kannst den Inhalten eine Beschreibung hinzufügen, auch \"Alt-Text\" genannt, damit sie für mehr Menschen zugänglich sind - auch für Blinde oder Sehbehinderte.\n\nGute Beschreibungen sind kurz und prägnant, geben aber den Inhalt Ihrer Medien genau genug wieder, um den Kontext zu verstehen."
},
"imageFocus": ""
"imageFocus": "Ziehe den Fokuskreis, um den Fokuspunkt zu aktualisieren"
}
},
"draftsList": {

View File

@ -117,8 +117,8 @@
},
"fields": {
"title": "Metadaten",
"total_one": "",
"total_other": ""
"total_one": "{{count}} Feld",
"total_other": "{{count}} Felder"
},
"visibility": {
"title": "Sichtbarkeit des Beitrags",
@ -184,7 +184,7 @@
"heading": "Umfrageupdate"
},
"status": {
"heading": ""
"heading": "Toot eines abonnierten Nutzers"
},
"howitworks": "Erfahre, wie das Routing funktioniert"
},

View File

@ -107,7 +107,7 @@
"accessibilityHint": "User's account"
}
},
"application": "Tooted with {{application}}",
"application": "Via {{application}}",
"edited": {
"accessibilityLabel": "Toot edited"
},

View File

@ -295,7 +295,7 @@
},
"followed_by": " is following you",
"moved": "User moved",
"created_at": "Registered on: {{date}}",
"created_at": "Joined: {{date}}",
"summary": {
"statuses_count": "{{count}} toots",
"following_count": "$t(shared.users.accounts.following)",

View File

@ -1,11 +1,11 @@
{
"buttons": {
"OK": "",
"apply": "",
"cancel": ""
"OK": "OK",
"apply": "Aplicar",
"cancel": "Cancelar"
},
"customEmoji": {
"accessibilityLabel": ""
"accessibilityLabel": "Emoji personalizado {{emoji}}"
},
"message": {
"success": {
@ -15,8 +15,8 @@
"message": ""
},
"error": {
"message": ""
"message": "{{function}} falló, vuelva a intentarlo"
}
},
"separator": ""
"separator": ", "
}

View File

@ -1,76 +1,76 @@
{
"accessibilityHint": "",
"account": {
"title": "",
"title": "Acciones de usuario",
"mute": {
"action_false": "",
"action_true": ""
"action_false": "Silenciar usuario",
"action_true": "Dejar de silenciar al usuario"
},
"block": {
"action_false": "",
"action_true": ""
"action_false": "Bloquear usuario",
"action_true": "Desbloquear usuario"
},
"reports": {
"action": ""
"action": "Reportar y bloquear"
}
},
"copy": {
"action": "",
"succeed": ""
"action": "Copiar toot",
"succeed": "Copiado"
},
"instance": {
"title": "",
"title": "Acción de instancia",
"block": {
"action": "",
"action": "Bloquear instancia {{instance}}",
"alert": {
"title": "",
"message": "",
"title": "¿Confirmar bloqueo de la instancia {{instance}}?",
"message": "Puedes silenciar o bloquear a un usuario.\n\nTras bloquear una instancia, todo su contenido junto con sus seguidores se eliminarán.",
"buttons": {
"confirm": ""
"confirm": "Confirmar"
}
}
}
},
"share": {
"status": {
"action": ""
"action": "Compartir toot"
},
"account": {
"action": ""
"action": "Compartir usuario"
}
},
"status": {
"title": "",
"title": "Acciones del toot",
"edit": {
"action": ""
"action": "Editar toot"
},
"delete": {
"action": "",
"action": "Eliminar toot",
"alert": {
"title": "",
"message": "",
"title": "¿Confirmar eliminación?",
"message": "Todos los boosts y favoritos se eliminarán, incluidas todas las respuestas.",
"buttons": {
"confirm": ""
"confirm": "Confirmar"
}
}
},
"deleteEdit": {
"action": "",
"action": "Eliminar toot y volver a publicar",
"alert": {
"title": "",
"message": "",
"title": "¿Confirmar eliminación y volver a publicar?",
"message": "Todos los boosts y favoritos se eliminarán, incluidas todas las respuestas.",
"buttons": {
"confirm": ""
"confirm": "Confirmar"
}
}
},
"mute": {
"action_false": "",
"action_true": ""
"action_false": "Silenciar toot y respuestas",
"action_true": "Dejar de silenciar el toot y sus respuestas"
},
"pin": {
"action_false": "",
"action_true": ""
"action_false": "Fijar toot",
"action_true": "Desfijar toot"
}
}
}

View File

@ -1 +1,3 @@
{}
{
"frequentUsed": "Usados frecuentemente"
}

View File

@ -1,29 +1,29 @@
{
"server": {
"textInput": {
"placeholder": ""
"placeholder": "Dominio de la instancia"
},
"button": "",
"button": "Iniciar sesión",
"information": {
"name": "",
"accounts": "",
"statuses": "",
"name": "Nombre",
"accounts": "Usuarios",
"statuses": "Toots",
"domains": ""
},
"disclaimer": {
"base": ""
"base": "El inicio de sesión usa el navegador del sistema, y la información de la cuenta no será visible para tooot."
},
"terms": {
"base": ""
"base": "Al iniciar sesión, aceptas la <0>política de privacidad</0> y los <1> términos del servicio</1>."
}
},
"update": {
"alert": {
"title": "",
"message": "",
"title": "Iniciado sesión en esta instancia",
"message": "Puedes iniciar sesión en otra cuenta, manteniendo conectadas las cuentas actuales",
"buttons": {
"cancel": "",
"continue": ""
"cancel": "$t(common:buttons.cancel)",
"continue": "Continuar"
}
}
}

View File

@ -1,10 +1,10 @@
{
"title": "",
"message": "",
"message": "Los datos multimedia EXIF no se han subido",
"options": {
"image": "",
"image_max": "",
"video": "",
"video_max": ""
"image": "Subir fotos",
"image_max": "Subir fotos (máx. {{max}})",
"video": "Subir vídeo",
"video_max": "Subir vídeo (máx. {{max}})"
}
}

View File

@ -1,8 +1,8 @@
{
"HTML": {
"accessibilityHint": "",
"expanded": "",
"moreLines": "",
"defaultHint": ""
"accessibilityHint": "Toca para expandir o contraer contenido",
"expanded": "{{hint}}{{moreLines}}",
"moreLines": " ({{count}} líneas más)",
"defaultHint": "Toot largo"
}
}

View File

@ -1,16 +1,16 @@
{
"follow": {
"function": ""
"function": "Seguir usuario"
},
"block": {
"function": ""
"function": "Bloquear usuario"
},
"button": {
"error": "",
"blocked_by": "",
"blocking": "",
"following": "",
"requested": "",
"default": ""
"error": "Error al cargar",
"blocked_by": "Bloqueado por el usuario",
"blocking": "Desbloquear",
"following": "Dejar de seguir",
"requested": "Retirar solicitud",
"default": "Seguir"
}
}

View File

@ -1,101 +1,101 @@
{
"empty": {
"error": {
"message": "",
"button": ""
"message": "Error al cargar",
"button": "Reintentar"
},
"success": {
"message": ""
"message": "Cronología vacía"
}
},
"end": {
"message": ""
"message": "Ya estás. ¿Te apetece una taza de <0 />?"
},
"lookback": {
"message": ""
"message": "Leído en"
},
"refresh": {
"fetchPreviousPage": "",
"refetch": ""
"fetchPreviousPage": "Más reciente desde aquí",
"refetch": "Al último"
},
"shared": {
"actioned": {
"pinned": "",
"favourite": "",
"status": "",
"follow": "",
"follow_request": "",
"poll": "",
"pinned": "Fijado",
"favourite": "{{name}} marcó tu toot como favorito",
"status": "{{name}} acaba de tootear",
"follow": "{{name}} te ha seguido",
"follow_request": "{{name}} ha solicitado seguirte",
"poll": "Una encuesta en la que has votado ha terminado",
"reblog": {
"default": "",
"notification": ""
"default": "{{name}} impulsado",
"notification": "{{name}} ha impulsado tu toot"
},
"update": ""
"update": "El impulso ha sido editado"
},
"actions": {
"reply": {
"accessibilityLabel": ""
"accessibilityLabel": "Responder a este toot"
},
"reblogged": {
"accessibilityLabel": "",
"function": "",
"accessibilityLabel": "Impulsa este toot",
"function": "Impulsar toot",
"options": {
"title": "",
"public": "",
"unlisted": ""
"title": "Elige la visibilidad del impulso",
"public": "Impulso público",
"unlisted": "Impulso no listado"
}
},
"favourited": {
"accessibilityLabel": "",
"accessibilityLabel": "Agregar este toot en favoritos",
"function": ""
},
"bookmarked": {
"accessibilityLabel": "",
"accessibilityLabel": "Añadir este toot en marcadores",
"function": ""
}
},
"actionsUsers": {
"reblogged_by": {
"accessibilityLabel": "",
"accessibilityHint": "",
"text": ""
"accessibilityLabel": "{{count}} usuarios han impulsado este toot",
"accessibilityHint": "Pulsa para conocer los usuarios",
"text": "$t(screenTabs:shared.users.statuses.reblogged_by)"
},
"favourited_by": {
"accessibilityLabel": "",
"accessibilityHint": "",
"text": ""
"accessibilityLabel": "{{count}} usuarios han marcado como favoritos este toot",
"accessibilityHint": "Pulsa para conocer los usuarios",
"text": "$t(screenTabs:shared.users.statuses.favourited_by)"
},
"history": {
"accessibilityLabel": "",
"accessibilityHint": "",
"text_one": "",
"text_other": ""
"accessibilityLabel": "Este toot ha sido editado {{count}} veces",
"accessibilityHint": "Pulse para ver todo el historial de ediciones",
"text_one": "{{count}} edición",
"text_other": "{{count}} ediciones"
}
},
"attachment": {
"sensitive": {
"button": ""
"button": "Mostrar contenido sensible"
},
"unsupported": {
"text": "",
"text": "Error al cargar",
"button": ""
}
},
"avatar": {
"accessibilityLabel": "",
"accessibilityHint": ""
"accessibilityLabel": "Avatar de {{name}}",
"accessibilityHint": "Pulsa para ir a la página de {{name}}"
},
"content": {
"expandHint": ""
"expandHint": "Contenido oculto"
},
"filtered": "",
"fullConversation": "",
"filtered": "Filtrado: {{phrase}}.",
"fullConversation": "Leer conversaciones",
"translate": {
"default": "",
"succeed": "",
"failed": "",
"source_not_supported": "",
"target_not_supported": ""
"default": "Traducir",
"succeed": "Traducido por {{provider}} desde {{source}}",
"failed": "Error al traducir",
"source_not_supported": "El idioma del toot no está soportado",
"target_not_supported": "Este idioma no está soportado"
},
"header": {
"shared": {
@ -104,47 +104,47 @@
"accessibilityHint": ""
},
"account": {
"accessibilityHint": ""
"accessibilityHint": "Cuenta de usuario"
}
},
"application": "",
"application": "Con {{application}}",
"edited": {
"accessibilityLabel": ""
"accessibilityLabel": "Toot editado"
},
"muted": {
"accessibilityLabel": ""
"accessibilityLabel": "Toot silenciado"
},
"visibility": {
"direct": {
"accessibilityLabel": ""
"accessibilityLabel": "El toot es un mensaje directo"
},
"private": {
"accessibilityLabel": ""
"accessibilityLabel": "El toot es visible solo para los seguidores"
}
}
},
"conversation": {
"withAccounts": "",
"withAccounts": "Con",
"delete": {
"function": ""
"function": "Eliminar mensaje directo"
}
}
},
"poll": {
"meta": {
"button": {
"vote": "",
"refresh": ""
"vote": "Votar",
"refresh": "Actualizar"
},
"count": {
"voters_one": "",
"voters_other": "",
"votes_one": "",
"votes_other": ""
"voters_one": "{{count}} usuarios ha votado",
"voters_other": "{{count}} usuarios han votado",
"votes_one": "{{count}} voto",
"votes_other": "{{count}} votos"
},
"expiration": {
"expired": "",
"until": ""
"expired": "Votación expirada",
"until": "Expira <0 />"
}
}
}

18
src/i18n/es/index.ts Normal file
View File

@ -0,0 +1,18 @@
export default {
common: require('./common'),
screens: require('./screens'),
screenActions: require('./screens/actions'),
screenAnnouncements: require('./screens/announcements'),
screenCompose: require('./screens/compose'),
screenImageViewer: require('./screens/imageViewer'),
screenTabs: require('./screens/tabs'),
componentContextMenu: require('./components/contextMenu'),
componentEmojis: require('./components/emojis'),
componentInstance: require('./components/instance'),
componentMediaSelector: require('./components/mediaSelector'),
componentParse: require('./components/parse'),
componentRelationship: require('./components/relationship'),
componentTimeline: require('./components/timeline')
}

View File

@ -1,18 +1,18 @@
{
"screenshot": {
"title": "",
"message": "",
"button": ""
"title": "Protección de la privacidad",
"message": "Por favor, no revele la identidad de otros usuarios, como nombre de usuario, avatar, etc. ¡Gracias!",
"button": "Confirmar"
},
"localCorrupt": {
"message": ""
"message": "La sesión se ha expirado. Por favor, vuelve a iniciar sesión"
},
"pushError": {
"message": "",
"description": ""
"message": "Error del servicio push",
"description": "Por favor, vuelva a habilitar las notificaciones push en los ajustes"
},
"shareError": {
"imageNotSupported": "",
"videoNotSupported": ""
"imageNotSupported": "Formato de imagen {{type}} no soportado",
"videoNotSupported": "Formato de vídeo {{type}} no soportado"
}
}

View File

@ -1,6 +1,6 @@
{
"heading": "",
"heading": "Compartir con...",
"content": {
"select_account": ""
"select_account": "Seleccionar cuenta"
}
}

View File

@ -1,19 +1,19 @@
{
"content": {
"altText": {
"heading": ""
"heading": "Texto alternativo"
},
"notificationsFilter": {
"heading": "",
"heading": "Mostrar tipos de notificación",
"content": {
"follow": "",
"follow_request": "",
"favourite": "",
"reblog": "",
"mention": "",
"poll": "",
"status": "",
"update": ""
"follow": "$t(screenTabs:me.push.follow.heading)",
"follow_request": "Solicitud de seguimiento",
"favourite": "$t(screenTabs:me.push.favourite.heading)",
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "Toot de usuarios suscritos",
"update": "El impulso ha sido editado"
}
}
}

View File

@ -1,10 +1,10 @@
{
"heading": "",
"heading": "Avisos",
"content": {
"published": "",
"published": "<0 /> publicado",
"button": {
"read": "",
"unread": ""
"read": "Leer",
"unread": "Marcar como leído"
}
}
}

View File

@ -1,35 +1,35 @@
{
"heading": {
"left": {
"button": "",
"button": "Cancelar",
"alert": {
"title": "",
"title": "¿Cancelar edición?",
"buttons": {
"save": "",
"delete": "",
"cancel": ""
"save": "Guardar borrador",
"delete": "Eliminar borrador",
"cancel": "Cancelar"
}
}
},
"right": {
"button": {
"default": "",
"conversation": "",
"reply": "",
"deleteEdit": "",
"edit": "",
"share": ""
"default": "Toot",
"conversation": "Mensaje privado",
"reply": "Respuesta al toot",
"deleteEdit": "Toot",
"edit": "Toot",
"share": "Toot"
},
"alert": {
"default": {
"title": "",
"button": ""
"title": "Error al tootear",
"button": "Reintentar"
},
"removeReply": {
"title": "",
"description": "",
"cancel": "",
"confirm": ""
"title": "No se pudo encontrar el toot respondido",
"description": "El toot respondido podría haber sido eliminado. ¿Quieres eliminarlo de tu referencia?",
"cancel": "$t(common:buttons.cancel)",
"confirm": "Eliminar referencia"
}
}
}
@ -37,143 +37,143 @@
"content": {
"root": {
"header": {
"postingAs": "",
"postingAs": "Tooteando como @{{acct}}@{{domain}}",
"spoilerInput": {
"placeholder": ""
"placeholder": "Mensaje de aviso de spoiler"
},
"textInput": {
"placeholder": "",
"placeholder": "Qué está pasando",
"keyboardImage": {
"exceedMaximum": {
"title": "",
"OK": ""
"title": "Número máximo de adjuntos alcanzado",
"OK": "$t(common:buttons.OK)"
}
}
}
},
"footer": {
"attachments": {
"sensitive": "",
"sensitive": "Marcar adjuntos como sensibles",
"remove": {
"accessibilityLabel": ""
"accessibilityLabel": "Eliminar adjunto subido número {{attachment}}"
},
"edit": {
"accessibilityLabel": ""
"accessibilityLabel": "Editar adjunto subido número {{attachment}}"
},
"upload": {
"accessibilityLabel": ""
"accessibilityLabel": "Subir más adjuntos"
}
},
"emojis": {
"accessibilityHint": ""
"accessibilityHint": "Toca para añadir emoji al toot"
},
"poll": {
"option": {
"placeholder": {
"accessibilityLabel": "",
"single": "",
"multiple": ""
"accessibilityLabel": "Opción {{index}}",
"single": "Respuesta única",
"multiple": "Respuesta múltiple"
}
},
"quantity": {
"reduce": {
"accessibilityLabel": "",
"accessibilityHint": ""
"accessibilityLabel": "Reducir las opciones de la encuesta a {{amount}}",
"accessibilityHint": "Se ha alcanzado el número mínimo de opciones, ahora mismo hay {{amount}}"
},
"increase": {
"accessibilityLabel": "",
"accessibilityHint": ""
"accessibilityLabel": "Incrementar el número de opciones a {{amount}}",
"accessibilityHint": "Se ha alcanzado el número máximo de opciones, ahora mismo hay {{amount}}"
}
},
"multiple": {
"heading": "",
"heading": "Tipo de encuesta",
"options": {
"single": "",
"multiple": "",
"cancel": ""
"single": "Respuesta única",
"multiple": "Respuesta múltiple",
"cancel": "$t(common:buttons.cancel)"
}
},
"expiration": {
"heading": "",
"heading": "Caducidad",
"options": {
"300": "",
"1800": "",
"3600": "",
"21600": "",
"86400": "",
"259200": "",
"604800": "",
"cancel": ""
"300": "5 minutos",
"1800": "30 minutos",
"3600": "1 hora",
"21600": "6 horas",
"86400": "1 día",
"259200": "3 días",
"604800": "7 días",
"cancel": "$t(common:buttons.cancel)"
}
}
}
},
"actions": {
"attachment": {
"accessibilityLabel": "",
"accessibilityHint": "",
"accessibilityLabel": "Subir archivo",
"accessibilityHint": "Se desactivará la encuesta si hay algún archivo adjunto",
"failed": {
"alert": {
"title": "",
"button": ""
"title": "Error al subir",
"button": "Intentar de nuevo"
}
}
},
"poll": {
"accessibilityLabel": "",
"accessibilityHint": ""
"accessibilityLabel": "Añadir encuesta",
"accessibilityHint": "No se pueden adjuntar archivos si hay una encuesta activa"
},
"visibility": {
"accessibilityLabel": "",
"title": "",
"accessibilityLabel": "La visibilidad del toot es {{visibility}}",
"title": "Visibilidad del toot",
"options": {
"public": "",
"unlisted": "",
"private": "",
"direct": "",
"cancel": ""
"public": "Público",
"unlisted": "No listado",
"private": "Solo seguidores",
"direct": "Mensaje directo",
"cancel": "$t(common:buttons.cancel)"
}
},
"spoiler": {
"accessibilityLabel": ""
"accessibilityLabel": "Espóiler"
},
"emoji": {
"accessibilityLabel": "",
"accessibilityHint": ""
"accessibilityLabel": "Añadir emoji",
"accessibilityHint": "Abrir panel de emojis, desliza horizontalmente para cambiar de página"
}
},
"drafts_one": "",
"drafts_other": ""
"drafts_one": "Borrador ({{count}})",
"drafts_other": "Borradores ({{count}})"
},
"editAttachment": {
"header": {
"title": "",
"title": "Editar archivo adjunto",
"right": {
"accessibilityLabel": "",
"accessibilityLabel": "Guardar cambios",
"failed": {
"title": "",
"button": ""
"title": "Error al editar",
"button": "Intentar de nuevo"
}
}
},
"content": {
"altText": {
"heading": "",
"placeholder": ""
"heading": "Describir para personas con dificultades de visión",
"placeholder": "Añade una descripción, también llamada texto alternativo, a tu archivo y haz que sea más accesible, incluso para personas ciegas o con dificultades de visión.\n\nLo mejor es que sean concisas, pero que expresen todo lo que aparece en las imágenes con exactitud para dar contexto."
},
"imageFocus": ""
"imageFocus": "Arrastra el círculo para cambiar el punto de atención"
}
},
"draftsList": {
"header": {
"title": ""
"title": "Borrador"
},
"warning": "",
"warning": "Los borradores solo se guardan en este dispositivo y se pueden perder. No se recomienda guardarlos por mucho tiempo.",
"content": {
"accessibilityHint": "",
"textEmpty": ""
"accessibilityHint": "Se ha guardado el borrador, toca para editar",
"textEmpty": "Sin contenido"
},
"checkAttachment": ""
"checkAttachment": "Comprobando archivos adjuntos en el servidor..."
}
}
}

View File

@ -1,17 +1,17 @@
{
"content": {
"actions": {
"accessibilityLabel": "",
"accessibilityHint": ""
"accessibilityLabel": "Más acciones para esta imagen",
"accessibilityHint": "Puedes guardar o compartir esta imagen"
},
"options": {
"save": "",
"share": "",
"cancel": ""
"save": "Guardar imagen",
"share": "Compartir imagen",
"cancel": "$t(common:buttons.cancel)"
},
"save": {
"succeed": "",
"failed": ""
"succeed": "Imagen guardada",
"failed": "Error al guardar la imagen"
}
}
}

View File

@ -1,336 +1,336 @@
{
"tabs": {
"local": {
"name": ""
"name": "Siguiendo"
},
"public": {
"name": "",
"segments": {
"left": "",
"right": ""
"left": "Federado",
"right": "Local"
}
},
"notifications": {
"name": ""
"name": "Notificaciones"
},
"me": {
"name": ""
"name": "Sobre mí"
}
},
"common": {
"search": {
"accessibilityLabel": "",
"accessibilityHint": ""
"accessibilityLabel": "Buscar",
"accessibilityHint": "Buscar hashtags, usuarios o toots"
}
},
"notifications": {
"filter": {
"accessibilityLabel": "",
"accessibilityHint": ""
"accessibilityLabel": "Filtrar",
"accessibilityHint": "Filtrar tipos de notificación"
}
},
"me": {
"stacks": {
"bookmarks": {
"name": ""
"name": "Marcadores"
},
"conversations": {
"name": ""
"name": "Mensajes directos"
},
"favourites": {
"name": ""
"name": "Favoritos"
},
"fontSize": {
"name": ""
"name": "Tamaño de fuente"
},
"language": {
"name": ""
"name": "Idioma"
},
"lists": {
"name": ""
"name": "Listas"
},
"list": {
"name": ""
"name": "Lista: {{list}}"
},
"push": {
"name": ""
"name": "Notificación push"
},
"profile": {
"name": ""
"name": "Editar perfil"
},
"profileName": {
"name": ""
"name": "Editar nombre"
},
"profileNote": {
"name": ""
"name": "Editar descripción"
},
"profileFields": {
"name": ""
"name": "Editar metadatos"
},
"settings": {
"name": ""
"name": "Ajustes de la aplicación"
},
"webSettings": {
"name": ""
"name": "Más ajustes de la cuenta"
},
"switch": {
"name": ""
"name": "Cambiar de cuenta"
}
},
"fontSize": {
"demo": "",
"demo": "<p>Este es un toot de muestra😊. Puedes elegir entre muchas opciones.<br /><br />Este ajuste solo afecta el contenido principal de los toots, pero no otros tamaños de fuente.</p>",
"sizes": {
"S": "",
"M": "",
"L": "",
"XL": "",
"XXL": ""
"S": "S",
"M": "M - Por defecto",
"L": "L",
"XL": "XL",
"XXL": "XXL"
}
},
"profile": {
"cancellation": {
"title": "",
"message": "",
"title": "Cambios no guardados",
"message": "Los cambios no se han guardado. ¿Quieres descartarlos?",
"buttons": {
"cancel": "",
"discard": ""
"cancel": "$t(common:buttons.cancel)",
"discard": "Descartar"
}
},
"feedback": {
"succeed": "",
"failed": ""
"succeed": "{{type}} actualizado",
"failed": "Error al actualizar {{type}}, inténtalo de nuevo"
},
"root": {
"name": {
"title": ""
"title": "Nombre"
},
"avatar": {
"title": "",
"description": ""
"title": "Foto",
"description": "Se reducirá a 400 x 400 px"
},
"header": {
"title": "",
"description": ""
"title": "Encabezado",
"description": "Se reducirá a 1500 x 500 px"
},
"note": {
"title": ""
"title": "Descripción"
},
"fields": {
"title": "",
"total_one": "",
"total_other": ""
"title": "Metadatos",
"total_one": "Campo {{count}}",
"total_other": "Campos {{count}}"
},
"visibility": {
"title": "",
"title": "Visibilidad de publicación",
"options": {
"public": "",
"unlisted": "",
"private": "",
"cancel": ""
"public": "Público",
"unlisted": "No listado",
"private": "Solo seguidores",
"cancel": "$t(common:buttons.cancel)"
}
},
"sensitive": {
"title": ""
"title": "Publicar contenido multimedia sensible"
},
"lock": {
"title": "",
"title": "Bloquear cuenta",
"description": ""
},
"bot": {
"title": "",
"description": ""
"title": "Cuenta bot",
"description": "Esta cuenta ejecuta principalmente acciones automatizadas y podría no ser monitorizada"
}
},
"fields": {
"group": "",
"label": "",
"content": ""
"group": "Grupo {{index}}",
"label": "Etiqueta",
"content": "Contenido"
},
"mediaSelectionFailed": ""
"mediaSelectionFailed": "El procesamiento de imagen falló. Por favor, inténtalo otra vez."
},
"push": {
"notAvailable": "",
"notAvailable": "Tu teléfono no soporta las notificaciones push de tooot",
"enable": {
"direct": "",
"settings": ""
"direct": "Habilitar notificaciones push",
"settings": "Activar en Ajustes"
},
"global": {
"heading": "",
"heading": "Habilitar para {{acct}}",
"description": ""
},
"decode": {
"heading": "",
"heading": "Mostrar detalles del mensaje",
"description": ""
},
"default": {
"heading": ""
"heading": "Predeterminado"
},
"follow": {
"heading": ""
"heading": "Nuevo seguidor"
},
"follow_request": {
"heading": ""
"heading": "Solicitud de seguimiento"
},
"favourite": {
"heading": ""
},
"reblog": {
"heading": ""
"heading": "Impulsado"
},
"mention": {
"heading": ""
"heading": "Te mencionó"
},
"poll": {
"heading": ""
"heading": "Actualizaciones de la encuesta"
},
"status": {
"heading": ""
"heading": "Toot de usuarios suscritos"
},
"howitworks": ""
},
"root": {
"announcements": {
"content": {
"unread": "",
"unread": "{{amount}} no leídos",
"read": "",
"empty": ""
}
},
"push": {
"content": {
"enabled": "",
"disabled": ""
"enabled": "Habilitado",
"disabled": "Deshabilitado"
}
},
"update": {
"title": ""
},
"logout": {
"button": "",
"button": "Cerrar sesión",
"alert": {
"title": "",
"message": "",
"title": "¿Cerrar sesión?",
"message": "Después de cerrar sesión, necesitas iniciar sesión de nuevo",
"buttons": {
"logout": "",
"cancel": ""
"logout": "Cerrar sesión",
"cancel": "$t(common:buttons.cancel)"
}
}
}
},
"settings": {
"fontsize": {
"heading": "",
"heading": "$t(me.stacks.fontSize.name)",
"content": {
"S": "",
"M": "",
"L": "",
"XL": "",
"XXL": ""
"S": "$t(me.fontSize.sizes.S)",
"M": "$t(me.fontSize.sizes.M)",
"L": "$t(me.fontSize.sizes.L)",
"XL": "$t(me.fontSize.sizes.XL)",
"XXL": "$t(me.fontSize.sizes.XXL)"
}
},
"language": {
"heading": "",
"heading": "$t(me.stacks.language.name)",
"options": {
"cancel": ""
"cancel": "$t(common:buttons.cancel)"
}
},
"theme": {
"heading": "",
"heading": "Apariencia",
"options": {
"auto": "",
"light": "",
"dark": "",
"cancel": ""
"auto": "Como el sistema",
"light": "Modo claro",
"dark": "Modo oscuro",
"cancel": "$t(common:buttons.cancel)"
}
},
"darkTheme": {
"heading": "",
"heading": "Tema oscuro",
"options": {
"lighter": "",
"darker": "",
"cancel": ""
"lighter": "Más claro",
"darker": "Más oscuro",
"cancel": "$t(common:buttons.cancel)"
}
},
"browser": {
"heading": "",
"heading": "Abrir enlaces",
"options": {
"internal": "",
"external": "",
"cancel": ""
"internal": "Dentro de la aplicación",
"external": "Usar navegador",
"cancel": "$t(common:buttons.cancel)"
}
},
"staticEmoji": {
"heading": "",
"description": ""
"heading": "Usar emojis estáticos",
"description": "Si la aplicación falla al visualizar la lista de emojis, puedes intentar usar emojis estáticos en su lugar."
},
"feedback": {
"heading": ""
"heading": "Petición de funciones"
},
"support": {
"heading": ""
"heading": "Apoyar tooot"
},
"review": {
"heading": ""
"heading": "Valorar tooot"
},
"contact": {
"heading": ""
"heading": "Contactar tooot"
},
"analytics": {
"heading": "",
"description": ""
"heading": "Ayúdanos a mejorar",
"description": "Recopilar uso no relativo al usuario"
},
"version": "",
"instanceVersion": ""
"version": "Versión v{{version}}",
"instanceVersion": "Versión de Mastodon v{{version}}"
},
"switch": {
"existing": "",
"new": ""
"existing": "Elegir sesión",
"new": "Iniciar sesión en la instancia"
}
},
"shared": {
"account": {
"actions": {
"accessibilityLabel": "",
"accessibilityHint": ""
"accessibilityLabel": "Acciones para {{user}}",
"accessibilityHint": "Puedes silenciar, bloquear, reportar o compartir este usuario"
},
"followed_by": "",
"moved": "",
"created_at": "",
"followed_by": " te sigue",
"moved": "Se ha transladado",
"created_at": "Se unió en {{date}}",
"summary": {
"statuses_count": "",
"following_count": "",
"followers_count": ""
"statuses_count": "{{count}} toots",
"following_count": "$t(shared.users.accounts.following)",
"followers_count": "$t(shared.users.accounts.followers)"
},
"toots": {
"default": "",
"all": ""
"default": "Toots",
"all": "Toots y respuestas"
},
"suspended": ""
"suspended": "Cuenta suspendida por los moderadores de tu servidor"
},
"attachments": {
"name": ""
},
"search": {
"header": {
"prefix": "",
"prefix": "Buscando",
"placeholder": ""
},
"empty": {
"general": "",
"general": "Escribe para buscar <bold>$t(screenTabs:shared.search.sections.accounts)</bold>, <bold>$t(screenTabs:shared.search.sections.hashtags)</bold> o <bold>$t(screenTabs:shared.search.sections.statuses)</bold>",
"advanced": {
"header": "",
"header": "Búsqueda avanzada",
"example": {
"account": "",
"hashtag": "",
"statusLink": "",
"accountLink": ""
"account": "$t(shared.search.header.prefix) $t(shared.search.sections.accounts)",
"hashtag": "$t(shared.search.header.prefix) $t(shared.search.sections.hashtags)",
"statusLink": "$t(shared.search.header.prefix) $t(shared.search.sections.statuses)",
"accountLink": "$t(shared.search.header.prefix) $t(shared.search.sections.accounts)"
}
}
},
"sections": {
"accounts": "",
"hashtags": "",
"statuses": ""
"accounts": "Usuario",
"hashtags": "Hashtag",
"statuses": "Toot"
},
"notFound": ""
},
@ -339,12 +339,12 @@
},
"users": {
"accounts": {
"following": "",
"followers": ""
"following": "Siguiendo {{count}}",
"followers": "{{count}} seguidores"
},
"statuses": {
"reblogged_by": "",
"favourited_by": ""
"reblogged_by": "{{count}} impulsados",
"favourited_by": "{{count}} favoritos"
}
},
"history": {

View File

@ -107,7 +107,7 @@
"accessibilityHint": "Compte de l'utilisateur"
}
},
"application": "Poussée avec {{application}}",
"application": "Avec {{application}}",
"edited": {
"accessibilityLabel": "Pouet édité"
},

View File

@ -295,7 +295,7 @@
},
"followed_by": " vous suit",
"moved": "Utilisateur déplacé",
"created_at": "Inscrit le : {{date}}",
"created_at": "Inscrit le: {{date}}",
"summary": {
"statuses_count": "{{count}} pouets",
"following_count": "$t(shared.users.accounts.following)",

View File

@ -3,6 +3,7 @@ import { initReactI18next } from 'react-i18next'
import de from '@root/i18n/de'
import en from '@root/i18n/en'
import es from '@root/i18n/es'
import fr from '@root/i18n/fr'
import it from '@root/i18n/it'
import ja from '@root/i18n/ja'
@ -18,6 +19,7 @@ import '@formatjs/intl-locale/polyfill'
import '@formatjs/intl-pluralrules/polyfill'
import '@formatjs/intl-pluralrules/locale-data/de'
import '@formatjs/intl-pluralrules/locale-data/en'
import '@formatjs/intl-pluralrules/locale-data/es'
import '@formatjs/intl-pluralrules/locale-data/fr'
import '@formatjs/intl-pluralrules/locale-data/it'
import '@formatjs/intl-pluralrules/locale-data/ja'
@ -29,6 +31,7 @@ import '@formatjs/intl-pluralrules/locale-data/zh'
import '@formatjs/intl-numberformat/polyfill'
import '@formatjs/intl-numberformat/locale-data/de'
import '@formatjs/intl-numberformat/locale-data/en'
import '@formatjs/intl-numberformat/locale-data/es'
import '@formatjs/intl-numberformat/locale-data/fr'
import '@formatjs/intl-numberformat/locale-data/it'
import '@formatjs/intl-numberformat/locale-data/ja'
@ -41,6 +44,7 @@ import '@formatjs/intl-numberformat/locale-data/zh-Hant'
import '@formatjs/intl-datetimeformat/polyfill'
import '@formatjs/intl-datetimeformat/locale-data/de'
import '@formatjs/intl-datetimeformat/locale-data/en'
import '@formatjs/intl-datetimeformat/locale-data/es'
import '@formatjs/intl-datetimeformat/locale-data/fr'
import '@formatjs/intl-datetimeformat/locale-data/it'
import '@formatjs/intl-datetimeformat/locale-data/ja'
@ -54,6 +58,7 @@ import '@formatjs/intl-datetimeformat/add-all-tz'
import '@formatjs/intl-relativetimeformat/polyfill'
import '@formatjs/intl-relativetimeformat/locale-data/de'
import '@formatjs/intl-relativetimeformat/locale-data/en'
import '@formatjs/intl-relativetimeformat/locale-data/es'
import '@formatjs/intl-relativetimeformat/locale-data/fr'
import '@formatjs/intl-relativetimeformat/locale-data/it'
import '@formatjs/intl-relativetimeformat/locale-data/ja'
@ -70,7 +75,19 @@ i18n.use(initReactI18next).init({
ns: ['common'],
defaultNS: 'common',
resources: { de, en, fr, it, ja, ko, 'pt-BR': pt_BR, vi, 'zh-Hans': zh_Hans, 'zh-Hant': zh_Hant },
resources: {
de,
en,
es,
fr,
it,
ja,
ko,
'pt-BR': pt_BR,
vi,
'zh-Hans': zh_Hans,
'zh-Hant': zh_Hant
},
returnEmptyString: false,
saveMissing: true,

View File

@ -107,7 +107,7 @@
"accessibilityHint": "Profilo dell'utente"
}
},
"application": "Pubblicato via {{application}}",
"application": "Via {{application}}",
"edited": {
"accessibilityLabel": "Toot modificato"
},

View File

@ -1,30 +1,30 @@
{
"accessibilityHint": "이 툿에 할 동작, 툿 자체나 포스트한 사용자",
"account": {
"title": "",
"title": "사용자 동작",
"mute": {
"action_false": "사용자 음소거",
"action_true": ""
"action_false": "사용자 뮤트",
"action_true": "사용자 뮤트 해제"
},
"block": {
"action_false": "사용자 차단",
"action_true": ""
"action_true": "사용자 차단 해제"
},
"reports": {
"action": ""
"action": "신고 및 차단"
}
},
"copy": {
"action": "",
"succeed": ""
"action": "툿 복사",
"succeed": "복사됨"
},
"instance": {
"title": "",
"title": "인스턴스 동작",
"block": {
"action": "인스턴스 {{instance}} 차단",
"action": "{{instance}} 인스턴스 차단",
"alert": {
"title": "",
"message": "보통은 유저 음소거나 차단으로 충분해요.\n\n인스턴스를 차단하면, 팔로워를 포함하는 인스턴스의 모든 콘텐츠가 삭제됩니다!",
"title": "정말 {{instance}} 인스턴스를 차단할까요?",
"message": "보통은 사용자 뮤트나 차단으로 충분해요.\n\n인스턴스를 차단하면, 팔로워를 포함한 인스턴스의 모든 콘텐츠가 삭제됩니다!",
"buttons": {
"confirm": "확인"
}
@ -40,37 +40,37 @@
}
},
"status": {
"title": "",
"title": "툿 동작",
"edit": {
"action": ""
"action": "툿 수정"
},
"delete": {
"action": "툿 삭제",
"alert": {
"title": "삭제 확인?",
"message": "",
"title": "정말 삭제할까요?",
"message": "답장을 포함한 모든 부스트와 즐겨찾기가 지워져요.",
"buttons": {
"confirm": "확인"
}
}
},
"deleteEdit": {
"action": "",
"action": "툿 삭제 후 다시 게시",
"alert": {
"title": "",
"message": "",
"title": "툿을 정말 삭제하고 다시 게시할까요?",
"message": "답장을 포함한 모든 부스트와 즐겨찾기가 지워져요.",
"buttons": {
"confirm": "확인"
}
}
},
"mute": {
"action_false": "",
"action_true": ""
"action_false": "툿과 답장 뮤트",
"action_true": "툿과 답장 뮤트 해제"
},
"pin": {
"action_false": "",
"action_true": ""
"action_false": "툿 고정",
"action_true": "툿 고정 해제"
}
}
}

View File

@ -1 +1,3 @@
{}
{
"frequentUsed": "자주 사용"
}

View File

@ -11,10 +11,10 @@
"domains": "연합"
},
"disclaimer": {
"base": "로그인 과정에서는 시스템 브라우저를 사용해, tooot 앱이 당신의 계정 정보를 볼 수 없어요."
"base": "로그인 과정에서는 시스템 브라우저를 사용하므로, tooot 앱은 당신의 계정 정보를 볼 수 없어요."
},
"terms": {
"base": ""
"base": "로그인을 통해 <0>개인정보 처리방침</0>과 <1>이용 약관</1>에 동의한 것으로 간주됩니다."
}
},
"update": {

View File

@ -1,10 +1,10 @@
{
"title": "미디어 소스 선택",
"message": "",
"message": "미디어의 EXIF 데이터는 업로드되지 않습니다.",
"options": {
"image": "",
"image_max": "",
"video": "",
"video_max": ""
"image": "사진 업로드",
"image_max": "사진 업로드 (최대 {{max}}개)",
"video": "동영상 업로드",
"video_max": "동영상 업로드 (최대 {{max}}개)"
}
}

View File

@ -1,8 +1,8 @@
{
"HTML": {
"accessibilityHint": "",
"accessibilityHint": "탭 하여 내용을 펼치거나 접기",
"expanded": "{{hint}}{{moreLines}}",
"moreLines": "",
"defaultHint": ""
"moreLines": " ({{count}}줄 더 보기)",
"defaultHint": "긴 툿"
}
}

View File

@ -5,7 +5,7 @@
"button": "다시 시도"
},
"success": {
"message": "타임라인"
"message": "타임라인이 비었어요"
}
},
"end": {
@ -21,16 +21,16 @@
"shared": {
"actioned": {
"pinned": "고정됨",
"favourite": "{{name}}이 내 툿을 즐겨찾기했어요",
"status": "{{name}}이 방금 포스트했어요",
"follow": "{{name}}님이 나를 팔로우했어요",
"follow_request": "{{name}}이 나에게 팔로우 요청을 보냈어요",
"favourite": "{{name}}이 내 툿을 즐겨찾기했어요",
"status": "{{name}}이 방금 포스트했어요",
"follow": "{{name}} 님이 나를 팔로우했어요",
"follow_request": "{{name}}이 나에게 팔로우 요청을 보냈어요",
"poll": "내가 참여한 투표가 끝났어요",
"reblog": {
"default": "{{name}}님이 부스트했어요",
"notification": "{{name}}이 내 툿을 부스트했어요"
"default": "{{name}} 님이 부스트했어요",
"notification": "{{name}}이 내 툿을 부스트했어요"
},
"update": ""
"update": "리블로그가 수정됨"
},
"actions": {
"reply": {
@ -40,9 +40,9 @@
"accessibilityLabel": "이 툿 부스트",
"function": "툿 부스트",
"options": {
"title": "",
"public": "",
"unlisted": ""
"title": "부스트 공개 범위 선택",
"public": "공개 부스트",
"unlisted": "타임라인에 비표시 부스트"
}
},
"favourited": {
@ -66,10 +66,10 @@
"text": "$t(screenTabs:shared.users.statuses.favourited_by)"
},
"history": {
"accessibilityLabel": "",
"accessibilityHint": "",
"text_one": "",
"text_other": ""
"accessibilityLabel": "이 툿은 {{count}}번 수정되었습니다.",
"accessibilityHint": "탭하여 전체 수정 이력 보기",
"text_one": "{{count}}번 수정됨",
"text_other": "{{count}}번 수정됨"
}
},
"attachment": {
@ -88,14 +88,14 @@
"content": {
"expandHint": "숨겨진 콘텐츠"
},
"filtered": "",
"filtered": "필터: {{phrase}}.",
"fullConversation": "대화 보기",
"translate": {
"default": "번역",
"succeed": "{{source}}에서 {{provider}}으로 번역됨",
"failed": "번역 실패",
"source_not_supported": "",
"target_not_supported": ""
"source_not_supported": "툿의 언어가 지원되지 않아요.",
"target_not_supported": "대상 언어가 지원되지 않아요."
},
"header": {
"shared": {
@ -109,7 +109,7 @@
},
"application": "{{application}}으로 툿",
"edited": {
"accessibilityLabel": ""
"accessibilityLabel": "툿 수정됨"
},
"muted": {
"accessibilityLabel": "툿 음소거됨"
@ -144,7 +144,7 @@
},
"expiration": {
"expired": "투표 종료됨",
"until": "<0 />후 료"
"until": "<0 />후 료"
}
}
}

View File

@ -12,7 +12,7 @@
"description": "푸시 알림을 설정에서 다시 활성화해주세요"
},
"shareError": {
"imageNotSupported": "",
"videoNotSupported": ""
"imageNotSupported": "{{type}} 사진 타입은 지원되지 않아요",
"videoNotSupported": "{{type}} 동영상 타입은 지원되지 않아요"
}
}

View File

@ -1,6 +1,6 @@
{
"heading": "",
"heading": "공유하기...",
"content": {
"select_account": ""
"select_account": "계정 선택"
}
}

View File

@ -1,7 +1,7 @@
{
"content": {
"altText": {
"heading": ""
"heading": "대체 텍스트"
},
"notificationsFilter": {
"heading": "알림 종류 표시",
@ -12,8 +12,8 @@
"reblog": "$t(screenTabs:me.push.reblog.heading)",
"mention": "$t(screenTabs:me.push.mention.heading)",
"poll": "$t(screenTabs:me.push.poll.heading)",
"status": "",
"update": ""
"status": "구독한 사용자의 툿",
"update": "리블로그가 수정되었습니다."
}
}
}

View File

@ -1,7 +1,7 @@
{
"heading": "공지",
"content": {
"published": "올려짐 <0 />",
"published": "<0 />에 작성됨",
"button": {
"read": "읽음",
"unread": "읽음으로 표시"

View File

@ -3,10 +3,10 @@
"left": {
"button": "취소",
"alert": {
"title": "편집을 취소할까요?",
"title": "작성을 취소할까요?",
"buttons": {
"save": "초안 저장",
"delete": "초안 삭제",
"save": "임시 저장",
"delete": "임시 저장한 내용 삭제",
"cancel": "취소"
}
}
@ -45,7 +45,7 @@
"placeholder": "무엇을 생각하고 있나요?",
"keyboardImage": {
"exceedMaximum": {
"title": "",
"title": "최대 첨부 파일 개수를 초과함",
"OK": "$t(common:buttons.OK)"
}
}
@ -53,7 +53,7 @@
},
"footer": {
"attachments": {
"sensitive": "첨부 파일 민감함으로 표시",
"sensitive": "민감한 첨부 파일로 표시",
"remove": {
"accessibilityLabel": "업로드한 첨부 파일 삭제, 번호 {{attachment}}"
},
@ -65,7 +65,7 @@
}
},
"emojis": {
"accessibilityHint": "툿에 이모지를 추가하려면 탭하세요"
"accessibilityHint": "탭하여 툿에 에모지 추가"
},
"poll": {
"option": {
@ -168,12 +168,12 @@
"header": {
"title": "초안"
},
"warning": "",
"warning": "임시 저장한 내용은 로컬에만 저장되며, 예상하지 못한 이유로 사라질 수 있어요. 내용을 오랫동안 저장할 용도로 사용하지 말아주세요.",
"content": {
"accessibilityHint": "저장된 초안, 수정하려면 탭하세요",
"textEmpty": "콘텐츠 빔"
},
"checkAttachment": ""
"checkAttachment": "서버의 첨부 파일을 확인하는 중..."
}
}
}

View File

@ -71,7 +71,7 @@
"name": "앱 설정"
},
"webSettings": {
"name": ""
"name": "더 많은 계정 설정"
},
"switch": {
"name": "계정 전환"
@ -89,7 +89,7 @@
},
"profile": {
"cancellation": {
"title": "변경사항이 저장되지 않음",
"title": "변경 사항이 저장되지 않음",
"message": "변경 사항이 저장되지 않았어요. 변경 사항 적용을 취소할까요?",
"buttons": {
"cancel": "$t(common:buttons.cancel)",
@ -146,7 +146,7 @@
"label": "라벨",
"content": "내용"
},
"mediaSelectionFailed": ""
"mediaSelectionFailed": "이미지 처리에 실패했어요. 잠시 후 다시 시도해주세요."
},
"push": {
"notAvailable": "이 기기는 tooot의 푸시 알림을 지원하지 않아요",
@ -169,7 +169,7 @@
"heading": "새 팔로워"
},
"follow_request": {
"heading": ""
"heading": "팔로우 요청"
},
"favourite": {
"heading": "즐겨찾기됨"
@ -184,7 +184,7 @@
"heading": "투표 업데이트"
},
"status": {
"heading": ""
"heading": "구독한 사용자의 툿"
},
"howitworks": "라우팅 방법 알아보기"
},
@ -244,10 +244,10 @@
}
},
"darkTheme": {
"heading": "",
"heading": "다크 테마",
"options": {
"lighter": "",
"darker": "",
"lighter": "밝게",
"darker": "어둡게",
"cancel": "$t(common:buttons.cancel)"
}
},
@ -260,11 +260,11 @@
}
},
"staticEmoji": {
"heading": "",
"description": ""
"heading": "정적인 에모지 사용",
"description": "에모지 목록 화면에서 자주 앱이 강제 종료된다면, 정적인 에모지를 사용해보세요."
},
"feedback": {
"heading": ""
"heading": "기능 제안"
},
"support": {
"heading": "tooot 기부"
@ -280,7 +280,7 @@
"description": "유저와 관련이 없는 사용량만 수집해요"
},
"version": "버전 v{{version}}",
"instanceVersion": ""
"instanceVersion": "마스토돈 버전 v{{version}}"
},
"switch": {
"existing": "로그인된 것 중 선택",
@ -293,7 +293,7 @@
"accessibilityLabel": "사용자 {{user}}에 대한 동작",
"accessibilityHint": "이 사용자를 뮤트, 차단, 신고 또는 공유할 수 있어요"
},
"followed_by": "",
"followed_by": " 님은 당신을 팔로우 중입니다.",
"moved": "유저가 이동함",
"created_at": "등록된 날: {{date}}",
"summary": {
@ -305,7 +305,7 @@
"default": "툿",
"all": "툿과 답장"
},
"suspended": ""
"suspended": "계정이 서버 관리자에 의해 정지되었어요."
},
"attachments": {
"name": "<0 /><1>\"의 미디어</1>"
@ -348,7 +348,7 @@
}
},
"history": {
"name": ""
"name": "수정 이력"
}
}
}

View File

@ -1,14 +1,15 @@
const LOCALES = {
de: 'Deutsch',
en: 'English',
es: 'Español',
fr: 'Français',
it: 'Italiano',
ja: '日本語',
ko: '한국어',
'pt-BR': 'Português (Brasil)',
'pt-br': 'Português (Brasil)',
vi: 'Tiếng Việt',
'zh-Hans': '简体中文',
'zh-Hant': '繁體中文'
'zh-hans': '简体中文',
'zh-hant': '繁體中文'
}
export { LOCALES }

View File

@ -107,7 +107,7 @@
"accessibilityHint": "Conta do usuário"
}
},
"application": "Tooted com {{application}}",
"application": "Com {{application}}",
"edited": {
"accessibilityLabel": "Toot editado"
},

View File

@ -107,7 +107,7 @@
"accessibilityHint": "用户帐户名"
}
},
"application": "发自 {{application}}",
"application": "发自{{application}}",
"edited": {
"accessibilityLabel": "嘟文已编辑"
},

View File

@ -295,7 +295,7 @@
},
"followed_by": " 正在关注你",
"moved": "账户已迁移",
"created_at": "注册时间{{date}}",
"created_at": "注册{{date}}",
"summary": {
"statuses_count": "{{count}} 条嘟文",
"following_count": "$t(shared.users.accounts.following)",

View File

@ -88,7 +88,7 @@
"content": {
"expandHint": "隱藏內容"
},
"filtered": "",
"filtered": "已過濾:{{phrase}}。",
"fullConversation": "閱讀全部對話",
"translate": {
"default": "翻譯",

View File

@ -305,7 +305,7 @@
"default": "嘟文",
"all": "嘟文與回覆"
},
"suspended": ""
"suspended": "此帳號已被伺服器管理員停用"
},
"attachments": {
"name": "<0 /><1>的媒體</1>"

View File

@ -167,7 +167,10 @@ const ScreenCompose: React.FC<RootStackScreenProps<'Screen-Compose'>> = ({
formatText({
textInput: 'text',
composeDispatch,
content: params.accts.map(acct => `@${acct}`).join(' ') + ' ',
content:
(params.text && `${params.text}\n`) +
params.accts.map(acct => `@${acct}`).join(' ') +
' ',
disableDebounce: true
})
break

View File

@ -45,8 +45,12 @@ const SettingsApp: React.FC = () => {
/>
<MenuRow
title={t('me.settings.language.heading')}
// @ts-ignore
content={LOCALES[Platform.OS === 'ios' ? Localization.locale : i18n.language]}
content={
// @ts-ignore
LOCALES[
Platform.OS === 'ios' ? Localization.locale.toLowerCase() : i18n.language.toLowerCase()
]
}
iconBack='ChevronRight'
onPress={() =>
Platform.OS === 'ios'

View File

@ -10,8 +10,11 @@ import * as WebBrowser from 'expo-web-browser'
import React from 'react'
import { useTranslation } from 'react-i18next'
import { useSelector } from 'react-redux'
import { getInstanceActive } from '@utils/slices/instancesSlice'
import { getInstanceActive, getInstanceVersion } from '@utils/slices/instancesSlice'
import { isDevelopment, isRelease } from '@utils/checkEnvironment'
import { Platform } from 'react-native'
import Constants from 'expo-constants'
import { getExpoToken } from '@utils/slices/appSlice'
const SettingsTooot: React.FC = () => {
const instanceActive = useSelector(getInstanceActive)
@ -19,16 +22,15 @@ const SettingsTooot: React.FC = () => {
const { colors } = useTheme()
const { t } = useTranslation('screenTabs')
const instanceVersion = useSelector(getInstanceVersion, () => true)
const expoToken = useSelector(getExpoToken)
return (
<MenuContainer>
<MenuRow
title={t('me.settings.feedback.heading')}
content={
<Icon
name='MessageSquare'
size={StyleConstants.Font.Size.M}
color={colors.secondary}
/>
<Icon name='MessageSquare' size={StyleConstants.Font.Size.M} color={colors.secondary} />
}
iconBack='ChevronRight'
onPress={() => {
@ -38,13 +40,7 @@ const SettingsTooot: React.FC = () => {
/>
<MenuRow
title={t('me.settings.support.heading')}
content={
<Icon
name='Heart'
size={StyleConstants.Font.Size.M}
color={colors.red}
/>
}
content={<Icon name='Heart' size={StyleConstants.Font.Size.M} color={colors.red} />}
iconBack='ChevronRight'
onPress={() => {
analytics('settings_support_press')
@ -54,37 +50,35 @@ const SettingsTooot: React.FC = () => {
{isDevelopment || isRelease ? (
<MenuRow
title={t('me.settings.review.heading')}
content={
<Icon
name='Star'
size={StyleConstants.Font.Size.M}
color='#FF9500'
/>
}
content={<Icon name='Star' size={StyleConstants.Font.Size.M} color='#FF9500' />}
iconBack='ChevronRight'
onPress={() => {
analytics('settings_review_press')
StoreReview?.isAvailableAsync().then(() =>
StoreReview?.requestReview()
)
StoreReview?.isAvailableAsync().then(() => StoreReview?.requestReview())
}}
/>
) : null}
<MenuRow
title={t('me.settings.contact.heading')}
content={
<Icon
name='Mail'
size={StyleConstants.Font.Size.M}
color={colors.secondary}
/>
}
content={<Icon name='Mail' size={StyleConstants.Font.Size.M} color={colors.secondary} />}
iconBack='ChevronRight'
onPress={() => {
if (instanceActive !== -1) {
navigation.navigate('Screen-Compose', {
type: 'conversation',
accts: ['tooot@xmflsct.com']
accts: ['tooot@xmflsct.com'],
text:
'[' +
`${Platform.OS}/${Platform.Version}` +
' - ' +
(Constants.expoConfig?.version ? `t/${Constants.expoConfig?.version}` : '') +
' - ' +
(instanceVersion ? `m/${instanceVersion}` : '') +
' - ' +
(expoToken
? `e/${expoToken.replace(/^ExponentPushToken\[/, '').replace(/\]$/, '')}`
: '') +
']'
})
} else {
WebBrowser.openBrowserAsync('https://social.xmflsct.com/@tooot')

View File

@ -38,6 +38,7 @@ export type RootStackParamList = {
| {
type: 'conversation'
accts: Mastodon.Account['acct'][]
text?: string // For contacting tooot only
}
| {
type: 'share'

View File

@ -9,7 +9,7 @@ export const retrieveExpoToken = createAsyncThunk(
'app/expoToken',
async (): Promise<string> => {
if (isDevelopment) {
return 'DEVELOPMENT_TOKEN_1'
return 'ExponentPushToken[DEVELOPMENT_1]'
}
const res = await Notifications.getExpoPushTokenAsync({

249
yarn.lock
View File

@ -1141,10 +1141,10 @@
mv "~2"
safe-json-stringify "~1"
"@expo/cli@0.4.8":
version "0.4.8"
resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.4.8.tgz#274b09a3c4573bedcd9e38959cbe4999c4978c4f"
integrity sha512-Q0kXWS+L96bv5GBrotw0XtDpoN0zbB0DOFel7Vb6GKwAKcQPifCdakbLP4cz8t7ED89lLgLpYT54t6aD5eEVFA==
"@expo/cli@0.4.9":
version "0.4.9"
resolved "https://registry.yarnpkg.com/@expo/cli/-/cli-0.4.9.tgz#24a2714b11a918b588138220c79b4ec9b553adba"
integrity sha512-/9ljfK4eMWXb97XWSJgxcSWpuKXABHFd7Q8Kswp24B2Y5w4MIyaEPhSErIJYTq/FJH7p98Ti1zhk/PhBL0vVTw==
dependencies:
"@babel/runtime" "^7.14.0"
"@expo/code-signing-certificates" "^0.0.2"
@ -1157,7 +1157,7 @@
"@expo/osascript" "^2.0.31"
"@expo/package-manager" "~0.0.53"
"@expo/plist" "^0.0.18"
"@expo/prebuild-config" "5.0.6"
"@expo/prebuild-config" "5.0.7"
"@expo/rudder-sdk-node" "1.1.1"
"@expo/spawn-async" "1.5.0"
"@expo/xcpretty" "^4.2.1"
@ -1539,10 +1539,10 @@
semver "7.3.2"
xml2js "0.4.23"
"@expo/prebuild-config@5.0.6":
version "5.0.6"
resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-5.0.6.tgz#817d477ee76031d56a12514db52a27f5aec701b7"
integrity sha512-umHVsle+inPFPt+GMWRjZhkHwNbbaXpiEKbRnWKweInaXEZa9R9qt8gLyzniaREnw+/cEAIgL1znrKmNk4lUfQ==
"@expo/prebuild-config@5.0.7":
version "5.0.7"
resolved "https://registry.yarnpkg.com/@expo/prebuild-config/-/prebuild-config-5.0.7.tgz#4658b66126c4d32c7b6302571e458a71811b07aa"
integrity sha512-D+TBpJUHe4+oTGFPb4o0rrw/h1xxc6wF+abJnbDHUkhnaeiHkE2O3ByS7FdiZ2FT36t0OKqeSKG/xFwWT3m1Ew==
dependencies:
"@expo/config" "~7.0.2"
"@expo/config-plugins" "~5.0.3"
@ -1806,19 +1806,12 @@
resolved "https://registry.yarnpkg.com/@ide/backoff/-/backoff-1.0.0.tgz#466842c25bd4a4833e0642fab41ccff064010176"
integrity sha512-F0YfUDjvT+Mtt/R4xdl2X0EYCHMMiJqNLdxHD++jDT5ydEFIyqbCHh51Qx2E211dgZprPKhV7sHmnXKpLuvc5g==
"@jest/create-cache-key-function@^29.0.3":
version "29.3.1"
resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-29.3.1.tgz#3a0970ea595ab3d9507244edbcef14d6b016cdc9"
integrity sha512-4i+E+E40gK13K78ffD/8cy4lSSqeWwyXeTZoq16tndiCP12hC8uQsPJdIu5C6Kf22fD8UbBk71so7s/6VwpUOQ==
"@jest/create-cache-key-function@^27.0.1":
version "27.5.1"
resolved "https://registry.yarnpkg.com/@jest/create-cache-key-function/-/create-cache-key-function-27.5.1.tgz#7448fae15602ea95c828f5eceed35c202a820b31"
integrity sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==
dependencies:
"@jest/types" "^29.3.1"
"@jest/schemas@^29.0.0":
version "29.0.0"
resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a"
integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==
dependencies:
"@sinclair/typebox" "^0.24.1"
"@jest/types" "^27.5.1"
"@jest/types@^26.6.2":
version "26.6.2"
@ -1842,18 +1835,6 @@
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
"@jest/types@^29.3.1":
version "29.3.1"
resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.3.1.tgz#7c5a80777cb13e703aeec6788d044150341147e3"
integrity sha512-d0S0jmmTpjnhCmNpApgX3jrUZgZ22ivKJRvL2lli5hpCRoNnp1f85r2/wpKfXuYu8E7Jjh1hGfhPyup1NM5AmA==
dependencies:
"@jest/schemas" "^29.0.0"
"@types/istanbul-lib-coverage" "^2.0.0"
"@types/istanbul-reports" "^3.0.0"
"@types/node" "*"
"@types/yargs" "^17.0.8"
chalk "^4.0.0"
"@jridgewell/gen-mapping@^0.1.0":
version "0.1.1"
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996"
@ -1995,7 +1976,7 @@
dependencies:
serve-static "^1.13.1"
"@react-native-community/cli-doctor@^9.2.1":
"@react-native-community/cli-doctor@^9.3.0":
version "9.3.0"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-doctor/-/cli-doctor-9.3.0.tgz#8817a3fd564453467def5b5bc8aecdc4205eff50"
integrity sha512-/fiuG2eDGC2/OrXMOWI5ifq4X1gdYTQhvW2m0TT5Lk1LuFiZsbTCp1lR+XILKekuTvmYNjEGdVpeDpdIWlXdEA==
@ -2017,7 +1998,7 @@
sudo-prompt "^9.0.0"
wcwidth "^1.0.1"
"@react-native-community/cli-hermes@^9.2.1":
"@react-native-community/cli-hermes@^9.3.1":
version "9.3.1"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-hermes/-/cli-hermes-9.3.1.tgz#569d27c1effd684ba451ad4614e29a99228cec49"
integrity sha512-Mq4PK8m5YqIdaVq5IdRfp4qK09aVO+aiCtd6vjzjNUgk1+1X5cgUqV6L65h4N+TFJYJHcp2AnB+ik1FAYXvYPQ==
@ -2028,20 +2009,7 @@
hermes-profile-transformer "^0.0.6"
ip "^1.1.5"
"@react-native-community/cli-platform-android@9.2.1":
version "9.2.1"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-9.2.1.tgz#cd73cb6bbaeb478cafbed10bd12dfc01b484d488"
integrity sha512-VamCZ8nido3Q3Orhj6pBIx48itORNPLJ7iTfy3nucD1qISEDih3DOzCaQCtmqdEBgUkNkNl0O+cKgq5A3th3Zg==
dependencies:
"@react-native-community/cli-tools" "^9.2.1"
chalk "^4.1.2"
execa "^1.0.0"
fs-extra "^8.1.0"
glob "^7.1.3"
logkitty "^0.7.1"
slash "^3.0.0"
"@react-native-community/cli-platform-android@^9.3.1":
"@react-native-community/cli-platform-android@9.3.1", "@react-native-community/cli-platform-android@^9.3.1":
version "9.3.1"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-android/-/cli-platform-android-9.3.1.tgz#378cd72249653cc74672094400657139f21bafb8"
integrity sha512-m0bQ6Twewl7OEZoVf79I2GZmsDqh+Gh0bxfxWgwxobsKDxLx8/RNItAo1lVtTCgzuCR75cX4EEO8idIF9jYhew==
@ -2054,18 +2022,7 @@
logkitty "^0.7.1"
slash "^3.0.0"
"@react-native-community/cli-platform-ios@9.2.1":
version "9.2.1"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.2.1.tgz#d90740472216ffae5527dfc5f49063ede18a621f"
integrity sha512-dEgvkI6CFgPk3vs8IOR0toKVUjIFwe4AsXFvWWJL5qhrIzW9E5Owi0zPkSvzXsMlfYMbVX0COfVIK539ZxguSg==
dependencies:
"@react-native-community/cli-tools" "^9.2.1"
chalk "^4.1.2"
execa "^1.0.0"
glob "^7.1.3"
ora "^5.4.1"
"@react-native-community/cli-platform-ios@^9.3.0":
"@react-native-community/cli-platform-ios@9.3.0", "@react-native-community/cli-platform-ios@^9.3.0":
version "9.3.0"
resolved "https://registry.yarnpkg.com/@react-native-community/cli-platform-ios/-/cli-platform-ios-9.3.0.tgz#45abde2a395fddd7cf71e8b746c1dc1ee2260f9a"
integrity sha512-nihTX53BhF2Q8p4B67oG3RGe1XwggoGBrMb6vXdcu2aN0WeXJOXdBLgR900DAA1O8g7oy1Sudu6we+JsVTKnjw==
@ -2129,16 +2086,16 @@
dependencies:
joi "^17.2.1"
"@react-native-community/cli@9.2.1":
version "9.2.1"
resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-9.2.1.tgz#15cc32531fc323d4232d57b1f2d7c571816305ac"
integrity sha512-feMYS5WXXKF4TSWnCXozHxtWq36smyhGaENXlkiRESfYZ1mnCUlPfOanNCAvNvBqdyh9d4o0HxhYKX1g9l6DCQ==
"@react-native-community/cli@9.3.2":
version "9.3.2"
resolved "https://registry.yarnpkg.com/@react-native-community/cli/-/cli-9.3.2.tgz#81761880af00c1894d85380d8c9a358659865204"
integrity sha512-IAW4X0vmX/xozNpp/JVZaX7MrC85KV0OP2DF4o7lNGOfpUhzJAEWqTfkxFYS+VsRjZHDve4wSTiGIuXwE7FG1w==
dependencies:
"@react-native-community/cli-clean" "^9.2.1"
"@react-native-community/cli-config" "^9.2.1"
"@react-native-community/cli-debugger-ui" "^9.0.0"
"@react-native-community/cli-doctor" "^9.2.1"
"@react-native-community/cli-hermes" "^9.2.1"
"@react-native-community/cli-doctor" "^9.3.0"
"@react-native-community/cli-hermes" "^9.3.1"
"@react-native-community/cli-plugin-metro" "^9.2.1"
"@react-native-community/cli-server-api" "^9.2.1"
"@react-native-community/cli-tools" "^9.2.1"
@ -2414,11 +2371,6 @@
resolved "https://registry.yarnpkg.com/@sideway/pinpoint/-/pinpoint-2.0.0.tgz#cff8ffadc372ad29fd3f78277aeb29e632cc70df"
integrity sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==
"@sinclair/typebox@^0.24.1":
version "0.24.51"
resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.51.tgz#645f33fe4e02defe26f2f5c0410e1c094eac7f5f"
integrity sha512-1P1OROm/rdubP5aFDSZQILU0vrLCJ4fvHt6EoqHEM+2D/G5MK3bIaymUKLit8Js9gbns5UyJnkP/TZROLw4tUA==
"@sindresorhus/is@^0.14.0":
version "0.14.0"
resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea"
@ -2525,10 +2477,10 @@
resolved "https://registry.yarnpkg.com/@types/linkify-it/-/linkify-it-3.0.2.tgz#fd2cd2edbaa7eaac7e7f3c1748b52a19143846c9"
integrity sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==
"@types/lodash@^4.14.188":
version "4.14.188"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.188.tgz#e4990c4c81f7c9b00c5ff8eae389c10f27980da5"
integrity sha512-zmEmF5OIM3rb7SbLCFYoQhO4dGt2FRM9AMkxvA3LaADOF1n8in/zGJlWji9fmafLoNyz+FoL6FE0SLtGIArD7w==
"@types/lodash@^4.14.189":
version "4.14.189"
resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.189.tgz#975ff8c38da5ae58b751127b19ad5e44b5b7f6d2"
integrity sha512-kb9/98N6X8gyME9Cf7YaqIMvYGnBSWqEci6tiettE6iJWH1XdJz/PO8LB0GtLCG7x8dU3KWhZT+lA1a35127tA==
"@types/minimatch@*":
version "5.1.2"
@ -2555,10 +2507,10 @@
resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb"
integrity sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==
"@types/react-dom@~18.0.8":
version "18.0.8"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.8.tgz#d2606d855186cd42cc1b11e63a71c39525441685"
integrity sha512-C3GYO0HLaOkk9dDAz3Dl4sbe4AKUGTCfFIZsz3n/82dPNN8Du533HzKatDxeUYWu24wJgMP1xICqkWk1YOLOIw==
"@types/react-dom@~18.0.9":
version "18.0.9"
resolved "https://registry.yarnpkg.com/@types/react-dom/-/react-dom-18.0.9.tgz#ffee5e4bfc2a2f8774b15496474f8e7fe8d0b504"
integrity sha512-qnVvHxASt/H7i+XG1U1xMiY5t+IHcPGUK7TDMDzom08xa7e86eCeKOiLZezwCKVxJn6NEiiy2ekgX8aQssjIKg==
dependencies:
"@types/react" "*"
@ -2679,13 +2631,6 @@
dependencies:
"@types/yargs-parser" "*"
"@types/yargs@^17.0.8":
version "17.0.13"
resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-17.0.13.tgz#34cced675ca1b1d51fcf4d34c3c6f0fa142a5c76"
integrity sha512-9sWaruZk2JGxIQU+IhI1fhPYRcQ0UuTNuKuCW9bR5fp7qi2Llf7WDzNa17Cy7TKnh3cdxDOiyTu6gaLS0eDatg==
dependencies:
"@types/yargs-parser" "*"
"@urql/core@2.3.6":
version "2.3.6"
resolved "https://registry.yarnpkg.com/@urql/core/-/core-2.3.6.tgz#ee0a6f8fde02251e9560c5f17dce5cd90f948552"
@ -5533,7 +5478,7 @@ expo-asset@~8.6.2:
path-browserify "^1.0.0"
url-parse "^1.5.9"
expo-auth-session@~3.7.2:
expo-auth-session@^3.7.2:
version "3.7.2"
resolved "https://registry.yarnpkg.com/expo-auth-session/-/expo-auth-session-3.7.2.tgz#4c67b9b5c4171efc79f42b19c7337baae3b4c20e"
integrity sha512-FLbliqiE39jZP+UjpMbxw8lWM+WlezgbcALr7HRkHCJHHM3taMkT8RX9oB1s68lUCA/EngcBKu5lSPDnbamcvg==
@ -5545,7 +5490,7 @@ expo-auth-session@~3.7.2:
invariant "^2.2.4"
qs "6.9.1"
expo-av@~13.0.1:
expo-av@^13.0.1:
version "13.0.1"
resolved "https://registry.yarnpkg.com/expo-av/-/expo-av-13.0.1.tgz#c37c9d5381f2dabb224afacb7e71b3d88a3fc3f5"
integrity sha512-K4+ejVwWUpE0ZSHKPsgYNc5P6aoYfF5yBKw116Gjr1Yl/vkZ/F9klzr5cED1qmHBQ/Nst78GOvu4LCTLubcNsQ==
@ -5612,7 +5557,7 @@ expo-cli@^6.0.8:
wrap-ansi "^7.0.0"
xdl "59.2.55"
expo-constants@~14.0.0, expo-constants@~14.0.2:
expo-constants@^14.0.2, expo-constants@~14.0.0, expo-constants@~14.0.2:
version "14.0.2"
resolved "https://registry.yarnpkg.com/expo-constants/-/expo-constants-14.0.2.tgz#2cb1dec8f41a64c2fc5b4eecaf77d7661cad01cc"
integrity sha512-wzV3nrzTXTI8yG0tfas3fnqCfKV6YE+1GphEREyVDAShEB6mBInX1b6HgtpHFy2wOtnml+lPVmTCeGtjjLnZhA==
@ -5620,7 +5565,7 @@ expo-constants@~14.0.0, expo-constants@~14.0.2:
"@expo/config" "~7.0.2"
uuid "^3.3.2"
expo-crypto@~12.0.0:
expo-crypto@^12.0.0, expo-crypto@~12.0.0:
version "12.0.0"
resolved "https://registry.yarnpkg.com/expo-crypto/-/expo-crypto-12.0.0.tgz#015e47fec27b07098fcef3676c6bf8b20767860a"
integrity sha512-2KC52eLYsXndDZOVFyr+K3Zs9wDgpqZ7F7fwAiUg+yNbE21CJrHKDFvo/Br0FAaDf/w9pUks5/qi1azB5sDzvg==
@ -5630,14 +5575,14 @@ expo-error-recovery@~4.0.1:
resolved "https://registry.yarnpkg.com/expo-error-recovery/-/expo-error-recovery-4.0.1.tgz#3e3333e134c992c234539d3773fe78915c883755"
integrity sha512-wceptnRX+N3qCSVTNbIchUFu3GmY30onRH5L66OF8HMLpAIQfrZMLxJfz7SAMJTcr3jxsJ11vSa2l2RaPKgHsQ==
expo-file-system@~15.1.0, expo-file-system@~15.1.1:
expo-file-system@^15.1.1, expo-file-system@~15.1.0, expo-file-system@~15.1.1:
version "15.1.1"
resolved "https://registry.yarnpkg.com/expo-file-system/-/expo-file-system-15.1.1.tgz#724090f83ff1e6378cadc0a64b83552f769eb16b"
integrity sha512-MYYDKxjLo9VOkvGHqym5EOAUS+ero9O66X5zI+EXJzqNznKvnfScdXeeAaQzShmWtmLkdVDCoYFGOaTvTA1wTQ==
dependencies:
uuid "^3.4.0"
expo-firebase-analytics@~8.0.0:
expo-firebase-analytics@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/expo-firebase-analytics/-/expo-firebase-analytics-8.0.0.tgz#69b17bf48317d95a55f28cbd485e06d4800c134b"
integrity sha512-nWYa5vm2BX+qXrB0UQPMb0vh+QSGpx9G78TetRQAa+M+96j5Y0qUEsSKWkKvkICFF8ItnhNz2vdDNWZrMLefnw==
@ -5658,7 +5603,7 @@ expo-font@~11.0.1:
dependencies:
fontfaceobserver "^2.1.0"
expo-haptics@~12.0.1:
expo-haptics@^12.0.1:
version "12.0.1"
resolved "https://registry.yarnpkg.com/expo-haptics/-/expo-haptics-12.0.1.tgz#151dc57bc01c1fa16d021e4714b23916bbc9f8e5"
integrity sha512-YubK3P3WTdjp5mFZcaF3ienqXHoDqzPpe61yTEIR5y+CVWqk+If9cC3ZYxn6lSp8KiNUmz7zC0GvUAVEqn8t6Q==
@ -5668,7 +5613,7 @@ expo-keep-awake@~11.0.1:
resolved "https://registry.yarnpkg.com/expo-keep-awake/-/expo-keep-awake-11.0.1.tgz#ee354465892a94040ffe09901b85b469e7d54fb3"
integrity sha512-44ZjgLE4lnce2d40Pv8xsjMVc6R5GvgHOwZfkLYtGmgYG9TYrEJeEj5UfSeweXPL3pBFhXKfFU8xpGYMaHdP0A==
expo-linking@~3.2.0, expo-linking@~3.2.3:
expo-linking@^3.2.3, expo-linking@~3.2.0:
version "3.2.3"
resolved "https://registry.yarnpkg.com/expo-linking/-/expo-linking-3.2.3.tgz#7b493a7fea2aadafc88a42e2fc6a5a4ba6d47df9"
integrity sha512-PgiWCao9TecLOPdtWyiNSY+UQGAwdjFx4KbHd1YsF0KnM1CJ2idcaHpDRlQPWSNmDebUZYN461/dVtJi9b2krg==
@ -5679,7 +5624,7 @@ expo-linking@~3.2.0, expo-linking@~3.2.3:
qs "^6.9.1"
url-parse "^1.5.9"
expo-localization@~14.0.0:
expo-localization@^14.0.0:
version "14.0.0"
resolved "https://registry.yarnpkg.com/expo-localization/-/expo-localization-14.0.0.tgz#d276b5a36045a15cff622125bd62a775f2015b8d"
integrity sha512-Rx4ZAANTTVuY6EnM3WXjNWn+CSpDUOaJziHPB4Az+lb4r3JMQ1H+go9s8KY9DYP0IiRM3sQhiyFQqSWzsUgvHA==
@ -5708,15 +5653,15 @@ expo-modules-autolinking@1.0.0:
find-up "^5.0.0"
fs-extra "^9.1.0"
expo-modules-core@1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.0.2.tgz#9fba6513b587299c6049f9b93bed538972209a94"
integrity sha512-xVy/EoAKnqMDgRGaichL3jG0sHh+I0VL3vluPkUJAAiakscMgdXQIknIlFr0IX9ZWRbNP5zk6lTMjZjAZopizw==
expo-modules-core@1.0.3:
version "1.0.3"
resolved "https://registry.yarnpkg.com/expo-modules-core/-/expo-modules-core-1.0.3.tgz#3d94da3524e7e7d81ae1e7e632a5e0e24db0f3f1"
integrity sha512-XqyA5c+zsK+cHDNVBVYu62HLBHyGMG0iWpXVP0bBQJWz0eyg5rcuEqLsnRTmoEz0YnH6QBf/cwRl+FfgnnH5Og==
dependencies:
compare-versions "^3.4.0"
invariant "^2.2.4"
expo-notifications@~0.17.0:
expo-notifications@^0.17.0:
version "0.17.0"
resolved "https://registry.yarnpkg.com/expo-notifications/-/expo-notifications-0.17.0.tgz#c99198cf67d9acae044e6e5acc5b481230751bd8"
integrity sha512-PPjV5WaL5iIKAqi/qsNUVf0g4htz+Mx+6tZ/Py7vIurAHbA2PymgV7UPSEB1gUbhzi5PZMGj/DNFJpSZwgqmNg==
@ -5741,37 +5686,37 @@ expo-pwa@0.0.124:
commander "2.20.0"
update-check "1.5.3"
expo-random@~13.0.0:
expo-random@^13.0.0:
version "13.0.0"
resolved "https://registry.yarnpkg.com/expo-random/-/expo-random-13.0.0.tgz#fc9c1496ac9f7555563d86de0db25966739c028f"
integrity sha512-aGb0vtUmFFuW0TF1rdOgsz89zEVD/RXUPUnnZy5+i3jJeQ2PerJ4uo72/EuWqHpCBNto8/qT+aCzFinmQDeTAA==
dependencies:
base64-js "^1.3.0"
expo-screen-capture@~5.0.0:
expo-screen-capture@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/expo-screen-capture/-/expo-screen-capture-5.0.0.tgz#3e143c0eb8ad59ce6471a38e8c275bebe694cece"
integrity sha512-HWlO0pGsqVzdH2mWjtXv97u9xrS97AaXe6ppgo8JBWTtvsDviqbHkp3DYDDf01oMWRVhM+h8NQNoCVVPj4aBxg==
expo-secure-store@~12.0.0:
expo-secure-store@^12.0.0:
version "12.0.0"
resolved "https://registry.yarnpkg.com/expo-secure-store/-/expo-secure-store-12.0.0.tgz#8baec10779708965169df3aa6406a801e4201514"
integrity sha512-Rz5lYr2NxrnFvIPwuWcseUSbdUjFxNZG0oVulqM9puuK7t5lDG3/SAy+J22ELBhaltuci2VVO6hCdFwRoRiG/Q==
expo-splash-screen@~0.17.4:
version "0.17.4"
resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.17.4.tgz#dd85a9ea61580835592d7557f8ab5689d386b2e9"
integrity sha512-tj7sKLLxxq0TwgBfCQOYxhbLnjLxb1YRif4b+CHm0bbNtS8otam5fd4auToxjaz6W2OSGh4VbmYU26YEzA1AOw==
expo-splash-screen@^0.17.5:
version "0.17.5"
resolved "https://registry.yarnpkg.com/expo-splash-screen/-/expo-splash-screen-0.17.5.tgz#a18dc59c1cc28ebbedbf0a7529a419d18ab0b311"
integrity sha512-ejSO78hwHXz8T9u8kh8t4r6CR4h70iBvA65gX8GK+dYxZl6/IANPbIb2VnUpND9vqfW+JnkDw+ZFst+gDnkpcQ==
dependencies:
"@expo/configure-splash-screen" "^0.6.0"
"@expo/prebuild-config" "5.0.6"
"@expo/prebuild-config" "5.0.7"
expo-store-review@~6.0.0:
expo-store-review@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/expo-store-review/-/expo-store-review-6.0.0.tgz#f3bf8055bbb1186495d590cc6d57e4cace23489a"
integrity sha512-Wyj0cXzgVOH0cMnNTFbdKBWGilUeMT/8FZWdhNodM0zNeLvYnP/UykbMUinViv5Q9fYVYbHgFWWXaSiQwakfaQ==
expo-video-thumbnails@~7.0.0:
expo-video-thumbnails@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/expo-video-thumbnails/-/expo-video-thumbnails-7.0.0.tgz#a98c726d529372153161735794ccf6bd9ba925f2"
integrity sha512-QTifwHjz1VL+nXX39lSZHJtbHKI8a/DVCVk6iT/WQZG1JmZdeUHObrcWlIKeDsTCB5fQWIfOmin+N9hbe4n0qw==
@ -5783,13 +5728,13 @@ expo-web-browser@~12.0.0:
dependencies:
compare-urls "^2.0.0"
expo@^47.0.3:
version "47.0.3"
resolved "https://registry.yarnpkg.com/expo/-/expo-47.0.3.tgz#e4ce7530919aeee03ada93eb80700ecb3d729995"
integrity sha512-EpWV8ZljTIEQSVPdZxaWoOrJIAPqpBEF+RDyUoDMchXp4TB40CrAKwRuWo7baMsQLfwKgs7izJyaTp+9DsLqGw==
expo@^47.0.6:
version "47.0.6"
resolved "https://registry.yarnpkg.com/expo/-/expo-47.0.6.tgz#4436bf0f667b6282f9189e987ddf67cd64807140"
integrity sha512-XFcTnkOWEbc5mbrpdgIkPq3Heuem+8OErdjnWshwiDtaCdqK0EKToJtE2ufhCxb/RzfeJ5k07mpk+8CRRayi4w==
dependencies:
"@babel/runtime" "^7.14.0"
"@expo/cli" "0.4.8"
"@expo/cli" "0.4.9"
"@expo/config" "7.0.3"
"@expo/config-plugins" "5.0.4"
"@expo/vector-icons" "^13.0.0"
@ -5802,7 +5747,7 @@ expo@^47.0.3:
expo-font "~11.0.1"
expo-keep-awake "~11.0.1"
expo-modules-autolinking "1.0.0"
expo-modules-core "1.0.2"
expo-modules-core "1.0.3"
fbemitter "^3.0.0"
getenv "^1.0.0"
invariant "^2.2.4"
@ -6963,10 +6908,10 @@ https-proxy-agent@^5.0.0, https-proxy-agent@^5.0.1:
agent-base "6"
debug "4"
i18next@^22.0.4:
version "22.0.4"
resolved "https://registry.yarnpkg.com/i18next/-/i18next-22.0.4.tgz#77d8871687b0ab072b38991e3887187823667e30"
integrity sha512-TOp7BTMKDbUkOHMzDlVsCYWpyaFkKakrrO3HNXfSz4EeJaWwnBScRmgQSTaWHScXVHBUFXTvShrCW8uryBYFcg==
i18next@^22.0.6:
version "22.0.6"
resolved "https://registry.yarnpkg.com/i18next/-/i18next-22.0.6.tgz#d7029912f8aa74ff295c0d9afd1b7dea45859b49"
integrity sha512-RlreNGoPIdDP4QG+qSA9PxZKGwlzmcozbI9ObI6+OyUa/Rp0EjZZA9ubyBjw887zVNZsC+7FI3sXX8oiTzAfig==
dependencies:
"@babel/runtime" "^7.17.2"
@ -10117,7 +10062,7 @@ promise@^7.1.1:
dependencies:
asap "~2.0.3"
promise@^8.0.3:
promise@^8.3.0:
version "8.3.0"
resolved "https://registry.yarnpkg.com/promise/-/promise-8.3.0.tgz#8cb333d1edeb61ef23869fbb8a4ea0279ab60e0a"
integrity sha512-rZPNPKTOYVNEEKFaq1HqTgOwZD+4/YHS5ukLzQCypkj+OkYx7iv0mA91lJlpPPZ8vMau3IIGj5Qlwrx+8iiSmg==
@ -10409,7 +10354,7 @@ react-devtools-core@4.24.0:
shell-quote "^1.6.1"
ws "^7"
react-dom@18.2.0:
react-dom@^18.2.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react-dom/-/react-dom-18.2.0.tgz#22aaf38708db2674ed9ada224ca4aa708d821e3d"
integrity sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==
@ -10542,10 +10487,10 @@ react-native-htmlview@^0.16.0:
entities "^1.1.1"
htmlparser2-without-node-native "^3.9.2"
react-native-image-picker@^4.10.0:
version "4.10.0"
resolved "https://registry.yarnpkg.com/react-native-image-picker/-/react-native-image-picker-4.10.0.tgz#471ca942bd1189134eff63e25903147f54aeb8c2"
integrity sha512-QNK4ZnFLD+BdiM1QL1jh9GUALhRXm3MV97crhnTCSMv50H6E4tq3ozgfyxF5uKz0cECbNkWswg4sjgqZKEJtww==
react-native-image-picker@^4.10.1:
version "4.10.1"
resolved "https://registry.yarnpkg.com/react-native-image-picker/-/react-native-image-picker-4.10.1.tgz#eb7e02124e8e649a89e4fcabb72d0312a65fe340"
integrity sha512-tPA9UtboEsZ8qtm7pX9WInlo9sf0J2ArJgP4uVgKw1QNrwkRX/kZQ6uzOSN747Dhj9WS42ce4RN+rFK86J13DQ==
react-native-iphone-x-helper@^1.3.1:
version "1.3.1"
@ -10562,7 +10507,7 @@ react-native-live-text-image-view@^0.4.0:
resolved "https://registry.yarnpkg.com/react-native-live-text-image-view/-/react-native-live-text-image-view-0.4.0.tgz#d23d5850788609fd1448533213fc6c453c584761"
integrity sha512-PhVFE0YogSLrTlnHIxUWL80CrmbDvxk1JvLx4UHiRHRwLda4dV/e/9Q+Pyh7Vq7qwAPE6vGoN6sjbXNaj4WCew==
react-native-pager-view@6.1.0:
react-native-pager-view@^6.1.0:
version "6.1.0"
resolved "https://registry.yarnpkg.com/react-native-pager-view/-/react-native-pager-view-6.1.0.tgz#6cb13fb6f2db8836c89ee8261b07603e97527ceb"
integrity sha512-wBtc77l+lWRDS1FlpeO+rE0iG/ecRtVhHrERMkm7CACQvhB+ty8NL2zlAzOCCbS83DZrIdtWuPu9VqziKHzJPw==
@ -10572,10 +10517,10 @@ react-native-reanimated-zoom@^0.3.3:
resolved "https://registry.yarnpkg.com/react-native-reanimated-zoom/-/react-native-reanimated-zoom-0.3.3.tgz#99161310c398b2d4220e75ce1d9b76eb075bf3f6"
integrity sha512-naeMV19218OsVOAw7jq45mZGxcSgvcn5xAJlXep27R0IBo/fqpLlLuXKK2nyCXyLzuIPwgqS3O+LUMcTd2L5Gg==
react-native-reanimated@~2.12.0:
version "2.12.0"
resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.12.0.tgz#5821eecfb1769b1617a67a2d4dec12fdeedb2b6e"
integrity sha512-nrlPyw+Hx9u4iJhZk9PoTvDo/QmVAd+bo7OK9Tv3hveNEF9++5oig/g3Uv9V93shy9avTYGsUprUvAEt/xdzeQ==
react-native-reanimated@^2.13.0:
version "2.13.0"
resolved "https://registry.yarnpkg.com/react-native-reanimated/-/react-native-reanimated-2.13.0.tgz#d64c1386626822d4dc22094b4efe028ff2c49cc9"
integrity sha512-yUHyYVIegWWIza4+nVyS3CSmI/Mc8kLFVHw2c6gnSHaYhYA4LeEjH/jBkoMzHk9Xd0Ra3cwtjYKAMG8OTp6JVg==
dependencies:
"@babel/plugin-transform-object-assign" "^7.16.7"
"@babel/preset-typescript" "^7.16.7"
@ -10585,12 +10530,12 @@ react-native-reanimated@~2.12.0:
setimmediate "^1.0.5"
string-hash-64 "^1.0.3"
react-native-safe-area-context@4.4.1:
react-native-safe-area-context@^4.4.1:
version "4.4.1"
resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-4.4.1.tgz#239c60b8a9a80eac70a38a822b04c0f1d15ffc01"
integrity sha512-N9XTjiuD73ZpVlejHrUWIFZc+6Z14co1K/p1IFMkImU7+avD69F3y+lhkqA2hN/+vljdZrBSiOwXPkuo43nFQA==
react-native-screens@~3.18.2:
react-native-screens@^3.18.2:
version "3.18.2"
resolved "https://registry.yarnpkg.com/react-native-screens/-/react-native-screens-3.18.2.tgz#d7ab2d145258d3db9fa630fa5379dc4474117866"
integrity sha512-ANUEuvMUlsYJ1QKukEhzhfrvOUO9BVH9Nzg+6eWxpn3cfD/O83yPBOF8Mx6x5H/2+sMy+VS5x/chWOOo/U7QJw==
@ -10603,10 +10548,10 @@ react-native-share-menu@^6.0.0:
resolved "https://registry.yarnpkg.com/react-native-share-menu/-/react-native-share-menu-6.0.0.tgz#0398dd4537ca1138b774fcbff9b05a88c8329cf6"
integrity sha512-KdmRnqjI/B2MigSxGmhbYJ3WMJxKXj+0c47ANcVZ/PTzc2vtz6d1r4KQJgkBImXgNC+vowpuD2UGdPllxadr2A==
react-native-svg@13.5.0:
version "13.5.0"
resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-13.5.0.tgz#2b34f0ab84436b3c1e57109d62012a6c031e0596"
integrity sha512-JWou/k4zfXRY6TsVgM4i30D0z54McqQ64D5cAfOzX17ThZwFjOheN24owmbAs7Y+naD0Bk5j409kT/6FZEop4g==
react-native-svg@^13.6.0:
version "13.6.0"
resolved "https://registry.yarnpkg.com/react-native-svg/-/react-native-svg-13.6.0.tgz#46e95a44aabbd778db7c46d8a1047da376b28058"
integrity sha512-1wjHCMJ8siyZbDZ0MX5wM+Jr7YOkb6GADn4/Z+/u1UwJX8WfjarypxDF3UO1ugMHa+7qor39oY+URMcrgPpiww==
dependencies:
css-select "^5.1.0"
css-tree "^1.1.3"
@ -10623,15 +10568,15 @@ react-native-tab-view@^3.3.0:
dependencies:
use-latest-callback "^0.1.5"
react-native@0.70.5:
version "0.70.5"
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.70.5.tgz#f60540b21d338891086e0a834e331c124dd1f55c"
integrity sha512-5NZM80LC3L+TIgQX/09yiyy48S73wMgpIgN5cCv3XTMR394+KpDI3rBZGH4aIgWWuwijz31YYVF5504+9n2Zfw==
react-native@0.70.6:
version "0.70.6"
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.70.6.tgz#d692f8b51baffc28e1a8bc5190cdb779de937aa8"
integrity sha512-xtQdImPHnwgraEx3HIZFOF+D1hJ9bC5mfpIdUGoMHRws6OmvHAjmFpO6qfdnaQ29vwbmZRq7yf14sbury74R/w==
dependencies:
"@jest/create-cache-key-function" "^29.0.3"
"@react-native-community/cli" "9.2.1"
"@react-native-community/cli-platform-android" "9.2.1"
"@react-native-community/cli-platform-ios" "9.2.1"
"@jest/create-cache-key-function" "^27.0.1"
"@react-native-community/cli" "9.3.2"
"@react-native-community/cli-platform-android" "9.3.1"
"@react-native-community/cli-platform-ios" "9.3.0"
"@react-native/assets" "1.0.0"
"@react-native/normalize-color" "2.0.0"
"@react-native/polyfills" "2.0.0"
@ -10648,7 +10593,7 @@ react-native@0.70.5:
mkdirp "^0.5.1"
nullthrows "^1.1.1"
pretty-format "^26.5.2"
promise "^8.0.3"
promise "^8.3.0"
react-devtools-core "4.24.0"
react-native-codegen "^0.70.6"
react-native-gradle-plugin "^0.70.3"
@ -10695,7 +10640,7 @@ react-shallow-renderer@^16.15.0:
object-assign "^4.1.1"
react-is "^16.12.0 || ^17.0.0 || ^18.0.0"
react@18.2.0:
react@^18.2.0:
version "18.2.0"
resolved "https://registry.yarnpkg.com/react/-/react-18.2.0.tgz#555bd98592883255fa00de14f1151a917b5d77d5"
integrity sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==
@ -12331,10 +12276,10 @@ typedarray@^0.0.6:
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==
typescript@^4.8.4:
version "4.8.4"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.8.4.tgz#c464abca159669597be5f96b8943500b238e60e6"
integrity sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==
typescript@^4.9.3:
version "4.9.3"
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.3.tgz#3aea307c1746b8c384435d8ac36b8a2e580d85db"
integrity sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==
ua-parser-js@^0.7.30:
version "0.7.32"