Merge pull request #1843 from ecency/development

3.0.13
This commit is contained in:
Feruz M 2021-01-29 20:58:25 +02:00 committed by GitHub
commit cff1e209bf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
187 changed files with 4389 additions and 1737 deletions

View File

@ -2,5 +2,12 @@
"eslint.validate": [ "eslint.validate": [
"javascript", "javascript",
"javascriptreact" "javascriptreact"
] ],
"java.configuration.updateBuildConfiguration": "interactive",
"files.exclude": {
"**/.classpath": true,
"**/.project": true,
"**/.settings": true,
"**/.factorypath": true
}
} }

View File

@ -143,7 +143,7 @@ android {
minSdkVersion rootProject.ext.minSdkVersion minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion
versionCode versionMajor * 10000 + versionMinor * 100 + versionPatch versionCode versionMajor * 10000 + versionMinor * 100 + versionPatch
versionName "3.0.12" versionName "3.0.13"
resValue "string", "build_config_package", "app.esteem.mobile.android" resValue "string", "build_config_package", "app.esteem.mobile.android"
multiDexEnabled true multiDexEnabled true
// react-native-image-crop-picker // react-native-image-crop-picker
@ -194,7 +194,6 @@ android {
output.versionCodeOverride = output.versionCodeOverride =
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
} }
} }
} }
@ -208,7 +207,7 @@ android {
dependencies { dependencies {
implementation fileTree(dir: "libs", include: ["*.jar"]) implementation fileTree(dir: "libs", include: ["*.jar"])
implementation "com.facebook.react:react-native:+" // From node_modules implementation 'com.facebook.react:react-native:+' // From node_modules
implementation 'androidx.appcompat:appcompat:1.1.0-rc01' implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02' implementation 'androidx.swiperefreshlayout:swiperefreshlayout:1.1.0-alpha02'
implementation 'com.android.support:multidex:2.0.1' implementation 'com.android.support:multidex:2.0.1'
@ -232,4 +231,4 @@ task copyDownloadableDepsToLibs(type: Copy) {
} }
apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project) apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)
apply from: "../../node_modules/react-native-vector-icons/fonts.gradle" apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"

View File

