mirror of https://github.com/tooot-app/app
commit
eedeb6394f
|
@ -10,11 +10,10 @@ jobs:
|
||||||
runs-on: macos-12
|
runs-on: macos-12
|
||||||
steps:
|
steps:
|
||||||
- name: -- Step 0 -- Extract branch name
|
- name: -- Step 0 -- Extract branch name
|
||||||
shell: bash
|
uses: tj-actions/branch-names@v6
|
||||||
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
|
|
||||||
id: branch
|
id: branch
|
||||||
- name: -- Step 1 -- Checkout code
|
- name: -- Step 1 -- Checkout code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
- name: -- Step 2 -- Setup node
|
- name: -- Step 2 -- Setup node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
|
@ -26,8 +25,8 @@ jobs:
|
||||||
- name: -- Step 5 -- Run fastlane
|
- name: -- Step 5 -- Run fastlane
|
||||||
env:
|
env:
|
||||||
DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer
|
DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer
|
||||||
ENVIRONMENT: ${{ steps.branch.outputs.branch }}
|
ENVIRONMENT: ${{ steps.branch.outputs.current_branch }}
|
||||||
SENTRY_ENVIRONMENT: ${{ steps.branch.outputs.branch }}
|
SENTRY_ENVIRONMENT: ${{ steps.branch.outputs.current_branch }}
|
||||||
LC_ALL: en_US.UTF-8
|
LC_ALL: en_US.UTF-8
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
SENTRY_ORGANIZATION: ${{ secrets.SENTRY_ORGANIZATION }}
|
SENTRY_ORGANIZATION: ${{ secrets.SENTRY_ORGANIZATION }}
|
||||||
|
@ -47,11 +46,10 @@ jobs:
|
||||||
runs-on: macos-12
|
runs-on: macos-12
|
||||||
steps:
|
steps:
|
||||||
- name: -- Step 0 -- Extract branch name
|
- name: -- Step 0 -- Extract branch name
|
||||||
shell: bash
|
uses: tj-actions/branch-names@v6
|
||||||
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
|
|
||||||
id: branch
|
id: branch
|
||||||
- name: -- Step 1 -- Checkout code
|
- name: -- Step 1 -- Checkout code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
- name: -- Step 2 -- Setup node
|
- name: -- Step 2 -- Setup node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
|
@ -67,8 +65,8 @@ jobs:
|
||||||
run: bundle install
|
run: bundle install
|
||||||
- name: -- Step 6 -- Run fastlane
|
- name: -- Step 6 -- Run fastlane
|
||||||
env:
|
env:
|
||||||
ENVIRONMENT: ${{ steps.branch.outputs.branch }}
|
ENVIRONMENT: ${{ steps.branch.outputs.current_branch }}
|
||||||
SENTRY_ENVIRONMENT: ${{ steps.branch.outputs.branch }}
|
SENTRY_ENVIRONMENT: ${{ steps.branch.outputs.current_branch }}
|
||||||
LC_ALL: en_US.UTF-8
|
LC_ALL: en_US.UTF-8
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
ANDROID_KEYSTORE: ${{ secrets.ANDROID_KEYSTORE }}
|
ANDROID_KEYSTORE: ${{ secrets.ANDROID_KEYSTORE }}
|
||||||
|
@ -84,11 +82,10 @@ jobs:
|
||||||
needs: [build-ios, build-android]
|
needs: [build-ios, build-android]
|
||||||
steps:
|
steps:
|
||||||
- name: -- Step 0 -- Extract branch name
|
- name: -- Step 0 -- Extract branch name
|
||||||
shell: bash
|
uses: tj-actions/branch-names@v6
|
||||||
run: echo "##[set-output name=branch;]$(echo ${GITHUB_REF#refs/heads/})"
|
|
||||||
id: branch
|
id: branch
|
||||||
- name: -- Step 1 -- Checkout code
|
- name: -- Step 1 -- Checkout code
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
- name: -- Step 2 -- Setup node
|
- name: -- Step 2 -- Setup node
|
||||||
uses: actions/setup-node@v3
|
uses: actions/setup-node@v3
|
||||||
with:
|
with:
|
||||||
|
@ -104,8 +101,8 @@ jobs:
|
||||||
run: bundle install
|
run: bundle install
|
||||||
- name: -- Step 6 -- Run fastlane
|
- name: -- Step 6 -- Run fastlane
|
||||||
env:
|
env:
|
||||||
ENVIRONMENT: ${{ steps.branch.outputs.branch }}
|
ENVIRONMENT: ${{ steps.branch.outputs.current_branch }}
|
||||||
SENTRY_ENVIRONMENT: ${{ steps.branch.outputs.branch }}
|
SENTRY_ENVIRONMENT: ${{ steps.branch.outputs.current_branch }}
|
||||||
LC_ALL: en_US.UTF-8
|
LC_ALL: en_US.UTF-8
|
||||||
LANG: en_US.UTF-8
|
LANG: en_US.UTF-8
|
||||||
SENTRY_ORGANIZATION: ${{ secrets.SENTRY_ORGANIZATION }}
|
SENTRY_ORGANIZATION: ${{ secrets.SENTRY_ORGANIZATION }}
|
||||||
|
|
|
@ -41,6 +41,7 @@ build/
|
||||||
local.properties
|
local.properties
|
||||||
*.iml
|
*.iml
|
||||||
*.hprof
|
*.hprof
|
||||||
|
.cxx/
|
||||||
|
|
||||||
# node.js
|
# node.js
|
||||||
#
|
#
|
||||||
|
|
|
@ -11,6 +11,8 @@ Please **do not** create a pull request to update translation. tooot's translati
|
||||||
|
|
||||||
## Special thanks
|
## Special thanks
|
||||||
|
|
||||||
|
[@pat](https://piaille.fr/@pat) for French translation
|
||||||
|
|
||||||
[@forenta](https://github.com/forenta) for German translation
|
[@forenta](https://github.com/forenta) for German translation
|
||||||
|
|
||||||
[@andrigamerita](https://github.com/andrigamerita) for Italian translation
|
[@andrigamerita](https://github.com/andrigamerita) for Italian translation
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
apply plugin: "com.android.application"
|
apply plugin: "com.android.application"
|
||||||
|
|
||||||
import com.android.build.OutputFile
|
import com.android.build.OutputFile
|
||||||
|
import org.apache.tools.ant.taskdefs.condition.Os
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
|
* The react.gradle file registers a task for each build variant (e.g. bundleDebugJsAndAssets
|
||||||
|
@ -78,7 +79,7 @@ import com.android.build.OutputFile
|
||||||
*/
|
*/
|
||||||
|
|
||||||
project.ext.react = [
|
project.ext.react = [
|
||||||
enableHermes: (findProperty('expo.jsEngine') ?: "jsc") == "hermes",
|
enableHermes: true,
|
||||||
]
|
]
|
||||||
|
|
||||||
apply from: new File(["node", "--print", "require.resolve('react-native/package.json')"].execute().text.trim(), "../react.gradle")
|
apply from: new File(["node", "--print", "require.resolve('react-native/package.json')"].execute().text.trim(), "../react.gradle")
|
||||||
|
@ -146,22 +147,14 @@ android {
|
||||||
versionName "0.2"
|
versionName "0.2"
|
||||||
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
|
buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
|
||||||
if (isNewArchitectureEnabled()) {
|
if (isNewArchitectureEnabled()) {
|
||||||
// We configure the NDK build only if you decide to opt-in for the New Architecture.
|
// We configure the CMake build only if you decide to opt-in for the New Architecture.
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
ndkBuild {
|
cmake {
|
||||||
arguments "APP_PLATFORM=android-21",
|
arguments "-DPROJECT_BUILD_DIR=$buildDir",
|
||||||
"APP_STL=c++_shared",
|
"-DREACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid",
|
||||||
"NDK_TOOLCHAIN_VERSION=clang",
|
"-DREACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build",
|
||||||
"GENERATED_SRC_DIR=$buildDir/generated/source",
|
"-DNODE_MODULES_DIR=$rootDir/../node_modules",
|
||||||
"PROJECT_BUILD_DIR=$buildDir",
|
"-DANDROID_STL=c++_shared"
|
||||||
"REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid",
|
|
||||||
"REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build"
|
|
||||||
"NODE_MODULES_DIR=$rootDir/../node_modules"
|
|
||||||
cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
|
|
||||||
cppFlags "-std=c++17"
|
|
||||||
// Make sure this target name is the same you specify inside the
|
|
||||||
// src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.
|
|
||||||
targets "tooot_appmodules"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!enableSeparateBuildPerCPUArchitecture) {
|
if (!enableSeparateBuildPerCPUArchitecture) {
|
||||||
|
@ -172,10 +165,10 @@ android {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (isNewArchitectureEnabled()) {
|
if (isNewArchitectureEnabled()) {
|
||||||
// We configure the NDK build only if you decide to opt-in for the New Architecture.
|
// We configure the CMake build only if you decide to opt-in for the New Architecture.
|
||||||
externalNativeBuild {
|
externalNativeBuild {
|
||||||
ndkBuild {
|
cmake {
|
||||||
path "$projectDir/src/main/jni/Android.mk"
|
path "$projectDir/src/main/jni/CMakeLists.txt"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
def reactAndroidProjectDir = project(':ReactAndroid').projectDir
|
def reactAndroidProjectDir = project(':ReactAndroid').projectDir
|
||||||
|
@ -196,15 +189,15 @@ android {
|
||||||
preDebugBuild.dependsOn(packageReactNdkDebugLibs)
|
preDebugBuild.dependsOn(packageReactNdkDebugLibs)
|
||||||
preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)
|
preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)
|
||||||
// Due to a bug inside AGP, we have to explicitly set a dependency
|
// Due to a bug inside AGP, we have to explicitly set a dependency
|
||||||
// between configureNdkBuild* tasks and the preBuild tasks.
|
// between configureCMakeDebug* tasks and the preBuild tasks.
|
||||||
// This can be removed once this is solved: https://issuetracker.google.com/issues/207403732
|
// This can be removed once this is solved: https://issuetracker.google.com/issues/207403732
|
||||||
configureNdkBuildRelease.dependsOn(preReleaseBuild)
|
configureCMakeRelWithDebInfo.dependsOn(preReleaseBuild)
|
||||||
configureNdkBuildDebug.dependsOn(preDebugBuild)
|
configureCMakeDebug.dependsOn(preDebugBuild)
|
||||||
reactNativeArchitectures().each { architecture ->
|
reactNativeArchitectures().each { architecture ->
|
||||||
tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure {
|
tasks.findByName("configureCMakeDebug[${architecture}]")?.configure {
|
||||||
dependsOn("preDebugBuild")
|
dependsOn("preDebugBuild")
|
||||||
}
|
}
|
||||||
tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure {
|
tasks.findByName("configureCMakeRelWithDebInfo[${architecture}]")?.configure {
|
||||||
dependsOn("preReleaseBuild")
|
dependsOn("preReleaseBuild")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -314,7 +307,7 @@ dependencies {
|
||||||
if (isNewArchitectureEnabled()) {
|
if (isNewArchitectureEnabled()) {
|
||||||
// If new architecture is enabled, we let you build RN from source
|
// If new architecture is enabled, we let you build RN from source
|
||||||
// Otherwise we fallback to a prebuilt .aar bundled in the NPM package.
|
// Otherwise we fallback to a prebuilt .aar bundled in the NPM package.
|
||||||
// This will be applied to all the imported transtitive dependency.
|
// This will be applied to all the imported transitive dependency.
|
||||||
configurations.all {
|
configurations.all {
|
||||||
resolutionStrategy.dependencySubstitution {
|
resolutionStrategy.dependencySubstitution {
|
||||||
substitute(module("com.facebook.react:react-native"))
|
substitute(module("com.facebook.react:react-native"))
|
||||||
|
|
|
@ -1,5 +1,3 @@
|
||||||
import org.apache.tools.ant.taskdefs.condition.Os
|
|
||||||
|
|
||||||
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
// Top-level build file where you can add configuration options common to all sub-projects/modules.
|
||||||
|
|
||||||
buildscript {
|
buildscript {
|
||||||
|
@ -9,13 +7,10 @@ buildscript {
|
||||||
compileSdkVersion = 31
|
compileSdkVersion = 31
|
||||||
targetSdkVersion = 31
|
targetSdkVersion = 31
|
||||||
kotlinVersion = '1.6.10'
|
kotlinVersion = '1.6.10'
|
||||||
|
|
||||||
if (System.properties['os.arch'] == "aarch64") {
|
if (System.properties['os.arch'] == "aarch64") {
|
||||||
// For M1 Users we need to use the NDK 24 which added support for aarch64
|
// For M1 Users we need to use the NDK 24 which added support for aarch64
|
||||||
ndkVersion = "24.0.8215888"
|
ndkVersion = "24.0.8215888"
|
||||||
} else if (Os.isFamily(Os.FAMILY_WINDOWS)) {
|
|
||||||
// For Android Users, we need to use NDK 23, otherwise the build will
|
|
||||||
// fail due to paths longer than the OS limit
|
|
||||||
ndkVersion = "23.1.7779620"
|
|
||||||
} else {
|
} else {
|
||||||
// Otherwise we default to the side-by-side NDK version from AGP.
|
// Otherwise we default to the side-by-side NDK version from AGP.
|
||||||
ndkVersion = "21.4.7075529"
|
ndkVersion = "21.4.7075529"
|
||||||
|
@ -24,10 +19,11 @@ buildscript {
|
||||||
repositories {
|
repositories {
|
||||||
google()
|
google()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
jcenter()
|
||||||
}
|
}
|
||||||
dependencies {
|
dependencies {
|
||||||
classpath 'com.google.gms:google-services:4.3.3'
|
classpath 'com.google.gms:google-services:4.3.3'
|
||||||
classpath("com.android.tools.build:gradle:7.1.1")
|
classpath("com.android.tools.build:gradle:7.2.1")
|
||||||
classpath("com.facebook.react:react-native-gradle-plugin")
|
classpath("com.facebook.react:react-native-gradle-plugin")
|
||||||
classpath("de.undercouch:gradle-download-task:5.0.1")
|
classpath("de.undercouch:gradle-download-task:5.0.1")
|
||||||
|
|
||||||
|
@ -38,20 +34,6 @@ buildscript {
|
||||||
|
|
||||||
allprojects {
|
allprojects {
|
||||||
repositories {
|
repositories {
|
||||||
exclusiveContent {
|
|
||||||
// We get React Native's Android binaries exclusively through npm,
|
|
||||||
// from a local Maven repo inside node_modules/react-native/.
|
|
||||||
// (The use of exclusiveContent prevents looking elsewhere like Maven Central
|
|
||||||
// and potentially getting a wrong version.)
|
|
||||||
filter {
|
|
||||||
includeGroup "com.facebook.react"
|
|
||||||
}
|
|
||||||
forRepository {
|
|
||||||
maven {
|
|
||||||
url "$rootDir/../node_modules/react-native/android"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
maven {
|
maven {
|
||||||
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
// All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
|
||||||
|
@ -64,6 +46,7 @@ allprojects {
|
||||||
|
|
||||||
google()
|
google()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
|
jcenter()
|
||||||
maven { url 'https://www.jitpack.io' }
|
maven { url 'https://www.jitpack.io' }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
|
@ -1,5 +1,5 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.3-all.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|
|
@ -10,7 +10,6 @@ export default (): ExpoConfig => ({
|
||||||
version,
|
version,
|
||||||
extra: { environment: process.env.ENVIRONMENT },
|
extra: { environment: process.env.ENVIRONMENT },
|
||||||
privacy: 'hidden',
|
privacy: 'hidden',
|
||||||
jsEngine: 'hermes',
|
|
||||||
ios: {
|
ios: {
|
||||||
bundleIdentifier: 'com.xmflsct.app.tooot'
|
bundleIdentifier: 'com.xmflsct.app.tooot'
|
||||||
},
|
},
|
||||||
|
|
17
ios/Podfile
17
ios/Podfile
|
@ -2,11 +2,9 @@ require File.join(File.dirname(`node --print "require.resolve('expo/package.json
|
||||||
require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
|
require File.join(File.dirname(`node --print "require.resolve('react-native/package.json')"`), "scripts/react_native_pods")
|
||||||
require File.join(File.dirname(`node --print "require.resolve('@react-native-community/cli-platform-ios/package.json')"`), "native_modules")
|
require File.join(File.dirname(`node --print "require.resolve('@react-native-community/cli-platform-ios/package.json')"`), "native_modules")
|
||||||
|
|
||||||
platform :ios, '12.4'
|
platform :ios, '13.0'
|
||||||
install! 'cocoapods', :deterministic_uuids => false
|
install! 'cocoapods', :deterministic_uuids => false
|
||||||
|
|
||||||
production = ENV["PRODUCTION"] == "1"
|
|
||||||
|
|
||||||
require 'json'
|
require 'json'
|
||||||
podfile_properties = JSON.parse(File.read('./Podfile.properties.json')) rescue {}
|
podfile_properties = JSON.parse(File.read('./Podfile.properties.json')) rescue {}
|
||||||
|
|
||||||
|
@ -25,8 +23,7 @@ target 'tooot' do
|
||||||
|
|
||||||
use_react_native!(
|
use_react_native!(
|
||||||
:path => config[:reactNativePath],
|
:path => config[:reactNativePath],
|
||||||
:production => production,
|
:hermes_enabled => true,
|
||||||
:hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes',
|
|
||||||
:fabric_enabled => flags[:fabric_enabled],
|
:fabric_enabled => flags[:fabric_enabled],
|
||||||
:flipper_configuration => FlipperConfiguration.disabled,
|
:flipper_configuration => FlipperConfiguration.disabled,
|
||||||
# An absolute path to your application root.
|
# An absolute path to your application root.
|
||||||
|
@ -34,7 +31,12 @@ target 'tooot' do
|
||||||
)
|
)
|
||||||
|
|
||||||
post_install do |installer|
|
post_install do |installer|
|
||||||
react_native_post_install(installer)
|
react_native_post_install(
|
||||||
|
installer,
|
||||||
|
# Set `mac_catalyst_enabled` to `true` in order to apply patches
|
||||||
|
# necessary for Mac Catalyst builds
|
||||||
|
:mac_catalyst_enabled => false
|
||||||
|
)
|
||||||
__apply_Xcode_12_5_M1_post_install_workaround(installer)
|
__apply_Xcode_12_5_M1_post_install_workaround(installer)
|
||||||
|
|
||||||
# For share extension
|
# For share extension
|
||||||
|
@ -65,8 +67,7 @@ end
|
||||||
|
|
||||||
target 'ShareExtension' do
|
target 'ShareExtension' do
|
||||||
use_react_native!(
|
use_react_native!(
|
||||||
:production => production,
|
:hermes_enabled => true,
|
||||||
:hermes_enabled => podfile_properties['expo.jsEngine'] == 'hermes',
|
|
||||||
:flipper_configuration => FlipperConfiguration.disabled
|
:flipper_configuration => FlipperConfiguration.disabled
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
774
ios/Podfile.lock
774
ios/Podfile.lock
|
@ -1,65 +1,64 @@
|
||||||
PODS:
|
PODS:
|
||||||
- boost (1.76.0)
|
- boost (1.76.0)
|
||||||
- DoubleConversion (1.1.6)
|
- DoubleConversion (1.1.6)
|
||||||
- EXApplication (4.2.2):
|
- EXApplication (5.0.1):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXAV (12.0.4):
|
- EXAV (13.0.1):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- React-runtimeexecutor
|
- ReactCommon/turbomodule/core
|
||||||
- ReactCommon
|
- EXConstants (14.0.2):
|
||||||
- EXConstants (13.2.4):
|
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXErrorRecovery (3.2.0):
|
- EXErrorRecovery (4.0.1):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXFileSystem (14.1.0):
|
- EXFileSystem (15.1.1):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXFirebaseAnalytics (7.2.0):
|
- EXFirebaseAnalytics (8.0.0):
|
||||||
- EXFirebaseCore
|
- EXFirebaseCore
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- Firebase/Core (= 9.5.0)
|
- Firebase/Core (= 9.5.0)
|
||||||
- EXFirebaseCore (5.2.0):
|
- EXFirebaseCore (6.0.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- Firebase/Core (= 9.5.0)
|
- Firebase/Core (= 9.5.0)
|
||||||
- EXFont (10.2.1):
|
- EXFont (11.0.1):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXNotifications (0.16.1):
|
- EXNotifications (0.17.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- Expo (46.0.16):
|
- Expo (47.0.3):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoCrypto (11.0.0):
|
- ExpoCrypto (12.0.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoHaptics (11.3.0):
|
- ExpoHaptics (12.0.1):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoKeepAwake (10.2.0):
|
- ExpoKeepAwake (11.0.1):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoLocalization (13.1.0):
|
- ExpoLocalization (14.0.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoModulesCore (0.11.8):
|
- ExpoModulesCore (1.0.2):
|
||||||
- React-Core
|
- React-Core
|
||||||
- ReactCommon/turbomodule/core
|
- ReactCommon/turbomodule/core
|
||||||
- ExpoRandom (12.3.0):
|
- ExpoRandom (13.0.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- ExpoWebBrowser (11.0.0):
|
- ExpoStoreReview (6.0.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXScreenCapture (4.3.0):
|
- ExpoWebBrowser (12.0.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXSecureStore (11.3.0):
|
- EXScreenCapture (5.0.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXSplashScreen (0.16.2):
|
- EXSecureStore (12.0.0):
|
||||||
|
- ExpoModulesCore
|
||||||
|
- EXSplashScreen (0.17.4):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- React-Core
|
- React-Core
|
||||||
- EXStoreReview (5.3.0):
|
- EXVideoThumbnails (7.0.0):
|
||||||
- ExpoModulesCore
|
- ExpoModulesCore
|
||||||
- EXVideoThumbnails (6.4.0):
|
- FBLazyVector (0.70.5)
|
||||||
- ExpoModulesCore
|
- FBReactNativeSpec (0.70.5):
|
||||||
- FBLazyVector (0.69.6)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- FBReactNativeSpec (0.69.6):
|
- RCTRequired (= 0.70.5)
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCTTypeSafety (= 0.70.5)
|
||||||
- RCTRequired (= 0.69.6)
|
- React-Core (= 0.70.5)
|
||||||
- RCTTypeSafety (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-Core (= 0.69.6)
|
- ReactCommon/turbomodule/core (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
|
||||||
- ReactCommon/turbomodule/core (= 0.69.6)
|
|
||||||
- Firebase (9.5.0):
|
- Firebase (9.5.0):
|
||||||
- Firebase/Core (= 9.5.0)
|
- Firebase/Core (= 9.5.0)
|
||||||
- Firebase/Core (9.5.0):
|
- Firebase/Core (9.5.0):
|
||||||
|
@ -128,287 +127,287 @@ PODS:
|
||||||
- GoogleUtilities/Environment (~> 7.7)
|
- GoogleUtilities/Environment (~> 7.7)
|
||||||
- nanopb (< 2.30910.0, >= 2.30908.0)
|
- nanopb (< 2.30910.0, >= 2.30908.0)
|
||||||
- PromisesObjC (< 3.0, >= 1.2)
|
- PromisesObjC (< 3.0, >= 1.2)
|
||||||
- GoogleUtilities (7.8.0):
|
- GoogleUtilities (7.10.0):
|
||||||
- GoogleUtilities/AppDelegateSwizzler (= 7.8.0)
|
- GoogleUtilities/AppDelegateSwizzler (= 7.10.0)
|
||||||
- GoogleUtilities/Environment (= 7.8.0)
|
- GoogleUtilities/Environment (= 7.10.0)
|
||||||
- GoogleUtilities/ISASwizzler (= 7.8.0)
|
- GoogleUtilities/ISASwizzler (= 7.10.0)
|
||||||
- GoogleUtilities/Logger (= 7.8.0)
|
- GoogleUtilities/Logger (= 7.10.0)
|
||||||
- GoogleUtilities/MethodSwizzler (= 7.8.0)
|
- GoogleUtilities/MethodSwizzler (= 7.10.0)
|
||||||
- GoogleUtilities/Network (= 7.8.0)
|
- GoogleUtilities/Network (= 7.10.0)
|
||||||
- "GoogleUtilities/NSData+zlib (= 7.8.0)"
|
- "GoogleUtilities/NSData+zlib (= 7.10.0)"
|
||||||
- GoogleUtilities/Reachability (= 7.8.0)
|
- GoogleUtilities/Reachability (= 7.10.0)
|
||||||
- GoogleUtilities/SwizzlerTestHelpers (= 7.8.0)
|
- GoogleUtilities/SwizzlerTestHelpers (= 7.10.0)
|
||||||
- GoogleUtilities/UserDefaults (= 7.8.0)
|
- GoogleUtilities/UserDefaults (= 7.10.0)
|
||||||
- GoogleUtilities/AppDelegateSwizzler (7.8.0):
|
- GoogleUtilities/AppDelegateSwizzler (7.10.0):
|
||||||
- GoogleUtilities/Environment
|
- GoogleUtilities/Environment
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- GoogleUtilities/Network
|
- GoogleUtilities/Network
|
||||||
- GoogleUtilities/Environment (7.8.0):
|
- GoogleUtilities/Environment (7.10.0):
|
||||||
- PromisesObjC (< 3.0, >= 1.2)
|
- PromisesObjC (< 3.0, >= 1.2)
|
||||||
- GoogleUtilities/ISASwizzler (7.8.0)
|
- GoogleUtilities/ISASwizzler (7.10.0)
|
||||||
- GoogleUtilities/Logger (7.8.0):
|
- GoogleUtilities/Logger (7.10.0):
|
||||||
- GoogleUtilities/Environment
|
- GoogleUtilities/Environment
|
||||||
- GoogleUtilities/MethodSwizzler (7.8.0):
|
- GoogleUtilities/MethodSwizzler (7.10.0):
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- GoogleUtilities/Network (7.8.0):
|
- GoogleUtilities/Network (7.10.0):
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- "GoogleUtilities/NSData+zlib"
|
- "GoogleUtilities/NSData+zlib"
|
||||||
- GoogleUtilities/Reachability
|
- GoogleUtilities/Reachability
|
||||||
- "GoogleUtilities/NSData+zlib (7.8.0)"
|
- "GoogleUtilities/NSData+zlib (7.10.0)"
|
||||||
- GoogleUtilities/Reachability (7.8.0):
|
- GoogleUtilities/Reachability (7.10.0):
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- GoogleUtilities/SwizzlerTestHelpers (7.8.0):
|
- GoogleUtilities/SwizzlerTestHelpers (7.10.0):
|
||||||
- GoogleUtilities/MethodSwizzler
|
- GoogleUtilities/MethodSwizzler
|
||||||
- GoogleUtilities/UserDefaults (7.8.0):
|
- GoogleUtilities/UserDefaults (7.10.0):
|
||||||
- GoogleUtilities/Logger
|
- GoogleUtilities/Logger
|
||||||
- hermes-engine (0.69.6)
|
- hermes-engine (0.70.5)
|
||||||
- libevent (2.1.12)
|
- libevent (2.1.12)
|
||||||
- libwebp (1.2.3):
|
- libwebp (1.2.4):
|
||||||
- libwebp/demux (= 1.2.3)
|
- libwebp/demux (= 1.2.4)
|
||||||
- libwebp/mux (= 1.2.3)
|
- libwebp/mux (= 1.2.4)
|
||||||
- libwebp/webp (= 1.2.3)
|
- libwebp/webp (= 1.2.4)
|
||||||
- libwebp/demux (1.2.3):
|
- libwebp/demux (1.2.4):
|
||||||
- libwebp/webp
|
- libwebp/webp
|
||||||
- libwebp/mux (1.2.3):
|
- libwebp/mux (1.2.4):
|
||||||
- libwebp/demux
|
- libwebp/demux
|
||||||
- libwebp/webp (1.2.3)
|
- libwebp/webp (1.2.4)
|
||||||
- nanopb (2.30909.0):
|
- nanopb (2.30909.0):
|
||||||
- nanopb/decode (= 2.30909.0)
|
- nanopb/decode (= 2.30909.0)
|
||||||
- nanopb/encode (= 2.30909.0)
|
- nanopb/encode (= 2.30909.0)
|
||||||
- nanopb/decode (2.30909.0)
|
- nanopb/decode (2.30909.0)
|
||||||
- nanopb/encode (2.30909.0)
|
- nanopb/encode (2.30909.0)
|
||||||
- PromisesObjC (2.1.1)
|
- PromisesObjC (2.1.1)
|
||||||
- RCT-Folly (2021.06.28.00-v2):
|
- RCT-Folly (2021.07.22.00):
|
||||||
- boost
|
- boost
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- fmt (~> 6.2.1)
|
- fmt (~> 6.2.1)
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly/Default (= 2021.06.28.00-v2)
|
- RCT-Folly/Default (= 2021.07.22.00)
|
||||||
- RCT-Folly/Default (2021.06.28.00-v2):
|
- RCT-Folly/Default (2021.07.22.00):
|
||||||
- boost
|
- boost
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- fmt (~> 6.2.1)
|
- fmt (~> 6.2.1)
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly/Futures (2021.06.28.00-v2):
|
- RCT-Folly/Futures (2021.07.22.00):
|
||||||
- boost
|
- boost
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- fmt (~> 6.2.1)
|
- fmt (~> 6.2.1)
|
||||||
- glog
|
- glog
|
||||||
- libevent
|
- libevent
|
||||||
- RCTRequired (0.69.6)
|
- RCTRequired (0.70.5)
|
||||||
- RCTTypeSafety (0.69.6):
|
- RCTTypeSafety (0.70.5):
|
||||||
- FBLazyVector (= 0.69.6)
|
- FBLazyVector (= 0.70.5)
|
||||||
- RCTRequired (= 0.69.6)
|
- RCTRequired (= 0.70.5)
|
||||||
- React-Core (= 0.69.6)
|
- React-Core (= 0.70.5)
|
||||||
- React (0.69.6):
|
- React (0.70.5):
|
||||||
- React-Core (= 0.69.6)
|
- React-Core (= 0.70.5)
|
||||||
- React-Core/DevSupport (= 0.69.6)
|
- React-Core/DevSupport (= 0.70.5)
|
||||||
- React-Core/RCTWebSocket (= 0.69.6)
|
- React-Core/RCTWebSocket (= 0.70.5)
|
||||||
- React-RCTActionSheet (= 0.69.6)
|
- React-RCTActionSheet (= 0.70.5)
|
||||||
- React-RCTAnimation (= 0.69.6)
|
- React-RCTAnimation (= 0.70.5)
|
||||||
- React-RCTBlob (= 0.69.6)
|
- React-RCTBlob (= 0.70.5)
|
||||||
- React-RCTImage (= 0.69.6)
|
- React-RCTImage (= 0.70.5)
|
||||||
- React-RCTLinking (= 0.69.6)
|
- React-RCTLinking (= 0.70.5)
|
||||||
- React-RCTNetwork (= 0.69.6)
|
- React-RCTNetwork (= 0.70.5)
|
||||||
- React-RCTSettings (= 0.69.6)
|
- React-RCTSettings (= 0.70.5)
|
||||||
- React-RCTText (= 0.69.6)
|
- React-RCTText (= 0.70.5)
|
||||||
- React-RCTVibration (= 0.69.6)
|
- React-RCTVibration (= 0.70.5)
|
||||||
- React-bridging (0.69.6):
|
- React-bridging (0.70.5):
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-callinvoker (0.69.6)
|
- React-callinvoker (0.70.5)
|
||||||
- React-Codegen (0.69.6):
|
- React-Codegen (0.70.5):
|
||||||
- FBReactNativeSpec (= 0.69.6)
|
- FBReactNativeSpec (= 0.70.5)
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- RCTRequired (= 0.69.6)
|
- RCTRequired (= 0.70.5)
|
||||||
- RCTTypeSafety (= 0.69.6)
|
- RCTTypeSafety (= 0.70.5)
|
||||||
- React-Core (= 0.69.6)
|
- React-Core (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- ReactCommon/turbomodule/core (= 0.69.6)
|
- ReactCommon/turbomodule/core (= 0.70.5)
|
||||||
- React-Core (0.69.6):
|
- React-Core (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default (= 0.69.6)
|
- React-Core/Default (= 0.70.5)
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/CoreModulesHeaders (0.69.6):
|
- React-Core/CoreModulesHeaders (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/Default (0.69.6):
|
- React-Core/Default (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/DevSupport (0.69.6):
|
- React-Core/DevSupport (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default (= 0.69.6)
|
- React-Core/Default (= 0.70.5)
|
||||||
- React-Core/RCTWebSocket (= 0.69.6)
|
- React-Core/RCTWebSocket (= 0.70.5)
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-jsinspector (= 0.69.6)
|
- React-jsinspector (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTActionSheetHeaders (0.69.6):
|
- React-Core/RCTActionSheetHeaders (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTAnimationHeaders (0.69.6):
|
- React-Core/RCTAnimationHeaders (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTBlobHeaders (0.69.6):
|
- React-Core/RCTBlobHeaders (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTImageHeaders (0.69.6):
|
- React-Core/RCTImageHeaders (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTLinkingHeaders (0.69.6):
|
- React-Core/RCTLinkingHeaders (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTNetworkHeaders (0.69.6):
|
- React-Core/RCTNetworkHeaders (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTSettingsHeaders (0.69.6):
|
- React-Core/RCTSettingsHeaders (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTTextHeaders (0.69.6):
|
- React-Core/RCTTextHeaders (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTVibrationHeaders (0.69.6):
|
- React-Core/RCTVibrationHeaders (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default
|
- React-Core/Default
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-Core/RCTWebSocket (0.69.6):
|
- React-Core/RCTWebSocket (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Core/Default (= 0.69.6)
|
- React-Core/Default (= 0.70.5)
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- Yoga
|
- Yoga
|
||||||
- React-CoreModules (0.69.6):
|
- React-CoreModules (0.70.5):
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- RCTTypeSafety (= 0.69.6)
|
- RCTTypeSafety (= 0.70.5)
|
||||||
- React-Codegen (= 0.69.6)
|
- React-Codegen (= 0.70.5)
|
||||||
- React-Core/CoreModulesHeaders (= 0.69.6)
|
- React-Core/CoreModulesHeaders (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-RCTImage (= 0.69.6)
|
- React-RCTImage (= 0.70.5)
|
||||||
- ReactCommon/turbomodule/core (= 0.69.6)
|
- ReactCommon/turbomodule/core (= 0.70.5)
|
||||||
- React-cxxreact (0.69.6):
|
- React-cxxreact (0.70.5):
|
||||||
- boost (= 1.76.0)
|
- boost (= 1.76.0)
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-callinvoker (= 0.69.6)
|
- React-callinvoker (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsinspector (= 0.69.6)
|
- React-jsinspector (= 0.70.5)
|
||||||
- React-logger (= 0.69.6)
|
- React-logger (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- React-runtimeexecutor (= 0.69.6)
|
- React-runtimeexecutor (= 0.70.5)
|
||||||
- React-hermes (0.69.6):
|
- React-hermes (0.70.5):
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- glog
|
- glog
|
||||||
- hermes-engine
|
- hermes-engine
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- RCT-Folly/Futures (= 2021.06.28.00-v2)
|
- RCT-Folly/Futures (= 2021.07.22.00)
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-jsiexecutor (= 0.69.6)
|
- React-jsiexecutor (= 0.70.5)
|
||||||
- React-jsinspector (= 0.69.6)
|
- React-jsinspector (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- React-jsi (0.69.6):
|
- React-jsi (0.70.5):
|
||||||
- boost (= 1.76.0)
|
- boost (= 1.76.0)
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-jsi/Default (= 0.69.6)
|
- React-jsi/Default (= 0.70.5)
|
||||||
- React-jsi/Default (0.69.6):
|
- React-jsi/Default (0.70.5):
|
||||||
- boost (= 1.76.0)
|
- boost (= 1.76.0)
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-jsiexecutor (0.69.6):
|
- React-jsiexecutor (0.70.5):
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- React-jsinspector (0.69.6)
|
- React-jsinspector (0.70.5)
|
||||||
- React-logger (0.69.6):
|
- React-logger (0.70.5):
|
||||||
- glog
|
- glog
|
||||||
- react-native-blur (4.2.0):
|
- react-native-blur (4.3.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
- react-native-blurhash (1.1.10):
|
- react-native-blurhash (1.1.10):
|
||||||
- React-Core
|
- React-Core
|
||||||
- react-native-cameraroll (5.0.4):
|
- react-native-cameraroll (5.1.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
- react-native-context-menu-view (1.5.4):
|
- react-native-context-menu-view (1.5.4):
|
||||||
- React
|
- React
|
||||||
|
@ -420,7 +419,7 @@ PODS:
|
||||||
- React-Core
|
- React-Core
|
||||||
- react-native-netinfo (9.3.6):
|
- react-native-netinfo (9.3.6):
|
||||||
- React-Core
|
- React-Core
|
||||||
- react-native-pager-view (6.0.2):
|
- react-native-pager-view (6.1.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
- react-native-paste-input (0.5.1):
|
- react-native-paste-input (0.5.1):
|
||||||
- React-Core
|
- React-Core
|
||||||
|
@ -433,110 +432,79 @@ PODS:
|
||||||
- ReactCommon/turbomodule/core
|
- ReactCommon/turbomodule/core
|
||||||
- react-native-segmented-control (2.2.2):
|
- react-native-segmented-control (2.2.2):
|
||||||
- React-Core
|
- React-Core
|
||||||
- React-perflogger (0.69.6)
|
- React-perflogger (0.70.5)
|
||||||
- React-RCTActionSheet (0.69.6):
|
- React-RCTActionSheet (0.70.5):
|
||||||
- React-Core/RCTActionSheetHeaders (= 0.69.6)
|
- React-Core/RCTActionSheetHeaders (= 0.70.5)
|
||||||
- React-RCTAnimation (0.69.6):
|
- React-RCTAnimation (0.70.5):
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- RCTTypeSafety (= 0.69.6)
|
- RCTTypeSafety (= 0.70.5)
|
||||||
- React-Codegen (= 0.69.6)
|
- React-Codegen (= 0.70.5)
|
||||||
- React-Core/RCTAnimationHeaders (= 0.69.6)
|
- React-Core/RCTAnimationHeaders (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- ReactCommon/turbomodule/core (= 0.69.6)
|
- ReactCommon/turbomodule/core (= 0.70.5)
|
||||||
- React-RCTBlob (0.69.6):
|
- React-RCTBlob (0.70.5):
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Codegen (= 0.69.6)
|
- React-Codegen (= 0.70.5)
|
||||||
- React-Core/RCTBlobHeaders (= 0.69.6)
|
- React-Core/RCTBlobHeaders (= 0.70.5)
|
||||||
- React-Core/RCTWebSocket (= 0.69.6)
|
- React-Core/RCTWebSocket (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-RCTNetwork (= 0.69.6)
|
- React-RCTNetwork (= 0.70.5)
|
||||||
- ReactCommon/turbomodule/core (= 0.69.6)
|
- ReactCommon/turbomodule/core (= 0.70.5)
|
||||||
- React-RCTImage (0.69.6):
|
- React-RCTImage (0.70.5):
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- RCTTypeSafety (= 0.69.6)
|
- RCTTypeSafety (= 0.70.5)
|
||||||
- React-Codegen (= 0.69.6)
|
- React-Codegen (= 0.70.5)
|
||||||
- React-Core/RCTImageHeaders (= 0.69.6)
|
- React-Core/RCTImageHeaders (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-RCTNetwork (= 0.69.6)
|
- React-RCTNetwork (= 0.70.5)
|
||||||
- ReactCommon/turbomodule/core (= 0.69.6)
|
- ReactCommon/turbomodule/core (= 0.70.5)
|
||||||
- React-RCTLinking (0.69.6):
|
- React-RCTLinking (0.70.5):
|
||||||
- React-Codegen (= 0.69.6)
|
- React-Codegen (= 0.70.5)
|
||||||
- React-Core/RCTLinkingHeaders (= 0.69.6)
|
- React-Core/RCTLinkingHeaders (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- ReactCommon/turbomodule/core (= 0.69.6)
|
- ReactCommon/turbomodule/core (= 0.70.5)
|
||||||
- React-RCTNetwork (0.69.6):
|
- React-RCTNetwork (0.70.5):
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- RCTTypeSafety (= 0.69.6)
|
- RCTTypeSafety (= 0.70.5)
|
||||||
- React-Codegen (= 0.69.6)
|
- React-Codegen (= 0.70.5)
|
||||||
- React-Core/RCTNetworkHeaders (= 0.69.6)
|
- React-Core/RCTNetworkHeaders (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- ReactCommon/turbomodule/core (= 0.69.6)
|
- ReactCommon/turbomodule/core (= 0.70.5)
|
||||||
- React-RCTSettings (0.69.6):
|
- React-RCTSettings (0.70.5):
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- RCTTypeSafety (= 0.69.6)
|
- RCTTypeSafety (= 0.70.5)
|
||||||
- React-Codegen (= 0.69.6)
|
- React-Codegen (= 0.70.5)
|
||||||
- React-Core/RCTSettingsHeaders (= 0.69.6)
|
- React-Core/RCTSettingsHeaders (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- ReactCommon/turbomodule/core (= 0.69.6)
|
- ReactCommon/turbomodule/core (= 0.70.5)
|
||||||
- React-RCTText (0.69.6):
|
- React-RCTText (0.70.5):
|
||||||
- React-Core/RCTTextHeaders (= 0.69.6)
|
- React-Core/RCTTextHeaders (= 0.70.5)
|
||||||
- React-RCTVibration (0.69.6):
|
- React-RCTVibration (0.70.5):
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-Codegen (= 0.69.6)
|
- React-Codegen (= 0.70.5)
|
||||||
- React-Core/RCTVibrationHeaders (= 0.69.6)
|
- React-Core/RCTVibrationHeaders (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- ReactCommon/turbomodule/core (= 0.69.6)
|
- ReactCommon/turbomodule/core (= 0.70.5)
|
||||||
- React-runtimeexecutor (0.69.6):
|
- React-runtimeexecutor (0.70.5):
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- ReactCommon (0.69.6):
|
- ReactCommon/turbomodule/core (0.70.5):
|
||||||
- React-logger (= 0.69.6)
|
|
||||||
- ReactCommon/react_debug_core (= 0.69.6)
|
|
||||||
- ReactCommon/turbomodule (= 0.69.6)
|
|
||||||
- ReactCommon/react_debug_core (0.69.6):
|
|
||||||
- React-logger (= 0.69.6)
|
|
||||||
- ReactCommon/turbomodule (0.69.6):
|
|
||||||
- DoubleConversion
|
- DoubleConversion
|
||||||
- glog
|
- glog
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
- RCT-Folly (= 2021.07.22.00)
|
||||||
- React-bridging (= 0.69.6)
|
- React-bridging (= 0.70.5)
|
||||||
- React-callinvoker (= 0.69.6)
|
- React-callinvoker (= 0.70.5)
|
||||||
- React-Core (= 0.69.6)
|
- React-Core (= 0.70.5)
|
||||||
- React-cxxreact (= 0.69.6)
|
- React-cxxreact (= 0.70.5)
|
||||||
- React-jsi (= 0.69.6)
|
- React-jsi (= 0.70.5)
|
||||||
- React-logger (= 0.69.6)
|
- React-logger (= 0.70.5)
|
||||||
- React-perflogger (= 0.69.6)
|
- React-perflogger (= 0.70.5)
|
||||||
- ReactCommon/turbomodule/core (= 0.69.6)
|
- RNCAsyncStorage (1.17.11):
|
||||||
- ReactCommon/turbomodule/samples (= 0.69.6)
|
|
||||||
- ReactCommon/turbomodule/core (0.69.6):
|
|
||||||
- DoubleConversion
|
|
||||||
- glog
|
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
|
||||||
- React-bridging (= 0.69.6)
|
|
||||||
- React-callinvoker (= 0.69.6)
|
|
||||||
- React-Core (= 0.69.6)
|
|
||||||
- React-cxxreact (= 0.69.6)
|
|
||||||
- React-jsi (= 0.69.6)
|
|
||||||
- React-logger (= 0.69.6)
|
|
||||||
- React-perflogger (= 0.69.6)
|
|
||||||
- ReactCommon/turbomodule/samples (0.69.6):
|
|
||||||
- DoubleConversion
|
|
||||||
- glog
|
|
||||||
- RCT-Folly (= 2021.06.28.00-v2)
|
|
||||||
- React-bridging (= 0.69.6)
|
|
||||||
- React-callinvoker (= 0.69.6)
|
|
||||||
- React-Core (= 0.69.6)
|
|
||||||
- React-cxxreact (= 0.69.6)
|
|
||||||
- React-jsi (= 0.69.6)
|
|
||||||
- React-logger (= 0.69.6)
|
|
||||||
- React-perflogger (= 0.69.6)
|
|
||||||
- ReactCommon/turbomodule/core (= 0.69.6)
|
|
||||||
- RNCAsyncStorage (1.17.10):
|
|
||||||
- React-Core
|
- React-Core
|
||||||
- RNCClipboard (1.11.1):
|
- RNCClipboard (1.11.1):
|
||||||
- React-Core
|
- React-Core
|
||||||
- RNFastImage (8.6.3):
|
- RNFastImage (8.6.3):
|
||||||
- React-Core
|
- React-Core
|
||||||
- SDWebImage (~> 5.13.5)
|
- SDWebImage (~> 5.14.2)
|
||||||
- SDWebImageWebPCoder (~> 0.9.1)
|
- SDWebImageWebPCoder (~> 0.9.1)
|
||||||
- RNGestureHandler (2.8.0):
|
- RNGestureHandler (2.8.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
|
@ -570,22 +538,22 @@ PODS:
|
||||||
- RNScreens (3.18.2):
|
- RNScreens (3.18.2):
|
||||||
- React-Core
|
- React-Core
|
||||||
- React-RCTImage
|
- React-RCTImage
|
||||||
- RNSentry (4.7.1):
|
- RNSentry (4.8.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
- Sentry (= 7.28.0)
|
- Sentry (= 7.29.0)
|
||||||
- RNShareMenu (6.0.0):
|
- RNShareMenu (6.0.0):
|
||||||
- React
|
- React
|
||||||
- RNSVG (13.0.0):
|
- RNSVG (13.5.0):
|
||||||
- React-Core
|
- React-Core
|
||||||
- SDWebImage (5.13.5):
|
- SDWebImage (5.14.2):
|
||||||
- SDWebImage/Core (= 5.13.5)
|
- SDWebImage/Core (= 5.14.2)
|
||||||
- SDWebImage/Core (5.13.5)
|
- SDWebImage/Core (5.14.2)
|
||||||
- SDWebImageWebPCoder (0.9.1):
|
- SDWebImageWebPCoder (0.9.1):
|
||||||
- libwebp (~> 1.0)
|
- libwebp (~> 1.0)
|
||||||
- SDWebImage/Core (~> 5.13)
|
- SDWebImage/Core (~> 5.13)
|
||||||
- Sentry (7.28.0):
|
- Sentry (7.29.0):
|
||||||
- Sentry/Core (= 7.28.0)
|
- Sentry/Core (= 7.29.0)
|
||||||
- Sentry/Core (7.28.0)
|
- Sentry/Core (7.29.0)
|
||||||
- Swime (3.0.6)
|
- Swime (3.0.6)
|
||||||
- Yoga (1.14.0)
|
- Yoga (1.14.0)
|
||||||
|
|
||||||
|
@ -606,13 +574,13 @@ DEPENDENCIES:
|
||||||
- ExpoHaptics (from `../node_modules/expo-haptics/ios`)
|
- ExpoHaptics (from `../node_modules/expo-haptics/ios`)
|
||||||
- ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`)
|
- ExpoKeepAwake (from `../node_modules/expo-keep-awake/ios`)
|
||||||
- ExpoLocalization (from `../node_modules/expo-localization/ios`)
|
- ExpoLocalization (from `../node_modules/expo-localization/ios`)
|
||||||
- ExpoModulesCore (from `../node_modules/expo-modules-core/ios`)
|
- ExpoModulesCore (from `../node_modules/expo-modules-core`)
|
||||||
- ExpoRandom (from `../node_modules/expo-random/ios`)
|
- ExpoRandom (from `../node_modules/expo-random/ios`)
|
||||||
|
- ExpoStoreReview (from `../node_modules/expo-store-review/ios`)
|
||||||
- ExpoWebBrowser (from `../node_modules/expo-web-browser/ios`)
|
- ExpoWebBrowser (from `../node_modules/expo-web-browser/ios`)
|
||||||
- EXScreenCapture (from `../node_modules/expo-screen-capture/ios`)
|
- EXScreenCapture (from `../node_modules/expo-screen-capture/ios`)
|
||||||
- EXSecureStore (from `../node_modules/expo-secure-store/ios`)
|
- EXSecureStore (from `../node_modules/expo-secure-store/ios`)
|
||||||
- EXSplashScreen (from `../node_modules/expo-splash-screen/ios`)
|
- EXSplashScreen (from `../node_modules/expo-splash-screen/ios`)
|
||||||
- EXStoreReview (from `../node_modules/expo-store-review/ios`)
|
|
||||||
- EXVideoThumbnails (from `../node_modules/expo-video-thumbnails/ios`)
|
- EXVideoThumbnails (from `../node_modules/expo-video-thumbnails/ios`)
|
||||||
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
- FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`)
|
||||||
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
|
- FBReactNativeSpec (from `../node_modules/react-native/React/FBReactNativeSpec`)
|
||||||
|
@ -728,9 +696,11 @@ EXTERNAL SOURCES:
|
||||||
ExpoLocalization:
|
ExpoLocalization:
|
||||||
:path: "../node_modules/expo-localization/ios"
|
:path: "../node_modules/expo-localization/ios"
|
||||||
ExpoModulesCore:
|
ExpoModulesCore:
|
||||||
:path: "../node_modules/expo-modules-core/ios"
|
:path: "../node_modules/expo-modules-core"
|
||||||
ExpoRandom:
|
ExpoRandom:
|
||||||
:path: "../node_modules/expo-random/ios"
|
:path: "../node_modules/expo-random/ios"
|
||||||
|
ExpoStoreReview:
|
||||||
|
:path: "../node_modules/expo-store-review/ios"
|
||||||
ExpoWebBrowser:
|
ExpoWebBrowser:
|
||||||
:path: "../node_modules/expo-web-browser/ios"
|
:path: "../node_modules/expo-web-browser/ios"
|
||||||
EXScreenCapture:
|
EXScreenCapture:
|
||||||
|
@ -739,8 +709,6 @@ EXTERNAL SOURCES:
|
||||||
:path: "../node_modules/expo-secure-store/ios"
|
:path: "../node_modules/expo-secure-store/ios"
|
||||||
EXSplashScreen:
|
EXSplashScreen:
|
||||||
:path: "../node_modules/expo-splash-screen/ios"
|
:path: "../node_modules/expo-splash-screen/ios"
|
||||||
EXStoreReview:
|
|
||||||
:path: "../node_modules/expo-store-review/ios"
|
|
||||||
EXVideoThumbnails:
|
EXVideoThumbnails:
|
||||||
:path: "../node_modules/expo-video-thumbnails/ios"
|
:path: "../node_modules/expo-video-thumbnails/ios"
|
||||||
FBLazyVector:
|
FBLazyVector:
|
||||||
|
@ -853,30 +821,30 @@ EXTERNAL SOURCES:
|
||||||
SPEC CHECKSUMS:
|
SPEC CHECKSUMS:
|
||||||
boost: a7c83b31436843459a1961bfd74b96033dc77234
|
boost: a7c83b31436843459a1961bfd74b96033dc77234
|
||||||
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
|
DoubleConversion: 5189b271737e1565bdce30deb4a08d647e3f5f54
|
||||||
EXApplication: e418d737a036e788510f2c4ad6c10a7d54d18586
|
EXApplication: 034b1c40a8e9fe1bff76a1e511ee90dff64ad834
|
||||||
EXAV: 596506c9bee54ad52f2f3b625cdaeb9d9f2dd6b7
|
EXAV: 766516466675fc5fdd7c500acced5934e8b00de2
|
||||||
EXConstants: 7c44785d41d8e959d527d23d29444277a4d1ee73
|
EXConstants: 3c86653c422dd77e40d10cbbabb3025003977415
|
||||||
EXErrorRecovery: 74d71ee59f6814315457b09d68e86aa95cc7d05d
|
EXErrorRecovery: ae43433feb0608a64dc5b1c8363b3e7769a9ea24
|
||||||
EXFileSystem: 927e0a8885aa9c49e50fc38eaba2c2389f2f1019
|
EXFileSystem: 60602b6eefa6873f97172c684b7537c9760b50d6
|
||||||
EXFirebaseAnalytics: 2e478758e153b908b67477dff7adf99ffbf37a1b
|
EXFirebaseAnalytics: 58d70e698859b070b2450ad8664d7b5bc6c6e3e1
|
||||||
EXFirebaseCore: cb1e6afad20c4c32a4966432c78ebfff29d8db6b
|
EXFirebaseCore: d0d88cb904e893af07f809ab08c0892489bc6956
|
||||||
EXFont: 06df627203afcb8a3b3152ec06eb2f11f46f0cff
|
EXFont: 319606bfe48c33b5b5063fb0994afdc496befe80
|
||||||
EXNotifications: 9a2aa201deb19dfe1dbe0e370eeb2922de0d2422
|
EXNotifications: babce2a87b7922051354fcfe7a74dd279b7e272a
|
||||||
Expo: 7ac824960a6059d6c68e73f432c8e6bf6d92a0ef
|
Expo: 8e4f1d149b58d5df10d302e0b5c489f9fc6623fc
|
||||||
ExpoCrypto: e534314db0e1a17ae12b5140d529bd0c5efcbc6a
|
ExpoCrypto: 51e7662c7f5bfeab25b7909b8a5d545ec15d4877
|
||||||
ExpoHaptics: efe9e68e9dfe0d15c183c0c70a25f3874124ab9e
|
ExpoHaptics: 5a56d30a87ea213dd00b09566dc4b441a4dff97f
|
||||||
ExpoKeepAwake: 0e8f18142e71bbf2c7f6aa66ebed249ba1420320
|
ExpoKeepAwake: 69b59d0a8d2b24de9f82759c39b3821fec030318
|
||||||
ExpoLocalization: 63204f4b9d4f653469d266332ceaa6c6ac8a305d
|
ExpoLocalization: e202d1e2a4950df17ac8d0889d65a1ffd7532d7e
|
||||||
ExpoModulesCore: 39ec590ce622289c060183aba57f77b1e73b4e11
|
ExpoModulesCore: 20decc110ca3987e1728dee2ce4b3f79e147edda
|
||||||
ExpoRandom: f9f1faa299a40733867f344d6b7bfa2d1f4ab04d
|
ExpoRandom: 58b7e0a5fe1adf1cb6dc1cbe503a6fe9524f36ce
|
||||||
ExpoWebBrowser: 5804ac42a8269d0e534bc4461993005f72535649
|
ExpoStoreReview: ff6d631f2949eb7e4b2d14146ef6af25a16d770d
|
||||||
EXScreenCapture: 23de056fdb02edd1fb8f147b0fd198c6d5cada3d
|
ExpoWebBrowser: 073e50f16669d498fb49063b9b7fe780b24f7fda
|
||||||
EXSecureStore: ac4b3c89dd5810528074d9422d5fed5a9e684467
|
EXScreenCapture: d9f1ec31042dfef109290d06c2b4789b7444d16d
|
||||||
EXSplashScreen: 799bece80089219b2c989c1082d70f3b00995cda
|
EXSecureStore: daec0117c922a67c658cb229152a9e252e5c1750
|
||||||
EXStoreReview: cbb6b2202bb6f831cd3234d9d8b995cec0eb32f2
|
EXSplashScreen: 4b57f8416a057411cb3c97db9fc9a615f8c1d5d9
|
||||||
EXVideoThumbnails: 486533e1a66c9859f9b9e3b2e1f9f0b275515b48
|
EXVideoThumbnails: 8b3e48f3716679dd0cbf949217a31eab5c555799
|
||||||
FBLazyVector: 739d2f9719faecb463c7aa191591af31c8c94182
|
FBLazyVector: affa4ba1bfdaac110a789192f4d452b053a86624
|
||||||
FBReactNativeSpec: 957de82f66e31f2f14bbec34e37242282fdd26de
|
FBReactNativeSpec: fe8b5f1429cfe83a8d72dc8ed61dc7704cac8745
|
||||||
Firebase: 800f16f07af493d98d017446a315c27af0552f41
|
Firebase: 800f16f07af493d98d017446a315c27af0552f41
|
||||||
FirebaseAnalytics: 1b60984a408320dda637306f3f733699ef8473d7
|
FirebaseAnalytics: 1b60984a408320dda637306f3f733699ef8473d7
|
||||||
FirebaseCore: 25c0400b670fd1e2f2104349cd3b5dcce8d9418f
|
FirebaseCore: 25c0400b670fd1e2f2104349cd3b5dcce8d9418f
|
||||||
|
@ -884,69 +852,69 @@ SPEC CHECKSUMS:
|
||||||
FirebaseCoreInternal: bca76517fe1ed381e989f5e7d8abb0da8d85bed3
|
FirebaseCoreInternal: bca76517fe1ed381e989f5e7d8abb0da8d85bed3
|
||||||
FirebaseInstallations: 0a115432c4e223c5ab20b0dbbe4cbefa793a0e8e
|
FirebaseInstallations: 0a115432c4e223c5ab20b0dbbe4cbefa793a0e8e
|
||||||
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
|
fmt: ff9d55029c625d3757ed641535fd4a75fedc7ce9
|
||||||
glog: 3d02b25ca00c2d456734d0bcff864cbc62f6ae1a
|
glog: 04b94705f318337d7ead9e6d17c019bd9b1f6b1b
|
||||||
GoogleAppMeasurement: 6ee231473fbd75c11221dfce489894334024eead
|
GoogleAppMeasurement: 6ee231473fbd75c11221dfce489894334024eead
|
||||||
GoogleDataTransport: 1c8145da7117bd68bbbed00cf304edb6a24de00f
|
GoogleDataTransport: 1c8145da7117bd68bbbed00cf304edb6a24de00f
|
||||||
GoogleUtilities: 1d20a6ad97ef46f67bbdec158ce00563a671ebb7
|
GoogleUtilities: bad72cb363809015b1f7f19beb1f1cd23c589f95
|
||||||
hermes-engine: c2c873a670bc435451449f918c2b3ab3c39255fc
|
hermes-engine: 7fe5fc6ef707b7fdcb161b63898ec500e285653d
|
||||||
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
|
libevent: 4049cae6c81cdb3654a443be001fb9bdceff7913
|
||||||
libwebp: 60305b2e989864154bd9be3d772730f08fc6a59c
|
libwebp: f62cb61d0a484ba548448a4bd52aabf150ff6eef
|
||||||
nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431
|
nanopb: b552cce312b6c8484180ef47159bc0f65a1f0431
|
||||||
PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb
|
PromisesObjC: ab77feca74fa2823e7af4249b8326368e61014cb
|
||||||
RCT-Folly: b9d9fe1fc70114b751c076104e52f3b1b5e5a95a
|
RCT-Folly: 0080d0a6ebf2577475bda044aa59e2ca1f909cda
|
||||||
RCTRequired: c8c080849a3670601d5c7056023a2176067a69d8
|
RCTRequired: 21229f84411088e5d8538f21212de49e46cc83e2
|
||||||
RCTTypeSafety: 710aef40f5ae246bc5fff7e873855b17ed11c180
|
RCTTypeSafety: 62eed57a32924b09edaaf170a548d1fc96223086
|
||||||
React: b6bb382534be4de9d367ef3d04f92108c1768160
|
React: f0254ccddeeef1defe66c6b1bb9133a4f040792b
|
||||||
React-bridging: 0fca0337cef9305026814907dd29254a833a2db7
|
React-bridging: e46911666b7ec19538a620a221d6396cd293d687
|
||||||
React-callinvoker: 700e6eb96b5f7f2fdd96d7263cd4627d2fa080ed
|
React-callinvoker: 66b62e2c34546546b2f21ab0b7670346410a2b53
|
||||||
React-Codegen: fd21633c4b9f47d0681bbb54b173a203963a5e4d
|
React-Codegen: b6999435966df3bdf82afa3f319ba0d6f9a8532a
|
||||||
React-Core: 8ec15c9727c8c01b1e4f14cad5bd21f7c1d56d49
|
React-Core: dabbc9d1fe0a11d884e6ee1599789cf8eb1058a5
|
||||||
React-CoreModules: 79486447bf901292a83df52d4f7acbecda296723
|
React-CoreModules: 5b6b7668f156f73a56420df9ec68ca2ec8f2e818
|
||||||
React-cxxreact: 9022135650dd9960a60a1361e9add424c6c37ab9
|
React-cxxreact: c7ca2baee46db22a30fce9e639277add3c3f6ad1
|
||||||
React-hermes: b5ce7fb460ff6d39e7bb9bbe1f523272c4b85c0b
|
React-hermes: c93e1d759ad5560dfea54d233013d7d2c725c286
|
||||||
React-jsi: 4ccb3599c422ad071e3895c5feab9b0afc40505d
|
React-jsi: a565dcb49130ed20877a9bb1105ffeecbb93d02d
|
||||||
React-jsiexecutor: c61b60de03b3474e5749b8a8fd8e6507630d62c4
|
React-jsiexecutor: 31564fa6912459921568e8b0e49024285a4d584b
|
||||||
React-jsinspector: eaacb698c5af7a99131bc1933806372c20222dfd
|
React-jsinspector: badd81696361249893a80477983e697aab3c1a34
|
||||||
React-logger: ebb4d31bbbe4f1a8a1a9b658d7429210b8f68160
|
React-logger: fdda34dd285bdb0232e059b19d9606fa0ec3bb9c
|
||||||
react-native-blur: 3e9c8e8e9f7d17fa1b94e1a0ae9fd816675f5382
|
react-native-blur: 50c9feabacbc5f49b61337ebc32192c6be7ec3c3
|
||||||
react-native-blurhash: add4df9a937b4e021a24bc67a0714f13e0bd40b7
|
react-native-blurhash: add4df9a937b4e021a24bc67a0714f13e0bd40b7
|
||||||
react-native-cameraroll: 38b40d9033e4077b6c603f92f95c6d05fa7907df
|
react-native-cameraroll: a40b082318eb1ecd0336a2f29d9f74b7f2c8cae8
|
||||||
react-native-context-menu-view: b0beca02aad4bd9f9d7d932bf437e0a03baa69ef
|
react-native-context-menu-view: b0beca02aad4bd9f9d7d932bf437e0a03baa69ef
|
||||||
react-native-image-picker: 4bc9ed38c8be255b515d8c88babbaf74973f91a8
|
react-native-image-picker: 4bc9ed38c8be255b515d8c88babbaf74973f91a8
|
||||||
react-native-language-detection: 0e43195ad014974f1b7a31b64820eff34a243f2d
|
react-native-language-detection: 0e43195ad014974f1b7a31b64820eff34a243f2d
|
||||||
react-native-live-text-image-view: 483bacfdba464162b8cf176bba555364f18b584c
|
react-native-live-text-image-view: 483bacfdba464162b8cf176bba555364f18b584c
|
||||||
react-native-netinfo: f80db8cac2151405633324cb645c60af098ee461
|
react-native-netinfo: f80db8cac2151405633324cb645c60af098ee461
|
||||||
react-native-pager-view: 592421df0259bf7a7a4fe85b74c24f3f39905605
|
react-native-pager-view: 7abf89f9834d9a4021b2fb6a5ef2abff570b46fb
|
||||||
react-native-paste-input: 183ad7dc224e192719616f4258dde5b548627d08
|
react-native-paste-input: 183ad7dc224e192719616f4258dde5b548627d08
|
||||||
react-native-safe-area-context: 99b24a0c5acd0d5dcac2b1a7f18c49ea317be99a
|
react-native-safe-area-context: 99b24a0c5acd0d5dcac2b1a7f18c49ea317be99a
|
||||||
react-native-segmented-control: 65df6cd0619b780b3843d574a72d4c7cec396097
|
react-native-segmented-control: 65df6cd0619b780b3843d574a72d4c7cec396097
|
||||||
React-perflogger: 1fb1ad5333b43a5137afd7608695f7a42c5efd27
|
React-perflogger: e68d3795cf5d247a0379735cbac7309adf2fb931
|
||||||
React-RCTActionSheet: a435bd67689433575a1e5d7614b021d2c17f0726
|
React-RCTActionSheet: 05452c3b281edb27850253db13ecd4c5a65bc247
|
||||||
React-RCTAnimation: d097c5ed2d00735958508617555abd85183b94e2
|
React-RCTAnimation: 578eebac706428e68466118e84aeacf3a282b4da
|
||||||
React-RCTBlob: f43a0fceb328e1a40aa52701a4eba955635444ab
|
React-RCTBlob: f47a0aa61e7d1fb1a0e13da832b0da934939d71a
|
||||||
React-RCTImage: 08f4428e931efe0eefb94443c8ca08cfb250a556
|
React-RCTImage: 60f54b66eed65d86b6dffaf4733d09161d44929d
|
||||||
React-RCTLinking: 3a8851e818652582f87e5a7577302e6ad7e1de3e
|
React-RCTLinking: 91073205aeec4b29450ca79b709277319368ac9e
|
||||||
React-RCTNetwork: 19f7c66b612e2336eefdfbc7ab3a9bd8ca4e21cf
|
React-RCTNetwork: ca91f2c9465a7e335c8a5fae731fd7f10572213b
|
||||||
React-RCTSettings: 9324e718a865ff01e4a96be4c65923581b2d5170
|
React-RCTSettings: 1a9a5d01337d55c18168c1abe0f4a589167d134a
|
||||||
React-RCTText: 9cadcd5d982c1d25f7439f47354b1c1b75e60105
|
React-RCTText: c591e8bd9347a294d8416357ca12d779afec01d5
|
||||||
React-RCTVibration: 285f8538386c660e6b9497e204636acd93bf7fcc
|
React-RCTVibration: 8e5c8c5d17af641f306d7380d8d0fe9b3c142c48
|
||||||
React-runtimeexecutor: 0af71c94f968fa10015bf0119951bccd2e4d8865
|
React-runtimeexecutor: 7401c4a40f8728fd89df4a56104541b760876117
|
||||||
ReactCommon: fe7580b9d10f00249facf25659e0ec051320cc8a
|
ReactCommon: c9246996e73bf75a2c6c3ff15f1e16707cdc2da9
|
||||||
RNCAsyncStorage: 0c357f3156fcb16c8589ede67cc036330b6698ca
|
RNCAsyncStorage: 8616bd5a58af409453ea4e1b246521bb76578d60
|
||||||
RNCClipboard: 2834e1c4af68697089cdd455ee4a4cdd198fa7dd
|
RNCClipboard: 2834e1c4af68697089cdd455ee4a4cdd198fa7dd
|
||||||
RNFastImage: c74e098cb862b4870c3de0b1096b65c63e492938
|
RNFastImage: c5dd1b551779c5826fe43b7d36788385da2021e2
|
||||||
RNGestureHandler: 62232ba8f562f7dea5ba1b3383494eb5bf97a4d3
|
RNGestureHandler: 62232ba8f562f7dea5ba1b3383494eb5bf97a4d3
|
||||||
RNReanimated: c3e58924b9418883b0bde9e78c4c957302f02435
|
RNReanimated: 2a91e85fcd343f8af3c58d3425b99fdd285590a5
|
||||||
RNScreens: 34cc502acf1b916c582c60003dc3089fa01dc66d
|
RNScreens: 34cc502acf1b916c582c60003dc3089fa01dc66d
|
||||||
RNSentry: 694aecc3d8240e4935374974a6636e360ae06394
|
RNSentry: db7fd7b66efda28885e4e904a8b5e7349aec61c1
|
||||||
RNShareMenu: cb9dac548c8bf147d06f0bf07296ad51ea9f5fc3
|
RNShareMenu: cb9dac548c8bf147d06f0bf07296ad51ea9f5fc3
|
||||||
RNSVG: 42a0c731b11179ebbd27a3eeeafa7201ebb476ff
|
RNSVG: 38ca962c970dbce1ca38991a5aebf26d163f9efb
|
||||||
SDWebImage: 23d714cd599354ee7906dbae26dff89b421c4370
|
SDWebImage: b9a731e1d6307f44ca703b3976d18c24ca561e84
|
||||||
SDWebImageWebPCoder: 18503de6621dd2c420d680e33d46bf8e1d5169b0
|
SDWebImageWebPCoder: 18503de6621dd2c420d680e33d46bf8e1d5169b0
|
||||||
Sentry: 2c6053e4cfe6dea6608135dea1928ffbb4ecfba5
|
Sentry: 4272663eb0eda312024d795ca3f5a562a8ce5e18
|
||||||
Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b
|
Swime: d7b2c277503b6cea317774aedc2dce05613f8b0b
|
||||||
Yoga: 75bf4b0131cfb46a659cd0c13309b79a6fcff66d
|
Yoga: eca980a5771bf114c41a754098cd85e6e0d90ed7
|
||||||
|
|
||||||
PODFILE CHECKSUM: 244b6793e4be83f0909a91b2fe15c8f89a5e8151
|
PODFILE CHECKSUM: e4191b63c8f15031b2365226730770e7978dca41
|
||||||
|
|
||||||
COCOAPODS: 1.11.3
|
COCOAPODS: 1.11.3
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
"NSPhotoLibraryAddUsageDescription" = "Autoriser tooot à enregistrer des images sur votre pellicule";
|
||||||
|
"NSPhotoLibraryUsageDescription" = "Autoriser tooot à enregistrer des images sur votre pellicule";
|
|
@ -76,6 +76,7 @@
|
||||||
E633A427281EAEAB000E540F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
E633A427281EAEAB000E540F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||||
E633A42F281EAF38000E540F /* ShareViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ShareViewController.swift; path = "../../node_modules/react-native-share-menu/ios/ShareViewController.swift"; sourceTree = "<group>"; };
|
E633A42F281EAF38000E540F /* ShareViewController.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = ShareViewController.swift; path = "../../node_modules/react-native-share-menu/ios/ShareViewController.swift"; sourceTree = "<group>"; };
|
||||||
E633A431281EB55C000E540F /* ShareExtension-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "ShareExtension-Bridging-Header.h"; sourceTree = "<group>"; };
|
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>"; };
|
E671BDF8290EAFB800287BD0 /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/InfoPlist.strings"; sourceTree = "<group>"; };
|
||||||
E69EBACA28DF282D0057EDEC /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = de.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>"; };
|
E69EBACB28DF283A0057EDEC /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = "<group>"; };
|
||||||
|
@ -291,6 +292,7 @@
|
||||||
vi,
|
vi,
|
||||||
ja,
|
ja,
|
||||||
"zh-Hant",
|
"zh-Hant",
|
||||||
|
fr,
|
||||||
);
|
);
|
||||||
mainGroup = 83CBB9F61A601CBA00E9B192;
|
mainGroup = 83CBB9F61A601CBA00E9B192;
|
||||||
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
|
productRefGroup = 83CBBA001A601CBA00E9B192 /* Products */;
|
||||||
|
@ -519,6 +521,7 @@
|
||||||
E69EBACE28DF28560057EDEC /* vi */,
|
E69EBACE28DF28560057EDEC /* vi */,
|
||||||
E6C8B26628F5F9FC0062CF2E /* ja */,
|
E6C8B26628F5F9FC0062CF2E /* ja */,
|
||||||
E671BDF8290EAFB800287BD0 /* zh-Hant */,
|
E671BDF8290EAFB800287BD0 /* zh-Hant */,
|
||||||
|
E66C0842291F095800DFFF60 /* fr */,
|
||||||
);
|
);
|
||||||
name = InfoPlist.strings;
|
name = InfoPlist.strings;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
|
@ -544,7 +547,8 @@
|
||||||
"FB_SONARKIT_ENABLED=1",
|
"FB_SONARKIT_ENABLED=1",
|
||||||
);
|
);
|
||||||
INFOPLIST_FILE = tooot/Info.plist;
|
INFOPLIST_FILE = tooot/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
|
@ -581,7 +585,8 @@
|
||||||
DEVELOPMENT_TEAM = 8EGBLQ2MA6;
|
DEVELOPMENT_TEAM = 8EGBLQ2MA6;
|
||||||
"ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES;
|
"ENABLE_HARDENED_RUNTIME[sdk=macosx*]" = YES;
|
||||||
INFOPLIST_FILE = tooot/Info.plist;
|
INFOPLIST_FILE = tooot/Info.plist;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
|
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.social-networking";
|
||||||
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"@executable_path/Frameworks",
|
"@executable_path/Frameworks",
|
||||||
|
@ -609,7 +614,7 @@
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
@ -654,12 +659,12 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
/usr/lib/swift,
|
/usr/lib/swift,
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
);
|
);
|
||||||
LIBRARY_SEARCH_PATHS = "\"\"";
|
LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"\"";
|
||||||
MTL_ENABLE_DEBUG_INFO = YES;
|
MTL_ENABLE_DEBUG_INFO = YES;
|
||||||
ONLY_ACTIVE_ARCH = YES;
|
ONLY_ACTIVE_ARCH = YES;
|
||||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
||||||
|
@ -672,7 +677,7 @@
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
|
CLANG_CXX_LANGUAGE_STANDARD = "c++17";
|
||||||
CLANG_CXX_LIBRARY = "libc++";
|
CLANG_CXX_LIBRARY = "libc++";
|
||||||
CLANG_ENABLE_MODULES = YES;
|
CLANG_ENABLE_MODULES = YES;
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
|
@ -710,12 +715,12 @@
|
||||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
/usr/lib/swift,
|
/usr/lib/swift,
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
);
|
);
|
||||||
LIBRARY_SEARCH_PATHS = "\"\"";
|
LIBRARY_SEARCH_PATHS = "$(SDKROOT)/usr/lib/swift\"\"";
|
||||||
MTL_ENABLE_DEBUG_INFO = NO;
|
MTL_ENABLE_DEBUG_INFO = NO;
|
||||||
ONLY_ACTIVE_ARCH = NO;
|
ONLY_ACTIVE_ARCH = NO;
|
||||||
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
REACT_NATIVE_PATH = "${PODS_ROOT}/../../node_modules/react-native";
|
||||||
|
@ -747,7 +752,7 @@
|
||||||
INFOPLIST_FILE = ShareExtension/Info.plist;
|
INFOPLIST_FILE = ShareExtension/Info.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = ShareExtension;
|
INFOPLIST_KEY_CFBundleDisplayName = ShareExtension;
|
||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.2;
|
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.2;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
|
@ -796,7 +801,7 @@
|
||||||
INFOPLIST_FILE = ShareExtension/Info.plist;
|
INFOPLIST_FILE = ShareExtension/Info.plist;
|
||||||
INFOPLIST_KEY_CFBundleDisplayName = ShareExtension;
|
INFOPLIST_KEY_CFBundleDisplayName = ShareExtension;
|
||||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 12.4;
|
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||||
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.2;
|
"IPHONEOS_DEPLOYMENT_TARGET[sdk=macosx*]" = 14.2;
|
||||||
LD_RUNPATH_SEARCH_PATHS = (
|
LD_RUNPATH_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
|
|
89
package.json
89
package.json
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "tooot",
|
"name": "tooot",
|
||||||
"version": "4.5.1",
|
"version": "4.6.0",
|
||||||
"description": "tooot for Mastodon",
|
"description": "tooot for Mastodon",
|
||||||
"author": "xmflsct <me@xmflsct.com>",
|
"author": "xmflsct <me@xmflsct.com>",
|
||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
|
@ -18,7 +18,7 @@
|
||||||
"postinstall": "patch-package"
|
"postinstall": "patch-package"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@expo/react-native-action-sheet": "^4.0.0",
|
"@expo/react-native-action-sheet": "^4.0.1",
|
||||||
"@formatjs/intl-datetimeformat": "^6.3.1",
|
"@formatjs/intl-datetimeformat": "^6.3.1",
|
||||||
"@formatjs/intl-getcanonicallocales": "^2.0.4",
|
"@formatjs/intl-getcanonicallocales": "^2.0.4",
|
||||||
"@formatjs/intl-locale": "^3.0.7",
|
"@formatjs/intl-locale": "^3.0.7",
|
||||||
|
@ -27,47 +27,47 @@
|
||||||
"@formatjs/intl-relativetimeformat": "^11.1.4",
|
"@formatjs/intl-relativetimeformat": "^11.1.4",
|
||||||
"@mattermost/react-native-paste-input": "^0.5.1",
|
"@mattermost/react-native-paste-input": "^0.5.1",
|
||||||
"@neverdull-agency/expo-unlimited-secure-store": "^1.0.10",
|
"@neverdull-agency/expo-unlimited-secure-store": "^1.0.10",
|
||||||
"@react-native-async-storage/async-storage": "^1.17.10",
|
"@react-native-async-storage/async-storage": "~1.17.11",
|
||||||
"@react-native-camera-roll/camera-roll": "^5.0.4",
|
"@react-native-camera-roll/camera-roll": "^5.1.0",
|
||||||
"@react-native-clipboard/clipboard": "^1.11.1",
|
"@react-native-clipboard/clipboard": "^1.11.1",
|
||||||
"@react-native-community/blur": "^4.2.0",
|
"@react-native-community/blur": "^4.3.0",
|
||||||
"@react-native-community/netinfo": "^9.3.6",
|
"@react-native-community/netinfo": "9.3.6",
|
||||||
"@react-native-community/segmented-control": "^2.2.2",
|
"@react-native-community/segmented-control": "^2.2.2",
|
||||||
"@react-navigation/bottom-tabs": "^6.4.0",
|
"@react-navigation/bottom-tabs": "^6.4.0",
|
||||||
"@react-navigation/native": "^6.0.13",
|
"@react-navigation/native": "^6.0.13",
|
||||||
"@react-navigation/native-stack": "^6.9.1",
|
"@react-navigation/native-stack": "^6.9.1",
|
||||||
"@react-navigation/stack": "^6.3.3",
|
"@react-navigation/stack": "^6.3.4",
|
||||||
"@reduxjs/toolkit": "^1.8.6",
|
"@reduxjs/toolkit": "^1.9.0",
|
||||||
"@sentry/react-native": "^4.7.1",
|
"@sentry/react-native": "4.8.0",
|
||||||
"@sharcoux/slider": "^6.0.3",
|
"@sharcoux/slider": "^6.0.3",
|
||||||
"axios": "^0.27.2",
|
"axios": "^0.27.2",
|
||||||
"expo": "^46.0.16",
|
"expo": "^47.0.3",
|
||||||
"expo-auth-session": "^3.7.1",
|
"expo-auth-session": "~3.7.2",
|
||||||
"expo-av": "^12.0.4",
|
"expo-av": "~13.0.1",
|
||||||
"expo-constants": "^13.2.4",
|
"expo-constants": "~14.0.2",
|
||||||
"expo-crypto": "^11.0.0",
|
"expo-crypto": "~12.0.0",
|
||||||
"expo-file-system": "^14.1.0",
|
"expo-file-system": "~15.1.1",
|
||||||
"expo-firebase-analytics": "^7.2.0",
|
"expo-firebase-analytics": "~8.0.0",
|
||||||
"expo-haptics": "^11.3.0",
|
"expo-haptics": "~12.0.1",
|
||||||
"expo-linking": "^3.2.2",
|
"expo-linking": "~3.2.3",
|
||||||
"expo-localization": "^13.1.0",
|
"expo-localization": "~14.0.0",
|
||||||
"expo-notifications": "^0.16.1",
|
"expo-notifications": "~0.17.0",
|
||||||
"expo-random": "^12.3.0",
|
"expo-random": "~13.0.0",
|
||||||
"expo-screen-capture": "^4.3.0",
|
"expo-screen-capture": "~5.0.0",
|
||||||
"expo-secure-store": "^11.3.0",
|
"expo-secure-store": "~12.0.0",
|
||||||
"expo-splash-screen": "^0.16.2",
|
"expo-splash-screen": "~0.17.4",
|
||||||
"expo-store-review": "^5.3.0",
|
"expo-store-review": "~6.0.0",
|
||||||
"expo-video-thumbnails": "^6.4.0",
|
"expo-video-thumbnails": "~7.0.0",
|
||||||
"expo-web-browser": "^11.0.0",
|
"expo-web-browser": "~12.0.0",
|
||||||
"i18next": "^22.0.4",
|
"i18next": "^22.0.4",
|
||||||
"li": "^1.3.0",
|
"li": "^1.3.0",
|
||||||
"linkify-it": "^4.0.1",
|
"linkify-it": "^4.0.1",
|
||||||
"lodash": "^4.17.21",
|
"lodash": "^4.17.21",
|
||||||
"react": "^18.2.0",
|
"react": "18.2.0",
|
||||||
"react-dom": "^18.2.0",
|
"react-dom": "18.2.0",
|
||||||
"react-i18next": "^12.0.0",
|
"react-i18next": "^12.0.0",
|
||||||
"react-intl": "^6.2.1",
|
"react-intl": "^6.2.1",
|
||||||
"react-native": "^0.69.6",
|
"react-native": "0.70.5",
|
||||||
"react-native-animated-spinkit": "^1.5.2",
|
"react-native-animated-spinkit": "^1.5.2",
|
||||||
"react-native-base64": "^0.2.1",
|
"react-native-base64": "^0.2.1",
|
||||||
"react-native-blurhash": "^1.1.10",
|
"react-native-blurhash": "^1.1.10",
|
||||||
|
@ -75,37 +75,37 @@
|
||||||
"react-native-fast-image": "^8.6.3",
|
"react-native-fast-image": "^8.6.3",
|
||||||
"react-native-feather": "^1.1.2",
|
"react-native-feather": "^1.1.2",
|
||||||
"react-native-flash-message": "^0.3.1",
|
"react-native-flash-message": "^0.3.1",
|
||||||
"react-native-gesture-handler": "^2.8.0",
|
"react-native-gesture-handler": "~2.8.0",
|
||||||
"react-native-htmlview": "^0.16.0",
|
"react-native-htmlview": "^0.16.0",
|
||||||
"react-native-image-picker": "^4.10.0",
|
"react-native-image-picker": "^4.10.0",
|
||||||
"react-native-language-detection": "^0.1.0",
|
"react-native-language-detection": "^0.1.0",
|
||||||
"react-native-live-text-image-view": "^0.4.0",
|
"react-native-live-text-image-view": "^0.4.0",
|
||||||
"react-native-pager-view": "^6.0.2",
|
"react-native-pager-view": "6.1.0",
|
||||||
"react-native-reanimated": "^2.12.0",
|
"react-native-reanimated": "~2.12.0",
|
||||||
"react-native-reanimated-zoom": "^0.3.2",
|
"react-native-reanimated-zoom": "^0.3.3",
|
||||||
"react-native-safe-area-context": "^4.4.1",
|
"react-native-safe-area-context": "4.4.1",
|
||||||
"react-native-screens": "^3.18.2",
|
"react-native-screens": "~3.18.2",
|
||||||
"react-native-share-menu": "^6.0.0",
|
"react-native-share-menu": "^6.0.0",
|
||||||
"react-native-svg": "13.0.0",
|
"react-native-svg": "13.5.0",
|
||||||
"react-native-swipe-list-view": "^3.2.9",
|
"react-native-swipe-list-view": "^3.2.9",
|
||||||
"react-native-tab-view": "^3.3.0",
|
"react-native-tab-view": "^3.3.0",
|
||||||
"react-query": "^3.39.2",
|
"react-query": "^3.39.2",
|
||||||
"react-redux": "^8.0.4",
|
"react-redux": "^8.0.5",
|
||||||
"redux-persist": "^6.0.0",
|
"redux-persist": "^6.0.0",
|
||||||
"rn-placeholder": "^3.0.3",
|
"rn-placeholder": "^3.0.3",
|
||||||
"valid-url": "^1.0.9"
|
"valid-url": "^1.0.9"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.19.6",
|
"@babel/core": "^7.20.2",
|
||||||
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
|
"@babel/plugin-proposal-optional-chaining": "^7.18.9",
|
||||||
"@babel/preset-react": "^7.18.6",
|
"@babel/preset-react": "^7.18.6",
|
||||||
"@babel/preset-typescript": "^7.18.6",
|
"@babel/preset-typescript": "^7.18.6",
|
||||||
"@expo/config": "^7.0.1",
|
"@expo/config": "^7.0.3",
|
||||||
"@types/linkify-it": "^3.0.2",
|
"@types/linkify-it": "^3.0.2",
|
||||||
"@types/lodash": "^4.14.186",
|
"@types/lodash": "^4.14.188",
|
||||||
"@types/react": "^18.0.24",
|
"@types/react": "~18.0.25",
|
||||||
"@types/react-dom": "^18.0.8",
|
"@types/react-dom": "~18.0.8",
|
||||||
"@types/react-native": "^0.69.5",
|
"@types/react-native": "~0.70.6",
|
||||||
"@types/react-native-base64": "^0.2.0",
|
"@types/react-native-base64": "^0.2.0",
|
||||||
"@types/react-native-share-menu": "^5.0.2",
|
"@types/react-native-share-menu": "^5.0.2",
|
||||||
"@types/react-timeago": "^4.1.3",
|
"@types/react-timeago": "^4.1.3",
|
||||||
|
@ -115,6 +115,7 @@
|
||||||
"babel-plugin-transform-remove-console": "^6.9.4",
|
"babel-plugin-transform-remove-console": "^6.9.4",
|
||||||
"chalk": "^4.1.2",
|
"chalk": "^4.1.2",
|
||||||
"dotenv": "^16.0.3",
|
"dotenv": "^16.0.3",
|
||||||
|
"expo-cli": "^6.0.8",
|
||||||
"patch-package": "^6.5.0",
|
"patch-package": "^6.5.0",
|
||||||
"postinstall-postinstall": "^2.1.0",
|
"postinstall-postinstall": "^2.1.0",
|
||||||
"react-native-clean-project": "^4.0.1",
|
"react-native-clean-project": "^4.0.1",
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
diff --git a/node_modules/react-native-fast-image/RNFastImage.podspec b/node_modules/react-native-fast-image/RNFastImage.podspec
|
diff --git a/node_modules/react-native-fast-image/RNFastImage.podspec b/node_modules/react-native-fast-image/RNFastImage.podspec
|
||||||
index db0fada..23770b6 100644
|
index db0fada..b23cd91 100644
|
||||||
--- a/node_modules/react-native-fast-image/RNFastImage.podspec
|
--- a/node_modules/react-native-fast-image/RNFastImage.podspec
|
||||||
+++ b/node_modules/react-native-fast-image/RNFastImage.podspec
|
+++ b/node_modules/react-native-fast-image/RNFastImage.podspec
|
||||||
@@ -16,6 +16,6 @@ Pod::Spec.new do |s|
|
@@ -16,6 +16,6 @@ Pod::Spec.new do |s|
|
||||||
|
@ -8,7 +8,7 @@ index db0fada..23770b6 100644
|
||||||
s.dependency 'React-Core'
|
s.dependency 'React-Core'
|
||||||
- s.dependency 'SDWebImage', '~> 5.11.1'
|
- s.dependency 'SDWebImage', '~> 5.11.1'
|
||||||
- s.dependency 'SDWebImageWebPCoder', '~> 0.8.4'
|
- s.dependency 'SDWebImageWebPCoder', '~> 0.8.4'
|
||||||
+ s.dependency 'SDWebImage', '~> 5.13.5'
|
+ s.dependency 'SDWebImage', '~> 5.14.2'
|
||||||
+ s.dependency 'SDWebImageWebPCoder', '~> 0.9.1'
|
+ s.dependency 'SDWebImageWebPCoder', '~> 0.9.1'
|
||||||
end
|
end
|
||||||
diff --git a/node_modules/react-native-fast-image/android/build.gradle b/node_modules/react-native-fast-image/android/build.gradle
|
diff --git a/node_modules/react-native-fast-image/android/build.gradle b/node_modules/react-native-fast-image/android/build.gradle
|
||||||
|
|
|
@ -1,41 +0,0 @@
|
||||||
diff --git a/node_modules/react-native-reanimated-zoom/lib/typescript/zoom.d.ts b/node_modules/react-native-reanimated-zoom/lib/typescript/zoom.d.ts
|
|
||||||
index 38fb6f1..e93c288 100644
|
|
||||||
--- a/node_modules/react-native-reanimated-zoom/lib/typescript/zoom.d.ts
|
|
||||||
+++ b/node_modules/react-native-reanimated-zoom/lib/typescript/zoom.d.ts
|
|
||||||
@@ -6,6 +6,7 @@ declare type Props = {
|
|
||||||
minimumZoomScale?: number;
|
|
||||||
maximumZoomScale?: number;
|
|
||||||
simultaneousGesture?: GestureType;
|
|
||||||
+ isZoomed?: SharedValue<boolean>;
|
|
||||||
} & ViewProps;
|
|
||||||
export declare function Zoom(props: Props): JSX.Element;
|
|
||||||
export {};
|
|
||||||
diff --git a/node_modules/react-native-reanimated-zoom/src/zoom.tsx b/node_modules/react-native-reanimated-zoom/src/zoom.tsx
|
|
||||||
index e07b415..d57a1eb 100644
|
|
||||||
--- a/node_modules/react-native-reanimated-zoom/src/zoom.tsx
|
|
||||||
+++ b/node_modules/react-native-reanimated-zoom/src/zoom.tsx
|
|
||||||
@@ -7,6 +7,7 @@ import Animated, {
|
|
||||||
withTiming,
|
|
||||||
cancelAnimation,
|
|
||||||
runOnJS,
|
|
||||||
+ SharedValue,
|
|
||||||
} from 'react-native-reanimated';
|
|
||||||
import {
|
|
||||||
Gesture,
|
|
||||||
@@ -20,6 +21,7 @@ type Props = {
|
|
||||||
minimumZoomScale?: number;
|
|
||||||
maximumZoomScale?: number;
|
|
||||||
simultaneousGesture?: GestureType;
|
|
||||||
+ isZoomed?: SharedValue<boolean>;
|
|
||||||
} & ViewProps;
|
|
||||||
|
|
||||||
export function Zoom(props: Props) {
|
|
||||||
@@ -39,7 +41,7 @@ export function Zoom(props: Props) {
|
|
||||||
const originY = useSharedValue(0);
|
|
||||||
const scale = useSharedValue(1);
|
|
||||||
const isPinching = useSharedValue(false);
|
|
||||||
- const isZoomed = useSharedValue(false);
|
|
||||||
+ const isZoomed = props.isZoomed || useSharedValue(false);
|
|
||||||
const viewHeight = useSharedValue(0);
|
|
||||||
const viewWidth = useSharedValue(0);
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ declare namespace Mastodon {
|
||||||
fields: Field[]
|
fields: Field[]
|
||||||
bot: boolean
|
bot: boolean
|
||||||
source?: Source
|
source?: Source
|
||||||
|
suspended?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
type Announcement = {
|
type Announcement = {
|
||||||
|
|
|
@ -34,9 +34,11 @@ const ComponentAccount: React.FC<Props> = ({
|
||||||
<Pressable
|
<Pressable
|
||||||
accessibilityRole='button'
|
accessibilityRole='button'
|
||||||
style={{
|
style={{
|
||||||
|
flex: 1,
|
||||||
paddingHorizontal: StyleConstants.Spacing.Global.PagePadding,
|
paddingHorizontal: StyleConstants.Spacing.Global.PagePadding,
|
||||||
paddingVertical: StyleConstants.Spacing.M,
|
paddingVertical: StyleConstants.Spacing.M,
|
||||||
flexDirection: 'row',
|
flexDirection: 'row',
|
||||||
|
alignSelf: 'flex-start',
|
||||||
alignItems: 'center'
|
alignItems: 'center'
|
||||||
}}
|
}}
|
||||||
onPress={customOnPress || onPress}
|
onPress={customOnPress || onPress}
|
||||||
|
|
|
@ -207,6 +207,10 @@ const ParseHTML = React.memo(
|
||||||
expandHint = t('HTML.defaultHint')
|
expandHint = t('HTML.defaultHint')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (disableDetails) {
|
||||||
|
numberOfLines = 4
|
||||||
|
}
|
||||||
|
|
||||||
const renderNodeCallback = useCallback(
|
const renderNodeCallback = useCallback(
|
||||||
(node: any, index: any) =>
|
(node: any, index: any) =>
|
||||||
renderNode({
|
renderNode({
|
||||||
|
@ -247,7 +251,7 @@ const ParseHTML = React.memo(
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<View style={{ overflow: 'hidden' }}>
|
<View style={{ overflow: 'hidden' }}>
|
||||||
{typeof totalLines === 'number' || numberOfLines === 1 ? (
|
{(!disableDetails && typeof totalLines === 'number') || numberOfLines === 1 ? (
|
||||||
<Pressable
|
<Pressable
|
||||||
accessibilityLabel={t('HTML.accessibilityHint')}
|
accessibilityLabel={t('HTML.accessibilityHint')}
|
||||||
onPress={() => {
|
onPress={() => {
|
||||||
|
|
|
@ -16,8 +16,8 @@ import { getInstanceAccount } from '@utils/slices/instancesSlice'
|
||||||
import { StyleConstants } from '@utils/styles/constants'
|
import { StyleConstants } from '@utils/styles/constants'
|
||||||
import { useTheme } from '@utils/styles/ThemeManager'
|
import { useTheme } from '@utils/styles/ThemeManager'
|
||||||
import { uniqBy } from 'lodash'
|
import { uniqBy } from 'lodash'
|
||||||
import React, { useCallback, useRef } from 'react'
|
import React, { useRef } from 'react'
|
||||||
import { Pressable, View } from 'react-native'
|
import { Pressable, StyleProp, View, ViewStyle } from 'react-native'
|
||||||
import { useSelector } from 'react-redux'
|
import { useSelector } from 'react-redux'
|
||||||
import TimelineContextMenu from './Shared/ContextMenu'
|
import TimelineContextMenu from './Shared/ContextMenu'
|
||||||
import TimelineFeedback from './Shared/Feedback'
|
import TimelineFeedback from './Shared/Feedback'
|
||||||
|
@ -45,6 +45,10 @@ const TimelineDefault: React.FC<Props> = ({
|
||||||
disableDetails = false,
|
disableDetails = false,
|
||||||
disableOnPress = false
|
disableOnPress = false
|
||||||
}) => {
|
}) => {
|
||||||
|
if (highlighted) {
|
||||||
|
disableOnPress = true
|
||||||
|
}
|
||||||
|
|
||||||
const { colors } = useTheme()
|
const { colors } = useTheme()
|
||||||
const instanceAccount = useSelector(getInstanceAccount, () => true)
|
const instanceAccount = useSelector(getInstanceAccount, () => true)
|
||||||
const navigation = useNavigation<StackNavigationProp<TabLocalStackParamList>>()
|
const navigation = useNavigation<StackNavigationProp<TabLocalStackParamList>>()
|
||||||
|
@ -58,27 +62,105 @@ const TimelineDefault: React.FC<Props> = ({
|
||||||
complete: false
|
complete: false
|
||||||
})
|
})
|
||||||
|
|
||||||
if (
|
const filtered = queryKey && shouldFilter({ copiableContent, status: actualStatus, queryKey })
|
||||||
queryKey &&
|
if (queryKey && filtered && !highlighted) {
|
||||||
shouldFilter({ copiableContent, status: actualStatus, queryKey }) &&
|
return <TimelineFiltered phrase={filtered} />
|
||||||
!highlighted
|
|
||||||
) {
|
|
||||||
return <TimelineFiltered />
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const onPress = useCallback(() => {
|
const onPress = () => {
|
||||||
analytics('timeline_default_press', {
|
analytics('timeline_default_press', {
|
||||||
page: queryKey ? queryKey[1].page : origin
|
page: queryKey ? queryKey[1].page : origin
|
||||||
})
|
})
|
||||||
!disableOnPress &&
|
navigation.push('Tab-Shared-Toot', {
|
||||||
!highlighted &&
|
toot: actualStatus,
|
||||||
navigation.push('Tab-Shared-Toot', {
|
rootQueryKey: queryKey
|
||||||
toot: actualStatus,
|
})
|
||||||
rootQueryKey: queryKey
|
}
|
||||||
})
|
|
||||||
}, [])
|
|
||||||
|
|
||||||
return (
|
const mainStyle: StyleProp<ViewStyle> = {
|
||||||
|
padding: StyleConstants.Spacing.Global.PagePadding,
|
||||||
|
backgroundColor: colors.backgroundDefault,
|
||||||
|
paddingBottom: disableDetails ? StyleConstants.Spacing.Global.PagePadding : 0
|
||||||
|
}
|
||||||
|
const main = () => (
|
||||||
|
<>
|
||||||
|
{item.reblog ? (
|
||||||
|
<TimelineActioned action='reblog' account={item.account} />
|
||||||
|
) : item._pinned ? (
|
||||||
|
<TimelineActioned action='pinned' account={item.account} />
|
||||||
|
) : null}
|
||||||
|
|
||||||
|
<View style={{ flex: 1, width: '100%', flexDirection: 'row' }}>
|
||||||
|
<TimelineAvatar
|
||||||
|
queryKey={disableOnPress ? undefined : queryKey}
|
||||||
|
account={actualStatus.account}
|
||||||
|
highlighted={highlighted}
|
||||||
|
/>
|
||||||
|
<TimelineHeaderDefault
|
||||||
|
queryKey={disableOnPress ? undefined : queryKey}
|
||||||
|
status={actualStatus}
|
||||||
|
highlighted={highlighted}
|
||||||
|
/>
|
||||||
|
</View>
|
||||||
|
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
paddingTop: highlighted ? StyleConstants.Spacing.S : 0,
|
||||||
|
paddingLeft: highlighted ? 0 : StyleConstants.Avatar.M + StyleConstants.Spacing.S
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
{typeof actualStatus.content === 'string' && actualStatus.content.length > 0 ? (
|
||||||
|
<TimelineContent
|
||||||
|
status={actualStatus}
|
||||||
|
highlighted={highlighted}
|
||||||
|
disableDetails={disableDetails}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
{queryKey && actualStatus.poll ? (
|
||||||
|
<TimelinePoll
|
||||||
|
queryKey={queryKey}
|
||||||
|
rootQueryKey={rootQueryKey}
|
||||||
|
statusId={actualStatus.id}
|
||||||
|
poll={actualStatus.poll}
|
||||||
|
reblog={item.reblog ? true : false}
|
||||||
|
sameAccount={ownAccount}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
{!disableDetails &&
|
||||||
|
Array.isArray(actualStatus.media_attachments) &&
|
||||||
|
actualStatus.media_attachments.length ? (
|
||||||
|
<TimelineAttachment status={actualStatus} />
|
||||||
|
) : null}
|
||||||
|
{!disableDetails && actualStatus.card ? <TimelineCard card={actualStatus.card} /> : null}
|
||||||
|
{!disableDetails ? (
|
||||||
|
<TimelineFullConversation queryKey={queryKey} status={actualStatus} />
|
||||||
|
) : null}
|
||||||
|
<TimelineTranslate status={actualStatus} highlighted={highlighted} />
|
||||||
|
<TimelineFeedback status={actualStatus} highlighted={highlighted} />
|
||||||
|
</View>
|
||||||
|
|
||||||
|
{queryKey && !disableDetails ? (
|
||||||
|
<TimelineActions
|
||||||
|
queryKey={queryKey}
|
||||||
|
rootQueryKey={rootQueryKey}
|
||||||
|
highlighted={highlighted}
|
||||||
|
status={actualStatus}
|
||||||
|
ownAccount={ownAccount}
|
||||||
|
accts={uniqBy(
|
||||||
|
([actualStatus.account] as Mastodon.Account[] & Mastodon.Mention[])
|
||||||
|
.concat(actualStatus.mentions)
|
||||||
|
.filter(d => d?.id !== instanceAccount?.id),
|
||||||
|
d => d?.id
|
||||||
|
).map(d => d?.acct)}
|
||||||
|
reblog={item.reblog ? true : false}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
|
||||||
|
return disableOnPress ? (
|
||||||
|
<View style={mainStyle}>{main()}</View>
|
||||||
|
) : (
|
||||||
<TimelineContextMenu
|
<TimelineContextMenu
|
||||||
copiableContent={copiableContent}
|
copiableContent={copiableContent}
|
||||||
status={actualStatus}
|
status={actualStatus}
|
||||||
|
@ -87,86 +169,11 @@ const TimelineDefault: React.FC<Props> = ({
|
||||||
>
|
>
|
||||||
<Pressable
|
<Pressable
|
||||||
accessible={highlighted ? false : true}
|
accessible={highlighted ? false : true}
|
||||||
style={{
|
style={mainStyle}
|
||||||
padding: StyleConstants.Spacing.Global.PagePadding,
|
|
||||||
backgroundColor: colors.backgroundDefault,
|
|
||||||
paddingBottom:
|
|
||||||
disableDetails && disableOnPress ? StyleConstants.Spacing.Global.PagePadding : 0
|
|
||||||
}}
|
|
||||||
onPress={onPress}
|
onPress={onPress}
|
||||||
onLongPress={() => {}}
|
onLongPress={() => {}}
|
||||||
>
|
>
|
||||||
{item.reblog ? (
|
{main()}
|
||||||
<TimelineActioned action='reblog' account={item.account} />
|
|
||||||
) : item._pinned ? (
|
|
||||||
<TimelineActioned action='pinned' account={item.account} />
|
|
||||||
) : null}
|
|
||||||
|
|
||||||
<View style={{ flex: 1, width: '100%', flexDirection: 'row' }}>
|
|
||||||
<TimelineAvatar
|
|
||||||
queryKey={disableOnPress ? undefined : queryKey}
|
|
||||||
account={actualStatus.account}
|
|
||||||
highlighted={highlighted}
|
|
||||||
/>
|
|
||||||
<TimelineHeaderDefault
|
|
||||||
queryKey={disableOnPress ? undefined : queryKey}
|
|
||||||
status={actualStatus}
|
|
||||||
highlighted={highlighted}
|
|
||||||
/>
|
|
||||||
</View>
|
|
||||||
|
|
||||||
<View
|
|
||||||
style={{
|
|
||||||
paddingTop: highlighted ? StyleConstants.Spacing.S : 0,
|
|
||||||
paddingLeft: highlighted ? 0 : StyleConstants.Avatar.M + StyleConstants.Spacing.S
|
|
||||||
}}
|
|
||||||
>
|
|
||||||
{typeof actualStatus.content === 'string' && actualStatus.content.length > 0 ? (
|
|
||||||
<TimelineContent
|
|
||||||
status={actualStatus}
|
|
||||||
highlighted={highlighted}
|
|
||||||
disableDetails={disableDetails}
|
|
||||||
/>
|
|
||||||
) : null}
|
|
||||||
{queryKey && actualStatus.poll ? (
|
|
||||||
<TimelinePoll
|
|
||||||
queryKey={queryKey}
|
|
||||||
rootQueryKey={rootQueryKey}
|
|
||||||
statusId={actualStatus.id}
|
|
||||||
poll={actualStatus.poll}
|
|
||||||
reblog={item.reblog ? true : false}
|
|
||||||
sameAccount={ownAccount}
|
|
||||||
/>
|
|
||||||
) : null}
|
|
||||||
{!disableDetails &&
|
|
||||||
Array.isArray(actualStatus.media_attachments) &&
|
|
||||||
actualStatus.media_attachments.length ? (
|
|
||||||
<TimelineAttachment status={actualStatus} />
|
|
||||||
) : null}
|
|
||||||
{!disableDetails && actualStatus.card ? <TimelineCard card={actualStatus.card} /> : null}
|
|
||||||
{!disableDetails ? (
|
|
||||||
<TimelineFullConversation queryKey={queryKey} status={actualStatus} />
|
|
||||||
) : null}
|
|
||||||
<TimelineTranslate status={actualStatus} highlighted={highlighted} />
|
|
||||||
<TimelineFeedback status={actualStatus} highlighted={highlighted} />
|
|
||||||
</View>
|
|
||||||
|
|
||||||
{queryKey && !disableDetails ? (
|
|
||||||
<TimelineActions
|
|
||||||
queryKey={queryKey}
|
|
||||||
rootQueryKey={rootQueryKey}
|
|
||||||
highlighted={highlighted}
|
|
||||||
status={actualStatus}
|
|
||||||
ownAccount={ownAccount}
|
|
||||||
accts={uniqBy(
|
|
||||||
([actualStatus.account] as Mastodon.Account[] & Mastodon.Mention[])
|
|
||||||
.concat(actualStatus.mentions)
|
|
||||||
.filter(d => d?.id !== instanceAccount?.id),
|
|
||||||
d => d?.id
|
|
||||||
).map(d => d?.acct)}
|
|
||||||
reblog={item.reblog ? true : false}
|
|
||||||
/>
|
|
||||||
) : null}
|
|
||||||
</Pressable>
|
</Pressable>
|
||||||
</TimelineContextMenu>
|
</TimelineContextMenu>
|
||||||
)
|
)
|
||||||
|
|
|
@ -36,24 +36,22 @@ const TimelineNotifications = React.memo(
|
||||||
complete: false
|
complete: false
|
||||||
})
|
})
|
||||||
|
|
||||||
if (
|
const filtered =
|
||||||
notification.status &&
|
notification.status &&
|
||||||
shouldFilter({ copiableContent, status: notification.status, queryKey })
|
shouldFilter({
|
||||||
) {
|
copiableContent,
|
||||||
return <TimelineFiltered />
|
status: notification.status,
|
||||||
|
queryKey
|
||||||
|
})
|
||||||
|
if (notification.status && filtered) {
|
||||||
|
return <TimelineFiltered phrase={filtered} />
|
||||||
}
|
}
|
||||||
|
|
||||||
const { colors } = useTheme()
|
const { colors } = useTheme()
|
||||||
const instanceAccount = useSelector(
|
const instanceAccount = useSelector(getInstanceAccount, (prev, next) => prev?.id === next?.id)
|
||||||
getInstanceAccount,
|
const navigation = useNavigation<StackNavigationProp<TabLocalStackParamList>>()
|
||||||
(prev, next) => prev?.id === next?.id
|
|
||||||
)
|
|
||||||
const navigation =
|
|
||||||
useNavigation<StackNavigationProp<TabLocalStackParamList>>()
|
|
||||||
|
|
||||||
const actualAccount = notification.status
|
const actualAccount = notification.status ? notification.status.account : notification.account
|
||||||
? notification.status.account
|
|
||||||
: notification.account
|
|
||||||
|
|
||||||
const onPress = useCallback(() => {
|
const onPress = useCallback(() => {
|
||||||
analytics('timeline_notification_press')
|
analytics('timeline_notification_press')
|
||||||
|
@ -74,9 +72,7 @@ const TimelineNotifications = React.memo(
|
||||||
style={{
|
style={{
|
||||||
padding: StyleConstants.Spacing.Global.PagePadding,
|
padding: StyleConstants.Spacing.Global.PagePadding,
|
||||||
backgroundColor: colors.backgroundDefault,
|
backgroundColor: colors.backgroundDefault,
|
||||||
paddingBottom: notification.status
|
paddingBottom: notification.status ? 0 : StyleConstants.Spacing.Global.PagePadding
|
||||||
? 0
|
|
||||||
: StyleConstants.Spacing.Global.PagePadding
|
|
||||||
}}
|
}}
|
||||||
onPress={onPress}
|
onPress={onPress}
|
||||||
onLongPress={() => {}}
|
onLongPress={() => {}}
|
||||||
|
@ -106,26 +102,18 @@ const TimelineNotifications = React.memo(
|
||||||
account={actualAccount}
|
account={actualAccount}
|
||||||
highlighted={highlighted}
|
highlighted={highlighted}
|
||||||
/>
|
/>
|
||||||
<TimelineHeaderNotification
|
<TimelineHeaderNotification queryKey={queryKey} notification={notification} />
|
||||||
queryKey={queryKey}
|
|
||||||
notification={notification}
|
|
||||||
/>
|
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
{notification.status ? (
|
{notification.status ? (
|
||||||
<View
|
<View
|
||||||
style={{
|
style={{
|
||||||
paddingTop: highlighted ? StyleConstants.Spacing.S : 0,
|
paddingTop: highlighted ? StyleConstants.Spacing.S : 0,
|
||||||
paddingLeft: highlighted
|
paddingLeft: highlighted ? 0 : StyleConstants.Avatar.M + StyleConstants.Spacing.S
|
||||||
? 0
|
|
||||||
: StyleConstants.Avatar.M + StyleConstants.Spacing.S
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{notification.status.content.length > 0 ? (
|
{notification.status.content.length > 0 ? (
|
||||||
<TimelineContent
|
<TimelineContent status={notification.status} highlighted={highlighted} />
|
||||||
status={notification.status}
|
|
||||||
highlighted={highlighted}
|
|
||||||
/>
|
|
||||||
) : null}
|
) : null}
|
||||||
{notification.status.poll ? (
|
{notification.status.poll ? (
|
||||||
<TimelinePoll
|
<TimelinePoll
|
||||||
|
@ -133,21 +121,14 @@ const TimelineNotifications = React.memo(
|
||||||
statusId={notification.status.id}
|
statusId={notification.status.id}
|
||||||
poll={notification.status.poll}
|
poll={notification.status.poll}
|
||||||
reblog={false}
|
reblog={false}
|
||||||
sameAccount={
|
sameAccount={notification.account.id === instanceAccount?.id}
|
||||||
notification.account.id === instanceAccount?.id
|
|
||||||
}
|
|
||||||
/>
|
/>
|
||||||
) : null}
|
) : null}
|
||||||
{notification.status.media_attachments.length > 0 ? (
|
{notification.status.media_attachments.length > 0 ? (
|
||||||
<TimelineAttachment status={notification.status} />
|
<TimelineAttachment status={notification.status} />
|
||||||
) : null}
|
) : null}
|
||||||
{notification.status.card ? (
|
{notification.status.card ? <TimelineCard card={notification.status.card} /> : null}
|
||||||
<TimelineCard card={notification.status.card} />
|
<TimelineFullConversation queryKey={queryKey} status={notification.status} />
|
||||||
) : null}
|
|
||||||
<TimelineFullConversation
|
|
||||||
queryKey={queryKey}
|
|
||||||
status={notification.status}
|
|
||||||
/>
|
|
||||||
</View>
|
</View>
|
||||||
) : null}
|
) : null}
|
||||||
</View>
|
</View>
|
||||||
|
@ -158,10 +139,7 @@ const TimelineNotifications = React.memo(
|
||||||
status={notification.status}
|
status={notification.status}
|
||||||
highlighted={highlighted}
|
highlighted={highlighted}
|
||||||
accts={uniqBy(
|
accts={uniqBy(
|
||||||
(
|
([notification.status.account] as Mastodon.Account[] & Mastodon.Mention[])
|
||||||
[notification.status.account] as Mastodon.Account[] &
|
|
||||||
Mastodon.Mention[]
|
|
||||||
)
|
|
||||||
.concat(notification.status.mentions)
|
.concat(notification.status.mentions)
|
||||||
.filter(d => d?.id !== instanceAccount?.id),
|
.filter(d => d?.id !== instanceAccount?.id),
|
||||||
d => d?.id
|
d => d?.id
|
||||||
|
|
|
@ -1,24 +1,184 @@
|
||||||
|
import ComponentAccount from '@components/Account'
|
||||||
import analytics from '@components/analytics'
|
import analytics from '@components/analytics'
|
||||||
import GracefullyImage from '@components/GracefullyImage'
|
import GracefullyImage from '@components/GracefullyImage'
|
||||||
import openLink from '@components/openLink'
|
import openLink from '@components/openLink'
|
||||||
import CustomText from '@components/Text'
|
import CustomText from '@components/Text'
|
||||||
|
import { matchAccount, matchStatus } from '@helpers/urlMatcher'
|
||||||
import { useNavigation } from '@react-navigation/native'
|
import { useNavigation } from '@react-navigation/native'
|
||||||
|
import { useAccountQuery } from '@utils/queryHooks/account'
|
||||||
|
import { useSearchQuery } from '@utils/queryHooks/search'
|
||||||
|
import { useStatusQuery } from '@utils/queryHooks/status'
|
||||||
import { StyleConstants } from '@utils/styles/constants'
|
import { StyleConstants } from '@utils/styles/constants'
|
||||||
import { useTheme } from '@utils/styles/ThemeManager'
|
import { useTheme } from '@utils/styles/ThemeManager'
|
||||||
import React from 'react'
|
import React, { useEffect, useState } from 'react'
|
||||||
import { Pressable, StyleSheet, View } from 'react-native'
|
import { Pressable, StyleSheet, View } from 'react-native'
|
||||||
|
import { Circle } from 'react-native-animated-spinkit'
|
||||||
|
import TimelineDefault from '../Default'
|
||||||
|
|
||||||
export interface Props {
|
export interface Props {
|
||||||
card: Pick<
|
card: Pick<Mastodon.Card, 'url' | 'image' | 'blurhash' | 'title' | 'description'>
|
||||||
Mastodon.Card,
|
|
||||||
'url' | 'image' | 'blurhash' | 'title' | 'description'
|
|
||||||
>
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const TimelineCard = React.memo(({ card }: Props) => {
|
const TimelineCard = React.memo(({ card }: Props) => {
|
||||||
const { colors } = useTheme()
|
const { colors } = useTheme()
|
||||||
const navigation = useNavigation()
|
const navigation = useNavigation()
|
||||||
|
|
||||||
|
const [loading, setLoading] = useState(false)
|
||||||
|
const isStatus = matchStatus(card.url)
|
||||||
|
const [foundStatus, setFoundStatus] = useState<Mastodon.Status>()
|
||||||
|
const isAccount = matchAccount(card.url)
|
||||||
|
const [foundAccount, setFoundAccount] = useState<Mastodon.Account>()
|
||||||
|
|
||||||
|
const searchQuery = useSearchQuery({
|
||||||
|
type: (() => {
|
||||||
|
if (isStatus) return 'statuses'
|
||||||
|
if (isAccount) return 'accounts'
|
||||||
|
})(),
|
||||||
|
term: (() => {
|
||||||
|
if (isStatus) {
|
||||||
|
if (isStatus.sameInstance) {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
return card.url
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (isAccount) {
|
||||||
|
if (isAccount.sameInstance) {
|
||||||
|
if (isAccount.style === 'default') {
|
||||||
|
return
|
||||||
|
} else {
|
||||||
|
return isAccount.username
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return card.url
|
||||||
|
}
|
||||||
|
}
|
||||||
|
})(),
|
||||||
|
limit: 1,
|
||||||
|
options: { enabled: false }
|
||||||
|
})
|
||||||
|
|
||||||
|
const statusQuery = useStatusQuery({
|
||||||
|
id: isStatus?.id || '',
|
||||||
|
options: { enabled: false }
|
||||||
|
})
|
||||||
|
useEffect(() => {
|
||||||
|
if (isStatus) {
|
||||||
|
setLoading(true)
|
||||||
|
if (isStatus.sameInstance) {
|
||||||
|
statusQuery
|
||||||
|
.refetch()
|
||||||
|
.then(res => {
|
||||||
|
res.data && setFoundStatus(res.data)
|
||||||
|
setLoading(false)
|
||||||
|
})
|
||||||
|
.catch(() => setLoading(false))
|
||||||
|
} else {
|
||||||
|
searchQuery
|
||||||
|
.refetch()
|
||||||
|
.then(res => {
|
||||||
|
const status = (res.data as any)?.statuses?.[0]
|
||||||
|
status && setFoundStatus(status)
|
||||||
|
setLoading(false)
|
||||||
|
})
|
||||||
|
.catch(() => setLoading(false))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
const accountQuery = useAccountQuery({
|
||||||
|
id: isAccount?.style === 'default' ? isAccount.id : '',
|
||||||
|
options: { enabled: false }
|
||||||
|
})
|
||||||
|
useEffect(() => {
|
||||||
|
if (isAccount) {
|
||||||
|
setLoading(true)
|
||||||
|
if (isAccount.sameInstance && isAccount.style === 'default') {
|
||||||
|
accountQuery
|
||||||
|
.refetch()
|
||||||
|
.then(res => {
|
||||||
|
res.data && setFoundAccount(res.data)
|
||||||
|
setLoading(false)
|
||||||
|
})
|
||||||
|
.catch(() => setLoading(false))
|
||||||
|
} else {
|
||||||
|
searchQuery
|
||||||
|
.refetch()
|
||||||
|
.then(res => {
|
||||||
|
const account = (res.data as any)?.accounts?.[0]
|
||||||
|
account && setFoundAccount(account)
|
||||||
|
setLoading(false)
|
||||||
|
})
|
||||||
|
.catch(() => setLoading(false))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}, [])
|
||||||
|
|
||||||
|
const cardContent = () => {
|
||||||
|
if (loading) {
|
||||||
|
return (
|
||||||
|
<View
|
||||||
|
style={{
|
||||||
|
flex: 1,
|
||||||
|
justifyContent: 'center',
|
||||||
|
alignItems: 'center',
|
||||||
|
paddingVertical: StyleConstants.Spacing.M
|
||||||
|
}}
|
||||||
|
>
|
||||||
|
<Circle size={StyleConstants.Font.Size.L} color={colors.secondary} />
|
||||||
|
</View>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
if (isStatus && foundStatus) {
|
||||||
|
return <TimelineDefault item={foundStatus} disableDetails disableOnPress origin='card' />
|
||||||
|
}
|
||||||
|
if (isAccount && foundAccount) {
|
||||||
|
return <ComponentAccount account={foundAccount} origin='card' />
|
||||||
|
}
|
||||||
|
return (
|
||||||
|
<>
|
||||||
|
{card.image ? (
|
||||||
|
<GracefullyImage
|
||||||
|
uri={{ original: card.image }}
|
||||||
|
blurhash={card.blurhash}
|
||||||
|
style={{ flexBasis: StyleConstants.Font.LineHeight.M * 5 }}
|
||||||
|
imageStyle={{ borderTopLeftRadius: 6, borderBottomLeftRadius: 6 }}
|
||||||
|
/>
|
||||||
|
) : null}
|
||||||
|
<View style={{ flex: 1, padding: StyleConstants.Spacing.S }}>
|
||||||
|
<CustomText
|
||||||
|
fontStyle='S'
|
||||||
|
numberOfLines={2}
|
||||||
|
style={{
|
||||||
|
marginBottom: StyleConstants.Spacing.XS,
|
||||||
|
color: colors.primaryDefault
|
||||||
|
}}
|
||||||
|
fontWeight='Bold'
|
||||||
|
testID='title'
|
||||||
|
>
|
||||||
|
{card.title}
|
||||||
|
</CustomText>
|
||||||
|
{card.description ? (
|
||||||
|
<CustomText
|
||||||
|
fontStyle='S'
|
||||||
|
numberOfLines={1}
|
||||||
|
style={{
|
||||||
|
marginBottom: StyleConstants.Spacing.XS,
|
||||||
|
color: colors.primaryDefault
|
||||||
|
}}
|
||||||
|
testID='description'
|
||||||
|
>
|
||||||
|
{card.description}
|
||||||
|
</CustomText>
|
||||||
|
) : null}
|
||||||
|
<CustomText fontStyle='S' numberOfLines={1} style={{ color: colors.secondary }}>
|
||||||
|
{card.url}
|
||||||
|
</CustomText>
|
||||||
|
</View>
|
||||||
|
</>
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Pressable
|
<Pressable
|
||||||
accessible
|
accessible
|
||||||
|
@ -26,10 +186,10 @@ const TimelineCard = React.memo(({ card }: Props) => {
|
||||||
style={{
|
style={{
|
||||||
flex: 1,
|
flex: 1,
|
||||||
flexDirection: 'row',
|
flexDirection: 'row',
|
||||||
height: StyleConstants.Font.LineHeight.M * 5,
|
minHeight: isAccount && foundAccount ? undefined : StyleConstants.Font.LineHeight.M * 5,
|
||||||
marginTop: StyleConstants.Spacing.M,
|
marginTop: StyleConstants.Spacing.M,
|
||||||
borderWidth: StyleSheet.hairlineWidth,
|
borderWidth: StyleSheet.hairlineWidth,
|
||||||
borderRadius: 6,
|
borderRadius: StyleConstants.Spacing.S,
|
||||||
overflow: 'hidden',
|
overflow: 'hidden',
|
||||||
borderColor: colors.border
|
borderColor: colors.border
|
||||||
}}
|
}}
|
||||||
|
@ -37,51 +197,8 @@ const TimelineCard = React.memo(({ card }: Props) => {
|
||||||
analytics('timeline_shared_card_press')
|
analytics('timeline_shared_card_press')
|
||||||
await openLink(card.url, navigation)
|
await openLink(card.url, navigation)
|
||||||
}}
|
}}
|
||||||
testID='base'
|
children={cardContent}
|
||||||
>
|
/>
|
||||||
{card.image ? (
|
|
||||||
<GracefullyImage
|
|
||||||
uri={{ original: card.image }}
|
|
||||||
blurhash={card.blurhash}
|
|
||||||
style={{ flexBasis: StyleConstants.Font.LineHeight.M * 5 }}
|
|
||||||
imageStyle={{ borderTopLeftRadius: 6, borderBottomLeftRadius: 6 }}
|
|
||||||
/>
|
|
||||||
) : null}
|
|
||||||
<View style={{ flex: 1, padding: StyleConstants.Spacing.S }}>
|
|
||||||
<CustomText
|
|
||||||
fontStyle='S'
|
|
||||||
numberOfLines={2}
|
|
||||||
style={{
|
|
||||||
marginBottom: StyleConstants.Spacing.XS,
|
|
||||||
color: colors.primaryDefault
|
|
||||||
}}
|
|
||||||
fontWeight='Bold'
|
|
||||||
testID='title'
|
|
||||||
>
|
|
||||||
{card.title}
|
|
||||||
</CustomText>
|
|
||||||
{card.description ? (
|
|
||||||
<CustomText
|
|
||||||
fontStyle='S'
|
|
||||||
numberOfLines={1}
|
|
||||||
style={{
|
|
||||||
marginBottom: StyleConstants.Spacing.XS,
|
|
||||||
color: colors.primaryDefault
|
|
||||||
}}
|
|
||||||
testID='description'
|
|
||||||
>
|
|
||||||
{card.description}
|
|
||||||
</CustomText>
|
|
||||||
) : null}
|
|
||||||
<CustomText
|
|
||||||
fontStyle='S'
|
|
||||||
numberOfLines={1}
|
|
||||||
style={{ color: colors.secondary }}
|
|
||||||
>
|
|
||||||
{card.url}
|
|
||||||
</CustomText>
|
|
||||||
</View>
|
|
||||||
</Pressable>
|
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ import { useTranslation } from 'react-i18next'
|
||||||
import { View } from 'react-native'
|
import { View } from 'react-native'
|
||||||
|
|
||||||
const TimelineFiltered = React.memo(
|
const TimelineFiltered = React.memo(
|
||||||
() => {
|
({ phrase }: { phrase: string }) => {
|
||||||
const { colors } = useTheme()
|
const { colors } = useTheme()
|
||||||
const { t } = useTranslation('componentTimeline')
|
const { t } = useTranslation('componentTimeline')
|
||||||
|
|
||||||
|
@ -25,7 +25,7 @@ const TimelineFiltered = React.memo(
|
||||||
paddingLeft: StyleConstants.Avatar.M + StyleConstants.Spacing.S
|
paddingLeft: StyleConstants.Avatar.M + StyleConstants.Spacing.S
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{t('shared.filtered')}
|
{t('shared.filtered', { phrase })}
|
||||||
</CustomText>
|
</CustomText>
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
|
@ -44,34 +44,29 @@ export const shouldFilter = ({
|
||||||
}>
|
}>
|
||||||
status: Mastodon.Status
|
status: Mastodon.Status
|
||||||
queryKey: QueryKeyTimeline
|
queryKey: QueryKeyTimeline
|
||||||
}) => {
|
}): string | null => {
|
||||||
const instance = getInstance(store.getState())
|
const instance = getInstance(store.getState())
|
||||||
const ownAccount =
|
const ownAccount = getInstanceAccount(store.getState())?.id === status.account?.id
|
||||||
getInstanceAccount(store.getState())?.id === status.account?.id
|
|
||||||
|
|
||||||
let shouldFilter = false
|
let shouldFilter: string | null = null
|
||||||
if (!ownAccount) {
|
if (!ownAccount) {
|
||||||
const parser = new htmlparser2.Parser({
|
const parser = new htmlparser2.Parser({
|
||||||
ontext: (text: string) => {
|
ontext: (text: string) => {
|
||||||
if (!copiableContent.current.complete) {
|
if (!copiableContent.current.complete) {
|
||||||
copiableContent.current.content =
|
copiableContent.current.content = copiableContent.current.content + text
|
||||||
copiableContent.current.content + text
|
|
||||||
}
|
}
|
||||||
|
|
||||||
const checkFilter = (filter: Mastodon.Filter) => {
|
const checkFilter = (filter: Mastodon.Filter) => {
|
||||||
const escapedPhrase = filter.phrase.replace(
|
const escapedPhrase = filter.phrase.replace(/[.*+?^${}()|[\]\\]/g, '\\$&') // $& means the whole matched string
|
||||||
/[.*+?^${}()|[\]\\]/g,
|
|
||||||
'\\$&'
|
|
||||||
) // $& means the whole matched string
|
|
||||||
switch (filter.whole_word) {
|
switch (filter.whole_word) {
|
||||||
case true:
|
case true:
|
||||||
if (new RegExp('\\b' + escapedPhrase + '\\b').test(text)) {
|
if (new RegExp('\\b' + escapedPhrase + '\\b').test(text)) {
|
||||||
shouldFilter = true
|
shouldFilter = filter.phrase
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
case false:
|
case false:
|
||||||
if (new RegExp(escapedPhrase).test(text)) {
|
if (new RegExp(escapedPhrase).test(text)) {
|
||||||
shouldFilter = true
|
shouldFilter = filter.phrase
|
||||||
}
|
}
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,15 +81,10 @@ const TimelineHeaderDefault = ({ queryKey, status, highlighted }: Props) => {
|
||||||
{queryKey ? (
|
{queryKey ? (
|
||||||
<Pressable
|
<Pressable
|
||||||
accessibilityHint={t('accessibilityHint')}
|
accessibilityHint={t('accessibilityHint')}
|
||||||
style={{
|
style={{ flex: 1, flexBasis: StyleConstants.Font.Size.L }}
|
||||||
flex: 1,
|
|
||||||
flexDirection: 'row',
|
|
||||||
justifyContent: 'center',
|
|
||||||
marginBottom: StyleConstants.Spacing.L
|
|
||||||
}}
|
|
||||||
hitSlop={StyleConstants.Font.Size.M}
|
|
||||||
>
|
>
|
||||||
<ContextMenu
|
<ContextMenu
|
||||||
|
style={{ flex: 1, alignItems: 'center' }}
|
||||||
dropdownMenuMode
|
dropdownMenuMode
|
||||||
actions={actions}
|
actions={actions}
|
||||||
onPress={({ nativeEvent: { index } }) => {
|
onPress={({ nativeEvent: { index } }) => {
|
||||||
|
@ -104,7 +99,6 @@ const TimelineHeaderDefault = ({ queryKey, status, highlighted }: Props) => {
|
||||||
size={StyleConstants.Font.Size.L}
|
size={StyleConstants.Font.Size.L}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
style={{ width: '100%', height: '100%', paddingHorizontal: StyleConstants.Font.Size.M }}
|
|
||||||
/>
|
/>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
) : null}
|
) : null}
|
||||||
|
|
|
@ -51,15 +51,10 @@ const TimelineHeaderDefault = ({ queryKey, status, highlighted }: Props) => {
|
||||||
{queryKey ? (
|
{queryKey ? (
|
||||||
<Pressable
|
<Pressable
|
||||||
accessibilityHint={t('accessibilityHint')}
|
accessibilityHint={t('accessibilityHint')}
|
||||||
style={{
|
style={{ flex: 1, flexBasis: StyleConstants.Font.Size.L }}
|
||||||
flex: 1,
|
|
||||||
flexDirection: 'row',
|
|
||||||
justifyContent: 'center',
|
|
||||||
marginBottom: StyleConstants.Spacing.L
|
|
||||||
}}
|
|
||||||
hitSlop={StyleConstants.Font.Size.M}
|
|
||||||
>
|
>
|
||||||
<ContextMenu
|
<ContextMenu
|
||||||
|
style={{ flex: 1, alignItems: 'center' }}
|
||||||
dropdownMenuMode
|
dropdownMenuMode
|
||||||
actions={contextMenuContext}
|
actions={contextMenuContext}
|
||||||
onPress={() => {}}
|
onPress={() => {}}
|
||||||
|
@ -70,7 +65,6 @@ const TimelineHeaderDefault = ({ queryKey, status, highlighted }: Props) => {
|
||||||
size={StyleConstants.Font.Size.L}
|
size={StyleConstants.Font.Size.L}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
style={{ paddingHorizontal: StyleConstants.Font.Size.M }}
|
|
||||||
/>
|
/>
|
||||||
</Pressable>
|
</Pressable>
|
||||||
) : null}
|
) : null}
|
||||||
|
|
|
@ -3,10 +3,7 @@ import contextMenuInstance from '@components/ContextMenu/instance'
|
||||||
import contextMenuShare from '@components/ContextMenu/share'
|
import contextMenuShare from '@components/ContextMenu/share'
|
||||||
import contextMenuStatus from '@components/ContextMenu/status'
|
import contextMenuStatus from '@components/ContextMenu/status'
|
||||||
import Icon from '@components/Icon'
|
import Icon from '@components/Icon'
|
||||||
import {
|
import { RelationshipIncoming, RelationshipOutgoing } from '@components/Relationship'
|
||||||
RelationshipIncoming,
|
|
||||||
RelationshipOutgoing
|
|
||||||
} from '@components/Relationship'
|
|
||||||
import { QueryKeyTimeline } from '@utils/queryHooks/timeline'
|
import { QueryKeyTimeline } from '@utils/queryHooks/timeline'
|
||||||
import { StyleConstants } from '@utils/styles/constants'
|
import { StyleConstants } from '@utils/styles/constants'
|
||||||
import { useTheme } from '@utils/styles/ThemeManager'
|
import { useTheme } from '@utils/styles/ThemeManager'
|
||||||
|
@ -32,27 +29,33 @@ const TimelineHeaderNotification = ({ queryKey, notification }: Props) => {
|
||||||
const shareOnPress =
|
const shareOnPress =
|
||||||
status && status?.visibility !== 'direct'
|
status && status?.visibility !== 'direct'
|
||||||
? contextMenuShare({
|
? contextMenuShare({
|
||||||
actions: contextMenuActions,
|
actions: contextMenuActions,
|
||||||
type: 'status',
|
type: 'status',
|
||||||
url: status.url || status.uri
|
url: status.url || status.uri
|
||||||
})
|
})
|
||||||
: null
|
: null
|
||||||
const statusOnPress = status && contextMenuStatus({
|
const statusOnPress =
|
||||||
actions: contextMenuActions,
|
status &&
|
||||||
status: status,
|
contextMenuStatus({
|
||||||
queryKey
|
actions: contextMenuActions,
|
||||||
})
|
status: status,
|
||||||
const accountOnPress = status && contextMenuAccount({
|
queryKey
|
||||||
actions: contextMenuActions,
|
})
|
||||||
type: 'status',
|
const accountOnPress =
|
||||||
queryKey,
|
status &&
|
||||||
id: status.account.id
|
contextMenuAccount({
|
||||||
})
|
actions: contextMenuActions,
|
||||||
const instanceOnPress = status && contextMenuInstance({
|
type: 'status',
|
||||||
actions: contextMenuActions,
|
queryKey,
|
||||||
status: status,
|
id: status.account.id
|
||||||
queryKey
|
})
|
||||||
})
|
const instanceOnPress =
|
||||||
|
status &&
|
||||||
|
contextMenuInstance({
|
||||||
|
actions: contextMenuActions,
|
||||||
|
status: status,
|
||||||
|
queryKey
|
||||||
|
})
|
||||||
|
|
||||||
const actions = useMemo(() => {
|
const actions = useMemo(() => {
|
||||||
switch (notification.type) {
|
switch (notification.type) {
|
||||||
|
@ -64,14 +67,10 @@ const TimelineHeaderNotification = ({ queryKey, notification }: Props) => {
|
||||||
if (notification.status) {
|
if (notification.status) {
|
||||||
return (
|
return (
|
||||||
<Pressable
|
<Pressable
|
||||||
style={{
|
style={{ flex: 1, flexBasis: StyleConstants.Font.Size.L }}
|
||||||
flex: 1,
|
|
||||||
flexDirection: 'row',
|
|
||||||
justifyContent: 'center',
|
|
||||||
paddingBottom: StyleConstants.Spacing.S
|
|
||||||
}}
|
|
||||||
children={
|
children={
|
||||||
<ContextMenu
|
<ContextMenu
|
||||||
|
style={{ flex: 1, alignItems: 'center' }}
|
||||||
dropdownMenuMode
|
dropdownMenuMode
|
||||||
actions={contextMenuActions}
|
actions={contextMenuActions}
|
||||||
onPress={({ nativeEvent: { index } }) => {
|
onPress={({ nativeEvent: { index } }) => {
|
||||||
|
@ -91,7 +90,6 @@ const TimelineHeaderNotification = ({ queryKey, notification }: Props) => {
|
||||||
size={StyleConstants.Font.Size.L}
|
size={StyleConstants.Font.Size.L}
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
style={{ width: '100%', height: '100%' }}
|
|
||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
/>
|
/>
|
||||||
|
@ -104,21 +102,14 @@ const TimelineHeaderNotification = ({ queryKey, notification }: Props) => {
|
||||||
<View style={{ flex: 1, flexDirection: 'row' }}>
|
<View style={{ flex: 1, flexDirection: 'row' }}>
|
||||||
<View
|
<View
|
||||||
style={{
|
style={{
|
||||||
flex:
|
flex: notification.type === 'follow' || notification.type === 'follow_request' ? 1 : 4
|
||||||
notification.type === 'follow' ||
|
|
||||||
notification.type === 'follow_request'
|
|
||||||
? 1
|
|
||||||
: 4
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<HeaderSharedAccount
|
<HeaderSharedAccount
|
||||||
account={
|
account={notification.status ? notification.status.account : notification.account}
|
||||||
notification.status
|
{...((notification.type === 'follow' || notification.type === 'follow_request') && {
|
||||||
? notification.status.account
|
withoutName: true
|
||||||
: notification.account
|
})}
|
||||||
}
|
|
||||||
{...((notification.type === 'follow' ||
|
|
||||||
notification.type === 'follow_request') && { withoutName: true })}
|
|
||||||
/>
|
/>
|
||||||
<View
|
<View
|
||||||
style={{
|
style={{
|
||||||
|
@ -129,28 +120,21 @@ const TimelineHeaderNotification = ({ queryKey, notification }: Props) => {
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<HeaderSharedCreated
|
<HeaderSharedCreated
|
||||||
created_at={
|
created_at={notification.status?.created_at || notification.created_at}
|
||||||
notification.status?.created_at || notification.created_at
|
|
||||||
}
|
|
||||||
edited_at={notification.status?.edited_at}
|
edited_at={notification.status?.edited_at}
|
||||||
/>
|
/>
|
||||||
{notification.status?.visibility ? (
|
{notification.status?.visibility ? (
|
||||||
<HeaderSharedVisibility
|
<HeaderSharedVisibility visibility={notification.status.visibility} />
|
||||||
visibility={notification.status.visibility}
|
|
||||||
/>
|
|
||||||
) : null}
|
) : null}
|
||||||
<HeaderSharedMuted muted={notification.status?.muted} />
|
<HeaderSharedMuted muted={notification.status?.muted} />
|
||||||
<HeaderSharedApplication
|
<HeaderSharedApplication application={notification.status?.application} />
|
||||||
application={notification.status?.application}
|
|
||||||
/>
|
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
style={[
|
style={[
|
||||||
{ marginLeft: StyleConstants.Spacing.M },
|
{ marginLeft: StyleConstants.Spacing.M },
|
||||||
notification.type === 'follow' ||
|
notification.type === 'follow' || notification.type === 'follow_request'
|
||||||
notification.type === 'follow_request'
|
|
||||||
? { flexShrink: 1 }
|
? { flexShrink: 1 }
|
||||||
: { flex: 1 }
|
: { flex: 1 }
|
||||||
]}
|
]}
|
||||||
|
|
|
@ -1,8 +1,5 @@
|
||||||
import Icon from '@components/Icon'
|
import Icon from '@components/Icon'
|
||||||
import {
|
import { RelationshipIncoming, RelationshipOutgoing } from '@components/Relationship'
|
||||||
RelationshipIncoming,
|
|
||||||
RelationshipOutgoing
|
|
||||||
} from '@components/Relationship'
|
|
||||||
import { QueryKeyTimeline } from '@utils/queryHooks/timeline'
|
import { QueryKeyTimeline } from '@utils/queryHooks/timeline'
|
||||||
import { StyleConstants } from '@utils/styles/constants'
|
import { StyleConstants } from '@utils/styles/constants'
|
||||||
import { useTheme } from '@utils/styles/ThemeManager'
|
import { useTheme } from '@utils/styles/ThemeManager'
|
||||||
|
@ -36,14 +33,10 @@ const TimelineHeaderNotification = ({ notification }: Props) => {
|
||||||
if (notification.status) {
|
if (notification.status) {
|
||||||
return (
|
return (
|
||||||
<Pressable
|
<Pressable
|
||||||
style={{
|
style={{ flex: 1, flexBasis: StyleConstants.Font.Size.L }}
|
||||||
flex: 1,
|
|
||||||
flexDirection: 'row',
|
|
||||||
justifyContent: 'center',
|
|
||||||
paddingBottom: StyleConstants.Spacing.S
|
|
||||||
}}
|
|
||||||
children={
|
children={
|
||||||
<ContextMenu
|
<ContextMenu
|
||||||
|
style={{ flex: 1, alignItems: 'center' }}
|
||||||
dropdownMenuMode
|
dropdownMenuMode
|
||||||
actions={contextMenuContext}
|
actions={contextMenuContext}
|
||||||
onPress={() => {}}
|
onPress={() => {}}
|
||||||
|
@ -66,21 +59,14 @@ const TimelineHeaderNotification = ({ notification }: Props) => {
|
||||||
<View style={{ flex: 1, flexDirection: 'row' }}>
|
<View style={{ flex: 1, flexDirection: 'row' }}>
|
||||||
<View
|
<View
|
||||||
style={{
|
style={{
|
||||||
flex:
|
flex: notification.type === 'follow' || notification.type === 'follow_request' ? 1 : 4
|
||||||
notification.type === 'follow' ||
|
|
||||||
notification.type === 'follow_request'
|
|
||||||
? 1
|
|
||||||
: 4
|
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<HeaderSharedAccount
|
<HeaderSharedAccount
|
||||||
account={
|
account={notification.status ? notification.status.account : notification.account}
|
||||||
notification.status
|
{...((notification.type === 'follow' || notification.type === 'follow_request') && {
|
||||||
? notification.status.account
|
withoutName: true
|
||||||
: notification.account
|
})}
|
||||||
}
|
|
||||||
{...((notification.type === 'follow' ||
|
|
||||||
notification.type === 'follow_request') && { withoutName: true })}
|
|
||||||
/>
|
/>
|
||||||
<View
|
<View
|
||||||
style={{
|
style={{
|
||||||
|
@ -91,28 +77,21 @@ const TimelineHeaderNotification = ({ notification }: Props) => {
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
<HeaderSharedCreated
|
<HeaderSharedCreated
|
||||||
created_at={
|
created_at={notification.status?.created_at || notification.created_at}
|
||||||
notification.status?.created_at || notification.created_at
|
|
||||||
}
|
|
||||||
edited_at={notification.status?.edited_at}
|
edited_at={notification.status?.edited_at}
|
||||||
/>
|
/>
|
||||||
{notification.status?.visibility ? (
|
{notification.status?.visibility ? (
|
||||||
<HeaderSharedVisibility
|
<HeaderSharedVisibility visibility={notification.status.visibility} />
|
||||||
visibility={notification.status.visibility}
|
|
||||||
/>
|
|
||||||
) : null}
|
) : null}
|
||||||
<HeaderSharedMuted muted={notification.status?.muted} />
|
<HeaderSharedMuted muted={notification.status?.muted} />
|
||||||
<HeaderSharedApplication
|
<HeaderSharedApplication application={notification.status?.application} />
|
||||||
application={notification.status?.application}
|
|
||||||
/>
|
|
||||||
</View>
|
</View>
|
||||||
</View>
|
</View>
|
||||||
|
|
||||||
<View
|
<View
|
||||||
style={[
|
style={[
|
||||||
{ marginLeft: StyleConstants.Spacing.M },
|
{ marginLeft: StyleConstants.Spacing.M },
|
||||||
notification.type === 'follow' ||
|
notification.type === 'follow' || notification.type === 'follow_request'
|
||||||
notification.type === 'follow_request'
|
|
||||||
? { flexShrink: 1 }
|
? { flexShrink: 1 }
|
||||||
: { flex: 1 }
|
: { flex: 1 }
|
||||||
]}
|
]}
|
||||||
|
|
|
@ -1,24 +1,12 @@
|
||||||
import apiInstance from '@api/instance'
|
import apiInstance from '@api/instance'
|
||||||
import navigationRef from '@helpers/navigationRef'
|
import navigationRef from '@helpers/navigationRef'
|
||||||
|
import { matchAccount, matchStatus } from '@helpers/urlMatcher'
|
||||||
import { store } from '@root/store'
|
import { store } from '@root/store'
|
||||||
import { SearchResult } from '@utils/queryHooks/search'
|
import { SearchResult } from '@utils/queryHooks/search'
|
||||||
import { getInstanceUrl } from '@utils/slices/instancesSlice'
|
|
||||||
import { getSettingsBrowser } from '@utils/slices/settingsSlice'
|
import { getSettingsBrowser } from '@utils/slices/settingsSlice'
|
||||||
import * as Linking from 'expo-linking'
|
import * as Linking from 'expo-linking'
|
||||||
import * as WebBrowser from 'expo-web-browser'
|
import * as WebBrowser from 'expo-web-browser'
|
||||||
|
|
||||||
// https://social.xmflsct.com/web/statuses/105590085754428765 <- default
|
|
||||||
// https://social.xmflsct.com/@tooot/105590085754428765 <- pretty
|
|
||||||
const matcherStatus = new RegExp(
|
|
||||||
/http[s]?:\/\/(.*)\/(web\/statuses|@.*)\/([0-9]*)/
|
|
||||||
)
|
|
||||||
|
|
||||||
// https://social.xmflsct.com/web/accounts/14195 <- default
|
|
||||||
// https://social.xmflsct.com/@tooot <- pretty
|
|
||||||
const matcherAccount = new RegExp(
|
|
||||||
/http[s]?:\/\/(.*)\/(web\/accounts\/([0-9]*)|@.*)/
|
|
||||||
)
|
|
||||||
|
|
||||||
export let loadingLink = false
|
export let loadingLink = false
|
||||||
|
|
||||||
const openLink = async (url: string, navigation?: any) => {
|
const openLink = async (url: string, navigation?: any) => {
|
||||||
|
@ -26,10 +14,7 @@ const openLink = async (url: string, navigation?: any) => {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
const handleNavigation = (
|
const handleNavigation = (page: 'Tab-Shared-Toot' | 'Tab-Shared-Account', options: {}) => {
|
||||||
page: 'Tab-Shared-Toot' | 'Tab-Shared-Account',
|
|
||||||
options: {}
|
|
||||||
) => {
|
|
||||||
if (navigation) {
|
if (navigation) {
|
||||||
// @ts-ignore
|
// @ts-ignore
|
||||||
navigation.push(page, options)
|
navigation.push(page, options)
|
||||||
|
@ -40,14 +25,10 @@ const openLink = async (url: string, navigation?: any) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// If a tooot can be found
|
// If a tooot can be found
|
||||||
const matchedStatus = url.match(matcherStatus)
|
const isStatus = matchStatus(url)
|
||||||
if (matchedStatus) {
|
if (isStatus) {
|
||||||
// If the link in current instance
|
if (isStatus.sameInstance) {
|
||||||
const instanceUrl = getInstanceUrl(store.getState())
|
handleNavigation('Tab-Shared-Toot', { toot: { id: isStatus.id } })
|
||||||
if (matchedStatus[1] === instanceUrl) {
|
|
||||||
handleNavigation('Tab-Shared-Toot', {
|
|
||||||
toot: { id: matchedStatus[3] }
|
|
||||||
})
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -71,15 +52,11 @@ const openLink = async (url: string, navigation?: any) => {
|
||||||
}
|
}
|
||||||
|
|
||||||
// If an account can be found
|
// If an account can be found
|
||||||
const matchedAccount = url.match(matcherAccount)
|
const isAccount = matchAccount(url)
|
||||||
if (matchedAccount) {
|
if (isAccount) {
|
||||||
// If the link in current instance
|
if (isAccount.sameInstance) {
|
||||||
const instanceUrl = getInstanceUrl(store.getState())
|
if (isAccount.style === 'default' && isAccount.id) {
|
||||||
if (matchedAccount[1] === instanceUrl) {
|
handleNavigation('Tab-Shared-Account', { account: isAccount })
|
||||||
if (matchedAccount[3] && matchedAccount[3].match(/[0-9]*/)) {
|
|
||||||
handleNavigation('Tab-Shared-Account', {
|
|
||||||
account: { id: matchedAccount[3] }
|
|
||||||
})
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -91,7 +68,12 @@ const openLink = async (url: string, navigation?: any) => {
|
||||||
version: 'v2',
|
version: 'v2',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
url: 'search',
|
url: 'search',
|
||||||
params: { type: 'accounts', q: url, limit: 1, resolve: true }
|
params: {
|
||||||
|
type: 'accounts',
|
||||||
|
q: isAccount.sameInstance && isAccount.style === 'pretty' ? isAccount.username : url,
|
||||||
|
limit: 1,
|
||||||
|
resolve: true
|
||||||
|
}
|
||||||
})
|
})
|
||||||
} catch {}
|
} catch {}
|
||||||
if (response && response.body && response.body.accounts.length) {
|
if (response && response.body && response.body.accounts.length) {
|
||||||
|
|
|
@ -1,4 +1,9 @@
|
||||||
[
|
[
|
||||||
|
{
|
||||||
|
"feature": "account_return_suspended",
|
||||||
|
"version": 3.3,
|
||||||
|
"reference": "https://github.com/mastodon/mastodon/releases/tag/v3.3.0"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"feature": "edit_post",
|
"feature": "edit_post",
|
||||||
"version": 3.5,
|
"version": 3.5,
|
||||||
|
@ -9,11 +14,6 @@
|
||||||
"version": 3.5,
|
"version": 3.5,
|
||||||
"reference": "https://github.com/mastodon/mastodon/releases/tag/v3.5.0"
|
"reference": "https://github.com/mastodon/mastodon/releases/tag/v3.5.0"
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"feature": "notification_type_status",
|
|
||||||
"version": 3.3,
|
|
||||||
"reference": "https://docs.joinmastodon.org/entities/notification/#required-attributes"
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"feature": "notification_type_update",
|
"feature": "notification_type_update",
|
||||||
"version": 3.5,
|
"version": 3.5,
|
||||||
|
|
|
@ -0,0 +1,50 @@
|
||||||
|
import { store } from '@root/store'
|
||||||
|
import { getInstanceUrl } from '@utils/slices/instancesSlice'
|
||||||
|
|
||||||
|
const matchStatus = (
|
||||||
|
url: string
|
||||||
|
): { id: string; style: 'default' | 'pretty'; sameInstance: boolean } | null => {
|
||||||
|
// https://social.xmflsct.com/web/statuses/105590085754428765 <- default
|
||||||
|
// https://social.xmflsct.com/@tooot/105590085754428765 <- pretty
|
||||||
|
const matcherStatus = new RegExp(/(https?:\/\/)?([^\/]+)\/(web\/statuses|@.+)\/([0-9]+)/)
|
||||||
|
|
||||||
|
const matched = url.match(matcherStatus)
|
||||||
|
if (matched) {
|
||||||
|
const hostname = matched[2]
|
||||||
|
const style = matched[3] === 'web/statuses' ? 'default' : 'pretty'
|
||||||
|
const id = matched[4]
|
||||||
|
|
||||||
|
const instanceUrl = getInstanceUrl(store.getState())
|
||||||
|
return { id, style, sameInstance: hostname === instanceUrl }
|
||||||
|
}
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
const matchAccount = (
|
||||||
|
url: string
|
||||||
|
):
|
||||||
|
| { id: string; style: 'default'; sameInstance: boolean }
|
||||||
|
| { username: string; style: 'pretty'; sameInstance: boolean }
|
||||||
|
| null => {
|
||||||
|
// https://social.xmflsct.com/web/accounts/14195 <- default
|
||||||
|
// https://social.xmflsct.com/web/@tooot <- pretty ! cannot be searched on the same instance
|
||||||
|
// https://social.xmflsct.com/@tooot <- pretty
|
||||||
|
const matcherAccount = new RegExp(/(https?:\/\/)?([^\/]+)(\/web|\/web\/accounts)?\/([0-9]+|@.+)/)
|
||||||
|
|
||||||
|
const matched = url.match(matcherAccount)
|
||||||
|
if (matched) {
|
||||||
|
const hostname = matched[2]
|
||||||
|
const style = matched[4].startsWith('@') ? 'pretty' : 'default'
|
||||||
|
const account = matched[4]
|
||||||
|
|
||||||
|
const instanceUrl = getInstanceUrl(store.getState())
|
||||||
|
return style === 'default'
|
||||||
|
? { id: account, style, sameInstance: hostname === instanceUrl }
|
||||||
|
: { username: account, style, sameInstance: hostname === instanceUrl }
|
||||||
|
}
|
||||||
|
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
export { matchStatus, matchAccount }
|
|
@ -8,22 +8,22 @@
|
||||||
},
|
},
|
||||||
"block": {
|
"block": {
|
||||||
"action_false": "Nutzer blockieren",
|
"action_false": "Nutzer blockieren",
|
||||||
"action_true": ""
|
"action_true": "User entblocken"
|
||||||
},
|
},
|
||||||
"reports": {
|
"reports": {
|
||||||
"action": "Melden und blockieren"
|
"action": "Melden und blockieren"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"copy": {
|
"copy": {
|
||||||
"action": "",
|
"action": "Tröt kopieren",
|
||||||
"succeed": "Kopiert"
|
"succeed": "Kopiert"
|
||||||
},
|
},
|
||||||
"instance": {
|
"instance": {
|
||||||
"title": "",
|
"title": "Instanz-Aktionen",
|
||||||
"block": {
|
"block": {
|
||||||
"action": "Instanz {{instance}} blockieren",
|
"action": "Instanz {{instance}} blockieren",
|
||||||
"alert": {
|
"alert": {
|
||||||
"title": "",
|
"title": "{{instance}} wirklich blockieren?",
|
||||||
"message": "Üblicherweise kannst du einen User stummschalten oder blockieren.\nBlockierst du hingegegen eine Instanz, wird deren gesamter Inhalt samt Usern, die dir von dieser Instanz folgen, entfernt!",
|
"message": "Üblicherweise kannst du einen User stummschalten oder blockieren.\nBlockierst du hingegegen eine Instanz, wird deren gesamter Inhalt samt Usern, die dir von dieser Instanz folgen, entfernt!",
|
||||||
"buttons": {
|
"buttons": {
|
||||||
"confirm": "Bestätigen"
|
"confirm": "Bestätigen"
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"status": {
|
"status": {
|
||||||
"title": "",
|
"title": "Tröt-Befehle",
|
||||||
"edit": {
|
"edit": {
|
||||||
"action": "Tröt bearbeiten"
|
"action": "Tröt bearbeiten"
|
||||||
},
|
},
|
||||||
|
@ -48,17 +48,17 @@
|
||||||
"action": "Tröt löschen",
|
"action": "Tröt löschen",
|
||||||
"alert": {
|
"alert": {
|
||||||
"title": "Löschen bestätigen?",
|
"title": "Löschen bestätigen?",
|
||||||
"message": "",
|
"message": "Alle Boosts, Sterne und Antworten werden entfernt.",
|
||||||
"buttons": {
|
"buttons": {
|
||||||
"confirm": "Bestätigen"
|
"confirm": "Bestätigen"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"deleteEdit": {
|
"deleteEdit": {
|
||||||
"action": "",
|
"action": "Tröt und Boost entfernen",
|
||||||
"alert": {
|
"alert": {
|
||||||
"title": "",
|
"title": "Löschen und Boost bestätigen?",
|
||||||
"message": "",
|
"message": "Alle Boosts und Favoriten inklusive der Antworten werden gelöscht.",
|
||||||
"buttons": {
|
"buttons": {
|
||||||
"confirm": "Bestätigen"
|
"confirm": "Bestätigen"
|
||||||
}
|
}
|
||||||
|
@ -66,11 +66,11 @@
|
||||||
},
|
},
|
||||||
"mute": {
|
"mute": {
|
||||||
"action_false": "Diesen Tröt sowie die Antworten stummschalten",
|
"action_false": "Diesen Tröt sowie die Antworten stummschalten",
|
||||||
"action_true": ""
|
"action_true": "Tröt und Antworten nicht mehr stummschalten"
|
||||||
},
|
},
|
||||||
"pin": {
|
"pin": {
|
||||||
"action_false": "",
|
"action_false": "Tröt anheften",
|
||||||
"action_true": ""
|
"action_true": "Tröt nicht mehr anheften"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1 +1,3 @@
|
||||||
{}
|
{
|
||||||
|
"frequentUsed": "Häufig genutzt"
|
||||||
|
}
|
|
@ -14,7 +14,7 @@
|
||||||
"base": "Der Login erfolgt über den Browser, so dass Ihre Kontoinformationen für die Toot-App nicht sichtbar sind."
|
"base": "Der Login erfolgt über den Browser, so dass Ihre Kontoinformationen für die Toot-App nicht sichtbar sind."
|
||||||
},
|
},
|
||||||
"terms": {
|
"terms": {
|
||||||
"base": ""
|
"base": "Mit dem Login stimmst du der <0>Datenschutzrichtlinie</0> und den <1>Nutzungsbedingungen</1> zu."
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"update": {
|
"update": {
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
"title": "Datenquelle auswählen",
|
"title": "Medienquelle wählen",
|
||||||
"message": "",
|
"message": "EXIF-Metadaten werden nicht hochgeladen",
|
||||||
"options": {
|
"options": {
|
||||||
"image": "",
|
"image": "Fotos hochladen",
|
||||||
"image_max": "",
|
"image_max": "Fotos hochladen (max {{max}})",
|
||||||
"video": "",
|
"video": "Video hochladen",
|
||||||
"video_max": ""
|
"video_max": "Video hochladen (max {{max}})"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,8 +1,8 @@
|
||||||
{
|
{
|
||||||
"HTML": {
|
"HTML": {
|
||||||
"accessibilityHint": "",
|
"accessibilityHint": "Tippen, um Inhalt aus- oder einzuklappen",
|
||||||
"expanded": "{{hint}}{{moreLines}}",
|
"expanded": "{{hint}}{{moreLines}}",
|
||||||
"moreLines": "",
|
"moreLines": " ({{count}} weitere Zeilen)",
|
||||||
"defaultHint": ""
|
"defaultHint": "Langer Tröt"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -30,7 +30,7 @@
|
||||||
"default": "{{name}} hat geboostet",
|
"default": "{{name}} hat geboostet",
|
||||||
"notification": "{{name}} hat deinen Tröt geboostet"
|
"notification": "{{name}} hat deinen Tröt geboostet"
|
||||||
},
|
},
|
||||||
"update": ""
|
"update": "Boost wurde bearbeitet"
|
||||||
},
|
},
|
||||||
"actions": {
|
"actions": {
|
||||||
"reply": {
|
"reply": {
|
||||||
|
@ -40,8 +40,8 @@
|
||||||
"accessibilityLabel": "Tröt boosten",
|
"accessibilityLabel": "Tröt boosten",
|
||||||
"function": "Boost",
|
"function": "Boost",
|
||||||
"options": {
|
"options": {
|
||||||
"title": "",
|
"title": "Boost-Sichtbarkeit ändern",
|
||||||
"public": "",
|
"public": "Öffentlicher Boost",
|
||||||
"unlisted": ""
|
"unlisted": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -68,7 +68,7 @@
|
||||||
"history": {
|
"history": {
|
||||||
"accessibilityLabel": "Dieser Tröt wurde {{count}} mal bearbeitet",
|
"accessibilityLabel": "Dieser Tröt wurde {{count}} mal bearbeitet",
|
||||||
"accessibilityHint": "Für den vollständigen Verlauf auswählen",
|
"accessibilityHint": "Für den vollständigen Verlauf auswählen",
|
||||||
"text_one": "{{count}} bearbeitet",
|
"text_one": "{{count}} Bearbeitung",
|
||||||
"text_other": "{{count}} mal bearbeitet"
|
"text_other": "{{count}} mal bearbeitet"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
"content": {
|
"content": {
|
||||||
"expandHint": "Ausgeblendeter Inhalt"
|
"expandHint": "Ausgeblendeter Inhalt"
|
||||||
},
|
},
|
||||||
"filtered": "Ausgeblendet",
|
"filtered": "",
|
||||||
"fullConversation": "Unterhaltung anzeigen",
|
"fullConversation": "Unterhaltung anzeigen",
|
||||||
"translate": {
|
"translate": {
|
||||||
"default": "Übersetzen",
|
"default": "Übersetzen",
|
||||||
|
|
|
@ -12,7 +12,7 @@
|
||||||
"description": "Bitte Benachrichtigungsdienst in den Einstellungen erneut aktivieren"
|
"description": "Bitte Benachrichtigungsdienst in den Einstellungen erneut aktivieren"
|
||||||
},
|
},
|
||||||
"shareError": {
|
"shareError": {
|
||||||
"imageNotSupported": "",
|
"imageNotSupported": "Bildformat {{type}} wird nicht unterstützt",
|
||||||
"videoNotSupported": ""
|
"videoNotSupported": "Videoformat {{type}} wird nicht unterstützt"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"heading": "",
|
"heading": "Teilen mit...",
|
||||||
"content": {
|
"content": {
|
||||||
"select_account": ""
|
"select_account": "Konto auswählen"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"content": {
|
"content": {
|
||||||
"altText": {
|
"altText": {
|
||||||
"heading": ""
|
"heading": "Alternativtext"
|
||||||
},
|
},
|
||||||
"notificationsFilter": {
|
"notificationsFilter": {
|
||||||
"heading": "Benachrichtigungsart anzeigen",
|
"heading": "Benachrichtigungsart anzeigen",
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
"mention": "$t(screenTabs:me.push.mention.heading)",
|
"mention": "$t(screenTabs:me.push.mention.heading)",
|
||||||
"poll": "$t(screenTabs:me.push.poll.heading)",
|
"poll": "$t(screenTabs:me.push.poll.heading)",
|
||||||
"status": "",
|
"status": "",
|
||||||
"update": ""
|
"update": "Boost wurde bearbeitet"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,7 +45,7 @@
|
||||||
"placeholder": "Was geht in dir vor",
|
"placeholder": "Was geht in dir vor",
|
||||||
"keyboardImage": {
|
"keyboardImage": {
|
||||||
"exceedMaximum": {
|
"exceedMaximum": {
|
||||||
"title": "",
|
"title": "Maximale Anzahl von Anhängen erreicht",
|
||||||
"OK": "$t(common:buttons.OK)"
|
"OK": "$t(common:buttons.OK)"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,7 @@
|
||||||
},
|
},
|
||||||
"increase": {
|
"increase": {
|
||||||
"accessibilityLabel": "Erhöhe Anzahl der Antwortmöglichkeiten auf {{amount}}",
|
"accessibilityLabel": "Erhöhe Anzahl der Antwortmöglichkeiten auf {{amount}}",
|
||||||
"accessibilityHint": ""
|
"accessibilityHint": "Maximale Anzahl der Auswahlmöglichkeiten erreicht, aktuell {{amount}}"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"multiple": {
|
"multiple": {
|
||||||
|
@ -114,42 +114,42 @@
|
||||||
"accessibilityHint": "Umfrage wird entfernt, wenn ein Anhang vorhanden ist",
|
"accessibilityHint": "Umfrage wird entfernt, wenn ein Anhang vorhanden ist",
|
||||||
"failed": {
|
"failed": {
|
||||||
"alert": {
|
"alert": {
|
||||||
"title": "",
|
"title": "Upload fehlgeschlagen",
|
||||||
"button": "Noch einmal versuchen"
|
"button": "Noch einmal versuchen"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"poll": {
|
"poll": {
|
||||||
"accessibilityLabel": "",
|
"accessibilityLabel": "Umfrage hinzufügen",
|
||||||
"accessibilityHint": ""
|
"accessibilityHint": "Anhang ist bei Umfragen nicht möglich"
|
||||||
},
|
},
|
||||||
"visibility": {
|
"visibility": {
|
||||||
"accessibilityLabel": "",
|
"accessibilityLabel": "Sichtbarkeit des Tröts ist {{visibility}}",
|
||||||
"title": "",
|
"title": "Sichtbarkeit des Tröts",
|
||||||
"options": {
|
"options": {
|
||||||
"public": "Öffentlich",
|
"public": "Öffentlich",
|
||||||
"unlisted": "Ungelistet",
|
"unlisted": "Ungelistet",
|
||||||
"private": "Nur für Folgende",
|
"private": "Nur für Folgende",
|
||||||
"direct": "",
|
"direct": "Direktnachricht",
|
||||||
"cancel": "$t(common:buttons.cancel)"
|
"cancel": "$t(common:buttons.cancel)"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"spoiler": {
|
"spoiler": {
|
||||||
"accessibilityLabel": ""
|
"accessibilityLabel": "Spoiler"
|
||||||
},
|
},
|
||||||
"emoji": {
|
"emoji": {
|
||||||
"accessibilityLabel": "",
|
"accessibilityLabel": "Emoji hinzufügen",
|
||||||
"accessibilityHint": ""
|
"accessibilityHint": ""
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"drafts_one": "",
|
"drafts_one": "Entwurf ({{count}})",
|
||||||
"drafts_other": ""
|
"drafts_other": "Entwürfe ({{count}})"
|
||||||
},
|
},
|
||||||
"editAttachment": {
|
"editAttachment": {
|
||||||
"header": {
|
"header": {
|
||||||
"title": "Anhang bearbeiten",
|
"title": "Anhang bearbeiten",
|
||||||
"right": {
|
"right": {
|
||||||
"accessibilityLabel": "",
|
"accessibilityLabel": "Anhang speichern",
|
||||||
"failed": {
|
"failed": {
|
||||||
"title": "Bearbeitung fehlgeschlagen",
|
"title": "Bearbeitung fehlgeschlagen",
|
||||||
"button": "Noch einmal versuchen"
|
"button": "Noch einmal versuchen"
|
||||||
|
@ -168,12 +168,12 @@
|
||||||
"header": {
|
"header": {
|
||||||
"title": "Entwurf"
|
"title": "Entwurf"
|
||||||
},
|
},
|
||||||
"warning": "",
|
"warning": "Entwürfe werden nur lokal gespeichert und können bei Abstürzen verloren gehen. Diese Funktion bitte nicht für dauerhafte Entwürfe nutzen.",
|
||||||
"content": {
|
"content": {
|
||||||
"accessibilityHint": "Gespeicherter Entwurf, tippe, um diesen zu bearbeiten",
|
"accessibilityHint": "Gespeicherter Entwurf, tippe, um diesen zu bearbeiten",
|
||||||
"textEmpty": "Kein Inhalt"
|
"textEmpty": "Kein Inhalt"
|
||||||
},
|
},
|
||||||
"checkAttachment": ""
|
"checkAttachment": "Prüfe Anhänge auf dem Server..."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -146,7 +146,7 @@
|
||||||
"label": "Kennzeichnung",
|
"label": "Kennzeichnung",
|
||||||
"content": "Inhalt"
|
"content": "Inhalt"
|
||||||
},
|
},
|
||||||
"mediaSelectionFailed": ""
|
"mediaSelectionFailed": "Verarbeitung des Bildes fehlgeschlagen. Bitte erneut versuchen."
|
||||||
},
|
},
|
||||||
"push": {
|
"push": {
|
||||||
"notAvailable": "Dein Gerät unterstützt keine Push-Benachrichtigung",
|
"notAvailable": "Dein Gerät unterstützt keine Push-Benachrichtigung",
|
||||||
|
@ -169,7 +169,7 @@
|
||||||
"heading": "Neue Follower"
|
"heading": "Neue Follower"
|
||||||
},
|
},
|
||||||
"follow_request": {
|
"follow_request": {
|
||||||
"heading": ""
|
"heading": "Followeranfrage"
|
||||||
},
|
},
|
||||||
"favourite": {
|
"favourite": {
|
||||||
"heading": "Favoriten"
|
"heading": "Favoriten"
|
||||||
|
@ -260,8 +260,8 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"staticEmoji": {
|
"staticEmoji": {
|
||||||
"heading": "",
|
"heading": "System-Emojis verwenden",
|
||||||
"description": ""
|
"description": "Wenn du beim Betrachten der Emoji-Liste häufige App-Abstürze feststellst, kannst du stattdessen versuchen, statische Emoji zu verwenden."
|
||||||
},
|
},
|
||||||
"feedback": {
|
"feedback": {
|
||||||
"heading": "Neue Funktion vorschlagen"
|
"heading": "Neue Funktion vorschlagen"
|
||||||
|
@ -280,7 +280,7 @@
|
||||||
"description": "Es werden ausschließlich Daten gesammelt, welche nicht nutzerbezogen sind"
|
"description": "Es werden ausschließlich Daten gesammelt, welche nicht nutzerbezogen sind"
|
||||||
},
|
},
|
||||||
"version": "Version v{{version}}",
|
"version": "Version v{{version}}",
|
||||||
"instanceVersion": ""
|
"instanceVersion": "Mastodon Version {{version}}"
|
||||||
},
|
},
|
||||||
"switch": {
|
"switch": {
|
||||||
"existing": "Wähle ein Konto aus",
|
"existing": "Wähle ein Konto aus",
|
||||||
|
@ -293,7 +293,7 @@
|
||||||
"accessibilityLabel": "Aktionen für Benutzer {{user}}",
|
"accessibilityLabel": "Aktionen für Benutzer {{user}}",
|
||||||
"accessibilityHint": "Du kannst diesen Benutzer stummschalten, blockieren, melden oder teilen"
|
"accessibilityHint": "Du kannst diesen Benutzer stummschalten, blockieren, melden oder teilen"
|
||||||
},
|
},
|
||||||
"followed_by": "",
|
"followed_by": " folgt dir",
|
||||||
"moved": "Benutzer umgezogen",
|
"moved": "Benutzer umgezogen",
|
||||||
"created_at": "Registriert am: {{date}}",
|
"created_at": "Registriert am: {{date}}",
|
||||||
"summary": {
|
"summary": {
|
||||||
|
@ -304,7 +304,8 @@
|
||||||
"toots": {
|
"toots": {
|
||||||
"default": "Tröts",
|
"default": "Tröts",
|
||||||
"all": "Tröts und DruTröts"
|
"all": "Tröts und DruTröts"
|
||||||
}
|
},
|
||||||
|
"suspended": "Konto wurde von den Instanzmoderation gesperrt"
|
||||||
},
|
},
|
||||||
"attachments": {
|
"attachments": {
|
||||||
"name": "<0 /><1>\"s Medien</1>"
|
"name": "<0 /><1>\"s Medien</1>"
|
||||||
|
@ -347,7 +348,7 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"history": {
|
"history": {
|
||||||
"name": ""
|
"name": "Bearbeitungsverlauf"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -88,7 +88,7 @@
|
||||||
"content": {
|
"content": {
|
||||||
"expandHint": "Hidden content"
|
"expandHint": "Hidden content"
|
||||||
},
|
},
|
||||||
"filtered": "Filtered",
|
"filtered": "Filtered: {{phrase}}.",
|
||||||
"fullConversation": "Read conversations",
|
"fullConversation": "Read conversations",
|
||||||
"translate": {
|
"translate": {
|
||||||
"default": "Translate",
|
"default": "Translate",
|
||||||
|
|
|
@ -304,7 +304,8 @@
|
||||||
"toots": {
|
"toots": {
|
||||||
"default": "Toots",
|
"default": "Toots",
|
||||||
"all": "Toots and replies"
|
"all": "Toots and replies"
|
||||||
}
|
},
|
||||||
|
"suspended": "Account suspended by the moderators of your server"
|
||||||
},
|
},
|
||||||
"attachments": {
|
"attachments": {
|
||||||
"name": "<0 /><1>\"s media</1>"
|
"name": "<0 /><1>\"s media</1>"
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"buttons": {
|
||||||
|
"OK": "",
|
||||||
|
"apply": "",
|
||||||
|
"cancel": ""
|
||||||
|
},
|
||||||
|
"customEmoji": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
},
|
||||||
|
"message": {
|
||||||
|
"success": {
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"warning": {
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"separator": ""
|
||||||
|
}
|
|
@ -0,0 +1,76 @@
|
||||||
|
{
|
||||||
|
"accessibilityHint": "",
|
||||||
|
"account": {
|
||||||
|
"title": "",
|
||||||
|
"mute": {
|
||||||
|
"action_false": "",
|
||||||
|
"action_true": ""
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"action_false": "",
|
||||||
|
"action_true": ""
|
||||||
|
},
|
||||||
|
"reports": {
|
||||||
|
"action": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"copy": {
|
||||||
|
"action": "",
|
||||||
|
"succeed": ""
|
||||||
|
},
|
||||||
|
"instance": {
|
||||||
|
"title": "",
|
||||||
|
"block": {
|
||||||
|
"action": "",
|
||||||
|
"alert": {
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"buttons": {
|
||||||
|
"confirm": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"share": {
|
||||||
|
"status": {
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"account": {
|
||||||
|
"action": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"title": "",
|
||||||
|
"edit": {
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"delete": {
|
||||||
|
"action": "",
|
||||||
|
"alert": {
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"buttons": {
|
||||||
|
"confirm": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"deleteEdit": {
|
||||||
|
"action": "",
|
||||||
|
"alert": {
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"buttons": {
|
||||||
|
"confirm": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mute": {
|
||||||
|
"action_false": "",
|
||||||
|
"action_true": ""
|
||||||
|
},
|
||||||
|
"pin": {
|
||||||
|
"action_false": "",
|
||||||
|
"action_true": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
{}
|
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"server": {
|
||||||
|
"textInput": {
|
||||||
|
"placeholder": ""
|
||||||
|
},
|
||||||
|
"button": "",
|
||||||
|
"information": {
|
||||||
|
"name": "",
|
||||||
|
"accounts": "",
|
||||||
|
"statuses": "",
|
||||||
|
"domains": ""
|
||||||
|
},
|
||||||
|
"disclaimer": {
|
||||||
|
"base": ""
|
||||||
|
},
|
||||||
|
"terms": {
|
||||||
|
"base": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"update": {
|
||||||
|
"alert": {
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"buttons": {
|
||||||
|
"cancel": "",
|
||||||
|
"continue": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"options": {
|
||||||
|
"image": "",
|
||||||
|
"image_max": "",
|
||||||
|
"video": "",
|
||||||
|
"video_max": ""
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"HTML": {
|
||||||
|
"accessibilityHint": "",
|
||||||
|
"expanded": "",
|
||||||
|
"moreLines": "",
|
||||||
|
"defaultHint": ""
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"follow": {
|
||||||
|
"function": ""
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"function": ""
|
||||||
|
},
|
||||||
|
"button": {
|
||||||
|
"error": "",
|
||||||
|
"blocked_by": "",
|
||||||
|
"blocking": "",
|
||||||
|
"following": "",
|
||||||
|
"requested": "",
|
||||||
|
"default": ""
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,152 @@
|
||||||
|
{
|
||||||
|
"empty": {
|
||||||
|
"error": {
|
||||||
|
"message": "",
|
||||||
|
"button": ""
|
||||||
|
},
|
||||||
|
"success": {
|
||||||
|
"message": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"lookback": {
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"refresh": {
|
||||||
|
"fetchPreviousPage": "",
|
||||||
|
"refetch": ""
|
||||||
|
},
|
||||||
|
"shared": {
|
||||||
|
"actioned": {
|
||||||
|
"pinned": "",
|
||||||
|
"favourite": "",
|
||||||
|
"status": "",
|
||||||
|
"follow": "",
|
||||||
|
"follow_request": "",
|
||||||
|
"poll": "",
|
||||||
|
"reblog": {
|
||||||
|
"default": "",
|
||||||
|
"notification": ""
|
||||||
|
},
|
||||||
|
"update": ""
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"reply": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
},
|
||||||
|
"reblogged": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"function": "",
|
||||||
|
"options": {
|
||||||
|
"title": "",
|
||||||
|
"public": "",
|
||||||
|
"unlisted": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"favourited": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"function": ""
|
||||||
|
},
|
||||||
|
"bookmarked": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"function": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"actionsUsers": {
|
||||||
|
"reblogged_by": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": "",
|
||||||
|
"text": ""
|
||||||
|
},
|
||||||
|
"favourited_by": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": "",
|
||||||
|
"text": ""
|
||||||
|
},
|
||||||
|
"history": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": "",
|
||||||
|
"text_one": "",
|
||||||
|
"text_other": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"attachment": {
|
||||||
|
"sensitive": {
|
||||||
|
"button": ""
|
||||||
|
},
|
||||||
|
"unsupported": {
|
||||||
|
"text": "",
|
||||||
|
"button": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"avatar": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": ""
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"expandHint": ""
|
||||||
|
},
|
||||||
|
"filtered": "",
|
||||||
|
"fullConversation": "",
|
||||||
|
"translate": {
|
||||||
|
"default": "",
|
||||||
|
"succeed": "",
|
||||||
|
"failed": "",
|
||||||
|
"source_not_supported": "",
|
||||||
|
"target_not_supported": ""
|
||||||
|
},
|
||||||
|
"header": {
|
||||||
|
"shared": {
|
||||||
|
"account": {
|
||||||
|
"name": {
|
||||||
|
"accessibilityHint": ""
|
||||||
|
},
|
||||||
|
"account": {
|
||||||
|
"accessibilityHint": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"application": "",
|
||||||
|
"edited": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
},
|
||||||
|
"muted": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
},
|
||||||
|
"visibility": {
|
||||||
|
"direct": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
},
|
||||||
|
"private": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"conversation": {
|
||||||
|
"withAccounts": "",
|
||||||
|
"delete": {
|
||||||
|
"function": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"poll": {
|
||||||
|
"meta": {
|
||||||
|
"button": {
|
||||||
|
"vote": "",
|
||||||
|
"refresh": ""
|
||||||
|
},
|
||||||
|
"count": {
|
||||||
|
"voters_one": "",
|
||||||
|
"voters_other": "",
|
||||||
|
"votes_one": "",
|
||||||
|
"votes_other": ""
|
||||||
|
},
|
||||||
|
"expiration": {
|
||||||
|
"expired": "",
|
||||||
|
"until": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"screenshot": {
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"button": ""
|
||||||
|
},
|
||||||
|
"localCorrupt": {
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"pushError": {
|
||||||
|
"message": "",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"shareError": {
|
||||||
|
"imageNotSupported": "",
|
||||||
|
"videoNotSupported": ""
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"select_account": ""
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"altText": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"notificationsFilter": {
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"follow": "",
|
||||||
|
"follow_request": "",
|
||||||
|
"favourite": "",
|
||||||
|
"reblog": "",
|
||||||
|
"mention": "",
|
||||||
|
"poll": "",
|
||||||
|
"status": "",
|
||||||
|
"update": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"published": "",
|
||||||
|
"button": {
|
||||||
|
"read": "",
|
||||||
|
"unread": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,179 @@
|
||||||
|
{
|
||||||
|
"heading": {
|
||||||
|
"left": {
|
||||||
|
"button": "",
|
||||||
|
"alert": {
|
||||||
|
"title": "",
|
||||||
|
"buttons": {
|
||||||
|
"save": "",
|
||||||
|
"delete": "",
|
||||||
|
"cancel": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"button": {
|
||||||
|
"default": "",
|
||||||
|
"conversation": "",
|
||||||
|
"reply": "",
|
||||||
|
"deleteEdit": "",
|
||||||
|
"edit": "",
|
||||||
|
"share": ""
|
||||||
|
},
|
||||||
|
"alert": {
|
||||||
|
"default": {
|
||||||
|
"title": "",
|
||||||
|
"button": ""
|
||||||
|
},
|
||||||
|
"removeReply": {
|
||||||
|
"title": "",
|
||||||
|
"description": "",
|
||||||
|
"cancel": "",
|
||||||
|
"confirm": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"root": {
|
||||||
|
"header": {
|
||||||
|
"postingAs": "",
|
||||||
|
"spoilerInput": {
|
||||||
|
"placeholder": ""
|
||||||
|
},
|
||||||
|
"textInput": {
|
||||||
|
"placeholder": "",
|
||||||
|
"keyboardImage": {
|
||||||
|
"exceedMaximum": {
|
||||||
|
"title": "",
|
||||||
|
"OK": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"attachments": {
|
||||||
|
"sensitive": "",
|
||||||
|
"remove": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
},
|
||||||
|
"edit": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
},
|
||||||
|
"upload": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"emojis": {
|
||||||
|
"accessibilityHint": ""
|
||||||
|
},
|
||||||
|
"poll": {
|
||||||
|
"option": {
|
||||||
|
"placeholder": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"single": "",
|
||||||
|
"multiple": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"quantity": {
|
||||||
|
"reduce": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": ""
|
||||||
|
},
|
||||||
|
"increase": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"multiple": {
|
||||||
|
"heading": "",
|
||||||
|
"options": {
|
||||||
|
"single": "",
|
||||||
|
"multiple": "",
|
||||||
|
"cancel": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"expiration": {
|
||||||
|
"heading": "",
|
||||||
|
"options": {
|
||||||
|
"300": "",
|
||||||
|
"1800": "",
|
||||||
|
"3600": "",
|
||||||
|
"21600": "",
|
||||||
|
"86400": "",
|
||||||
|
"259200": "",
|
||||||
|
"604800": "",
|
||||||
|
"cancel": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"attachment": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": "",
|
||||||
|
"failed": {
|
||||||
|
"alert": {
|
||||||
|
"title": "",
|
||||||
|
"button": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"poll": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": ""
|
||||||
|
},
|
||||||
|
"visibility": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"title": "",
|
||||||
|
"options": {
|
||||||
|
"public": "",
|
||||||
|
"unlisted": "",
|
||||||
|
"private": "",
|
||||||
|
"direct": "",
|
||||||
|
"cancel": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spoiler": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
},
|
||||||
|
"emoji": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"drafts_one": "",
|
||||||
|
"drafts_other": ""
|
||||||
|
},
|
||||||
|
"editAttachment": {
|
||||||
|
"header": {
|
||||||
|
"title": "",
|
||||||
|
"right": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"failed": {
|
||||||
|
"title": "",
|
||||||
|
"button": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"altText": {
|
||||||
|
"heading": "",
|
||||||
|
"placeholder": ""
|
||||||
|
},
|
||||||
|
"imageFocus": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"draftsList": {
|
||||||
|
"header": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"warning": "",
|
||||||
|
"content": {
|
||||||
|
"accessibilityHint": "",
|
||||||
|
"textEmpty": ""
|
||||||
|
},
|
||||||
|
"checkAttachment": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"actions": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": ""
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"save": "",
|
||||||
|
"share": "",
|
||||||
|
"cancel": ""
|
||||||
|
},
|
||||||
|
"save": {
|
||||||
|
"succeed": "",
|
||||||
|
"failed": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,354 @@
|
||||||
|
{
|
||||||
|
"tabs": {
|
||||||
|
"local": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"public": {
|
||||||
|
"name": "",
|
||||||
|
"segments": {
|
||||||
|
"left": "",
|
||||||
|
"right": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notifications": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"me": {
|
||||||
|
"name": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"common": {
|
||||||
|
"search": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notifications": {
|
||||||
|
"filter": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"me": {
|
||||||
|
"stacks": {
|
||||||
|
"bookmarks": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"conversations": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"favourites": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"fontSize": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"language": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"lists": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"list": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"push": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"profileName": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"profileNote": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"profileFields": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"webSettings": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"switch": {
|
||||||
|
"name": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fontSize": {
|
||||||
|
"demo": "",
|
||||||
|
"sizes": {
|
||||||
|
"S": "",
|
||||||
|
"M": "",
|
||||||
|
"L": "",
|
||||||
|
"XL": "",
|
||||||
|
"XXL": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"cancellation": {
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"buttons": {
|
||||||
|
"cancel": "",
|
||||||
|
"discard": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"feedback": {
|
||||||
|
"succeed": "",
|
||||||
|
"failed": ""
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"name": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"avatar": {
|
||||||
|
"title": "",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"header": {
|
||||||
|
"title": "",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"note": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"fields": {
|
||||||
|
"title": "",
|
||||||
|
"total_one": "",
|
||||||
|
"total_other": ""
|
||||||
|
},
|
||||||
|
"visibility": {
|
||||||
|
"title": "",
|
||||||
|
"options": {
|
||||||
|
"public": "",
|
||||||
|
"unlisted": "",
|
||||||
|
"private": "",
|
||||||
|
"cancel": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sensitive": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"lock": {
|
||||||
|
"title": "",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"bot": {
|
||||||
|
"title": "",
|
||||||
|
"description": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fields": {
|
||||||
|
"group": "",
|
||||||
|
"label": "",
|
||||||
|
"content": ""
|
||||||
|
},
|
||||||
|
"mediaSelectionFailed": ""
|
||||||
|
},
|
||||||
|
"push": {
|
||||||
|
"notAvailable": "",
|
||||||
|
"enable": {
|
||||||
|
"direct": "",
|
||||||
|
"settings": ""
|
||||||
|
},
|
||||||
|
"global": {
|
||||||
|
"heading": "",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"decode": {
|
||||||
|
"heading": "",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"follow": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"follow_request": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"favourite": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"reblog": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"mention": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"poll": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"howitworks": ""
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"announcements": {
|
||||||
|
"content": {
|
||||||
|
"unread": "",
|
||||||
|
"read": "",
|
||||||
|
"empty": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"push": {
|
||||||
|
"content": {
|
||||||
|
"enabled": "",
|
||||||
|
"disabled": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"update": {
|
||||||
|
"title": ""
|
||||||
|
},
|
||||||
|
"logout": {
|
||||||
|
"button": "",
|
||||||
|
"alert": {
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"buttons": {
|
||||||
|
"logout": "",
|
||||||
|
"cancel": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"fontsize": {
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"S": "",
|
||||||
|
"M": "",
|
||||||
|
"L": "",
|
||||||
|
"XL": "",
|
||||||
|
"XXL": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"language": {
|
||||||
|
"heading": "",
|
||||||
|
"options": {
|
||||||
|
"cancel": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"theme": {
|
||||||
|
"heading": "",
|
||||||
|
"options": {
|
||||||
|
"auto": "",
|
||||||
|
"light": "",
|
||||||
|
"dark": "",
|
||||||
|
"cancel": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"darkTheme": {
|
||||||
|
"heading": "",
|
||||||
|
"options": {
|
||||||
|
"lighter": "",
|
||||||
|
"darker": "",
|
||||||
|
"cancel": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"browser": {
|
||||||
|
"heading": "",
|
||||||
|
"options": {
|
||||||
|
"internal": "",
|
||||||
|
"external": "",
|
||||||
|
"cancel": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"staticEmoji": {
|
||||||
|
"heading": "",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"feedback": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"support": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"review": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"contact": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"analytics": {
|
||||||
|
"heading": "",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"version": "",
|
||||||
|
"instanceVersion": ""
|
||||||
|
},
|
||||||
|
"switch": {
|
||||||
|
"existing": "",
|
||||||
|
"new": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"shared": {
|
||||||
|
"account": {
|
||||||
|
"actions": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": ""
|
||||||
|
},
|
||||||
|
"followed_by": "",
|
||||||
|
"moved": "",
|
||||||
|
"created_at": "",
|
||||||
|
"summary": {
|
||||||
|
"statuses_count": "",
|
||||||
|
"following_count": "",
|
||||||
|
"followers_count": ""
|
||||||
|
},
|
||||||
|
"toots": {
|
||||||
|
"default": "",
|
||||||
|
"all": ""
|
||||||
|
},
|
||||||
|
"suspended": ""
|
||||||
|
},
|
||||||
|
"attachments": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"search": {
|
||||||
|
"header": {
|
||||||
|
"prefix": "",
|
||||||
|
"placeholder": ""
|
||||||
|
},
|
||||||
|
"empty": {
|
||||||
|
"general": "",
|
||||||
|
"advanced": {
|
||||||
|
"header": "",
|
||||||
|
"example": {
|
||||||
|
"account": "",
|
||||||
|
"hashtag": "",
|
||||||
|
"statusLink": "",
|
||||||
|
"accountLink": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sections": {
|
||||||
|
"accounts": "",
|
||||||
|
"hashtags": "",
|
||||||
|
"statuses": ""
|
||||||
|
},
|
||||||
|
"notFound": ""
|
||||||
|
},
|
||||||
|
"toot": {
|
||||||
|
"name": ""
|
||||||
|
},
|
||||||
|
"users": {
|
||||||
|
"accounts": {
|
||||||
|
"following": "",
|
||||||
|
"followers": ""
|
||||||
|
},
|
||||||
|
"statuses": {
|
||||||
|
"reblogged_by": "",
|
||||||
|
"favourited_by": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"history": {
|
||||||
|
"name": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"buttons": {
|
||||||
|
"OK": "Ok",
|
||||||
|
"apply": "Confirmer",
|
||||||
|
"cancel": "Annuler"
|
||||||
|
},
|
||||||
|
"customEmoji": {
|
||||||
|
"accessibilityLabel": "Émoji personnalisé {{emoji}}"
|
||||||
|
},
|
||||||
|
"message": {
|
||||||
|
"success": {
|
||||||
|
"message": "{{function}} succès"
|
||||||
|
},
|
||||||
|
"warning": {
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"message": "Échec de la connexion, veuillez réessayer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"separator": ", "
|
||||||
|
}
|
|
@ -0,0 +1,76 @@
|
||||||
|
{
|
||||||
|
"accessibilityHint": "Actions pour ce Pouet, telles que son utilisateur affiché, le Pouet lui-même",
|
||||||
|
"account": {
|
||||||
|
"title": "Actions de l'utilisateur",
|
||||||
|
"mute": {
|
||||||
|
"action_false": "Rendre muet l'utilisateur",
|
||||||
|
"action_true": "Rendre la parole"
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"action_false": "Bloquer l'utilisateur",
|
||||||
|
"action_true": "Débloquer l'utilisateur"
|
||||||
|
},
|
||||||
|
"reports": {
|
||||||
|
"action": "Signaler et bloquer"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"copy": {
|
||||||
|
"action": "Copier le Pouet",
|
||||||
|
"succeed": "Copié"
|
||||||
|
},
|
||||||
|
"instance": {
|
||||||
|
"title": "Action de l'instance",
|
||||||
|
"block": {
|
||||||
|
"action": "Bloquer l'instance {{instance}}",
|
||||||
|
"alert": {
|
||||||
|
"title": "Confirmer le blocage de l'instance {{instance}}?",
|
||||||
|
"message": "Vous pouvez masquer ou bloquer certains utilisateurs.\n\nAprès avoir bloqué l'instance, tout son contenu, y compris les followers de cette instance, sera supprimé !",
|
||||||
|
"buttons": {
|
||||||
|
"confirm": "Confirmer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"share": {
|
||||||
|
"status": {
|
||||||
|
"action": "Partager le pouet"
|
||||||
|
},
|
||||||
|
"account": {
|
||||||
|
"action": "Partage l'utilisateur"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"title": "Actions du pouet",
|
||||||
|
"edit": {
|
||||||
|
"action": "Editer le pouet"
|
||||||
|
},
|
||||||
|
"delete": {
|
||||||
|
"action": "Supprimer le pouet",
|
||||||
|
"alert": {
|
||||||
|
"title": "Confirmer la suppression ?",
|
||||||
|
"message": "Tous les boosts et favoris seront effacés, y compris toutes les réponses.",
|
||||||
|
"buttons": {
|
||||||
|
"confirm": "Confirmer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"deleteEdit": {
|
||||||
|
"action": "Supprimer le pouet et le republié",
|
||||||
|
"alert": {
|
||||||
|
"title": "Confirmer la suppression et le repost ?",
|
||||||
|
"message": "Tous les boosts et favoris seront effacés, y compris toutes les réponses.",
|
||||||
|
"buttons": {
|
||||||
|
"confirm": "Confirmer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mute": {
|
||||||
|
"action_false": "Couper le pouet et les réponses",
|
||||||
|
"action_true": "Couper le pouet et les réponses"
|
||||||
|
},
|
||||||
|
"pin": {
|
||||||
|
"action_false": "Pouet épinglé",
|
||||||
|
"action_true": "Détacher le pouet"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,3 @@
|
||||||
|
{
|
||||||
|
"frequentUsed": "Fréquemment utilisés"
|
||||||
|
}
|
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"server": {
|
||||||
|
"textInput": {
|
||||||
|
"placeholder": "Domaine d'instance"
|
||||||
|
},
|
||||||
|
"button": "Connexion",
|
||||||
|
"information": {
|
||||||
|
"name": "Nom",
|
||||||
|
"accounts": "Utilisateurs",
|
||||||
|
"statuses": "Pouets",
|
||||||
|
"domains": "Univers"
|
||||||
|
},
|
||||||
|
"disclaimer": {
|
||||||
|
"base": "Le processus de connexion utilise le navigateur du système. Les informations de votre compte ne seront pas visibles par l'application tooot."
|
||||||
|
},
|
||||||
|
"terms": {
|
||||||
|
"base": "En vous connectant, vous acceptez la <0>politique de confidentialité</0> et les <1>conditions de service</1>."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"update": {
|
||||||
|
"alert": {
|
||||||
|
"title": "Connecté à cette instance",
|
||||||
|
"message": "Vous pouvez vous connecter à un autre compte, en maintenant un compte connecté existant",
|
||||||
|
"buttons": {
|
||||||
|
"cancel": "$t(common:buttons.cancel)",
|
||||||
|
"continue": "Continuer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"title": "Sélectionnez la source du média",
|
||||||
|
"message": "Les données Media EXIF ne sont pas téléchargées",
|
||||||
|
"options": {
|
||||||
|
"image": "Télécharger des photos",
|
||||||
|
"image_max": "Télécharger des photos (max {{max}})",
|
||||||
|
"video": "Télécharger une vidéo",
|
||||||
|
"video_max": "Télécharger une vidéo (max {{max}})"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"HTML": {
|
||||||
|
"accessibilityHint": "Appuyez pour agrandir ou réduire le contenu",
|
||||||
|
"expanded": "{{hint}}{{moreLines}}",
|
||||||
|
"moreLines": " ({{count}} lignes en plus)",
|
||||||
|
"defaultHint": "Pouet long"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"follow": {
|
||||||
|
"function": "Suivre l'utilisateur"
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"function": "Bloquer l'utilisateur"
|
||||||
|
},
|
||||||
|
"button": {
|
||||||
|
"error": "Erreur de chargement",
|
||||||
|
"blocked_by": "Bloqué par l'utilisateur",
|
||||||
|
"blocking": "Débloquer",
|
||||||
|
"following": "Ne plus suivre",
|
||||||
|
"requested": "Retirer la demande",
|
||||||
|
"default": "Suivre"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,152 @@
|
||||||
|
{
|
||||||
|
"empty": {
|
||||||
|
"error": {
|
||||||
|
"message": "Erreur de chargement",
|
||||||
|
"button": "Réessayer"
|
||||||
|
},
|
||||||
|
"success": {
|
||||||
|
"message": "La chronologie est vide"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"message": "Fin, qu'en est-il d'une tasse de <0 />"
|
||||||
|
},
|
||||||
|
"lookback": {
|
||||||
|
"message": "Dernière lecture à"
|
||||||
|
},
|
||||||
|
"refresh": {
|
||||||
|
"fetchPreviousPage": "Plus récent à partir d'ici",
|
||||||
|
"refetch": "À la dernière"
|
||||||
|
},
|
||||||
|
"shared": {
|
||||||
|
"actioned": {
|
||||||
|
"pinned": "Épinglé",
|
||||||
|
"favourite": "{{name}} a mis votre pouet en favoris",
|
||||||
|
"status": "{{name}} vient d'être posté",
|
||||||
|
"follow": "{{name}} vous suit",
|
||||||
|
"follow_request": "{{name}} a demandé à vous suivre",
|
||||||
|
"poll": "Un sondage auquel vous avez participé est maintenant terminé",
|
||||||
|
"reblog": {
|
||||||
|
"default": "{{name}} a partagé",
|
||||||
|
"notification": "{{name}} a partagé votre message"
|
||||||
|
},
|
||||||
|
"update": "Le reblog a été modifié"
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"reply": {
|
||||||
|
"accessibilityLabel": "Répondre à ce pouet"
|
||||||
|
},
|
||||||
|
"reblogged": {
|
||||||
|
"accessibilityLabel": "Partager ce pouet",
|
||||||
|
"function": "Pouet de Boost",
|
||||||
|
"options": {
|
||||||
|
"title": "Choisir la visibilité du boost",
|
||||||
|
"public": "Boost public",
|
||||||
|
"unlisted": "Retirer le boost"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"favourited": {
|
||||||
|
"accessibilityLabel": "Ajouter ce pouet aux favoris",
|
||||||
|
"function": "Mettre le pouet en favori"
|
||||||
|
},
|
||||||
|
"bookmarked": {
|
||||||
|
"accessibilityLabel": "Ajouter ce pouet aux signets",
|
||||||
|
"function": "Pouet de signet"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"actionsUsers": {
|
||||||
|
"reblogged_by": {
|
||||||
|
"accessibilityLabel": "{{count}} utilisateurs ont boosté ce pouet",
|
||||||
|
"accessibilityHint": "Touchez pour connaître les utilisateurs",
|
||||||
|
"text": "$t(screenTabs:shared.users.statuses.reblogged_by)"
|
||||||
|
},
|
||||||
|
"favourited_by": {
|
||||||
|
"accessibilityLabel": "{{count}} utilisateurs ont boosté ce pouet",
|
||||||
|
"accessibilityHint": "Touchez pour connaître les utilisateurs",
|
||||||
|
"text": "$t(screenTabs:shared.users.statuses.favourited_by)"
|
||||||
|
},
|
||||||
|
"history": {
|
||||||
|
"accessibilityLabel": "Ce pouet a été modifié {{count}} fois",
|
||||||
|
"accessibilityHint": "Appuyer pour afficher l'historique d'édition complet",
|
||||||
|
"text_one": "{{count}} modification",
|
||||||
|
"text_other": "{{count}} modifications"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"attachment": {
|
||||||
|
"sensitive": {
|
||||||
|
"button": "Afficher les médias sensibles"
|
||||||
|
},
|
||||||
|
"unsupported": {
|
||||||
|
"text": "Erreur de chargement",
|
||||||
|
"button": "Essayer le lien distant"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"avatar": {
|
||||||
|
"accessibilityLabel": "Avatar de {{name}}",
|
||||||
|
"accessibilityHint": "Appuyez pour accéder à la page de {{name}}"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"expandHint": "Contenu masqué"
|
||||||
|
},
|
||||||
|
"filtered": "Filtré: {{phrase}}.",
|
||||||
|
"fullConversation": "Conversations lues",
|
||||||
|
"translate": {
|
||||||
|
"default": "Traduire",
|
||||||
|
"succeed": "Traduit par {{provider}} de {{source}}",
|
||||||
|
"failed": "La traduction a échoué",
|
||||||
|
"source_not_supported": "cette langue n'est pas prise en charge",
|
||||||
|
"target_not_supported": "Cette langue n'est pas prise en charge"
|
||||||
|
},
|
||||||
|
"header": {
|
||||||
|
"shared": {
|
||||||
|
"account": {
|
||||||
|
"name": {
|
||||||
|
"accessibilityHint": "Nom de l'utilisateur"
|
||||||
|
},
|
||||||
|
"account": {
|
||||||
|
"accessibilityHint": "Compte de l'utilisateur"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"application": "Poussée avec {{application}}",
|
||||||
|
"edited": {
|
||||||
|
"accessibilityLabel": "Pouet édité"
|
||||||
|
},
|
||||||
|
"muted": {
|
||||||
|
"accessibilityLabel": "Pouet rendu muet"
|
||||||
|
},
|
||||||
|
"visibility": {
|
||||||
|
"direct": {
|
||||||
|
"accessibilityLabel": "Envoyer un message direct"
|
||||||
|
},
|
||||||
|
"private": {
|
||||||
|
"accessibilityLabel": "Visible uniquement pour les abonné·e·s"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"conversation": {
|
||||||
|
"withAccounts": "Avec",
|
||||||
|
"delete": {
|
||||||
|
"function": "Supprimer le message direct"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"poll": {
|
||||||
|
"meta": {
|
||||||
|
"button": {
|
||||||
|
"vote": "Voter",
|
||||||
|
"refresh": "Actualiser"
|
||||||
|
},
|
||||||
|
"count": {
|
||||||
|
"voters_one": "{{count}} utilisateur a voté",
|
||||||
|
"voters_other": "{{count}} utilisateurs ont voté",
|
||||||
|
"votes_one": "{{count}} votes",
|
||||||
|
"votes_other": "{{count}} votes"
|
||||||
|
},
|
||||||
|
"expiration": {
|
||||||
|
"expired": "Le vote a expiré",
|
||||||
|
"until": "Expire <0 />"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"screenshot": {
|
||||||
|
"title": "Protection de la confidentialité",
|
||||||
|
"message": "Veuillez ne pas divulguer l'identité d'un autre utilisateur, tel que le nom d'utilisateur, l'avatar, etc. Merci!",
|
||||||
|
"button": "Confirmer"
|
||||||
|
},
|
||||||
|
"localCorrupt": {
|
||||||
|
"message": "Session expirée, veuillez ré-essayer"
|
||||||
|
},
|
||||||
|
"pushError": {
|
||||||
|
"message": "Erreur des services push",
|
||||||
|
"description": "Veuillez réactiver la notification push dans les paramètres"
|
||||||
|
},
|
||||||
|
"shareError": {
|
||||||
|
"imageNotSupported": "Type d'image {{type}} non pris en charge",
|
||||||
|
"videoNotSupported": "Type de vidéo {{type}} non supporté"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"heading": "Partager avec...",
|
||||||
|
"content": {
|
||||||
|
"select_account": "Sélectionnez un compte"
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"altText": {
|
||||||
|
"heading": "Texte de remplacement"
|
||||||
|
},
|
||||||
|
"notificationsFilter": {
|
||||||
|
"heading": "Afficher les notifications",
|
||||||
|
"content": {
|
||||||
|
"follow": "$t(screenTabs:me.push.follow.heading)",
|
||||||
|
"follow_request": "Demande d'abonnement",
|
||||||
|
"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": "Pouet des utilisateurs abonnés",
|
||||||
|
"update": "Le reblog a été modifié"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"heading": "Annonces",
|
||||||
|
"content": {
|
||||||
|
"published": "Publié <0 />",
|
||||||
|
"button": {
|
||||||
|
"read": "Lire",
|
||||||
|
"unread": "Marqué comme lu"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,179 @@
|
||||||
|
{
|
||||||
|
"heading": {
|
||||||
|
"left": {
|
||||||
|
"button": "Abandonner",
|
||||||
|
"alert": {
|
||||||
|
"title": "Annuler l’édition?",
|
||||||
|
"buttons": {
|
||||||
|
"save": "Enregistrer comme brouillon",
|
||||||
|
"delete": "Supprimer le brouillon",
|
||||||
|
"cancel": "Abandonner"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"right": {
|
||||||
|
"button": {
|
||||||
|
"default": "Pouet",
|
||||||
|
"conversation": "Pouet DM",
|
||||||
|
"reply": "Réponse de pouet",
|
||||||
|
"deleteEdit": "Pouet",
|
||||||
|
"edit": "Pouet",
|
||||||
|
"share": "Pouet"
|
||||||
|
},
|
||||||
|
"alert": {
|
||||||
|
"default": {
|
||||||
|
"title": "Échec du pouet",
|
||||||
|
"button": "Réessayer"
|
||||||
|
},
|
||||||
|
"removeReply": {
|
||||||
|
"title": "Le pouet répondu est introuvable",
|
||||||
|
"description": "Le pouet répondu a peut-être été supprimé. Voulez-vous le supprimer de votre référence ?",
|
||||||
|
"cancel": "$t(common:buttons.cancel)",
|
||||||
|
"confirm": "Supprimer la référence"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"root": {
|
||||||
|
"header": {
|
||||||
|
"postingAs": "Pouet en tant que @{{acct}}@{{domain}}",
|
||||||
|
"spoilerInput": {
|
||||||
|
"placeholder": "Voir tous les messages d'avertissement"
|
||||||
|
},
|
||||||
|
"textInput": {
|
||||||
|
"placeholder": "Qu’avez-vous en tête",
|
||||||
|
"keyboardImage": {
|
||||||
|
"exceedMaximum": {
|
||||||
|
"title": "Nombre maximum de pièces jointes atteint",
|
||||||
|
"OK": "$t(common:buttons.OK)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"footer": {
|
||||||
|
"attachments": {
|
||||||
|
"sensitive": "Marquer les pièces jointes comme étant sensibles",
|
||||||
|
"remove": {
|
||||||
|
"accessibilityLabel": "Retirer la pièce jointe téléchargée, numéro {{attachment}}"
|
||||||
|
},
|
||||||
|
"edit": {
|
||||||
|
"accessibilityLabel": "Editer la pièce jointe téléchargée, numéro {{attachment}}"
|
||||||
|
},
|
||||||
|
"upload": {
|
||||||
|
"accessibilityLabel": "Télécharger plus de pièces jointes"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"emojis": {
|
||||||
|
"accessibilityHint": "Tapotez pour ajouter des émojis au pouet"
|
||||||
|
},
|
||||||
|
"poll": {
|
||||||
|
"option": {
|
||||||
|
"placeholder": {
|
||||||
|
"accessibilityLabel": "Option du sondage {{index}}",
|
||||||
|
"single": "Choix unique",
|
||||||
|
"multiple": "Choix multiple"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"quantity": {
|
||||||
|
"reduce": {
|
||||||
|
"accessibilityLabel": "Réduire les options du sondage à {{amount}}",
|
||||||
|
"accessibilityHint": "Quantité minimale d'options de sondage atteinte, actuellement {{amount}}"
|
||||||
|
},
|
||||||
|
"increase": {
|
||||||
|
"accessibilityLabel": "Augmentez les options du sondage à {{amount}}",
|
||||||
|
"accessibilityHint": "Quantité maximum d'options de sondage atteinte, actuellement {{amount}}"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"multiple": {
|
||||||
|
"heading": "Type de choix",
|
||||||
|
"options": {
|
||||||
|
"single": "Choix unique",
|
||||||
|
"multiple": "Choix multiple",
|
||||||
|
"cancel": "$t(common:buttons.cancel)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"expiration": {
|
||||||
|
"heading": "Validité",
|
||||||
|
"options": {
|
||||||
|
"300": "5 minutes",
|
||||||
|
"1800": "30 minutes",
|
||||||
|
"3600": "1 heure",
|
||||||
|
"21600": "6 heures",
|
||||||
|
"86400": "1 jour",
|
||||||
|
"259200": "3 jours",
|
||||||
|
"604800": "7 jours",
|
||||||
|
"cancel": "$t(common:buttons.cancel)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"attachment": {
|
||||||
|
"accessibilityLabel": "Téléchargez une pièce-jointe",
|
||||||
|
"accessibilityHint": "La fonction de sondage sera désactivée lorsqu'il y a une pièce jointe",
|
||||||
|
"failed": {
|
||||||
|
"alert": {
|
||||||
|
"title": "Le téléchargement a échoué",
|
||||||
|
"button": "Réessayer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"poll": {
|
||||||
|
"accessibilityLabel": "Ajouter un sondage",
|
||||||
|
"accessibilityHint": "La fonction d'attachement sera désactivée lorsque le sondage est actif"
|
||||||
|
},
|
||||||
|
"visibility": {
|
||||||
|
"accessibilityLabel": "La visibilité de pouet est {{visibility}}",
|
||||||
|
"title": "Visibilité de pouet",
|
||||||
|
"options": {
|
||||||
|
"public": "Public",
|
||||||
|
"unlisted": "Non listé",
|
||||||
|
"private": "Abonné·e·s uniquement",
|
||||||
|
"direct": "Message direct",
|
||||||
|
"cancel": "$t(common:buttons.cancel)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"spoiler": {
|
||||||
|
"accessibilityLabel": "Divulgâchage"
|
||||||
|
},
|
||||||
|
"emoji": {
|
||||||
|
"accessibilityLabel": "Ajouter un émoji",
|
||||||
|
"accessibilityHint": "Ouvrir le panneau de sélection des émojis, glisser horizontalement pour changer de page"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"drafts_one": "Brouillon ({{count}})",
|
||||||
|
"drafts_other": "Brouillons ({{count}})"
|
||||||
|
},
|
||||||
|
"editAttachment": {
|
||||||
|
"header": {
|
||||||
|
"title": "Modifier la pièce jointe",
|
||||||
|
"right": {
|
||||||
|
"accessibilityLabel": "Enregistrement de la pièce jointe",
|
||||||
|
"failed": {
|
||||||
|
"title": "Impossible d'éditer",
|
||||||
|
"button": "Réessayer"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"altText": {
|
||||||
|
"heading": "Décrire cette photo pour les personnes malvoyantes",
|
||||||
|
"placeholder": "Vous pouvez ajouter une description, parfois appelée alt-text, à vos médias afin qu'ils soient accessibles à un plus grand nombre de personnes, y compris celles qui sont aveugles ou malvoyantes.\n\nLes bonnes descriptions sont concises, ou présentent ce qui est dans vos médias avec suffisamment de précision pour comprendre leur contexte."
|
||||||
|
},
|
||||||
|
"imageFocus": "Faites glisser le cercle de focus pour mettre à jour le point de focus"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"draftsList": {
|
||||||
|
"header": {
|
||||||
|
"title": "Brouillon"
|
||||||
|
},
|
||||||
|
"warning": "Les brouillons ne sont stockés que localement, et peuvent être perdus dans des événements malheureux. Veuillez ne pas utiliser de brouillons pour un stockage à long terme.",
|
||||||
|
"content": {
|
||||||
|
"accessibilityHint": "Brouillon enregistré, appuyez pour modifier ce brouillon",
|
||||||
|
"textEmpty": "Le contenu est vide"
|
||||||
|
},
|
||||||
|
"checkAttachment": "Vérification des pièces jointes sur le serveur..."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,17 @@
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"actions": {
|
||||||
|
"accessibilityLabel": "Plus d'actions pour cette image",
|
||||||
|
"accessibilityHint": "Vous pouvez enregistrer ou partager cette image"
|
||||||
|
},
|
||||||
|
"options": {
|
||||||
|
"save": "Enregistrer l'image",
|
||||||
|
"share": "Partager l'image",
|
||||||
|
"cancel": "$t(common:buttons.cancel)"
|
||||||
|
},
|
||||||
|
"save": {
|
||||||
|
"succeed": "Image enregistrée",
|
||||||
|
"failed": "L'enregistrement de l'image a échoué"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,354 @@
|
||||||
|
{
|
||||||
|
"tabs": {
|
||||||
|
"local": {
|
||||||
|
"name": "Suit"
|
||||||
|
},
|
||||||
|
"public": {
|
||||||
|
"name": "",
|
||||||
|
"segments": {
|
||||||
|
"left": "Fédéré",
|
||||||
|
"right": "Local"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notifications": {
|
||||||
|
"name": "Notifications"
|
||||||
|
},
|
||||||
|
"me": {
|
||||||
|
"name": "À propos de moi"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"common": {
|
||||||
|
"search": {
|
||||||
|
"accessibilityLabel": "Rechercher",
|
||||||
|
"accessibilityHint": "Rechercher des hashtags, des utilisateurs ou des pouets"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"notifications": {
|
||||||
|
"filter": {
|
||||||
|
"accessibilityLabel": "Filtrer",
|
||||||
|
"accessibilityHint": "Filtrer les types de notifications affichés"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"me": {
|
||||||
|
"stacks": {
|
||||||
|
"bookmarks": {
|
||||||
|
"name": "Signets"
|
||||||
|
},
|
||||||
|
"conversations": {
|
||||||
|
"name": "Messages directs"
|
||||||
|
},
|
||||||
|
"favourites": {
|
||||||
|
"name": "Favoris"
|
||||||
|
},
|
||||||
|
"fontSize": {
|
||||||
|
"name": "Taille de la police de Pouet"
|
||||||
|
},
|
||||||
|
"language": {
|
||||||
|
"name": "Langue"
|
||||||
|
},
|
||||||
|
"lists": {
|
||||||
|
"name": "Listes"
|
||||||
|
},
|
||||||
|
"list": {
|
||||||
|
"name": "Liste : {{list}}"
|
||||||
|
},
|
||||||
|
"push": {
|
||||||
|
"name": "Push de Notification"
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"name": "Modifier le profil"
|
||||||
|
},
|
||||||
|
"profileName": {
|
||||||
|
"name": "Editer le nom d'affichage"
|
||||||
|
},
|
||||||
|
"profileNote": {
|
||||||
|
"name": "Éditer la description"
|
||||||
|
},
|
||||||
|
"profileFields": {
|
||||||
|
"name": "Éditer les métadonnées"
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"name": "Paramètres de l'application"
|
||||||
|
},
|
||||||
|
"webSettings": {
|
||||||
|
"name": "Plus de paramètres de compte"
|
||||||
|
},
|
||||||
|
"switch": {
|
||||||
|
"name": "Passer sur un autre compte"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fontSize": {
|
||||||
|
"demo": "<p>Ceci est un pouet de démo😊. Vous pouvez choisir parmi plusieurs options ci-dessous.<br /><br />Ce paramètre n'affecte que le contenu principal des pouets, mais pas les autres tailles de police.</p>",
|
||||||
|
"sizes": {
|
||||||
|
"S": "S",
|
||||||
|
"M": "M - Par Défaut",
|
||||||
|
"L": "L",
|
||||||
|
"XL": "XL",
|
||||||
|
"XXL": "XXL"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profile": {
|
||||||
|
"cancellation": {
|
||||||
|
"title": "Modifications non sauvegardées",
|
||||||
|
"message": "Votre modification n'a pas été enregistrée. Voulez-vous annuler l'enregistrement des modifications ?",
|
||||||
|
"buttons": {
|
||||||
|
"cancel": "$t(common:buttons.cancel)",
|
||||||
|
"discard": "Ne pas tenir compte"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"feedback": {
|
||||||
|
"succeed": "{{type}} mis à jour",
|
||||||
|
"failed": "{{type}} Échec de la mise à jour, veuillez ré-essayer"
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"name": {
|
||||||
|
"title": "Nom Affiché"
|
||||||
|
},
|
||||||
|
"avatar": {
|
||||||
|
"title": "Avatar",
|
||||||
|
"description": "Sera réduit à 400x400px"
|
||||||
|
},
|
||||||
|
"header": {
|
||||||
|
"title": "Bandeau",
|
||||||
|
"description": "Sera réduit à 1500x500px"
|
||||||
|
},
|
||||||
|
"note": {
|
||||||
|
"title": "Description"
|
||||||
|
},
|
||||||
|
"fields": {
|
||||||
|
"title": "Metadonnés",
|
||||||
|
"total_one": "Champ {{count}}",
|
||||||
|
"total_other": "Champ {{count}}"
|
||||||
|
},
|
||||||
|
"visibility": {
|
||||||
|
"title": "Visibilité de la publication",
|
||||||
|
"options": {
|
||||||
|
"public": "Public",
|
||||||
|
"unlisted": "Non listé",
|
||||||
|
"private": "Abonné·e·s uniquement",
|
||||||
|
"cancel": "$t(common:buttons.cancel)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"sensitive": {
|
||||||
|
"title": "Publication de médias sensibles"
|
||||||
|
},
|
||||||
|
"lock": {
|
||||||
|
"title": "Verrouiller le compte",
|
||||||
|
"description": "Nécessite que vous approuviez manuellement chaque abonné·e"
|
||||||
|
},
|
||||||
|
"bot": {
|
||||||
|
"title": "Compte Bot",
|
||||||
|
"description": "Ce compte effectue principalement des actions automatisées et peut ne pas être surveillé"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fields": {
|
||||||
|
"group": "Groupe {{index}}",
|
||||||
|
"label": "Étiquette",
|
||||||
|
"content": "Contenu"
|
||||||
|
},
|
||||||
|
"mediaSelectionFailed": "Le traitement de l'image a échoué. Veuillez réessayer."
|
||||||
|
},
|
||||||
|
"push": {
|
||||||
|
"notAvailable": "Votre téléphone ne prend pas en charge la notification push de tooot",
|
||||||
|
"enable": {
|
||||||
|
"direct": "Activer les notifications push",
|
||||||
|
"settings": "Activer dans les paramètres"
|
||||||
|
},
|
||||||
|
"global": {
|
||||||
|
"heading": "Activer pour {{acct}}",
|
||||||
|
"description": "Les messages sont acheminés via le serveur de tooot"
|
||||||
|
},
|
||||||
|
"decode": {
|
||||||
|
"heading": "Détails du message",
|
||||||
|
"description": "Les messages acheminés par le serveur de tooot sont chiffrés, mais vous pouvez choisir de décoder le message sur le serveur. Le code source de notre serveur est open source et aucune politique de log."
|
||||||
|
},
|
||||||
|
"default": {
|
||||||
|
"heading": "Par défaut"
|
||||||
|
},
|
||||||
|
"follow": {
|
||||||
|
"heading": "Nouvel abonné"
|
||||||
|
},
|
||||||
|
"follow_request": {
|
||||||
|
"heading": "Demande d'abonnement"
|
||||||
|
},
|
||||||
|
"favourite": {
|
||||||
|
"heading": "Dans les favoris"
|
||||||
|
},
|
||||||
|
"reblog": {
|
||||||
|
"heading": "Boosté"
|
||||||
|
},
|
||||||
|
"mention": {
|
||||||
|
"heading": "Vous a mentionné(e)"
|
||||||
|
},
|
||||||
|
"poll": {
|
||||||
|
"heading": "Mise à jour du sondage"
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"heading": "Pouet des utilisateurs inscrits"
|
||||||
|
},
|
||||||
|
"howitworks": "Apprenez comment cela fonctionne"
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"announcements": {
|
||||||
|
"content": {
|
||||||
|
"unread": "{{amount}} non lus",
|
||||||
|
"read": "Tout lu",
|
||||||
|
"empty": "Aucun"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"push": {
|
||||||
|
"content": {
|
||||||
|
"enabled": "Activé",
|
||||||
|
"disabled": "Désactivé"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"update": {
|
||||||
|
"title": "Mettre à jour vers la dernière version"
|
||||||
|
},
|
||||||
|
"logout": {
|
||||||
|
"button": "Se déconnecter",
|
||||||
|
"alert": {
|
||||||
|
"title": "Déconnexion?",
|
||||||
|
"message": "Après vous être déconnecté, vous devez vous reconnecter",
|
||||||
|
"buttons": {
|
||||||
|
"logout": "Déconnexion",
|
||||||
|
"cancel": "$t(common:buttons.cancel)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"settings": {
|
||||||
|
"fontsize": {
|
||||||
|
"heading": "$t(me.stacks.fontSize.name)",
|
||||||
|
"content": {
|
||||||
|
"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": "$t(me.stacks.language.name)",
|
||||||
|
"options": {
|
||||||
|
"cancel": "$t(common:buttons.cancel)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"theme": {
|
||||||
|
"heading": "Apparence",
|
||||||
|
"options": {
|
||||||
|
"auto": "Comme le système",
|
||||||
|
"light": "Mode Clair",
|
||||||
|
"dark": "Mode sombre",
|
||||||
|
"cancel": "$t(common:buttons.cancel)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"darkTheme": {
|
||||||
|
"heading": "Thème sombre",
|
||||||
|
"options": {
|
||||||
|
"lighter": "Plus claire",
|
||||||
|
"darker": "Plus sombre",
|
||||||
|
"cancel": "$t(common:buttons.cancel)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"browser": {
|
||||||
|
"heading": "Ouverture du lien",
|
||||||
|
"options": {
|
||||||
|
"internal": "Dans l'application",
|
||||||
|
"external": "Ouvrir dans le navigateur système",
|
||||||
|
"cancel": "$t(common:buttons.cancel)"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"staticEmoji": {
|
||||||
|
"heading": "Utiliser des émojis statiques",
|
||||||
|
"description": "Si vous rencontrez des plantages fréquents de l'application lors de l'affichage de la liste d'émojis, vous pouvez essayer d'utiliser des émojis statiques."
|
||||||
|
},
|
||||||
|
"feedback": {
|
||||||
|
"heading": "Demande de fonctionnalités"
|
||||||
|
},
|
||||||
|
"support": {
|
||||||
|
"heading": "Support de tooot"
|
||||||
|
},
|
||||||
|
"review": {
|
||||||
|
"heading": "Examiner le tooot"
|
||||||
|
},
|
||||||
|
"contact": {
|
||||||
|
"heading": "Contacter tooot"
|
||||||
|
},
|
||||||
|
"analytics": {
|
||||||
|
"heading": "Aidez-nous à nous améliorer",
|
||||||
|
"description": "Collecte uniquement de l'usage relatif des non-utilisateurs"
|
||||||
|
},
|
||||||
|
"version": "Version {{version}}",
|
||||||
|
"instanceVersion": "Version de Mastodon v{{version}}"
|
||||||
|
},
|
||||||
|
"switch": {
|
||||||
|
"existing": "Choisir parmi les utilisateurs connectés",
|
||||||
|
"new": "Connectez-vous à une instance"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"shared": {
|
||||||
|
"account": {
|
||||||
|
"actions": {
|
||||||
|
"accessibilityLabel": "Actions pour l'utilisateur {{user}}",
|
||||||
|
"accessibilityHint": "Vous pouvez masquer, bloquer, signaler ou partager cet utilisateur"
|
||||||
|
},
|
||||||
|
"followed_by": " vous suit",
|
||||||
|
"moved": "Utilisateur déplacé",
|
||||||
|
"created_at": "Inscrit le : {{date}}",
|
||||||
|
"summary": {
|
||||||
|
"statuses_count": "{{count}} pouets",
|
||||||
|
"following_count": "$t(shared.users.accounts.following)",
|
||||||
|
"followers_count": "$t(shared.users.accounts.followers)"
|
||||||
|
},
|
||||||
|
"toots": {
|
||||||
|
"default": "Pouets",
|
||||||
|
"all": "Pouets et réponses"
|
||||||
|
},
|
||||||
|
"suspended": "Compte suspendu par les modérateurs de votre serveur"
|
||||||
|
},
|
||||||
|
"attachments": {
|
||||||
|
"name": "<0 /><1>\"s media</1>"
|
||||||
|
},
|
||||||
|
"search": {
|
||||||
|
"header": {
|
||||||
|
"prefix": "Recherche en cours",
|
||||||
|
"placeholder": "pour..."
|
||||||
|
},
|
||||||
|
"empty": {
|
||||||
|
"general": "Entrez le mot clé pour rechercher <bold>$t(screenTabs:shared.search.sections.accounts)</bold><unk><bold>$t(screenTabs:shared.search.sections.hashtags)</bold> ou <bold>$t(screenTabs:shared.search.sections.statuses)</bold>",
|
||||||
|
"advanced": {
|
||||||
|
"header": "Recherche avancée",
|
||||||
|
"example": {
|
||||||
|
"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": "Utilisateur",
|
||||||
|
"hashtags": "Hashtag",
|
||||||
|
"statuses": "Pouet"
|
||||||
|
},
|
||||||
|
"notFound": "Impossible de trouver <bold>{{searchTerm}}</bold> lié à {{type}}"
|
||||||
|
},
|
||||||
|
"toot": {
|
||||||
|
"name": "Discussions"
|
||||||
|
},
|
||||||
|
"users": {
|
||||||
|
"accounts": {
|
||||||
|
"following": "Abonnements {{count}}",
|
||||||
|
"followers": "{{count}} abonnés"
|
||||||
|
},
|
||||||
|
"statuses": {
|
||||||
|
"reblogged_by": "{{count}} boosté",
|
||||||
|
"favourited_by": "{{count}} mis en favori"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"history": {
|
||||||
|
"name": "Modifier l'historique"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,15 +1,16 @@
|
||||||
import i18n from 'i18next'
|
import i18n from 'i18next'
|
||||||
import { initReactI18next } from 'react-i18next'
|
import { initReactI18next } from 'react-i18next'
|
||||||
|
|
||||||
import de from '@root/i18n/de/_all'
|
import de from '@root/i18n/de'
|
||||||
import en from '@root/i18n/en/_all'
|
import en from '@root/i18n/en'
|
||||||
import it from '@root/i18n/it/_all'
|
import fr from '@root/i18n/fr'
|
||||||
import ja from '@root/i18n/ja/_all'
|
import it from '@root/i18n/it'
|
||||||
import ko from '@root/i18n/ko/_all'
|
import ja from '@root/i18n/ja'
|
||||||
import pt_BR from '@root/i18n/pt_BR/_all'
|
import ko from '@root/i18n/ko'
|
||||||
import vi from '@root/i18n/vi/_all'
|
import pt_BR from '@root/i18n/pt_BR'
|
||||||
import zh_Hans from '@root/i18n/zh-Hans/_all'
|
import vi from '@root/i18n/vi'
|
||||||
import zh_Hant from '@root/i18n/zh-Hant/_all'
|
import zh_Hans from '@root/i18n/zh-Hans'
|
||||||
|
import zh_Hant from '@root/i18n/zh-Hant'
|
||||||
|
|
||||||
import '@formatjs/intl-getcanonicallocales/polyfill'
|
import '@formatjs/intl-getcanonicallocales/polyfill'
|
||||||
import '@formatjs/intl-locale/polyfill'
|
import '@formatjs/intl-locale/polyfill'
|
||||||
|
@ -17,6 +18,7 @@ import '@formatjs/intl-locale/polyfill'
|
||||||
import '@formatjs/intl-pluralrules/polyfill'
|
import '@formatjs/intl-pluralrules/polyfill'
|
||||||
import '@formatjs/intl-pluralrules/locale-data/de'
|
import '@formatjs/intl-pluralrules/locale-data/de'
|
||||||
import '@formatjs/intl-pluralrules/locale-data/en'
|
import '@formatjs/intl-pluralrules/locale-data/en'
|
||||||
|
import '@formatjs/intl-pluralrules/locale-data/fr'
|
||||||
import '@formatjs/intl-pluralrules/locale-data/it'
|
import '@formatjs/intl-pluralrules/locale-data/it'
|
||||||
import '@formatjs/intl-pluralrules/locale-data/ja'
|
import '@formatjs/intl-pluralrules/locale-data/ja'
|
||||||
import '@formatjs/intl-pluralrules/locale-data/ko'
|
import '@formatjs/intl-pluralrules/locale-data/ko'
|
||||||
|
@ -27,6 +29,7 @@ import '@formatjs/intl-pluralrules/locale-data/zh'
|
||||||
import '@formatjs/intl-numberformat/polyfill'
|
import '@formatjs/intl-numberformat/polyfill'
|
||||||
import '@formatjs/intl-numberformat/locale-data/de'
|
import '@formatjs/intl-numberformat/locale-data/de'
|
||||||
import '@formatjs/intl-numberformat/locale-data/en'
|
import '@formatjs/intl-numberformat/locale-data/en'
|
||||||
|
import '@formatjs/intl-numberformat/locale-data/fr'
|
||||||
import '@formatjs/intl-numberformat/locale-data/it'
|
import '@formatjs/intl-numberformat/locale-data/it'
|
||||||
import '@formatjs/intl-numberformat/locale-data/ja'
|
import '@formatjs/intl-numberformat/locale-data/ja'
|
||||||
import '@formatjs/intl-numberformat/locale-data/ko'
|
import '@formatjs/intl-numberformat/locale-data/ko'
|
||||||
|
@ -38,6 +41,7 @@ import '@formatjs/intl-numberformat/locale-data/zh-Hant'
|
||||||
import '@formatjs/intl-datetimeformat/polyfill'
|
import '@formatjs/intl-datetimeformat/polyfill'
|
||||||
import '@formatjs/intl-datetimeformat/locale-data/de'
|
import '@formatjs/intl-datetimeformat/locale-data/de'
|
||||||
import '@formatjs/intl-datetimeformat/locale-data/en'
|
import '@formatjs/intl-datetimeformat/locale-data/en'
|
||||||
|
import '@formatjs/intl-datetimeformat/locale-data/fr'
|
||||||
import '@formatjs/intl-datetimeformat/locale-data/it'
|
import '@formatjs/intl-datetimeformat/locale-data/it'
|
||||||
import '@formatjs/intl-datetimeformat/locale-data/ja'
|
import '@formatjs/intl-datetimeformat/locale-data/ja'
|
||||||
import '@formatjs/intl-datetimeformat/locale-data/ko'
|
import '@formatjs/intl-datetimeformat/locale-data/ko'
|
||||||
|
@ -50,6 +54,7 @@ import '@formatjs/intl-datetimeformat/add-all-tz'
|
||||||
import '@formatjs/intl-relativetimeformat/polyfill'
|
import '@formatjs/intl-relativetimeformat/polyfill'
|
||||||
import '@formatjs/intl-relativetimeformat/locale-data/de'
|
import '@formatjs/intl-relativetimeformat/locale-data/de'
|
||||||
import '@formatjs/intl-relativetimeformat/locale-data/en'
|
import '@formatjs/intl-relativetimeformat/locale-data/en'
|
||||||
|
import '@formatjs/intl-relativetimeformat/locale-data/fr'
|
||||||
import '@formatjs/intl-relativetimeformat/locale-data/it'
|
import '@formatjs/intl-relativetimeformat/locale-data/it'
|
||||||
import '@formatjs/intl-relativetimeformat/locale-data/ja'
|
import '@formatjs/intl-relativetimeformat/locale-data/ja'
|
||||||
import '@formatjs/intl-relativetimeformat/locale-data/ko'
|
import '@formatjs/intl-relativetimeformat/locale-data/ko'
|
||||||
|
@ -65,7 +70,7 @@ i18n.use(initReactI18next).init({
|
||||||
ns: ['common'],
|
ns: ['common'],
|
||||||
defaultNS: 'common',
|
defaultNS: 'common',
|
||||||
|
|
||||||
resources: { de, en, it, ja, ko, 'pt-BR': pt_BR, vi, 'zh-Hans': zh_Hans, 'zh-Hant': zh_Hant },
|
resources: { de, en, fr, it, ja, ko, 'pt-BR': pt_BR, vi, 'zh-Hans': zh_Hans, 'zh-Hant': zh_Hant },
|
||||||
returnEmptyString: false,
|
returnEmptyString: false,
|
||||||
|
|
||||||
saveMissing: true,
|
saveMissing: true,
|
||||||
|
|
|
@ -88,7 +88,7 @@
|
||||||
"content": {
|
"content": {
|
||||||
"expandHint": "Contenuto nascosto"
|
"expandHint": "Contenuto nascosto"
|
||||||
},
|
},
|
||||||
"filtered": "Filtrato",
|
"filtered": "",
|
||||||
"fullConversation": "Leggi la conversazione",
|
"fullConversation": "Leggi la conversazione",
|
||||||
"translate": {
|
"translate": {
|
||||||
"default": "Traduci",
|
"default": "Traduci",
|
||||||
|
|
|
@ -304,7 +304,8 @@
|
||||||
"toots": {
|
"toots": {
|
||||||
"default": "Toot",
|
"default": "Toot",
|
||||||
"all": "Toot e risposte"
|
"all": "Toot e risposte"
|
||||||
}
|
},
|
||||||
|
"suspended": ""
|
||||||
},
|
},
|
||||||
"attachments": {
|
"attachments": {
|
||||||
"name": "Media di <0 /><1>\"</1>"
|
"name": "Media di <0 /><1>\"</1>"
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"title": "メディアソースを選択",
|
"title": "メディアソースを選択",
|
||||||
"message": "",
|
"message": "メディアの EXIF データはアップロードされません",
|
||||||
"options": {
|
"options": {
|
||||||
"image": "写真をアップロード",
|
"image": "写真をアップロード",
|
||||||
"image_max": "写真をアップロード (最大{{max}}枚)",
|
"image_max": "写真をアップロード (最大{{max}}枚)",
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
"HTML": {
|
"HTML": {
|
||||||
"accessibilityHint": "タップして内容を展開または折りたたむ",
|
"accessibilityHint": "タップして内容を展開または折りたたむ",
|
||||||
"expanded": "{{hint}}{{moreLines}}",
|
"expanded": "{{hint}}{{moreLines}}",
|
||||||
"moreLines": "",
|
"moreLines": " ({{count}} 行以上)",
|
||||||
"defaultHint": "長いトゥート"
|
"defaultHint": "長いトゥート"
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -40,9 +40,9 @@
|
||||||
"accessibilityLabel": "このトゥートをブーストしますか?",
|
"accessibilityLabel": "このトゥートをブーストしますか?",
|
||||||
"function": "トゥートをブースト",
|
"function": "トゥートをブースト",
|
||||||
"options": {
|
"options": {
|
||||||
"title": "",
|
"title": "ブーストの可視性を選択",
|
||||||
"public": "",
|
"public": "公開ブースト",
|
||||||
"unlisted": ""
|
"unlisted": "未収載ブースト"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"favourited": {
|
"favourited": {
|
||||||
|
@ -88,7 +88,7 @@
|
||||||
"content": {
|
"content": {
|
||||||
"expandHint": "内容を非表示にする"
|
"expandHint": "内容を非表示にする"
|
||||||
},
|
},
|
||||||
"filtered": "フィルター済み",
|
"filtered": "フィルター: {{phrase}}.",
|
||||||
"fullConversation": "スレッドを読む",
|
"fullConversation": "スレッドを読む",
|
||||||
"translate": {
|
"translate": {
|
||||||
"default": "翻訳",
|
"default": "翻訳",
|
||||||
|
|
|
@ -2,10 +2,10 @@
|
||||||
"screenshot": {
|
"screenshot": {
|
||||||
"title": "プライバシー保護",
|
"title": "プライバシー保護",
|
||||||
"message": "ユーザー名やアバターなど、他のユーザーを特定する情報は公開しないでください。",
|
"message": "ユーザー名やアバターなど、他のユーザーを特定する情報は公開しないでください。",
|
||||||
"button": "確定"
|
"button": "確認"
|
||||||
},
|
},
|
||||||
"localCorrupt": {
|
"localCorrupt": {
|
||||||
"message": "ログイン期限が切れました。もう一度ログインしてください。"
|
"message": "ログインの有効期限が切れました。もう一度ログインしてください。"
|
||||||
},
|
},
|
||||||
"pushError": {
|
"pushError": {
|
||||||
"message": "プッシュサービスのエラー",
|
"message": "プッシュサービスのエラー",
|
||||||
|
|
|
@ -304,7 +304,8 @@
|
||||||
"toots": {
|
"toots": {
|
||||||
"default": "投稿",
|
"default": "投稿",
|
||||||
"all": "投稿と返信"
|
"all": "投稿と返信"
|
||||||
}
|
},
|
||||||
|
"suspended": "あなたのサーバーのモデレーターによって、アカウントは停止されました"
|
||||||
},
|
},
|
||||||
"attachments": {
|
"attachments": {
|
||||||
"name": "<0 /><1>\" のメディア</1>"
|
"name": "<0 /><1>\" のメディア</1>"
|
||||||
|
|
|
@ -88,7 +88,7 @@
|
||||||
"content": {
|
"content": {
|
||||||
"expandHint": "숨겨진 콘텐츠"
|
"expandHint": "숨겨진 콘텐츠"
|
||||||
},
|
},
|
||||||
"filtered": "필터됨",
|
"filtered": "",
|
||||||
"fullConversation": "대화 보기",
|
"fullConversation": "대화 보기",
|
||||||
"translate": {
|
"translate": {
|
||||||
"default": "번역",
|
"default": "번역",
|
||||||
|
|
|
@ -304,7 +304,8 @@
|
||||||
"toots": {
|
"toots": {
|
||||||
"default": "툿",
|
"default": "툿",
|
||||||
"all": "툿과 답장"
|
"all": "툿과 답장"
|
||||||
}
|
},
|
||||||
|
"suspended": ""
|
||||||
},
|
},
|
||||||
"attachments": {
|
"attachments": {
|
||||||
"name": "<0 /><1>\"의 미디어</1>"
|
"name": "<0 /><1>\"의 미디어</1>"
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
const LOCALES = {
|
const LOCALES = {
|
||||||
de: 'Deutsch',
|
de: 'Deutsch',
|
||||||
en: 'English',
|
en: 'English',
|
||||||
|
fr: 'Français',
|
||||||
it: 'Italiano',
|
it: 'Italiano',
|
||||||
ja: '日本語',
|
ja: '日本語',
|
||||||
ko: '한국어',
|
ko: '한국어',
|
||||||
|
|
|
@ -0,0 +1,22 @@
|
||||||
|
{
|
||||||
|
"buttons": {
|
||||||
|
"OK": "Ok",
|
||||||
|
"apply": "Zastosuj",
|
||||||
|
"cancel": "Anuluj"
|
||||||
|
},
|
||||||
|
"customEmoji": {
|
||||||
|
"accessibilityLabel": "Własne emoji {{emoji}}"
|
||||||
|
},
|
||||||
|
"message": {
|
||||||
|
"success": {
|
||||||
|
"message": "{{function}} pomyślnie"
|
||||||
|
},
|
||||||
|
"warning": {
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"error": {
|
||||||
|
"message": "{{function}} nie powiodło się, spróbuj ponownie"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"separator": ", "
|
||||||
|
}
|
|
@ -0,0 +1,76 @@
|
||||||
|
{
|
||||||
|
"accessibilityHint": "",
|
||||||
|
"account": {
|
||||||
|
"title": "",
|
||||||
|
"mute": {
|
||||||
|
"action_false": "",
|
||||||
|
"action_true": ""
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"action_false": "",
|
||||||
|
"action_true": ""
|
||||||
|
},
|
||||||
|
"reports": {
|
||||||
|
"action": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"copy": {
|
||||||
|
"action": "",
|
||||||
|
"succeed": ""
|
||||||
|
},
|
||||||
|
"instance": {
|
||||||
|
"title": "",
|
||||||
|
"block": {
|
||||||
|
"action": "",
|
||||||
|
"alert": {
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"buttons": {
|
||||||
|
"confirm": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"share": {
|
||||||
|
"status": {
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"account": {
|
||||||
|
"action": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"status": {
|
||||||
|
"title": "",
|
||||||
|
"edit": {
|
||||||
|
"action": ""
|
||||||
|
},
|
||||||
|
"delete": {
|
||||||
|
"action": "",
|
||||||
|
"alert": {
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"buttons": {
|
||||||
|
"confirm": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"deleteEdit": {
|
||||||
|
"action": "",
|
||||||
|
"alert": {
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"buttons": {
|
||||||
|
"confirm": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"mute": {
|
||||||
|
"action_false": "",
|
||||||
|
"action_true": ""
|
||||||
|
},
|
||||||
|
"pin": {
|
||||||
|
"action_false": "",
|
||||||
|
"action_true": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1 @@
|
||||||
|
{}
|
|
@ -0,0 +1,30 @@
|
||||||
|
{
|
||||||
|
"server": {
|
||||||
|
"textInput": {
|
||||||
|
"placeholder": ""
|
||||||
|
},
|
||||||
|
"button": "",
|
||||||
|
"information": {
|
||||||
|
"name": "",
|
||||||
|
"accounts": "",
|
||||||
|
"statuses": "",
|
||||||
|
"domains": ""
|
||||||
|
},
|
||||||
|
"disclaimer": {
|
||||||
|
"base": ""
|
||||||
|
},
|
||||||
|
"terms": {
|
||||||
|
"base": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"update": {
|
||||||
|
"alert": {
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"buttons": {
|
||||||
|
"cancel": "",
|
||||||
|
"continue": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,10 @@
|
||||||
|
{
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"options": {
|
||||||
|
"image": "",
|
||||||
|
"image_max": "",
|
||||||
|
"video": "",
|
||||||
|
"video_max": ""
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,8 @@
|
||||||
|
{
|
||||||
|
"HTML": {
|
||||||
|
"accessibilityHint": "",
|
||||||
|
"expanded": "",
|
||||||
|
"moreLines": "",
|
||||||
|
"defaultHint": ""
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
{
|
||||||
|
"follow": {
|
||||||
|
"function": ""
|
||||||
|
},
|
||||||
|
"block": {
|
||||||
|
"function": ""
|
||||||
|
},
|
||||||
|
"button": {
|
||||||
|
"error": "",
|
||||||
|
"blocked_by": "",
|
||||||
|
"blocking": "",
|
||||||
|
"following": "",
|
||||||
|
"requested": "",
|
||||||
|
"default": ""
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,152 @@
|
||||||
|
{
|
||||||
|
"empty": {
|
||||||
|
"error": {
|
||||||
|
"message": "Błąd wczytania",
|
||||||
|
"button": "Spróbuj ponownie"
|
||||||
|
},
|
||||||
|
"success": {
|
||||||
|
"message": "Oś czasu pusta"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"end": {
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"lookback": {
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"refresh": {
|
||||||
|
"fetchPreviousPage": "",
|
||||||
|
"refetch": ""
|
||||||
|
},
|
||||||
|
"shared": {
|
||||||
|
"actioned": {
|
||||||
|
"pinned": "",
|
||||||
|
"favourite": "",
|
||||||
|
"status": "",
|
||||||
|
"follow": "",
|
||||||
|
"follow_request": "",
|
||||||
|
"poll": "",
|
||||||
|
"reblog": {
|
||||||
|
"default": "",
|
||||||
|
"notification": ""
|
||||||
|
},
|
||||||
|
"update": ""
|
||||||
|
},
|
||||||
|
"actions": {
|
||||||
|
"reply": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
},
|
||||||
|
"reblogged": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"function": "",
|
||||||
|
"options": {
|
||||||
|
"title": "",
|
||||||
|
"public": "",
|
||||||
|
"unlisted": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"favourited": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"function": ""
|
||||||
|
},
|
||||||
|
"bookmarked": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"function": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"actionsUsers": {
|
||||||
|
"reblogged_by": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": "",
|
||||||
|
"text": ""
|
||||||
|
},
|
||||||
|
"favourited_by": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": "",
|
||||||
|
"text": ""
|
||||||
|
},
|
||||||
|
"history": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": "",
|
||||||
|
"text_one": "",
|
||||||
|
"text_other": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"attachment": {
|
||||||
|
"sensitive": {
|
||||||
|
"button": ""
|
||||||
|
},
|
||||||
|
"unsupported": {
|
||||||
|
"text": "",
|
||||||
|
"button": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"avatar": {
|
||||||
|
"accessibilityLabel": "",
|
||||||
|
"accessibilityHint": ""
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"expandHint": ""
|
||||||
|
},
|
||||||
|
"filtered": "",
|
||||||
|
"fullConversation": "",
|
||||||
|
"translate": {
|
||||||
|
"default": "",
|
||||||
|
"succeed": "",
|
||||||
|
"failed": "",
|
||||||
|
"source_not_supported": "",
|
||||||
|
"target_not_supported": ""
|
||||||
|
},
|
||||||
|
"header": {
|
||||||
|
"shared": {
|
||||||
|
"account": {
|
||||||
|
"name": {
|
||||||
|
"accessibilityHint": ""
|
||||||
|
},
|
||||||
|
"account": {
|
||||||
|
"accessibilityHint": ""
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"application": "",
|
||||||
|
"edited": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
},
|
||||||
|
"muted": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
},
|
||||||
|
"visibility": {
|
||||||
|
"direct": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
},
|
||||||
|
"private": {
|
||||||
|
"accessibilityLabel": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"conversation": {
|
||||||
|
"withAccounts": "",
|
||||||
|
"delete": {
|
||||||
|
"function": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"poll": {
|
||||||
|
"meta": {
|
||||||
|
"button": {
|
||||||
|
"vote": "",
|
||||||
|
"refresh": ""
|
||||||
|
},
|
||||||
|
"count": {
|
||||||
|
"voters_one": "",
|
||||||
|
"voters_other": "",
|
||||||
|
"votes_one": "",
|
||||||
|
"votes_other": ""
|
||||||
|
},
|
||||||
|
"expiration": {
|
||||||
|
"expired": "",
|
||||||
|
"until": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
{
|
||||||
|
"screenshot": {
|
||||||
|
"title": "",
|
||||||
|
"message": "",
|
||||||
|
"button": ""
|
||||||
|
},
|
||||||
|
"localCorrupt": {
|
||||||
|
"message": ""
|
||||||
|
},
|
||||||
|
"pushError": {
|
||||||
|
"message": "",
|
||||||
|
"description": ""
|
||||||
|
},
|
||||||
|
"shareError": {
|
||||||
|
"imageNotSupported": "",
|
||||||
|
"videoNotSupported": ""
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,6 @@
|
||||||
|
{
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"select_account": ""
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
{
|
||||||
|
"content": {
|
||||||
|
"altText": {
|
||||||
|
"heading": ""
|
||||||
|
},
|
||||||
|
"notificationsFilter": {
|
||||||
|
"heading": "",
|
||||||
|
"content": {
|
||||||
|
"follow": "",
|
||||||
|
"follow_request": "",
|
||||||
|
"favourite": "",
|
||||||
|
"reblog": "",
|
||||||
|
"mention": "",
|
||||||
|
"poll": "",
|
||||||
|
"status": "",
|
||||||
|
"update": ""
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue