Compare commits
No commits in common. "master" and "v0.5.0" have entirely different histories.
|
@ -1,9 +1,10 @@
|
|||
---
|
||||
name: "\U0001F41B Bug report"
|
||||
about: Create a report to help us improve
|
||||
title: ""
|
||||
title: ''
|
||||
labels: bug
|
||||
assignees: ""
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
### Device info
|
||||
|
@ -11,10 +12,8 @@ assignees: ""
|
|||
- OS: [eg. iOS/Android]
|
||||
- OS version: [eg. 10]
|
||||
- Device: [eg. OnePlus 6]
|
||||
- Lemmur version: [eg. v1.2.3]
|
||||
|
||||
### Describe the bug
|
||||
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
### Steps to reproduce
|
||||
|
@ -24,22 +23,11 @@ A clear and concise description of what the bug is.
|
|||
3. Scroll down to '....'
|
||||
4. See error
|
||||
|
||||
### Relevant logs
|
||||
|
||||
<details>
|
||||
<summary>Logs</summary>
|
||||
|
||||
Paste your logs here. Logs can be found in lemmur: settings > about lemmur > logs.
|
||||
</details>
|
||||
|
||||
### Expected behavior
|
||||
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
### Screenshots/Screencasts
|
||||
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
### Additional context
|
||||
|
||||
Add any other context about the problem here.
|
||||
|
|
|
@ -1,23 +1,20 @@
|
|||
---
|
||||
name: "\U0001F680 Feature request"
|
||||
about: Suggest an idea for Lemmur
|
||||
title: ""
|
||||
title: ''
|
||||
labels: enhancement
|
||||
assignees: ""
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
### Is your feature request related to a problem? Please describe.
|
||||
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
### Describe the solution you'd like
|
||||
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
### Describe alternatives you've considered
|
||||
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
### Additional context
|
||||
|
||||
Add any other context or screenshots about the feature request here.
|
||||
|
|
|
@ -7,37 +7,9 @@ on:
|
|||
branches: [master]
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
name: Lint
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: subosito/flutter-action@v1
|
||||
with:
|
||||
channel: "stable"
|
||||
|
||||
- name: Get dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Generate l10n
|
||||
run: |
|
||||
flutter gen-l10n
|
||||
dart format lib/l10n/gen/
|
||||
|
||||
- name: Run lints
|
||||
run: flutter analyze
|
||||
|
||||
- name: Check formatting
|
||||
run: flutter format --dry-run --set-exit-if-changed .
|
||||
|
||||
- name: Run tests
|
||||
run: flutter test
|
||||
|
||||
android:
|
||||
name: Android
|
||||
runs-on: ubuntu-latest
|
||||
needs: lint
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
|
@ -49,36 +21,24 @@ jobs:
|
|||
with:
|
||||
channel: "stable"
|
||||
|
||||
- name: Inject keystore
|
||||
working-directory: android/app
|
||||
run: |
|
||||
echo "${{ secrets.SIGNING_KEY }}" | base64 -d | tee key.jks >/dev/null
|
||||
- name: Get dependencies
|
||||
run: flutter pub get
|
||||
|
||||
- name: Run lints
|
||||
run: flutter analyze
|
||||
|
||||
- name: Check formatting
|
||||
run: flutter format --dry-run --set-exit-if-changed .
|
||||
|
||||
- name: Run tests
|
||||
run: flutter test
|
||||
|
||||
- name: Android build
|
||||
env:
|
||||
ANDROID_KEY_ALIAS: ${{ secrets.ALIAS }}
|
||||
ANDROID_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||
ANDROID_STORE_PATH: key.jks
|
||||
ANDROID_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
||||
run: flutter build apk --split-per-abi --release --target lib/main_prod.dart --flavor prod
|
||||
|
||||
ios:
|
||||
name: iOS
|
||||
runs-on: macos-latest
|
||||
needs: lint
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- uses: subosito/flutter-action@v2
|
||||
with:
|
||||
channel: "stable"
|
||||
|
||||
- run: flutter build ios --no-codesign --release --target lib/main_prod.dart --flavor prod
|
||||
run: flutter build apk --split-per-abi
|
||||
|
||||
linux:
|
||||
name: Linux
|
||||
runs-on: ubuntu-latest
|
||||
needs: lint
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
|
@ -91,14 +51,17 @@ jobs:
|
|||
sudo apt-get update -y
|
||||
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev
|
||||
|
||||
- name: Enable linux support
|
||||
run: |
|
||||
flutter config --enable-linux-desktop
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
flutter build linux --release --target lib/main_prod.dart
|
||||
flutter build linux
|
||||
|
||||
windows:
|
||||
name: Windows
|
||||
runs-on: windows-latest
|
||||
needs: lint
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
|
@ -106,6 +69,10 @@ jobs:
|
|||
with:
|
||||
channel: "stable"
|
||||
|
||||
- name: Enable windows support
|
||||
run: |
|
||||
flutter config --enable-windows-desktop
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
flutter build windows --release --target lib/main_prod.dart
|
||||
flutter build windows
|
||||
|
|
|
@ -37,36 +37,36 @@ jobs:
|
|||
run: flutter pub get
|
||||
|
||||
- name: Inject keystore
|
||||
working-directory: android/app
|
||||
working-directory: android
|
||||
env:
|
||||
KEY_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
||||
KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||
ALIAS: ${{ secrets.ALIAS }}
|
||||
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
|
||||
run: |
|
||||
echo "${{ secrets.SIGNING_KEY }}" | base64 -d | tee key.jks >/dev/null
|
||||
echo storePassword=$KEY_STORE_PASSWORD > key.properties
|
||||
echo keyPassword=$KEY_PASSWORD >> key.properties
|
||||
echo keyAlias=$ALIAS >> key.properties
|
||||
echo storeFile=$HOME/key.jks >> key.properties
|
||||
|
||||
echo $SIGNING_KEY | base64 -d | tee ~/key.jks >/dev/null
|
||||
|
||||
- name: Generate appbundle
|
||||
env:
|
||||
ANDROID_KEY_ALIAS: ${{ secrets.ALIAS }}
|
||||
ANDROID_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||
ANDROID_STORE_PATH: key.jks
|
||||
ANDROID_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
||||
run: flutter build appbundle --release --target lib/main_prod.dart --flavor prod
|
||||
run: flutter build appbundle
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: android-appbundle
|
||||
path: |
|
||||
build/app/outputs/bundle/prodRelease/app-prod-release.aab
|
||||
build/app/outputs/bundle/release/app-release.aab
|
||||
|
||||
- name: Android build
|
||||
env:
|
||||
ANDROID_KEY_ALIAS: ${{ secrets.ALIAS }}
|
||||
ANDROID_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
|
||||
ANDROID_STORE_PATH: key.jks
|
||||
ANDROID_STORE_PASSWORD: ${{ secrets.KEY_STORE_PASSWORD }}
|
||||
run: |
|
||||
flutter build apk --split-per-abi --release --target lib/main_prod.dart --flavor prod
|
||||
flutter build apk --split-per-abi
|
||||
|
||||
mv build/app/outputs/flutter-apk/app-arm64-v8a-prod-release.apk lemmur-${{ needs.get-vars.outputs.tag }}-arm64-v8a-android.apk
|
||||
mv build/app/outputs/flutter-apk/app-armeabi-v7a-prod-release.apk lemmur-${{ needs.get-vars.outputs.tag }}-armeabi-v7a-android.apk
|
||||
mv build/app/outputs/flutter-apk/app-x86_64-prod-release.apk lemmur-${{ needs.get-vars.outputs.tag }}-x86_64-android.apk
|
||||
mv build/app/outputs/flutter-apk/app-arm64-v8a-release.apk lemmur-${{ needs.get-vars.outputs.tag }}-arm64-v8a-android.apk
|
||||
mv build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk lemmur-${{ needs.get-vars.outputs.tag }}-armeabi-v7a-android.apk
|
||||
mv build/app/outputs/flutter-apk/app-x86_64-release.apk lemmur-${{ needs.get-vars.outputs.tag }}-x86_64-android.apk
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
|
@ -90,19 +90,23 @@ jobs:
|
|||
sudo apt-get update -y
|
||||
sudo apt-get install -y clang cmake ninja-build pkg-config libgtk-3-dev libblkid-dev
|
||||
|
||||
- name: Enable linux support
|
||||
run: |
|
||||
flutter config --enable-linux-desktop
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
flutter build linux --release --target lib/main_prod.dart
|
||||
flutter build linux
|
||||
|
||||
- name: Archive
|
||||
working-directory: build/linux/x64/release/bundle
|
||||
working-directory: build/linux/release/bundle
|
||||
run: |
|
||||
tar -czf lemmur-${{ needs.get-vars.outputs.tag }}-x86_64-linux.tar.gz *
|
||||
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: linux-build
|
||||
path: build/linux/x64/release/bundle/lemmur-*.tar.gz
|
||||
path: build/linux/release/bundle/lemmur-*.tar.gz
|
||||
|
||||
windows-build:
|
||||
name: Windows build
|
||||
|
@ -115,9 +119,13 @@ jobs:
|
|||
with:
|
||||
channel: "stable"
|
||||
|
||||
- name: Enable windows support
|
||||
run: |
|
||||
flutter config --enable-windows-desktop
|
||||
|
||||
- name: Build
|
||||
run: |
|
||||
flutter build windows --release --target lib/main_prod.dart
|
||||
flutter build windows
|
||||
|
||||
- name: Archive
|
||||
working-directory: build/windows/runner/Release
|
||||
|
@ -137,7 +145,7 @@ jobs:
|
|||
- linux-build
|
||||
- windows-build
|
||||
runs-on: ubuntu-latest
|
||||
if: github.repository == 'LemmurOrg/lemmur'
|
||||
if: github.repository == 'krawieck/lemmur'
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
|
@ -149,7 +157,7 @@ jobs:
|
|||
- name: Extract current changelog
|
||||
run: mv fastlane/metadata/android/en-US/changelogs/$(ls fastlane/metadata/android/en-US/changelogs/ | xargs -I'{}' basename '{}' .txt | sort -n | tail -n 1).txt current-changelog.txt
|
||||
|
||||
- name: Release to GitHub
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
with:
|
||||
files: |
|
||||
|
@ -157,28 +165,7 @@ jobs:
|
|||
linux-build/*
|
||||
windows-build/*
|
||||
draft: true
|
||||
prerelease: true
|
||||
body_path: current-changelog.txt
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Setup Ruby
|
||||
uses: actions/setup-ruby@v1
|
||||
with:
|
||||
ruby-version: "2.7"
|
||||
|
||||
- name: Download bundle dependencies
|
||||
working-directory: fastlane
|
||||
run: |
|
||||
gem install bundler:2.0.2
|
||||
bundle config path vendor/bundle
|
||||
bundle install
|
||||
|
||||
- name: Release to Google Play (beta)
|
||||
working-directory: fastlane
|
||||
run: |
|
||||
echo $GOOGLE_SERVICE_ACCOUNT_KEY > ../$GOOGLE_SERVICE_ACCOUNT_KEY_PATH
|
||||
bundle exec fastlane android prod
|
||||
env:
|
||||
GOOGLE_SERVICE_ACCOUNT_KEY_PATH: google-service-account-key.json
|
||||
GOOGLE_SERVICE_ACCOUNT_KEY: ${{ secrets.GOOGLE_SERVICE_ACCOUNT_KEY }}
|
||||
ABB_PATH: android-appbundle/app-prod-release.aab
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
name: weblate
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
# every friday at 19:00 UTC
|
||||
- cron: "0 19 * * 5"
|
||||
|
||||
jobs:
|
||||
weblate:
|
||||
name: Pull Weblate changes to repo
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Fetch changes
|
||||
run: |
|
||||
git remote add weblate https://weblate.yerbamate.ml/git/lemmur/lemmur/
|
||||
git fetch weblate
|
||||
git merge weblate/master
|
||||
|
||||
- name: Regenerate l10n_from_string
|
||||
run: |
|
||||
dart run scripts/gen_l10n_from_string.dart
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v3.12.0
|
||||
with:
|
||||
reviewers: shilangyu,krawieck
|
||||
title: Weblate update
|
||||
branch: weblate
|
|
@ -24,7 +24,6 @@
|
|||
.pub-cache/
|
||||
.pub/
|
||||
/build/
|
||||
lib/l10n/gen
|
||||
|
||||
# Web related
|
||||
lib/generated_plugin_registrant.dart
|
||||
|
@ -37,6 +36,3 @@ app.*.map.json
|
|||
|
||||
# Exceptions to above rules.
|
||||
!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages
|
||||
|
||||
# Xcode build files
|
||||
ios/build
|
||||
|
|
|
@ -4,25 +4,19 @@
|
|||
{
|
||||
"name": "Debug",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"program": "lib/main_dev.dart",
|
||||
"args": ["--flavor", "dev"]
|
||||
"type": "dart"
|
||||
},
|
||||
{
|
||||
"name": "Profile",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"flutterMode": "profile",
|
||||
"program": "lib/main_dev.dart",
|
||||
"args": ["--flavor", "dev"]
|
||||
"flutterMode": "profile"
|
||||
},
|
||||
{
|
||||
"name": "Release",
|
||||
"request": "launch",
|
||||
"type": "dart",
|
||||
"flutterMode": "release",
|
||||
"program": "lib/main_dev.dart",
|
||||
"args": ["--flavor", "dev"]
|
||||
"flutterMode": "release"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
|
|
@ -5,50 +5,29 @@
|
|||
"body": ["\"$1\": \"$2\",", "\"@$1\": {}$0"]
|
||||
},
|
||||
"Assert not null": {
|
||||
"scope": "dart",
|
||||
"prefix": "assnotnull",
|
||||
"body": ["assert($1 != null)$0"]
|
||||
},
|
||||
"sizedbox": {
|
||||
"scope": "dart",
|
||||
"prefix": "sizedbox",
|
||||
"body": ["const SizedBox($1)$0"]
|
||||
},
|
||||
"theme": {
|
||||
"scope": "dart",
|
||||
"prefix": "theme",
|
||||
"body": ["final theme = Theme.of(context);"]
|
||||
},
|
||||
"sleep": {
|
||||
"scope": "dart",
|
||||
"prefix": "sleep",
|
||||
"body": [
|
||||
"await Future<dynamic>.delayed(const Duration(milliseconds: ${1:1000}));$0"
|
||||
]
|
||||
},
|
||||
"repeat widget": {
|
||||
"scope": "dart",
|
||||
"prefix": "repeat",
|
||||
"body": ["for(int i = 0; i < $1; i++)$0"]
|
||||
},
|
||||
"L10n string": {
|
||||
"scope": "dart",
|
||||
"prefix": "l10n",
|
||||
"body": ["L10n.of(context).$0"]
|
||||
},
|
||||
"Mobx store": {
|
||||
"prefix": "mobxstore",
|
||||
"body": [
|
||||
"import 'package:mobx/mobx.dart';",
|
||||
"",
|
||||
"part '$TM_FILENAME_BASE.g.dart';",
|
||||
"",
|
||||
"class ${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/g} = _${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/g} with _$${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/g};",
|
||||
"",
|
||||
"abstract class _${TM_FILENAME_BASE/(.*)/${1:/pascalcase}/g} with Store {",
|
||||
"\t@observable",
|
||||
"\t$0",
|
||||
"}"
|
||||
]
|
||||
"body": ["L10n.of(context)!.$0"]
|
||||
}
|
||||
}
|
||||
|
|
|
@ -2,6 +2,5 @@
|
|||
"files.associations": {
|
||||
"*.arb": "json"
|
||||
},
|
||||
"dart.showTodos": false,
|
||||
"xml.format.preserveAttributeLineBreaks": true
|
||||
"dart.showTodos": false
|
||||
}
|
||||
|
|
|
@ -1,33 +0,0 @@
|
|||
{
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"type": "flutter",
|
||||
"command": "flutter",
|
||||
"args": [
|
||||
"pub",
|
||||
"run",
|
||||
"build_runner",
|
||||
"build",
|
||||
"--delete-conflicting-outputs"
|
||||
],
|
||||
"problemMatcher": ["$dart-build_runner"],
|
||||
"group": "build",
|
||||
"label": "flutter: build_runner build"
|
||||
},
|
||||
{
|
||||
"type": "flutter",
|
||||
"command": "flutter",
|
||||
"args": [
|
||||
"pub",
|
||||
"run",
|
||||
"build_runner",
|
||||
"watch",
|
||||
"--delete-conflicting-outputs"
|
||||
],
|
||||
"problemMatcher": ["$dart-build_runner"],
|
||||
"group": "build",
|
||||
"label": "flutter: flutter pub run build_runner watch"
|
||||
}
|
||||
]
|
||||
}
|
45
CHANGELOG.md
|
@ -1,48 +1,3 @@
|
|||
## Unreleased
|
||||
|
||||
### Added
|
||||
|
||||
- Create post community picker now has autocomplete
|
||||
- You can now add an instance from the three dots menu on the instance page
|
||||
- Editor for writing comments, posts, and profile bio now has a toolbar with shortcuts to all the common markdown things
|
||||
|
||||
## v0.8.0 - 2022-01-14
|
||||
|
||||
### Added
|
||||
|
||||
- Support for Lemmy v0.15.0
|
||||
|
||||
### Changed
|
||||
|
||||
- "Time ago" strings, dates, and compact numbers are now localized
|
||||
|
||||
## v0.7.0 - 2021-11-04
|
||||
|
||||
### Added
|
||||
|
||||
- Blocking of users and communities (from post and from comment)
|
||||
- Reporting posts and comments
|
||||
- Android theme-aware splash screen (thanks to [@mimi89999](https://github.com/mimi89999))
|
||||
- Logging: local logs about some actions/errors. Can be accessed from **settings > about lemmur > logs**
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed a bug where post would go out of sync with full version of the post
|
||||
- Fixed a bug where making a comment selectable would not always result in making the comment selectable
|
||||
- Full post will now open no matter where you press on the post card
|
||||
- Fixed overflows in various places
|
||||
|
||||
### Changed
|
||||
|
||||
- User banner photo now fits better on user profile
|
||||
|
||||
## v0.6.0 - 2021-09-06
|
||||
|
||||
### Added
|
||||
|
||||
- Support for Lemmy v0.12.0
|
||||
- Show cake day on a user's profile and next to their name in a comment
|
||||
|
||||
## v0.5.0 - 2021-04-29
|
||||
|
||||
### Added
|
||||
|
|
|
@ -4,45 +4,23 @@
|
|||
|
||||
## Issue tracking / Repository
|
||||
|
||||
From issues to wikis: everything is on [GitHub](https://github.com/LemmurOrg/lemmur)
|
||||
From issues to wikis: everything is on [GitHub](https://github.com/krawieck/lemmur)
|
||||
|
||||
## Linting / Formatting
|
||||
|
||||
Everything is formatted with `dart format` (no flags) and linted with `dart analyze` ([see rules](analysis_options.yaml)). Both are enforced by the CI.
|
||||
Everything is formatted with `dartfmt` (no flags) and linted with `dartanalyzer` ([see rules](analysis_options.yaml)). Both are enforced by the CI.
|
||||
|
||||
## Translations
|
||||
|
||||
### Weblate
|
||||
|
||||
Lemmy devs are kindly hosting lemmur translation strings on their [Weblate instance](https://weblate.yerbamate.ml/projects/lemmur/lemmur/). Feel free to contribute strings there, we regularly sync string changes with Weblate.
|
||||
|
||||
We use flutter's native file format for translations: ARB, which itself uses the ICU message syntax. In most cases you will be able to deduce the syntax based on the source string. Here are 3 important examples:
|
||||
|
||||
1. Placeholders
|
||||
|
||||
`Hello there {name}!` - placeholders are put in a pair of braces, it will be later replaced with an appropriate value.
|
||||
|
||||
2. Plurals
|
||||
|
||||
`You have {amount} new {amount, plural, =0{messages} =1{message} =2{messages} few{messages} many{messages} other{message}}` - plurals are checked against their quantifier and provide 6 possible forms to choose from. In english this example does not make much sense, since we could just provide the `=1{message}` and `other{messages}` case. `other` case always has to be specified, it acts as a fallback.
|
||||
|
||||
3. Selects
|
||||
|
||||
`I will take a {distance_name, select, close{bus} far{train} veryFar{plane}}.` - selects allow for arbitrary matching against some predefined cases. All cases should be the same as in the source string.
|
||||
|
||||
### Time ago strings
|
||||
|
||||
Strings such as "_About one hour ago_" or "_~1h_" are localizable. We inherit a set of ready translations from [github.com/andresaraujo/timeago.dart/messages](https://github.com/andresaraujo/timeago.dart/tree/master/timeago/lib/src/messages) and provide our own in [lib/l10n/timeago](./lib/l10n/timeago).
|
||||
|
||||
To contribute time ago strings please send a PR containing a class that implements `timeago.LookupMessages`. Place it under [lib/l10n/timeago](./lib/l10n/timeago) with an appropriate name (locale tag) and finally register it in [main_common.dart](./lib/main_common.dart) in the `_setupTimeago` function. Each locale can have a normal (for example "_About one hour ago_") and a short (for example "_~1h_") variant, there are registered separately.
|
||||
<!-- TODO -->
|
||||
|
||||
## Architecture
|
||||
|
||||
Lemmur is written in Dart using [Flutter](https://flutter.dev/docs). To communicate with Lemmy instances [lemmy_api_client](https://github.com/LemmurOrg/lemmy_api_client) is used.
|
||||
Lemmur is written in Dart using [Flutter](https://flutter.dev/docs). To communicate with Lemmy instances [lemmy_api_client](https://github.com/krawieck/lemmy_api_client) is used.
|
||||
|
||||
### State management
|
||||
|
||||
[`MobX`](https://github.com/mobxjs/mobx.dart) + [Provider](https://github.com/rrousselGit/provider) is used for global state management, [flutter_hooks](https://github.com/rrousselGit/flutter_hooks) is used for local (widget-level) state management. `StatefulWidget`s are avoided all together and any state logic reuse is moved to a [custom hook](./lib/hooks).
|
||||
`ChangeNotifier` + [Provider](https://github.com/rrousselGit/provider) is used for global state management, [flutter_hooks](https://github.com/rrousselGit/flutter_hooks) is used for local (widget-level) state management. `StatefulWidget`s are avoided all together and any state logic reuse is moved to a [custom hook](./lib/hooks).
|
||||
|
||||
### Project structure
|
||||
|
||||
|
@ -54,23 +32,19 @@ Lemmur is written in Dart using [Flutter](https://flutter.dev/docs). To communic
|
|||
- `stores/`: global stores
|
||||
- `util/`: utilities
|
||||
- `widgets/`: reusable widgets; building blocks for pages
|
||||
- `main_common.dart`: entrypoint of the app. Sets up the stores, initializes the themes, renders the first page
|
||||
- `main.dart`: entrypoint of the app. Sets up the stores, initializes the themes, renders the first page
|
||||
|
||||
### Things to keep in mind
|
||||
|
||||
- Be aware that Lemmur supports arbitrary Lemmy instances, don't hardcode instance urls
|
||||
- Remember that a user is not obligated to be logged in, contributed widgets should handle this case
|
||||
|
||||
### Lemmy API
|
||||
|
||||
LAC (Lemmy API Client) is used to communicate with Lemmy backends, more information can be found [here](https://github.com/LemmurOrg/lemmy_api_client).
|
||||
|
||||
### For React developers
|
||||
|
||||
If you come from a React background Flutter shouldn't be anything hard to grasp for you.
|
||||
|
||||
- Components are called 'widgets' in flutter
|
||||
- `flutter_hooks` is a React hooks port to flutter. Though you will come to see that `flutter_hooks` are not as powerful
|
||||
- There is no CSS. You compose your layout with other widgets and style them by passing properties
|
||||
- There are no functional components, everything needs to be a class
|
||||
- There is no CSS. You compose your layout with other widgets and style them by passing properties to them
|
||||
- There are no functional components, everything has to be a class
|
||||
- Creating wrapping widgets is not as nice as in React, there is no `{ ...props }`. In flutter you need to pass each argument one by one
|
||||
|
|
|
@ -1,5 +0,0 @@
|
|||
# Privacy Policy
|
||||
|
||||
We don't store your data. We don't use any intermediary services that could store your data.
|
||||
|
||||
For any questions contact us at lemmurapp@protonmail.com
|
37
README.md
|
@ -1,21 +1,14 @@
|
|||
# ⚠️ THIS PROJECT IS NOT MAINTAINED ANYMORE ⚠️
|
||||
|
||||
This project has been officially dropped due to lack of interest and political differences. If anyone is interested in continuing developement, feel free to fork it. For any questions you can message [krawieck](https://matrix.to/#/@krawieck:matrix.org) (who was responsible for the flutter app) or [shilangyu](https://matrix.to/#/@shilangyu:matrix.org) (who was responsible for lemmy_api_client).
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
[![](https://github.com/LemmurOrg/lemmur/workflows/ci/badge.svg)](https://github.com/LemmurOrg/lemmur/actions)
|
||||
[![Translation status](http://weblate.yerbamate.ml/widgets/lemmur/-/lemmur/svg-badge.svg)](http://weblate.yerbamate.ml/engage/lemmur/)
|
||||
[![](https://github.com/krawieck/lemmur/workflows/ci/badge.svg)](https://github.com/krawieck/lemmur/actions)
|
||||
|
||||
<img width=200px height=200px src="https://raw.githubusercontent.com/LemmurOrg/lemmur/master/assets/readme_icon.svg"/>
|
||||
<img width=200px height=200px src="https://raw.githubusercontent.com/krawieck/lemmur/master/assets/readme_icon.svg"/>
|
||||
|
||||
# lemmur
|
||||
|
||||
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" height="80">](https://f-droid.org/packages/com.LemmurOrg.lemmur)
|
||||
[<img src="https://cdn.rawgit.com/steverichey/google-play-badge-svg/master/img/en_get.svg" height="80">](https://play.google.com/store/apps/details?id=com.LemmurOrg.lemmur)
|
||||
[<img src="https://raw.githubusercontent.com/andOTP/andOTP/master/assets/badges/get-it-on-github.png" height="80">](https://github.com/LemmurOrg/lemmur/releases/latest)
|
||||
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" height="80">](https://f-droid.org/packages/com.krawieck.lemmur)
|
||||
[<img src="https://cdn.rawgit.com/steverichey/google-play-badge-svg/master/img/en_get.svg" height="80">](https://play.google.com/store/apps/details?id=com.krawieck.lemmur)
|
||||
[<img src="https://raw.githubusercontent.com/andOTP/andOTP/master/assets/badges/get-it-on-github.png" height="80">](https://github.com/krawieck/lemmur/releases/latest)
|
||||
|
||||
A mobile client for [Lemmy](https://github.com/LemmyNet/lemmy) - a federated reddit alternative
|
||||
|
||||
|
@ -38,26 +31,34 @@ A mobile client for [Lemmy](https://github.com/LemmyNet/lemmy) - a federated red
|
|||
### Prerequisites
|
||||
|
||||
- Install [flutter](https://flutter.dev/docs/get-started/install): To check if this step was successful run `flutter doctor` (Installing android studio is not required if you setup the android SDK yourself)
|
||||
- Clone this repo: `git clone https://github.com/LemmurOrg/lemmur`
|
||||
- Clone this repo: `git clone https://github.com/krawieck/lemmur`
|
||||
- Enter the repo: `cd lemmur`
|
||||
|
||||
### Android
|
||||
|
||||
1. Build: `flutter build apk --flavor prod --target lib/main_prod.dart --release`
|
||||
1. Build: `flutter build apk`
|
||||
|
||||
The apk will be in `build/app/outputs/flutter-apk/app-prod-release.apk`
|
||||
The apk will be in `build/app/outputs/flutter-apk/app-release.apk`
|
||||
|
||||
### Linux
|
||||
|
||||
1. Make sure you have the additional [linux requirements](https://flutter.dev/desktop#additional-linux-requirements) (verify with `flutter doctor`)
|
||||
2. Build: `flutter build linux --target lib/main_prod.dart --release`
|
||||
2. Enable linux desktop:
|
||||
```sh
|
||||
flutter config --enable-linux-desktop
|
||||
```
|
||||
3. Build: `flutter build linux`
|
||||
|
||||
The executable will be in `build/linux/x64/release/bundle/lemmur` (be aware, however, that this executable is not standalone)
|
||||
The executable will be in `build/linux/release/bundle/lemmur` (be aware, however, that this executable is not standalone)
|
||||
|
||||
### Windows
|
||||
|
||||
1. Make sure you have the additional [windows requirements](https://flutter.dev/desktop#additional-windows-requirements) (verify with `flutter doctor`)
|
||||
2. Build: `flutter build windows --target lib/main_prod.dart --release`
|
||||
2. Enable windows desktop:
|
||||
```sh
|
||||
flutter config --enable-windows-desktop
|
||||
```
|
||||
3. Build: `flutter build windows`
|
||||
|
||||
The executable will be in `build\windows\runner\Release\lemmur.exe` (be aware, however, that this executable is not standalone)
|
||||
|
||||
|
|
|
@ -1,16 +1,15 @@
|
|||
linter:
|
||||
rules:
|
||||
- annotate_overrides
|
||||
- avoid_bool_literals_in_conditional_expressions
|
||||
- avoid_catches_without_on_clauses
|
||||
- avoid_catching_errors
|
||||
- avoid_classes_with_only_static_members
|
||||
- avoid_equals_and_hash_code_on_mutable_classes
|
||||
- avoid_escaping_inner_quotes
|
||||
- avoid_final_parameters
|
||||
- avoid_function_literals_in_foreach_calls
|
||||
- avoid_init_to_null
|
||||
- avoid_null_checks_in_equality_operators
|
||||
- avoid_positional_boolean_parameters
|
||||
- avoid_print
|
||||
- avoid_private_typedef_functions
|
||||
- avoid_redundant_argument_values
|
||||
- avoid_relative_lib_imports
|
||||
|
@ -21,6 +20,7 @@ linter:
|
|||
- avoid_setters_without_getters
|
||||
- avoid_single_cascade_in_expression_statements
|
||||
- avoid_type_to_string
|
||||
- avoid_types_on_closure_parameters
|
||||
- avoid_unnecessary_containers
|
||||
- avoid_unused_constructor_parameters
|
||||
- avoid_void_async
|
||||
|
@ -30,24 +30,17 @@ linter:
|
|||
- cascade_invocations
|
||||
- cast_nullable_to_non_nullable
|
||||
- constant_identifier_names
|
||||
- conditional_uri_does_not_exist
|
||||
- curly_braces_in_flow_control_structures
|
||||
- directives_ordering
|
||||
- empty_catches
|
||||
- empty_constructor_bodies
|
||||
- eol_at_end_of_file
|
||||
- exhaustive_cases
|
||||
- file_names
|
||||
- hash_and_equals
|
||||
- implementation_imports
|
||||
- invariant_booleans
|
||||
- library_names
|
||||
- library_prefixes
|
||||
- literal_only_boolean_expressions
|
||||
- non_constant_identifier_names
|
||||
- noop_primitive_operations
|
||||
- no_leading_underscores_for_library_prefixes
|
||||
- no_leading_underscores_for_local_identifiers
|
||||
- null_check_on_nullable_type_parameter
|
||||
- omit_local_variable_types
|
||||
- one_member_abstracts
|
||||
|
@ -64,6 +57,7 @@ linter:
|
|||
- prefer_constructors_over_static_methods
|
||||
- prefer_contains
|
||||
- prefer_equal_for_default_values
|
||||
- prefer_expression_function_bodies
|
||||
- prefer_final_fields
|
||||
- prefer_final_in_for_each
|
||||
- prefer_final_locals
|
||||
|
@ -86,9 +80,7 @@ linter:
|
|||
- prefer_spread_collections
|
||||
- prefer_typing_uninitialized_variables
|
||||
- recursive_getters
|
||||
- secure_pubspec_urls
|
||||
- sized_box_for_whitespace
|
||||
- sized_box_shrink_expand
|
||||
- slash_for_doc_comments
|
||||
- sort_child_properties_last
|
||||
- sort_unnamed_constructors_first
|
||||
|
@ -98,10 +90,8 @@ linter:
|
|||
- unawaited_futures
|
||||
- unnecessary_brace_in_string_interps
|
||||
- unnecessary_const
|
||||
- unnecessary_constructor_name
|
||||
- unnecessary_getters_setters
|
||||
- unnecessary_lambdas
|
||||
- unnecessary_late
|
||||
- unnecessary_new
|
||||
- unnecessary_null_aware_assignments
|
||||
- unnecessary_null_checks
|
||||
|
@ -111,17 +101,11 @@ linter:
|
|||
- unnecessary_string_escapes
|
||||
- unnecessary_string_interpolations
|
||||
- unnecessary_this
|
||||
- unrelated_type_equality_checks
|
||||
- use_colored_box
|
||||
- use_enums
|
||||
- use_full_hex_values_for_flutter_colors
|
||||
- use_is_even_rather_than_modulo
|
||||
- use_named_constants
|
||||
- use_raw_strings
|
||||
- use_rethrow_when_possible
|
||||
- use_setters_to_change_properties
|
||||
- use_super_parameters
|
||||
- use_test_throws_matchers
|
||||
- use_to_and_as_if_applicable
|
||||
- void_checks
|
||||
|
||||
|
@ -129,7 +113,8 @@ analyzer:
|
|||
exclude:
|
||||
- "**/*.g.dart"
|
||||
- "lib/gen/assets.gen.dart"
|
||||
- "lib/l10n/gen/*"
|
||||
# strong-mode:
|
||||
# TODO: consider disabling
|
||||
# implicit-dynamic: false
|
||||
strong-mode:
|
||||
# TODO: remove after migrating to null safety, this is already turned off by default
|
||||
implicit-casts: false
|
||||
# TODO: consider disabling
|
||||
# implicit-dynamic: false
|
||||
|
|
|
@ -25,87 +25,47 @@ apply plugin: 'com.android.application'
|
|||
apply plugin: 'kotlin-android'
|
||||
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle"
|
||||
|
||||
def keystoreProperties = new Properties()
|
||||
def keystorePropertiesFile = rootProject.file('key.properties')
|
||||
if (keystorePropertiesFile.exists()) {
|
||||
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
|
||||
}
|
||||
|
||||
android {
|
||||
compileSdkVersion Math.max(flutter.compileSdkVersion, 32)
|
||||
|
||||
lintOptions {
|
||||
disable 'InvalidPackage'
|
||||
}
|
||||
compileSdkVersion 30
|
||||
|
||||
sourceSets {
|
||||
main.java.srcDirs += 'src/main/kotlin'
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility JavaVersion.VERSION_1_8
|
||||
targetCompatibility JavaVersion.VERSION_1_8
|
||||
lintOptions {
|
||||
disable 'InvalidPackage'
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = '1.8'
|
||||
}
|
||||
|
||||
defaultConfig {
|
||||
applicationId "com.krawieck.lemmur"
|
||||
minSdkVersion Math.max(flutter.minSdkVersion, 16)
|
||||
targetSdkVersion flutter.targetSdkVersion
|
||||
minSdkVersion 16
|
||||
targetSdkVersion 30
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
versionName flutterVersionName
|
||||
}
|
||||
|
||||
signingConfigs {
|
||||
if (System.getenv("ANDROID_STORE_PATH")) {
|
||||
prod {
|
||||
keyAlias System.getenv("ANDROID_KEY_ALIAS")
|
||||
keyPassword System.getenv("ANDROID_KEY_PASSWORD")
|
||||
storeFile file(System.getenv("ANDROID_STORE_PATH"))
|
||||
storePassword System.getenv("ANDROID_STORE_PASSWORD")
|
||||
}
|
||||
} else {
|
||||
prod {
|
||||
keyAlias signingConfigs.debug.keyAlias
|
||||
keyPassword signingConfigs.debug.keyPassword
|
||||
storeFile signingConfigs.debug.storeFile
|
||||
storePassword signingConfigs.debug.storePassword
|
||||
}
|
||||
release {
|
||||
keyAlias keystoreProperties['keyAlias']
|
||||
keyPassword keystoreProperties['keyPassword']
|
||||
storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null
|
||||
storePassword keystoreProperties['storePassword']
|
||||
}
|
||||
}
|
||||
|
||||
flavorDimensions "app"
|
||||
|
||||
productFlavors {
|
||||
dev {
|
||||
dimension "app"
|
||||
applicationIdSuffix ".dev"
|
||||
versionNameSuffix "-dev"
|
||||
manifestPlaceholders = [
|
||||
appName: "lemmur DEV"
|
||||
]
|
||||
signingConfig signingConfigs.debug
|
||||
}
|
||||
|
||||
prod {
|
||||
dimension "app"
|
||||
manifestPlaceholders = [
|
||||
appName: "lemmur"
|
||||
]
|
||||
signingConfig signingConfigs.prod
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
testCoverageEnabled true
|
||||
debuggable true
|
||||
minifyEnabled false
|
||||
signingConfig null
|
||||
}
|
||||
|
||||
release {
|
||||
debuggable false
|
||||
minifyEnabled true
|
||||
shrinkResources false
|
||||
zipAlignEnabled true
|
||||
if (keystorePropertiesFile.exists()) {
|
||||
signingConfig signingConfigs.release
|
||||
} else {
|
||||
signingConfig signingConfigs.debug
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,39 +1,51 @@
|
|||
<manifest
|
||||
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.krawieck.lemmur">
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
package="com.krawieck.lemmur">
|
||||
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
|
||||
calls FlutterMain.startInitialization(this); in its onCreate method.
|
||||
In most cases you can leave this as-is, but you if you want to provide
|
||||
additional functionality it is fine to subclass or reimplement
|
||||
FlutterApplication and put your custom class here. -->
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<!-- Needed for url_launcher to work on android 11 -->
|
||||
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
|
||||
|
||||
<uses-permission android:name="android.permission.INTERNET" />
|
||||
<!-- Needed for url_launcher to work on android 11 -->
|
||||
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES" />
|
||||
|
||||
<application
|
||||
android:name="${applicationName}"
|
||||
android:label="${appName}"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:exported="true"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/LaunchTheme"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme"
|
||||
/>
|
||||
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN" />
|
||||
<category android:name="android.intent.category.LAUNCHER" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<meta-data
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
|
||||
</application>
|
||||
<application
|
||||
android:name="io.flutter.app.FlutterApplication"
|
||||
android:label="lemmur"
|
||||
android:icon="@mipmap/ic_launcher">
|
||||
<activity
|
||||
android:name=".MainActivity"
|
||||
android:launchMode="singleTop"
|
||||
android:theme="@style/LaunchTheme"
|
||||
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
|
||||
android:hardwareAccelerated="true"
|
||||
android:windowSoftInputMode="adjustResize">
|
||||
<!-- Specifies an Android theme to apply to this Activity as soon as
|
||||
the Android process has started. This theme is visible to the user
|
||||
while the Flutter UI initializes. After that, this theme continues
|
||||
to determine the Window background behind the Flutter UI. -->
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.NormalTheme"
|
||||
android:resource="@style/NormalTheme"
|
||||
/>
|
||||
<!-- Displays an Android View that continues showing the launch screen
|
||||
Drawable until Flutter paints its first frame, then this splash
|
||||
screen fades out. A splash screen is useful to avoid any visual
|
||||
gap between the end of Android's launch screen and the painting of
|
||||
Flutter's first frame. -->
|
||||
<meta-data
|
||||
android:name="io.flutter.embedding.android.SplashScreenDrawable"
|
||||
android:resource="@drawable/launch_background"
|
||||
/>
|
||||
<intent-filter>
|
||||
<action android:name="android.intent.action.MAIN"/>
|
||||
<category android:name="android.intent.category.LAUNCHER"/>
|
||||
</intent-filter>
|
||||
</activity>
|
||||
<!-- Don't delete the meta-data below.
|
||||
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
|
||||
<meta-data
|
||||
android:name="flutterEmbedding"
|
||||
android:value="2" />
|
||||
</application>
|
||||
</manifest>
|
||||
|
|
Before Width: | Height: | Size: 7.9 KiB |
Before Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 8.7 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 25 KiB |
|
@ -0,0 +1,12 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Modify this file to customize your launch splash screen -->
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@android:color/white" />
|
||||
|
||||
<!-- You can insert your own image assets here -->
|
||||
<!-- <item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@mipmap/launch_image" />
|
||||
</item> -->
|
||||
</layer-list>
|
|
@ -1,10 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item android:drawable="@color/splash_screen_background_color" />
|
||||
|
||||
<item>
|
||||
<bitmap
|
||||
android:gravity="center"
|
||||
android:src="@drawable/splash" />
|
||||
</item>
|
||||
</layer-list>
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 1.7 KiB |
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.1 KiB |
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.2 KiB |
Before Width: | Height: | Size: 3.5 KiB After Width: | Height: | Size: 3.5 KiB |
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 4.7 KiB |
|
@ -1,4 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="splash_screen_background_color">#303030</color>
|
||||
</resources>
|
|
@ -0,0 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting when the OS's Dark Mode setting is on -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
Flutter draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:windowBackground">?android:colorBackground</item>
|
||||
</style>
|
||||
</resources>
|
|
@ -1,5 +1,4 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="ic_launcher_background">#ffffff</color>
|
||||
<color name="splash_screen_background_color">#fafafa</color>
|
||||
</resources>
|
||||
</resources>
|
|
@ -1,10 +1,18 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<!-- Theme applied to the Android Window while the process is starting -->
|
||||
<style name="LaunchTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:windowBackground">@drawable/splash_screen</item>
|
||||
<!-- Show a splash screen on the activity. Automatically removed when
|
||||
Flutter draws its first frame -->
|
||||
<item name="android:windowBackground">@drawable/launch_background</item>
|
||||
</style>
|
||||
|
||||
<!-- Theme applied to the Android Window as soon as the process has started.
|
||||
This theme determines the color of the Android Window while your
|
||||
Flutter UI initializes, as well as behind your Flutter UI while its
|
||||
running.
|
||||
|
||||
This Theme is only used starting with V2 of Flutter's Android embedding. -->
|
||||
<style name="NormalTheme" parent="@android:style/Theme.Black.NoTitleBar">
|
||||
<item name="android:windowBackground">@color/splash_screen_background_color</item>
|
||||
<item name="android:windowBackground">@android:color/white</item>
|
||||
</style>
|
||||
</resources>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
buildscript {
|
||||
ext.kotlin_version = '1.7.0'
|
||||
ext.kotlin_version = '1.3.50'
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
jcenter()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.android.tools.build:gradle:7.2.1'
|
||||
classpath 'com.android.tools.build:gradle:3.5.0'
|
||||
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
|
||||
}
|
||||
}
|
||||
|
@ -14,13 +14,15 @@ buildscript {
|
|||
allprojects {
|
||||
repositories {
|
||||
google()
|
||||
mavenCentral()
|
||||
jcenter()
|
||||
}
|
||||
}
|
||||
|
||||
rootProject.buildDir = '../build'
|
||||
subprojects {
|
||||
project.buildDir = "${rootProject.buildDir}/${project.name}"
|
||||
}
|
||||
subprojects {
|
||||
project.evaluationDependsOn(':app')
|
||||
}
|
||||
|
||||
|
|
|
@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME
|
|||
distributionPath=wrapper/dists
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.4.2-all.zip
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-all.zip
|
||||
|
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 35 KiB |
|
@ -1,31 +0,0 @@
|
|||
{
|
||||
"@@locale": "bn",
|
||||
"settings": "পছন্দসমূহ",
|
||||
"posts": "ভুক্তি",
|
||||
"comments": "মন্তব্য",
|
||||
"modlog": "ব্যবস্থাপনা সূচী",
|
||||
"post": "ভুক্তি",
|
||||
"deleted_by_creator": "লেখক মুছেছে",
|
||||
"more": "আরো",
|
||||
"mark_as_read": "পঠিত",
|
||||
"mark_as_unread": "অপঠিত",
|
||||
"reply": "উত্তর",
|
||||
"edit": "সম্পাদনা",
|
||||
"delete": "মুছো",
|
||||
"avatar": "অবতার",
|
||||
"banner": "কেতন",
|
||||
"delete_account": "অ্যাকাউন্ট মুছো",
|
||||
"communities": "সম্প্রদায়",
|
||||
"users": "ব্যবহারকারী",
|
||||
"admin": "প্রশাসক",
|
||||
"locked": "বন্ধ",
|
||||
"invalid_community_name": "অগ্রহণযোগ্য নাম।",
|
||||
"number_of_comments": "{formattedCount,plural, =1{{formattedCount}টি মন্তব্য} other{{formattedCount}টি মন্তব্য}}",
|
||||
"number_of_posts": "{formattedCount,plural, =1{{formattedCount}টি ভুক্তি} other{{formattedCount}টি ভুক্তি}}",
|
||||
"delete_account_confirm": "সতর্কতা:",
|
||||
"show_avatars": "অবতার দেখাও",
|
||||
"send_message": "বার্তা পাঠাও",
|
||||
"bot_account": "বট অ্যাকাউন্ট",
|
||||
"show_bot_accounts": "বট অ্যাকাউন্ট দেখাও",
|
||||
"show_read_posts": "পঠিত ভুক্তি দেখাও"
|
||||
}
|
|
@ -1,128 +0,0 @@
|
|||
{
|
||||
"@@locale": "cs",
|
||||
"settings": "Nastavení",
|
||||
"password": "Heslo",
|
||||
"email_or_username": "E-mail nebo uživatelské jméno",
|
||||
"posts": "Příspěvky",
|
||||
"comments": "Komentáře",
|
||||
"modlog": "Moderátorský záznam",
|
||||
"community": "Komunita",
|
||||
"url": "URL",
|
||||
"title": "Titulek",
|
||||
"body": "Obsah",
|
||||
"nsfw": "Citlivý obsah",
|
||||
"post": "odeslat",
|
||||
"save": "uložit",
|
||||
"subscribed": "Odebíráno",
|
||||
"local": "Místní",
|
||||
"all": "Vše",
|
||||
"replies": "Odpovědi",
|
||||
"mentions": "Zmínky",
|
||||
"from": "od",
|
||||
"deleted_by_creator": "smazáno tvůrcem",
|
||||
"more": "více",
|
||||
"mark_as_read": "označit jako přečtené",
|
||||
"mark_as_unread": "označit jako nepřečtené",
|
||||
"reply": "odpovědět",
|
||||
"edit": "upravit",
|
||||
"delete": "smazat",
|
||||
"restore": "obnovit",
|
||||
"yes": "ano",
|
||||
"no": "ne",
|
||||
"avatar": "Avatar",
|
||||
"banner": "Banner",
|
||||
"display_name": "Zobrazovaný název",
|
||||
"bio": "O mně",
|
||||
"email": "E-mail",
|
||||
"matrix_user": "Účet Matrix",
|
||||
"sort_type": "Řadit dle",
|
||||
"type": "Typ",
|
||||
"show_nsfw": "Zobrazovat citlivý obsah",
|
||||
"send_notifications_to_email": "Zasílat notifikace na e-mail",
|
||||
"delete_account": "Smazat účet",
|
||||
"saved": "Uloženo",
|
||||
"communities": "Komunity",
|
||||
"users": "Uživatelé",
|
||||
"theme": "Motiv",
|
||||
"language": "Jazyk",
|
||||
"hot": "Hot",
|
||||
"new_": "Nejnovější",
|
||||
"old": "Nejstarší",
|
||||
"top": "Top",
|
||||
"chat": "Chat",
|
||||
"admin": "administrátor",
|
||||
"by": "od",
|
||||
"not_a_mod_or_admin": "Není moderátor nebo administrátor.",
|
||||
"not_an_admin": "Není administrátor.",
|
||||
"couldnt_find_post": "Nepodařilo se nalézt příspěvek.",
|
||||
"not_logged_in": "Nepřihlášen/a.",
|
||||
"site_ban": "Přístup na tuto stránku vám byl zakázán",
|
||||
"community_ban": "Přístup to této komunity vám byl zakázán.",
|
||||
"downvotes_disabled": "Nesouhlasy deaktivovány",
|
||||
"invalid_url": "Neplatná URL.",
|
||||
"locked": "zamčeno",
|
||||
"couldnt_create_comment": "Komentář se nepodařilo vytvořit.",
|
||||
"couldnt_update_comment": "Nepodařilo se aktualizovat komentář.",
|
||||
"no_comment_edit_allowed": "Úprava komentáře není povolena.",
|
||||
"couldnt_save_comment": "Nepodařilo se uložit komentář.",
|
||||
"couldnt_get_comments": "Nepodařilo se získat komentáře.",
|
||||
"report_reason_required": "Důvod hlášení je povinný.",
|
||||
"report_too_long": "Hlášení je příliš dlouhé.",
|
||||
"couldnt_create_report": "Nepodařilo se vytvořit hlášení.",
|
||||
"couldnt_resolve_report": "Hlášení se nepodařilo vyřešit.",
|
||||
"invalid_post_title": "Neplatný titulek příspěvku",
|
||||
"couldnt_create_post": "Nepodařilo se vytvořit příspěvek.",
|
||||
"couldnt_find_community": "Nepodařilo se nalézt komunitu.",
|
||||
"couldnt_get_posts": "Nepodařilo se získat příspěvky",
|
||||
"no_post_edit_allowed": "Úprava příspěvku není povolena.",
|
||||
"couldnt_save_post": "Příspěvek se nepodařilo uložit.",
|
||||
"site_already_exists": "Stránka již existuje.",
|
||||
"couldnt_update_site": "Nepodařilo se aktualizovat stránku.",
|
||||
"invalid_community_name": "Neplatné jméno.",
|
||||
"community_already_exists": "Komunita již existuje.",
|
||||
"community_moderator_already_exists": "Moderátor komunity již existuje.",
|
||||
"community_follower_already_exists": "Sledující komunity již existuje.",
|
||||
"not_a_moderator": "Není moderátor.",
|
||||
"couldnt_update_community": "Nepodařilo se aktualizovat komunitu.",
|
||||
"no_community_edit_allowed": "Úprava komunity není povolena.",
|
||||
"system_err_login": "Systémová chyba. Zkuste se odhlásit a znovu přihlásit.",
|
||||
"community_user_already_banned": "Uživateli již byl přístup do komunity zakázán.",
|
||||
"couldnt_find_that_username_or_email": "Nepodařilo se nalézt uživatelské jméno nebo e-mail.",
|
||||
"password_incorrect": "Špatné heslo.",
|
||||
"registration_closed": "Registrace uzavřena",
|
||||
"invalid_password": "Neplatné heslo. Heslo nesmí být delší jak 60 znaků.",
|
||||
"passwords_dont_match": "Hesla nesouhlasí.",
|
||||
"captcha_incorrect": "Chybně opsaná captcha.",
|
||||
"invalid_username": "Neplatné uživatelské jméno.",
|
||||
"bio_length_overflow": "\"O mně\" nesmí přesáhnout 300 znaků.",
|
||||
"couldnt_update_user": "Nepodařilo se aktualizovat uživatele.",
|
||||
"couldnt_update_private_message": "Nepodařilo se upravit soukromou zprávu.",
|
||||
"couldnt_update_post": "Nepodařilo se aktualizovat příspěvek",
|
||||
"couldnt_create_private_message": "Nepodařilo se vytvořit soukromou zprávu.",
|
||||
"no_private_message_edit_allowed": "Úprava soukromých zpráv není povolena.",
|
||||
"post_title_too_long": "Titulek příspěvku je příliš dlouhý.",
|
||||
"email_already_exists": "E-mail již existuje.",
|
||||
"user_already_exists": "Uživatel již existuje.",
|
||||
"unsubscribe": "Zrušit odběr",
|
||||
"subscribe": "Odebírat",
|
||||
"messages": "Zprávy",
|
||||
"banned_users": "Zakázaní uživatelé",
|
||||
"delete_account_confirm": "Upozornění: toto trvale vymaže všechna vaše data z této instance. Vaše data nemusí být odstraněna z jiných existujících instancí. Zadejte své heslo pro potvrzení.",
|
||||
"new_password": "Nové heslo",
|
||||
"verify_password": "Potvrzení hesla",
|
||||
"old_password": "Původní heslo",
|
||||
"show_avatars": "Ukázat avatary",
|
||||
"search": "Hledat",
|
||||
"send_message": "Odeslat zprávu",
|
||||
"top_day": "Top za den",
|
||||
"top_week": "Top za týden",
|
||||
"top_month": "Top za měsíc",
|
||||
"top_year": "Top za rok",
|
||||
"top_all": "Top za celou dobu",
|
||||
"most_comments": "Nejkomentovanější",
|
||||
"new_comments": "Nové komentáře",
|
||||
"active": "Aktivní",
|
||||
"bot_account": "Účet robota",
|
||||
"show_bot_accounts": "Zobrazit roboty",
|
||||
"show_read_posts": "Zobrazit přečtené příspěvky"
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
{
|
||||
"@@locale": "cy",
|
||||
"posts": "Postiadau",
|
||||
"comments": "Sylwadau",
|
||||
"post": "post"
|
||||
}
|
|
@ -1,135 +0,0 @@
|
|||
{
|
||||
"@@locale": "fa",
|
||||
"settings": "تنظیمات",
|
||||
"password": "گذرواژه",
|
||||
"email_or_username": "رایانامه یا نامکاربری",
|
||||
"posts": "مطالب",
|
||||
"comments": "نظرات",
|
||||
"modlog": "گزارش ناظم",
|
||||
"community": "اجتماع",
|
||||
"url": "نشانی",
|
||||
"title": "عنوان",
|
||||
"body": "بدنه",
|
||||
"nsfw": "NSFW",
|
||||
"post": "فرسته",
|
||||
"save": "ذخیره",
|
||||
"subscribed": "مشترک",
|
||||
"local": "محلی",
|
||||
"all": "همه",
|
||||
"replies": "پاسخها",
|
||||
"mentions": "اشارهها",
|
||||
"from": "از",
|
||||
"to": "به",
|
||||
"deleted_by_creator": "پاک شد",
|
||||
"more": "بیشتر",
|
||||
"mark_as_read": "علامتگذاری به عنوان خوانده شده",
|
||||
"mark_as_unread": "علامتگذاری به عنوان خوانده نشده",
|
||||
"reply": "پاسخ",
|
||||
"edit": "ویرایش",
|
||||
"delete": "پاک کردن",
|
||||
"restore": "بازگردانی",
|
||||
"yes": "بله",
|
||||
"no": "خیر",
|
||||
"avatar": "آواتار",
|
||||
"display_name": "نام نمایشی",
|
||||
"bio": "زندگینامه",
|
||||
"email": "رایانامه",
|
||||
"matrix_user": "کاربر ماتریس",
|
||||
"sort_type": "نوع ترتیب",
|
||||
"type": "نوع",
|
||||
"show_nsfw": "نمایش محتوای NSFW",
|
||||
"send_notifications_to_email": "فرستادن اعلانات به رایانامه",
|
||||
"delete_account": "پاک کردن حساب",
|
||||
"saved": "ذخیره شد",
|
||||
"communities": "جوامع",
|
||||
"users": "کاربران",
|
||||
"theme": "پوسته",
|
||||
"language": "زبان",
|
||||
"hot": "داغ",
|
||||
"new_": "تازه",
|
||||
"old": "قدیمی",
|
||||
"top": "بالاترین",
|
||||
"chat": "گپ",
|
||||
"admin": "مدیر",
|
||||
"by": "توسط",
|
||||
"not_a_mod_or_admin": "ناظم یا مدیر نیست.",
|
||||
"not_an_admin": "مدیر نیستید.",
|
||||
"couldnt_find_post": "نتوانستیم فرسته را بیابیم.",
|
||||
"not_logged_in": "وارد نشدهاید.",
|
||||
"site_ban": "فعالیت شما در این پایگاه ممنوع شده است",
|
||||
"community_ban": "فعالیت شما در این اجتماع ممنوع شده است.",
|
||||
"downvotes_disabled": "رای پایین غیرفعال است",
|
||||
"invalid_url": "نشانی نامعتبر است.",
|
||||
"locked": "قفل شد",
|
||||
"couldnt_create_comment": "ناتوانی در ایجاد نظر.",
|
||||
"couldnt_like_comment": "ناتوانی در پسنیدن نظر.",
|
||||
"couldnt_update_comment": "ناتوانی در بهروزرسانی نظر.",
|
||||
"no_comment_edit_allowed": "مجاز به ویرایش نظر نیستید.",
|
||||
"couldnt_save_comment": "ناتوانی در ذخیره نظر.",
|
||||
"couldnt_get_comments": "نتوانستیم نظرات را دریافت کنی.",
|
||||
"report_reason_required": "دلیل گزارش الزامی است.",
|
||||
"report_too_long": "گزارش بیش از حد طولانی است.",
|
||||
"couldnt_create_report": "نتوانستیم گزارش بسازیم.",
|
||||
"couldnt_resolve_report": "نتوانستیم این گزارش را حل کنیم.",
|
||||
"invalid_post_title": "عنوان فرسته نامعتبر است",
|
||||
"couldnt_create_post": "نتوانستیم فرسته را ایجاد کنیم.",
|
||||
"couldnt_like_post": "نتوانستیم فرسته را بپسندیم.",
|
||||
"couldnt_find_community": "نتوانستیم اجتماع را بیابیم.",
|
||||
"couldnt_get_posts": "ناتوانی در دریافت مطالب",
|
||||
"no_post_edit_allowed": "مجاز به ویرایش فرسته نیستید.",
|
||||
"couldnt_save_post": "نتوانستیم فرسته را ذخیره کنیم.",
|
||||
"site_already_exists": "این پایگاه از قبل وجود داشته است.",
|
||||
"couldnt_update_site": "ناتوانی در بهروزرسانی پایگاه.",
|
||||
"invalid_community_name": "نام نامعتبر.",
|
||||
"community_already_exists": "این اجتماع از قبل وجود داشته است.",
|
||||
"community_moderator_already_exists": "ناظم اجتماع از پیش وجود دارد.",
|
||||
"community_follower_already_exists": "این کاربر از قبل پیگیر این اجتماع است.",
|
||||
"not_a_moderator": "ناظم نیست.",
|
||||
"couldnt_update_community": "نتوانستیم این اجتماع را بهروز کنیم.",
|
||||
"no_community_edit_allowed": "مجاز به ویرایش اجتماع نیستید.",
|
||||
"system_err_login": "خطای سامانه. سعی کنید خارج شده و دوباره وارد شوید.",
|
||||
"community_user_already_banned": "کاربر این اجتماع از قبل ممنوع شده است.",
|
||||
"couldnt_find_that_username_or_email": "ناتوانی در یافتن این نام کاربری یا رایانامه.",
|
||||
"password_incorrect": "گذرواژه نادرست.",
|
||||
"registration_closed": "نامنویسی بسته است",
|
||||
"invalid_password": "گذرواژه نامعتبر. گذرواژه باید کمتر از ۶۰ حرف داشته باشد.",
|
||||
"passwords_dont_match": "گذرواژهها با هم منطبق نیستند.",
|
||||
"captcha_incorrect": "کپچا درست نیست.",
|
||||
"invalid_username": "نام کاربری نامعتبر است.",
|
||||
"bio_length_overflow": "زندگینامه کاربر نمیتواند از ۳۰۰ حرف فزونی یابد.",
|
||||
"couldnt_update_user": "ناتوانی در بهروزرسانی کاربر.",
|
||||
"couldnt_update_private_message": "نتوانستیم پیام خصوصی را بهروز کنیم.",
|
||||
"couldnt_update_post": "نتوانسیم فرسته را بهروز کنیم",
|
||||
"couldnt_create_private_message": "نتوانستیم پیام خصوصی ایجاد کنید.",
|
||||
"no_private_message_edit_allowed": "نمیشود پیام خصوصی را ویرایش کرد.",
|
||||
"post_title_too_long": "عنوان فرسته بیش از حد طولانی است.",
|
||||
"email_already_exists": "این رایانامه از قبل وجود دارد.",
|
||||
"user_already_exists": "این کاربر از قبل وجود دارد.",
|
||||
"number_of_users_online": "{formattedCount,plural, =1{{formattedCount} کاربر برخط} other{{formattedCount} کاربر برخط}}",
|
||||
"number_of_comments": "{formattedCount,plural, =1{{formattedCount} نظر} other{{formattedCount} نظر}}",
|
||||
"number_of_posts": "{formattedCount,plural, =1{{formattedCount} فرسته} other{{formattedCount} فرسته}}",
|
||||
"number_of_subscribers": "{formattedCount,plural, =1{{formattedCount} مشترک} other{{formattedCount} مشترک}}",
|
||||
"number_of_users": "{formattedCount,plural, =1{{formattedCount} کاربر} other{{formattedCount} کاربر}}",
|
||||
"unsubscribe": "لغو اشتراک",
|
||||
"subscribe": "اشتراک",
|
||||
"messages": "پیامها",
|
||||
"banned_users": "کاربران ممنوع شده",
|
||||
"delete_account_confirm": "هشدار: این کنش، تمام اطلاعات شما را برای همیشه پاک میکند. برای تایید، گذرواژه خود را وارد کنید.",
|
||||
"new_password": "گذرواژه جدید",
|
||||
"verify_password": "تایید گذرواژه",
|
||||
"old_password": "پسورد پیشین",
|
||||
"show_avatars": "نمایش آواتارها",
|
||||
"search": "جستجو",
|
||||
"send_message": "ارسال پیام",
|
||||
"top_day": "بهترینهای روز",
|
||||
"top_week": "بهترینهای هفته",
|
||||
"top_month": "بهترینهای ماه",
|
||||
"top_year": "بهترینهای سال",
|
||||
"top_all": "بهترینها از ابتدا",
|
||||
"most_comments": "بیشترین نظرات",
|
||||
"new_comments": "نظرات جدید",
|
||||
"active": "فعال",
|
||||
"bot_account": "حساب بات",
|
||||
"show_bot_accounts": "نمایش حسابهای بات",
|
||||
"show_read_posts": "نمایش فرستههای خوانده شده"
|
||||
}
|
|
@ -1,136 +0,0 @@
|
|||
{
|
||||
"@@locale": "id",
|
||||
"settings": "Pengaturan",
|
||||
"password": "Kata Sandi",
|
||||
"email_or_username": "Surel atau Nama Pengguna",
|
||||
"posts": "Pos",
|
||||
"comments": "Komentar",
|
||||
"modlog": "Log Moderator",
|
||||
"community": "Komunitas",
|
||||
"url": "URL",
|
||||
"title": "Judul",
|
||||
"body": "Isi",
|
||||
"nsfw": "NSFW",
|
||||
"post": "pos",
|
||||
"save": "simpan",
|
||||
"subscribed": "Telah berlangganan",
|
||||
"local": "Lokal",
|
||||
"all": "Semua",
|
||||
"replies": "Balasan",
|
||||
"mentions": "Merujuk",
|
||||
"from": "dari",
|
||||
"to": "untuk",
|
||||
"deleted_by_creator": "dihapus oleh pembuat",
|
||||
"more": "lainnya",
|
||||
"mark_as_read": "tandai sebagai telah dibaca",
|
||||
"mark_as_unread": "tandai sebagai belum dibaca",
|
||||
"reply": "balas",
|
||||
"edit": "sunting",
|
||||
"delete": "hapus",
|
||||
"restore": "pulihkan",
|
||||
"yes": "ya",
|
||||
"no": "tidak",
|
||||
"avatar": "Avatar",
|
||||
"banner": "Spanduk",
|
||||
"display_name": "Nama Tampilan",
|
||||
"bio": "Bio",
|
||||
"email": "Surel",
|
||||
"matrix_user": "Pengguna Matrix",
|
||||
"sort_type": "Tipe penyortiran",
|
||||
"type": "Tipe",
|
||||
"show_nsfw": "Perlihatkan konten NSFW",
|
||||
"send_notifications_to_email": "Mengirim notifikasi ke surel",
|
||||
"delete_account": "Hapus Akun",
|
||||
"saved": "Tersimpan",
|
||||
"communities": "Komunitas",
|
||||
"users": "Pengguna",
|
||||
"theme": "Tema",
|
||||
"language": "Bahasa",
|
||||
"hot": "Hangat",
|
||||
"new_": "Baru",
|
||||
"old": "Lama",
|
||||
"top": "Teratas",
|
||||
"chat": "Obrolan",
|
||||
"admin": "admin",
|
||||
"by": "oleh",
|
||||
"not_a_mod_or_admin": "Bukan seorang moderator atau admin.",
|
||||
"not_an_admin": "Bukan seorang admin.",
|
||||
"couldnt_find_post": "Tidak bisa menemukan pos.",
|
||||
"not_logged_in": "Belum masuk.",
|
||||
"site_ban": "Anda sudah terlarang dari situs ini",
|
||||
"community_ban": "Anda sudah terlarang dari komunitas ini.",
|
||||
"downvotes_disabled": "Pilih Turun dinonaktifkan",
|
||||
"invalid_url": "URL tidak valid.",
|
||||
"locked": "dikunci",
|
||||
"couldnt_create_comment": "Tidak bisa membuat komentar.",
|
||||
"couldnt_like_comment": "Tidak bisa menyukai komentar.",
|
||||
"couldnt_update_comment": "Tidak bisa memperbarui komentar.",
|
||||
"no_comment_edit_allowed": "Tidak diperbolehkan untuk mengedit komentar.",
|
||||
"couldnt_save_comment": "Tidak bisa menyimpan komentar.",
|
||||
"couldnt_get_comments": "Tidak bisa mendapatkan komentar.",
|
||||
"report_reason_required": "Alasan laporan diperlukan.",
|
||||
"report_too_long": "Laporan terlalu panjang.",
|
||||
"couldnt_create_report": "Tidak bisa membuat laporan.",
|
||||
"couldnt_resolve_report": "Tidak bisa menyelesaikan laporan.",
|
||||
"invalid_post_title": "Judul pos tidak valid",
|
||||
"couldnt_create_post": "Tidak bisa membuat pos.",
|
||||
"couldnt_like_post": "Tidak bisa menyukai pos.",
|
||||
"couldnt_find_community": "Tidak bisa menemukan komunitas.",
|
||||
"couldnt_get_posts": "Tidak bisa mendapatkan pos",
|
||||
"no_post_edit_allowed": "Tidak diperbolehkan untuk mengedit pos.",
|
||||
"couldnt_save_post": "Tidak bisa menyimpan pos.",
|
||||
"site_already_exists": "Situs sudah tersedia.",
|
||||
"couldnt_update_site": "Tidak bisa memperbarui situs.",
|
||||
"invalid_community_name": "Nama tidak valid.",
|
||||
"community_already_exists": "Komunitas sudah ada.",
|
||||
"community_moderator_already_exists": "Moderator komunitas sudah ada.",
|
||||
"community_follower_already_exists": "Pengikut komunitas sudah ada.",
|
||||
"not_a_moderator": "Bukan seorang moderator.",
|
||||
"couldnt_update_community": "Tidak bisa memperbarui Komunitas.",
|
||||
"no_community_edit_allowed": "Tidak diperbolehkan untuk mengedit komunitas.",
|
||||
"system_err_login": "Sistem ada kesalahan. Coba keluar dan masuk kembali.",
|
||||
"community_user_already_banned": "Pengguna komunitas sudah terlarang.",
|
||||
"couldnt_find_that_username_or_email": "Tidak bisa menemukan nama pengguna atau surel tersebut.",
|
||||
"password_incorrect": "Kata Sandi salah.",
|
||||
"registration_closed": "Pendaftaran Ditutup",
|
||||
"invalid_password": "Kata sandi tidak valid. Kata sandi harus <= 60 karakter.",
|
||||
"passwords_dont_match": "Kata Sandi tidak sesuai.",
|
||||
"captcha_incorrect": "Captcha salah.",
|
||||
"invalid_username": "Nama Pengguna tidak valid.",
|
||||
"bio_length_overflow": "Bio pengguna tidak boleh melibihi 300 karakter.",
|
||||
"couldnt_update_user": "Tidak bisa memperbarui pengguna.",
|
||||
"couldnt_update_private_message": "Tidak bisa memperbarui pesan pribadi.",
|
||||
"couldnt_update_post": "Tidak bisa memperbarui pos",
|
||||
"couldnt_create_private_message": "Tidak bisa membuat pesan pribadi.",
|
||||
"no_private_message_edit_allowed": "Tidak diperbolehkan untuk mengedit pesan pribadi.",
|
||||
"post_title_too_long": "Judul pos terlalu panjang.",
|
||||
"email_already_exists": "Surel sudah ada.",
|
||||
"user_already_exists": "Pengguna sudah ada.",
|
||||
"number_of_users_online": "{formattedCount,plural, other{{formattedCount} pengguna sedang daring}}",
|
||||
"number_of_comments": "{formattedCount,plural, other{{formattedCount} Komentar}}",
|
||||
"number_of_posts": "{formattedCount,plural, other{{formattedCount} Pos}}",
|
||||
"number_of_subscribers": "{formattedCount,plural, other{{formattedCount} pelanggan}}",
|
||||
"number_of_users": "{formattedCount,plural, other{{formattedCount} pengguna}}",
|
||||
"unsubscribe": "Berhenti berlangganan",
|
||||
"subscribe": "Berlangganan",
|
||||
"messages": "Pesan",
|
||||
"banned_users": "Pengguna Yang Dilarang",
|
||||
"delete_account_confirm": "Peringatan: ini akan menghapus secara permanen seluruh data Anda di peladen ini. Data Anda mungkin tidak terhapus di peladen lain yang aktif. Masukkan kata sandi Anda untuk mengonfirmasi.",
|
||||
"new_password": "Kata Sandi Baru",
|
||||
"verify_password": "Verifikasi Kata Sandi",
|
||||
"old_password": "Kata Sandi Lama",
|
||||
"show_avatars": "Perlihatkan Avatar",
|
||||
"search": "Cari",
|
||||
"send_message": "Kirim Pesan",
|
||||
"top_day": "Teratas Hari Ini",
|
||||
"top_week": "Teratas Pekan Ini",
|
||||
"top_month": "Teratas Bulan Ini",
|
||||
"top_year": "Teratas Tahun Ini",
|
||||
"top_all": "Teratas Sepanjang Waktu",
|
||||
"most_comments": "Paling Banyak Komentar",
|
||||
"new_comments": "Komentar Terbaru",
|
||||
"active": "Aktif",
|
||||
"bot_account": "Akun Bot",
|
||||
"show_bot_accounts": "Perlihatkan Akun Bot",
|
||||
"show_read_posts": "Perlihatkan Pos Yang Sudah Dibaca"
|
||||
}
|
|
@ -1,269 +0,0 @@
|
|||
{
|
||||
"@@locale": "ja",
|
||||
"settings": "設定",
|
||||
"@settings": {},
|
||||
"password": "パスワード",
|
||||
"@password": {},
|
||||
"email_or_username": "メールアドレスまたはユーザー名",
|
||||
"@email_or_username": {},
|
||||
"posts": "投稿",
|
||||
"@posts": {},
|
||||
"comments": "コメント",
|
||||
"@comments": {},
|
||||
"modlog": "モデレーションログ",
|
||||
"@modlog": {},
|
||||
"community": "コミュニティ",
|
||||
"@community": {},
|
||||
"url": "URL",
|
||||
"@url": {},
|
||||
"title": "タイトル",
|
||||
"@title": {},
|
||||
"body": "本文",
|
||||
"@body": {},
|
||||
"nsfw": "閲覧注意",
|
||||
"@nsfw": {},
|
||||
"post": "投稿",
|
||||
"@post": {},
|
||||
"save": "保存",
|
||||
"@save": {},
|
||||
"subscribed": "登録済み",
|
||||
"@subscribed": {},
|
||||
"local": "インスタンス内",
|
||||
"@local": {},
|
||||
"all": "全て",
|
||||
"@all": {},
|
||||
"replies": "返信",
|
||||
"@replies": {},
|
||||
"mentions": "言及",
|
||||
"@mentions": {},
|
||||
"from": "から",
|
||||
"@from": {},
|
||||
"to": "投稿先",
|
||||
"@to": {},
|
||||
"deleted_by_creator": "投稿者によって削除済み",
|
||||
"@deleted_by_creator": {},
|
||||
"more": "さらに表示",
|
||||
"@more": {},
|
||||
"mark_as_read": "既読にする",
|
||||
"@mark_as_read": {},
|
||||
"mark_as_unread": "未読にする",
|
||||
"@mark_as_unread": {},
|
||||
"reply": "返信",
|
||||
"@reply": {},
|
||||
"edit": "編集",
|
||||
"@edit": {},
|
||||
"delete": "削除",
|
||||
"@delete": {},
|
||||
"restore": "復元",
|
||||
"@restore": {},
|
||||
"yes": "はい",
|
||||
"@yes": {},
|
||||
"no": "いいえ",
|
||||
"@no": {},
|
||||
"avatar": "アバター",
|
||||
"@avatar": {},
|
||||
"banner": "バナー",
|
||||
"@banner": {},
|
||||
"display_name": "表示名",
|
||||
"@display_name": {},
|
||||
"bio": "自己紹介",
|
||||
"@bio": {},
|
||||
"email": "メールアドレス",
|
||||
"@email": {},
|
||||
"matrix_user": "Matrix のユーザーアカウント",
|
||||
"@matrix_user": {},
|
||||
"sort_type": "投稿やコメントの並び順",
|
||||
"@sort_type": {},
|
||||
"type": "検索対象",
|
||||
"@type": {},
|
||||
"show_nsfw": "閲覧注意のコンテンツを表示",
|
||||
"@show_nsfw": {},
|
||||
"send_notifications_to_email": "通知を設定したメールアドレスに送信",
|
||||
"@send_notifications_to_email": {},
|
||||
"delete_account": "アカウントを削除",
|
||||
"@delete_account": {},
|
||||
"saved": "保存済み",
|
||||
"@saved": {},
|
||||
"communities": "コミュニティ",
|
||||
"@communities": {},
|
||||
"users": "ユーザー",
|
||||
"@users": {},
|
||||
"theme": "テーマ",
|
||||
"@theme": {},
|
||||
"language": "言語",
|
||||
"@language": {},
|
||||
"hot": "人気",
|
||||
"@hot": {},
|
||||
"new_": "新しい順",
|
||||
"@new_": {},
|
||||
"old": "古い順",
|
||||
"@old": {},
|
||||
"top": "トップ",
|
||||
"@top": {},
|
||||
"chat": "会話",
|
||||
"@chat": {},
|
||||
"admin": "管理者",
|
||||
"@admin": {},
|
||||
"by": "投稿者",
|
||||
"@by": {},
|
||||
"not_a_mod_or_admin": "モデレーターまたは管理者ではありません。",
|
||||
"@not_a_mod_or_admin": {},
|
||||
"not_an_admin": "管理者ではありません。",
|
||||
"@not_an_admin": {},
|
||||
"couldnt_find_post": "投稿が見つかりせんでした。",
|
||||
"@couldnt_find_post": {},
|
||||
"not_logged_in": "ログインしていません。",
|
||||
"@not_logged_in": {},
|
||||
"site_ban": "サイトへのアクセスを禁止されています",
|
||||
"@site_ban": {},
|
||||
"community_ban": "このコミュニティへのアクセスを禁止されています。",
|
||||
"@community_ban": {},
|
||||
"downvotes_disabled": "反対票を無効化",
|
||||
"@downvotes_disabled": {},
|
||||
"invalid_url": "無効なURL。",
|
||||
"@invalid_url": {},
|
||||
"locked": "凍結中",
|
||||
"@locked": {},
|
||||
"couldnt_create_comment": "投稿が作成されませんでした。",
|
||||
"@couldnt_create_comment": {},
|
||||
"couldnt_like_comment": "コメントを「いいね」できませんでした。",
|
||||
"@couldnt_like_comment": {},
|
||||
"couldnt_update_comment": "コメントが更新されませんでした。",
|
||||
"@couldnt_update_comment": {},
|
||||
"no_comment_edit_allowed": "コメントの編集権限がありません。",
|
||||
"@no_comment_edit_allowed": {},
|
||||
"couldnt_save_comment": "コメントが保存されませんでした。",
|
||||
"@couldnt_save_comment": {},
|
||||
"couldnt_get_comments": "コメントを読み込みできませんでした。",
|
||||
"@couldnt_get_comments": {},
|
||||
"invalid_post_title": "無効な投稿のタイトル",
|
||||
"@invalid_post_title": {},
|
||||
"couldnt_create_post": "投稿が作成されませんでした。",
|
||||
"@couldnt_create_post": {},
|
||||
"couldnt_like_post": "投稿を「いいね」できませんでした。",
|
||||
"@couldnt_like_post": {},
|
||||
"couldnt_find_community": "コミュニティが見つかりませんでした。",
|
||||
"@couldnt_find_community": {},
|
||||
"couldnt_get_posts": "投稿を読み込みできませんでした",
|
||||
"@couldnt_get_posts": {},
|
||||
"no_post_edit_allowed": "投稿の編集権限がありません。",
|
||||
"@no_post_edit_allowed": {},
|
||||
"couldnt_save_post": "投稿が保存されませんでした。",
|
||||
"@couldnt_save_post": {},
|
||||
"site_already_exists": "サイトは既に存在します。",
|
||||
"@site_already_exists": {},
|
||||
"couldnt_update_site": "サイトが更新されませんでした。",
|
||||
"@couldnt_update_site": {},
|
||||
"invalid_community_name": "無効なコミュニティの名前です。",
|
||||
"@invalid_community_name": {},
|
||||
"community_already_exists": "コミュニティは既に存在します。",
|
||||
"@community_already_exists": {},
|
||||
"community_moderator_already_exists": "コミュニティのモデレーターは既に存在しています。",
|
||||
"@community_moderator_already_exists": {},
|
||||
"community_follower_already_exists": "コミュニティへのフォロワーは既に存在します。",
|
||||
"@community_follower_already_exists": {},
|
||||
"not_a_moderator": "モデレーターではありません。",
|
||||
"@not_a_moderator": {},
|
||||
"couldnt_update_community": "コミュニティを更新できませんでした。",
|
||||
"@couldnt_update_community": {},
|
||||
"no_community_edit_allowed": "コミュニティの編集許可がありません。",
|
||||
"@no_community_edit_allowed": {},
|
||||
"system_err_login": "システムエラーが発生しました。一度ログアウトして再度ログインしてから、お試しください。",
|
||||
"@system_err_login": {},
|
||||
"community_user_already_banned": "コミュニティのユーザーは既にアクセスが禁止されています。",
|
||||
"@community_user_already_banned": {},
|
||||
"couldnt_find_that_username_or_email": "ユーザー名またはメールアドレスが見つかりませんでした。",
|
||||
"@couldnt_find_that_username_or_email": {},
|
||||
"password_incorrect": "無効なパスワードです。",
|
||||
"@password_incorrect": {},
|
||||
"registration_closed": "新規登録は受け付けていません",
|
||||
"@registration_closed": {},
|
||||
"invalid_password": "無効なパスワードです。パスワードは必ず60文字以下にしてください。",
|
||||
"@invalid_password": {},
|
||||
"passwords_dont_match": "パスワードが一致しません。",
|
||||
"@passwords_dont_match": {},
|
||||
"captcha_incorrect": "Captchaコードが合っていません。",
|
||||
"@captcha_incorrect": {},
|
||||
"invalid_username": "無効なユーザー名です。",
|
||||
"@invalid_username": {},
|
||||
"bio_length_overflow": "自己紹介は 300 文字までです。",
|
||||
"@bio_length_overflow": {},
|
||||
"couldnt_update_user": "ユーザーが更新されませんでした。",
|
||||
"@couldnt_update_user": {},
|
||||
"couldnt_update_private_message": "プライベートメッセージが更新されませんでした。",
|
||||
"@couldnt_update_private_message": {},
|
||||
"couldnt_update_post": "投稿が更新されませんでした",
|
||||
"@couldnt_update_post": {},
|
||||
"couldnt_create_private_message": "プライベートメッセージが作成されませんでした。",
|
||||
"@couldnt_create_private_message": {},
|
||||
"no_private_message_edit_allowed": "プライベートメッセージの編集許可がありません。",
|
||||
"@no_private_message_edit_allowed": {},
|
||||
"post_title_too_long": "投稿のタイトルが長すぎます。",
|
||||
"@post_title_too_long": {},
|
||||
"email_already_exists": "メールアドレスが既に使用されています。",
|
||||
"@email_already_exists": {},
|
||||
"user_already_exists": "ユーザーは既に存在します。",
|
||||
"@user_already_exists": {},
|
||||
"number_of_users_online": "{formattedCount,plural, =1{{formattedCount} 名のユーザーがオンライン} other{{formattedCount} 名のユーザーがオンライン}}",
|
||||
"@number_of_users_online": {},
|
||||
"number_of_comments": "{formattedCount,plural, =1{{formattedCount} 件のコメント} other{{formattedCount} 件のコメント}}",
|
||||
"@number_of_comments": {},
|
||||
"number_of_posts": "{formattedCount,plural, =1{{formattedCount} 件の投稿} other{{formattedCount} 件の投稿}}",
|
||||
"@number_of_posts": {},
|
||||
"number_of_subscribers": "{formattedCount,plural, =1{{formattedCount} 名の登録者} other{{formattedCount} 名の登録者}}",
|
||||
"@number_of_subscribers": {},
|
||||
"number_of_users": "{formattedCount,plural, =1{{formattedCount} 名のユーザー} other{{formattedCount} 名のユーザー}}",
|
||||
"@number_of_users": {},
|
||||
"unsubscribe": "登録解除",
|
||||
"@unsubscribe": {},
|
||||
"subscribe": "登録",
|
||||
"@subscribe": {},
|
||||
"messages": "メッセージ",
|
||||
"@messages": {},
|
||||
"banned_users": "アクセス禁止してるユーザー",
|
||||
"@banned_users": {},
|
||||
"delete_account_confirm": "警告: あなたの全てのデータは、このインスタンスから永久に削除されます。しかし、Lemmyの連合機能によって他のインスタンスにある、あなたの一部のデータは削除されないかもしれません。確認のため、パスワードを入力してください。",
|
||||
"@delete_account_confirm": {},
|
||||
"new_password": "新しいパスワード",
|
||||
"@new_password": {},
|
||||
"verify_password": "パスワードの確認",
|
||||
"@verify_password": {},
|
||||
"old_password": "現在のパスワード",
|
||||
"@old_password": {},
|
||||
"show_avatars": "アバターを表示",
|
||||
"@show_avatars": {},
|
||||
"search": "検索",
|
||||
"@search": {},
|
||||
"send_message": "メッセージを送信",
|
||||
"@send_message": {},
|
||||
"top_day": "今日の人気順",
|
||||
"@top_day": {},
|
||||
"top_week": "週間での人気順",
|
||||
"@top_week": {},
|
||||
"top_month": "月間での人気順",
|
||||
"@top_month": {},
|
||||
"top_year": "年間での人気順",
|
||||
"@top_year": {},
|
||||
"top_all": "全ての期間での人気順",
|
||||
"@top_all": {},
|
||||
"most_comments": "コメントの多い順",
|
||||
"@most_comments": {},
|
||||
"new_comments": "新しくコメントが入った順",
|
||||
"@new_comments": {},
|
||||
"active": "活発",
|
||||
"@active": {},
|
||||
"bot_account": "このアカウントをbotにする",
|
||||
"@bot_account": {},
|
||||
"show_bot_accounts": "botアカウントを表示",
|
||||
"@show_bot_accounts": {},
|
||||
"show_read_posts": "読んだ投稿を表示",
|
||||
"@show_read_posts": {},
|
||||
"report_reason_required": "通報理由は必須です。",
|
||||
"@report_reason_required": {},
|
||||
"report_too_long": "通報理由が長すぎます。",
|
||||
"@report_too_long": {},
|
||||
"couldnt_create_report": "通報を作成できませんでした。",
|
||||
"@couldnt_create_report": {},
|
||||
"couldnt_resolve_report": "通報を解決できませんでした。",
|
||||
"@couldnt_resolve_report": {}
|
||||
}
|
|
@ -1,71 +0,0 @@
|
|||
{
|
||||
"@@locale": "ml",
|
||||
"settings": "ക്രമീകരണങ്ങൾ",
|
||||
"password": "രഹസ്യവാക്ക്",
|
||||
"email_or_username": "ഇമെയിൽ അല്ലെങ്കിൽ ഉപയോക്തൃനാമം",
|
||||
"posts": "പോസ്റ്റുകൾ",
|
||||
"modlog": "മോഡ്ലോഗ്",
|
||||
"url": "യുആർഎൽ",
|
||||
"title": "ശീർഷകം",
|
||||
"post": "പോസ്റ്റ് ചെയ്യൂ",
|
||||
"save": "സംരക്ഷിക്കുക",
|
||||
"local": "പ്രാദേശികം",
|
||||
"all": "എല്ലാം",
|
||||
"replies": "മറുപടികൾ",
|
||||
"mentions": "സൂചനകൾ",
|
||||
"more": "കൂടുതൽ",
|
||||
"mark_as_read": "വായിച്ചതായി അടയാളപ്പെടുത്തുക",
|
||||
"mark_as_unread": "വായിക്കാത്തതായി അടയാളപ്പെടുത്തുക",
|
||||
"reply": "മറുപടി",
|
||||
"edit": "തിരുത്തുക",
|
||||
"delete": "ഇല്ലാതാക്കുക",
|
||||
"restore": "വീണ്ടെടുക്കുക",
|
||||
"yes": "അതെ",
|
||||
"no": "അല്ല",
|
||||
"avatar": "അവതാർ",
|
||||
"banner": "ബാനർ",
|
||||
"display_name": "പ്രദർശന പേര്",
|
||||
"bio": "ബയോ",
|
||||
"email": "ഇമെയിൽ",
|
||||
"type": "തരം",
|
||||
"send_notifications_to_email": "അറിയിപ്പുകൾ ഇമെയിലിലേക്ക് അയയ്ക്കുക",
|
||||
"delete_account": "അക്കൗണ്ട് ഇല്ലാതാക്കുക",
|
||||
"saved": "സംരക്ഷിച്ചു",
|
||||
"communities": "കൂട്ടായ്മകൾ",
|
||||
"users": "ഉപയോക്താക്കൾ",
|
||||
"theme": "തീം",
|
||||
"language": "ഭാഷ",
|
||||
"hot": "'ഹോട്ട്'",
|
||||
"new_": "പുതിയത്",
|
||||
"old": "പഴയത്",
|
||||
"top": "മികച്ചത്",
|
||||
"chat": "ചാറ്റ്",
|
||||
"admin": "അഡ്മിൻ",
|
||||
"not_a_mod_or_admin": "ഒരു മോഡറേറ്റർ അല്ലെങ്കിൽ അഡ്മിൻ അല്ല.",
|
||||
"not_an_admin": "ഒരു അഡ്മിൻ അല്ല.",
|
||||
"not_logged_in": "പ്രവേശിച്ചിട്ടില്ല",
|
||||
"site_ban": "നിങ്ങളെ ഈ സൈറ്റിൽ നിന്ന് നിരോധിച്ചിരിക്കുന്നു",
|
||||
"locked": "പൂട്ടിയിരിക്കുന്നു",
|
||||
"invalid_community_name": "അസാധുവായ പേര്.",
|
||||
"not_a_moderator": "ഒരു മോഡറേറ്റർ അല്ല.",
|
||||
"email_already_exists": "ഇമെയിൽ ഇതിനകം നിലവിലുണ്ട്.",
|
||||
"number_of_users_online": "{formattedCount,plural, =1{{formattedCount} ഉപയോക്താവ് ഓൺലൈൻ} other{{formattedCount} ഉപയോക്താക്കൾ ഓൺലൈൻ}}",
|
||||
"number_of_comments": "{formattedCount,plural, =1{{formattedCount} കമ്മന്റ്} other{{formattedCount} കമ്മന്റുകൾ}}",
|
||||
"number_of_posts": "{formattedCount,plural, =1{{formattedCount} പോസ്റ്റ്} other{{formattedCount} പോസ്റ്റുകൾ}}",
|
||||
"number_of_users": "{formattedCount,plural, =1{{formattedCount} ഉപയോക്താവ്} other{{formattedCount} ഉപയോക്താക്കൾ}}",
|
||||
"messages": "സന്ദേശങ്ങൾ",
|
||||
"banned_users": "നിരോധിച്ച ഉപയോക്താക്കൾ",
|
||||
"new_password": "പുതിയ രഹസ്യവാക്ക്",
|
||||
"verify_password": "രഹസ്യവാക്ക് ഉറപ്പാക്കുക",
|
||||
"old_password": "പഴയ രഹസ്യവാക്ക്",
|
||||
"show_avatars": "അവതാറുകൾ കാണിക്കുക",
|
||||
"search": "തിരയുക",
|
||||
"send_message": "സന്ദേശം അയയ്ക്കുക",
|
||||
"top_month": "മാസത്തിൽ മികച്ചത്",
|
||||
"top_year": "വർഷത്തിൽ മികച്ചത്",
|
||||
"top_all": "എക്കാലത്തെയും മികച്ചത്",
|
||||
"active": "സജീവമാണ്",
|
||||
"bot_account": "റോബോട്ട് അക്കൗണ്ട്",
|
||||
"show_bot_accounts": "റോബോട്ട് അക്കൗണ്ടുകൾ കാണിക്കുക",
|
||||
"show_read_posts": "വായിച്ച പോസ്റ്റുകൾ കാണിക്കുക"
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"@@locale": "mnc",
|
||||
"posts": "ᡧᡠ",
|
||||
"comments": "ᠯᡝᠣᠯᡝᠨ",
|
||||
"post": "ᡧ",
|
||||
"number_of_comments": "{formattedCount,plural, =1{{formattedCount} ᠯᡝᠣᠯᡝᠨ} other{{formattedCount} ᠯᡝᠣᠯᡝᠨ}}",
|
||||
"number_of_posts": "{formattedCount,plural, =1{{formattedCount} ᡧᡠ} other{{formattedCount} ᡧᡠ}}"
|
||||
}
|
|
@ -1,55 +0,0 @@
|
|||
{
|
||||
"@@locale": "oc",
|
||||
"settings": "Paramètres",
|
||||
"password": "Senhal",
|
||||
"posts": "Publicacions",
|
||||
"comments": "Comentaris",
|
||||
"community": "Comunitat",
|
||||
"url": "URL",
|
||||
"title": "Títol",
|
||||
"body": "Còs",
|
||||
"post": "publicar",
|
||||
"replies": "Responsas",
|
||||
"mentions": "Mencions",
|
||||
"more": "mai",
|
||||
"reply": "respondre",
|
||||
"edit": "editar",
|
||||
"delete": "suprimir",
|
||||
"restore": "restaurar",
|
||||
"yes": "òc",
|
||||
"no": "non",
|
||||
"avatar": "Avatar",
|
||||
"banner": "Bandièra",
|
||||
"display_name": "Nom d'afichatge",
|
||||
"bio": "Biografia",
|
||||
"email": "Adreça electronica",
|
||||
"sort_type": "Triar per tipe",
|
||||
"type": "Tipe",
|
||||
"delete_account": "Suprimir lo compte",
|
||||
"saved": "Enregistrat",
|
||||
"communities": "Comunitats",
|
||||
"users": "Utilizaires",
|
||||
"theme": "Tèma",
|
||||
"language": "Lenga",
|
||||
"new_": "Nòu",
|
||||
"by": "per",
|
||||
"not_logged_in": "Pas connectat.",
|
||||
"invalid_url": "URL invalida.",
|
||||
"invalid_community_name": "Nom invalid.",
|
||||
"invalid_username": "Nom d'utilizaire invalid.",
|
||||
"user_already_exists": "L’utilizaire existís ja.",
|
||||
"number_of_users_online": "{formattedCount,plural, =1{{formattedCount} utilizaire en linha} other{{formattedCount} utilizaires en linha}}",
|
||||
"number_of_comments": "{formattedCount,plural, =1{{formattedCount} comentari} other{{formattedCount} comentaris}}",
|
||||
"number_of_posts": "{formattedCount,plural, =1{{formattedCount} publicacion} other{{formattedCount} publicacions}}",
|
||||
"number_of_users": "{formattedCount,plural, =1{{formattedCount} utilizaire} other{{formattedCount} utilizaires}}",
|
||||
"messages": "Messatges",
|
||||
"new_password": "Senhal novèl",
|
||||
"verify_password": "Verificar lo senhal",
|
||||
"old_password": "Senhal ancian",
|
||||
"show_avatars": "Mostrar los avatars",
|
||||
"search": "Recercar",
|
||||
"send_message": "Enviar un messatge",
|
||||
"new_comments": "Comentaris novèls",
|
||||
"bot_account": "Compte de robòt",
|
||||
"show_bot_accounts": "Mostrar los comptes de robòts"
|
||||
}
|
|
@ -1,136 +0,0 @@
|
|||
{
|
||||
"@@locale": "pt",
|
||||
"settings": "Definições",
|
||||
"password": "Palavra-passe",
|
||||
"email_or_username": "Email ou nome de utilizador",
|
||||
"posts": "Publicações",
|
||||
"comments": "Comentários",
|
||||
"modlog": "Registo de moderação",
|
||||
"community": "Comunidade",
|
||||
"url": "URL",
|
||||
"title": "Título",
|
||||
"body": "Texto",
|
||||
"nsfw": "NSFW",
|
||||
"post": "publicar",
|
||||
"save": "guardar",
|
||||
"subscribed": "Subscrito",
|
||||
"local": "Local",
|
||||
"all": "Tudo",
|
||||
"replies": "Respostas",
|
||||
"mentions": "Menções",
|
||||
"from": "de",
|
||||
"to": "para",
|
||||
"deleted_by_creator": "apagado pelo autor",
|
||||
"more": "mais",
|
||||
"mark_as_read": "marcar como lida",
|
||||
"mark_as_unread": "marcar como não lida",
|
||||
"reply": "responder",
|
||||
"edit": "editar",
|
||||
"delete": "apagar",
|
||||
"restore": "restaurar",
|
||||
"yes": "sim",
|
||||
"no": "não",
|
||||
"avatar": "Avatar",
|
||||
"banner": "Capa",
|
||||
"display_name": "Nome de exibição",
|
||||
"bio": "Biografia",
|
||||
"email": "Correio eletrónico",
|
||||
"matrix_user": "Utilizador Matrix",
|
||||
"sort_type": "Tipo de ordenação",
|
||||
"type": "Tipo",
|
||||
"show_nsfw": "Mostrar conteúdo NSFW",
|
||||
"send_notifications_to_email": "Enviar notificações por correio eletrónico",
|
||||
"delete_account": "Apagar conta",
|
||||
"saved": "Guardado",
|
||||
"communities": "Comunidades",
|
||||
"users": "Utilizadores",
|
||||
"theme": "Tema",
|
||||
"language": "Idioma",
|
||||
"hot": "Mais ativos",
|
||||
"new_": "Novo",
|
||||
"old": "Antigo",
|
||||
"top": "Topo",
|
||||
"chat": "Conversa",
|
||||
"admin": "administrador",
|
||||
"by": "por",
|
||||
"not_a_mod_or_admin": "Não és um moderador ou administrador.",
|
||||
"not_an_admin": "Não és um administrador.",
|
||||
"couldnt_find_post": "Não foi possível encontrar a publicação.",
|
||||
"not_logged_in": "Não autenticado.",
|
||||
"site_ban": "Foste banido do site",
|
||||
"community_ban": "Foste banido desta comunidade.",
|
||||
"downvotes_disabled": "Votos negativos desativados",
|
||||
"invalid_url": "URL inválido.",
|
||||
"locked": "bloqueado",
|
||||
"couldnt_create_comment": "Não foi possível criar o comentário.",
|
||||
"couldnt_like_comment": "Não foi possível gostar do comentário.",
|
||||
"couldnt_update_comment": "Não foi possível atualizar o comentário.",
|
||||
"no_comment_edit_allowed": "Não podes editar este comentário.",
|
||||
"couldnt_save_comment": "Não foi possível guardar o comentário.",
|
||||
"couldnt_get_comments": "Não foi possível obter os comentários.",
|
||||
"report_reason_required": "É necessária uma razão para a denúncia.",
|
||||
"report_too_long": "Denúncia demasiado longa.",
|
||||
"couldnt_create_report": "Não foi possível criar a denúncia.",
|
||||
"couldnt_resolve_report": "Não foi possível resolver a denúncia.",
|
||||
"invalid_post_title": "Título de publicação inválido",
|
||||
"couldnt_create_post": "Não foi possível criar a publicação.",
|
||||
"couldnt_like_post": "Não foi possível gostar da publicação.",
|
||||
"couldnt_find_community": "Não foi possível encontrar a comunidade.",
|
||||
"couldnt_get_posts": "Não foi possível obter as publicações",
|
||||
"no_post_edit_allowed": "Não podes editar esta publicação.",
|
||||
"couldnt_save_post": "Não foi possível guardar a publicação.",
|
||||
"site_already_exists": "O site já existe.",
|
||||
"couldnt_update_site": "Não foi possível atualizar o site.",
|
||||
"invalid_community_name": "Nome inválido.",
|
||||
"community_already_exists": "Essa comunidade já existe.",
|
||||
"community_moderator_already_exists": "Esse utilizador já modera esta comunidade.",
|
||||
"community_follower_already_exists": "Esse utilizador já segue esta comunidade.",
|
||||
"not_a_moderator": "Não és um moderador.",
|
||||
"couldnt_update_community": "Não foi possível atualizar a comunidade.",
|
||||
"no_community_edit_allowed": "Não podes editar esta comunidade.",
|
||||
"system_err_login": "Erro do sistema. Tenta sair e voltar a entrar.",
|
||||
"community_user_already_banned": "Esse utilizador já foi banido da comunidade.",
|
||||
"couldnt_find_that_username_or_email": "Não foi possível encontrar esse nome ou endereço de correio eletrónico.",
|
||||
"password_incorrect": "Palavra-passe incorreta.",
|
||||
"registration_closed": "Inscrições fechadas",
|
||||
"invalid_password": "Palavra-passe inválida. Tem que ter 60 ou menos caracteres.",
|
||||
"passwords_dont_match": "As palavras-passe não coincidem.",
|
||||
"captcha_incorrect": "CAPTCHA incorreto.",
|
||||
"invalid_username": "Nome de utilizador inválido.",
|
||||
"bio_length_overflow": "A biografia não pode exceder 300 caracteres.",
|
||||
"couldnt_update_user": "Não foi possível atualizar o utilizador.",
|
||||
"couldnt_update_private_message": "Não foi possível atualizar a mensagem privada.",
|
||||
"couldnt_update_post": "Não foi possível atualizar a publicação",
|
||||
"couldnt_create_private_message": "Não foi possível criar a mensagem privada.",
|
||||
"no_private_message_edit_allowed": "Não podes editar a mensagem privada.",
|
||||
"post_title_too_long": "Título da publicação demasiado longo.",
|
||||
"email_already_exists": "Esse endereço de correio eletrónico já está registado.",
|
||||
"user_already_exists": "Esse utilizador já existe.",
|
||||
"number_of_users_online": "{formattedCount,plural, =1{{formattedCount} utilizador em linha} other{{formattedCount} utilizadores em linha}}",
|
||||
"number_of_comments": "{formattedCount,plural, =1{{formattedCount} comentário} other{{formattedCount} comentários}}",
|
||||
"number_of_posts": "{formattedCount,plural, =1{{formattedCount} publicação} other{{formattedCount} publicações}}",
|
||||
"number_of_subscribers": "{formattedCount,plural, =1{{formattedCount} subscritor} other{{formattedCount} subscritores}}",
|
||||
"number_of_users": "{formattedCount,plural, =1{{formattedCount} utilizador} other{{formattedCount} utilizadores}}",
|
||||
"unsubscribe": "Cancelar subscrição",
|
||||
"subscribe": "Subscrever",
|
||||
"messages": "Mensagens",
|
||||
"banned_users": "Utilizadores banidos",
|
||||
"delete_account_confirm": "Aviso: esta ação irá apagar permanentemente todos os teus dados desta instância. Estes poderão não ser apagados noutras instâncias existentes. Insire a tua palavra-passe para confirmar.",
|
||||
"new_password": "Nova palavra-passe",
|
||||
"verify_password": "Verificar palavra-passe",
|
||||
"old_password": "Palavra-passe antiga",
|
||||
"show_avatars": "Mostrar avatares",
|
||||
"search": "Procurar",
|
||||
"send_message": "Enviar mensagem",
|
||||
"top_day": "Topo do dia",
|
||||
"top_week": "Topo da semana",
|
||||
"top_month": "Topo do mês",
|
||||
"top_year": "Topo do ano",
|
||||
"top_all": "Topo de sempre",
|
||||
"most_comments": "Mais comentários",
|
||||
"new_comments": "Novos comentários",
|
||||
"active": "Ativos",
|
||||
"bot_account": "Conta robô",
|
||||
"show_bot_accounts": "Mostrar contas robô",
|
||||
"show_read_posts": "Mostrar publicações lidas"
|
||||
}
|
|
@ -1,8 +0,0 @@
|
|||
{
|
||||
"@@locale": "sk",
|
||||
"posts": "Príspevky",
|
||||
"comments": "Komentáre",
|
||||
"post": "Poslať",
|
||||
"communities": "Komunity",
|
||||
"users": "Užívatelia"
|
||||
}
|
|
@ -1,136 +0,0 @@
|
|||
{
|
||||
"@@locale": "vi",
|
||||
"settings": "Cài đặt",
|
||||
"password": "Mật khẩu",
|
||||
"email_or_username": "Email hoặc Tên tài khoản",
|
||||
"posts": "Bài đăng",
|
||||
"comments": "Bình luận",
|
||||
"modlog": "Nhật ký kiểm duyệt",
|
||||
"community": "Cộng đồng",
|
||||
"url": "URL",
|
||||
"title": "Tiêu đề",
|
||||
"body": "Nội dung",
|
||||
"nsfw": "NSFW",
|
||||
"post": "Bình luận",
|
||||
"save": "Lưu",
|
||||
"subscribed": "Đã đăng ký",
|
||||
"local": "Máy chủ",
|
||||
"all": "Toàn bộ",
|
||||
"replies": "Trả lời",
|
||||
"mentions": "Lượt nhắc",
|
||||
"from": "từ",
|
||||
"to": "trong",
|
||||
"deleted_by_creator": "người viết tự xoá",
|
||||
"more": "xem thêm",
|
||||
"mark_as_read": "đánh dấu là đã đọc",
|
||||
"mark_as_unread": "đánh dấu là chưa đọc",
|
||||
"reply": "trả lời",
|
||||
"edit": "chỉnh sửa",
|
||||
"delete": "xoá",
|
||||
"restore": "khôi phục",
|
||||
"yes": "đồng ý",
|
||||
"no": "huỷ bỏ",
|
||||
"avatar": "Ảnh đại diện",
|
||||
"banner": "Ảnh bìa",
|
||||
"display_name": "Tên hiển thị",
|
||||
"bio": "Tiểu sử",
|
||||
"email": "Email",
|
||||
"matrix_user": "Matrix",
|
||||
"sort_type": "Xếp theo",
|
||||
"type": "Loại",
|
||||
"show_nsfw": "Hiện nội dung NSFW",
|
||||
"send_notifications_to_email": "Gửi thông báo đến email",
|
||||
"delete_account": "Xoá tài khoản",
|
||||
"saved": "Đã lưu",
|
||||
"communities": "Danh sách cộng đồng",
|
||||
"users": "Thành viên",
|
||||
"theme": "Giao diện",
|
||||
"language": "Ngôn ngữ",
|
||||
"hot": "Hot",
|
||||
"new_": "Mới nhất",
|
||||
"old": "Cũ nhất",
|
||||
"top": "Nổi bật nhất",
|
||||
"chat": "Chat",
|
||||
"admin": "quản trị viên",
|
||||
"by": "bởi",
|
||||
"not_a_mod_or_admin": "Không phải đội ngũ vận hành.",
|
||||
"not_an_admin": "Không phải quản trị viên.",
|
||||
"couldnt_find_post": "Không tìm thấy bài đăng.",
|
||||
"not_logged_in": "Chưa đăng nhập",
|
||||
"site_ban": "Bạn vừa bị cấm khỏi trang",
|
||||
"community_ban": "Bạn bị cấm ở cộng đồng này.",
|
||||
"downvotes_disabled": "Phản đối đã tắt",
|
||||
"invalid_url": "URL không hợp lệ.",
|
||||
"locked": "đã khóa",
|
||||
"couldnt_create_comment": "Không thể bình luận.",
|
||||
"couldnt_like_comment": "Không thể thích bình luận",
|
||||
"couldnt_update_comment": "Không thể cập nhật bình luận.",
|
||||
"no_comment_edit_allowed": "Không cho phép sửa bình luận.",
|
||||
"couldnt_save_comment": "Không thể lưu bình luận.",
|
||||
"couldnt_get_comments": "Không thể xem bình luận.",
|
||||
"report_reason_required": "Bắt buộc có lý do báo cáo.",
|
||||
"report_too_long": "Báo cáo quá dài.",
|
||||
"couldnt_create_report": "Không thể tạo báo cáo.",
|
||||
"couldnt_resolve_report": "Không thể giải quyết báo cáo.",
|
||||
"invalid_post_title": "Tựa đề bài đăng không hợp lệ",
|
||||
"couldnt_create_post": "Không thể đăng bài.",
|
||||
"couldnt_like_post": "Không thể thích bài đăng.",
|
||||
"couldnt_find_community": "Không tìm thấy cộng đồng",
|
||||
"couldnt_get_posts": "Không thể xem bài đăng",
|
||||
"no_post_edit_allowed": "Không cho phép sửa bài đăng.",
|
||||
"couldnt_save_post": "Không thể lưu bài đăng.",
|
||||
"site_already_exists": "Trang đã tồn tại.",
|
||||
"couldnt_update_site": "Không thể cập nhật trang.",
|
||||
"invalid_community_name": "Tên không hợp lệ.",
|
||||
"community_already_exists": "Cộng đồng đã tồn tại.",
|
||||
"community_moderator_already_exists": "Kiểm duyệt viên đã tồn tại.",
|
||||
"community_follower_already_exists": "Người theo dõi cộng đồng đã tồn tại.",
|
||||
"not_a_moderator": "Không phải kiểm duyệt viên.",
|
||||
"couldnt_update_community": "Không thể cập nhật cộng đồng.",
|
||||
"no_community_edit_allowed": "Không cho phép sửa cộng đồng.",
|
||||
"system_err_login": "Lỗi hệ thống. Hãy đăng xuất rồi đăng nhập lại.",
|
||||
"community_user_already_banned": "Đã cấm thành viên cộng đồng.",
|
||||
"couldnt_find_that_username_or_email": "Không tìm thấy tên thành viên hoặc email.",
|
||||
"password_incorrect": "Sai mật khẩu.",
|
||||
"registration_closed": "Đăng ký đã tắt",
|
||||
"invalid_password": "Mật khẩu không hợp lệ. Mật khẩu phải ít hơn 60 ký tự.",
|
||||
"passwords_dont_match": "Mật khẩu không khớp.",
|
||||
"captcha_incorrect": "Sai captcha.",
|
||||
"invalid_username": "Tên tài khoản không hợp lệ.",
|
||||
"bio_length_overflow": "Tiểu sử thành viên tối đa 300 ký tự.",
|
||||
"couldnt_update_user": "Không thể cập nhật thành viên.",
|
||||
"couldnt_update_private_message": "Không thể cập nhật tin nhắn riêng.",
|
||||
"couldnt_update_post": "Không thể cập nhật bài đăng",
|
||||
"couldnt_create_private_message": "Không thể nhắn tin riêng.",
|
||||
"no_private_message_edit_allowed": "Không cho phép chỉnh sửa tin nhắn riêng.",
|
||||
"post_title_too_long": "Tựa đề quá dài.",
|
||||
"email_already_exists": "Email đã tồn tại.",
|
||||
"user_already_exists": "Thành viên đã tồn tại.",
|
||||
"number_of_users_online": "{formattedCount,plural, other{{formattedCount} thành viên online}}",
|
||||
"number_of_comments": "{formattedCount,plural, other{{formattedCount} Bình luận}}",
|
||||
"number_of_posts": "{formattedCount,plural, other{{formattedCount} Bài đăng}}",
|
||||
"number_of_subscribers": "{formattedCount,plural, other{{formattedCount} người theo dõi}}",
|
||||
"number_of_users": "{formattedCount,plural, other{{formattedCount} thành viên}}",
|
||||
"unsubscribe": "Huỷ đăng ký",
|
||||
"subscribe": "Đăng ký",
|
||||
"messages": "Tin nhắn",
|
||||
"banned_users": "Những tài khoản đã bị cấm",
|
||||
"delete_account_confirm": "Cảnh báo: điều này sẽ khiến toàn bộ dữ liệu của bạn bị xoá vĩnh viễn khỏi máy chủ. Nhập mật khẩu để xác nhận.",
|
||||
"new_password": "Mật khẩu mới",
|
||||
"verify_password": "Xác nhận mật khẩu",
|
||||
"old_password": "Mật khẩu cũ",
|
||||
"show_avatars": "Hiện Ảnh đại diện",
|
||||
"search": "Tìm kiếm",
|
||||
"send_message": "Nhắn tin",
|
||||
"top_day": "Theo ngày",
|
||||
"top_week": "Theo tuần",
|
||||
"top_month": "Theo tháng",
|
||||
"top_year": "Theo năm",
|
||||
"top_all": "Mọi lúc",
|
||||
"most_comments": "Nhiều bình luận",
|
||||
"new_comments": "Mới bình luận",
|
||||
"active": "Ngẫu nhiên",
|
||||
"bot_account": "Tài khoản Bot",
|
||||
"show_bot_accounts": "Hiện Tài khoản Bot",
|
||||
"show_read_posts": "Hiện Bài đăng đọc"
|
||||
}
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
"@@locale": "zh_Hant",
|
||||
"settings": "設定",
|
||||
"posts": "貼文",
|
||||
"comments": "評論",
|
||||
"modlog": "管理紀錄",
|
||||
"post": "回文",
|
||||
"deleted_by_creator": "作者已刪除",
|
||||
"more": "更多",
|
||||
"mark_as_read": "標記為已讀",
|
||||
"mark_as_unread": "標記為未讀",
|
||||
"reply": "回覆",
|
||||
"edit": "編輯",
|
||||
"delete": "刪除",
|
||||
"avatar": "頭貼",
|
||||
"banner": "橫幅",
|
||||
"delete_account": "刪除帳號",
|
||||
"communities": "社群",
|
||||
"users": "使用者",
|
||||
"locked": "已鎖定",
|
||||
"invalid_community_name": "無效的名稱。",
|
||||
"number_of_comments": "{formattedCount,plural, other{{formattedCount} 則評論}}",
|
||||
"number_of_posts": "{formattedCount,plural, other{{formattedCount} 貼文}}",
|
||||
"show_avatars": "顯示頭貼",
|
||||
"send_message": "發送私人訊息",
|
||||
"bot_account": "機器人帳號",
|
||||
"show_bot_accounts": "顯示機器人帳號",
|
||||
"show_read_posts": "顯示已讀貼文"
|
||||
}
|
|
@ -1,10 +0,0 @@
|
|||
platform :android do
|
||||
desc "Deploy a new version to the Google Play"
|
||||
lane :prod do
|
||||
upload_to_play_store(
|
||||
package_name: "com.krawieck.lemmur",
|
||||
json_key: ENV["GOOGLE_SERVICE_ACCOUNT_KEY_PATH"],
|
||||
aab: ENV["ABB_PATH"]
|
||||
)
|
||||
end
|
||||
end
|
|
@ -1,3 +0,0 @@
|
|||
source "https://rubygems.org"
|
||||
|
||||
gem "fastlane"
|
|
@ -1,213 +0,0 @@
|
|||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
CFPropertyList (3.0.3)
|
||||
addressable (2.8.0)
|
||||
public_suffix (>= 2.0.2, < 5.0)
|
||||
artifactory (3.0.15)
|
||||
atomos (0.1.3)
|
||||
aws-eventstream (1.2.0)
|
||||
aws-partitions (1.496.0)
|
||||
aws-sdk-core (3.121.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
aws-partitions (~> 1, >= 1.239.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
jmespath (~> 1.0)
|
||||
aws-sdk-kms (1.48.0)
|
||||
aws-sdk-core (~> 3, >= 3.120.0)
|
||||
aws-sigv4 (~> 1.1)
|
||||
aws-sdk-s3 (1.102.0)
|
||||
aws-sdk-core (~> 3, >= 3.120.0)
|
||||
aws-sdk-kms (~> 1)
|
||||
aws-sigv4 (~> 1.4)
|
||||
aws-sigv4 (1.4.0)
|
||||
aws-eventstream (~> 1, >= 1.0.2)
|
||||
babosa (1.0.4)
|
||||
claide (1.0.3)
|
||||
colored (1.2)
|
||||
colored2 (3.1.2)
|
||||
commander (4.6.0)
|
||||
highline (~> 2.0.0)
|
||||
declarative (0.0.20)
|
||||
digest-crc (0.6.4)
|
||||
rake (>= 12.0.0, < 14.0.0)
|
||||
domain_name (0.5.20190701)
|
||||
unf (>= 0.0.5, < 1.0.0)
|
||||
dotenv (2.7.6)
|
||||
emoji_regex (3.2.2)
|
||||
excon (0.85.0)
|
||||
faraday (1.7.1)
|
||||
faraday-em_http (~> 1.0)
|
||||
faraday-em_synchrony (~> 1.0)
|
||||
faraday-excon (~> 1.1)
|
||||
faraday-httpclient (~> 1.0.1)
|
||||
faraday-net_http (~> 1.0)
|
||||
faraday-net_http_persistent (~> 1.1)
|
||||
faraday-patron (~> 1.0)
|
||||
faraday-rack (~> 1.0)
|
||||
multipart-post (>= 1.2, < 3)
|
||||
ruby2_keywords (>= 0.0.4)
|
||||
faraday-cookie_jar (0.0.7)
|
||||
faraday (>= 0.8.0)
|
||||
http-cookie (~> 1.0.0)
|
||||
faraday-em_http (1.0.0)
|
||||
faraday-em_synchrony (1.0.0)
|
||||
faraday-excon (1.1.0)
|
||||
faraday-httpclient (1.0.1)
|
||||
faraday-net_http (1.0.1)
|
||||
faraday-net_http_persistent (1.2.0)
|
||||
faraday-patron (1.0.0)
|
||||
faraday-rack (1.0.0)
|
||||
faraday_middleware (1.1.0)
|
||||
faraday (~> 1.0)
|
||||
fastimage (2.2.5)
|
||||
fastlane (2.193.0)
|
||||
CFPropertyList (>= 2.3, < 4.0.0)
|
||||
addressable (>= 2.8, < 3.0.0)
|
||||
artifactory (~> 3.0)
|
||||
aws-sdk-s3 (~> 1.0)
|
||||
babosa (>= 1.0.3, < 2.0.0)
|
||||
bundler (>= 1.12.0, < 3.0.0)
|
||||
colored
|
||||
commander (~> 4.6)
|
||||
dotenv (>= 2.1.1, < 3.0.0)
|
||||
emoji_regex (>= 0.1, < 4.0)
|
||||
excon (>= 0.71.0, < 1.0.0)
|
||||
faraday (~> 1.0)
|
||||
faraday-cookie_jar (~> 0.0.6)
|
||||
faraday_middleware (~> 1.0)
|
||||
fastimage (>= 2.1.0, < 3.0.0)
|
||||
gh_inspector (>= 1.1.2, < 2.0.0)
|
||||
google-apis-androidpublisher_v3 (~> 0.3)
|
||||
google-apis-playcustomapp_v1 (~> 0.1)
|
||||
google-cloud-storage (~> 1.31)
|
||||
highline (~> 2.0)
|
||||
json (< 3.0.0)
|
||||
jwt (>= 2.1.0, < 3)
|
||||
mini_magick (>= 4.9.4, < 5.0.0)
|
||||
multipart-post (~> 2.0.0)
|
||||
naturally (~> 2.2)
|
||||
optparse (~> 0.1.1)
|
||||
plist (>= 3.1.0, < 4.0.0)
|
||||
rubyzip (>= 2.0.0, < 3.0.0)
|
||||
security (= 0.1.3)
|
||||
simctl (~> 1.6.3)
|
||||
terminal-notifier (>= 2.0.0, < 3.0.0)
|
||||
terminal-table (>= 1.4.5, < 2.0.0)
|
||||
tty-screen (>= 0.6.3, < 1.0.0)
|
||||
tty-spinner (>= 0.8.0, < 1.0.0)
|
||||
word_wrap (~> 1.0.0)
|
||||
xcodeproj (>= 1.13.0, < 2.0.0)
|
||||
xcpretty (~> 0.3.0)
|
||||
xcpretty-travis-formatter (>= 0.0.3)
|
||||
gh_inspector (1.1.3)
|
||||
google-apis-androidpublisher_v3 (0.11.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-apis-core (0.4.1)
|
||||
addressable (~> 2.5, >= 2.5.1)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
httpclient (>= 2.8.1, < 3.a)
|
||||
mini_mime (~> 1.0)
|
||||
representable (~> 3.0)
|
||||
retriable (>= 2.0, < 4.a)
|
||||
rexml
|
||||
webrick
|
||||
google-apis-iamcredentials_v1 (0.7.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-apis-playcustomapp_v1 (0.5.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-apis-storage_v1 (0.6.0)
|
||||
google-apis-core (>= 0.4, < 2.a)
|
||||
google-cloud-core (1.6.0)
|
||||
google-cloud-env (~> 1.0)
|
||||
google-cloud-errors (~> 1.0)
|
||||
google-cloud-env (1.5.0)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
google-cloud-errors (1.1.0)
|
||||
google-cloud-storage (1.34.1)
|
||||
addressable (~> 2.5)
|
||||
digest-crc (~> 0.4)
|
||||
google-apis-iamcredentials_v1 (~> 0.1)
|
||||
google-apis-storage_v1 (~> 0.1)
|
||||
google-cloud-core (~> 1.6)
|
||||
googleauth (>= 0.16.2, < 2.a)
|
||||
mini_mime (~> 1.0)
|
||||
googleauth (0.17.1)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
jwt (>= 1.4, < 3.0)
|
||||
memoist (~> 0.16)
|
||||
multi_json (~> 1.11)
|
||||
os (>= 0.9, < 2.0)
|
||||
signet (~> 0.15)
|
||||
highline (2.0.3)
|
||||
http-cookie (1.0.4)
|
||||
domain_name (~> 0.5)
|
||||
httpclient (2.8.3)
|
||||
jmespath (1.4.0)
|
||||
json (2.5.1)
|
||||
jwt (2.2.3)
|
||||
memoist (0.16.2)
|
||||
mini_magick (4.11.0)
|
||||
mini_mime (1.1.1)
|
||||
multi_json (1.15.0)
|
||||
multipart-post (2.0.0)
|
||||
nanaimo (0.3.0)
|
||||
naturally (2.2.1)
|
||||
optparse (0.1.1)
|
||||
os (1.1.1)
|
||||
plist (3.6.0)
|
||||
public_suffix (4.0.6)
|
||||
rake (13.0.6)
|
||||
representable (3.1.1)
|
||||
declarative (< 0.1.0)
|
||||
trailblazer-option (>= 0.1.1, < 0.2.0)
|
||||
uber (< 0.2.0)
|
||||
retriable (3.1.2)
|
||||
rexml (3.2.5)
|
||||
rouge (2.0.7)
|
||||
ruby2_keywords (0.0.5)
|
||||
rubyzip (2.3.2)
|
||||
security (0.1.3)
|
||||
signet (0.16.0)
|
||||
addressable (~> 2.8)
|
||||
faraday (>= 0.17.3, < 2.0)
|
||||
jwt (>= 1.5, < 3.0)
|
||||
multi_json (~> 1.10)
|
||||
simctl (1.6.8)
|
||||
CFPropertyList
|
||||
naturally
|
||||
terminal-notifier (2.0.0)
|
||||
terminal-table (1.8.0)
|
||||
unicode-display_width (~> 1.1, >= 1.1.1)
|
||||
trailblazer-option (0.1.1)
|
||||
tty-cursor (0.7.1)
|
||||
tty-screen (0.8.1)
|
||||
tty-spinner (0.9.3)
|
||||
tty-cursor (~> 0.7)
|
||||
uber (0.1.0)
|
||||
unf (0.1.4)
|
||||
unf_ext
|
||||
unf_ext (0.0.7.7)
|
||||
unicode-display_width (1.7.0)
|
||||
webrick (1.7.0)
|
||||
word_wrap (1.0.0)
|
||||
xcodeproj (1.21.0)
|
||||
CFPropertyList (>= 2.3.3, < 4.0)
|
||||
atomos (~> 0.1.3)
|
||||
claide (>= 1.0.2, < 2.0)
|
||||
colored2 (~> 3.1)
|
||||
nanaimo (~> 0.3.0)
|
||||
rexml (~> 3.2.4)
|
||||
xcpretty (0.3.0)
|
||||
rouge (~> 2.0.7)
|
||||
xcpretty-travis-formatter (1.0.1)
|
||||
xcpretty (~> 0.2, >= 0.0.7)
|
||||
|
||||
PLATFORMS
|
||||
x86_64-linux
|
||||
|
||||
DEPENDENCIES
|
||||
fastlane
|
||||
|
||||
BUNDLED WITH
|
||||
2.2.27
|
|
@ -1,29 +0,0 @@
|
|||
fastlane documentation
|
||||
================
|
||||
# Installation
|
||||
|
||||
Make sure you have the latest version of the Xcode command line tools installed:
|
||||
|
||||
```
|
||||
xcode-select --install
|
||||
```
|
||||
|
||||
Install _fastlane_ using
|
||||
```
|
||||
[sudo] gem install fastlane -NV
|
||||
```
|
||||
or alternatively using `brew install fastlane`
|
||||
|
||||
# Available Actions
|
||||
## Android
|
||||
### android prod
|
||||
```
|
||||
fastlane android prod
|
||||
```
|
||||
Deploy a new version to the Google Play
|
||||
|
||||
----
|
||||
|
||||
This README.md is auto-generated and will be re-generated every time [_fastlane_](https://fastlane.tools) is run.
|
||||
More information about fastlane can be found on [fastlane.tools](https://fastlane.tools).
|
||||
The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools).
|
|
@ -1 +0,0 @@
|
|||
Ein mobiler Client für Lemmy - eine föderierte Reddit-Alternative
|
|
@ -1 +0,0 @@
|
|||
lemmur
|
|
@ -1,4 +0,0 @@
|
|||
### Added
|
||||
|
||||
- Support for Lemmy v0.12.0
|
||||
- Show cake day on a user's profile and next to their name in a comment
|
|
@ -1,17 +0,0 @@
|
|||
### Added
|
||||
|
||||
- Blocking of users and communities (from post and from comment)
|
||||
- Reporting posts and comments
|
||||
- Android theme-aware splash screen (thanks to [@mimi89999](https://github.com/mimi89999))
|
||||
- Logging: local logs about some actions/errors. Can be accessed from **settings > about lemmur > logs**
|
||||
|
||||
### Fixed
|
||||
|
||||
- Fixed a bug where post would go out of sync with full version of the post
|
||||
- Fixed a bug where making a comment selectable would not always result in making the comment selectable
|
||||
- Full post will now open no matter where you press on the post card
|
||||
- Fixed overflows in various places
|
||||
|
||||
### Changed
|
||||
|
||||
- User banner photo now fits better on user profile
|
|
@ -1,7 +0,0 @@
|
|||
### Added
|
||||
|
||||
- Support for Lemmy v0.15.0
|
||||
|
||||
### Changed
|
||||
|
||||
- "Time ago" strings, dates, and compact numbers are now localized
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 35 KiB |
|
@ -21,6 +21,6 @@
|
|||
<key>CFBundleVersion</key>
|
||||
<string>1.0</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>9.0</string>
|
||||
<string>8.0</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
130
ios/Podfile.lock
|
@ -1,111 +1,67 @@
|
|||
PODS:
|
||||
- DKImagePickerController/Core (4.3.3):
|
||||
- DKImagePickerController/ImageDataManager
|
||||
- DKImagePickerController/Resource
|
||||
- DKImagePickerController/ImageDataManager (4.3.3)
|
||||
- DKImagePickerController/PhotoGallery (4.3.3):
|
||||
- DKImagePickerController/Core
|
||||
- DKPhotoGallery
|
||||
- DKImagePickerController/Resource (4.3.3)
|
||||
- DKPhotoGallery (0.0.17):
|
||||
- DKPhotoGallery/Core (= 0.0.17)
|
||||
- DKPhotoGallery/Model (= 0.0.17)
|
||||
- DKPhotoGallery/Preview (= 0.0.17)
|
||||
- DKPhotoGallery/Resource (= 0.0.17)
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- DKPhotoGallery/Core (0.0.17):
|
||||
- DKPhotoGallery/Model
|
||||
- DKPhotoGallery/Preview
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- DKPhotoGallery/Model (0.0.17):
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- DKPhotoGallery/Preview (0.0.17):
|
||||
- DKPhotoGallery/Model
|
||||
- DKPhotoGallery/Resource
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- DKPhotoGallery/Resource (0.0.17):
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- file_picker (0.0.1):
|
||||
- DKImagePickerController/PhotoGallery
|
||||
- Flutter
|
||||
- Flutter (1.0.0)
|
||||
- flutter_keyboard_visibility (0.0.1):
|
||||
- FMDB (2.7.5):
|
||||
- FMDB/standard (= 2.7.5)
|
||||
- FMDB/standard (2.7.5)
|
||||
- image_picker (0.0.1):
|
||||
- Flutter
|
||||
- image_picker_ios (0.0.1):
|
||||
- package_info (0.0.1):
|
||||
- Flutter
|
||||
- package_info_plus (0.4.5):
|
||||
- path_provider (0.0.1):
|
||||
- Flutter
|
||||
- path_provider_ios (0.0.1):
|
||||
- share (0.0.1):
|
||||
- Flutter
|
||||
- SDWebImage (5.12.5):
|
||||
- SDWebImage/Core (= 5.12.5)
|
||||
- SDWebImage/Core (5.12.5)
|
||||
- share_plus (0.0.1):
|
||||
- shared_preferences (0.0.1):
|
||||
- Flutter
|
||||
- shared_preferences_ios (0.0.1):
|
||||
- sqflite (0.0.2):
|
||||
- Flutter
|
||||
- SwiftyGif (5.4.3)
|
||||
- url_launcher_ios (0.0.1):
|
||||
- FMDB (>= 2.7.5)
|
||||
- url_launcher (0.0.1):
|
||||
- Flutter
|
||||
|
||||
DEPENDENCIES:
|
||||
- file_picker (from `.symlinks/plugins/file_picker/ios`)
|
||||
- Flutter (from `Flutter`)
|
||||
- flutter_keyboard_visibility (from `.symlinks/plugins/flutter_keyboard_visibility/ios`)
|
||||
- image_picker_ios (from `.symlinks/plugins/image_picker_ios/ios`)
|
||||
- package_info_plus (from `.symlinks/plugins/package_info_plus/ios`)
|
||||
- path_provider_ios (from `.symlinks/plugins/path_provider_ios/ios`)
|
||||
- share_plus (from `.symlinks/plugins/share_plus/ios`)
|
||||
- shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`)
|
||||
- url_launcher_ios (from `.symlinks/plugins/url_launcher_ios/ios`)
|
||||
- image_picker (from `.symlinks/plugins/image_picker/ios`)
|
||||
- package_info (from `.symlinks/plugins/package_info/ios`)
|
||||
- path_provider (from `.symlinks/plugins/path_provider/ios`)
|
||||
- share (from `.symlinks/plugins/share/ios`)
|
||||
- shared_preferences (from `.symlinks/plugins/shared_preferences/ios`)
|
||||
- sqflite (from `.symlinks/plugins/sqflite/ios`)
|
||||
- url_launcher (from `.symlinks/plugins/url_launcher/ios`)
|
||||
|
||||
SPEC REPOS:
|
||||
trunk:
|
||||
- DKImagePickerController
|
||||
- DKPhotoGallery
|
||||
- SDWebImage
|
||||
- SwiftyGif
|
||||
- FMDB
|
||||
|
||||
EXTERNAL SOURCES:
|
||||
file_picker:
|
||||
:path: ".symlinks/plugins/file_picker/ios"
|
||||
Flutter:
|
||||
:path: Flutter
|
||||
flutter_keyboard_visibility:
|
||||
:path: ".symlinks/plugins/flutter_keyboard_visibility/ios"
|
||||
image_picker_ios:
|
||||
:path: ".symlinks/plugins/image_picker_ios/ios"
|
||||
package_info_plus:
|
||||
:path: ".symlinks/plugins/package_info_plus/ios"
|
||||
path_provider_ios:
|
||||
:path: ".symlinks/plugins/path_provider_ios/ios"
|
||||
share_plus:
|
||||
:path: ".symlinks/plugins/share_plus/ios"
|
||||
shared_preferences_ios:
|
||||
:path: ".symlinks/plugins/shared_preferences_ios/ios"
|
||||
url_launcher_ios:
|
||||
:path: ".symlinks/plugins/url_launcher_ios/ios"
|
||||
image_picker:
|
||||
:path: ".symlinks/plugins/image_picker/ios"
|
||||
package_info:
|
||||
:path: ".symlinks/plugins/package_info/ios"
|
||||
path_provider:
|
||||
:path: ".symlinks/plugins/path_provider/ios"
|
||||
share:
|
||||
:path: ".symlinks/plugins/share/ios"
|
||||
shared_preferences:
|
||||
:path: ".symlinks/plugins/shared_preferences/ios"
|
||||
sqflite:
|
||||
:path: ".symlinks/plugins/sqflite/ios"
|
||||
url_launcher:
|
||||
:path: ".symlinks/plugins/url_launcher/ios"
|
||||
|
||||
SPEC CHECKSUMS:
|
||||
DKImagePickerController: 72fd378f244cef3d27288e0aebf217a4467e4012
|
||||
DKPhotoGallery: fdfad5125a9fdda9cc57df834d49df790dbb4179
|
||||
file_picker: 817ab1d8cd2da9d2da412a417162deee3500fc95
|
||||
Flutter: 50d75fe2f02b26cc09d224853bb45737f8b3214a
|
||||
flutter_keyboard_visibility: 0339d06371254c3eb25eeb90ba8d17dca8f9c069
|
||||
image_picker_ios: b786a5dcf033a8336a657191401bfdf12017dabb
|
||||
package_info_plus: 6c92f08e1f853dc01228d6f553146438dafcd14e
|
||||
path_provider_ios: 14f3d2fd28c4fdb42f44e0f751d12861c43cee02
|
||||
SDWebImage: 0905f1b7760fc8ac4198cae0036600d67478751e
|
||||
share_plus: 056a1e8ac890df3e33cb503afffaf1e9b4fbae68
|
||||
shared_preferences_ios: 548a61f8053b9b8a49ac19c1ffbc8b92c50d68ad
|
||||
SwiftyGif: 6c3eafd0ce693cad58bb63d2b2fb9bacb8552780
|
||||
url_launcher_ios: 839c58cdb4279282219f5e248c3321761ff3c4de
|
||||
Flutter: 434fef37c0980e73bb6479ef766c45957d4b510c
|
||||
FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a
|
||||
image_picker: 50e7c7ff960e5f58faa4d1f4af84a771c671bc4a
|
||||
package_info: 873975fc26034f0b863a300ad47e7f1ac6c7ec62
|
||||
path_provider: abfe2b5c733d04e238b0d8691db0cfd63a27a93c
|
||||
share: 0b2c3e82132f5888bccca3351c504d0003b3b410
|
||||
shared_preferences: af6bfa751691cdc24be3045c43ec037377ada40d
|
||||
sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904
|
||||
url_launcher: 6fef411d543ceb26efce54b05a0a40bfd74cbbef
|
||||
|
||||
PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c
|
||||
|
||||
COCOAPODS: 1.11.3
|
||||
COCOAPODS: 1.10.1
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 51;
|
||||
objectVersion = 50;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
|
@ -33,13 +33,10 @@
|
|||
1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = "<group>"; };
|
||||
1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = "<group>"; };
|
||||
20AF123CE6B282DF5FCC0E08 /* Pods-Runner.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig"; sourceTree = "<group>"; };
|
||||
3064BA8287AEF7F9E6523E2E /* Pods-Runner.debug-prod.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-prod.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-prod.xcconfig"; sourceTree = "<group>"; };
|
||||
3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = "<group>"; };
|
||||
4E5591CE3BD9F89AE791097F /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
5D359FC3B8BF643CBF087D7C /* Pods-Runner.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig"; sourceTree = "<group>"; };
|
||||
5DC9EF56CF79F18EC6F8E97B /* Pods-Runner.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig"; sourceTree = "<group>"; };
|
||||
5F74EE2F2B11182F6DF33F2E /* Pods-Runner.release-prod.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-prod.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-prod.xcconfig"; sourceTree = "<group>"; };
|
||||
61F7B8503D323D03015ED0C2 /* Pods-Runner.profile-dev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.profile-dev.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.profile-dev.xcconfig"; sourceTree = "<group>"; };
|
||||
74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = "<group>"; };
|
||||
74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
|
||||
7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = "<group>"; };
|
||||
|
@ -50,8 +47,6 @@
|
|||
97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
|
||||
97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
|
||||
BAF12CFD300959413D4373DD /* Pods-Runner.release-dev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-dev.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.release-dev.xcconfig"; sourceTree = "<group>"; };
|
||||
C282F331F7E23515AB5C91ED /* Pods-Runner.debug-dev.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-dev.xcconfig"; path = "Target Support Files/Pods-Runner/Pods-Runner.debug-dev.xcconfig"; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
|
@ -72,11 +67,6 @@
|
|||
20AF123CE6B282DF5FCC0E08 /* Pods-Runner.debug.xcconfig */,
|
||||
5D359FC3B8BF643CBF087D7C /* Pods-Runner.release.xcconfig */,
|
||||
5DC9EF56CF79F18EC6F8E97B /* Pods-Runner.profile.xcconfig */,
|
||||
C282F331F7E23515AB5C91ED /* Pods-Runner.debug-dev.xcconfig */,
|
||||
3064BA8287AEF7F9E6523E2E /* Pods-Runner.debug-prod.xcconfig */,
|
||||
BAF12CFD300959413D4373DD /* Pods-Runner.release-dev.xcconfig */,
|
||||
5F74EE2F2B11182F6DF33F2E /* Pods-Runner.release-prod.xcconfig */,
|
||||
61F7B8503D323D03015ED0C2 /* Pods-Runner.profile-dev.xcconfig */,
|
||||
);
|
||||
path = Pods;
|
||||
sourceTree = "<group>";
|
||||
|
@ -173,7 +163,7 @@
|
|||
97C146E61CF9000F007C117D /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
LastUpgradeCheck = 1300;
|
||||
LastUpgradeCheck = 1020;
|
||||
ORGANIZATIONNAME = "";
|
||||
TargetAttributes = {
|
||||
97C146ED1CF9000F007C117D = {
|
||||
|
@ -316,7 +306,87 @@
|
|||
/* End PBXVariantGroup section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
1889477126E7F08600887334 /* Debug-prod */ = {
|
||||
249021D3217E4FDB00AE95B9 /* Profile */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Profile;
|
||||
};
|
||||
249021D4217E4FDB00AE95B9 /* Profile */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = NMDSW6KGG7;
|
||||
ENABLE_BITCODE = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
);
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.krawieck.lemmur;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
};
|
||||
name = Profile;
|
||||
};
|
||||
97C147031CF9000F007C117D /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
|
@ -363,20 +433,71 @@
|
|||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = "Debug-prod";
|
||||
name = Debug;
|
||||
};
|
||||
1889477226E7F08600887334 /* Debug-prod */ = {
|
||||
97C147041CF9000F007C117D /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
97C147061CF9000F007C117D /* Debug */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
BUNDLE_NAME = lemmur;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = NMDSW6KGG7;
|
||||
|
@ -401,66 +522,13 @@
|
|||
SWIFT_VERSION = 5.0;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
};
|
||||
name = "Debug-prod";
|
||||
name = Debug;
|
||||
};
|
||||
1889477326E7F09600887334 /* Release-prod */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = "Release-prod";
|
||||
};
|
||||
1889477426E7F09600887334 /* Release-prod */ = {
|
||||
97C147071CF9000F007C117D /* Release */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
BUNDLE_NAME = lemmur;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = NMDSW6KGG7;
|
||||
|
@ -484,258 +552,7 @@
|
|||
SWIFT_VERSION = 5.0;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
};
|
||||
name = "Release-prod";
|
||||
};
|
||||
249021D3217E4FDB00AE95B9 /* Profile-dev */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = "Profile-dev";
|
||||
};
|
||||
249021D4217E4FDB00AE95B9 /* Profile-dev */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
BUNDLE_NAME = "lemmur DEV";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = NMDSW6KGG7;
|
||||
ENABLE_BITCODE = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
);
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.krawieck.lemmur.dev;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
};
|
||||
name = "Profile-dev";
|
||||
};
|
||||
97C147031CF9000F007C117D /* Debug-dev */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
ENABLE_TESTABILITY = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_DYNAMIC_NO_PIC = NO;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_OPTIMIZATION_LEVEL = 0;
|
||||
GCC_PREPROCESSOR_DEFINITIONS = (
|
||||
"DEBUG=1",
|
||||
"$(inherited)",
|
||||
);
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
SDKROOT = iphoneos;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = "Debug-dev";
|
||||
};
|
||||
97C147041CF9000F007C117D /* Release-dev */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
buildSettings = {
|
||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||
CLANG_ANALYZER_NONNULL = YES;
|
||||
CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
|
||||
CLANG_CXX_LIBRARY = "libc++";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CLANG_ENABLE_OBJC_ARC = YES;
|
||||
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
|
||||
CLANG_WARN_BOOL_CONVERSION = YES;
|
||||
CLANG_WARN_COMMA = YES;
|
||||
CLANG_WARN_CONSTANT_CONVERSION = YES;
|
||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||
CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
|
||||
CLANG_WARN_EMPTY_BODY = YES;
|
||||
CLANG_WARN_ENUM_CONVERSION = YES;
|
||||
CLANG_WARN_INFINITE_RECURSION = YES;
|
||||
CLANG_WARN_INT_CONVERSION = YES;
|
||||
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
|
||||
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
|
||||
CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
|
||||
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
|
||||
CLANG_WARN_STRICT_PROTOTYPES = YES;
|
||||
CLANG_WARN_SUSPICIOUS_MOVE = YES;
|
||||
CLANG_WARN_UNREACHABLE_CODE = YES;
|
||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
|
||||
COPY_PHASE_STRIP = NO;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
ENABLE_NS_ASSERTIONS = NO;
|
||||
ENABLE_STRICT_OBJC_MSGSEND = YES;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||
GCC_NO_COMMON_BLOCKS = YES;
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
|
||||
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
|
||||
GCC_WARN_UNDECLARED_SELECTOR = YES;
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
SUPPORTED_PLATFORMS = iphoneos;
|
||||
SWIFT_COMPILATION_MODE = wholemodule;
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-O";
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
VALIDATE_PRODUCT = YES;
|
||||
};
|
||||
name = "Release-dev";
|
||||
};
|
||||
97C147061CF9000F007C117D /* Debug-dev */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
BUNDLE_NAME = "lemmur DEV";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = NMDSW6KGG7;
|
||||
ENABLE_BITCODE = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
);
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.krawieck.lemmur.dev;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
|
||||
SWIFT_VERSION = 5.0;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
};
|
||||
name = "Debug-dev";
|
||||
};
|
||||
97C147071CF9000F007C117D /* Release-dev */ = {
|
||||
isa = XCBuildConfiguration;
|
||||
baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */;
|
||||
buildSettings = {
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
BUNDLE_NAME = "lemmur DEV";
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)";
|
||||
DEVELOPMENT_TEAM = NMDSW6KGG7;
|
||||
ENABLE_BITCODE = NO;
|
||||
FRAMEWORK_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
);
|
||||
INFOPLIST_FILE = Runner/Info.plist;
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"@executable_path/Frameworks",
|
||||
);
|
||||
LIBRARY_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
"$(PROJECT_DIR)/Flutter",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.krawieck.lemmur.dev;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
SWIFT_VERSION = 5.0;
|
||||
VERSIONING_SYSTEM = "apple-generic";
|
||||
};
|
||||
name = "Release-dev";
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
|
@ -743,26 +560,22 @@
|
|||
97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
97C147031CF9000F007C117D /* Debug-dev */,
|
||||
1889477126E7F08600887334 /* Debug-prod */,
|
||||
97C147041CF9000F007C117D /* Release-dev */,
|
||||
1889477326E7F09600887334 /* Release-prod */,
|
||||
249021D3217E4FDB00AE95B9 /* Profile-dev */,
|
||||
97C147031CF9000F007C117D /* Debug */,
|
||||
97C147041CF9000F007C117D /* Release */,
|
||||
249021D3217E4FDB00AE95B9 /* Profile */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = "Release-dev";
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
97C147061CF9000F007C117D /* Debug-dev */,
|
||||
1889477226E7F08600887334 /* Debug-prod */,
|
||||
97C147071CF9000F007C117D /* Release-dev */,
|
||||
1889477426E7F09600887334 /* Release-prod */,
|
||||
249021D4217E4FDB00AE95B9 /* Profile-dev */,
|
||||
97C147061CF9000F007C117D /* Debug */,
|
||||
97C147071CF9000F007C117D /* Release */,
|
||||
249021D4217E4FDB00AE95B9 /* Profile */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = "Release-dev";
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
|
|
|
@ -2,6 +2,6 @@
|
|||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:">
|
||||
location = "group:Runner.xcodeproj">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1250"
|
||||
LastUpgradeVersion = "1020"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@ -23,7 +23,7 @@
|
|||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug-prod"
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
|
@ -40,7 +40,7 @@
|
|||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug-prod"
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
|
@ -61,7 +61,7 @@
|
|||
</BuildableProductRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release-prod"
|
||||
buildConfiguration = "Profile"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
|
@ -78,10 +78,10 @@
|
|||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug-prod">
|
||||
buildConfiguration = "Debug">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release-prod"
|
||||
buildConfiguration = "Release"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
|
@ -1,78 +0,0 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1250"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
buildImplicitDependencies = "YES">
|
||||
<BuildActionEntries>
|
||||
<BuildActionEntry
|
||||
buildForTesting = "YES"
|
||||
buildForRunning = "YES"
|
||||
buildForProfiling = "YES"
|
||||
buildForArchiving = "YES"
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||
BuildableName = "Runner.app"
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
</BuildActionEntries>
|
||||
</BuildAction>
|
||||
<TestAction
|
||||
buildConfiguration = "Debug-dev"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
</Testables>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug-dev"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
launchStyle = "0"
|
||||
useCustomWorkingDirectory = "NO"
|
||||
ignoresPersistentStateOnLaunch = "NO"
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||
BuildableName = "Runner.app"
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release-dev"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
||||
savedToolIdentifier = ""
|
||||
useCustomWorkingDirectory = "NO"
|
||||
debugDocumentVersioning = "YES">
|
||||
<BuildableProductRunnable
|
||||
runnableDebuggingMode = "0">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "97C146ED1CF9000F007C117D"
|
||||
BuildableName = "Runner.app"
|
||||
BlueprintName = "Runner"
|
||||
ReferencedContainer = "container:Runner.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildableProductRunnable>
|
||||
</ProfileAction>
|
||||
<AnalyzeAction
|
||||
buildConfiguration = "Debug-dev">
|
||||
</AnalyzeAction>
|
||||
<ArchiveAction
|
||||
buildConfiguration = "Release-dev"
|
||||
revealArchiveInOrganizer = "YES">
|
||||
</ArchiveAction>
|
||||
</Scheme>
|
Before Width: | Height: | Size: 29 KiB After Width: | Height: | Size: 47 KiB |
Before Width: | Height: | Size: 523 B After Width: | Height: | Size: 522 B |
Before Width: | Height: | Size: 953 B After Width: | Height: | Size: 943 B |
Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 731 B After Width: | Height: | Size: 718 B |
Before Width: | Height: | Size: 1.3 KiB After Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 953 B After Width: | Height: | Size: 943 B |
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.8 KiB |
Before Width: | Height: | Size: 4.5 KiB After Width: | Height: | Size: 4.4 KiB |
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB |
Before Width: | Height: | Size: 3.8 KiB After Width: | Height: | Size: 3.7 KiB |
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 4.1 KiB |
|
@ -1,59 +1,53 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>$(BUNDLE_NAME)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>$(BUNDLE_NAME)</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$(FLUTTER_BUILD_NAME)</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true />
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
<string>Main</string>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false />
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<true />
|
||||
|
||||
<!-- Image picker -->
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
<string>For uploading images for posts/avatars</string>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>For uploading images for posts/avatars</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>For recording videos for posts</string>
|
||||
<key>CADisableMinimumFrameDurationOnPhone</key>
|
||||
<dict>
|
||||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>lemmur</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>$(FLUTTER_BUILD_NAME)</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(FLUTTER_BUILD_NUMBER)</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
<true/>
|
||||
<key>UILaunchStoryboardName</key>
|
||||
<string>LaunchScreen</string>
|
||||
<key>UIMainStoryboardFile</key>
|
||||
<string>Main</string>
|
||||
<key>UISupportedInterfaceOrientations</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UISupportedInterfaceOrientations~ipad</key>
|
||||
<array>
|
||||
<string>UIInterfaceOrientationPortrait</string>
|
||||
<string>UIInterfaceOrientationPortraitUpsideDown</string>
|
||||
<string>UIInterfaceOrientationLandscapeLeft</string>
|
||||
<string>UIInterfaceOrientationLandscapeRight</string>
|
||||
</array>
|
||||
<key>UIViewControllerBasedStatusBarAppearance</key>
|
||||
<false/>
|
||||
|
||||
<!-- Image picker -->
|
||||
<key>NSPhotoLibraryUsageDescription</key>
|
||||
<string>For uploading images for posts/avatars</string>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>For uploading images for posts/avatars</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>For recording videos for posts</string>
|
||||
</dict>
|
||||
</plist>
|
||||
|
|
|
@ -1,8 +1,6 @@
|
|||
arb-dir: assets/l10n
|
||||
output-dir: lib/l10n/gen
|
||||
arb-dir: lib/l10n
|
||||
template-arb-file: intl_en.arb
|
||||
output-localization-file: l10n.dart
|
||||
preferred-supported-locales: [en]
|
||||
output-class: L10n
|
||||
synthetic-package: false
|
||||
nullable-getter: false
|
||||
untranslated-messages-file: lib/l10n/untranslated.json
|
||||
|
|
30
lib/app.dart
|
@ -1,30 +0,0 @@
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:keyboard_dismisser/keyboard_dismisser.dart';
|
||||
|
||||
import 'l10n/l10n.dart';
|
||||
import 'pages/home_page.dart';
|
||||
import 'resources/theme.dart';
|
||||
import 'stores/config_store.dart';
|
||||
import 'util/observer_consumers.dart';
|
||||
|
||||
class MyApp extends StatelessWidget {
|
||||
const MyApp();
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return KeyboardDismisser(
|
||||
child: ObserverBuilder<ConfigStore>(
|
||||
builder: (context, store) => MaterialApp(
|
||||
title: 'lemmur',
|
||||
supportedLocales: L10n.supportedLocales,
|
||||
localizationsDelegates: L10n.localizationsDelegates,
|
||||
themeMode: store.theme,
|
||||
darkTheme: store.amoledDarkMode ? amoledTheme : darkTheme,
|
||||
locale: store.locale,
|
||||
theme: lightTheme,
|
||||
home: const HomePage(),
|
||||
),
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
|
@ -1,7 +0,0 @@
|
|||
class AppConfig {
|
||||
final bool debugMode;
|
||||
|
||||
const AppConfig({
|
||||
required this.debugMode,
|
||||
});
|
||||
}
|
|
@ -5,10 +5,13 @@ import 'util/hot_rank.dart';
|
|||
enum CommentSortType {
|
||||
hot,
|
||||
top,
|
||||
// ignore: constant_identifier_names
|
||||
new_,
|
||||
old,
|
||||
chat;
|
||||
chat,
|
||||
}
|
||||
|
||||
extension on CommentSortType {
|
||||
/// returns a compare function for sorting a CommentTree according
|
||||
/// to the comment sort type
|
||||
int Function(CommentTree a, CommentTree b) get sortFunction {
|
||||
|
@ -36,15 +39,6 @@ enum CommentSortType {
|
|||
}
|
||||
}
|
||||
|
||||
extension SortCommentTreeList on List<CommentTree> {
|
||||
void sortBy(CommentSortType sortType) {
|
||||
sort(sortType.sortFunction);
|
||||
for (final el in this) {
|
||||
el._sort(sortType.sortFunction);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
class CommentTree {
|
||||
CommentView comment;
|
||||
List<CommentTree> children = [];
|
||||
|
@ -62,8 +56,9 @@ class CommentTree {
|
|||
return parent;
|
||||
}
|
||||
|
||||
final topLevelParents =
|
||||
comments.where((e) => e.comment.parentId == null).map(CommentTree.new);
|
||||
final topLevelParents = comments
|
||||
.where((e) => e.comment.parentId == null)
|
||||
.map((e) => CommentTree(e));
|
||||
|
||||
final result = topLevelParents.map(gatherChildren).toList();
|
||||
return result;
|
||||
|
@ -76,4 +71,14 @@ class CommentTree {
|
|||
el._sort(compare);
|
||||
}
|
||||
}
|
||||
|
||||
/// Sorts in-place a list of CommentTrees according to a given sortType
|
||||
static List<CommentTree> sortList(
|
||||
CommentSortType sortType, List<CommentTree> comms) {
|
||||
comms.sort(sortType.sortFunction);
|
||||
for (final el in comms) {
|
||||
el._sort(sortType.sortFunction);
|
||||
}
|
||||
return comms;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -3,6 +3,8 @@ import 'dart:async';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
|
||||
import 'ref.dart';
|
||||
|
||||
class Debounce {
|
||||
final bool loading;
|
||||
final VoidCallback callback;
|
||||
|
@ -25,14 +27,14 @@ Debounce useDebounce(
|
|||
final timerHandle = useRef<Timer?>(null);
|
||||
|
||||
cancel() {
|
||||
timerHandle.value?.cancel();
|
||||
timerHandle.current?.cancel();
|
||||
loading.value = false;
|
||||
}
|
||||
|
||||
useEffect(() => () => timerHandle.value?.cancel(), []);
|
||||
useEffect(() => () => timerHandle.current?.cancel(), []);
|
||||
|
||||
start() {
|
||||
timerHandle.value = Timer(delayDuration, () async {
|
||||
timerHandle.current = Timer(delayDuration, () async {
|
||||
loading.value = true;
|
||||
await callback();
|
||||
cancel();
|
||||
|
|
|
@ -3,6 +3,8 @@ import 'dart:async';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
|
||||
import 'ref.dart';
|
||||
|
||||
class DelayedLoading {
|
||||
final bool pending;
|
||||
final bool loading;
|
||||
|
@ -30,11 +32,11 @@ DelayedLoading useDelayedLoading(
|
|||
loading: loading.value,
|
||||
pending: pending.value,
|
||||
start: () {
|
||||
timerHandle.value = Timer(delayDuration, () => loading.value = true);
|
||||
timerHandle.current = Timer(delayDuration, () => loading.value = true);
|
||||
pending.value = true;
|
||||
},
|
||||
cancel: () {
|
||||
timerHandle.value?.cancel();
|
||||
timerHandle.current?.cancel();
|
||||
pending.value = false;
|
||||
loading.value = false;
|
||||
},
|
||||
|
|
|
@ -0,0 +1,4 @@
|
|||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:image_picker/image_picker.dart';
|
||||
|
||||
ImagePicker useImagePicker() => useMemoized(() => ImagePicker());
|
|
@ -3,4 +3,4 @@ import 'package:flutter_hooks/flutter_hooks.dart';
|
|||
import '../widgets/infinite_scroll.dart';
|
||||
|
||||
InfiniteScrollController useInfiniteScrollController() =>
|
||||
useMemoized(InfiniteScrollController.new);
|
||||
useMemoized(() => InfiniteScrollController());
|
||||
|
|
|
@ -2,7 +2,7 @@ import 'package:flutter/material.dart';
|
|||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:lemmy_api_client/v3.dart';
|
||||
|
||||
import '../pages/settings/settings.dart';
|
||||
import '../pages/settings.dart';
|
||||
import '../util/goto.dart';
|
||||
import 'stores.dart';
|
||||
|
||||
|
|
|
@ -3,12 +3,7 @@ import 'package:flutter_hooks/flutter_hooks.dart';
|
|||
|
||||
/// creates an [AsyncSnapshot] from the Future returned from the valueBuilder.
|
||||
/// [keys] can be used to rebuild the Future
|
||||
AsyncSnapshot<T> useMemoFuture<T>(
|
||||
Future<T> Function() valueBuilder, [
|
||||
List<Object?> keys = const <Object>[],
|
||||
]) =>
|
||||
useFuture(
|
||||
useMemoized<Future<T>>(valueBuilder, keys),
|
||||
preserveState: false,
|
||||
initialData: null,
|
||||
);
|
||||
AsyncSnapshot<T?> useMemoFuture<T>(Future<T> Function() valueBuilder,
|
||||
[List<Object> keys = const <Object>[]]) =>
|
||||
useFuture(useMemoized<Future<T>>(valueBuilder, keys),
|
||||
preserveState: false, initialData: null);
|
||||
|
|
|
@ -0,0 +1,9 @@
|
|||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
|
||||
class Ref<T> {
|
||||
T current;
|
||||
Ref(this.current);
|
||||
}
|
||||
|
||||
/// see React's useRef
|
||||
Ref<T> useRef<T>(T initialValue) => useMemoized(() => Ref(initialValue));
|
|
@ -18,10 +18,8 @@ class Refreshable<T> {
|
|||
///
|
||||
/// `keys` will re-run the initial fetching thus yielding a
|
||||
/// loading state in the AsyncSnapshot
|
||||
Refreshable<T> useRefreshable<T extends Object>(
|
||||
AsyncValueGetter<T> fetcher, [
|
||||
List<Object> keys = const <Object>[],
|
||||
]) {
|
||||
Refreshable<T?> useRefreshable<T>(AsyncValueGetter<T> fetcher,
|
||||
[List<Object> keys = const <Object>[]]) {
|
||||
final newData = useState<T?>(null);
|
||||
final snapshot = useMemoFuture(() async {
|
||||
newData.value = null;
|
||||
|
@ -30,7 +28,7 @@ Refreshable<T> useRefreshable<T extends Object>(
|
|||
|
||||
final outSnapshot = () {
|
||||
if (newData.value != null) {
|
||||
return AsyncSnapshot.withData(ConnectionState.done, newData.value!);
|
||||
return AsyncSnapshot.withData(ConnectionState.done, newData.value);
|
||||
}
|
||||
return snapshot;
|
||||
}();
|
||||
|
|
|
@ -1,23 +1,13 @@
|
|||
import 'package:flutter_hooks/flutter_hooks.dart' hide Store;
|
||||
import 'package:mobx/mobx.dart';
|
||||
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
|
||||
import '../stores/accounts_store.dart';
|
||||
import '../stores/config_store.dart';
|
||||
|
||||
AccountsStore useAccountsStore() => useContext().watch<AccountsStore>();
|
||||
T useAccountsStoreSelect<T>(T selector(AccountsStore store)) =>
|
||||
useContext().select<AccountsStore, T>(selector);
|
||||
|
||||
V useStore<S extends Store, V>(V Function(S value) selector) {
|
||||
final context = useContext();
|
||||
final store = context.read<S>();
|
||||
final state = useState(selector(store));
|
||||
|
||||
useEffect(() {
|
||||
return autorun((_) {
|
||||
state.value = selector(store);
|
||||
});
|
||||
}, []);
|
||||
|
||||
return state.value;
|
||||
}
|
||||
ConfigStore useConfigStore() => useContext().watch<ConfigStore>();
|
||||
T useConfigStoreSelect<T>(T selector(ConfigStore store)) =>
|
||||
useContext().select<ConfigStore, T>(selector);
|
||||
|
|
|
@ -1,68 +1,83 @@
|
|||
{
|
||||
"@@locale": "ar",
|
||||
"settings": "الإعدادات",
|
||||
"password": "كلمة السر",
|
||||
"password": "الكلمة السرية",
|
||||
"email_or_username": "عنوان البريد أو اسم المستخدم",
|
||||
"posts": "المنشورات",
|
||||
"posts": "منشورات",
|
||||
"comments": "التعليقات",
|
||||
"modlog": "سجل الإشراف",
|
||||
"modlog": "تأريخ الإشراف",
|
||||
"community": "المجتمع",
|
||||
"url": "الرابط",
|
||||
"title": "العنوان",
|
||||
"body": "المحتوى",
|
||||
"nsfw": "محتوى حساس",
|
||||
"post": "منشور",
|
||||
"save": "احفظ",
|
||||
"subscribed": "الاشتراكات",
|
||||
"local": "المحلي",
|
||||
"save": "حفظ",
|
||||
"subscribed": "مُتابِعون",
|
||||
"all": "الكل",
|
||||
"replies": "الردود",
|
||||
"replies": "الإجابات",
|
||||
"mentions": "الإشارات",
|
||||
"from": "من",
|
||||
"to": "في",
|
||||
"to": "إلى",
|
||||
"deleted_by_creator": "حذفه صاحبه",
|
||||
"more": "المزيد",
|
||||
"mark_as_read": "علمه كمقروء",
|
||||
"mark_as_unread": "علمه كغير مقروء",
|
||||
"mark_as_read": "تعيين كمقروء",
|
||||
"mark_as_unread": "تعيين كغير مقروء بعد",
|
||||
"reply": "رد",
|
||||
"edit": "عدّل",
|
||||
"delete": "احذف",
|
||||
"restore": "استعدْ",
|
||||
"edit": "تعديل",
|
||||
"delete": "حذف",
|
||||
"restore": "استعادة",
|
||||
"yes": "نعم",
|
||||
"no": "لا",
|
||||
"avatar": "الصورة الرمزية",
|
||||
"banner": "اللافتة",
|
||||
"display_name": "الاسم العلني",
|
||||
"bio": "السيرة",
|
||||
"email": "البريد الإلكتروني",
|
||||
"matrix_user": "مستخدم مايتريكس",
|
||||
"matrix_user": "مستخدم ماتريكس",
|
||||
"sort_type": "ترتيب حسب",
|
||||
"type": "النوع",
|
||||
"show_nsfw": "أظهر المحتوى الحساس",
|
||||
"show_nsfw": "إظهار المحتوى الحساس",
|
||||
"send_notifications_to_email": "إرسال الإشعارات عبر البريد الإلكتروني",
|
||||
"delete_account": "احذف الحساب",
|
||||
"saved": "المحفوظة",
|
||||
"delete_account": "حذف الحساب",
|
||||
"saved": "تم حفظه",
|
||||
"communities": "المجتمعات",
|
||||
"users": "المستخدِمون",
|
||||
"theme": "المظهر",
|
||||
"language": "اللغة",
|
||||
"hot": "المتداولة",
|
||||
"new_": "الأحدث",
|
||||
"old": "الأقدم",
|
||||
"top": "الشائع",
|
||||
"chat": "المحادثة",
|
||||
"new_": "جديد",
|
||||
"old": "قديم",
|
||||
"top": "المتداولة",
|
||||
"chat": "دردشة",
|
||||
"admin": "مدير",
|
||||
"by": "مِن",
|
||||
"not_a_mod_or_admin": "ليس مشرفًا ولا مديرًا.",
|
||||
"not_an_admin": "ليس مديرا.",
|
||||
"couldnt_find_post": "تعذر العثور على المنشور.",
|
||||
"not_an_admin": "لستَ مديرا.",
|
||||
"not_logged_in": "لستَ متصلا.",
|
||||
"site_ban": "حُظرت مِن هذا الموقع",
|
||||
"community_ban": "حُظرت مِن هذا المجتمع.",
|
||||
"downvotes_disabled": "عُطلت المعارضات",
|
||||
"invalid_url": "الرابط غير صالح.",
|
||||
"locked": "أُقفل",
|
||||
"site_ban": "لقد تم طردك مِن هذا الموقع",
|
||||
"community_ban": "لقد تم طردك مِن هذا المجتمع.",
|
||||
"downvotes_disabled": "تم تعطيل التصويتات السلبية",
|
||||
"locked": "محظور",
|
||||
"couldnt_create_comment": "تعذّر إنشاءالتعليق.",
|
||||
"password_incorrect": "الكلمة السرية خاطئة.",
|
||||
"registration_closed": "إنشاء الحسابات معطل",
|
||||
"passwords_dont_match": "الكلمات السرية غير متطابقة.",
|
||||
"email_already_exists": "عنوان البريد الإلكتروني هذا موجود بالفعل.",
|
||||
"user_already_exists": "هذا المستخدِم موجود بالفعل.",
|
||||
"unsubscribe": "الغ الإشتراك",
|
||||
"subscribe": "اتبع",
|
||||
"messages": "لرسائل",
|
||||
"banned_users": "المستخدمون المحظورون",
|
||||
"new_password": "لكلمة السرية الجديدة",
|
||||
"verify_password": "تأكيد الكلمة السرية",
|
||||
"old_password": "الكلمة السرية القديمة",
|
||||
"show_avatars": "إظهار الصور الرمزية",
|
||||
"search": "البحث",
|
||||
"send_message": "أرسل الرسالة",
|
||||
"local": "محلي",
|
||||
"from": "من",
|
||||
"banner": "اللافتة",
|
||||
"display_name": "الاسم",
|
||||
"bio": "السيرة",
|
||||
"not_a_mod_or_admin": "ليس مشرفًا ولا مديرًا.",
|
||||
"couldnt_find_post": "تعذر العثور على المشاركة.",
|
||||
"invalid_url": "الرابط غير صالح.",
|
||||
"couldnt_like_comment": "تعذر الإعجاب بالتعليق.",
|
||||
"couldnt_update_comment": "تعذر تحديث التعليق.",
|
||||
"no_comment_edit_allowed": "لا يُسمح لك تعديل التعليق.",
|
||||
|
@ -70,16 +85,16 @@
|
|||
"couldnt_get_comments": "تعذر جلب التعليق.",
|
||||
"report_reason_required": "سبب الإبلاغ مطلوب.",
|
||||
"report_too_long": "تقرير الإبلاغ طويل.",
|
||||
"couldnt_create_report": "تعذر إنشاء الإبلاغ.",
|
||||
"couldnt_resolve_report": "تعذر تحليل الإبلاغ.",
|
||||
"invalid_post_title": "عنوان المنشور غيرصالح",
|
||||
"couldnt_create_post": "تعذر انشاء المنشور.",
|
||||
"couldnt_create_report": "تعذر إتشاء التقرير.",
|
||||
"couldnt_resolve_report": "تعذر تحليل.",
|
||||
"invalid_post_title": "عنوان المنشور غير",
|
||||
"couldnt_create_post": "تعذر انشاء المشاركة.",
|
||||
"couldnt_like_post": "تعذر الإعجاب بالمنشور.",
|
||||
"couldnt_find_community": "تعذر العثور على المجتمع.",
|
||||
"couldnt_get_posts": "تعذر جلب المنشورات",
|
||||
"no_post_edit_allowed": "لا يسمح لك بتعديل المنشور.",
|
||||
"couldnt_save_post": "تعذر حفظ المنشور.",
|
||||
"site_already_exists": "الموقع موجود مسبقًا.",
|
||||
"couldnt_get_posts": "تعذر جلب المشاركات",
|
||||
"no_post_edit_allowed": "لا يسمح لك تعديل المشاركة.",
|
||||
"couldnt_save_post": "تعذر حفظ المشاركة.",
|
||||
"site_already_exists": "الموقع موجود.",
|
||||
"couldnt_update_site": "تعذر تحديث الموقع.",
|
||||
"invalid_community_name": "اسم غير صالح.",
|
||||
"community_already_exists": "المجتمع موجود مسبقًا.",
|
||||
|
@ -87,45 +102,26 @@
|
|||
"community_follower_already_exists": "هذا العضو مشترك في المجمع مسبقا.",
|
||||
"not_a_moderator": "ليس مشرفًا.",
|
||||
"couldnt_update_community": "تعذر تحديث المجتمع.",
|
||||
"no_community_edit_allowed": "لا يُسمح لك بتعديل المجتمع.",
|
||||
"no_community_edit_allowed": "لا يُسمح لك تعديل المجتمع.",
|
||||
"system_err_login": "خطأ في النظام. جرب إعادة الولوج.",
|
||||
"community_user_already_banned": "هذا العضو محظور مسبقا.",
|
||||
"community_user_already_banned": "هذا العضو محضور مسبقا.",
|
||||
"couldnt_find_that_username_or_email": "تعذر العثور على مستخدم يملك هذا البريد أو اسم المستخدم.",
|
||||
"password_incorrect": "كلمة السر خاطئة.",
|
||||
"registration_closed": "إنشاء الحسابات معطل",
|
||||
"invalid_password": "كلمة السر غير صالحة. يجب ألّا تزيد عن 60 محرفًا.",
|
||||
"passwords_dont_match": "كلماتا السر غير متطابقتين.",
|
||||
"invalid_password": "كلمة المرور غير صالحة. يجب ألّا تزيد عن 60 محرفًا.",
|
||||
"captcha_incorrect": "رمز التحقق خاطئ.",
|
||||
"invalid_username": "اسم المستخدم غير صالح.",
|
||||
"bio_length_overflow": "لا يمكن أن تزيد السيرة عن 300 محرف.",
|
||||
"couldnt_update_user": "تعذر تحديث معلومات المستخدم.",
|
||||
"couldnt_update_private_message": "تعذر تحديث الرسالة الخاصة.",
|
||||
"couldnt_update_post": "تعذر تحديث المنشور",
|
||||
"couldnt_update_post": "تعذر تحديث",
|
||||
"couldnt_create_private_message": "تعذر انشاء الرسالة الخاصة.",
|
||||
"no_private_message_edit_allowed": "لا يسمح لك بتعديل الرسالة الخاصة.",
|
||||
"post_title_too_long": "عنوان المنشور طويل.",
|
||||
"email_already_exists": "عنوان البريد الإلكتروني هذا موجود بالفعل.",
|
||||
"user_already_exists": "هذا المستخدِم موجود بالفعل.",
|
||||
"unsubscribe": "الغ الإشتراك",
|
||||
"subscribe": "اشترك",
|
||||
"messages": "الرسائل",
|
||||
"banned_users": "المستخدمون المحظورون",
|
||||
"delete_account_confirm": "تحذير: ستحذف جميع بياناتك من هذا الخادم لكن هذا لا يشمل الخوادم الأخرى. أدخل كلمة المرور لتأكيد.",
|
||||
"new_password": "كلمة السر الجديدة",
|
||||
"verify_password": "أكّد كلمة السر",
|
||||
"old_password": "كلمة السر القديمة",
|
||||
"show_avatars": "أظهر الصور الرمزية",
|
||||
"search": "البحث",
|
||||
"send_message": "أرسل رسالة",
|
||||
"top_day": "الشائع هذا اليوم",
|
||||
"top_week": "الشائع هذا الأسبوع",
|
||||
"top_month": "الشائع هذا الشهر",
|
||||
"top_year": "الشائع هذه السنة",
|
||||
"top_all": "الشائع",
|
||||
"most_comments": "الأكثر تعليقًا",
|
||||
"new_comments": "الأحدث تعليقًا",
|
||||
"active": "النشط",
|
||||
"bot_account": "حساب آلي",
|
||||
"show_bot_accounts": "أظهر الحسابات الآلية",
|
||||
"show_read_posts": "أظهر المنشورات المقروءة"
|
||||
"no_private_message_edit_allowed": "لا يسمح لك تعديل الرسالة الخاصة.",
|
||||
"post_title_too_long": "عنوان المشاركة طويل.",
|
||||
"delete_account_confirm": "تحذير: ستحذف جميع بياناتك. أدخل كلمة المرور لتأكيد.",
|
||||
"top_day": "المتداول",
|
||||
"top_week": "المتداول هذا",
|
||||
"top_month": "المتداول هذا",
|
||||
"top_year": "المتداول هذه",
|
||||
"top_all": "المتداولة",
|
||||
"most_comments": "الأكثر",
|
||||
"new_comments": "الأحدث",
|
||||
"active": "النشط"
|
||||
}
|
|
@ -51,7 +51,7 @@
|
|||
"old": "Стари",
|
||||
"top": "Топ",
|
||||
"chat": "Чат",
|
||||
"admin": "админ",
|
||||
"admin": "администратор",
|
||||
"by": "от",
|
||||
"not_a_mod_or_admin": "Не сте модератор или администратор.",
|
||||
"not_an_admin": "Не сте администратор.",
|
||||
|
@ -87,7 +87,7 @@
|
|||
"community_follower_already_exists": "Абонат на общността вече съществува.",
|
||||
"not_a_moderator": "Не сте модератор.",
|
||||
"couldnt_update_community": "Не можахме да обновим тази общност.",
|
||||
"no_community_edit_allowed": "Нямате право да редактирате тази общност",
|
||||
"no_community_edit_allowed": "Нямате право да редактирате тази общност.",
|
||||
"system_err_login": "Системна грешка. Опитайте се да се отпишете и впишете наново.",
|
||||
"community_user_already_banned": "Потребителят вече е баннат.",
|
||||
"couldnt_find_that_username_or_email": "Потребителското име или имейла не съществуват.",
|
||||
|
@ -106,17 +106,17 @@
|
|||
"post_title_too_long": "Заглавието на поста е твърде дълго.",
|
||||
"email_already_exists": "Имейлът вече съществува.",
|
||||
"user_already_exists": "Потребителят вече съществува.",
|
||||
"number_of_users_online": "{formattedCount,plural, =1{{formattedCount} потребител онлайн} other{{formattedCount} потребителя онлайн}}",
|
||||
"number_of_comments": "{formattedCount,plural, =1{{formattedCount} Коментар} other{{formattedCount} Коментара}}",
|
||||
"number_of_posts": "{formattedCount,plural, =1{{formattedCount} Пост} other{{formattedCount} Поста}}",
|
||||
"number_of_subscribers": "{formattedCount,plural, =1{{formattedCount} абонат} other{{formattedCount} абоната}}",
|
||||
"number_of_users": "{formattedCount,plural, =1{{formattedCount} потребител} other{{formattedCount} потребителя}}",
|
||||
"number_of_users_online": "{count,plural, =1{{count} потребител онлайн} other{{count} потребители онлайн}}",
|
||||
"number_of_comments": "{count,plural, =1{{count} Коментар} other{{count} Коментари}}",
|
||||
"number_of_posts": "{count,plural, =1{{count} Пост} other{{count} Постове}}",
|
||||
"number_of_subscribers": "{count,plural, =1{{count} абонат} other{{count} абонати}}",
|
||||
"number_of_users": "{count,plural, =1{{count} потребител} other{{count} потребители}}",
|
||||
"unsubscribe": "Премахни абонамент",
|
||||
"subscribe": "Абонирай",
|
||||
"messages": "Съобщения",
|
||||
"banned_users": "Блокирани Потребители",
|
||||
"delete_account_confirm": "Внимание: това трайно ще изтрие всичките Ви данни от този сървър. Въведете своята парола за потвърждение.",
|
||||
"new_password": "Нова парола",
|
||||
"delete_account_confirm": "Внимание: това трайно ще изтрие всичките Ви данни. Въведете своята парола за потвърждение.",
|
||||
"new_password": "Нова Парола",
|
||||
"verify_password": "Потвърди парола",
|
||||
"old_password": "Стара парола",
|
||||
"show_avatars": "Покажи Профилни Снимки",
|
||||
|
@ -129,8 +129,5 @@
|
|||
"top_all": "Топ на Всички Времена",
|
||||
"most_comments": "Най-много Коментари",
|
||||
"new_comments": "Нови Коментари",
|
||||
"active": "Активни",
|
||||
"bot_account": "Бот-Профил",
|
||||
"show_bot_accounts": "Показвай Бот-Пофилите",
|
||||
"show_read_posts": "Показвай прочетени постове"
|
||||
"active": "Активни"
|
||||
}
|
|
@ -53,7 +53,6 @@
|
|||
"chat": "Xat",
|
||||
"admin": "administrador",
|
||||
"by": "per",
|
||||
"not_a_mod_or_admin": "No ets un moderador ni un administrador.",
|
||||
"not_an_admin": "No és un administrador.",
|
||||
"couldnt_find_post": "No s’ha pogut trobar l’apunt.",
|
||||
"not_logged_in": "No heu iniciat una sessió.",
|
||||
|
@ -106,11 +105,11 @@
|
|||
"post_title_too_long": "El títol de l’apunt és massa llarg.",
|
||||
"email_already_exists": "L’adreça ja és en ús.",
|
||||
"user_already_exists": "L’usuari ja existeix.",
|
||||
"number_of_users_online": "{formattedCount,plural, =1{{formattedCount} usuari en línia} other{{formattedCount} usuaris en línia}}",
|
||||
"number_of_comments": "{formattedCount,plural, =1{{formattedCount} comentari} other{{formattedCount} comentaris}}",
|
||||
"number_of_posts": "{formattedCount,plural, =1{{formattedCount} Publicació} other{{formattedCount} Publicacions}}",
|
||||
"number_of_subscribers": "{formattedCount,plural, =1{{formattedCount} subscriptor} other{{formattedCount} subscriptors}}",
|
||||
"number_of_users": "{formattedCount,plural, =1{{formattedCount} usuari} other{{formattedCount} usuaris}}",
|
||||
"number_of_users_online": "{count,plural, =1{{count} usuari en línia} other{{count} usuaris en línia}}",
|
||||
"number_of_comments": "{count,plural, =1{{count} comentari} other{{count} comentaris}}",
|
||||
"number_of_posts": "{count,plural, =1{{count} Publicació} other{{count} Publicacions}}",
|
||||
"number_of_subscribers": "{count,plural, =1{{count} subscriptor} other{{count} subscriptors}}",
|
||||
"number_of_users": "{count,plural, =1{{count} usuari} other{{count} usuaris}}",
|
||||
"unsubscribe": "Dóna’t de baixa",
|
||||
"subscribe": "Subscriu-t’hi",
|
||||
"messages": "Missatges",
|
||||
|
@ -129,5 +128,6 @@
|
|||
"top_all": "El millor de tots els temps",
|
||||
"most_comments": "Més comentaris",
|
||||
"new_comments": "Comentaris nous",
|
||||
"active": "Actiu"
|
||||
"active": "Actiu",
|
||||
"not_a_mod_or_admin": "No ets un moderador ni un administrador."
|
||||
}
|
|
@ -105,11 +105,11 @@
|
|||
"post_title_too_long": "Indlægstitel for lang.",
|
||||
"email_already_exists": "Emailen findes allerede.",
|
||||
"user_already_exists": "Brugeren findes allerede.",
|
||||
"number_of_users_online": "{formattedCount,plural, =1{{formattedCount} Bruger Online} other{{formattedCount} Brugere Online}}",
|
||||
"number_of_comments": "{formattedCount,plural, =1{{formattedCount} Kommentar} other{{formattedCount} Kommentarer}}",
|
||||
"number_of_posts": "{formattedCount,plural, =1{{formattedCount} Indlæg} other{{formattedCount} Indlæg}}",
|
||||
"number_of_subscribers": "{formattedCount,plural, =1{{formattedCount} Abonnent} other{{formattedCount} Abonnenter}}",
|
||||
"number_of_users": "{formattedCount,plural, =1{{formattedCount} Bruger} other{{formattedCount} Brugere}}",
|
||||
"number_of_users_online": "{count,plural, =1{{count} Bruger Online} other{{count} Brugere Online}}",
|
||||
"number_of_comments": "{count,plural, =1{{count} Kommentar} other{{count} Kommentarer}}",
|
||||
"number_of_posts": "{count,plural, =1{{count} Indlæg} other{{count} Indlæg}}",
|
||||
"number_of_subscribers": "{count,plural, =1{{count} Abonnent} other{{count} Abonnenter}}",
|
||||
"number_of_users": "{count,plural, =1{{count} Bruger} other{{count} Brugere}}",
|
||||
"unsubscribe": "Afmeld abbonement",
|
||||
"subscribe": "Abboner",
|
||||
"messages": "Beskeder",
|
|
@ -53,7 +53,6 @@
|
|||
"chat": "Chat",
|
||||
"admin": "Administrator",
|
||||
"by": "von",
|
||||
"not_a_mod_or_admin": "Kein Moderator oder Admin.",
|
||||
"not_an_admin": "Kein Administrator.",
|
||||
"couldnt_find_post": "Konnte Beitrag nicht finden.",
|
||||
"not_logged_in": "Nicht eingeloggt.",
|
||||
|
@ -62,18 +61,14 @@
|
|||
"downvotes_disabled": "Downvotes deaktiviert",
|
||||
"invalid_url": "Ungültige URL.",
|
||||
"locked": "gesperrt",
|
||||
"couldnt_create_comment": "Konnte Kommentar nicht erstellen.",
|
||||
"couldnt_create_comment": "Konnte Kommentar nicht anlegen.",
|
||||
"couldnt_like_comment": "Konnte nicht liken.",
|
||||
"couldnt_update_comment": "Konnte Kommentar nicht aktualisieren.",
|
||||
"no_comment_edit_allowed": "Keine Erlaubnis Kommentar zu editieren.",
|
||||
"couldnt_save_comment": "Konnte Kommentar nicht speichern.",
|
||||
"couldnt_get_comments": "Konnte Kommentare nicht laden.",
|
||||
"report_reason_required": "Meldungsgrund benötigt.",
|
||||
"report_too_long": "Meldung zu lang.",
|
||||
"couldnt_create_report": "Meldung konnte nicht angelegt werden.",
|
||||
"couldnt_resolve_report": "Meldung konnte nicht gelöst werden.",
|
||||
"invalid_post_title": "Ungültiger Post Titel",
|
||||
"couldnt_create_post": "Konnte Beitrag nicht erstellen.",
|
||||
"couldnt_create_post": "Konnte Beitrag nicht anlegen.",
|
||||
"couldnt_like_post": "Konnte Beitrag nicht liken.",
|
||||
"couldnt_find_community": "Konnte Community nicht finden.",
|
||||
"couldnt_get_posts": "Konnte Beiträge nicht holen",
|
||||
|
@ -106,16 +101,16 @@
|
|||
"post_title_too_long": "Posttitel zu lang.",
|
||||
"email_already_exists": "Email existiert bereits.",
|
||||
"user_already_exists": "Nutzer existiert bereits.",
|
||||
"number_of_users_online": "{formattedCount,plural, =1{{formattedCount} Benutzer online} other{{formattedCount} Benutzer*innen online}}",
|
||||
"number_of_comments": "{formattedCount,plural, =1{{formattedCount} Kommentar} other{{formattedCount} Kommentare}}",
|
||||
"number_of_posts": "{formattedCount,plural, =1{{formattedCount} Beitrag} other{{formattedCount} Beiträge}}",
|
||||
"number_of_subscribers": "{formattedCount,plural, =1{{formattedCount} Abonnent} other{{formattedCount} Abonnent*innen}}",
|
||||
"number_of_users": "{formattedCount,plural, =1{{formattedCount} Benutzer} other{{formattedCount} Benutzer*innen}}",
|
||||
"number_of_users_online": "{count,plural, =1{{count} Benutzer online} other{{count} Benutzer*innen online}}",
|
||||
"number_of_comments": "{count,plural, =1{{count} Kommentar} other{{count} Kommentare}}",
|
||||
"number_of_posts": "{count,plural, =1{{count} Beitrag} other{{count} Beiträge}}",
|
||||
"number_of_subscribers": "{count,plural, =1{{count} Abonnent} other{{count} Abonnent*innen}}",
|
||||
"number_of_users": "{count,plural, =1{{count} Benutzer} other{{count} Benutzer*innen}}",
|
||||
"unsubscribe": "Deabonnieren",
|
||||
"subscribe": "Abonnieren",
|
||||
"messages": "Nachrichten",
|
||||
"banned_users": "Gebannte Benutzer",
|
||||
"delete_account_confirm": "Achtung: Dadurch werden alle deine Daten aus dieser Instanz dauerhaft gelöscht. Es mag sein, dass deine Daten nicht aus anderen Instanzen gelöscht werden. Gib zur Bestätigung dein Passwort ein.",
|
||||
"delete_account_confirm": "Achtung: Dadurch werden alle Ihre Daten dauerhaft gelöscht. Geben Sie zur Bestätigung Ihr Passwort ein.",
|
||||
"new_password": "Neues Passwort",
|
||||
"verify_password": "Passwort überprüfen",
|
||||
"old_password": "Letztes Passwort",
|
||||
|
@ -123,14 +118,5 @@
|
|||
"search": "Suchen",
|
||||
"send_message": "Nachricht absenden",
|
||||
"top_day": "Top täglich",
|
||||
"top_week": "Top wöchentlich",
|
||||
"top_month": "Top monatlich",
|
||||
"top_year": "Top jährlich",
|
||||
"top_all": "Top aller Zeiten",
|
||||
"most_comments": "Meistkommentiert",
|
||||
"new_comments": "Neue Kommentare",
|
||||
"active": "Aktiv",
|
||||
"bot_account": "Bot Konto",
|
||||
"show_bot_accounts": "Bot-Konten anzeigen",
|
||||
"show_read_posts": "Gelesene Beiträge anzeigen"
|
||||
"active": "Aktiv"
|
||||
}
|