@ -27,8 +27,7 @@ buildscript {
jcenter() jcenter()
} }
dependencies { dependencies {
classpath('com.android.tools.build:gradle:3.5.2') classpath('com.android.tools.build:gradle:4.0.1')
classpath 'com.google.gms:google-services:4.3.3' classpath 'com.google.gms:google-services:4.3.3'
classpath 'com.bugsnag:bugsnag-android-gradle-plugin:4.+' classpath 'com.bugsnag:bugsnag-android-gradle-plugin:4.+'
// NOTE: Do not place your application dependencies here; they belong // NOTE: Do not place your application dependencies here; they belong

View File

@ -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-5.5-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-6.1.1-all.zip
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists zipStorePath=wrapper/dists

View File

@ -15,11 +15,11 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>3.0.12</string> <string>3.0.13</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>2562</string> <string>2563</string>
<key>LSRequiresIPhoneOS</key> <key>LSRequiresIPhoneOS</key>
<true /> <true />
<key>NSAppTransportSecurity</key> <key>NSAppTransportSecurity</key>

View File

@ -15,10 +15,10 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>BNDL</string> <string>BNDL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>3.0.12</string> <string>3.0.13</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>2562</string> <string>2563</string>
</dict> </dict>
</plist> </plist>

View File

@ -454,6 +454,7 @@
53FB8F8B28F502EE3B240FD6 /* [CP] Copy Pods Resources */, 53FB8F8B28F502EE3B240FD6 /* [CP] Copy Pods Resources */,
4436D72554B718932B21C9FD /* [CP-User] [RNFB] Core Configuration */, 4436D72554B718932B21C9FD /* [CP-User] [RNFB] Core Configuration */,
58C9F50524CE017800A026DD /* Embed App Extensions */, 58C9F50524CE017800A026DD /* Embed App Extensions */,
05BAAAEE25BF43F80072EA01 /* ShellScript */,
); );
buildRules = ( buildRules = (
); );
@ -692,6 +693,23 @@
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n"; shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh\n";
}; };
05BAAAEE25BF43F80072EA01 /* ShellScript */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
);
outputFileListPaths = (
);
outputPaths = (
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "# Type a script or drag a script file from your workspace to insert its path.\n";
};
180EA60986CD4BBD6C799872 /* [CP] Check Pods Manifest.lock */ = { 180EA60986CD4BBD6C799872 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647; buildActionMask = 2147483647;
@ -752,7 +770,7 @@
); );
inputPaths = ( inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Ecency/Pods-Ecency-resources.sh", "${PODS_ROOT}/Target Support Files/Pods-Ecency/Pods-Ecency-resources.sh",
"${PODS_CONFIGURATION_BUILD_DIR}/QBImagePickerController/QBImagePicker.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/RNImageCropPicker/QBImagePicker.bundle",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/EvilIcons.ttf",
@ -769,7 +787,7 @@
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Octicons.ttf",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/SimpleLineIcons.ttf",
"${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Zocial.ttf",
"${PODS_ROOT}/RSKImageCropper/RSKImageCropper/RSKImageCropperStrings.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle",
); );
name = "[CP] Copy Pods Resources"; name = "[CP] Copy Pods Resources";
outputPaths = ( outputPaths = (
@ -790,7 +808,7 @@
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Octicons.ttf",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/SimpleLineIcons.ttf",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Zocial.ttf",
"${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RSKImageCropperStrings.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle",
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
@ -809,7 +827,7 @@
); );
runOnlyForDeploymentPostprocessing = 0; runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh; shellPath = /bin/sh;
shellScript = "export NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh"; shellScript = "export EXTRA_PACKAGER_ARGS=\"--sourcemap-output $CONFIGURATION_BUILD_DIR/$UNLOCALIZED_RESOURCES_FOLDER_PATH/main.jsbundle.map\"\nexport NODE_BINARY=node\n../node_modules/react-native/scripts/react-native-xcode.sh";
}; };
777B3928177A0EE7EA1ABCF9 /* [CP] Check Pods Manifest.lock */ = { 777B3928177A0EE7EA1ABCF9 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase; isa = PBXShellScriptBuildPhase;
@ -1101,10 +1119,10 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES; CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Ecency/EcencyDebug.entitlements; CODE_SIGN_ENTITLEMENTS = Ecency/EcencyDebug.entitlements;
CODE_SIGN_IDENTITY = "iPhone Developer"; CODE_SIGN_IDENTITY = "iPhone Distribution";
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
CODE_SIGN_STYLE = Manual; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 2562; CURRENT_PROJECT_VERSION = 2792;
DEAD_CODE_STRIPPING = NO; DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = 75B6RXTKGT; DEVELOPMENT_TEAM = 75B6RXTKGT;
HEADER_SEARCH_PATHS = ( HEADER_SEARCH_PATHS = (
@ -1180,7 +1198,7 @@
CODE_SIGN_ENTITLEMENTS = Ecency/Ecency.entitlements; CODE_SIGN_ENTITLEMENTS = Ecency/Ecency.entitlements;
CODE_SIGN_IDENTITY = "iPhone Distribution"; CODE_SIGN_IDENTITY = "iPhone Distribution";
CODE_SIGN_STYLE = Manual; CODE_SIGN_STYLE = Manual;
CURRENT_PROJECT_VERSION = 2562; CURRENT_PROJECT_VERSION = 2792;
DEAD_CODE_STRIPPING = NO; DEAD_CODE_STRIPPING = NO;
DEVELOPMENT_TEAM = 75B6RXTKGT; DEVELOPMENT_TEAM = 75B6RXTKGT;
HEADER_SEARCH_PATHS = ( HEADER_SEARCH_PATHS = (

View File

@ -19,7 +19,7 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>APPL</string> <string>APPL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>3.0.12</string> <string>3.0.13</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleURLTypes</key> <key>CFBundleURLTypes</key>

View File

@ -15,10 +15,10 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>BNDL</string> <string>BNDL</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>3.0.12</string> <string>3.0.13</string>
<key>CFBundleSignature</key> <key>CFBundleSignature</key>
<string>????</string> <string>????</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>2562</string> <string>2563</string>
</dict> </dict>
</plist> </plist>

View File

@ -145,7 +145,6 @@ PODS:
- nanopb/encode (1.30905.0) - nanopb/encode (1.30905.0)
- PromisesObjC (1.2.9) - PromisesObjC (1.2.9)
- Protobuf (3.12.0) - Protobuf (3.12.0)
- QBImagePickerController (3.4.0)
- RCTRequired (0.61.5) - RCTRequired (0.61.5)
- RCTTypeSafety (0.61.5): - RCTTypeSafety (0.61.5):
- FBLazyVector (= 0.61.5) - FBLazyVector (= 0.61.5)
@ -324,6 +323,10 @@ PODS:
- React - React
- react-native-receive-sharing-intent (1.0.4): - react-native-receive-sharing-intent (1.0.4):
- React - React
- react-native-restart (0.0.17):
- React
- react-native-safe-area-context (3.1.9):
- React-Core
- react-native-splash-screen (3.2.0): - react-native-splash-screen (3.2.0):
- React - React
- react-native-version-number (0.3.6): - react-native-version-number (0.3.6):
@ -398,11 +401,15 @@ PODS:
- React - React
- RNIap (3.4.15): - RNIap (3.4.15):
- React - React
- RNImageCropPicker (0.26.2): - RNImageCropPicker (0.35.2):
- QBImagePickerController
- React-Core - React-Core
- React-RCTImage - React-RCTImage
- RSKImageCropper - RNImageCropPicker/QBImagePickerController (= 0.35.2)
- TOCropViewController
- RNImageCropPicker/QBImagePickerController (0.35.2):
- React-Core
- React-RCTImage
- TOCropViewController
- RNReanimated (1.13.2): - RNReanimated (1.13.2):
- React-Core - React-Core
- RNScreens (2.10.1): - RNScreens (2.10.1):
@ -411,13 +418,13 @@ PODS:
- React - React
- RNVectorIcons (6.7.0): - RNVectorIcons (6.7.0):
- React - React
- RSKImageCropper (2.2.3)
- SDWebImage (5.8.4): - SDWebImage (5.8.4):
- SDWebImage/Core (= 5.8.4) - SDWebImage/Core (= 5.8.4)
- SDWebImage/Core (5.8.4) - SDWebImage/Core (5.8.4)
- SDWebImageWebPCoder (0.6.1): - SDWebImageWebPCoder (0.6.1):
- libwebp (~> 1.0) - libwebp (~> 1.0)
- SDWebImage/Core (~> 5.7) - SDWebImage/Core (~> 5.7)
- TOCropViewController (2.6.0)
- toolbar-android (0.1.0-rc.2): - toolbar-android (0.1.0-rc.2):
- React - React
- Yoga (1.14.0) - Yoga (1.14.0)
@ -452,6 +459,8 @@ DEPENDENCIES:
- react-native-matomo-sdk (from `../node_modules/react-native-matomo-sdk`) - react-native-matomo-sdk (from `../node_modules/react-native-matomo-sdk`)
- "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)" - "react-native-netinfo (from `../node_modules/@react-native-community/netinfo`)"
- react-native-receive-sharing-intent (from `../node_modules/react-native-receive-sharing-intent`) - react-native-receive-sharing-intent (from `../node_modules/react-native-receive-sharing-intent`)
- react-native-restart (from `../node_modules/react-native-restart`)
- react-native-safe-area-context (from `../node_modules/react-native-safe-area-context`)
- react-native-splash-screen (from `../node_modules/react-native-splash-screen`) - react-native-splash-screen (from `../node_modules/react-native-splash-screen`)
- react-native-version-number (from `../node_modules/react-native-version-number`) - react-native-version-number (from `../node_modules/react-native-version-number`)
- react-native-webview (from `../node_modules/react-native-webview`) - react-native-webview (from `../node_modules/react-native-webview`)
@ -506,10 +515,9 @@ SPEC REPOS:
- nanopb - nanopb
- PromisesObjC - PromisesObjC
- Protobuf - Protobuf
- QBImagePickerController
- RSKImageCropper
- SDWebImage - SDWebImage
- SDWebImageWebPCoder - SDWebImageWebPCoder
- TOCropViewController
EXTERNAL SOURCES: EXTERNAL SOURCES:
appcenter-analytics: appcenter-analytics:
@ -566,6 +574,10 @@ EXTERNAL SOURCES:
:path: "../node_modules/@react-native-community/netinfo" :path: "../node_modules/@react-native-community/netinfo"
react-native-receive-sharing-intent: react-native-receive-sharing-intent:
:path: "../node_modules/react-native-receive-sharing-intent" :path: "../node_modules/react-native-receive-sharing-intent"
react-native-restart:
:path: "../node_modules/react-native-restart"
react-native-safe-area-context:
:path: "../node_modules/react-native-safe-area-context"
react-native-splash-screen: react-native-splash-screen:
:path: "../node_modules/react-native-splash-screen" :path: "../node_modules/react-native-splash-screen"
react-native-version-number: react-native-version-number:
@ -661,7 +673,6 @@ SPEC CHECKSUMS:
nanopb: c43f40fadfe79e8b8db116583945847910cbabc9 nanopb: c43f40fadfe79e8b8db116583945847910cbabc9
PromisesObjC: b48e0338dbbac2207e611750777895f7a5811b75 PromisesObjC: b48e0338dbbac2207e611750777895f7a5811b75
Protobuf: 2793fcd0622a00b546c60e7cbbcc493e043e9bb9 Protobuf: 2793fcd0622a00b546c60e7cbbcc493e043e9bb9
QBImagePickerController: d54cf93db6decf26baf6ed3472f336ef35cae022
RCTRequired: b153add4da6e7dbc44aebf93f3cf4fcae392ddf1 RCTRequired: b153add4da6e7dbc44aebf93f3cf4fcae392ddf1
RCTTypeSafety: 9aa1b91d7f9310fc6eadc3cf95126ffe818af320 RCTTypeSafety: 9aa1b91d7f9310fc6eadc3cf95126ffe818af320
React: b6a59ef847b2b40bb6e0180a97d0ca716969ac78 React: b6a59ef847b2b40bb6e0180a97d0ca716969ac78
@ -677,6 +688,8 @@ SPEC CHECKSUMS:
react-native-matomo-sdk: 025c54f92e1e26a4d0acee7c3f28cb0fc7e4729c react-native-matomo-sdk: 025c54f92e1e26a4d0acee7c3f28cb0fc7e4729c
react-native-netinfo: a53b00d949b6456913aaf507d9dba90c4008c611 react-native-netinfo: a53b00d949b6456913aaf507d9dba90c4008c611
react-native-receive-sharing-intent: feba0a332a07977549a85aa58b496eb44368366a react-native-receive-sharing-intent: feba0a332a07977549a85aa58b496eb44368366a
react-native-restart: d19a0f8d053d065fe64cd2baebb6487111c77149
react-native-safe-area-context: b6e0e284002381d2ff29fa4fff42b4d8282e3c94
react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865 react-native-splash-screen: 200d11d188e2e78cea3ad319964f6142b6384865
react-native-version-number: b415bbec6a13f2df62bf978e85bc0d699462f37f react-native-version-number: b415bbec6a13f2df62bf978e85bc0d699462f37f
react-native-webview: 160ac8d6bb974e2933f2de6bb7464a8e934ff31d react-native-webview: 160ac8d6bb974e2933f2de6bb7464a8e934ff31d
@ -701,17 +714,17 @@ SPEC CHECKSUMS:
RNFBMessaging: 3bb7dcf398789ce359a9f6b97b83472a3090f65a RNFBMessaging: 3bb7dcf398789ce359a9f6b97b83472a3090f65a
RNGestureHandler: b6b359bb800ae399a9c8b27032bdbf7c18f08a08 RNGestureHandler: b6b359bb800ae399a9c8b27032bdbf7c18f08a08
RNIap: b4c77c8bc4501203f4b743126a05da23f10f40b4 RNIap: b4c77c8bc4501203f4b743126a05da23f10f40b4
RNImageCropPicker: 9d1a7eea4f8368fc479cbd2bf26459bd3c74d9aa RNImageCropPicker: 9e0bf18cf4184a846fed55747c8e622208b39947
RNReanimated: e03f7425cb7a38dcf1b644d680d1bfc91c3337ad RNReanimated: e03f7425cb7a38dcf1b644d680d1bfc91c3337ad
RNScreens: b748efec66e095134c7166ca333b628cd7e6f3e2 RNScreens: b748efec66e095134c7166ca333b628cd7e6f3e2
RNSVG: 8ba35cbeb385a52fd960fd28db9d7d18b4c2974f RNSVG: 8ba35cbeb385a52fd960fd28db9d7d18b4c2974f
RNVectorIcons: 368d6d8b8301224e5ffb6254191f4f8876c2be0d RNVectorIcons: 368d6d8b8301224e5ffb6254191f4f8876c2be0d
RSKImageCropper: a446db0e8444a036b34f3c43db01b2373baa4b2a
SDWebImage: cf6922231e95550934da2ada0f20f2becf2ceba9 SDWebImage: cf6922231e95550934da2ada0f20f2becf2ceba9
SDWebImageWebPCoder: d0dac55073088d24b2ac1b191a71a8f8d0adac21 SDWebImageWebPCoder: d0dac55073088d24b2ac1b191a71a8f8d0adac21
TOCropViewController: 3105367e808b7d3d886a74ff59bf4804e7d3ab38
toolbar-android: 85f3ef4d691469f2d304e7dee4bca013aa1ba1ff toolbar-android: 85f3ef4d691469f2d304e7dee4bca013aa1ba1ff
Yoga: f2a7cd4280bfe2cca5a7aed98ba0eb3d1310f18b Yoga: f2a7cd4280bfe2cca5a7aed98ba0eb3d1310f18b
PODFILE CHECKSUM: 1f30c7da5061dbc47185442a6ab4a3c95ac48c04 PODFILE CHECKSUM: 1f30c7da5061dbc47185442a6ab4a3c95ac48c04
COCOAPODS: 1.10.0 COCOAPODS: 1.9.3

View File

@ -17,9 +17,9 @@
<key>CFBundlePackageType</key> <key>CFBundlePackageType</key>
<string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string> <string>$(PRODUCT_BUNDLE_PACKAGE_TYPE)</string>
<key>CFBundleShortVersionString</key> <key>CFBundleShortVersionString</key>
<string>3.0.12</string> <string>3.0.13</string>
<key>CFBundleVersion</key> <key>CFBundleVersion</key>
<string>2562</string> <string>2563</string>
<key>NSExtension</key> <key>NSExtension</key>
<dict> <dict>
<key>NSExtensionAttributes</key> <key>NSExtensionAttributes</key>

View File

@ -1,6 +1,6 @@
{ {
"name": "ecency", "name": "ecency",
"version": "3.0.12", "version": "3.0.13",
"displayName": "Ecency", "displayName": "Ecency",
"private": true, "private": true,
"rnpm": { "rnpm": {
@ -27,13 +27,14 @@
}, },
"dependencies": { "dependencies": {
"@babel/runtime": "^7.5.5", "@babel/runtime": "^7.5.5",
"@ecency/render-helper": "^2.0.11", "@ecency/render-helper": "^2.0.15",
"@esteemapp/dhive": "0.15.0", "@esteemapp/dhive": "0.15.0",
"@esteemapp/react-native-autocomplete-input": "^4.2.1", "@esteemapp/react-native-autocomplete-input": "^4.2.1",
"@esteemapp/react-native-modal-popover": "^0.0.15", "@esteemapp/react-native-modal-popover": "^0.0.15",
"@esteemapp/react-native-multi-slider": "^1.1.0", "@esteemapp/react-native-multi-slider": "^1.1.0",
"@esteemapp/react-native-render-html": "^4.1.5", "@esteemapp/react-native-render-html": "^4.1.5",
"@esteemapp/react-native-slider": "^0.12.0", "@esteemapp/react-native-slider": "^0.12.0",
"@gorhom/bottom-sheet": "^2",
"@hiveio/dhive": "^0.14.12", "@hiveio/dhive": "^0.14.12",
"@react-native-community/async-storage": "^1.11.0", "@react-native-community/async-storage": "^1.11.0",
"@react-native-community/cameraroll": "^1.3.0", "@react-native-community/cameraroll": "^1.3.0",
@ -50,7 +51,7 @@
"appcenter-crashes": "^3.1.0", "appcenter-crashes": "^3.1.0",
"axios": "^0.18.0", "axios": "^0.18.0",
"buffer": "^5.4.3", "buffer": "^5.4.3",
"bugsnag-react-native": "^2.23.4", "bugsnag-react-native": "^2.23.10",
"core-js": "3.6.4", "core-js": "3.6.4",
"crypto-js": "^3.1.9-1", "crypto-js": "^3.1.9-1",
"currency-symbol-map": "^4.0.4", "currency-symbol-map": "^4.0.4",
@ -73,8 +74,10 @@
"react-native-extended-stylesheet": "^0.10.0", "react-native-extended-stylesheet": "^0.10.0",
"react-native-fast-image": "^8.3.2", "react-native-fast-image": "^8.3.2",
"react-native-gesture-handler": "^1.4.1", "react-native-gesture-handler": "^1.4.1",
"react-native-highlight-words": "^1.0.1",
"react-native-iap": "3.4.15", "react-native-iap": "3.4.15",
"react-native-image-crop-picker": "^0.26.1", "react-native-image-crop-picker": "^0.35.2",
"react-native-image-size": "^1.1.3",
"react-native-image-zoom-viewer": "^2.2.27", "react-native-image-zoom-viewer": "^2.2.27",
"react-native-keyboard-aware-scroll-view": "^0.9.1", "react-native-keyboard-aware-scroll-view": "^0.9.1",
"react-native-linear-gradient": "^2.4.2", "react-native-linear-gradient": "^2.4.2",
@ -87,6 +90,8 @@
"react-native-qrcode-svg": "^6.0.3", "react-native-qrcode-svg": "^6.0.3",
"react-native-reanimated": "^1.3.0", "react-native-reanimated": "^1.3.0",
"react-native-receive-sharing-intent": "ecency/react-native-receive-sharing-intent", "react-native-receive-sharing-intent": "ecency/react-native-receive-sharing-intent",
"react-native-restart": "0.0.17",
"react-native-safe-area-context": "^3.1.9",
"react-native-screens": "^2.9.0", "react-native-screens": "^2.9.0",
"react-native-scrollable-tab-view": "ecency/react-native-scrollable-tab-view", "react-native-scrollable-tab-view": "ecency/react-native-scrollable-tab-view",
"react-native-snap-carousel": "^3.8.0", "react-native-snap-carousel": "^3.8.0",

File diff suppressed because one or more lines are too long

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.8 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 8.3 KiB

View File

@ -0,0 +1,94 @@
import React, { useEffect, useRef, useState } from 'react';
import { useSelector, useDispatch } from 'react-redux';
import { navigate } from '../../../navigation/service';
import { updateCurrentAccount } from '../../../redux/actions/accountAction';
import { isRenderRequired } from '../../../redux/actions/applicationActions';
import { getUserDataWithUsername } from '../../../realm/realm';
import { switchAccount } from '../../../providers/hive/auth';
import AccountsBottomSheet from '../view/accountsBottomSheetView';
import { toggleAccountsBottomSheet } from '../../../redux/actions/uiAction';
const AccountsBottomSheetContainer = ({ navigation }) => {
const dispatch = useDispatch();
const accountsBottomSheetViewRef = useRef();
const isVisibleAccountsBottomSheet = useSelector(
(state) => state.ui.isVisibleAccountsBottomSheet,
);
const currentAccount = useSelector((state) => state.account.currentAccount);
const accounts = useSelector((state) => state.account.otherAccounts);
useEffect(() => {
if (isVisibleAccountsBottomSheet) {
accountsBottomSheetViewRef.current?.showAccountsBottomSheet();
}
}, [isVisibleAccountsBottomSheet]);
const _navigateToRoute = (routeName = null) => {
if (routeName) {
accountsBottomSheetViewRef.current?.closeAccountsBottomSheet();
navigate({ routeName });
}
};
const _switchAccount = async (account = {}) => {
if (account.username !== currentAccount.name) {
_handleSwitch(account);
} else {
accountsBottomSheetViewRef.current?.closeAccountsBottomSheet();
}
};
const _handleSwitch = async (switchingAccount = {}) => {
// Call this dispatch because when we make request, onDismiss is not working
// =========================================================================
accountsBottomSheetViewRef.current?.closeAccountsBottomSheet();
dispatch(toggleAccountsBottomSheet());
// =========================================================================
const accountData = accounts.filter(
(account) => account.username === switchingAccount.username,
)[0];
// control user persist whole data or just username
if (accountData.name) {
accountData.username = accountData.name;
dispatch(updateCurrentAccount(accountData));
dispatch(isRenderRequired(true));
const upToDateCurrentAccount = await switchAccount(accountData.name);
const realmData = await getUserDataWithUsername(accountData.name);
upToDateCurrentAccount.username = upToDateCurrentAccount.name;
upToDateCurrentAccount.local = realmData[0];
dispatch(updateCurrentAccount(upToDateCurrentAccount));
} else {
const _currentAccount = await switchAccount(accountData.username);
const realmData = await getUserDataWithUsername(accountData.username);
_currentAccount.username = _currentAccount.name;
_currentAccount.local = realmData[0];
dispatch(updateCurrentAccount(_currentAccount));
dispatch(isRenderRequired(true));
}
};
return (
<AccountsBottomSheet
ref={accountsBottomSheetViewRef}
accounts={accounts}
currentAccount={currentAccount}
navigateToRoute={_navigateToRoute}
switchAccount={_switchAccount}
/>
);
};
export default AccountsBottomSheetContainer;

View File

@ -0,0 +1,5 @@
import AccountsBottomSheetContainer from './container/accountsBottomSheetContainer';
import AccountsBottomSheet from './view/accountsBottomSheetView';
export { AccountsBottomSheet, AccountsBottomSheetContainer };
export default AccountsBottomSheetContainer;

View File

@ -0,0 +1,144 @@
import EStyleSheet from 'react-native-extended-stylesheet';
export default EStyleSheet.create({
container: {
flex: 1,
padding: 24,
justifyContent: 'center',
backgroundColor: 'grey',
},
contentContainer: {
flex: 1,
alignItems: 'center',
},
backdrop: {
position: 'absolute',
height: '$deviceHeight',
width: '$deviceWidth',
backgroundColor: 'rgba(0, 0, 0, 0.5)',
},
otherUserAvatar: {
borderWidth: 0.1,
borderColor: '$borderColor',
marginLeft: -7,
marginRight: 10,
},
userInfoWrapper: {
alignSelf: 'center',
marginLeft: 15,
width: 120,
},
listItem: {
marginVertical: 15,
},
listItemIcon: {
color: '$iconColor',
fontSize: 20,
marginRight: 5,
width: 20,
},
listItemText: {
color: '$primaryDarkGray',
marginLeft: 12,
alignSelf: 'center',
fontWeight: '500',
fontSize: 14,
flex: 1,
},
buttonText: {
fontSize: 18,
fontFamily: '$primaryFont',
textAlign: 'center',
margin: 10,
color: '$white',
backgroundColor: 'transparent',
},
addAccountWrapper: {
alignSelf: 'flex-end',
justifyContent: 'center',
flex: 1,
flexDirection: 'row',
},
itemWrapper: {
flexDirection: 'row',
marginLeft: 55,
},
versionText: {
textAlign: 'center',
color: '$iconColor',
},
imageBackground: {
width: '100%',
height: '100%',
flexDirection: 'row',
},
iconWrapper: {
width: 32,
height: 32,
borderRadius: 16,
borderColor: 'white',
borderWidth: 1,
alignItems: 'center',
justifyContent: 'center',
},
optionIcon: {
height: 16,
width: 16,
},
accountTile: {
height: 60,
flexDirection: 'row',
paddingHorizontal: 16,
alignItems: 'center',
flex: 1,
justifyContent: 'space-between',
},
nameContainer: {
marginLeft: 8,
},
displayName: {
fontWeight: '600',
fontSize: 16,
color: '$primaryBlack',
},
name: {
color: '$primaryDarkGray',
},
accountsModal: {
backgroundColor: '$primaryBackgroundColor',
flex: 1,
},
handleComponent: {
backgroundColor: '$primaryBackgroundColor',
height: 20,
borderTopLeftRadius: 10,
borderTopRightRadius: 10,
alignItems: 'center',
justifyContent: 'center',
},
handle: {
height: 3,
width: 24,
backgroundColor: '$darkIconColor',
borderRadius: 12,
},
textButton: {
color: '$primaryBlue',
},
buttonContainer: {
height: 50,
justifyContent: 'center',
paddingHorizontal: 16,
},
separator: {
backgroundColor: '$darkIconColor',
height: 0.5,
},
avatarAndNameContainer: {
flexDirection: 'row',
alignItems: 'center',
},
checkIcon: {
color: '$successColor',
},
});

View File

@ -0,0 +1,119 @@
import React, { useCallback, useMemo, useRef, forwardRef, useImperativeHandle } from 'react';
import { View, Text, TouchableOpacity } from 'react-native';
import { useDispatch } from 'react-redux';
import { useIntl } from 'react-intl';
import {
BottomSheetModal,
BottomSheetModalProvider,
BottomSheetFlatList,
} from '@gorhom/bottom-sheet';
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { toggleAccountsBottomSheet } from '../../../redux/actions/uiAction';
import { UserAvatar, Icon, TextButton, Separator } from '../../index';
import { default as ROUTES } from '../../../constants/routeNames';
import styles from './accountsBottomSheetStyles';
import { switchAccount } from '../../../providers/hive/auth';
const AccountsBottomSheet = forwardRef(
({ accounts, currentAccount, navigateToRoute, switchAccount }, ref) => {
const dispatch = useDispatch();
const bottomSheetModalRef = useRef();
const insets = useSafeAreaInsets();
const intl = useIntl();
const snapPoints = [accounts.length <= 4 ? accounts.length * 60 + 150 : 405];
useImperativeHandle(ref, () => ({
showAccountsBottomSheet() {
bottomSheetModalRef.current?.present();
},
closeAccountsBottomSheet() {
_handleCloseBottomSheet();
},
}));
const _handleCloseBottomSheet = () => {
bottomSheetModalRef.current?.dismiss();
};
const _handleDispatchDismissBottomSheet = () => {
dispatch(toggleAccountsBottomSheet());
};
//_handlePressAccountTile(item)
const _renderAccountTile = (item) => (
<TouchableOpacity style={styles.accountTile} onPress={() => switchAccount(item)}>
<View style={styles.avatarAndNameContainer}>
<UserAvatar username={item.username} />
<View style={styles.nameContainer}>
<Text style={styles.name}>{`@${item.username}`}</Text>
</View>
</View>
{currentAccount.name === item.name && (
<Icon iconType="AntDesign" name="checkcircle" style={styles.checkIcon} size={24} />
)}
</TouchableOpacity>
);
const renderHandleComponent = () => (
<View style={styles.handleComponent}>
<View style={styles.handle} />
</View>
);
return (
<BottomSheetModalProvider>
<BottomSheetModal
backdropComponent={() => (
<TouchableOpacity
style={styles.backdrop}
activeOpacity={1}
onPress={_handleCloseBottomSheet}
/>
)}
ref={bottomSheetModalRef}
index={0}
snapPoints={snapPoints}
onDismiss={_handleDispatchDismissBottomSheet}
shouldMeasureContentHeight={true}
handleComponent={renderHandleComponent}
>
<View style={styles.accountsModal}>
<BottomSheetFlatList
data={accounts}
scrollEnabled
keyExtractor={(item) => item.name}
renderItem={({ item }) => _renderAccountTile(item)}
//contentContainerStyle={styles.contentContainer}
/>
<Separator style={styles.separator} />
<View style={{ paddingBottom: insets.bottom }}>
<View style={styles.buttonContainer}>
<TextButton
text={intl.formatMessage({ id: 'side_menu.create_a_new_account' })}
textStyle={styles.textButton}
onPress={() => navigateToRoute(ROUTES.SCREENS.REGISTER)}
/>
</View>
<Separator style={styles.separator} />
<View style={styles.buttonContainer}>
<TextButton
text={intl.formatMessage({ id: 'side_menu.add_an_existing_account' })}
textStyle={styles.textButton}
onPress={() => navigateToRoute(ROUTES.SCREENS.LOGIN)}
/>
</View>
<Separator style={styles.separator} />
</View>
</View>
</BottomSheetModal>
</BottomSheetModalProvider>
);
},
);
export default AccountsBottomSheet;

View File

@ -84,4 +84,9 @@ export default EStyleSheet.create({
backgroundColor: '$primaryBackgroundColor', backgroundColor: '$primaryBackgroundColor',
alignItems: 'center', alignItems: 'center',
}, },
beneficiaryModal: {
flex: 1,
backgroundColor: '$modalBackground',
margin: 0,
},
}); });

View File

@ -27,6 +27,7 @@ const BasicHeaderView = ({
intl, intl,
isDraftSaved, isDraftSaved,
isDraftSaving, isDraftSaving,
isDraft,
isFormValid, isFormValid,
isHasDropdown, isHasDropdown,
isHasIcons, isHasIcons,
@ -264,10 +265,12 @@ const BasicHeaderView = ({
handleOnModalClose={() => setBeneficiaryModal(false)} handleOnModalClose={() => setBeneficiaryModal(false)}
title={intl.formatMessage({ id: 'editor.beneficiaries' })} title={intl.formatMessage({ id: 'editor.beneficiaries' })}
animationType="slide" animationType="slide"
style={styles.beneficiaryModal}
> >
<BeneficiaryModal <BeneficiaryModal
username={username} username={username}
handleOnSaveBeneficiaries={_handleOnSaveBeneficiaries} handleOnSaveBeneficiaries={_handleOnSaveBeneficiaries}
isDraft={isDraft}
/> />
</Modal> </Modal>
<Modal <Modal

View File

@ -11,6 +11,7 @@ import UserListItem from './view/userListItem/userListItem';
import WalletLineItem from './view/walletLineItem/walletLineItemView'; import WalletLineItem from './view/walletLineItem/walletLineItemView';
import CommunityListItem from './view/communityListItem/communityListItem'; import CommunityListItem from './view/communityListItem/communityListItem';
import Separator from './view/separator/separatorView'; import Separator from './view/separator/separatorView';
import EmptyScreen from './view/emptyScreen/emptyScreenView';
// Placeholders // Placeholders
import ListItemPlaceHolder from './view/placeHolder/listItemPlaceHolderView'; import ListItemPlaceHolder from './view/placeHolder/listItemPlaceHolderView';
@ -48,4 +49,5 @@ export {
WalletUnclaimedPlaceHolder, WalletUnclaimedPlaceHolder,
CommunitiesPlaceHolder, CommunitiesPlaceHolder,
Separator, Separator,
EmptyScreen,
}; };

View File

@ -0,0 +1,7 @@
import EStyleSheet from 'react-native-extended-stylesheet';
export default EStyleSheet.create({
text: {
color: '$primaryBlack',
},
});

View File

@ -0,0 +1,27 @@
import React from 'react';
import { View, Text } from 'react-native';
import LottieView from 'lottie-react-native';
import { useIntl } from 'react-intl';
import styles from './emptyScreenStyles';
import globalStyles from '../../../../globalStyles';
const EmptyScreenView = ({ style, textStyle, text }) => {
const intl = useIntl();
return (
<View style={{ flex: 1, alignItems: 'center', justifyContent: 'center' }}>
<LottieView
style={[{ width: 150, height: 150, marginBottom: 12 }, style]}
source={require('../../../../assets/animations/empty_screen.json')}
autoPlay
loop={true}
/>
<Text style={[globalStyles.title, styles.text, textStyle]}>
{text || intl.formatMessage({ id: 'empty_screen.nothing_here' })}
</Text>
</View>
);
};
export default EmptyScreenView;

View File

@ -28,35 +28,33 @@ const TagContainer = ({
style, style,
textStyle, textStyle,
disabled, disabled,
communityTitle,
}) => { }) => {
const [label, setLabel] = useState(value); const [label, setLabel] = useState(value);
const [isCommunity, setIsCommunity] = useState(false); const [isCommunity, setIsCommunity] = useState(false);
useEffect(() => { useEffect(() => {
let isCancelled = false; if (value && /hive-[1-3]\d{4,6}$/.test(value)) {
if (value && /^hive-\d+/.test(value)) { if (communityTitle) {
getCommunityTitle(value) setLabel(communityTitle);
.then((r) => { setIsCommunity(true);
if (!isCancelled) { } else {
getCommunityTitle(value)
.then((r) => {
setLabel(r); setLabel(r);
setIsCommunity(value !== r); setIsCommunity(value !== r);
return r; return r;
} })
}) .catch((e) => {
.catch((e) => {
if (!isCancelled) {
setLabel(value); setLabel(value);
setIsCommunity(/^hive-\d+/.test(value)); setIsCommunity(/hive-[1-3]\d{4,6}$/.test(value));
return value; return value;
} });
}); }
} else { } else {
setLabel(value); setLabel(value);
setIsCommunity(false); setIsCommunity(false);
} }
return () => {
isCancelled = true;
};
}); });
// Component Functions // Component Functions

View File

@ -14,7 +14,7 @@ export default EStyleSheet.create({
backgroundColor: '$tagColor', backgroundColor: '$tagColor',
}, },
textWrapper: { textWrapper: {
paddingHorizontal: Platform.OS === 'android' ? 20 : 10, paddingHorizontal: Platform.OS === 'android' ? 16 : 8,
justifyContent: 'center', justifyContent: 'center',
marginRight: 8, marginRight: 8,
marginLeft: 8, marginLeft: 8,

View File

@ -35,7 +35,7 @@ const Tag = ({
textStyle, textStyle,
]} ]}
> >
{label} {` ${label} `}
</Text> </Text>
</View> </View>
</TouchableOpacity> </TouchableOpacity>

View File

@ -1,5 +1,6 @@
import React from 'react'; import React from 'react';
import { ActivityIndicator, View, Text, TouchableOpacity } from 'react-native'; import { ActivityIndicator, View, Text, TouchableOpacity } from 'react-native';
import Highlighter from 'react-native-highlight-words';
import { UserAvatar } from '../../../userAvatar'; import { UserAvatar } from '../../../userAvatar';
import Tag from '../tag/tagView'; import Tag from '../tag/tagView';
@ -8,6 +9,7 @@ import styles from './userListItemStyles';
const UserListItem = ({ const UserListItem = ({
rightText, rightText,
description, description,
descriptionStyle,
username, username,
subRightText, subRightText,
index, index,
@ -25,6 +27,7 @@ const UserListItem = ({
isFollowing = false, isFollowing = false,
isLoadingRightAction = false, isLoadingRightAction = false,
isLoggedIn, isLoggedIn,
searchValue,
}) => { }) => {
const _handleSubscribeButtonPress = () => { const _handleSubscribeButtonPress = () => {
const _data = {}; const _data = {};
@ -43,8 +46,27 @@ const UserListItem = ({
{itemIndex && <Text style={styles.itemIndex}>{itemIndex}</Text>} {itemIndex && <Text style={styles.itemIndex}>{itemIndex}</Text>}
<UserAvatar noAction={true} style={styles.avatar} username={username} /> <UserAvatar noAction={true} style={styles.avatar} username={username} />
<View style={styles.userDescription}> <View style={styles.userDescription}>
<Text style={styles.name}>{text || username}</Text> {!searchValue && <Text style={styles.name}>{text || username}</Text>}
{description && <Text style={styles.date}>{description}</Text>} {!!searchValue && (
<Highlighter
highlightStyle={{ backgroundColor: 'yellow' }}
searchWords={[searchValue]}
textToHighlight={text || username}
style={styles.name}
/>
)}
{!!searchValue && (
<Highlighter
highlightStyle={{ backgroundColor: 'yellow' }}
searchWords={[searchValue]}
textToHighlight={description}
style={styles.summary}
numberOfLines={3}
/>
)}
{description && !searchValue && (
<Text style={[styles.date, descriptionStyle]}>{description}</Text>
)}
</View> </View>
{middleText && ( {middleText && (
<View style={styles.middleWrapper}> <View style={styles.middleWrapper}>

View File

@ -1,6 +1,8 @@
import React, { useState, useCallback } from 'react'; import React, { useState, useCallback, useEffect } from 'react';
import { View, FlatList, Text } from 'react-native'; import { View, FlatList, Text } from 'react-native';
import { useIntl } from 'react-intl'; import { useIntl } from 'react-intl';
import AsyncStorage from '@react-native-community/async-storage';
import { isArray, remove } from 'lodash';
import { lookupAccounts } from '../../providers/hive/dhive'; import { lookupAccounts } from '../../providers/hive/dhive';
@ -8,13 +10,32 @@ import { FormInput, MainButton, Tag } from '..';
import styles from './beneficiaryModalStyles'; import styles from './beneficiaryModalStyles';
const BeneficiaryModal = ({ username, handleOnSaveBeneficiaries }) => { const BeneficiaryModal = ({ username, handleOnSaveBeneficiaries, isDraft }) => {
const intl = useIntl(); const intl = useIntl();
const [beneficiaries, setBeneficiaries] = useState([ const [beneficiaries, setBeneficiaries] = useState([
{ account: username, weight: 10000, isValid: true }, { account: username, weight: 10000, isValid: true },
]); ]);
useEffect(() => {
if (!isDraft) {
readTempBeneficiaries();
}
}, []);
const readTempBeneficiaries = async () => {
const tempBeneficiariesString = await AsyncStorage.getItem('temp-beneficiaries');
const tempBeneficiaries = JSON.parse(tempBeneficiariesString);
if (isArray(tempBeneficiaries)) {
tempBeneficiaries.forEach((item) => {
item.isValid = true;
});
setBeneficiaries(tempBeneficiaries);
}
};
const _addAccount = () => { const _addAccount = () => {
setBeneficiaries([...beneficiaries, { account: '', weight: 0, isValid: false }]); setBeneficiaries([...beneficiaries, { account: '', weight: 0, isValid: false }]);
}; };
@ -48,43 +69,53 @@ const BeneficiaryModal = ({ username, handleOnSaveBeneficiaries }) => {
return beneficiaries.every((item) => item.isValid); return beneficiaries.every((item) => item.isValid);
}; };
const renderInputs = useCallback( const _onBlur = (item, index) => {
({ item, index }) => { if (item.weight === 0) {
const _isCurrentUser = item.account === username; const newBeneficiaries = [...beneficiaries];
remove(newBeneficiaries, (current) => {
return current.account === item.account;
});
return ( setBeneficiaries(newBeneficiaries);
<View style={styles.inputWrapper}> }
<View style={styles.weightInput}> };
<FormInput
isValid={_isCurrentUser || (item.weight !== 0 && item.weight <= 10000)} const renderInputs = ({ item, index }) => {
isEditable={!_isCurrentUser} const _isCurrentUser = item.account === username;
value={`${item.weight / 100}`}
inputStyle={styles.weightFormInput} return (
wrapperStyle={styles.weightFormInputWrapper} <View style={styles.inputWrapper}>
onChange={(value) => _onWeightInputChange(value, index)} <View style={styles.weightInput}>
/> <FormInput
</View> isValid={_isCurrentUser || (item.weight !== 0 && item.weight <= 10000)}
<View style={styles.usernameInput}> isEditable={!_isCurrentUser}
<FormInput value={`${item.weight / 100}`}
rightIconName="at" inputStyle={styles.weightFormInput}
iconType="MaterialCommunityIcons" wrapperStyle={styles.weightFormInputWrapper}
isValid={_isCurrentUser || item.isValid} onChange={(value) => _onWeightInputChange(value, index)}
//isEditable={!_isCurrentUser} onBlur={() => _onBlur(item, index)}
onChange={(value) => _onUsernameInputChange(value, index)} />
placeholder={intl.formatMessage({
id: 'login.username',
})}
type="username"
isFirstImage
value={item.account}
wrapperStyle={styles.usernameFormInputWrapper}
/>
</View>
</View> </View>
); <View style={styles.usernameInput}>
}, <FormInput
[beneficiaries], rightIconName="at"
); iconType="MaterialCommunityIcons"
isValid={_isCurrentUser || item.isValid}
//isEditable={!_isCurrentUser}
onChange={(value) => _onUsernameInputChange(value, index)}
placeholder={intl.formatMessage({
id: 'beneficiary_modal.username',
})}
type="username"
isFirstImage
value={item.account}
inputStyle={styles.usernameInput}
wrapperStyle={styles.usernameFormInputWrapper}
/>
</View>
</View>
);
};
return ( return (
<View style={styles.container}> <View style={styles.container}>
@ -95,17 +126,27 @@ const BeneficiaryModal = ({ username, handleOnSaveBeneficiaries }) => {
ListHeaderComponent={() => ( ListHeaderComponent={() => (
<View style={styles.inputWrapper}> <View style={styles.inputWrapper}>
<View style={[styles.weightInput, { alignItems: 'center' }]}> <View style={[styles.weightInput, { alignItems: 'center' }]}>
<Text>Weight(%)</Text> <Text style={styles.text}>
{intl.formatMessage({
id: 'beneficiary_modal.percent',
})}
</Text>
</View> </View>
<View style={[styles.usernameInput, { alignItems: 'center' }]}> <View style={[styles.usernameInput, { alignItems: 'center' }]}>
<Text>Username</Text> <Text style={styles.text}>
{intl.formatMessage({
id: 'beneficiary_modal.username',
})}
</Text>
</View> </View>
</View> </View>
)} )}
ListFooterComponent={() => ( ListFooterComponent={() => (
<View style={{ alignItems: 'flex-end', marginTop: 20 }}> <View style={{ alignItems: 'flex-end', marginTop: 20 }}>
<Tag <Tag
value="Add Account" value={intl.formatMessage({
id: 'beneficiary_modal.addAccount',
})}
isFilter isFilter
disabled={!_isValid()} disabled={!_isValid()}
isPin={_isValid()} isPin={_isValid()}
@ -120,7 +161,9 @@ const BeneficiaryModal = ({ username, handleOnSaveBeneficiaries }) => {
style={styles.saveButton} style={styles.saveButton}
isDisable={!_isValid()} isDisable={!_isValid()}
onPress={() => handleOnSaveBeneficiaries(beneficiaries)} onPress={() => handleOnSaveBeneficiaries(beneficiaries)}
text="Save" text={intl.formatMessage({
id: 'beneficiary_modal.save',
})}
/> />
</View> </View>
</View> </View>

View File

@ -1,13 +1,18 @@
import EStyleSheet from 'react-native-extended-stylesheet'; import EStyleSheet from 'react-native-extended-stylesheet';
export default EStyleSheet.create({ export default EStyleSheet.create({
container: { flex: 1, justifyContent: 'space-between' }, container: {
flex: 1,
justifyContent: 'space-between',
padding: 16,
},
bodyWrapper: { flex: 3, paddingTop: 20 }, bodyWrapper: { flex: 3, paddingTop: 20 },
inputWrapper: { flexDirection: 'row', alignItems: 'center' }, inputWrapper: { flexDirection: 'row', alignItems: 'center' },
text: { color: '$primaryBlack', marginBottom: 8 },
weightInput: { flex: 1 }, weightInput: { flex: 1 },
weightFormInput: { textAlign: 'center' }, weightFormInput: { textAlign: 'center', color: '$primaryBlack' },
weightFormInputWrapper: { marginTop: 0 }, weightFormInputWrapper: { marginTop: 0 },
usernameInput: { flex: 4 }, usernameInput: { flex: 3, color: '$primaryBlack', marginLeft: 16 },
usernameFormInputWrapper: { marginTop: 0, marginLeft: 10 }, usernameFormInputWrapper: { marginTop: 0, marginLeft: 10 },
footerWrapper: { flex: 1 }, footerWrapper: { flex: 1 },
saveButton: { saveButton: {

View File

@ -0,0 +1,3 @@
import CommunitiesList from './view/communitiesList';
export default CommunitiesList;

View File

@ -2,23 +2,22 @@ import React from 'react';
import { SafeAreaView, FlatList } from 'react-native'; import { SafeAreaView, FlatList } from 'react-native';
// Components // Components
import CommunitiesListItem from './CommunitiesListItem'; import { CommunitiesPlaceHolder } from '../../basicUIElements';
import { CommunitiesPlaceHolder } from '../../../components/basicUIElements'; import CommunitiesListItem from './communitiesListItem';
// Styles // Styles
import styles from './communitiesListStyles'; import styles from './communitiesListStyles';
const CommunitiesList = ({ const CommunitiesList = ({
votes, data,
subscribingCommunities,
handleOnPress, handleOnPress,
handleSubscribeButtonPress, handleSubscribeButtonPress,
allSubscriptions,
isLoggedIn, isLoggedIn,
noResult, noResult,
screen,
}) => { }) => {
const _renderItem = ({ item, index }) => { const _renderItem = ({ item, index }) => {
const isSubscribed = allSubscriptions.some((sub) => sub[0] === item.name);
return ( return (
<CommunitiesListItem <CommunitiesListItem
index={index} index={index}
@ -33,8 +32,13 @@ const CommunitiesList = ({
name={item.name} name={item.name}
handleOnPress={handleOnPress} handleOnPress={handleOnPress}
handleSubscribeButtonPress={handleSubscribeButtonPress} handleSubscribeButtonPress={handleSubscribeButtonPress}
isSubscribed={isSubscribed} isSubscribed={item.isSubscribed}
isLoggedIn={isLoggedIn} isLoggedIn={isLoggedIn}
loading={
subscribingCommunities.hasOwnProperty(item.name) &&
subscribingCommunities[item.name].loading
}
screen={screen}
/> />
); );
}; };
@ -57,8 +61,8 @@ const CommunitiesList = ({
<SafeAreaView style={styles.container}> <SafeAreaView style={styles.container}>
{!noResult && ( {!noResult && (
<FlatList <FlatList
data={votes} data={data}
keyExtractor={(item) => item.id && item.id.toString()} keyExtractor={(item, index) => index.toString()}
renderItem={_renderItem} renderItem={_renderItem}
ListEmptyComponent={_renderEmptyContent} ListEmptyComponent={_renderEmptyContent}
/> />

View File

@ -0,0 +1,3 @@
import CommunitiesListItem from './view/CommunitiesListItem';
export default CommunitiesListItem;

View File

@ -1,12 +1,12 @@
import React, { useState } from 'react'; import React, { useState } from 'react';
import { View, Text, TouchableOpacity } from 'react-native'; import { View, Text, TouchableOpacity, ActivityIndicator } from 'react-native';
import { useIntl } from 'react-intl'; import { useIntl } from 'react-intl';
import styles from './communitiesListItemStyles'; import styles from './communitiesListItemStyles';
import { Tag } from '../../../components/basicUIElements'; import { Tag } from '../../../../basicUIElements';
const UserListItem = ({ const CommunitiesListItem = ({
index, index,
handleOnPress, handleOnPress,
handleOnLongPress, handleOnLongPress,
@ -22,14 +22,13 @@ const UserListItem = ({
handleSubscribeButtonPress, handleSubscribeButtonPress,
isSubscribed, isSubscribed,
isLoggedIn, isLoggedIn,
loading,
screen,
}) => { }) => {
const [subscribed, setSubscribed] = useState(isSubscribed);
const intl = useIntl(); const intl = useIntl();
const _handleSubscribeButtonPress = () => { const _handleSubscribeButtonPress = () => {
handleSubscribeButtonPress({ subscribed: !subscribed, communityId: name }).then(() => { handleSubscribeButtonPress({ isSubscribed: isSubscribed, communityId: name }, screen);
setSubscribed(!subscribed);
});
}; };
return ( return (
@ -41,24 +40,29 @@ const UserListItem = ({
<View style={styles.content}> <View style={styles.content}>
<View style={styles.header}> <View style={styles.header}>
<Text style={styles.title}>{title}</Text> <Text style={styles.title}>{title}</Text>
{isLoggedIn && ( {isLoggedIn &&
<Tag (loading ? (
style={styles.subscribeButton} <View style={styles.indicatorView}>
textStyle={subscribed && styles.subscribeButtonText} <ActivityIndicator />
value={ </View>
!subscribed ) : (
? intl.formatMessage({ <Tag
id: 'search_result.communities.subscribe', style={styles.subscribeButton}
}) textStyle={isSubscribed && styles.subscribeButtonText}
: intl.formatMessage({ value={
id: 'search_result.communities.unsubscribe', !isSubscribed
}) ? intl.formatMessage({
} id: 'search_result.communities.subscribe',
isPin={!subscribed} })
isFilter : intl.formatMessage({
onPress={_handleSubscribeButtonPress} id: 'search_result.communities.unsubscribe',
/> })
)} }
isPin={!isSubscribed}
isFilter
onPress={_handleSubscribeButtonPress}
/>
))}
</View> </View>
{!!about && <Text style={styles.about}>{about}</Text>} {!!about && <Text style={styles.about}>{about}</Text>}
<View style={styles.separator} /> <View style={styles.separator} />
@ -77,4 +81,4 @@ const UserListItem = ({
); );
}; };
export default UserListItem; export default CommunitiesListItem;

View File

@ -59,4 +59,9 @@ export default EStyleSheet.create({
flexDirection: 'row', flexDirection: 'row',
justifyContent: 'space-between', justifyContent: 'space-between',
}, },
indicatorView: {
width: 65,
alignItems: 'center',
justifyContent: 'center',
},
}); });

View File

@ -4,7 +4,6 @@ export default EStyleSheet.create({
container: { container: {
flex: 1, flex: 1,
padding: 8, padding: 8,
marginBottom: 40,
flexDirection: 'row', flexDirection: 'row',
backgroundColor: '$primaryBackgroundColor', backgroundColor: '$primaryBackgroundColor',
}, },

View File

@ -37,7 +37,7 @@ const SelectCommunityModalView = ({
renderItem={({ item, index, separators }) => ( renderItem={({ item, index, separators }) => (
<CommunityCard <CommunityCard
community={item} community={item}
key={index} key={index.toString()}
onPress={onPressCommunity} onPress={onPressCommunity}
separators={separators} separators={separators}
/> />

View File

@ -23,6 +23,7 @@ export default EStyleSheet.create({
flex: 6, flex: 6,
}, },
filterBarWrapper: { filterBarWrapper: {
flex: 1,
flexDirection: 'row', flexDirection: 'row',
alignItems: 'center', alignItems: 'center',
justifyContent: 'space-between', justifyContent: 'space-between',

View File

@ -28,6 +28,7 @@ const FormInputView = ({
onChange, onChange,
isValid, isValid,
value, value,
onBlur,
}) => { }) => {
const [_value, setValue] = useState(value || ''); const [_value, setValue] = useState(value || '');
const [inputBorderColor, setInputBorderColor] = useState('#e7e7e7'); const [inputBorderColor, setInputBorderColor] = useState('#e7e7e7');
@ -47,6 +48,14 @@ const FormInputView = ({
setInputBorderColor('#357ce6'); setInputBorderColor('#357ce6');
}; };
const _handleOnBlur = () => {
setInputBorderColor('#e7e7e7');
if (onBlur) {
onBlur();
}
};
useEffect(() => { useEffect(() => {
setValue(value); setValue(value);
}, [value]); }, [value]);
@ -97,7 +106,7 @@ const FormInputView = ({
<TextInput <TextInput
style={inputStyle} style={inputStyle}
onFocus={_handleOnFocus} onFocus={_handleOnFocus}
onBlur={() => setInputBorderColor('#e7e7e7')} onBlur={_handleOnBlur}
autoCapitalize="none" autoCapitalize="none"
secureTextEntry={secureTextEntry} secureTextEntry={secureTextEntry}
height={height} height={height}

View File

@ -21,6 +21,7 @@ import { LoginHeader } from './loginHeader';
import { MainButton } from './mainButton'; import { MainButton } from './mainButton';
import { MarkdownEditor } from './markdownEditor'; import { MarkdownEditor } from './markdownEditor';
import { Modal } from './modal'; import { Modal } from './modal';
import AccountsBottomSheet from './accountsBottomSheet';
import { NotificationLine } from './notificationLine'; import { NotificationLine } from './notificationLine';
import { NumericKeyboard } from './numericKeyboard'; import { NumericKeyboard } from './numericKeyboard';
import { ParentPost } from './parentPost'; import { ParentPost } from './parentPost';
@ -33,6 +34,7 @@ import { PostForm } from './postForm';
import { PostHeaderDescription, PostBody, Tags } from './postElements'; import { PostHeaderDescription, PostBody, Tags } from './postElements';
import { PostListItem } from './postListItem'; import { PostListItem } from './postListItem';
import { ProfileSummary } from './profileSummary'; import { ProfileSummary } from './profileSummary';
import { ProgressiveImage } from './progressiveImage';
import { SearchInput } from './searchInput'; import { SearchInput } from './searchInput';
import { SearchModal } from './searchModal'; import { SearchModal } from './searchModal';
@ -63,6 +65,8 @@ import ScaleSlider from './scaleSlider/scaleSliderView';
import { ProductItemLine } from './productItemLine/productItemLineView'; import { ProductItemLine } from './productItemLine/productItemLineView';
import { HorizontalIconList } from './horizontalIconList/horizontalIconListView'; import { HorizontalIconList } from './horizontalIconList/horizontalIconListView';
import { PopoverWrapper } from './popoverWrapper/popoverWrapperView'; import { PopoverWrapper } from './popoverWrapper/popoverWrapperView';
import CommunitiesList from './communitiesList';
import SubscribedCommunitiesList from './subscribedCommunitiesList';
// View // View
import { Comment } from './comment'; import { Comment } from './comment';
@ -103,6 +107,7 @@ import {
WalletLineItem, WalletLineItem,
WalletUnclaimedPlaceHolder, WalletUnclaimedPlaceHolder,
Separator, Separator,
EmptyScreen,
} from './basicUIElements'; } from './basicUIElements';
export { export {
@ -140,6 +145,7 @@ export {
Logo, Logo,
MainButton, MainButton,
MarkdownEditor, MarkdownEditor,
AccountsBottomSheet,
Modal, Modal,
NoInternetConnection, NoInternetConnection,
NoPost, NoPost,
@ -205,6 +211,9 @@ export {
WalletLineItem, WalletLineItem,
WalletUnclaimedPlaceHolder, WalletUnclaimedPlaceHolder,
Separator, Separator,
EmptyScreen,
HorizontalIconList, HorizontalIconList,
PopoverWrapper, PopoverWrapper,
CommunitiesList,
SubscribedCommunitiesList,
}; };

View File

@ -14,7 +14,7 @@ export default EStyleSheet.create({
color: '$primaryBlack', color: '$primaryBlack',
backgroundColor: '$primaryBackgroundColor', backgroundColor: '$primaryBackgroundColor',
// fontFamily: '$editorFont', // fontFamily: '$editorFont',
//textAlignVertical: 'top', // textAlignVertical: 'top',
}, },
previewContainer: { previewContainer: {
flex: 1, flex: 1,

View File

@ -44,6 +44,7 @@ const MarkdownEditorView = ({
const [text, setText] = useState(draftBody || ''); const [text, setText] = useState(draftBody || '');
const [selection, setSelection] = useState({ start: 0, end: 0 }); const [selection, setSelection] = useState({ start: 0, end: 0 });
const [editable, setEditable] = useState(true); const [editable, setEditable] = useState(true);
const [height, setHeight] = useState(0);
const inputRef = useRef(null); const inputRef = useRef(null);
const galleryRef = useRef(null); const galleryRef = useRef(null);
@ -260,7 +261,7 @@ const MarkdownEditorView = ({
<TextInput <TextInput
multiline multiline
autoCorrect={true} autoCorrect={true}
autoFocus={false} autoFocus={isReply ? true : false}
onChangeText={_changeText} onChangeText={_changeText}
onSelectionChange={_handleOnSelectionChange} onSelectionChange={_handleOnSelectionChange}
placeholder={intl.formatMessage({ placeholder={intl.formatMessage({

View File

@ -39,25 +39,25 @@ const PostCardContainer = ({
}, [isRefresh]); }, [isRefresh]);
useEffect(() => { useEffect(() => {
if (content) { if (_content) {
setActiveVotes(get(content, 'active_votes', [])); setActiveVotes(get(_content, 'active_votes', []));
getPostReblogs(content).then((result) => { getPostReblogs(_content).then((result) => {
setReblogs(result); setReblogs(result);
}); });
setContent(content); setContent(_content);
} }
}, [content]); }, [_content]);
const _handleOnUserPress = () => { const _handleOnUserPress = () => {
if (content && get(currentAccount, 'name') !== get(content, 'author')) { if (_content && get(currentAccount, 'name') !== get(_content, 'author')) {
navigation.navigate({ navigation.navigate({
routeName: ROUTES.SCREENS.PROFILE, routeName: ROUTES.SCREENS.PROFILE,
params: { params: {
username: get(content, 'author'), username: get(_content, 'author'),
reputation: get(content, 'author_reputation'), reputation: get(_content, 'author_reputation'),
}, },
key: get(content, 'author'), key: get(_content, 'author'),
}); });
} }
}; };
@ -79,9 +79,9 @@ const PostCardContainer = ({
routeName: ROUTES.SCREENS.VOTERS, routeName: ROUTES.SCREENS.VOTERS,
params: { params: {
activeVotes, activeVotes,
content, content: _content,
}, },
key: get(content, 'permlink'), key: get(_content, 'permlink'),
}); });
}; };
@ -91,12 +91,16 @@ const PostCardContainer = ({
params: { params: {
reblogs, reblogs,
}, },
key: get(content, 'permlink', get(content, 'author', '')), key: get(_content, 'permlink', get(_content, 'author', '')),
}); });
}; };
const _fetchPost = async () => { const _fetchPost = async () => {
await getPost(get(content, 'author'), get(content, 'permlink'), get(currentAccount, 'username')) await getPost(
get(_content, 'author'),
get(_content, 'permlink'),
get(currentAccount, 'username'),
)
.then((result) => { .then((result) => {
if (result) { if (result) {
setContent(result); setContent(result);

View File

@ -32,8 +32,8 @@ export default EStyleSheet.create({
margin: 0, margin: 0,
alignItems: 'center', alignItems: 'center',
alignSelf: 'center', alignSelf: 'center',
height: 200, //height: 200,
width: '$deviceWidth - 16', //width: '$deviceWidth - 16',
borderRadius: 8, borderRadius: 8,
backgroundColor: '$primaryLightGray', backgroundColor: '$primaryLightGray',
}, },

View File

@ -1,8 +1,8 @@
import React, { Component, useState, useEffect } from 'react'; import React, { Component, useState, useEffect } from 'react';
import get from 'lodash/get'; import get from 'lodash/get';
import { TouchableOpacity, Text, View } from 'react-native'; import { TouchableOpacity, Text, View, Dimensions } from 'react-native';
import FastImage from 'react-native-fast-image';
import { injectIntl } from 'react-intl'; import { injectIntl } from 'react-intl';
import ImageSize from 'react-native-image-size';
// Utils // Utils
import { getTimeFromNow } from '../../../utils/time'; import { getTimeFromNow } from '../../../utils/time';
@ -18,8 +18,13 @@ import { Upvote } from '../../upvote';
import styles from './postCardStyles'; import styles from './postCardStyles';
// Defaults // Defaults
import DEFAULT_IMAGE from '../../../assets/no_image.png'; import ProgressiveImage from '../../progressiveImage';
import NSFW_IMAGE from '../../../assets/nsfw.png';
const dim = Dimensions.get('window');
const DEFAULT_IMAGE =
'https://images.ecency.com/DQmT8R33geccEjJfzZEdsRHpP3VE8pu3peRCnQa1qukU4KR/no_image_3x.png';
const NSFW_IMAGE =
'https://images.ecency.com/DQmZ1jW4p7o5GyoqWyCib1fSLE2ftbewsMCt2GvbmT9kmoY/nsfw_3x.png';
const PostCardView = ({ const PostCardView = ({
handleOnUserPress, handleOnUserPress,
@ -36,6 +41,7 @@ const PostCardView = ({
}) => { }) => {
const [rebloggedBy, setRebloggedBy] = useState(get(content, 'reblogged_by[0]', null)); const [rebloggedBy, setRebloggedBy] = useState(get(content, 'reblogged_by[0]', null));
const [activeVot, setActiveVot] = useState(activeVotes); const [activeVot, setActiveVot] = useState(activeVotes);
const [calcImgHeight, setCalcImgHeight] = useState(300);
//console.log(activeVotes); //console.log(activeVotes);
// Component Functions // Component Functions
@ -60,13 +66,18 @@ const PostCardView = ({
}; };
const _getPostImage = (content, isNsfwPost) => { const _getPostImage = (content, isNsfwPost) => {
if (content && content.image) { if (content && content.thumbnail) {
if (isNsfwPost && content.nsfw) { if (isNsfwPost && content.nsfw) {
return NSFW_IMAGE; return { image: NSFW_IMAGE, thumbnail: NSFW_IMAGE };
} }
return { uri: content.image, priority: FastImage.priority.high }; //console.log(content)
ImageSize.getSize(content.thumbnail).then((size) => {
setCalcImgHeight(Math.floor((size.height / size.width) * dim.width));
});
return { image: content.image, thumbnail: content.thumbnail };
} else {
return { image: DEFAULT_IMAGE, thumbnail: DEFAULT_IMAGE };
} }
return DEFAULT_IMAGE;
}; };
useEffect(() => { useEffect(() => {
@ -91,7 +102,7 @@ const PostCardView = ({
profileOnPress={_handleOnUserPress} profileOnPress={_handleOnUserPress}
reputation={get(content, 'author_reputation')} reputation={get(content, 'author_reputation')}
size={36} size={36}
tag={content.category} content={content}
rebloggedBy={rebloggedBy} rebloggedBy={rebloggedBy}
isPromoted={get(content, 'is_promoted')} isPromoted={get(content, 'is_promoted')}
/> />
@ -102,11 +113,13 @@ const PostCardView = ({
<View style={styles.postBodyWrapper}> <View style={styles.postBodyWrapper}>
<TouchableOpacity style={styles.hiddenImages} onPress={_handleOnContentPress}> <TouchableOpacity style={styles.hiddenImages} onPress={_handleOnContentPress}>
{!isHideImage && ( {!isHideImage && (
<FastImage <ProgressiveImage
source={_image} source={{ uri: _image.image }}
resizeMode={FastImage.resizeMode.contain} thumbnailSource={{ uri: _image.thumbnail }}
style={styles.thumbnail} style={[
defaultSource={DEFAULT_IMAGE} styles.thumbnail,
{ width: dim.width - 18, height: Math.min(calcImgHeight, dim.height) },
]}
/> />
)} )}
<View style={[styles.postDescripton]}> <View style={[styles.postDescripton]}>

View File

@ -208,7 +208,7 @@ const CommentBody = ({
author, author,
permlink, permlink,
}, },
key: permlink, key: `@${author}/${permlink}`,
}); });
} }
}; };

View File

@ -46,6 +46,7 @@ class PostHeaderDescription extends PureComponent {
reputation, reputation,
size, size,
tag, tag,
content,
tagOnPress, tagOnPress,
isShowOwnerIndicator, isShowOwnerIndicator,
isPromoted, isPromoted,
@ -90,6 +91,16 @@ class PostHeaderDescription extends PureComponent {
</View> </View>
</View> </View>
<View style={styles.rightContainer}> <View style={styles.rightContainer}>
{!!content && (
<TouchableOpacity onPress={() => tagOnPress && tagOnPress()}>
<Tag
isPostCardTag={!isPromoted}
isPin
value={content.category}
communityTitle={content.community_title}
/>
</TouchableOpacity>
)}
{!!tag && ( {!!tag && (
<TouchableOpacity onPress={() => tagOnPress && tagOnPress()}> <TouchableOpacity onPress={() => tagOnPress && tagOnPress()}>
<Tag isPostCardTag={!isPromoted} isPin value={tag} /> <Tag isPostCardTag={!isPromoted} isPin value={tag} />

View File

@ -18,8 +18,8 @@ export default EStyleSheet.create({
margin: 0, margin: 0,
alignItems: 'center', alignItems: 'center',
alignSelf: 'center', alignSelf: 'center',
height: 200, //height: 200,
width: '$deviceWidth - 16', //width: '$deviceWidth - 16',
borderRadius: 8, borderRadius: 8,
backgroundColor: '$primaryLightGray', backgroundColor: '$primaryLightGray',
// paddingVertical: 10, // paddingVertical: 10,

View File

@ -1,8 +1,8 @@
import React, { useRef, Fragment } from 'react'; import React, { useRef, useState, useEffect, Fragment } from 'react';
import ActionSheet from 'react-native-actionsheet'; import ActionSheet from 'react-native-actionsheet';
import { View, Text, TouchableOpacity } from 'react-native'; import { View, Text, TouchableOpacity, Dimensions } from 'react-native';
import { injectIntl } from 'react-intl'; import { injectIntl } from 'react-intl';
import FastImage from 'react-native-fast-image'; import ImageSize from 'react-native-image-size';
// Utils // Utils
import { getTimeFromNow } from '../../../utils/time'; import { getTimeFromNow } from '../../../utils/time';
@ -10,13 +10,17 @@ import { getTimeFromNow } from '../../../utils/time';
// Components // Components
import { PostHeaderDescription } from '../../postElements'; import { PostHeaderDescription } from '../../postElements';
import { IconButton } from '../../iconButton'; import { IconButton } from '../../iconButton';
import ProgressiveImage from '../../progressiveImage';
// Defaults
import DEFAULT_IMAGE from '../../../assets/no_image.png';
// Styles // Styles
import styles from './postListItemStyles'; import styles from './postListItemStyles';
// Defaults
const DEFAULT_IMAGE =
'https://images.ecency.com/DQmT8R33geccEjJfzZEdsRHpP3VE8pu3peRCnQa1qukU4KR/no_image_3x.png';
const dim = Dimensions.get('window');
const PostListItemView = ({ const PostListItemView = ({
title, title,
summary, summary,
@ -25,6 +29,7 @@ const PostListItemView = ({
reputation, reputation,
created, created,
image, image,
thumbnail,
handleOnPressItem, handleOnPressItem,
handleOnRemoveItem, handleOnRemoveItem,
id, id,
@ -32,9 +37,21 @@ const PostListItemView = ({
isFormatedDate, isFormatedDate,
}) => { }) => {
const actionSheet = useRef(null); const actionSheet = useRef(null);
const [calcImgHeight, setCalcImgHeight] = useState(300);
// Component Life Cycles // Component Life Cycles
useEffect(() => {
let _isMounted = false;
if (image) {
if (!_isMounted) {
ImageSize.getSize(thumbnail.uri).then((size) => {
setCalcImgHeight(Math.floor((size.height / size.width) * dim.width));
});
}
}
return () => {
_isMounted = true;
};
}, []);
// Component Functions // Component Functions
return ( return (
@ -60,7 +77,14 @@ const PostListItemView = ({
</View> </View>
<View style={styles.body}> <View style={styles.body}>
<TouchableOpacity onPress={() => handleOnPressItem(id)}> <TouchableOpacity onPress={() => handleOnPressItem(id)}>
<FastImage source={image} style={styles.image} defaultSource={DEFAULT_IMAGE} /> <ProgressiveImage
source={image}
thumbnailSource={thumbnail}
style={[
styles.thumbnail,
{ width: dim.width - 16, height: Math.min(calcImgHeight, dim.height) },
]}
/>
<View style={[styles.postDescripton]}> <View style={[styles.postDescripton]}>
<Text style={styles.title}>{title}</Text> <Text style={styles.title}>{title}</Text>
<Text style={styles.summary}>{summary}</Text> <Text style={styles.summary}>{summary}</Text>

View File

@ -198,7 +198,7 @@ const PostDisplayView = ({
name={author || post.author} name={author || post.author}
currentAccountUsername={name} currentAccountUsername={name}
reputation={post.author_reputation} reputation={post.author_reputation}
tag={post.category} content={post}
size={36} size={36}
/> />
<PostBody body={post.body} /> <PostBody body={post.body} />

View File

@ -255,7 +255,7 @@ const PostsContainer = ({
const filter = type || selectedFilterValue; const filter = type || selectedFilterValue;
const subfilter = selectedFeedSubfilterValue; const subfilter = selectedFeedSubfilterValue;
let options = {}; let options = {};
const limit = 7; const limit = 5;
let func = null; let func = null;
if ( if (
@ -319,7 +319,7 @@ const PostsContainer = ({
_posts = unionBy(posts, _posts, 'permlink'); _posts = unionBy(posts, _posts, 'permlink');
} }
} }
if (posts.length <= 7 && pageType !== 'profiles') { if (posts.length <= 5 && pageType !== 'profiles') {
_setFeedPosts(_posts); _setFeedPosts(_posts);
} }
@ -462,7 +462,9 @@ const PostsContainer = ({
}); });
} }
dispatch(subscribeAction(currentAccount, pinCode, data, successToastText, failToastText)); dispatch(
subscribeAction(currentAccount, pinCode, data, successToastText, failToastText, 'feedScreen'),
);
}; };
return ( return (

View File

@ -319,7 +319,7 @@ const PostsView = ({
removeClippedSubviews removeClippedSubviews
refreshing={refreshing} refreshing={refreshing}
onRefresh={handleOnRefreshPosts} onRefresh={handleOnRefreshPosts}
onEndReachedThreshold={2} onEndReachedThreshold={0.5}
ListFooterComponent={_renderFooter} ListFooterComponent={_renderFooter}
onScrollEndDrag={_handleOnScroll} onScrollEndDrag={_handleOnScroll}
ListEmptyComponent={_renderEmptyContent} ListEmptyComponent={_renderEmptyContent}

View File

@ -0,0 +1,62 @@
import React from 'react';
import { View, StyleSheet, Animated } from 'react-native';
import FastImage from 'react-native-fast-image';
const styles = StyleSheet.create({
imageOverlay: {
position: 'absolute',
left: 0,
right: 0,
bottom: 0,
top: 0,
borderRadius: 8,
},
container: {
backgroundColor: '#f6f6f6',
borderRadius: 8,
},
});
const AnimatedFastImage = Animated.createAnimatedComponent(FastImage);
class ProgressiveImage extends React.Component {
thumbnailAnimated = new Animated.Value(0);
imageAnimated = new Animated.Value(0);
handleThumbnailLoad = () => {
Animated.timing(this.thumbnailAnimated, {
toValue: 1,
}).start();
};
onImageLoad = () => {
Animated.timing(this.imageAnimated, {
toValue: 1,
}).start();
};
render() {
const { thumbnailSource, source, style, ...props } = this.props;
return (
<View style={styles.container}>
<AnimatedFastImage
{...props}
source={thumbnailSource}
style={[style, { opacity: this.thumbnailAnimated }]}
onLoad={this.handleThumbnailLoad}
blurRadius={1}
/>
<AnimatedFastImage
{...props}
source={source}
style={[styles.imageOverlay, { opacity: this.imageAnimated }, style]}
onLoad={this.onImageLoad}
/>
</View>
);
}
}
export default ProgressiveImage;

View File

@ -2,11 +2,9 @@ import React, { Component } from 'react';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
// Actions // Actions
import { getUserDataWithUsername } from '../../../realm/realm'; import { toggleAccountsBottomSheet } from '../../../redux/actions/uiAction';
import { switchAccount } from '../../../providers/hive/auth';
import { updateCurrentAccount } from '../../../redux/actions/accountAction';
import { logout, isRenderRequired } from '../../../redux/actions/applicationActions'; import { logout } from '../../../redux/actions/applicationActions';
// Component // Component
import SideMenuView from '../view/sideMenuView'; import SideMenuView from '../view/sideMenuView';
@ -18,32 +16,6 @@ import SideMenuView from '../view/sideMenuView';
*/ */
class SideMenuContainer extends Component { class SideMenuContainer extends Component {
constructor(props) {
super(props);
this.state = {
accounts: [],
};
}
// Component Life Cycle Functions
_createUserList = (otherAccounts) => {
const { currentAccount } = this.props;
const accounts = [];
otherAccounts.forEach((element) => {
accounts.push({
name: `@${element.username}`,
username: element.username,
id: element.username,
displayName: element.display_name,
isCurrentAccount: element.username === currentAccount.name,
});
});
this.setState({ accounts });
};
// Component Functions // Component Functions
_navigateToRoute = (route = null) => { _navigateToRoute = (route = null) => {
@ -53,70 +25,30 @@ class SideMenuContainer extends Component {
} }
}; };
_switchAccount = async (switchingAccount = {}) => {
const { dispatch, currentAccount, navigation, otherAccounts } = this.props;
if (switchingAccount.username !== currentAccount.name) {
navigation.closeDrawer();
const accountData = otherAccounts.filter(
(account) => account.username === switchingAccount.username,
)[0];
// control user persist whole data or just username
if (accountData.name) {
accountData.username = accountData.name;
dispatch(updateCurrentAccount(accountData));
dispatch(isRenderRequired(true));
const upToDateCurrentAccount = await switchAccount(accountData.name);
const realmData = await getUserDataWithUsername(accountData.name);
upToDateCurrentAccount.username = upToDateCurrentAccount.name;
upToDateCurrentAccount.local = realmData[0];
dispatch(updateCurrentAccount(upToDateCurrentAccount));
} else {
const _currentAccount = await switchAccount(accountData.username);
const realmData = await getUserDataWithUsername(accountData.username);
_currentAccount.username = _currentAccount.name;
_currentAccount.local = realmData[0];
dispatch(updateCurrentAccount(_currentAccount));
dispatch(isRenderRequired(true));
}
}
};
_handleLogout = () => { _handleLogout = () => {
const { dispatch } = this.props; const { logout, navigation } = this.props;
dispatch(logout()); navigation.closeDrawer();
logout();
}; };
UNSAFE_componentWillReceiveProps(nextProps) { _handlePressOptions = () => {
const { isLoggedIn } = this.props; const { toggleAccountsBottomSheet } = this.props;
if (isLoggedIn) { toggleAccountsBottomSheet();
this._createUserList(nextProps.otherAccounts); };
}
}
render() { render() {
const { currentAccount, isLoggedIn } = this.props; const { currentAccount, isLoggedIn } = this.props;
const { accounts } = this.state;
return ( return (
<SideMenuView <SideMenuView
navigateToRoute={this._navigateToRoute} navigateToRoute={this._navigateToRoute}
isLoggedIn={isLoggedIn} isLoggedIn={isLoggedIn}
userAvatar={null} userAvatar={null}
accounts={accounts}
currentAccount={currentAccount} currentAccount={currentAccount}
switchAccount={this._switchAccount}
handleLogout={this._handleLogout} handleLogout={this._handleLogout}
handlePressOptions={this._handlePressOptions}
/> />
); );
} }
@ -128,4 +60,9 @@ const mapStateToProps = (state) => ({
otherAccounts: state.account.otherAccounts, otherAccounts: state.account.otherAccounts,
}); });
export default connect(mapStateToProps)(SideMenuContainer); const mapDispatchToProps = {
toggleAccountsBottomSheet,
logout,
};
export default connect(mapStateToProps, mapDispatchToProps)(SideMenuContainer);

View File

@ -1,35 +1,25 @@
import React, { Component, useEffect, useState, useRef } from 'react'; import React, { useEffect, useState, useRef } from 'react';
import { import { View, Text, ImageBackground, FlatList, TouchableOpacity } from 'react-native';
View,
Text,
ImageBackground,
FlatList,
TouchableOpacity,
SafeAreaView,
} from 'react-native';
import { injectIntl, useIntl } from 'react-intl'; import { injectIntl, useIntl } from 'react-intl';
import LinearGradient from 'react-native-linear-gradient'; import LinearGradient from 'react-native-linear-gradient';
import ActionSheet from 'react-native-actionsheet'; import ActionSheet from 'react-native-actionsheet';
import VersionNumber from 'react-native-version-number'; import VersionNumber from 'react-native-version-number';
import { isEmpty } from 'lodash';
import { getStorageType } from '../../../realm/realm'; import { getStorageType } from '../../../realm/realm';
import Modal from '../../modal';
// Components // Components
import { Icon } from '../../icon'; import { Icon } from '../../icon';
import { UserAvatar } from '../../userAvatar'; import { UserAvatar } from '../../userAvatar';
import Separator from '../../basicUIElements/view/separator/separatorView';
import { TextWithIcon } from '../../basicUIElements'; import { TextWithIcon } from '../../basicUIElements';
// Constants // Constants
import MENU from '../../../constants/sideMenuItems'; import MENU from '../../../constants/sideMenuItems';
import { default as ROUTES } from '../../../constants/routeNames';
//Utils //Utils
import { getVotingPower } from '../../../utils/manaBar'; import { getVotingPower } from '../../../utils/manaBar';
// Styles // Styles
import styles from './sideMenuStyles'; import styles from './sideMenuStyles';
import { TextButton } from '../../buttons';
// Images // Images
const SIDE_MENU_BACKGROUND = require('../../../assets/side_menu_background.png'); const SIDE_MENU_BACKGROUND = require('../../../assets/side_menu_background.png');
@ -38,9 +28,8 @@ const SideMenuView = ({
currentAccount, currentAccount,
isLoggedIn, isLoggedIn,
handleLogout, handleLogout,
accounts,
switchAccount,
navigateToRoute, navigateToRoute,
handlePressOptions,
}) => { }) => {
const intl = useIntl(); const intl = useIntl();
const ActionSheetRef = useRef(null); const ActionSheetRef = useRef(null);
@ -49,7 +38,6 @@ const SideMenuView = ({
isLoggedIn ? MENU.AUTH_MENU_ITEMS : MENU.NO_AUTH_MENU_ITEMS, isLoggedIn ? MENU.AUTH_MENU_ITEMS : MENU.NO_AUTH_MENU_ITEMS,
); );
const [storageT, setStorageT] = useState('R'); const [storageT, setStorageT] = useState('R');
const [isAccountsModalOpen, setIsAccountsModalOpen] = useState(false);
const [upower, setUpower] = useState(0); const [upower, setUpower] = useState(0);
// Component Life Cycles // Component Life Cycles
@ -66,7 +54,7 @@ const SideMenuView = ({
}, []); }, []);
useEffect(() => { useEffect(() => {
if (isLoggedIn) { if (isLoggedIn && !isEmpty(currentAccount)) {
setUpower(getVotingPower(currentAccount).toFixed(1)); setUpower(getVotingPower(currentAccount).toFixed(1));
} }
}); });
@ -81,10 +69,6 @@ const SideMenuView = ({
navigateToRoute(item.route); navigateToRoute(item.route);
}; };
const _toggleAccountsModalOpen = () => {
setIsAccountsModalOpen(!isAccountsModalOpen);
};
useEffect(() => { useEffect(() => {
setMenuItems(isLoggedIn ? MENU.AUTH_MENU_ITEMS : MENU.NO_AUTH_MENU_ITEMS); setMenuItems(isLoggedIn ? MENU.AUTH_MENU_ITEMS : MENU.NO_AUTH_MENU_ITEMS);
}, [isLoggedIn]); }, [isLoggedIn]);
@ -121,29 +105,6 @@ const SideMenuView = ({
</TouchableOpacity> </TouchableOpacity>
); );
const _handlePressAccountTile = (item) => {
if (!item.isCurrentAccount) {
switchAccount(item);
}
setIsAccountsModalOpen(false);
};
const _renderAccountTile = (item) => (
<TouchableOpacity style={styles.accountTile} onPress={() => _handlePressAccountTile(item)}>
<View style={styles.avatarAndNameContainer}>
<UserAvatar username={item.username} />
<View style={styles.nameContainer}>
{item.displayName && <Text style={styles.displayName}>{item.displayName}</Text>}
<Text style={styles.name}>{item.name}</Text>
</View>
</View>
{item.isCurrentAccount && (
<Icon iconType="AntDesign" name="checkcircle" style={styles.checkIcon} size={24} />
)}
</TouchableOpacity>
);
return ( return (
<View style={styles.container}> <View style={styles.container}>
<LinearGradient <LinearGradient
@ -179,7 +140,7 @@ const SideMenuView = ({
/> />
</View> </View>
<TouchableOpacity style={styles.iconWrapper} onPress={_toggleAccountsModalOpen}> <TouchableOpacity style={styles.iconWrapper} onPress={handlePressOptions}>
<Icon <Icon
iconType="SimpleLineIcons" iconType="SimpleLineIcons"
style={styles.optionIcon} style={styles.optionIcon}
@ -209,42 +170,6 @@ const SideMenuView = ({
index === 0 ? handleLogout() : null; index === 0 ? handleLogout() : null;
}} }}
/> />
<Modal
isFullScreen={false}
isOpen={isAccountsModalOpen}
isBottomModal
isTransparent
isRadius
coverScreen={false}
title={intl.formatMessage({ id: 'side_menu.accounts' })}
onBackdropPress={_toggleAccountsModalOpen}
>
<SafeAreaView style={styles.accountModal}>
<Separator style={styles.separator} />
<FlatList
data={accounts}
ItemSeparatorComponent={() => <Separator style={styles.separator} />}
renderItem={({ item }) => _renderAccountTile(item)}
scrollEnabled
/>
<Separator style={styles.separator} />
<View style={styles.buttonContainer}>
<TextButton
text={intl.formatMessage({ id: 'side_menu.create_a_new_account' })}
textStyle={styles.textButton}
onPress={() => navigateToRoute(ROUTES.SCREENS.REGISTER)}
/>
</View>
<Separator style={styles.separator} />
<View style={styles.buttonContainer}>
<TextButton
text={intl.formatMessage({ id: 'side_menu.add_an_existing_account' })}
textStyle={styles.textButton}
onPress={() => navigateToRoute(ROUTES.SCREENS.LOGIN)}
/>
</View>
</SafeAreaView>
</Modal>
</View> </View>
); );
}; };

View File

@ -0,0 +1,4 @@
import SubscribedCommunitiesListView from './view/subscribedCommunitiesListView';
import SubscribedCommunitiesList from './view/subscribedCommunitiesListView';
export default SubscribedCommunitiesList;

View File

@ -0,0 +1,51 @@
import EStyleSheet from 'react-native-extended-stylesheet';
export default EStyleSheet.create({
container: {
flex: 1,
backgroundColor: '$primaryBackgroundColor',
},
itemWrapper: {
paddingHorizontal: 16,
paddingTop: 16,
paddingBottom: 8,
borderRadius: 8,
backgroundColor: '$primaryBackgroundColor',
flexDirection: 'row',
alignItems: 'center',
},
itemWrapperGray: {
backgroundColor: '$primaryLightBackground',
},
username: {
marginLeft: 10,
color: '$primaryBlack',
},
communityWrapper: {
paddingHorizontal: 16,
paddingTop: 10,
paddingBottom: 10,
borderRadius: 8,
backgroundColor: '$primaryBackgroundColor',
flexDirection: 'row',
alignItems: 'center',
flex: 1,
},
subscribeButton: {
maxWidth: 75,
borderWidth: 1,
borderColor: '$primaryBlue',
},
subscribeButtonText: {
textAlign: 'center',
color: '$primaryBlue',
},
community: {
justifyContent: 'center',
marginLeft: 15,
color: '$primaryBlack',
},
tabbarItem: {
flex: 1,
},
});

View File

@ -0,0 +1,82 @@
import React from 'react';
import { View, FlatList, TouchableOpacity, Text, ActivityIndicator } from 'react-native';
import { useIntl } from 'react-intl';
import { Tag, UserAvatar } from '../../index';
import { ListPlaceHolder } from '../../basicUIElements';
import DEFAULT_IMAGE from '../../../assets/no_image.png';
import styles from './subscribedCommunitiesListStyles';
const SubscribedCommunitiesListView = ({
data,
subscribingCommunities,
handleOnPress,
handleSubscribeButtonPress,
}) => {
const intl = useIntl();
const _renderEmptyContent = () => {
return (
<>
<ListPlaceHolder />
</>
);
};
return (
<FlatList
data={data}
keyExtractor={(item, index) => index.toString()}
renderItem={({ item, index }) => (
<View style={[styles.communityWrapper, index % 2 !== 0 && styles.itemWrapperGray]}>
<View style={{ flex: 3, flexDirection: 'row', alignItems: 'center' }}>
<TouchableOpacity onPress={() => handleOnPress(item[0])}>
<UserAvatar username={item[0]} defaultSource={DEFAULT_IMAGE} noAction />
</TouchableOpacity>
<TouchableOpacity onPress={() => handleOnPress(item[0])}>
<Text style={styles.community}>{item[1]}</Text>
</TouchableOpacity>
</View>
<View>
{subscribingCommunities.hasOwnProperty(item[0]) &&
subscribingCommunities[item[0]].loading ? (
<View style={{ width: 65, alignItems: 'center', justifyContent: 'center' }}>
<ActivityIndicator />
</View>
) : (
<Tag
style={styles.subscribeButton}
textStyle={item[4] && styles.subscribeButtonText}
value={
!item[4]
? intl.formatMessage({
id: 'search_result.communities.subscribe',
})
: intl.formatMessage({
id: 'search_result.communities.unsubscribe',
})
}
isPin={!item[4]}
isFilter
onPress={() =>
handleSubscribeButtonPress(
{
isSubscribed: item[4],
communityId: item[0],
},
'communitiesScreenJoinedTab',
)
}
/>
)}
</View>
</View>
)}
ListEmptyComponent={_renderEmptyContent}
/>
);
};
export default SubscribedCommunitiesListView;

View File

@ -87,23 +87,22 @@ class UpvoteContainer extends PureComponent {
const quote = get(globalProps, 'quote', 0); const quote = get(globalProps, 'quote', 0);
const sbdPrintRate = get(globalProps, 'sbdPrintRate', 0); const sbdPrintRate = get(globalProps, 'sbdPrintRate', 0);
const SBD_PRINT_RATE_MAX = 10000; const SBD_PRINT_RATE_MAX = 10000;
const percent_steem_dollars = const percent_steem_dollars = (content.percent_hbd || 10000) / 20000;
(content.percent_hbd || content.percent_steem_dollars || 10000) / 20000;
const pending_payout_sbd = pendingPayout * percent_steem_dollars; const pending_payout_hbd = pendingPayout * percent_steem_dollars;
const price_per_steem = base / quote; const price_per_steem = base / quote;
const pending_payout_sp = (pendingPayout - pending_payout_sbd) / price_per_steem; const pending_payout_hp = (pendingPayout - pending_payout_hbd) / price_per_steem;
const pending_payout_printed_sbd = pending_payout_sbd * (sbdPrintRate / SBD_PRINT_RATE_MAX); const pending_payout_printed_hbd = pending_payout_hbd * (sbdPrintRate / SBD_PRINT_RATE_MAX);
const pending_payout_printed_steem = const pending_payout_printed_hive =
(pending_payout_sbd - pending_payout_printed_sbd) / price_per_steem; (pending_payout_hbd - pending_payout_printed_hbd) / price_per_steem;
const breakdownPayout = const breakdownPayout =
pending_payout_printed_sbd.toFixed(3) + pending_payout_printed_hbd.toFixed(3) +
' HBD, ' + ' HBD, ' +
pending_payout_printed_steem.toFixed(3) + pending_payout_printed_hive.toFixed(3) +
' HIVE, ' + ' HIVE, ' +
pending_payout_sp.toFixed(3) + pending_payout_hp.toFixed(3) +
' HP'; ' HP';
return ( return (

View File

@ -252,6 +252,7 @@
"schedules": "Jaduwal", "schedules": "Jaduwal",
"gallery": "Album", "gallery": "Album",
"settings": "Peungaturan", "settings": "Peungaturan",
"communities": "Communities",
"add_account": "Tamah akun", "add_account": "Tamah akun",
"logout": "Teubit", "logout": "Teubit",
"cancel": "Batëu", "cancel": "Batëu",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "جداول زمنية", "schedules": "جداول زمنية",
"gallery": "معرض الصور", "gallery": "معرض الصور",
"settings": "إعدادات", "settings": "إعدادات",
"communities": "Communities",
"add_account": "إضافة حساب", "add_account": "إضافة حساب",
"logout": "تسجيل الخروج", "logout": "تسجيل الخروج",
"cancel": "إلغاء", "cancel": "إلغاء",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Cədvəllər", "schedules": "Cədvəllər",
"gallery": "Qalereya", "gallery": "Qalereya",
"settings": "Tənzimləmələr", "settings": "Tənzimləmələr",
"communities": "Communities",
"add_account": "Hesab Əlavə et", "add_account": "Hesab Əlavə et",
"logout": ıxış", "logout": ıxış",
"cancel": "İmtina", "cancel": "İmtina",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -159,7 +159,7 @@
"voting_power": "Сила за гласуване", "voting_power": "Сила за гласуване",
"login_to_see": "Влез в акаунта да видиш", "login_to_see": "Влез в акаунта да видиш",
"follow_people": "Последвайте хора да ви последват и те", "follow_people": "Последвайте хора да ви последват и те",
"follow_communities": "Join some communities to fill your feed", "follow_communities": "Влез в някой общества за да изпълниш потока си",
"havent_commented": "Все още няма коментари", "havent_commented": "Все още няма коментари",
"havent_posted": "Все още няма публикации", "havent_posted": "Все още няма публикации",
"steem_power": "Hive Сила/стойност", "steem_power": "Hive Сила/стойност",
@ -241,8 +241,8 @@
"new": "Нови", "new": "Нови",
"blog": "Блог", "blog": "Блог",
"posts": "Публикации", "posts": "Публикации",
"friends": "Friends", "friends": "Приятели",
"communities": "Communities" "communities": "Общности"
}, },
"side_menu": { "side_menu": {
"profile": "Профил", "profile": "Профил",
@ -252,13 +252,14 @@
"schedules": "Графици", "schedules": "Графици",
"gallery": "Галерия", "gallery": "Галерия",
"settings": "Настройки", "settings": "Настройки",
"communities": "Общности",
"add_account": "Добавяне на профил", "add_account": "Добавяне на профил",
"logout": "Изход", "logout": "Изход",
"cancel": "Отказ", "cancel": "Отказ",
"logout_text": "Сигурни ли сте, че искате да излезете?", "logout_text": "Сигурни ли сте, че искате да излезете?",
"create_a_new_account": "Create a new account", "create_a_new_account": "Създаване на нов акаунт",
"add_an_existing_account": "Add an existing account", "add_an_existing_account": "Добави съществуващ акаунт",
"accounts": "Accounts" "accounts": "Акаунти"
}, },
"header": { "header": {
"title": "Влезте, за да персонализирате вашите постове", "title": "Влезте, за да персонализирате вашите постове",
@ -287,18 +288,18 @@
"limited_characters": "Използвайте само малки букви, цифри и едно тире", "limited_characters": "Използвайте само малки букви, цифри и едно тире",
"limited_firstchar": "Тагът трябва да започва с буква!", "limited_firstchar": "Тагът трябва да започва с буква!",
"limited_lastchar": "Тагът трябва да завършва с буква или число", "limited_lastchar": "Тагът трябва да завършва с буква или число",
"setting_schedule": "Scheduling Time", "setting_schedule": "Насрочване за време",
"setting_reward": "Reward", "setting_reward": "Награда",
"setting_beneficiary": "Beneficiary", "setting_beneficiary": "Бенефициент",
"reward_default": "Default 50% / 50%", "reward_default": "По подразбиране 50% / 50%",
"reward_power_up": "Power Up 100%", "reward_power_up": "Намаляне на силата 100%",
"reward_decline": "Decline Payout", "reward_decline": "Откажи плащането",
"beneficiaries": "Beneficiaries", "beneficiaries": "Бенефициенти",
"options": "Options", "options": "Опции",
"my_blog": "My Blog", "my_blog": "Моят блог",
"my_communities": "My Communities", "my_communities": "Моите общества",
"top_communities": "Top Communities", "top_communities": "Топ Общности",
"schedule_modal_title": "Schedule Post" "schedule_modal_title": "Насрочи пост"
}, },
"pincode": { "pincode": {
"enter_text": "Вкарай Пин-код за отключване", "enter_text": "Вкарай Пин-код за отключване",
@ -314,7 +315,7 @@
"fail": "Провал!!", "fail": "Провал!!",
"move": "Премести", "move": "Премести",
"move_question": "Сигурен ли сте да преместите към чернови?", "move_question": "Сигурен ли сте да преместите към чернови?",
"success_shared": "Success! Content submitted!", "success_shared": "Успех! Съдържанието е изпратено!",
"success_moved": "Премено в чернови", "success_moved": "Премено в чернови",
"permission_denied": "Достъпът е отказан", "permission_denied": "Достъпът е отказан",
"permission_text": "Моля, идете на Настройки на телефона и променете разрешенията към Ecency.", "permission_text": "Моля, идете на Настройки на телефона и променете разрешенията към Ecency.",
@ -324,15 +325,15 @@
"success_favorite": "Добавено в любими!", "success_favorite": "Добавено в любими!",
"success_unfavorite": "Прамахнат от любими!", "success_unfavorite": "Прамахнат от любими!",
"success_follow": "Последван успешно!", "success_follow": "Последван успешно!",
"fail_follow": "Follow failed!", "fail_follow": "Последването се провали!",
"success_subscribe": "Subscribe success!", "success_subscribe": "Абонирането е успешно!",
"fail_subscribe": "Subscribe failed!", "fail_subscribe": "Абонирането се провали!",
"success_leave": "Leave success!", "success_leave": "Излизането е успешно!",
"fail_leave": "Leave failed!", "fail_leave": "Излизането се провали!",
"success_mute": "Заглушаване успешно!", "success_mute": "Заглушаване успешно!",
"success_unmute": "Заглушаване премахнато успешно!", "success_unmute": "Заглушаване премахнато успешно!",
"success_unfollow": "Отказ от следване!", "success_unfollow": "Отказ от следване!",
"fail_unfollow": "Unfollow failed!", "fail_unfollow": "Отследването се провали!",
"warning": "Внимание", "warning": "Внимание",
"invalid_pincode": "Невалиден Пин-код,провери и опитай отново.", "invalid_pincode": "Невалиден Пин-код,провери и опитай отново.",
"remove_alert": "Сигорни ли сте за премахването?", "remove_alert": "Сигорни ли сте за премахването?",
@ -348,7 +349,7 @@
"same_user": "Този потребител вече е добавен в листа.", "same_user": "Този потребител вече е добавен в листа.",
"unknow_error": "Възникна грешка", "unknow_error": "Възникна грешка",
"error": "Грешка", "error": "Грешка",
"fetch_error": "Connection issue, change server and restart", "fetch_error": "Проблем с връзката, сменете сървъра и рестартирайте",
"connection_fail": "Връзката е неуспешна", "connection_fail": "Връзката е неуспешна",
"connection_success": "Успешно свързване.", "connection_success": "Успешно свързване.",
"checking": "Проверка...", "checking": "Проверка...",
@ -359,10 +360,10 @@
"payloadTooLarge": "Размерът на файла е твърде голям, моля преоразмерете или качете по-малко изображение", "payloadTooLarge": "Размерът на файла е твърде голям, моля преоразмерете или качете по-малко изображение",
"qoutaExceeded": "Превишена квота за качване", "qoutaExceeded": "Превишена квота за качване",
"invalidImage": "Невалидна снимка,опитайте различен файл", "invalidImage": "Невалидна снимка,опитайте различен файл",
"something_wrong": "Something went wrong.", "something_wrong": "Нещо се обърка.",
"something_wrong_alt": "Try https://ecency.com", "something_wrong_alt": "Опитай https://ecency.com",
"something_wrong_reload": "Reload", "something_wrong_reload": "Презареди",
"can_not_be_empty": "Title and body can not be empty!" "can_not_be_empty": "Заглавитето и основата немогат да бъдат празни!"
}, },
"post": { "post": {
"reblog_alert": "Сигорни ли сте,че искате да споделите?", "reblog_alert": "Сигорни ли сте,че искате да споделите?",
@ -510,7 +511,7 @@
"days": "дни", "days": "дни",
"user": "Потребител", "user": "Потребител",
"permlink": "Публикация", "permlink": "Публикация",
"permlinkPlaceholder": "username/permlink", "permlinkPlaceholder": "потребителско име/permlink",
"information": "Сигурни ли сте, че искате да промотирате?" "information": "Сигурни ли сте, че искате да промотирате?"
}, },
"boostPost": { "boostPost": {
@ -538,28 +539,28 @@
"more_replies": "още отговори" "more_replies": "още отговори"
}, },
"search_result": { "search_result": {
"others": "Others", "others": "Други",
"best": { "best": {
"title": "Best" "title": "Най-добри"
}, },
"people": { "people": {
"title": "People" "title": "Хора"
}, },
"topics": { "topics": {
"title": "Topics" "title": "Tеми"
}, },
"communities": { "communities": {
"title": "Общности", "title": "Групи",
"subscribe": "Join", "subscribe": "Присъединете се",
"unsubscribe": "Leave", "unsubscribe": "Напусни",
"subscribers": "Members", "subscribers": "Членове",
"posters": "Публикуващи", "posters": "Публикуващи",
"posts": "Публикации" "posts": "Публикации"
}, },
"communities_filter": { "communities_filter": {
"my": "My Communities", "my": "Моите общества",
"rank": "Ранг", "rank": "Ранг",
"subs": "Members", "subs": "Членове",
"new": "Нови" "new": "Нови"
}, },
"post_result_filter": { "post_result_filter": {
@ -574,11 +575,24 @@
}, },
"community": { "community": {
"new_post": "Нова публикация", "new_post": "Нова публикация",
"community": "community", "community": "oбщество",
"details": "Details" "details": "Подробности"
}, },
"user": { "user": {
"follow": "Follow", "follow": "Последвай",
"unfollow": "Unfollow" "unfollow": "Отследване"
},
"communities": {
"joined": "Членство",
"discover": "Открийте"
},
"empty_screen": {
"nothing_here": "Няма нищо тук"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "সময়সূচীসমূহ", "schedules": "সময়সূচীসমূহ",
"gallery": "গ্যালারি", "gallery": "গ্যালারি",
"settings": "সেটিংস", "settings": "সেটিংস",
"communities": "Communities",
"add_account": "একাউন্ট যোগ করুন", "add_account": "একাউন্ট যোগ করুন",
"logout": "লগআউট", "logout": "লগআউট",
"cancel": "বাতিল করুন", "cancel": "বাতিল করুন",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "কমিউনিটি", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Zeitpläne", "schedules": "Zeitpläne",
"gallery": "Galerie", "gallery": "Galerie",
"settings": "Einstellungen", "settings": "Einstellungen",
"communities": "Communities",
"add_account": "Konto hinzufügen", "add_account": "Konto hinzufügen",
"logout": "Abmelden", "logout": "Abmelden",
"cancel": "Abbrechen", "cancel": "Abbrechen",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Beitreten", "subscribe": "Beitreten",
"unsubscribe": "Austreten", "unsubscribe": "Austreten",
"subscribers": "Mitglieder", "subscribers": "Mitglieder",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Folgen", "follow": "Folgen",
"unfollow": "Nicht mehr folgen" "unfollow": "Nicht mehr folgen"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Horarios", "schedules": "Horarios",
"gallery": "Galería", "gallery": "Galería",
"settings": "Ajustes", "settings": "Ajustes",
"communities": "Comunidades",
"add_account": "Agregar cuenta", "add_account": "Agregar cuenta",
"logout": "Cerrar sesión", "logout": "Cerrar sesión",
"cancel": "Cancelar", "cancel": "Cancelar",
@ -538,7 +539,7 @@
"more_replies": "mas comentarios" "more_replies": "mas comentarios"
}, },
"search_result": { "search_result": {
"others": "Others", "others": "Otros",
"best": { "best": {
"title": "Mejor" "title": "Mejor"
}, },
@ -549,7 +550,7 @@
"title": "Temas" "title": "Temas"
}, },
"communities": { "communities": {
"title": "Comunidades", "title": "Grupos",
"subscribe": "Unirse", "subscribe": "Unirse",
"unsubscribe": "Salir", "unsubscribe": "Salir",
"subscribers": "Participantes", "subscribers": "Participantes",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membresía",
"discover": "Descubrir"
},
"empty_screen": {
"nothing_here": "Nada aquí"
},
"beneficiary_modal": {
"percent": "Porcentaje",
"username": "Nombre de Usuario",
"addAccount": "Agregar cuenta",
"save": "Guardar"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -2,10 +2,10 @@
"wallet": { "wallet": {
"curation_reward": "Kuraatori tasu", "curation_reward": "Kuraatori tasu",
"author_reward": "Autoritasu", "author_reward": "Autoritasu",
"comment_benefactor_reward": "Benefactor Reward", "comment_benefactor_reward": "Kasusaaja tasu",
"claim_reward_balance": "Claim Reward ", "claim_reward_balance": "Lunasta tasu ",
"transfer": "Ülekanne", "transfer": "Ülekanne",
"transfer_to_vesting": "To Vesting", "transfer_to_vesting": "Teenimisse",
"transfer_from_savings": "Hoiusest", "transfer_from_savings": "Hoiusest",
"withdraw_vesting": "Väljaluülitus", "withdraw_vesting": "Väljaluülitus",
"fill_order": "Täida Tellimus", "fill_order": "Täida Tellimus",
@ -13,7 +13,7 @@
"comment": "Kommenteeri", "comment": "Kommenteeri",
"checkin": "Kasutus", "checkin": "Kasutus",
"vote": "Hääleta", "vote": "Hääleta",
"reblog": "Taaspostita", "reblog": "Jaga",
"login": "Sisselogimine", "login": "Sisselogimine",
"incoming_transfer_title": "Saabuv ülekanne", "incoming_transfer_title": "Saabuv ülekanne",
"outgoing_transfer_title": "Väljuv ülekanne", "outgoing_transfer_title": "Väljuv ülekanne",
@ -21,36 +21,36 @@
"delegation": "Volitus", "delegation": "Volitus",
"delegations": "Volitused", "delegations": "Volitused",
"delegation_title": "Volitustasu", "delegation_title": "Volitustasu",
"delegation_desc": "Earn Points everyday for delegation", "delegation_desc": "Teeni punkte igapäevaselt volitamisega",
"post_title": "Punktid postitustest", "post_title": "Punktid postitustest",
"comment_title": "Punktid kommentaaridest", "comment_title": "Punktid kommentaaridest",
"vote_title": "Punktid hääletustest", "vote_title": "Punktid hääletustest",
"reblog_title": "Punktid taaspostitustest", "reblog_title": "Punktid jagamise eest",
"login_title": "Punktid sisselogimisest", "login_title": "Punktid sisselogimisest",
"checkin_title": "Punktid sisse logimise eest", "checkin_title": "Punktid sisse logimise eest",
"referral": "Soovitaja", "referral": "Soovitaja",
"referral_title": "Referral rewards", "referral_title": "Soovitaja tasu",
"referral_desc": "Invite friends and earn Points", "referral_desc": "Kutsu sõbrad ja kogu punkte",
"checkin_extra_title": "Kasutusboonus", "checkin_extra_title": "Kasutusboonus",
"no_activity": "No recent activity", "no_activity": "Hiljutised tegevused puuduvad",
"outgoing_transfer_description": "", "outgoing_transfer_description": "",
"incoming_transfer_description": "", "incoming_transfer_description": "",
"post_desc": "You can earn point by posting regularly. Posting gives you upto 15 points.", "post_desc": "Teeni punkte regulaarselt postitamisega. Postitamine annab kuni 15 punkti.",
"comment_desc": "Each comment you make helps you to grow your audience and also earns you upto 5 points.", "comment_desc": "Iga kirjutatud kommentaar aitab kasvatada sinu kogukonda ning teenid 5 punkti.",
"checkin_desc": "Checking in regularly gives you 0.25 points.", "checkin_desc": "Regulaarselt sisse logides saad 0,25 punkti.",
"vote_desc": "By voting you give reward to other creators and also earn back upto 0.01 x vote weight points.", "vote_desc": "Hääletades tasustate teisi loojaid ja teenite ka ise kuni 0,01 x hääle kaalupunkti.",
"reblog_desc": "Share what post you like with your friends and earn points.", "reblog_desc": "Jaga meeldivat postitust enda sõpradega ning teeni punkte.",
"login_desc": "When you login into app first time you earn 100 points.", "login_desc": "Esimest korda rakendusse sisse logides teenid 100 punkti.",
"checkin_extra_desc": "Consistent use of app gives you extra chances to earn more points, be more active and earn more.", "checkin_extra_desc": "Regulaarne rakenduse kasutamine annab lisavõimaluse teenida rohkem punkte, ole aktiivne ning teeni rohkem.",
"dropdown_transfer": "Kingi", "dropdown_transfer": "Kingi",
"dropdown_promote": "Reklaami", "dropdown_promote": "Reklaami",
"dropdown_boost": "Võimenda", "dropdown_boost": "Võimenda",
"from": "Kellelt", "from": "Kellelt",
"to": "Kellele", "to": "Kellele",
"estimated_value_desc": "According to purchase value", "estimated_value_desc": "Vastavalt ostu väärtusele",
"estimated_value": "Estimated value", "estimated_value": "Hinnanguline väärtus",
"estimated_amount": "Vote value", "estimated_amount": "Hääle väärtus",
"amount_information": "Drag the slider to adjust the amount", "amount_information": "Koguse muutmiseks liiguta liugurit",
"amount": "Kogus", "amount": "Kogus",
"memo": "Märge", "memo": "Märge",
"information": "Oled kindel, et soovid raha üle kanda?", "information": "Oled kindel, et soovid raha üle kanda?",
@ -61,26 +61,26 @@
"transfer_token": "Ülekanne", "transfer_token": "Ülekanne",
"purchase_estm": "OSTA PUNKTE", "purchase_estm": "OSTA PUNKTE",
"points": "Kingi kellelegi punkte", "points": "Kingi kellelegi punkte",
"transfer_to_saving": "To Saving", "transfer_to_saving": "Hoiusesse",
"powerUp": "Lisa võimsust", "powerUp": "Lisa võimsust",
"withdraw_to_saving": "Withdraw Saving", "withdraw_to_saving": "Võta hoius välja",
"steemconnect_title": "Hivesigner Transfer", "steemconnect_title": "Hivesigneri ülekanne",
"next": "EDASI", "next": "EDASI",
"delegate": "Delegate", "delegate": "Volita",
"power_down": "Väljaluülitus", "power_down": "Väljaluülitus",
"withdraw_steem": "Withdraw HIVE", "withdraw_steem": "Võta välja HIVE",
"withdraw_sbd": "Withdraw HBD", "withdraw_sbd": "Võta välja HBD",
"transfer_to_savings": "To Savings", "transfer_to_savings": "Hoiusesse",
"convert": "Konverteeri", "convert": "Konverteeri",
"escrow_transfer": "Escrow Transfer", "escrow_transfer": "Deposiidi ülekanne",
"escrow_dispute": "Escrow Dispute", "escrow_dispute": "Deposiidi Vaidlustamine",
"escrow_release": "Escrow Release", "escrow_release": "Deposiidi Vabastamine",
"escrow_approve": "Escrow Approve", "escrow_approve": "Deposiidi Kinnitamine",
"cancel_transfer_from_savings": "Cancel From Savings", "cancel_transfer_from_savings": "Tühista ülekanne Hoiusest",
"delegate_vesting_shares": "Volitus", "delegate_vesting_shares": "Volitus",
"fill_convert_request": "Convert Executed", "fill_convert_request": "Vahetamine alustatud",
"fill_transfer_from_savings": "Savings Executed", "fill_transfer_from_savings": "Hoius alustatud",
"fill_vesting_withdraw": "PowerDown executed", "fill_vesting_withdraw": "PowerDown alustatud",
"estm": { "estm": {
"title": "Punktid", "title": "Punktid",
"buy": "OSTA PUNKTE" "buy": "OSTA PUNKTE"
@ -105,13 +105,13 @@
"btc": { "btc": {
"title": "BTC", "title": "BTC",
"buy": "OSTA BTC", "buy": "OSTA BTC",
"address": "RECEIVE" "address": "VÕTA VASTU"
} }
}, },
"notification": { "notification": {
"vote": "hääletatud", "vote": "hääletatud",
"unvote": "hääl eemaldatud", "unvote": "hääl eemaldatud",
"reply": "replied to", "reply": "vastas",
"mention": "mainis", "mention": "mainis",
"follow": "hakkas sind jälgima", "follow": "hakkas sind jälgima",
"unfollow": "enam ei jälgi sind", "unfollow": "enam ei jälgi sind",
@ -130,16 +130,16 @@
"this_week": "Sel nädalal", "this_week": "Sel nädalal",
"this_month": "Sel kuul", "this_month": "Sel kuul",
"older_then": "Vanem kui kuu", "older_then": "Vanem kui kuu",
"activities": "All", "activities": "Kõik",
"replies": "Vastused", "replies": "Vastused",
"mentions": "Mentions", "mentions": "Mainimised",
"reblogs": "Reblogs", "reblogs": "Jagatud",
"noactivity": "No recent activity" "noactivity": "Hiljutised tegevused puuduvad"
}, },
"leaderboard": { "leaderboard": {
"daily": "DAILY", "daily": "PÄEV",
"weekly": "WEEKLY", "weekly": "NÄDAL",
"monthly": "MONTHLY" "monthly": "KUU"
}, },
"messages": { "messages": {
"comingsoon": "Sõnumite funktsionaalus ei ole veel valimis!" "comingsoon": "Sõnumite funktsionaalus ei ole veel valimis!"
@ -158,18 +158,18 @@
"hours": "tundi", "hours": "tundi",
"voting_power": "Hääletusjõud", "voting_power": "Hääletusjõud",
"login_to_see": "Nägemiseks logi sisse", "login_to_see": "Nägemiseks logi sisse",
"follow_people": "Follow some people to fill your feed", "follow_people": "Jälgi inimesi, et täita oma voog",
"follow_communities": "Join some communities to fill your feed", "follow_communities": "Liitu kogukondadega, et täita oma voogu",
"havent_commented": "ei ole veel midagi kommenteerinud", "havent_commented": "ei ole veel midagi kommenteerinud",
"havent_posted": "ei ole veel midagi postitanud", "havent_posted": "ei ole veel midagi postitanud",
"steem_power": "Hive Power", "steem_power": "Hive Power",
"next_power_text": "Järgmise väljaluülitus on", "next_power_text": "Järgmise väljaluülitus on",
"days": "päeva", "days": "päeva",
"day": "päev", "day": "päev",
"steem_dollars": "Hive Dollars", "steem_dollars": "Hive Dollarid",
"savings": "Säästud", "savings": "Säästud",
"edit": { "edit": {
"display_name": "Display Name", "display_name": "Kuvatav Nimi",
"about": "Teave", "about": "Teave",
"location": "Asukoht", "location": "Asukoht",
"website": "Koduleht" "website": "Koduleht"
@ -188,7 +188,7 @@
"vote": "Hääleta", "vote": "Hääleta",
"comment": "Kommenteeri", "comment": "Kommenteeri",
"mention": "Maini", "mention": "Maini",
"reblog": "Taaspostita", "reblog": "Jaha",
"transfers": "Ülekanded" "transfers": "Ülekanded"
}, },
"pincode": "Pincode", "pincode": "Pincode",
@ -217,10 +217,10 @@
"signin_title": "Et saada osa kõikidest Ecency funktsioonidest", "signin_title": "Et saada osa kõikidest Ecency funktsioonidest",
"username": "Kasutajanimi", "username": "Kasutajanimi",
"password": "Parool või WIF", "password": "Parool või WIF",
"description": "By signing in, you agree to our Terms of Services and Privacy Policies.", "description": "Logides sisse, nõustute meie kasutustingimuste ja privaatsuseeskirjadega.",
"cancel": "tühista", "cancel": "tühista",
"login": "LOGI SISSE", "login": "LOGI SISSE",
"steemconnect_description": "If you don't want to keep your password encrypted and saved on your device, you can use Hivesigner.", "steemconnect_description": "Kui sa ei soovi hoida oma parooli krüpteerituna ja salvestatuna oma seadmes, kasuta Hivesigner'it.",
"steemconnect_fee_description": "info" "steemconnect_fee_description": "info"
}, },
"register": { "register": {
@ -229,9 +229,9 @@
"username": "Vali kasutajanimi", "username": "Vali kasutajanimi",
"mail": "Kirjuta oma e-posti aadress", "mail": "Kirjuta oma e-posti aadress",
"ref_user": "Kutsutud kasutaja (Vabatahtlik)", "ref_user": "Kutsutud kasutaja (Vabatahtlik)",
"500_error": "Your request could not be processed, signup queue is likely full! Try again in few minutes...", "500_error": "Toiming ebaõnnestus, registreerumise järjekord on täis! Proovi uuesti mõne minuti pärast...",
"title_description": "Üks kasutaja kõige haldamiseks", "title_description": "Üks kasutaja kõige haldamiseks",
"form_description": "By signing up with us, you agree to our Terms of Service and Privacy Policies." "form_description": "Registreerudes nõustute meie kasutustingimuste ja privaatsuseeskirjadega."
}, },
"home": { "home": {
"feed": "Sein", "feed": "Sein",
@ -252,6 +252,7 @@
"schedules": "Ajakavad", "schedules": "Ajakavad",
"gallery": "Galerii", "gallery": "Galerii",
"settings": "Seaded", "settings": "Seaded",
"communities": "Kogukonnad",
"add_account": "Lisa konto", "add_account": "Lisa konto",
"logout": "Logi välja", "logout": "Logi välja",
"cancel": "Tühista", "cancel": "Tühista",
@ -282,7 +283,7 @@
"limited_tags": "10 silti lubatud, eemalda mõned", "limited_tags": "10 silti lubatud, eemalda mõned",
"limited_length": "Sildi maksimum pikkus võib olla 24", "limited_length": "Sildi maksimum pikkus võib olla 24",
"limited_dash": "Kasuta ühte kriipsu igas sildis", "limited_dash": "Kasuta ühte kriipsu igas sildis",
"limited_space": "Use space to separate tags", "limited_space": "Kasuta tühikut, et eraldada silte",
"limited_lowercase": "Kasuta siltides ainult väiketähti", "limited_lowercase": "Kasuta siltides ainult väiketähti",
"limited_characters": "Kasuta ainult väiketähti, numbreid ja ühte kriipsu", "limited_characters": "Kasuta ainult väiketähti, numbreid ja ühte kriipsu",
"limited_firstchar": "Silt peab algama tähega", "limited_firstchar": "Silt peab algama tähega",
@ -298,7 +299,7 @@
"my_blog": "Minu blogi", "my_blog": "Minu blogi",
"my_communities": "Minu kogukonnad", "my_communities": "Minu kogukonnad",
"top_communities": "Top kogukonnad", "top_communities": "Top kogukonnad",
"schedule_modal_title": "Schedule Post" "schedule_modal_title": "Ajasta postitus"
}, },
"pincode": { "pincode": {
"enter_text": "Enter pin to unlock", "enter_text": "Enter pin to unlock",
@ -317,8 +318,8 @@
"success_shared": "Valmis! Sisu esitatud!", "success_shared": "Valmis! Sisu esitatud!",
"success_moved": "Teisaldatud mustanditesse", "success_moved": "Teisaldatud mustanditesse",
"permission_denied": "Juurdepääs keelatud", "permission_denied": "Juurdepääs keelatud",
"permission_text": "Please, go to phone Settings and change Ecency app permissions.", "permission_text": "Palun mine telefoniSeadetesse ning muuda Ecency rakenduse õiguseid.",
"key_warning": "Operation requires active key or master password, please relogin!", "key_warning": "Tegevus nõuab aktiivset võtit või master parooli, palun sisene uuesti!",
"success_rebloged": "Rebloged!", "success_rebloged": "Rebloged!",
"already_rebloged": "Sa oled seda juba jaganud!", "already_rebloged": "Sa oled seda juba jaganud!",
"success_favorite": "Lisatud lemmikuks!", "success_favorite": "Lisatud lemmikuks!",
@ -336,8 +337,8 @@
"warning": "Hoiatus", "warning": "Hoiatus",
"invalid_pincode": "Invalid pin code, please check and try again.", "invalid_pincode": "Invalid pin code, please check and try again.",
"remove_alert": "Are you sure want to remove?", "remove_alert": "Are you sure want to remove?",
"clear_alert": "Are you sure you want to clear?", "clear_alert": "Kas soovid tõesti selle tühjendada?",
"clear_user_alert": "Are you sure you want to clear all user data?", "clear_user_alert": "Oled kindel, et soovid puhastada kõik kasutajaandmed?",
"clear": "Tühjenda", "clear": "Tühjenda",
"cancel": "Tühista", "cancel": "Tühista",
"delete": "Kustuta", "delete": "Kustuta",
@ -348,84 +349,84 @@
"same_user": "See konto on juba nimekirja lisatud", "same_user": "See konto on juba nimekirja lisatud",
"unknow_error": "Ilmnes tõrge", "unknow_error": "Ilmnes tõrge",
"error": "Tõrge", "error": "Tõrge",
"fetch_error": "Connection issue, change server and restart", "fetch_error": "Ühenduse viga, muuda serverit ja taaskäivita rakendus",
"connection_fail": "Ühendus nurjus!", "connection_fail": "Ühendus nurjus!",
"connection_success": "Edukalt ühendatud!", "connection_success": "Edukalt ühendatud!",
"checking": "Kontrollin...", "checking": "Kontrollin...",
"external_link": "Ava veebilehitsejas", "external_link": "Ava veebilehitsejas",
"not_existing_post": "The post does not exist! Please check permlink and author.", "not_existing_post": "Seda postitust ei eksisteeri! Palun kontrolli linki ja autorit.",
"google_play_version": "We noticed that your device has old version of Google Play. Please update Google Play services and try again!", "google_play_version": "Märkasime, et teie seadmes on Google Play vanem versioon. Palun uuenda Google Play services ja proovi uuesti!",
"rc_down": "Not enough resource credits to perform an action! \n\nBoost your account to continue enjoy the experience. Do you want to boost your account, now?", "rc_down": "Toimingu jaoks pole piisavalt ressursipunkte!\n\nVõimendage oma kontot, et jätkata nautimisega. Kas soovite kohe võimendada oma kontot?",
"payloadTooLarge": "File size too big, please resize or upload smaller image", "payloadTooLarge": "Fail liiga suur, palun vähenda suurust või lae üles väiksem pilt",
"qoutaExceeded": "Upload quota exceeded", "qoutaExceeded": "Üleslaadimise limiit ületatud",
"invalidImage": "Invalid image, try different file", "invalidImage": "Pilt ei sobi, proovi teist faili",
"something_wrong": "Midagi läks valesti.", "something_wrong": "Midagi läks valesti.",
"something_wrong_alt": "Proovi https://ecency.com", "something_wrong_alt": "Proovi https://ecency.com",
"something_wrong_reload": "Reload", "something_wrong_reload": "Värskenda",
"can_not_be_empty": "Title and body can not be empty!" "can_not_be_empty": "Pealkiri ja sisu ei tohi olla tühjad!"
}, },
"post": { "post": {
"reblog_alert": "Oled sa kindel, et soovid seda jagada?", "reblog_alert": "Oled sa kindel, et soovid seda jagada?",
"removed_hint": "Content is not available", "removed_hint": "Sisu pole kättesaadav",
"copy_link": "Copy link", "copy_link": "Kopeeri link",
"reblogged": "jagatud %s poolt", "reblogged": "jagatud %s poolt",
"sponsored": "SPONSOREERITUD", "sponsored": "SPONSOREERITUD",
"open_thread": "Open thread", "open_thread": "Ava lõim",
"image": "Image", "image": "Pilt",
"link": "Link", "link": "Link",
"gallery_mode": "Gallery mode", "gallery_mode": "Galerii",
"save_to_local": "Download to device", "save_to_local": "Lae enda seadmesse",
"image_saved": "Image saved to Photo Gallery", "image_saved": "Pilt salvestatud Galeriisse",
"image_saved_error": "Error Saving Image", "image_saved_error": "Pildi salvestamine ebaõnnestus",
"wrong_link": "Wrong link" "wrong_link": "Vale link"
}, },
"drafts": { "drafts": {
"title": "Drafts", "title": "Mustandid",
"load_error": "Could not load drafts", "load_error": "Mustandite laadimine ei õnnestunud",
"empty_list": "Nothing here", "empty_list": "Siin pole midagi",
"deleted": "Draft deleted" "deleted": "Mustand kustutatud"
}, },
"schedules": { "schedules": {
"title": "Schedules", "title": "Planeeritud",
"empty_list": "Nothing here", "empty_list": "Siin pole midagi",
"deleted": "Scheduled post deleted", "deleted": "Ajastatud postitus kustutatud",
"move": "Move to drafts", "move": "Teisalda mustanditesse",
"moved": "Moved to drafts" "moved": "Teisaldatud mustanditesse"
}, },
"bookmarks": { "bookmarks": {
"title": "Bookmarks", "title": "Järjehoidjad",
"load_error": "Could not load bookmarks", "load_error": "Järjehoidjad ei saanud laadida",
"empty_list": "Nothing here", "empty_list": "Siin pole midagi",
"deleted": "Bookmark removed", "deleted": "Järjehoidja eemaldatud",
"search": "Search in bookmarks", "search": "Otsi järjehoidjatest",
"added": "Added to bookmarks", "added": "Lisatud järjehoidjatesse",
"add": "Add to bookmarks" "add": "Lisa järjehoidjatesse"
}, },
"report": { "report": {
"added": "Reported objectionable content" "added": "Teavitatud ebasobivast sisust"
}, },
"favorites": { "favorites": {
"title": "Favorites", "title": "Lemmikud",
"load_error": "Could not load favorites", "load_error": "Lemmikute laadimine ebaõnnestus",
"empty_list": "Nothing here", "empty_list": "Siin pole midagi",
"search": "Search in favorites" "search": "Otsi lemmikute hulgast"
}, },
"auth": { "auth": {
"invalid_pin": "Invalid pin code, please check and try again", "invalid_pin": "Invalid pin code, please check and try again",
"invalid_username": "Invalid username, please check and try again", "invalid_username": "Vigane kasutajanimi, palun kontrolli üle ja proovi uuesti",
"already_logged": "You are already logged in, please try to add another account", "already_logged": "Oled juba sisse logitud, palun proovi lisada teine kasutaja",
"invalid_credentials": "Invalid credentials, please check and try again", "invalid_credentials": "Vigased andmed, palun kontrolli ja proovi uuesti",
"unknow_error": "Unknown error, please write to support@ecency.com" "unknow_error": "Tundmatu viga, palun kirjuta meile support@ecency.com"
}, },
"payout": { "payout": {
"potential_payout": "Potential Payout", "potential_payout": "Potentsiaalne Väljamakse",
"promoted": "Promoted", "promoted": "Sponsitud",
"author_payout": "Author Payout", "author_payout": "Autoritasu",
"curation_payout": "Curation Payout", "curation_payout": "Hääletajate tasu",
"payout_date": "Väljamakse", "payout_date": "Väljamakse",
"beneficiaries": "Kasusaajad", "beneficiaries": "Kasusaajad",
"warn_zero_payout": "Kogus peab väljamakseks olema vähemalt $0.02", "warn_zero_payout": "Kogus peab väljamakseks olema vähemalt $0.02",
"breakdown": "Breakdown" "breakdown": "Analüüs"
}, },
"post_dropdown": { "post_dropdown": {
"copy": "kopeeri link", "copy": "kopeeri link",
@ -456,32 +457,32 @@
"transfer": { "transfer": {
"from": "Kellelt", "from": "Kellelt",
"to": "Kellele", "to": "Kellele",
"amount_information": "Drag the slider to adjust the amount", "amount_information": "Koguse muutmiseks liiguta liugurit",
"amount": "Kogus", "amount": "Kogus",
"memo": "Märge", "memo": "Märge",
"information": "Oled kindel, et soovid raha üle kanda?", "information": "Oled kindel, et soovid raha üle kanda?",
"amount_desc": "Saldo", "amount_desc": "Saldo",
"memo_desc": "See märge on avalik", "memo_desc": "See märge on avalik",
"convert_desc": "Convert takes 3.5 days and NOT recommended IF HBD price is higher than $1", "convert_desc": "Vahetamine võtab 3,5 päeva ja pole soovitatav kui HBD hind on kõrgem kui $1",
"to_placeholder": "Kasutajanimi", "to_placeholder": "Kasutajanimi",
"memo_placeholder": "Jäta oma märkmed siia", "memo_placeholder": "Jäta oma märkmed siia",
"transfer_token": "Ülekanne", "transfer_token": "Ülekanne",
"purchase_estm": "Purchase Points", "purchase_estm": "Osta punkte",
"convert": "Convert HBD to HIVE", "convert": "Vaheta HBD HIVEks",
"points": "Gift Points to someone", "points": "Kingi kellelegi punkte",
"transfer_to_saving": "Kanna säästudesse", "transfer_to_saving": "Kanna säästudesse",
"powerUp": "Lisa võimsust", "powerUp": "Lisa võimsust",
"withdraw_to_saving": "Withdraw To Saving", "withdraw_to_saving": "Liiguta hoiusesse",
"steemconnect_title": "Hivesigner Transfer", "steemconnect_title": "Hivesigneri ülekanne",
"estimated_weekly": "Estimated Weekly", "estimated_weekly": "Prognoositud nädalane",
"destination_accounts": "Destination Accounts", "destination_accounts": "Saaja Kontod",
"stop_information": "Are you sure want to stop?", "stop_information": "Oled kindel, et soovid peatada?",
"percent": "Percent", "percent": "Protsent",
"auto_vests": "Auto Vests", "auto_vests": "Automaatne Tulu",
"save": "SALVESTA", "save": "SALVESTA",
"percent_information": "Percent info", "percent_information": "Protsendi info",
"next": "EDASI", "next": "EDASI",
"delegate": "Delegate", "delegate": "Volita",
"power_down": "Power Down", "power_down": "Power Down",
"withdraw_steem": "Võta HIVE välja", "withdraw_steem": "Võta HIVE välja",
"withdraw_sbd": "Võta HIVE Dollar välja", "withdraw_sbd": "Võta HIVE Dollar välja",
@ -495,64 +496,64 @@
"next": "EDASI", "next": "EDASI",
"account": { "account": {
"title": "Võimenda kasutajat", "title": "Võimenda kasutajat",
"desc": "30 days delegation will boost your votes and social activities and give you more actions with more Resource Credits." "desc": "30-päevane volitus suurendab teie häält ja sotsiaalset tegevusi ning annab teile rohkem tegevusi koos rohkemate ressursipunktidega."
} }
}, },
"free_estm": { "free_estm": {
"title": "Free Points", "title": "Tasuta punktid",
"button": "SPIN & WIN", "button": "KEERUTA & VÕIDA",
"get_spin": "5 SPINS", "get_spin": "5 KEERUTUST",
"spin_right": "Spin Left", "spin_right": "Keerutust järgi",
"timer_text": "Next free spin in" "timer_text": "Järgmine tasuta keerutus"
}, },
"promote": { "promote": {
"title": "Promote", "title": "Reklaami",
"days": "days", "days": "päeva",
"user": "User", "user": "Kasutaja",
"permlink": "Post", "permlink": "Postita",
"permlinkPlaceholder": "username/permlink", "permlinkPlaceholder": "kasutajanimi/permlink",
"information": "Are you sure to promote?" "information": "Olete kindel, et soovite reklaamida?"
}, },
"boostPost": { "boostPost": {
"title": "Boost" "title": "Võimenda"
}, },
"voters_dropdown": { "voters_dropdown": {
"rewards": "REWARDS", "rewards": "TASUD",
"percent": "PERCENT", "percent": "PROTSENT",
"time": "TIME" "time": "AEG"
}, },
"reblog": { "reblog": {
"title": "Reblog Info" "title": "Jaga infot"
}, },
"dsteem": { "dsteem": {
"date_error": { "date_error": {
"device_time": "Your device time;", "device_time": "Seadme kellaaeg;",
"current_time": "Current time;", "current_time": "Praegune kellaaeg;",
"information": "We noticed that your device has incorrect date or time. Please fix Date & Time or Set Automatically and try again." "information": "Märkasime, et teie seadme kellaaeg ja kuupäev on vale. Muuda kellaaeg ja kuupäev või säti automaatseks ning proovi siis uuesti."
} }
}, },
"comments": { "comments": {
"title": "Kommentaarid", "title": "Kommentaarid",
"reveal_comment": "Reveal comment", "reveal_comment": "Näita kommentaari",
"read_more": "Read more comments", "read_more": "Näita rohkem kommentaare",
"more_replies": "more replies" "more_replies": "rohkem vastuseid"
}, },
"search_result": { "search_result": {
"others": "Others", "others": "Muud",
"best": { "best": {
"title": "Best" "title": "Parimad"
}, },
"people": { "people": {
"title": "People" "title": "Inimesed"
}, },
"topics": { "topics": {
"title": "Topics" "title": "Teemad"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Grupid",
"subscribe": "Join", "subscribe": "Liitu",
"unsubscribe": "Leave", "unsubscribe": "Lahku",
"subscribers": "Members", "subscribers": "Liikmed",
"posters": "Postitajad", "posters": "Postitajad",
"posts": "Post" "posts": "Post"
}, },
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Jälgi", "follow": "Jälgi",
"unfollow": "Lõpeta jälgimine" "unfollow": "Lõpeta jälgimine"
},
"communities": {
"joined": "Liikmelisus",
"discover": "Avasta"
},
"empty_screen": {
"nothing_here": "Siin pole midagi"
},
"beneficiary_modal": {
"percent": "Protsent",
"username": "Kasutajanimi",
"addAccount": "Lisa konto",
"save": "Salvesta"
} }
} }

View File

@ -2,11 +2,11 @@
"wallet": { "wallet": {
"curation_reward": "پاداش مشارکت", "curation_reward": "پاداش مشارکت",
"author_reward": "پاداش نویسنده", "author_reward": "پاداش نویسنده",
"comment_benefactor_reward": "Benefactor Reward", "comment_benefactor_reward": "پاداش حامی",
"claim_reward_balance": "Claim Reward ", "claim_reward_balance": "دریافت پاداش",
"transfer": "انتقال دادن", "transfer": "انتقال",
"transfer_to_vesting": "To Vesting", "transfer_to_vesting": "واگذاری",
"transfer_from_savings": "From Savings", "transfer_from_savings": "از پس انداز",
"withdraw_vesting": "کم کردن قدرت", "withdraw_vesting": "کم کردن قدرت",
"fill_order": "سفارش", "fill_order": "سفارش",
"post": "پست", "post": "پست",
@ -15,131 +15,131 @@
"vote": "رأی", "vote": "رأی",
"reblog": "اشتراک گذاری", "reblog": "اشتراک گذاری",
"login": "ورود", "login": "ورود",
"incoming_transfer_title": "تراکنش ورودی", "incoming_transfer_title": "Incoming transfer",
"outgoing_transfer_title": "تراکنش خروجی", "outgoing_transfer_title": "انتقال خروجی",
"checkin_extra": "پاداش", "checkin_extra": "پاداش",
"delegation": "اجاره", "delegation": "اجاره",
"delegations": "Delegations", "delegations": "اجاره ها",
"delegation_title": "پاداش اجاره دادن", "delegation_title": "پاداش اجاره دادن",
"delegation_desc": "Earn Points everyday for delegation", "delegation_desc": "کسب امیتاز برای اجاره",
"post_title": "امتیاز برای ایجاد پست", "post_title": "امتیاز برای ایجاد پست",
"comment_title": "امتیاز برای نظر دادن", "comment_title": "امتیاز برای نظر دادن",
"vote_title": "امتیاز برای رای دادن", "vote_title": "امتیاز برای رای دادن",
"reblog_title": "امتیاز برای اشتراک گذاری", "reblog_title": "امتیاز برای اشتراک گذاری",
"login_title": "امتیاز برای ورود به حساب کاربری", "login_title": "امتیاز برای ورود به حساب کاربری",
"checkin_title": "Points for heartbeat", "checkin_title": "امتیاز برای تپش قلب",
"referral": "Referral", "referral": "معرف",
"referral_title": "Referral rewards", "referral_title": "پاداش های معرفی",
"referral_desc": "Invite friends and earn Points", "referral_desc": "دوست ها را دعوت کنید و امیتاز کسب کنید",
"checkin_extra_title": "استفاده از پاداش", "checkin_extra_title": "پاداش استفاده",
"no_activity": "No recent activity", "no_activity": "اخیراً فعالیتی انجام نشده است",
"outgoing_transfer_description": "", "outgoing_transfer_description": "",
"incoming_transfer_description": "", "incoming_transfer_description": "",
"post_desc": "You can earn point by posting regularly. Posting gives you upto 15 points.", "post_desc": "شما میتوانید با ایجاد پست بطور منظم، الا ۱۵ امتیاز بدست بیارید.",
"comment_desc": "Each comment you make helps you to grow your audience and also earns you upto 5 points.", "comment_desc": "هر نظری که ثبت میکنید باعث میشود مخاطبان و دوستان خود را افزایش دهید و همچنین ۵ امتیاز را به همراه دارد.",
"checkin_desc": "Checking in regularly gives you 0.25 points.", "checkin_desc": "ورود به سیستم، بطور منظم ۰.۲۳ امیتاز بشما میدهد.",
"vote_desc": "By voting you give reward to other creators and also earn back upto 0.01 x vote weight points.", "vote_desc": "شما با رای دادن به آثار دیگران قدردانی خود را نشان میدهید و علاوه بر آن به میزان (0.01 ×میزان رای شما ) امتیاز دریافت می کنید.",
"reblog_desc": "Share what post you like with your friends and earn points.", "reblog_desc": "پست های مورد علاقه خود را با دوستانتان به اشتراک بگذارید و امتیاز دریافت کنید.",
"login_desc": "When you login into app first time you earn 100 points.", "login_desc": "وقتی که برای اولین باز به برنامه وارد شوید ۱۰۰ امیتاز کسب میکنید.",
"checkin_extra_desc": "Consistent use of app gives you extra chances to earn more points, be more active and earn more.", "checkin_extra_desc": "استفاده مداوم از برنامه به شما شانس کسب امتیاز بیشتر را میدهد، بیشتر فعال باشید و بیشتر امتیاز کسب کنید.",
"dropdown_transfer": "Gift", "dropdown_transfer": "هدیه",
"dropdown_promote": "Promote", "dropdown_promote": "تبلیغ",
"dropdown_boost": "Boost", "dropdown_boost": "ارتقاء",
"from": "از", "from": "از",
"to": "به", "to": "به",
"estimated_value_desc": "According to purchase value", "estimated_value_desc": "با توجه به ارزش خرید",
"estimated_value": "Estimated value", "estimated_value": "ارزش برآورد شده",
"estimated_amount": "Vote value", "estimated_amount": "ارزش رای",
"amount_information": "Drag the slider to adjust the amount", "amount_information": "کشیدن لغزنده برای تنظیم مقدار",
"amount": "مقدار", "amount": "مقدار",
"memo": "یادداشت", "memo": "یادداشت",
"information": "Are you sure to transfer funds?", "information": "آیا مطمئن هستید که وجوه را منتقل می کنید؟",
"amount_desc": "موجودی", "amount_desc": "موجودی",
"memo_desc": "این یادداشت عمومی است", "memo_desc": "این یادداشت عمومی است",
"to_placeholder": "نام کاربری", "to_placeholder": "نام کاربری",
"memo_placeholder": "یادداشت های خود را در اینجا وارد کنید", "memo_placeholder": "یادداشت های خود را در اینجا وارد کنید",
"transfer_token": "انتقال دادن", "transfer_token": "انتقال دادن",
"purchase_estm": "GET POINTS", "purchase_estm": "گرفتن امتیاز",
"points": "Gift Points to someone", "points": "هدیه دادن امیتازات به کسی دیگر",
"transfer_to_saving": "To Saving", "transfer_to_saving": "به پس انداز",
"powerUp": "بالا بردن قدرت", "powerUp": "بالا بردن قدرت",
"withdraw_to_saving": "Withdraw Saving", "withdraw_to_saving": "برداشت از پس انداز",
"steemconnect_title": "Hivesigner Transfer", "steemconnect_title": "انتقال از Hivesigner",
"next": "بعدی", "next": "بعدی",
"delegate": "Delegate", "delegate": "اجاره",
"power_down": "کم کردن قدرت", "power_down": "کم کردن قدرت",
"withdraw_steem": "Withdraw HIVE", "withdraw_steem": "برداشت HIVE",
"withdraw_sbd": "Withdraw HBD", "withdraw_sbd": "برداشتHBD",
"transfer_to_savings": "To Savings", "transfer_to_savings": "به پس انداز",
"convert": "Convert", "convert": "تبدیل",
"escrow_transfer": "Escrow Transfer", "escrow_transfer": "انتقال اسکرو",
"escrow_dispute": "Escrow Dispute", "escrow_dispute": "اختلاف سپرده",
"escrow_release": "Escrow Release", "escrow_release": "رها کردن سپرده",
"escrow_approve": "Escrow Approve", "escrow_approve": "تایید سپرده",
"cancel_transfer_from_savings": "Cancel From Savings", "cancel_transfer_from_savings": "لغو پس انداز",
"delegate_vesting_shares": "اجاره", "delegate_vesting_shares": "اجاره",
"fill_convert_request": "Convert Executed", "fill_convert_request": "تبدیل اجرا شد",
"fill_transfer_from_savings": "Savings Executed", "fill_transfer_from_savings": "پس انداز اجرا اشد",
"fill_vesting_withdraw": "PowerDown executed", "fill_vesting_withdraw": "کاهش انرژی اجرا شد",
"estm": { "estm": {
"title": "امتیازها", "title": "امتیازها",
"buy": "GET POINTS" "buy": "امتیاز گرفتن"
}, },
"savingsteem": { "savingsteem": {
"title": "HIVE Savings" "title": "پس انداز های HIVE"
}, },
"savingsbd": { "savingsbd": {
"title": "HBD Savings" "title": "پس اندازهای HBD"
}, },
"steem": { "steem": {
"title": "HIVE", "title": "HIVE",
"buy": "GET HIVE" "buy": "گرفتن HIVE"
}, },
"sbd": { "sbd": {
"title": "HBD", "title": "HBD",
"buy": "GET HBD" "buy": "گرفتن HBD"
}, },
"steem_power": { "steem_power": {
"title": "HIVE POWER" "title": "توانایی HIVE"
}, },
"btc": { "btc": {
"title": "BTC", "title": "BTC",
"buy": "GET BTC", "buy": "گرفتن BTC",
"address": "RECEIVE" "address": "دريافت كردن"
} }
}, },
"notification": { "notification": {
"vote": "voted", "vote": "رای داده شده",
"unvote": "unvoted", "unvote": "رأی داده نشده",
"reply": "replied to", "reply": "پاسخ داد به",
"mention": "mentioned in", "mention": "نام برد به",
"follow": "شما را دنبال میکند", "follow": "شما را دنبال میکند",
"unfollow": "شما را دنبال نمیکند", "unfollow": "شما را دنبال نمیکند",
"ignore": "شما را نادیده گرفته", "ignore": "شما را نادیده گرفته",
"reblog": "reblogged", "reblog": "اشتراک شد",
"transfer": "transferred", "transfer": "منتقل شد",
"spin": "Time to earn more Points", "spin": "وقت کسب امتیاز بیشتر است",
"inactive": "Be active! Write a post, continue earning", "inactive": "فعال باشید! یک پست بنویسید، ادامه درامد دهید",
"referral": "joined with your referral, welcome them", "referral": "معرف شما پیوست، به آنها خوش آمد بگوید",
"notification": "اطلاعیه ها", "notification": "اطلاعیه ها",
"leaderboard": "جدول رده بندی", "leaderboard": "جدول رده بندی",
"epoint": "امتیازها", "epoint": "امتیازها",
"leaderboard_title": "Top Users", "leaderboard_title": "کاربران برتر",
"recent": "اخیر", "recent": "اخیر",
"yesterday": "دیروز", "yesterday": "دیروز",
"this_week": "این هفته", "this_week": "این هفته",
"this_month": "این ماه", "this_month": "این ماه",
"older_then": "قدیمی تر از 1 ماه", "older_then": "قدیمی تر از 1 ماه",
"activities": "All", "activities": "همه",
"replies": "پاسخ‌ها", "replies": "پاسخ‌ها",
"mentions": "Mentions", "mentions": "خطاب ها",
"reblogs": "Reblogs", "reblogs": "اشترک ها",
"noactivity": "No recent activity" "noactivity": "اخیراً فعالیتی انجام نشده است"
}, },
"leaderboard": { "leaderboard": {
"daily": "DAILY", "daily": "روزانه",
"weekly": "WEEKLY", "weekly": "هفتگی",
"monthly": "MONTHLY" "monthly": "ماهانه"
}, },
"messages": { "messages": {
"comingsoon": "قابلیت ارسال پیام به زودی ارائه خواهد شد!" "comingsoon": "قابلیت ارسال پیام به زودی ارائه خواهد شد!"
@ -158,21 +158,21 @@
"hours": "ساعت ها", "hours": "ساعت ها",
"voting_power": "قدرت رأی‌ دهی", "voting_power": "قدرت رأی‌ دهی",
"login_to_see": "ورود به سیستم برای دیدن", "login_to_see": "ورود به سیستم برای دیدن",
"follow_people": "Follow some people to fill your feed", "follow_people": "برخی افراد را دنبال کنید تا فید تان پر شود",
"follow_communities": "Join some communities to fill your feed", "follow_communities": "به برخی از کمیته ها بپیوندید تا فید شما پر شود",
"havent_commented": "هنوز نظری نداده", "havent_commented": "هنوز نظری نداده",
"havent_posted": "هنوز مطلبی ننوشته اید", "havent_posted": "هنوز مطلبی ننوشته اید",
"steem_power": "Hive Power", "steem_power": "توانایی HIVE",
"next_power_text": "روز باقی مانده تا کاهش قدرت،", "next_power_text": "روز باقی مانده تا کاهش قدرت،",
"days": "روزها", "days": "روزها",
"day": "روز", "day": "روز",
"steem_dollars": "Hive Dollars", "steem_dollars": "Hive Dollars",
"savings": "پس انداز", "savings": "پس انداز",
"edit": { "edit": {
"display_name": "Display Name", "display_name": "نام نمایشی",
"about": "About", "about": "درباره",
"location": "Location", "location": "موقیعت",
"website": "Website" "website": "وب سایت"
} }
}, },
"settings": { "settings": {
@ -192,7 +192,7 @@
"transfers": "تراکنش ها" "transfers": "تراکنش ها"
}, },
"pincode": "Pincode", "pincode": "Pincode",
"reset_pin": "Reset Pin Code", "reset_pin": "تنظیم مجدد پن کد",
"reset": "راه اندازی مجدد", "reset": "راه اندازی مجدد",
"nsfw_content": "NSFW", "nsfw_content": "NSFW",
"send_feedback": "ارسال پیشنهادات و انتقادات", "send_feedback": "ارسال پیشنهادات و انتقادات",
@ -205,44 +205,44 @@
}, },
"feedback_success": "ایمیل با موفقیت باز شد", "feedback_success": "ایمیل با موفقیت باز شد",
"feedback_fail": "سرویس دهنده ایمیل نمی تواند باز شود", "feedback_fail": "سرویس دهنده ایمیل نمی تواند باز شود",
"server_fail": "Server not available" "server_fail": "سرور در دسترس نیست"
}, },
"voters": { "voters": {
"voters_info": "اطلاعات رأی دهندگان", "voters_info": "اطلاعات رأی دهندگان",
"no_user": "User is not found." "no_user": "کاربر پیدا نشد."
}, },
"login": { "login": {
"signin": "ورود", "signin": "ورود",
"signup": "JOIN NOW", "signup": "حالا پیوستن",
"signin_title": "To get all the benefits of using Ecency", "signin_title": "برای دریافت تمام مزایای استفاده از Ecency",
"username": "نام کاربری", "username": "نام کاربری",
"password": "رمز عبور و یا WIF", "password": "رمز عبور و یا WIF",
"description": "By signing in, you agree to our Terms of Services and Privacy Policies.", "description": "با ثبت نام شما موافق قوانین و سیاست های حفظ حریم خصوصی ما خواهید بود. ",
"cancel": "انصراف", "cancel": "انصراف",
"login": "ورود به سیستم", "login": "ورود به سیستم",
"steemconnect_description": "If you don't want to keep your password encrypted and saved on your device, you can use Hivesigner.", "steemconnect_description": "اگر نمی خواهید رمز عبورتان رمزنگاری و در دستگاهتان ذخیره شود، میتوانید از Hivesigner استفاده کنید.",
"steemconnect_fee_description": "info" "steemconnect_fee_description": "اطلاعات"
}, },
"register": { "register": {
"button": "Sign Up", "button": "ثبت نام",
"title": "ثبت‌نام کنید", "title": "ثبت‌نام کنید",
"username": "Pick a username", "username": "نام کاربری را انتخاب کنید",
"mail": "Enter your email address", "mail": "آدرس ایمیل خود را وارد کنید",
"ref_user": "Referred user (Optional)", "ref_user": "کاربر معدفی شده (اختیاری)",
"500_error": "Your request could not be processed, signup queue is likely full! Try again in few minutes...", "500_error": "درخواست شما پردازش نشد ، صف ثبت نام احتمالاً پر است! چند دقیقه دیگر دوباره امتحان کنید...",
"title_description": "One account to manage everything", "title_description": "یک حساب برای مدیریت همه چیز",
"form_description": "By signing up with us, you agree to our Terms of Service and Privacy Policies." "form_description": "با ثبت نام کردن، شما با شرایط خدمات و قوانین خصوصی ما موافقت می کنید."
}, },
"home": { "home": {
"feed": "خبرنامه", "feed": "خبرنامه",
"popular": "مورد علاقه", "popular": "مورد علاقه",
"top": "Top", "top": "بالا",
"hot": "Hot", "hot": "داغ",
"new": "New", "new": "جدید",
"blog": "Blog", "blog": "وبلاگ",
"posts": "Post", "posts": "Post",
"friends": "Friends", "friends": "دوستان",
"communities": "Communities" "communities": "انجمن ها"
}, },
"side_menu": { "side_menu": {
"profile": "نمایه", "profile": "نمایه",
@ -252,13 +252,14 @@
"schedules": "جدول زمانی", "schedules": "جدول زمانی",
"gallery": "گالری", "gallery": "گالری",
"settings": "تنظیمات", "settings": "تنظیمات",
"communities": "Communities",
"add_account": "اضافه کردن حساب کاربری", "add_account": "اضافه کردن حساب کاربری",
"logout": "خروج از حساب", "logout": "خروج از حساب",
"cancel": "صرف نظر", "cancel": "صرف نظر",
"logout_text": "آیا مطمئنید که می‌خواهید خارج شوید؟", "logout_text": "آیا مطمئنید که می‌خواهید خارج شوید؟",
"create_a_new_account": "Create a new account", "create_a_new_account": "ایجاد یک حساب جدید",
"add_an_existing_account": "Add an existing account", "add_an_existing_account": "یک حساب موجود اضافه کنید",
"accounts": "Accounts" "accounts": "حساب ها"
}, },
"header": { "header": {
"title": "برای شخصی سازی فید های خود وارد شوید", "title": "برای شخصی سازی فید های خود وارد شوید",
@ -272,33 +273,33 @@
}, },
"editor": { "editor": {
"title": "تیتر", "title": "تیتر",
"tags": "Tags (separate with space)", "tags": "برچسب ها (جدا با فاصله)",
"default_placeholder": "Tell us something...", "default_placeholder": "چیزی به ما بگویید...",
"reply_placeholder": "Add your reply...", "reply_placeholder": "پاسخ خود را اضافه کنید...",
"publish": "نشر", "publish": "نشر",
"reply": "پاسخ دادن", "reply": "پاسخ دادن",
"open_gallery": "باز کردن گالری", "open_gallery": "باز کردن گالری",
"capture_photo": "گرفتن عکس", "capture_photo": "گرفتن عکس",
"limited_tags": "Only 10 tags allowed, remove some", "limited_tags": "فقط ۱۰ برچسب مجاز است، برخی را بردارید",
"limited_length": "Maximum length of each tag should be 24", "limited_length": "حداکثر طول هر برچسب باید ۲۴ باشد",
"limited_dash": "Use one dash in each tag", "limited_dash": "در هر برچسب از یک خط تیره استفاده کنید",
"limited_space": "Use space to separate tags", "limited_space": "برای جدا کردن برچسب ها از فاصله استفاده کنید",
"limited_lowercase": "Only use lower letters in tag", "limited_lowercase": "فقط از حروف کوچک در برچسب استفاده کنید",
"limited_characters": "Use only lowercase letters, digits and one dash", "limited_characters": "فقط از حروف کوچک ، رقم و یک خط تیره استفاده کنید",
"limited_firstchar": "Tag must start with a letter", "limited_firstchar": "برچسب باید با یک حرف شروع شود",
"limited_lastchar": "Tag must end with letter or number", "limited_lastchar": "برچسب باید با یک حرف یا عدد پایان یابد",
"setting_schedule": "Scheduling Time", "setting_schedule": "زمان برنامه‌ریزی",
"setting_reward": "Reward", "setting_reward": "پاداش",
"setting_beneficiary": "Beneficiary", "setting_beneficiary": "ذینفعان",
"reward_default": "Default 50% / 50%", "reward_default": "پیش‌فرض ۵۰٪ / ۵۰٪",
"reward_power_up": "Power Up 100%", "reward_power_up": "۱۰۰٪ بالا بردن قدرت",
"reward_decline": "Decline Payout", "reward_decline": "امتناع از پرداخت",
"beneficiaries": "Beneficiaries", "beneficiaries": "ذینفعان",
"options": "Options", "options": "گزینه‌ها",
"my_blog": "My Blog", "my_blog": "وبلاگ من",
"my_communities": "My Communities", "my_communities": "انجمن ها",
"top_communities": "Top Communities", "top_communities": "جوامع برتر",
"schedule_modal_title": "Schedule Post" "schedule_modal_title": "برنامه ریزی پست"
}, },
"pincode": { "pincode": {
"enter_text": "Enter pin to unlock", "enter_text": "Enter pin to unlock",
@ -314,25 +315,25 @@
"fail": "ناموفق!", "fail": "ناموفق!",
"move": "انتقال", "move": "انتقال",
"move_question": "آیا مطمئن هستید که می خواهید به پیشنویس ها منتقل کنید؟", "move_question": "آیا مطمئن هستید که می خواهید به پیشنویس ها منتقل کنید؟",
"success_shared": "Success! Content submitted!", "success_shared": "موفق باشید! محتوا ارسال شد!",
"success_moved": "به پیشنویس ها منتقل شد", "success_moved": "به پیشنویس ها منتقل شد",
"permission_denied": "خطای دسترسی", "permission_denied": "خطای دسترسی",
"permission_text": "Please, go to phone Settings and change Ecency app permissions.", "permission_text": "لطفا به تنظیمات تلفن خود رفته و دسترسی Ecency را تغییر دهید.",
"key_warning": "Operation requires active key or master password, please relogin!", "key_warning": "این عملیات به کلید فعال یا گذرواژه اصلی نیاز دارد ، لطفاً دوباره وارد سیستم شوید!",
"success_rebloged": "Rebloged!", "success_rebloged": "Rebloged!",
"already_rebloged": "شما قبلا به اشتراک گذاشته اید!", "already_rebloged": "شما قبلا به اشتراک گذاشته اید!",
"success_favorite": "Favorite added!", "success_favorite": "مورد دلخواه اضافه شد",
"success_unfavorite": "Favorite removed!", "success_unfavorite": "مورد دلخواه پاک شد!",
"success_follow": "Follow success!", "success_follow": "دنبال، موفق شد!",
"fail_follow": "Follow failed!", "fail_follow": "دنبال، ناکام شد!",
"success_subscribe": "Subscribe success!", "success_subscribe": "اشتراک، موفق شد!",
"fail_subscribe": "Subscribe failed!", "fail_subscribe": "اشتراک، ناکام شد!",
"success_leave": "Leave success!", "success_leave": "ترک، موفق شد!",
"fail_leave": "Leave failed!", "fail_leave": "ترک، ناکام شد!",
"success_mute": "Mute success!", "success_mute": "بی صدا، موفق شد!",
"success_unmute": "Unmute success!", "success_unmute": "Unmute success!",
"success_unfollow": "Unfollow success!", "success_unfollow": "دنبال کردن لغو شد!",
"fail_unfollow": "Unfollow failed!", "fail_unfollow": "لغو دنبال، ناکام شد!",
"warning": "اخطار", "warning": "اخطار",
"invalid_pincode": "Invalid pin code, please check and try again.", "invalid_pincode": "Invalid pin code, please check and try again.",
"remove_alert": "Are you sure want to remove?", "remove_alert": "Are you sure want to remove?",
@ -346,38 +347,38 @@
"confirm": "تأیید", "confirm": "تأیید",
"removed": "حذف شد", "removed": "حذف شد",
"same_user": "این کاربر قبلا به لیست اضافه شده است", "same_user": "این کاربر قبلا به لیست اضافه شده است",
"unknow_error": "An error occurred", "unknow_error": "يک خطا رخ داده است",
"error": "Error", "error": "خطا",
"fetch_error": "Connection issue, change server and restart", "fetch_error": "مشکل اتصال ، تغییر سرور و راه اندازی مجدد",
"connection_fail": "Connection Failed!", "connection_fail": "اتصال انجام نشد!",
"connection_success": "Successfully connected!", "connection_success": "اتصال با موفقیت انجام شد!",
"checking": "Checking...", "checking": "در حال بررسی...",
"external_link": "Open in Browser", "external_link": "باز کردن در مرورگر",
"not_existing_post": "The post does not exist! Please check permlink and author.", "not_existing_post": "پست موجود نیست! لطفاً لینک ثابت و نویسنده را بررسی کنید.",
"google_play_version": "We noticed that your device has old version of Google Play. Please update Google Play services and try again!", "google_play_version": "متوجه شدیم که دستگاه شما دارای نسخه قدیمی Google Play است. لطفاً خدمات Google Play را به روز کنید و دوباره امتحان کنید!",
"rc_down": "Not enough resource credits to perform an action! \n\nBoost your account to continue enjoy the experience. Do you want to boost your account, now?", "rc_down": "اعتبار منابع کافی برای انجام عملی نیست!\n\nبرای لذت بردن از تجربه ، حساب خود را تقویت کنید. آیا می خواهید حساب خود را تقویت کنید?",
"payloadTooLarge": "File size too big, please resize or upload smaller image", "payloadTooLarge": "اندازه فایل خیلی بزرگ است ، لطفاً اندازه کوچکتر را تغییر دهید یا تصویر کوچکتر را بارگذاری کنید",
"qoutaExceeded": "Upload quota exceeded", "qoutaExceeded": "از سهمیه بارگذاری بیشتر شد",
"invalidImage": "Invalid image, try different file", "invalidImage": "تصویر نامعتبر است ، فایل دیگری را امتحان کنید",
"something_wrong": "Something went wrong.", "something_wrong": "مشکلی پیش آمد.",
"something_wrong_alt": "Try https://ecency.com", "something_wrong_alt": "Https://ecency.com را امتحان کنید",
"something_wrong_reload": "Reload", "something_wrong_reload": "ﻧﻮﺳﺎﺯﯼ",
"can_not_be_empty": "Title and body can not be empty!" "can_not_be_empty": "عنوان و متن نمی تواند خالی باشد!"
}, },
"post": { "post": {
"reblog_alert": "Are you sure, you want to reblog?", "reblog_alert": "آیا مطمئن هستید که می‌خواهید دوباره به اشتراک بگذارید?",
"removed_hint": "Content is not available", "removed_hint": "محتوا در دسترس نیست",
"copy_link": "Copy link", "copy_link": "کاپی لنک",
"reblogged": "reblogged by", "reblogged": "اشتراک مجدد توسط",
"sponsored": "SPONSORED", "sponsored": "اسپانسر شده",
"open_thread": "Open thread", "open_thread": "بازکردن موضوع",
"image": "Image", "image": "تصویر",
"link": "Link", "link": "پیوند",
"gallery_mode": "Gallery mode", "gallery_mode": "حالت گالری",
"save_to_local": "Download to device", "save_to_local": "بارگیری در دستگاه",
"image_saved": "Image saved to Photo Gallery", "image_saved": "تصویر در گالری عکس ذخیره شد",
"image_saved_error": "Error Saving Image", "image_saved_error": "خطایی در ذخیره عکس بوجود آمد",
"wrong_link": "Wrong link" "wrong_link": "لنک اشتباه"
}, },
"drafts": { "drafts": {
"title": "پیشنویس ها", "title": "پیشنویس ها",
@ -402,7 +403,7 @@
"add": "اضافه کردن به صفحات مورد علاقه" "add": "اضافه کردن به صفحات مورد علاقه"
}, },
"report": { "report": {
"added": "Reported objectionable content" "added": "محتوای قابل اعتراض گزارش شده است"
}, },
"favorites": { "favorites": {
"title": "برگزیده‌ها", "title": "برگزیده‌ها",
@ -415,7 +416,7 @@
"invalid_username": "نام کاربری نامعتبر، لطفا چک کنید و دوباره امتحان کنید", "invalid_username": "نام کاربری نامعتبر، لطفا چک کنید و دوباره امتحان کنید",
"already_logged": "شما در حال حاظر وارد شده اید، لطفا با یک حساب کاربری دیگر تلاش کنید", "already_logged": "شما در حال حاظر وارد شده اید، لطفا با یک حساب کاربری دیگر تلاش کنید",
"invalid_credentials": "اعتبار نامه غیر معتبر، لطفا چک کنید و دوباره تلاش کنید", "invalid_credentials": "اعتبار نامه غیر معتبر، لطفا چک کنید و دوباره تلاش کنید",
"unknow_error": "Unknown error, please write to support@ecency.com" "unknow_error": "خطای ناشناخته ، لطفا به ادرس support@ecency.com به تماس شوید"
}, },
"payout": { "payout": {
"potential_payout": "پرداخت های بالقوه", "potential_payout": "پرداخت های بالقوه",
@ -423,9 +424,9 @@
"author_payout": "پاداش نویسنده", "author_payout": "پاداش نویسنده",
"curation_payout": "پاداش مشارکت", "curation_payout": "پاداش مشارکت",
"payout_date": "پرداخت", "payout_date": "پرداخت",
"beneficiaries": "Beneficiaries", "beneficiaries": "ذینفعان",
"warn_zero_payout": "Amount must reach $0.02 for payout", "warn_zero_payout": "مبلغ برای پرداخت باید به ۰. ۰۲ دلار برسد",
"breakdown": "Breakdown" "breakdown": "درهم شکستن"
}, },
"post_dropdown": { "post_dropdown": {
"copy": "کپی لینک", "copy": "کپی لینک",
@ -433,9 +434,9 @@
"reply": "پاسخ دادن", "reply": "پاسخ دادن",
"share": "درمیان گذاری", "share": "درمیان گذاری",
"bookmarks": "اضافه کردن به صفحات مورد علاقه", "bookmarks": "اضافه کردن به صفحات مورد علاقه",
"promote": "promote", "promote": "تبلیغ",
"boost": "boost", "boost": "ارتقاء",
"report": "report" "report": "گزارش"
}, },
"deep_link": { "deep_link": {
"no_existing_user": "کاربری موجود نیست", "no_existing_user": "کاربری موجود نیست",
@ -446,139 +447,152 @@
"comments": "نظرات" "comments": "نظرات"
}, },
"comment_filter": { "comment_filter": {
"trending": "TOP", "trending": "بالا",
"reputation": "REPUTATION", "reputation": "اعبتار",
"votes": "VOTE", "votes": "رای",
"age": "AGE", "age": "سن",
"top": "TOP", "top": "بالا",
"time": "TIME" "time": "وقت"
}, },
"transfer": { "transfer": {
"from": "از", "from": "از",
"to": "به", "to": "به",
"amount_information": "Drag the slider to adjust the amount", "amount_information": "برای تنظیم مقدار ، نوار لغزنده را بکشید",
"amount": "مقدار", "amount": "مقدار",
"memo": "یادداشت", "memo": "یادداشت",
"information": "Are you sure to transfer funds?", "information": "آیا مطمئن هستید که وجوه را منتقل می کنید?",
"amount_desc": "موجودی", "amount_desc": "موجودی",
"memo_desc": "این یادداشت عمومی است", "memo_desc": "این یادداشت عمومی است",
"convert_desc": "Convert takes 3.5 days and NOT recommended IF HBD price is higher than $1", "convert_desc": "تبدیل 3.5 روز طول می کشد و توصیه نمی شود اگر قیمت HBD بالاتر از 1 دلار باشد",
"to_placeholder": "نام کاربری", "to_placeholder": "نام کاربری",
"memo_placeholder": "یادداشت های خود را در اینجا وارد کنید", "memo_placeholder": "یادداشت های خود را در اینجا وارد کنید",
"transfer_token": "انتقال", "transfer_token": "انتقال",
"purchase_estm": "Purchase Points", "purchase_estm": "خریداری امتیاز",
"convert": "Convert HBD to HIVE", "convert": "تبدیل HBD به HIVE",
"points": "Gift Points to someone", "points": "به کسی امتیاز هدیه دهید",
"transfer_to_saving": "انتقال به پس انداز", "transfer_to_saving": "انتقال به پس انداز",
"powerUp": "بالا بردن قدرت", "powerUp": "بالا بردن قدرت",
"withdraw_to_saving": "برداشت و انتقال به پس انداز", "withdraw_to_saving": "برداشت و انتقال به پس انداز",
"steemconnect_title": "Hivesigner Transfer", "steemconnect_title": "انتقال از Hivesigner",
"estimated_weekly": "Estimated Weekly", "estimated_weekly": "برآورد هفتگی",
"destination_accounts": "Destination Accounts", "destination_accounts": "حسابهای مقصد",
"stop_information": "Are you sure want to stop?", "stop_information": "مطمئناً می خواهید متوقف شوید؟",
"percent": "Percent", "percent": "درصدی",
"auto_vests": "Auto Vests", "auto_vests": "Auto Vests",
"save": "SAVE", "save": "ذخیره",
"percent_information": "Percent info", "percent_information": "اطلاعات درصد",
"next": "بعدی", "next": "بعدی",
"delegate": "Delegate", "delegate": "اجاره",
"power_down": "Power Down", "power_down": "کم کردن قدرت",
"withdraw_steem": "Withdraw HIVE", "withdraw_steem": "برداشت HIVE",
"withdraw_sbd": "Withdraw HIVE Dollar", "withdraw_sbd": "برداشت دلار HIVE",
"incoming_funds": "Incoming Funds", "incoming_funds": "وجوه دریافتی",
"stop": "Stop", "stop": "توقف",
"address_view": "View address" "address_view": "مشاهده آدرس"
}, },
"boost": { "boost": {
"title": "Get Points", "title": "گرفتن امتیاز",
"buy": "GET Points", "buy": "گرفتن امتیاز",
"next": "NEXT", "next": "بعدی",
"account": { "account": {
"title": "Get Account Boost", "title": "حساب را تقویت دهید",
"desc": "30 days delegation will boost your votes and social activities and give you more actions with more Resource Credits." "desc": "تفویض 30 روزه آرا و فعالیتهای اجتماعی شما را افزایش داده و اقدامات بیشتری را با اعتبارات بیشتر به شما می دهد."
} }
}, },
"free_estm": { "free_estm": {
"title": "Free Points", "title": "گرفتن امتیاز",
"button": "SPIN & WIN", "button": "چرخش و برنده شدن",
"get_spin": "5 SPINS", "get_spin": "5 چرخش",
"spin_right": "Spin Left", "spin_right": "چرخش باقی",
"timer_text": "Next free spin in" "timer_text": "چرخش رایگان بعدی در"
}, },
"promote": { "promote": {
"title": "Promote", "title": "تبلیغ",
"days": "days", "days": "روزها",
"user": "User", "user": "کاربر",
"permlink": "Post", "permlink": "پست",
"permlinkPlaceholder": "username/permlink", "permlinkPlaceholder": "نام کاربری/لینک ثابت",
"information": "Are you sure to promote?" "information": "آیا مطمئناً تبلیغ می کنید"
}, },
"boostPost": { "boostPost": {
"title": "Boost" "title": "ارتقاء"
}, },
"voters_dropdown": { "voters_dropdown": {
"rewards": "REWARDS", "rewards": "امتیازات",
"percent": "PERCENT", "percent": "درصد",
"time": "TIME" "time": "وقت"
}, },
"reblog": { "reblog": {
"title": "Reblog Info" "title": "اطلاعات reblog"
}, },
"dsteem": { "dsteem": {
"date_error": { "date_error": {
"device_time": "Your device time;", "device_time": "زمان دستگاه شما;",
"current_time": "Current time;", "current_time": "زمان کنونی;",
"information": "We noticed that your device has incorrect date or time. Please fix Date & Time or Set Automatically and try again." "information": "متوجه شدیم که دستگاه شما تاریخ یا ساعت نادرستی دارد. لطفاً تاریخ و زمان را برطرف کنید یا به صورت خودکار تنظیم کنید و دوباره امتحان کنید."
} }
}, },
"comments": { "comments": {
"title": "نظرات", "title": "نظرات",
"reveal_comment": "Reveal comment", "reveal_comment": "نشان دادن نظریه",
"read_more": "Read more comments", "read_more": "نظرات بیشتر را بخوانید",
"more_replies": "more replies" "more_replies": "پاسخ های بیشتر"
}, },
"search_result": { "search_result": {
"others": "Others", "others": "دیگر",
"best": { "best": {
"title": "Best" "title": "بهترین"
}, },
"people": { "people": {
"title": "People" "title": "مردم"
}, },
"topics": { "topics": {
"title": "Topics" "title": "موضوعات"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "\"پیوستن\"",
"unsubscribe": "Leave", "unsubscribe": "ترک کردن",
"subscribers": "Members", "subscribers": "اعضاء",
"posters": "Posters", "posters": "پوسترها",
"posts": "Post" "posts": "Post"
}, },
"communities_filter": { "communities_filter": {
"my": "My Communities", "my": "انجمن(های) من",
"rank": "Rank", "rank": "رتبه",
"subs": "Members", "subs": "اعضاء",
"new": "New" "new": "جدید"
}, },
"post_result_filter": { "post_result_filter": {
"popularity": "Popularity", "popularity": "محبوبیت",
"newest": "Newest", "newest": "جدیدترین",
"relevance": "Relevance" "relevance": "ارتباط"
}, },
"other_result_filter": { "other_result_filter": {
"user": "User", "user": "کاربر",
"tag": "Tag" "tag": "برچسب"
} }
}, },
"community": { "community": {
"new_post": "New Post", "new_post": "پست جدید",
"community": "community", "community": "انجمن",
"details": "Details" "details": "جزئیات"
}, },
"user": { "user": {
"follow": "Follow", "follow": "دنبال کردن",
"unfollow": "Unfollow" "unfollow": "عدم دنبال کردن"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Ajastetut", "schedules": "Ajastetut",
"gallery": "Galleria", "gallery": "Galleria",
"settings": "Asetukset", "settings": "Asetukset",
"communities": "Yhteisöt",
"add_account": "Lisää tili", "add_account": "Lisää tili",
"logout": "Kirjaudu ulos", "logout": "Kirjaudu ulos",
"cancel": "Peruuta", "cancel": "Peruuta",
@ -538,7 +539,7 @@
"more_replies": "lisää vastauksia" "more_replies": "lisää vastauksia"
}, },
"search_result": { "search_result": {
"others": "Others", "others": "Muut",
"best": { "best": {
"title": "Parhaat" "title": "Parhaat"
}, },
@ -549,7 +550,7 @@
"title": "Aiheet" "title": "Aiheet"
}, },
"communities": { "communities": {
"title": "Yhteisöt", "title": "Ryhmät",
"subscribe": "Liity", "subscribe": "Liity",
"unsubscribe": "Poistu", "unsubscribe": "Poistu",
"subscribers": "Jäsenet", "subscribers": "Jäsenet",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Seuraa", "follow": "Seuraa",
"unfollow": "Älä seuraa" "unfollow": "Älä seuraa"
},
"communities": {
"joined": "Jäsenyys",
"discover": "Löydä uutta"
},
"empty_screen": {
"nothing_here": "Täällä ei ole mitään"
},
"beneficiary_modal": {
"percent": "Prosenttia",
"username": "Käyttäjänimi",
"addAccount": "Lisää Tili",
"save": "Tallenna"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Mga Iskedyul", "schedules": "Mga Iskedyul",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Magdagdag ng Account", "add_account": "Magdagdag ng Account",
"logout": "Mag-logout", "logout": "Mag-logout",
"cancel": "Kansel", "cancel": "Kansel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Mga pamayanan", "title": "Groups",
"subscribe": "Sumali", "subscribe": "Sumali",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Planifications", "schedules": "Planifications",
"gallery": "Gallerie", "gallery": "Gallerie",
"settings": "Réglages", "settings": "Réglages",
"communities": "Communities",
"add_account": "Ajouter un compte", "add_account": "Ajouter un compte",
"logout": "Déconnexion", "logout": "Déconnexion",
"cancel": "Annuler", "cancel": "Annuler",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communautés", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Frisahteis", "gallery": "Frisahteis",
"settings": "Lageinos", "settings": "Lageinos",
"communities": "Communities",
"add_account": "Anaaiauk rahnein", "add_account": "Anaaiauk rahnein",
"logout": "Afleiþ", "logout": "Afleiþ",
"cancel": "Fraqiþ", "cancel": "Fraqiþ",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "לוחות זמנים", "schedules": "לוחות זמנים",
"gallery": "גלריה", "gallery": "גלריה",
"settings": "הגדרות", "settings": "הגדרות",
"communities": "Communities",
"add_account": "הוסף/י חשבון", "add_account": "הוסף/י חשבון",
"logout": "התנתק/י", "logout": "התנתק/י",
"cancel": "ביטול", "cancel": "ביטול",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "निर्धारित", "schedules": "निर्धारित",
"gallery": "चित्रशाला", "gallery": "चित्रशाला",
"settings": "समायोजन", "settings": "समायोजन",
"communities": "समुदाय",
"add_account": "खता जोड़ें", "add_account": "खता जोड़ें",
"logout": "बहार जाएँ", "logout": "बहार जाएँ",
"cancel": "रद्द करें", "cancel": "रद्द करें",
@ -538,7 +539,7 @@
"more_replies": "अधिक जवाब" "more_replies": "अधिक जवाब"
}, },
"search_result": { "search_result": {
"others": "Others", "others": "अन्यों",
"best": { "best": {
"title": "सर्वश्रेष्ठ" "title": "सर्वश्रेष्ठ"
}, },
@ -549,7 +550,7 @@
"title": "विषयों" "title": "विषयों"
}, },
"communities": { "communities": {
"title": "समुदाय", "title": "समूह",
"subscribe": "शामिल हों", "subscribe": "शामिल हों",
"unsubscribe": "छोड़ें", "unsubscribe": "छोड़ें",
"subscribers": "सदस्य", "subscribers": "सदस्य",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "फॉलो करें", "follow": "फॉलो करें",
"unfollow": "अनफॉलो करें" "unfollow": "अनफॉलो करें"
},
"communities": {
"joined": "सदस्यता",
"discover": "खोजिए"
},
"empty_screen": {
"nothing_here": "कुछ नहीं है यहां"
},
"beneficiary_modal": {
"percent": "प्रतिशत",
"username": "प्रयोक्ता नाम",
"addAccount": "खता जोड़ें",
"save": "रक्षित करें"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Rasporedi", "schedules": "Rasporedi",
"gallery": "Galerija", "gallery": "Galerija",
"settings": "Postavke", "settings": "Postavke",
"communities": "Communities",
"add_account": "Dodaj Profil", "add_account": "Dodaj Profil",
"logout": "Odjava", "logout": "Odjava",
"cancel": "Poništi", "cancel": "Poništi",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Időzítések", "schedules": "Időzítések",
"gallery": "Galéria", "gallery": "Galéria",
"settings": "Beállítások", "settings": "Beállítások",
"communities": "Communities",
"add_account": "Fiók Hozzáadása", "add_account": "Fiók Hozzáadása",
"logout": "Kijelentkezés", "logout": "Kijelentkezés",
"cancel": "Elvet", "cancel": "Elvet",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Közösségek", "title": "Groups",
"subscribe": "Csatlakozz", "subscribe": "Csatlakozz",
"unsubscribe": "Kilépés", "unsubscribe": "Kilépés",
"subscribers": "Tagok", "subscribers": "Tagok",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Daftar jadwal", "schedules": "Daftar jadwal",
"gallery": "Album", "gallery": "Album",
"settings": "Pengaturan", "settings": "Pengaturan",
"communities": "Communities",
"add_account": "Tambahkan Akun", "add_account": "Tambahkan Akun",
"logout": "Keluar", "logout": "Keluar",
"cancel": "Batal", "cancel": "Batal",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Pianificazioni", "schedules": "Pianificazioni",
"gallery": "Galleria", "gallery": "Galleria",
"settings": "Impostazioni", "settings": "Impostazioni",
"communities": "Communities",
"add_account": "Aggiungi Account", "add_account": "Aggiungi Account",
"logout": "Disconnettiti", "logout": "Disconnettiti",
"cancel": "Cancella", "cancel": "Cancella",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "スケジュール", "schedules": "スケジュール",
"gallery": "ギャラリー", "gallery": "ギャラリー",
"settings": "設定", "settings": "設定",
"communities": "Communities",
"add_account": "アカウントを追加", "add_account": "アカウントを追加",
"logout": "ログアウト", "logout": "ログアウト",
"cancel": "キャンセル", "cancel": "キャンセル",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Isɣiwas", "schedules": "Isɣiwas",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Iɣewwaṛen", "settings": "Iɣewwaṛen",
"communities": "Communities",
"add_account": "Rnu amiḍan", "add_account": "Rnu amiḍan",
"logout": "Tuffɣa", "logout": "Tuffɣa",
"cancel": "Sefsex", "cancel": "Sefsex",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "Schedules", "schedules": "Schedules",
"gallery": "Gallery", "gallery": "Gallery",
"settings": "Settings", "settings": "Settings",
"communities": "Communities",
"add_account": "Add Account", "add_account": "Add Account",
"logout": "Logout", "logout": "Logout",
"cancel": "Cancel", "cancel": "Cancel",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "Communities", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

View File

@ -252,6 +252,7 @@
"schedules": "일정", "schedules": "일정",
"gallery": "갤러리", "gallery": "갤러리",
"settings": "설정", "settings": "설정",
"communities": "Communities",
"add_account": "계정 추가", "add_account": "계정 추가",
"logout": "로그아웃", "logout": "로그아웃",
"cancel": "취소", "cancel": "취소",
@ -549,7 +550,7 @@
"title": "Topics" "title": "Topics"
}, },
"communities": { "communities": {
"title": "커뮤니티", "title": "Groups",
"subscribe": "Join", "subscribe": "Join",
"unsubscribe": "Leave", "unsubscribe": "Leave",
"subscribers": "Members", "subscribers": "Members",
@ -580,5 +581,18 @@
"user": { "user": {
"follow": "Follow", "follow": "Follow",
"unfollow": "Unfollow" "unfollow": "Unfollow"
},
"communities": {
"joined": "Membership",
"discover": "Discover"
},
"empty_screen": {
"nothing_here": "Nothing here"
},
"beneficiary_modal": {
"percent": "Percent",
"username": "Username",
"addAccount": "Add Account",
"save": "Save"
} }
} }

Some files were not shown because too many files have changed in this diff Show More