mirror of
https://github.com/AppFlowy-IO/AppFlowy.git
synced 2024-08-30 18:12:39 +00:00
chore: merge main
This commit is contained in:
commit
d1ce1686a4
122
.github/workflows/ci.yaml
vendored
122
.github/workflows/ci.yaml
vendored
@ -1,79 +1,83 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
branches:
|
||||
- 'main'
|
||||
|
||||
pull_request:
|
||||
branches: [main]
|
||||
branches:
|
||||
- 'main'
|
||||
|
||||
jobs:
|
||||
build-macos:
|
||||
runs-on: macOS-latest
|
||||
build:
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-latest, macos-latest]
|
||||
include:
|
||||
- os: ubuntu-latest
|
||||
flutter_profile: development-linux-x86
|
||||
- os: macos-latest
|
||||
flutter_profile: development-mac
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- uses: actions-rs/toolchain@v1
|
||||
- uses: actions/checkout@v2
|
||||
|
||||
- id: rust_toolchain
|
||||
uses: actions-rs/toolchain@v1
|
||||
with:
|
||||
toolchain: stable
|
||||
- name: Checkout Flutter
|
||||
uses: actions/checkout@v2
|
||||
|
||||
- id: flutter
|
||||
uses: subosito/flutter-action@v2
|
||||
with:
|
||||
repository: flutter/flutter
|
||||
path: flutter
|
||||
- name: Flutter
|
||||
working-directory: flutter
|
||||
run: |
|
||||
echo "$(pwd)/bin" >> $GITHUB_PATH
|
||||
export PATH="$PATH:$(pwd)/bin"
|
||||
flutter channel stable
|
||||
flutter config --enable-macos-desktop
|
||||
flutter doctor
|
||||
- name: Deps
|
||||
working-directory: frontend
|
||||
run: |
|
||||
cargo install --force cargo-make
|
||||
cargo install --force duckscript_cli
|
||||
cargo make flowy_dev
|
||||
echo PATH="$PATH":"$HOME/.pub-cache/bin" >> $GITHUB_PATH
|
||||
- name: Build
|
||||
working-directory: frontend
|
||||
run: cargo make --profile production-mac-x86 appflowy
|
||||
build-ubuntu:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Packages
|
||||
channel: 'stable'
|
||||
cache: true
|
||||
|
||||
- name: Cache Cargo
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
~/.cargo
|
||||
key: ${{ runner.os }}-cargo-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }}
|
||||
|
||||
- name: Cache Rust
|
||||
uses: actions/cache@v2
|
||||
with:
|
||||
path: |
|
||||
frontend/rust-lib/target
|
||||
key: ${{ runner.os }}-rust-${{ steps.rust_toolchain.outputs.rustc_hash }}-${{ hashFiles('./frontend/rust-lib/Cargo.toml') }}
|
||||
|
||||
- name: Setup Environment
|
||||
run: |
|
||||
if [ "$RUNNER_OS" == "Linux" ]; then
|
||||
sudo wget -qO /etc/apt/trusted.gpg.d/dart_linux_signing_key.asc https://dl-ssl.google.com/linux/linux_signing_key.pub
|
||||
sudo wget -qO /etc/apt/sources.list.d/dart_stable.list https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y dart curl build-essential libsqlite3-dev libssl-dev clang cmake ninja-build pkg-config libgtk-3-dev
|
||||
- name: Rust
|
||||
run: |
|
||||
curl \
|
||||
--proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||
source $HOME/.cargo/env
|
||||
rustup toolchain install stable
|
||||
rustup default stable
|
||||
- name: Checkout Flutter
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: flutter/flutter
|
||||
path: flutter
|
||||
- name: Flutter
|
||||
working-directory: flutter
|
||||
run: |
|
||||
echo "$(pwd)/bin" >> $GITHUB_PATH
|
||||
export PATH="$PATH:$(pwd)/bin"
|
||||
flutter channel stable
|
||||
flutter config --enable-linux-desktop
|
||||
flutter doctor
|
||||
elif [ "$RUNNER_OS" == "macOS" ]; then
|
||||
echo 'do nothing'
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
- name: Deps
|
||||
working-directory: frontend
|
||||
run: |
|
||||
cargo install --force cargo-make
|
||||
cargo install --force duckscript_cli
|
||||
cargo install cargo-make
|
||||
cargo install duckscript_cli
|
||||
cargo make flowy_dev
|
||||
echo PATH="$PATH":"$HOME/.pub-cache/bin" >> $GITHUB_PATH
|
||||
|
||||
- name: Config Flutter
|
||||
run: |
|
||||
if [ "$RUNNER_OS" == "Linux" ]; then
|
||||
flutter config --enable-linux-desktop
|
||||
elif [ "$RUNNER_OS" == "macOS" ]; then
|
||||
flutter config --enable-macos-desktop
|
||||
fi
|
||||
shell: bash
|
||||
|
||||
- name: Build
|
||||
working-directory: frontend
|
||||
run: cargo make --profile production-linux-x86 appflowy
|
||||
run: |
|
||||
cargo make --profile ${{ matrix.flutter_profile }} appflowy-dev
|
7
.github/workflows/dart_test.yml
vendored
7
.github/workflows/dart_test.yml
vendored
@ -22,7 +22,9 @@ jobs:
|
||||
with:
|
||||
toolchain: stable
|
||||
- name: Deps Flutter
|
||||
run: flutter packages pub get
|
||||
run: |
|
||||
flutter config --enable-linux-desktop
|
||||
flutter doctor
|
||||
working-directory: frontend/app_flowy
|
||||
- name: Deps Rust
|
||||
working-directory: frontend
|
||||
@ -34,15 +36,16 @@ jobs:
|
||||
- name: Code Generation
|
||||
working-directory: frontend/app_flowy
|
||||
run: |
|
||||
flutter packages pub get
|
||||
flutter packages pub run easy_localization:generate -S ./assets/translations -f keys -O lib/generated -o locale_keys.g.dart
|
||||
flutter packages pub run build_runner build --delete-conflicting-outputs
|
||||
- name: Build FlowySDK
|
||||
working-directory: frontend
|
||||
run: |
|
||||
flutter config --enable-linux-desktop
|
||||
cargo make --profile development-linux-x86 flowy-sdk-dev
|
||||
- name: Run bloc tests
|
||||
working-directory: frontend/app_flowy
|
||||
run: |
|
||||
flutter pub get
|
||||
flutter test
|
||||
|
||||
|
13
README.md
13
README.md
@ -29,19 +29,6 @@ You are in charge of your data and customizations.
|
||||
|
||||
Please view the [documentation](https://appflowy.gitbook.io/docs/essential-documentation/install-appflowy/installation-methods) for OS specific installation instructions.
|
||||
|
||||
You can also try AppFlowy using the docker image:
|
||||
|
||||
```
|
||||
docker run --rm \
|
||||
-v $HOME/.Xauthority:/root/.Xauthority:rw \
|
||||
-v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||
-v /dev/dri:/dev/dri \
|
||||
-v /var/run/dbus/system_bus_socket:/var/run/dbus/system_bus_socket \
|
||||
-v appflowy-data:/home/appflowy \
|
||||
-e DISPLAY=${DISPLAY} \
|
||||
appflowyio/appflowy_client:latest
|
||||
```
|
||||
|
||||
## Built With
|
||||
|
||||
* [Flutter](https://flutter.dev/)
|
||||
|
@ -1,20 +1,24 @@
|
||||
// module.exports = {extends: ['@commitlint/config-conventional']}
|
||||
module.exports = {
|
||||
rules: {
|
||||
'type-enum': [2, 'always', ['chore', 'ci', 'docs', 'feat', 'fix', 'refactor', 'style', 'test']],
|
||||
'body-leading-blank': [1, 'always'],
|
||||
'body-max-line-length': [2, 'always', 100],
|
||||
'footer-leading-blank': [1, 'always'],
|
||||
'footer-max-line-length': [2, 'always', 100],
|
||||
'header-max-length': [2, 'always', 100],
|
||||
|
||||
'type-enum': [2, 'always', ['build', 'chore', 'ci', 'docs', 'feat', 'feature', 'fix', 'refactor', 'style', 'test']],
|
||||
'type-empty': [2, 'never'],
|
||||
'type-case': [2, 'always', 'lower-case'],
|
||||
|
||||
'subject-empty': [2, 'never'],
|
||||
'subject-case': [
|
||||
2,
|
||||
0,
|
||||
'never',
|
||||
['sentence-case', 'start-case', 'pascal-case', 'upper-case'],
|
||||
],
|
||||
'subject-empty': [2, 'never'],
|
||||
'type-empty': [2, 'never'],
|
||||
'type-case': [2, 'always', 'lower-case'],
|
||||
'body-case': [2, 'never', []]
|
||||
|
||||
'body-leading-blank': [2, 'always'],
|
||||
'body-max-line-length': [2, 'always', 200],
|
||||
'body-case': [0, 'never', []],
|
||||
|
||||
'footer-leading-blank': [1, 'always'],
|
||||
'footer-max-line-length': [2, 'always', 100]
|
||||
},
|
||||
};
|
||||
|
145
frontend/app_flowy/assets/translations/ca-ES.json
Normal file
145
frontend/app_flowy/assets/translations/ca-ES.json
Normal file
@ -0,0 +1,145 @@
|
||||
{
|
||||
"appName": "AppFlowy",
|
||||
"defaultUsername": "Jo",
|
||||
"welcomeText": "Benvingut a @:appName",
|
||||
"githubStarText": "Preferit a Github",
|
||||
"subscribeNewsletterText": "Subscriu-me al butlletí",
|
||||
"letsGoButtonText": "Endavant",
|
||||
"title": "Títol",
|
||||
"signUp": {
|
||||
"buttonText": "Registra't",
|
||||
"title": "Registra't a @:appName",
|
||||
"getStartedText": "Comencem",
|
||||
"emptyPasswordError": "La contrasenya no pot ser buida",
|
||||
"repeatPasswordEmptyError": "La contrasenya repetida no pot ser buida",
|
||||
"unmatchedPasswordError": "Les contrasenyes no concorden",
|
||||
"alreadyHaveAnAccount": "Ja tens un compte?",
|
||||
"emailHint": "Correu electrònic",
|
||||
"passwordHint": "Contrasenya",
|
||||
"repeatPasswordHint": "Repeteix la contrasenya"
|
||||
},
|
||||
"signIn": {
|
||||
"loginTitle": "Inicia sessió a @:appName",
|
||||
"loginButtonText": "Inicia sessió",
|
||||
"buttonText": "Inicia sessió",
|
||||
"forgotPassword": "Has oblidat la contrasenya?",
|
||||
"emailHint": "Correu electrònic",
|
||||
"passwordHint": "Contrasenya",
|
||||
"dontHaveAnAccount": "No tens un compte?",
|
||||
"repeatPasswordEmptyError": "La contrasenya repetida no pot ser buida",
|
||||
"unmatchedPasswordError": "Les contrasenyes no concorden"
|
||||
},
|
||||
"workspace": {
|
||||
"create": "Crear un espai de treball",
|
||||
"hint": "espai de treball",
|
||||
"notFoundError": "No s'ha trobat l'espai de treball"
|
||||
},
|
||||
"shareAction": {
|
||||
"buttonText": "Compartir",
|
||||
"workInProgress": "Pròximament",
|
||||
"markdown": "Markdown",
|
||||
"copyLink": "Copiar l'enllaç"
|
||||
},
|
||||
"disclosureAction": {
|
||||
"rename": "Canviar el nom",
|
||||
"delete": "Eliminar",
|
||||
"duplicate": "Duplicar"
|
||||
},
|
||||
"blankPageTitle": "Pàgina en blanc",
|
||||
"newPageText": "Nova pàgina",
|
||||
"trash": {
|
||||
"text": "Paperera",
|
||||
"restoreAll": "Recuperar-ho tot",
|
||||
"deleteAll": "Eliminar-ho tot",
|
||||
"pageHeader": {
|
||||
"fileName": "Nom del fitxer",
|
||||
"lastModified": "Última modificació",
|
||||
"created": "Creat"
|
||||
}
|
||||
},
|
||||
"deletePagePrompt": {
|
||||
"text": "Aquest pàgina es troba a la paperera",
|
||||
"restore": "Recuperar-la",
|
||||
"deletePermanent": "Elimina-la"
|
||||
},
|
||||
"dialogCreatePageNameHint": "Nom de la pàgina",
|
||||
"questionBubble": {
|
||||
"whatsNew": "Què hi ha de nou?",
|
||||
"help": "Ajuda i Suport",
|
||||
"debug": {
|
||||
"name": "Informació de depuració",
|
||||
"success": "S'ha copiat la informació de depuració!",
|
||||
"fail": "No es pot copiar la informació de depuració"
|
||||
}
|
||||
},
|
||||
"menuAppHeader": {
|
||||
"addPageTooltip": "Afegeix ràpidament una pàgina dins",
|
||||
"defaultNewPageName": "Sense títol",
|
||||
"renameDialog": "Canviar el nom"
|
||||
},
|
||||
"toolbar": {
|
||||
"undo": "Desfer",
|
||||
"redo": "Refer",
|
||||
"bold": "Negreta",
|
||||
"italic": "Cursiva",
|
||||
"underline": "Text subratllar",
|
||||
"strike": "Ratllat",
|
||||
"numList": "Llista numerada",
|
||||
"bulletList": "Llista de punts",
|
||||
"checkList": "Llista de comprovació",
|
||||
"inlineCode": "Inserir codi",
|
||||
"quote": "Bloc citat",
|
||||
"header": "Capçalera",
|
||||
"highlight": "Subratllar"
|
||||
},
|
||||
"tooltip": {
|
||||
"lightMode": "Canviar a mode clar",
|
||||
"darkMode": "Canviar a mode fosc"
|
||||
},
|
||||
"contactsPage": {
|
||||
"title": "Contactes",
|
||||
"whatsHappening": "Que passa aquesta setmana?",
|
||||
"addContact": "Afegir un contacte",
|
||||
"editContact": "Editar un contacte"
|
||||
},
|
||||
"button": {
|
||||
"OK": "OK",
|
||||
"Cancel": "Cancel·lar",
|
||||
"signIn": "Iniciar sessió",
|
||||
"signOut": "Tancar sessió",
|
||||
"complete": "Completar",
|
||||
"save": "Guardar"
|
||||
},
|
||||
"label": {
|
||||
"welcome": "Benvingut!",
|
||||
"firstName": "Nom",
|
||||
"middleName": "Segon Nom",
|
||||
"lastName": "Cognom",
|
||||
"stepX": "Pas {X}"
|
||||
},
|
||||
"oAuth": {
|
||||
"err": {
|
||||
"failedTitle": "No s'ha pogut connectar al teu compte.",
|
||||
"failedMsg": "Assegureu-vos que heu completat el procés d'inici de sessió al vostre navegador."
|
||||
},
|
||||
"google": {
|
||||
"title": "Iniciar sessió amb Google",
|
||||
"instruction1": "Per importar els vostres contactes de Google, haureu d'autoritzar aquesta aplicació mitjançant el vostre navegador web.",
|
||||
"instruction2": "Copia aquest codi clicant la icona o seleccionant el text:",
|
||||
"instruction3": "Navega al següent enllaç amb el teu navegador i insereix el codi anterior:",
|
||||
"instruction4": "Pressiona el botó d'avall una vegada hagis completat el registre:"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"title": "Configuració",
|
||||
"menu": {
|
||||
"appearance": "Aparença",
|
||||
"language": "Idioma",
|
||||
"open": "Obrir la configuració"
|
||||
},
|
||||
"appearance": {
|
||||
"lightLabel": "Mode Clar",
|
||||
"darkLabel": "Mode Fosc"
|
||||
}
|
||||
}
|
||||
}
|
146
frontend/app_flowy/assets/translations/de-DE.json
Normal file
146
frontend/app_flowy/assets/translations/de-DE.json
Normal file
@ -0,0 +1,146 @@
|
||||
{
|
||||
"appName": "AppFlowy",
|
||||
"defaultUsername": "Ich",
|
||||
"welcomeText": "Willkommen bei @:appName",
|
||||
"githubStarText": "GitHub Star vergeben",
|
||||
"subscribeNewsletterText": "Abonniere den Newsletter",
|
||||
"letsGoButtonText": "Los geht's",
|
||||
"title": "Titel",
|
||||
"signUp": {
|
||||
"buttonText": "Registrieren",
|
||||
"title": "Registriere dich bei @:appName",
|
||||
"getStartedText": "Erste Schritte",
|
||||
"emptyPasswordError": "Passwort darf nicht leer sein",
|
||||
"repeatPasswordEmptyError": "Passwortwiederholung darf nicht leer sein",
|
||||
"unmatchedPasswordError": "Passwörter stimmen nicht überein",
|
||||
"alreadyHaveAnAccount": "Bereits registriert?",
|
||||
"emailHint": "E-Mail",
|
||||
"passwordHint": "Passwort",
|
||||
"repeatPasswordHint": "Wiederhole Passwort"
|
||||
},
|
||||
"signIn": {
|
||||
"loginTitle": "Bei @:appName einloggen",
|
||||
"loginButtonText": "Anmelden",
|
||||
"buttonText": "Anmelden",
|
||||
"forgotPassword": "Passwort vergessen?",
|
||||
"emailHint": "E-Mail",
|
||||
"passwordHint": "Passwort",
|
||||
"dontHaveAnAccount": "Du besitzt noch kein Konto?",
|
||||
"repeatPasswordEmptyError": "Passwortwiederholung darf nicht leer sein",
|
||||
"unmatchedPasswordError": "Passwörter stimmen nicht überein"
|
||||
},
|
||||
"workspace": {
|
||||
"create": "Arbeitsbereich erstellen",
|
||||
"hint": "Arbeitsbereich",
|
||||
"notFoundError": "Arbeitsbereich nicht gefunden"
|
||||
},
|
||||
"shareAction": {
|
||||
"buttonText": "Teilen",
|
||||
"workInProgress": "Demnächst verfügbar",
|
||||
"markdown": "Markdown",
|
||||
"copyLink": "Link kopieren"
|
||||
},
|
||||
"disclosureAction": {
|
||||
"rename": "Umbenennen",
|
||||
"delete": "Löschen",
|
||||
"duplicate": "Duplizieren"
|
||||
},
|
||||
"blankPageTitle": "Leere Seite",
|
||||
"newPageText": "Neue Seite",
|
||||
"trash": {
|
||||
"text": "Papierkorb",
|
||||
"restoreAll": "Alles wiederherstellen",
|
||||
"deleteAll": "Alles löschen",
|
||||
"pageHeader": {
|
||||
"fileName": "Dateiname",
|
||||
"lastModified": "Letzte Änderung",
|
||||
"created": "Erstellt"
|
||||
}
|
||||
},
|
||||
"deletePagePrompt": {
|
||||
"text": "Diese Seite ist im Papierkorb",
|
||||
"restore": "Seite wiederherstellen",
|
||||
"deletePermanent": "Dauerhaft löschen"
|
||||
},
|
||||
"dialogCreatePageNameHint": "Seitenname",
|
||||
"questionBubble": {
|
||||
"whatsNew": "Was gibt es Neues?",
|
||||
"help": "Hilfe & Support",
|
||||
"debug": {
|
||||
"name": "Debug-Informationen",
|
||||
"success": "Debug-Informationen in die Zwischenablage kopiert!",
|
||||
"fail": "Debug-Informationen können nicht in die Zwischenablage kopiert werden"
|
||||
}
|
||||
},
|
||||
"menuAppHeader": {
|
||||
"addPageTooltip": "Schnell eine Seite innerhalb hinzufügen",
|
||||
"defaultNewPageName": "Unbenannt",
|
||||
"renameDialog": "Umbenennen"
|
||||
},
|
||||
"toolbar": {
|
||||
"undo": "Rückgängig",
|
||||
"redo": "Wiederherstellen",
|
||||
"bold": "Fett",
|
||||
"italic": "Kursiv",
|
||||
"underline": "Unterstreichen",
|
||||
"strike": "Durchstreichen",
|
||||
"numList": "Nummerierte Liste",
|
||||
"bulletList": "Aufzählung",
|
||||
"checkList": "Checkliste",
|
||||
"inlineCode": "Inline-Code",
|
||||
"quote": "Zitat",
|
||||
"header": "Überschrift",
|
||||
"highlight": "Hervorhebung"
|
||||
},
|
||||
"tooltip": {
|
||||
"lightMode": "In den hellen Modus wechseln",
|
||||
"darkMode": "In den dunklen Modus wechseln"
|
||||
},
|
||||
"contactsPage": {
|
||||
"title": "Kontakte",
|
||||
"whatsHappening": "Was geschieht diese Woche?",
|
||||
"addContact": "Kontakt hinzufügen",
|
||||
"editContact": "Kontakt bearbeiten"
|
||||
},
|
||||
"button": {
|
||||
"OK": "OK",
|
||||
"Cancel": "Abbrechen",
|
||||
"signIn": "Anmelden",
|
||||
"signOut": "Abmelden",
|
||||
"complete": "Fertig",
|
||||
"save": "Speichern"
|
||||
},
|
||||
"label": {
|
||||
"welcome": "Willkommen!",
|
||||
"firstName": "Vorname",
|
||||
"middleName": "Zweiter Vorname",
|
||||
"lastName": "Nachname",
|
||||
"stepX": "Schritt {X}"
|
||||
},
|
||||
"oAuth": {
|
||||
"err": {
|
||||
"failedTitle": "Keine Verbindung zu Ihrem Konto möglich.",
|
||||
"failedMsg": "Bitte vergewissern Sie sich, dass Sie den Anmeldevorgang in Ihrem Browser abgeschlossen haben."
|
||||
},
|
||||
"google": {
|
||||
"title": "GOOGLE ANMELDUNG",
|
||||
"instruction1": "Um Ihre Google-Kontakte zu importieren, müssen Sie diese Anwendung über Ihren Webbrowser autorisieren.",
|
||||
"instruction2": "Kopieren Sie diesen Code in Ihre Zwischenablage, indem Sie auf das Symbol klicken oder den Text auswählen:",
|
||||
"instruction3": "Rufen Sie den folgenden Link in Ihrem Webbrowser auf, und geben Sie den obigen Code ein:",
|
||||
"instruction4": "Klicken Sie unten auf die Schaltfläche, wenn Sie die Anmeldung abgeschlossen haben:"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"title": "Einstellungen",
|
||||
"menu": {
|
||||
"appearance": "Aussehen",
|
||||
"language": "Sprache",
|
||||
"open": "Einstellungen öffnen"
|
||||
},
|
||||
"appearance": {
|
||||
"lightLabel": "Heller Modus",
|
||||
"darkLabel": "Dunkler Modus"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,75 +1,75 @@
|
||||
{
|
||||
"appName": "AppFlowy",
|
||||
"defaultUsername": "Moi",
|
||||
"welcomeText": "Bienvenu à @:appName",
|
||||
"githubStarText": "Favorier sur GitHub",
|
||||
"welcomeText": "Bienvenue sur @:appName",
|
||||
"githubStarText": "Favoriser sur GitHub",
|
||||
"subscribeNewsletterText": "Abonnez-vous à notre courriel",
|
||||
"letsGoButtonText": "Allons-y",
|
||||
"title": "Titre",
|
||||
"signUp": {
|
||||
"buttonText": "S'abonner",
|
||||
"title": "S'abonner à @:appName",
|
||||
"buttonText": "S'inscrire",
|
||||
"title": "S'inscrire à @:appName",
|
||||
"getStartedText": "Commencer",
|
||||
"emptyPasswordError": "Mot de passe ne doit pas être vide",
|
||||
"emptyPasswordError": "Vous n'avez pas saisi votre mot de passe",
|
||||
"repeatPasswordEmptyError": "Mot de passe ne doit pas être vide",
|
||||
"unmatchedPasswordError": "Les mots de pass ne concordent pas",
|
||||
"unmatchedPasswordError": "Les deux mots de passe ne sont pas identiques",
|
||||
"alreadyHaveAnAccount": "Avez-vous déjà un compte?",
|
||||
"emailHint": "courriel",
|
||||
"passwordHint": "Mot de passe",
|
||||
"repeatPasswordHint": "Resaisir le mot de passe"
|
||||
"repeatPasswordHint": "Ressaisir votre mot de passe"
|
||||
},
|
||||
"signIn": {
|
||||
"loginTitle": "Se connecter à @:appName",
|
||||
"loginTitle": "Connexion à @:appName",
|
||||
"loginButtonText": "Connexion",
|
||||
"buttonText": "Connexion",
|
||||
"buttonText": "Se connecter",
|
||||
"forgotPassword": "Mot de passe oublié?",
|
||||
"emailHint": "courriel",
|
||||
"passwordHint": "Mot de passe",
|
||||
"dontHaveAnAccount": "Vous n'avez pas de compte?",
|
||||
"repeatPasswordEmptyError": "Mot de passe ne doit pas être vide",
|
||||
"unmatchedPasswordError": "Les mots de passe ne concordent pas"
|
||||
"unmatchedPasswordError": "Les deux mots de passe ne sont pas identiques"
|
||||
},
|
||||
"workspace": {
|
||||
"create": "Créer une espace de travail",
|
||||
"hint": "espace de travail",
|
||||
"notFoundError": "Espace de travail non trouvé"
|
||||
"create": "Créer un espace de travail",
|
||||
"hint": "Espace de travail",
|
||||
"notFoundError": "Espace de travail introuvable"
|
||||
},
|
||||
"shareAction": {
|
||||
"buttonText": "Partager",
|
||||
"workInProgress": "Bientôt disponible",
|
||||
"markdown": "Markdown",
|
||||
"copyLink": "Copier le liens"
|
||||
"copyLink": "Copier le lien"
|
||||
},
|
||||
"disclosureAction": {
|
||||
"rename": "Renommer",
|
||||
"delete": "Supprimer",
|
||||
"duplicate": "Dupliquer"
|
||||
},
|
||||
"blankPageTitle": "Page vide",
|
||||
"blankPageTitle": "Page vierge",
|
||||
"newPageText": "Nouvelle page",
|
||||
"trash": {
|
||||
"text": "Poubelle",
|
||||
"text": "Corbeille",
|
||||
"restoreAll": "Tout récupérer",
|
||||
"deleteAll": "Tout supprimer",
|
||||
"pageHeader": {
|
||||
"fileName": "Nom de fichier",
|
||||
"lastModified": "Dernière modification",
|
||||
"created": "Crée"
|
||||
"created": "Créé"
|
||||
}
|
||||
},
|
||||
"deletePagePrompt": {
|
||||
"text": "Cette page est dans la poubelle",
|
||||
"text": "Cette page est dans la corbeille",
|
||||
"restore": "Récupérer la page",
|
||||
"deletePermanent": "Supprimer en permanence"
|
||||
"deletePermanent": "Supprimer définitivement"
|
||||
},
|
||||
"dialogCreatePageNameHint": "Nom de la page",
|
||||
"questionBubble": {
|
||||
"whatsNew": "Quoi de neuf?",
|
||||
"help": "Aide & Support Technique",
|
||||
"whatsNew": "Nouveautés",
|
||||
"help": "Aide et Support Technique",
|
||||
"debug": {
|
||||
"name": "Info du système",
|
||||
"name": "Infos du système",
|
||||
"success": "Info copié!",
|
||||
"fail": "Incapable de copié l'info"
|
||||
"fail": "Impossible de copier l'info"
|
||||
}
|
||||
},
|
||||
"menuAppHeader": {
|
||||
@ -79,67 +79,67 @@
|
||||
},
|
||||
"toolbar": {
|
||||
"undo": "Annuler",
|
||||
"redo": "Refaire",
|
||||
"redo": "Rétablir",
|
||||
"bold": "Gras",
|
||||
"italic": "Italique",
|
||||
"underline": "Souligné",
|
||||
"underline": "Souligner",
|
||||
"strike": "Barré",
|
||||
"numList": "Liste numérotée",
|
||||
"bulletList": "Liste à puces",
|
||||
"checkList": "Liste de contrôle",
|
||||
"inlineCode": "Code en ligne",
|
||||
"quote": "Citation",
|
||||
"header": "en-tête",
|
||||
"header": "En-tête",
|
||||
"highlight": "Surligner"
|
||||
},
|
||||
"tooltip": {
|
||||
"lightMode": "Aller en mode claire",
|
||||
"darkMode": "Aller en mode foncé"
|
||||
"lightMode": "Passer en mode clair",
|
||||
"darkMode": "Passer en mode sombre"
|
||||
},
|
||||
"contactsPage": {
|
||||
"title": "Contacts",
|
||||
"whatsHappening": "Quoi de neuf?",
|
||||
"addContact": "Ajouter Contact",
|
||||
"editContact": "Éditer Contact"
|
||||
"addContact": "Ajouter un contact",
|
||||
"editContact": "Modifier le contact"
|
||||
},
|
||||
"button": {
|
||||
"OK": "OK",
|
||||
"Cancel": "Annuler",
|
||||
"signIn": "Connecter",
|
||||
"signOut": "Déconnecter",
|
||||
"complete": "Complêt",
|
||||
"signIn": "Se connecter",
|
||||
"signOut": "Se déconnecter",
|
||||
"complete": "Achevé",
|
||||
"save": "Sauvegarder"
|
||||
},
|
||||
"label": {
|
||||
"welcome": "Bienvenu!",
|
||||
"welcome": "Bienvenue!",
|
||||
"firstName": "Prénom",
|
||||
"middleName": "Nom",
|
||||
"middleName": "Deuxième nom",
|
||||
"lastName": "Nom de famille",
|
||||
"stepX": "Étape {X}"
|
||||
},
|
||||
"oAuth": {
|
||||
"err": {
|
||||
"failedTitle": "Incapable de connecter à votre compte.",
|
||||
"failedTitle": "Incapable de se connecter à votre compte.",
|
||||
"failedMsg": "SVP vous assurrez d'avoir complèté le processus d'enregistrement dans votre fureteur."
|
||||
},
|
||||
"google": {
|
||||
"title": "S'identifier avec Google",
|
||||
"instruction1": "Pour importer vos contacts Google, vous devez autoriser cette application à l'aide de votre navigateur Web.",
|
||||
"instruction2": "Copiez ce code dans votre presse-papiers en cliquant sur l'icône ou en sélectionnant le texte :",
|
||||
"instruction3": "Accédez au lien suivant dans votre navigateur Web et saisissez le code ci-dessus :",
|
||||
"instruction4": "Appuyez sur le bouton ci-dessous lorsque vous avez terminé votre inscription :"
|
||||
"instruction2": "Copiez ce code dans votre presse-papiers en cliquant sur l'icône ou en sélectionnant le texte:",
|
||||
"instruction3": "Accédez au lien suivant dans votre navigateur Web et saisissez le code ci-dessus:",
|
||||
"instruction4": "Appuyez sur le bouton ci-dessous lorsque vous avez terminé votre inscription:"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"title": "Réglages",
|
||||
"title": "Paramètres",
|
||||
"menu": {
|
||||
"appearance": "Apparence",
|
||||
"language": "Langue",
|
||||
"open": "ouvrir les paramètres"
|
||||
"open": "Ouvrir les paramètres"
|
||||
},
|
||||
"appearance": {
|
||||
"lightLabel": "Mode claire",
|
||||
"darkLabel": "Mode foncé"
|
||||
"lightLabel": "Mode clair",
|
||||
"darkLabel": "Mode sombre"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1,44 +1,44 @@
|
||||
{
|
||||
"appName": "AppFlowy",
|
||||
"defaultUsername": "Moi",
|
||||
"welcomeText": "Bienvenue à @:appName",
|
||||
"githubStarText": "Favorier sur GitHub",
|
||||
"subscribeNewsletterText": "S'inscrire à la Bulletin",
|
||||
"welcomeText": "Bienvenue sur @:appName",
|
||||
"githubStarText": "Favoriser sur GitHub",
|
||||
"subscribeNewsletterText": "S'inscrire à la Newsletter",
|
||||
"letsGoButtonText": "Allons-y",
|
||||
"title": "Titre",
|
||||
"signUp": {
|
||||
"buttonText": "S'inscrire",
|
||||
"title": "Inscrivez-vous pour @:appName",
|
||||
"title": "Inscrivez-vous sur @:appName",
|
||||
"getStartedText": "Commencer",
|
||||
"emptyPasswordError": "Mot de passe ne peut pas être vide",
|
||||
"repeatPasswordEmptyError": "Le mot de passe de répétition ne peut pas être vide",
|
||||
"unmatchedPasswordError": "Le mot de passe de répétition n'est pas le même que le mot de passe",
|
||||
"alreadyHaveAnAccount": "Vous avez déjà un compte?",
|
||||
"emptyPasswordError": "Vous n'avez pas saisi votre mot de passe",
|
||||
"repeatPasswordEmptyError": "Vous n'avez pas ressaisi votre mot de passe",
|
||||
"unmatchedPasswordError": "Les deux mots de passe ne sont pas identiques",
|
||||
"alreadyHaveAnAccount": "Avez-vous déjà un compte ?",
|
||||
"emailHint": "Email",
|
||||
"passwordHint": "Mot de passe",
|
||||
"repeatPasswordHint": "Répéter le mot de passe"
|
||||
"repeatPasswordHint": "Ressaisir votre mot de passe"
|
||||
},
|
||||
"signIn": {
|
||||
"loginTitle": "Connexion à @:appName",
|
||||
"loginButtonText": "Connexion",
|
||||
"buttonText": "Se connecter",
|
||||
"forgotPassword": "Mot de passe oublié?",
|
||||
"forgotPassword": "Mot de passe oublié ?",
|
||||
"emailHint": "Email",
|
||||
"passwordHint": "Mot de passe",
|
||||
"dontHaveAnAccount": "Don't have an account?",
|
||||
"repeatPasswordEmptyError": "Le mot de passe de répétition ne peut pas être vide",
|
||||
"unmatchedPasswordError": "Le mot de passe de répétition n'est pas le même que le mot de passe"
|
||||
"dontHaveAnAccount": "Vous n'avez pas encore créé votre compte ?",
|
||||
"repeatPasswordEmptyError": "Vous n'avez pas ressaisi votre mot de passe",
|
||||
"unmatchedPasswordError": "Les deux mots de passe ne sont pas identiques"
|
||||
},
|
||||
"workspace": {
|
||||
"create": "Créer un espace de travail",
|
||||
"hint": "espace de travail",
|
||||
"notFoundError": "L'espace de travail pas trouvé"
|
||||
"hint": "Espace de travail",
|
||||
"notFoundError": "Espace de travail introuvable"
|
||||
},
|
||||
"shareAction": {
|
||||
"buttonText": "Partager",
|
||||
"workInProgress": "Bientôt disponible",
|
||||
"markdown": "Markdown",
|
||||
"copyLink": "Copier Lien"
|
||||
"copyLink": "Copier le lien"
|
||||
},
|
||||
"disclosureAction": {
|
||||
"rename": "Renommer",
|
||||
@ -49,16 +49,16 @@
|
||||
"newPageText": "Nouvelle page",
|
||||
"trash": {
|
||||
"text": "Corbeille",
|
||||
"restoreAll": "Restaurer Tout",
|
||||
"deleteAll": "Supprimer Tout",
|
||||
"restoreAll": "Restaurer tout",
|
||||
"deleteAll": "Supprimer tout",
|
||||
"pageHeader": {
|
||||
"fileName": "Nom de fichier",
|
||||
"lastModified": "Dernière Modification",
|
||||
"lastModified": "Dernière modification",
|
||||
"created": "Créé"
|
||||
}
|
||||
},
|
||||
"deletePagePrompt": {
|
||||
"text": "Cette page est dans la corbeille",
|
||||
"text": "Cette page a été supprimée, vous pouvez la retrouver dans la corbeille",
|
||||
"restore": "Restaurer la page",
|
||||
"deletePermanent": "Supprimer définitivement"
|
||||
},
|
||||
@ -68,8 +68,8 @@
|
||||
"help": "Aide et Support",
|
||||
"debug": {
|
||||
"name": "Informations de Débogage",
|
||||
"success": "Informations de débogage copiées dans le presse-papiers!",
|
||||
"fail": "Impossible de copier informations de débogage dans le presse-papiers"
|
||||
"success": "Informations de Débogage copiées dans le presse-papiers!",
|
||||
"fail": "Impossible de copier les informations de Débogage dans le presse-papiers"
|
||||
}
|
||||
},
|
||||
"menuAppHeader": {
|
||||
@ -84,34 +84,34 @@
|
||||
"italic": "Italique",
|
||||
"underline": "Souligner",
|
||||
"strike": "Barré",
|
||||
"numList": "Liste Numérotée",
|
||||
"bulletList": "Liste à Puces",
|
||||
"checkList": "Liste de Contrôle",
|
||||
"inlineCode": "Code en Ligne",
|
||||
"quote": "Bloc Citation",
|
||||
"numList": "Liste numérotée",
|
||||
"bulletList": "Liste à puces",
|
||||
"checkList": "To-Do List",
|
||||
"inlineCode": "Code",
|
||||
"quote": "Bloc de citation",
|
||||
"header": "En-tête",
|
||||
"highlight": "Surligner"
|
||||
},
|
||||
"tooltip": {
|
||||
"lightMode": "Passer en Mode Clair",
|
||||
"darkMode": "Passer en Mode Sombre"
|
||||
"lightMode": "Passer en mode clair",
|
||||
"darkMode": "Passer en mode sombre"
|
||||
},
|
||||
"contactsPage": {
|
||||
"title": "Contacts",
|
||||
"whatsHappening": "Que se passe-t-il cette semaine?",
|
||||
"whatsHappening": "Que se passe-t-il cette semaine ?",
|
||||
"addContact": "Ajouter un contact",
|
||||
"editContact": "Modifier le contact"
|
||||
},
|
||||
"button": {
|
||||
"OK": "OK",
|
||||
"Cancel": "Annuler",
|
||||
"signIn": "Se Connecter",
|
||||
"signOut": "Se Déconnecter",
|
||||
"complete": "Complêt",
|
||||
"signIn": "Se connecter",
|
||||
"signOut": "Se déconnecter",
|
||||
"complete": "Achevé",
|
||||
"save": "Enregistrer"
|
||||
},
|
||||
"label": {
|
||||
"welcome": "Bienvenue!",
|
||||
"welcome": "Bienvenue !",
|
||||
"firstName": "Prénom",
|
||||
"middleName": "Deuxième prénom",
|
||||
"lastName": "Nom",
|
||||
@ -135,11 +135,11 @@
|
||||
"menu": {
|
||||
"appearance": "Apparence",
|
||||
"language": "Langue",
|
||||
"open": "Ouvrir les Paramètres"
|
||||
"open": "Ouvrir les paramètres"
|
||||
},
|
||||
"appearance": {
|
||||
"lightLabel": "Mode Clair",
|
||||
"darkLabel": "Mode Sombre"
|
||||
"lightLabel": "Mode clair",
|
||||
"darkLabel": "Mode sombre"
|
||||
}
|
||||
}
|
||||
}
|
145
frontend/app_flowy/assets/translations/hu-HU.json
Normal file
145
frontend/app_flowy/assets/translations/hu-HU.json
Normal file
@ -0,0 +1,145 @@
|
||||
{
|
||||
"appName": "AppFlowy",
|
||||
"defaultUsername": "Én",
|
||||
"welcomeText": "Üdvözöl az @:appName",
|
||||
"githubStarText": "GitHub csillagozás",
|
||||
"subscribeNewsletterText": "Iratkozz fel a hírlevelünkre",
|
||||
"letsGoButtonText": "Vágjunk bele",
|
||||
"title": "Cím",
|
||||
"signUp": {
|
||||
"buttonText": "Regisztráció",
|
||||
"title": "Regisztrálj az @:appName -ra",
|
||||
"getStartedText": "Kezdés",
|
||||
"emptyPasswordError": "A jelszó nem lehet üres",
|
||||
"repeatPasswordEmptyError": "A jelszó megerősítése nem lehet üres",
|
||||
"unmatchedPasswordError": "A jelszavak nem egyeznek",
|
||||
"alreadyHaveAnAccount": "Rendelkezel már fiókkal?",
|
||||
"emailHint": "Email",
|
||||
"passwordHint": "Jelszó",
|
||||
"repeatPasswordHint": "Jelszó megerősítése"
|
||||
},
|
||||
"signIn": {
|
||||
"loginTitle": "Bejelentkezés az @:appName -ba",
|
||||
"loginButtonText": "Belépés",
|
||||
"buttonText": "Bejelentkezés",
|
||||
"forgotPassword": "Elfelejtett jelszó?",
|
||||
"emailHint": "Email",
|
||||
"passwordHint": "Jelszó",
|
||||
"dontHaveAnAccount": "Még nincs fiókod?",
|
||||
"repeatPasswordEmptyError": "A jelszó megerősítése nem lehet üres",
|
||||
"unmatchedPasswordError": "A jelszavak nem egyeznek"
|
||||
},
|
||||
"workspace": {
|
||||
"create": "Új munkaterület létrehozása",
|
||||
"hint": "munkaterület",
|
||||
"notFoundError": "munkaterület nem található"
|
||||
},
|
||||
"shareAction": {
|
||||
"buttonText": "Megosztás",
|
||||
"workInProgress": "Hamarosan érkezik...",
|
||||
"markdown": "Markdown",
|
||||
"copyLink": "Link másolása"
|
||||
},
|
||||
"disclosureAction": {
|
||||
"rename": "Átnevezés",
|
||||
"delete": "Törlés",
|
||||
"duplicate": "Duplikálás"
|
||||
},
|
||||
"blankPageTitle": "Üres oldal",
|
||||
"newPageText": "Új oldal",
|
||||
"trash": {
|
||||
"text": "Kuka",
|
||||
"restoreAll": "Összes visszaállítása",
|
||||
"deleteAll": "Összes törlése",
|
||||
"pageHeader": {
|
||||
"fileName": "Fájlnév",
|
||||
"lastModified": "Utoljára módosítva",
|
||||
"created": "Létrehozva"
|
||||
}
|
||||
},
|
||||
"deletePagePrompt": {
|
||||
"text": "Ez az oldal a kukában van",
|
||||
"restore": "Oldal visszaállítása",
|
||||
"deletePermanent": "Végleges törlés"
|
||||
},
|
||||
"dialogCreatePageNameHint": "Oldalnév",
|
||||
"questionBubble": {
|
||||
"whatsNew": "Újdonságok",
|
||||
"help": "Segítség & Támogatás",
|
||||
"debug": {
|
||||
"name": "Debug Információ",
|
||||
"success": "Debug információ a vágólapra másolva",
|
||||
"fail": "A Debug információ nem másolható a vágólapra"
|
||||
}
|
||||
},
|
||||
"menuAppHeader": {
|
||||
"addPageTooltip": "Belső oldal hozzáadása",
|
||||
"defaultNewPageName": "Névtelen",
|
||||
"renameDialog": "Átnevezés"
|
||||
},
|
||||
"toolbar": {
|
||||
"undo": "Vissza",
|
||||
"redo": "Előre",
|
||||
"bold": "Félkövér",
|
||||
"italic": "Dőlt",
|
||||
"underline": "Aláhúzott",
|
||||
"strike": "Áthúzott",
|
||||
"numList": "Számozott lista",
|
||||
"bulletList": "Felsorolás",
|
||||
"checkList": "Ellenőrző lista",
|
||||
"inlineCode": "Inline kód",
|
||||
"quote": "Idézet",
|
||||
"header": "Címsor",
|
||||
"highlight": "Kiemelés"
|
||||
},
|
||||
"tooltip": {
|
||||
"lightMode": "Világos mód",
|
||||
"darkMode": "Éjjeli mód"
|
||||
},
|
||||
"contactsPage": {
|
||||
"title": "Kontaktok",
|
||||
"whatsHappening": "Heti újdonságok",
|
||||
"addContact": "Új Kontakt",
|
||||
"editContact": "Kontakt Szerkesztése"
|
||||
},
|
||||
"button": {
|
||||
"OK": "OK",
|
||||
"Cancel": "Mégse",
|
||||
"signIn": "Bejelentkezés",
|
||||
"signOut": "Kijelentkezés",
|
||||
"complete": "Kész",
|
||||
"save": "Mentés"
|
||||
},
|
||||
"label": {
|
||||
"welcome": "Üdvözlünk!",
|
||||
"firstName": "Keresztnév",
|
||||
"middleName": "Középső név",
|
||||
"lastName": "Vezetéknév",
|
||||
"stepX": "{X}. lépés"
|
||||
},
|
||||
"oAuth": {
|
||||
"err": {
|
||||
"failedTitle": "Sikertelen bejelentkezés.",
|
||||
"failedMsg": "Kérjük győződj meg róla, hogy elvégezted a bejelentkezési folyamatot a böngésződben"
|
||||
},
|
||||
"google": {
|
||||
"title": "Bejelentkezés Google-al",
|
||||
"instruction1": "Ahhoz, hogy hozzáférj a Google Kontaktjaidhoz, kérjük hatalmazd fel ezt az alkalmazást a böngésződben.",
|
||||
"instruction2": "Másold ezt a kódot a vágólapra az ikonra kattintással vagy a szöveg kijelölésével:",
|
||||
"instruction3": "Nyisd meg ezt a linket a böngésződben, és írjd be a fenti kódot:",
|
||||
"instruction4": "Nyomd meg az alábbi gombot, ha elvégezted a registrációt:"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"title": "Beállítások",
|
||||
"menu": {
|
||||
"appearance": "Megjelenés",
|
||||
"language": "Nyelv",
|
||||
"open": "Beállítások megnyitása"
|
||||
},
|
||||
"appearance": {
|
||||
"lightLabel": "Világos mód",
|
||||
"darkLabel": "Éjjeli mód"
|
||||
}
|
||||
}
|
||||
}
|
146
frontend/app_flowy/assets/translations/pt-BR.json
Normal file
146
frontend/app_flowy/assets/translations/pt-BR.json
Normal file
@ -0,0 +1,146 @@
|
||||
{
|
||||
"appName": "AppFlowy",
|
||||
"defaultUsername": "Me",
|
||||
"welcomeText": "Bem vindo @:appName",
|
||||
"githubStarText": "Star on GitHub",
|
||||
"subscribeNewsletterText": "Se inscreva na Newsletter",
|
||||
"letsGoButtonText": "Vamos lá",
|
||||
"title": "Título",
|
||||
"signUp": {
|
||||
"buttonText": "Inscreve-se",
|
||||
"title": "Inscrever-se @:appName",
|
||||
"getStartedText": "Começar",
|
||||
"emptyPasswordError": "Senha não pode ser em branco.",
|
||||
"repeatPasswordEmptyError": "Confirmar a senha não pode ser em branco.",
|
||||
"unmatchedPasswordError": "As senhas não conferem.",
|
||||
"alreadyHaveAnAccount": "Já possui uma conta?",
|
||||
"emailHint": "Email",
|
||||
"passwordHint": "Senha",
|
||||
"repeatPasswordHint": "Confirme a senha"
|
||||
},
|
||||
"signIn": {
|
||||
"loginTitle": "Login to @:appName",
|
||||
"loginButtonText": "Login",
|
||||
"buttonText": "Entre",
|
||||
"forgotPassword": "Esqueceu a senha?",
|
||||
"emailHint": "Email",
|
||||
"passwordHint": "Senha",
|
||||
"dontHaveAnAccount": "Não possui uma conta?",
|
||||
"repeatPasswordEmptyError": "Confirmar a senha não pode ser em branco.",
|
||||
"unmatchedPasswordError": "As senhas não conferem."
|
||||
},
|
||||
"workspace": {
|
||||
"create": "Crie uma área de trabalho",
|
||||
"hint": "área de trabalho",
|
||||
"notFoundError": "Área de trabalho não encontrada"
|
||||
},
|
||||
"shareAction": {
|
||||
"buttonText": "Compartilhar",
|
||||
"workInProgress": "Em breve",
|
||||
"markdown": "Markdown",
|
||||
"copyLink": "Copiar o link"
|
||||
},
|
||||
"disclosureAction": {
|
||||
"rename": "Renomear",
|
||||
"delete": "Deletar",
|
||||
"duplicate": "Duplicar"
|
||||
},
|
||||
"blankPageTitle": "Página em branco",
|
||||
"newPageText": "Nova página",
|
||||
"trash": {
|
||||
"text": "Lixeira",
|
||||
"restoreAll": "Restaurar todos",
|
||||
"deleteAll": "Deletar todos",
|
||||
"pageHeader": {
|
||||
"fileName": "Nome do arquivo",
|
||||
"lastModified": "Última modificação",
|
||||
"created": "Criado"
|
||||
}
|
||||
},
|
||||
"deletePagePrompt": {
|
||||
"text": "Está página está na lixeira",
|
||||
"restore": "Restaurar a oágina",
|
||||
"deletePermanent": "Deletar permanentemente"
|
||||
},
|
||||
"dialogCreatePageNameHint": "Nome da página",
|
||||
"questionBubble": {
|
||||
"whatsNew": "O que há de novo?",
|
||||
"help": "Ajuda & Suporte",
|
||||
"debug": {
|
||||
"name": "Informação de debug",
|
||||
"success": "Copiar informação de debug para o clipboard!",
|
||||
"fail": "Falha em copiar a informação de debug para o clipboard"
|
||||
}
|
||||
},
|
||||
"menuAppHeader": {
|
||||
"addPageTooltip": "Adicione uma nova página.",
|
||||
"defaultNewPageName": "Sem título",
|
||||
"renameDialog": "Renomear"
|
||||
},
|
||||
"toolbar": {
|
||||
"undo": "Desfazer",
|
||||
"redo": "Refazer",
|
||||
"bold": "Negrito",
|
||||
"italic": "Itálico",
|
||||
"underline": "Sublinhado",
|
||||
"strike": "Tachado",
|
||||
"numList": "Lista numerada",
|
||||
"bulletList": "Lista com marcadores",
|
||||
"checkList": "Check List",
|
||||
"inlineCode": "Embutir código",
|
||||
"quote": "Citação em bloco",
|
||||
"header": "Cabeçalho",
|
||||
"highlight": "Realçar"
|
||||
},
|
||||
"tooltip": {
|
||||
"lightMode": "Mudar para o modo Claro.",
|
||||
"darkMode": "Mudar para o modo Escuro."
|
||||
},
|
||||
"contactsPage": {
|
||||
"title": "Contatos",
|
||||
"whatsHappening": "O que está acontecendo essa semana?",
|
||||
"addContact": "Adicionar um contato",
|
||||
"editContact": "Editar um contato"
|
||||
},
|
||||
"button": {
|
||||
"OK": "OK",
|
||||
"Cancel": "Canelar",
|
||||
"signIn": "Entrar",
|
||||
"signOut": "Sair",
|
||||
"complete": "Completar",
|
||||
"save": "Salvar"
|
||||
},
|
||||
"label": {
|
||||
"welcome": "Bem vindo!",
|
||||
"firstName": "Primeiro Nome",
|
||||
"middleName": "Nome do Meio",
|
||||
"lastName": "Último Nome",
|
||||
"stepX": "Passo {X}"
|
||||
},
|
||||
"oAuth": {
|
||||
"err": {
|
||||
"failedTitle": "Erro ao conectar a sua conta.",
|
||||
"failedMsg": "Verifique se você concluiu o processo de login em seu navegador."
|
||||
},
|
||||
"google": {
|
||||
"title": "GOOGLE SIGN-IN",
|
||||
"instruction1": "Para importar seus Contatos do Google, você precisará autorizar este aplicativo usando seu navegador web.",
|
||||
"instruction2": "Copie este código para sua área de transferência clicando no ícone ou selecionando o texto:",
|
||||
"instruction3": "Navegue até o link a seguir em seu navegador e digite o código acima:",
|
||||
"instruction4": "Pressione o botão abaixo ao concluir a inscrição:"
|
||||
}
|
||||
},
|
||||
"settings": {
|
||||
"title": "Configurações",
|
||||
"menu": {
|
||||
"appearance": "Aparência",
|
||||
"language": "Idioma",
|
||||
"open": "Abrir as Configurações"
|
||||
},
|
||||
"appearance": {
|
||||
"lightLabel": "Modo Claro",
|
||||
"darkLabel": "Modo Escuro"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -29,11 +29,15 @@ class InitAppWidgetTask extends LaunchTask {
|
||||
EasyLocalization(
|
||||
supportedLocales: const [
|
||||
// In alphabetical order
|
||||
Locale('ca', 'ES'),
|
||||
Locale('de', 'DE'),
|
||||
Locale('en'),
|
||||
Locale('es', 'VE'),
|
||||
Locale('fr'),
|
||||
Locale('fr', 'FR'),
|
||||
Locale('fr', 'CA'),
|
||||
Locale('hu', 'HU'),
|
||||
Locale('it', 'IT'),
|
||||
Locale('pt', 'BR'),
|
||||
Locale('ru', 'RU'),
|
||||
Locale('zh', 'CN'),
|
||||
],
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,890 +0,0 @@
|
||||
// coverage:ignore-file
|
||||
// GENERATED CODE - DO NOT MODIFY BY HAND
|
||||
// ignore_for_file: unused_element, deprecated_member_use, deprecated_member_use_from_same_package, use_function_type_syntax_for_parameters, unnecessary_const, avoid_init_to_null, invalid_override_different_default_values_named, prefer_expression_function_bodies, annotate_overrides, invalid_annotation_target
|
||||
|
||||
part of 'welcome_bloc.dart';
|
||||
|
||||
// **************************************************************************
|
||||
// FreezedGenerator
|
||||
// **************************************************************************
|
||||
|
||||
T _$identity<T>(T value) => value;
|
||||
|
||||
final _privateConstructorUsedError = UnsupportedError(
|
||||
'It seems like you constructed your class using `MyClass._()`. This constructor is only meant to be used by freezed and you are not supposed to need it nor use it.\nPlease check the documentation here for more informations: https://github.com/rrousselGit/freezed#custom-getters-and-methods');
|
||||
|
||||
/// @nodoc
|
||||
class _$WelcomeEventTearOff {
|
||||
const _$WelcomeEventTearOff();
|
||||
|
||||
Initial initial() {
|
||||
return const Initial();
|
||||
}
|
||||
|
||||
CreateWorkspace createWorkspace(String name, String desc) {
|
||||
return CreateWorkspace(
|
||||
name,
|
||||
desc,
|
||||
);
|
||||
}
|
||||
|
||||
OpenWorkspace openWorkspace(Workspace workspace) {
|
||||
return OpenWorkspace(
|
||||
workspace,
|
||||
);
|
||||
}
|
||||
|
||||
WorkspacesReceived workspacesReveived(
|
||||
Either<List<Workspace>, FlowyError> workspacesOrFail) {
|
||||
return WorkspacesReceived(
|
||||
workspacesOrFail,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
const $WelcomeEvent = _$WelcomeEventTearOff();
|
||||
|
||||
/// @nodoc
|
||||
mixin _$WelcomeEvent {
|
||||
@optionalTypeArgs
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() initial,
|
||||
required TResult Function(String name, String desc) createWorkspace,
|
||||
required TResult Function(Workspace workspace) openWorkspace,
|
||||
required TResult Function(
|
||||
Either<List<Workspace>, FlowyError> workspacesOrFail)
|
||||
workspacesReveived,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
TResult? whenOrNull<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function(String name, String desc)? createWorkspace,
|
||||
TResult Function(Workspace workspace)? openWorkspace,
|
||||
TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
|
||||
workspacesReveived,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function(String name, String desc)? createWorkspace,
|
||||
TResult Function(Workspace workspace)? openWorkspace,
|
||||
TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
|
||||
workspacesReveived,
|
||||
required TResult orElse(),
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
TResult map<TResult extends Object?>({
|
||||
required TResult Function(Initial value) initial,
|
||||
required TResult Function(CreateWorkspace value) createWorkspace,
|
||||
required TResult Function(OpenWorkspace value) openWorkspace,
|
||||
required TResult Function(WorkspacesReceived value) workspacesReveived,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
TResult? mapOrNull<TResult extends Object?>({
|
||||
TResult Function(Initial value)? initial,
|
||||
TResult Function(CreateWorkspace value)? createWorkspace,
|
||||
TResult Function(OpenWorkspace value)? openWorkspace,
|
||||
TResult Function(WorkspacesReceived value)? workspacesReveived,
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
@optionalTypeArgs
|
||||
TResult maybeMap<TResult extends Object?>({
|
||||
TResult Function(Initial value)? initial,
|
||||
TResult Function(CreateWorkspace value)? createWorkspace,
|
||||
TResult Function(OpenWorkspace value)? openWorkspace,
|
||||
TResult Function(WorkspacesReceived value)? workspacesReveived,
|
||||
required TResult orElse(),
|
||||
}) =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class $WelcomeEventCopyWith<$Res> {
|
||||
factory $WelcomeEventCopyWith(
|
||||
WelcomeEvent value, $Res Function(WelcomeEvent) then) =
|
||||
_$WelcomeEventCopyWithImpl<$Res>;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$WelcomeEventCopyWithImpl<$Res> implements $WelcomeEventCopyWith<$Res> {
|
||||
_$WelcomeEventCopyWithImpl(this._value, this._then);
|
||||
|
||||
final WelcomeEvent _value;
|
||||
// ignore: unused_field
|
||||
final $Res Function(WelcomeEvent) _then;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class $InitialCopyWith<$Res> {
|
||||
factory $InitialCopyWith(Initial value, $Res Function(Initial) then) =
|
||||
_$InitialCopyWithImpl<$Res>;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$InitialCopyWithImpl<$Res> extends _$WelcomeEventCopyWithImpl<$Res>
|
||||
implements $InitialCopyWith<$Res> {
|
||||
_$InitialCopyWithImpl(Initial _value, $Res Function(Initial) _then)
|
||||
: super(_value, (v) => _then(v as Initial));
|
||||
|
||||
@override
|
||||
Initial get _value => super._value as Initial;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
class _$Initial implements Initial {
|
||||
const _$Initial();
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'WelcomeEvent.initial()';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) || (other is Initial);
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode => runtimeType.hashCode;
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() initial,
|
||||
required TResult Function(String name, String desc) createWorkspace,
|
||||
required TResult Function(Workspace workspace) openWorkspace,
|
||||
required TResult Function(
|
||||
Either<List<Workspace>, FlowyError> workspacesOrFail)
|
||||
workspacesReveived,
|
||||
}) {
|
||||
return initial();
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult? whenOrNull<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function(String name, String desc)? createWorkspace,
|
||||
TResult Function(Workspace workspace)? openWorkspace,
|
||||
TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
|
||||
workspacesReveived,
|
||||
}) {
|
||||
return initial?.call();
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function(String name, String desc)? createWorkspace,
|
||||
TResult Function(Workspace workspace)? openWorkspace,
|
||||
TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
|
||||
workspacesReveived,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (initial != null) {
|
||||
return initial();
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult map<TResult extends Object?>({
|
||||
required TResult Function(Initial value) initial,
|
||||
required TResult Function(CreateWorkspace value) createWorkspace,
|
||||
required TResult Function(OpenWorkspace value) openWorkspace,
|
||||
required TResult Function(WorkspacesReceived value) workspacesReveived,
|
||||
}) {
|
||||
return initial(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult? mapOrNull<TResult extends Object?>({
|
||||
TResult Function(Initial value)? initial,
|
||||
TResult Function(CreateWorkspace value)? createWorkspace,
|
||||
TResult Function(OpenWorkspace value)? openWorkspace,
|
||||
TResult Function(WorkspacesReceived value)? workspacesReveived,
|
||||
}) {
|
||||
return initial?.call(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeMap<TResult extends Object?>({
|
||||
TResult Function(Initial value)? initial,
|
||||
TResult Function(CreateWorkspace value)? createWorkspace,
|
||||
TResult Function(OpenWorkspace value)? openWorkspace,
|
||||
TResult Function(WorkspacesReceived value)? workspacesReveived,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (initial != null) {
|
||||
return initial(this);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
}
|
||||
|
||||
abstract class Initial implements WelcomeEvent {
|
||||
const factory Initial() = _$Initial;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class $CreateWorkspaceCopyWith<$Res> {
|
||||
factory $CreateWorkspaceCopyWith(
|
||||
CreateWorkspace value, $Res Function(CreateWorkspace) then) =
|
||||
_$CreateWorkspaceCopyWithImpl<$Res>;
|
||||
$Res call({String name, String desc});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$CreateWorkspaceCopyWithImpl<$Res>
|
||||
extends _$WelcomeEventCopyWithImpl<$Res>
|
||||
implements $CreateWorkspaceCopyWith<$Res> {
|
||||
_$CreateWorkspaceCopyWithImpl(
|
||||
CreateWorkspace _value, $Res Function(CreateWorkspace) _then)
|
||||
: super(_value, (v) => _then(v as CreateWorkspace));
|
||||
|
||||
@override
|
||||
CreateWorkspace get _value => super._value as CreateWorkspace;
|
||||
|
||||
@override
|
||||
$Res call({
|
||||
Object? name = freezed,
|
||||
Object? desc = freezed,
|
||||
}) {
|
||||
return _then(CreateWorkspace(
|
||||
name == freezed
|
||||
? _value.name
|
||||
: name // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
desc == freezed
|
||||
? _value.desc
|
||||
: desc // ignore: cast_nullable_to_non_nullable
|
||||
as String,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
class _$CreateWorkspace implements CreateWorkspace {
|
||||
const _$CreateWorkspace(this.name, this.desc);
|
||||
|
||||
@override
|
||||
final String name;
|
||||
@override
|
||||
final String desc;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'WelcomeEvent.createWorkspace(name: $name, desc: $desc)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other is CreateWorkspace &&
|
||||
(identical(other.name, name) ||
|
||||
const DeepCollectionEquality().equals(other.name, name)) &&
|
||||
(identical(other.desc, desc) ||
|
||||
const DeepCollectionEquality().equals(other.desc, desc)));
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
runtimeType.hashCode ^
|
||||
const DeepCollectionEquality().hash(name) ^
|
||||
const DeepCollectionEquality().hash(desc);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
$CreateWorkspaceCopyWith<CreateWorkspace> get copyWith =>
|
||||
_$CreateWorkspaceCopyWithImpl<CreateWorkspace>(this, _$identity);
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() initial,
|
||||
required TResult Function(String name, String desc) createWorkspace,
|
||||
required TResult Function(Workspace workspace) openWorkspace,
|
||||
required TResult Function(
|
||||
Either<List<Workspace>, FlowyError> workspacesOrFail)
|
||||
workspacesReveived,
|
||||
}) {
|
||||
return createWorkspace(name, desc);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult? whenOrNull<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function(String name, String desc)? createWorkspace,
|
||||
TResult Function(Workspace workspace)? openWorkspace,
|
||||
TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
|
||||
workspacesReveived,
|
||||
}) {
|
||||
return createWorkspace?.call(name, desc);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function(String name, String desc)? createWorkspace,
|
||||
TResult Function(Workspace workspace)? openWorkspace,
|
||||
TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
|
||||
workspacesReveived,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (createWorkspace != null) {
|
||||
return createWorkspace(name, desc);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult map<TResult extends Object?>({
|
||||
required TResult Function(Initial value) initial,
|
||||
required TResult Function(CreateWorkspace value) createWorkspace,
|
||||
required TResult Function(OpenWorkspace value) openWorkspace,
|
||||
required TResult Function(WorkspacesReceived value) workspacesReveived,
|
||||
}) {
|
||||
return createWorkspace(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult? mapOrNull<TResult extends Object?>({
|
||||
TResult Function(Initial value)? initial,
|
||||
TResult Function(CreateWorkspace value)? createWorkspace,
|
||||
TResult Function(OpenWorkspace value)? openWorkspace,
|
||||
TResult Function(WorkspacesReceived value)? workspacesReveived,
|
||||
}) {
|
||||
return createWorkspace?.call(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeMap<TResult extends Object?>({
|
||||
TResult Function(Initial value)? initial,
|
||||
TResult Function(CreateWorkspace value)? createWorkspace,
|
||||
TResult Function(OpenWorkspace value)? openWorkspace,
|
||||
TResult Function(WorkspacesReceived value)? workspacesReveived,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (createWorkspace != null) {
|
||||
return createWorkspace(this);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
}
|
||||
|
||||
abstract class CreateWorkspace implements WelcomeEvent {
|
||||
const factory CreateWorkspace(String name, String desc) = _$CreateWorkspace;
|
||||
|
||||
String get name => throw _privateConstructorUsedError;
|
||||
String get desc => throw _privateConstructorUsedError;
|
||||
@JsonKey(ignore: true)
|
||||
$CreateWorkspaceCopyWith<CreateWorkspace> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class $OpenWorkspaceCopyWith<$Res> {
|
||||
factory $OpenWorkspaceCopyWith(
|
||||
OpenWorkspace value, $Res Function(OpenWorkspace) then) =
|
||||
_$OpenWorkspaceCopyWithImpl<$Res>;
|
||||
$Res call({Workspace workspace});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$OpenWorkspaceCopyWithImpl<$Res> extends _$WelcomeEventCopyWithImpl<$Res>
|
||||
implements $OpenWorkspaceCopyWith<$Res> {
|
||||
_$OpenWorkspaceCopyWithImpl(
|
||||
OpenWorkspace _value, $Res Function(OpenWorkspace) _then)
|
||||
: super(_value, (v) => _then(v as OpenWorkspace));
|
||||
|
||||
@override
|
||||
OpenWorkspace get _value => super._value as OpenWorkspace;
|
||||
|
||||
@override
|
||||
$Res call({
|
||||
Object? workspace = freezed,
|
||||
}) {
|
||||
return _then(OpenWorkspace(
|
||||
workspace == freezed
|
||||
? _value.workspace
|
||||
: workspace // ignore: cast_nullable_to_non_nullable
|
||||
as Workspace,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
class _$OpenWorkspace implements OpenWorkspace {
|
||||
const _$OpenWorkspace(this.workspace);
|
||||
|
||||
@override
|
||||
final Workspace workspace;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'WelcomeEvent.openWorkspace(workspace: $workspace)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other is OpenWorkspace &&
|
||||
(identical(other.workspace, workspace) ||
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.workspace, workspace)));
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
runtimeType.hashCode ^ const DeepCollectionEquality().hash(workspace);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
$OpenWorkspaceCopyWith<OpenWorkspace> get copyWith =>
|
||||
_$OpenWorkspaceCopyWithImpl<OpenWorkspace>(this, _$identity);
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() initial,
|
||||
required TResult Function(String name, String desc) createWorkspace,
|
||||
required TResult Function(Workspace workspace) openWorkspace,
|
||||
required TResult Function(
|
||||
Either<List<Workspace>, FlowyError> workspacesOrFail)
|
||||
workspacesReveived,
|
||||
}) {
|
||||
return openWorkspace(workspace);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult? whenOrNull<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function(String name, String desc)? createWorkspace,
|
||||
TResult Function(Workspace workspace)? openWorkspace,
|
||||
TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
|
||||
workspacesReveived,
|
||||
}) {
|
||||
return openWorkspace?.call(workspace);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function(String name, String desc)? createWorkspace,
|
||||
TResult Function(Workspace workspace)? openWorkspace,
|
||||
TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
|
||||
workspacesReveived,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (openWorkspace != null) {
|
||||
return openWorkspace(workspace);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult map<TResult extends Object?>({
|
||||
required TResult Function(Initial value) initial,
|
||||
required TResult Function(CreateWorkspace value) createWorkspace,
|
||||
required TResult Function(OpenWorkspace value) openWorkspace,
|
||||
required TResult Function(WorkspacesReceived value) workspacesReveived,
|
||||
}) {
|
||||
return openWorkspace(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult? mapOrNull<TResult extends Object?>({
|
||||
TResult Function(Initial value)? initial,
|
||||
TResult Function(CreateWorkspace value)? createWorkspace,
|
||||
TResult Function(OpenWorkspace value)? openWorkspace,
|
||||
TResult Function(WorkspacesReceived value)? workspacesReveived,
|
||||
}) {
|
||||
return openWorkspace?.call(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeMap<TResult extends Object?>({
|
||||
TResult Function(Initial value)? initial,
|
||||
TResult Function(CreateWorkspace value)? createWorkspace,
|
||||
TResult Function(OpenWorkspace value)? openWorkspace,
|
||||
TResult Function(WorkspacesReceived value)? workspacesReveived,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (openWorkspace != null) {
|
||||
return openWorkspace(this);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
}
|
||||
|
||||
abstract class OpenWorkspace implements WelcomeEvent {
|
||||
const factory OpenWorkspace(Workspace workspace) = _$OpenWorkspace;
|
||||
|
||||
Workspace get workspace => throw _privateConstructorUsedError;
|
||||
@JsonKey(ignore: true)
|
||||
$OpenWorkspaceCopyWith<OpenWorkspace> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class $WorkspacesReceivedCopyWith<$Res> {
|
||||
factory $WorkspacesReceivedCopyWith(
|
||||
WorkspacesReceived value, $Res Function(WorkspacesReceived) then) =
|
||||
_$WorkspacesReceivedCopyWithImpl<$Res>;
|
||||
$Res call({Either<List<Workspace>, FlowyError> workspacesOrFail});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$WorkspacesReceivedCopyWithImpl<$Res>
|
||||
extends _$WelcomeEventCopyWithImpl<$Res>
|
||||
implements $WorkspacesReceivedCopyWith<$Res> {
|
||||
_$WorkspacesReceivedCopyWithImpl(
|
||||
WorkspacesReceived _value, $Res Function(WorkspacesReceived) _then)
|
||||
: super(_value, (v) => _then(v as WorkspacesReceived));
|
||||
|
||||
@override
|
||||
WorkspacesReceived get _value => super._value as WorkspacesReceived;
|
||||
|
||||
@override
|
||||
$Res call({
|
||||
Object? workspacesOrFail = freezed,
|
||||
}) {
|
||||
return _then(WorkspacesReceived(
|
||||
workspacesOrFail == freezed
|
||||
? _value.workspacesOrFail
|
||||
: workspacesOrFail // ignore: cast_nullable_to_non_nullable
|
||||
as Either<List<Workspace>, FlowyError>,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
class _$WorkspacesReceived implements WorkspacesReceived {
|
||||
const _$WorkspacesReceived(this.workspacesOrFail);
|
||||
|
||||
@override
|
||||
final Either<List<Workspace>, FlowyError> workspacesOrFail;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'WelcomeEvent.workspacesReveived(workspacesOrFail: $workspacesOrFail)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other is WorkspacesReceived &&
|
||||
(identical(other.workspacesOrFail, workspacesOrFail) ||
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.workspacesOrFail, workspacesOrFail)));
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
runtimeType.hashCode ^
|
||||
const DeepCollectionEquality().hash(workspacesOrFail);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
$WorkspacesReceivedCopyWith<WorkspacesReceived> get copyWith =>
|
||||
_$WorkspacesReceivedCopyWithImpl<WorkspacesReceived>(this, _$identity);
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult when<TResult extends Object?>({
|
||||
required TResult Function() initial,
|
||||
required TResult Function(String name, String desc) createWorkspace,
|
||||
required TResult Function(Workspace workspace) openWorkspace,
|
||||
required TResult Function(
|
||||
Either<List<Workspace>, FlowyError> workspacesOrFail)
|
||||
workspacesReveived,
|
||||
}) {
|
||||
return workspacesReveived(workspacesOrFail);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult? whenOrNull<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function(String name, String desc)? createWorkspace,
|
||||
TResult Function(Workspace workspace)? openWorkspace,
|
||||
TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
|
||||
workspacesReveived,
|
||||
}) {
|
||||
return workspacesReveived?.call(workspacesOrFail);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeWhen<TResult extends Object?>({
|
||||
TResult Function()? initial,
|
||||
TResult Function(String name, String desc)? createWorkspace,
|
||||
TResult Function(Workspace workspace)? openWorkspace,
|
||||
TResult Function(Either<List<Workspace>, FlowyError> workspacesOrFail)?
|
||||
workspacesReveived,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (workspacesReveived != null) {
|
||||
return workspacesReveived(workspacesOrFail);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult map<TResult extends Object?>({
|
||||
required TResult Function(Initial value) initial,
|
||||
required TResult Function(CreateWorkspace value) createWorkspace,
|
||||
required TResult Function(OpenWorkspace value) openWorkspace,
|
||||
required TResult Function(WorkspacesReceived value) workspacesReveived,
|
||||
}) {
|
||||
return workspacesReveived(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult? mapOrNull<TResult extends Object?>({
|
||||
TResult Function(Initial value)? initial,
|
||||
TResult Function(CreateWorkspace value)? createWorkspace,
|
||||
TResult Function(OpenWorkspace value)? openWorkspace,
|
||||
TResult Function(WorkspacesReceived value)? workspacesReveived,
|
||||
}) {
|
||||
return workspacesReveived?.call(this);
|
||||
}
|
||||
|
||||
@override
|
||||
@optionalTypeArgs
|
||||
TResult maybeMap<TResult extends Object?>({
|
||||
TResult Function(Initial value)? initial,
|
||||
TResult Function(CreateWorkspace value)? createWorkspace,
|
||||
TResult Function(OpenWorkspace value)? openWorkspace,
|
||||
TResult Function(WorkspacesReceived value)? workspacesReveived,
|
||||
required TResult orElse(),
|
||||
}) {
|
||||
if (workspacesReveived != null) {
|
||||
return workspacesReveived(this);
|
||||
}
|
||||
return orElse();
|
||||
}
|
||||
}
|
||||
|
||||
abstract class WorkspacesReceived implements WelcomeEvent {
|
||||
const factory WorkspacesReceived(
|
||||
Either<List<Workspace>, FlowyError> workspacesOrFail) =
|
||||
_$WorkspacesReceived;
|
||||
|
||||
Either<List<Workspace>, FlowyError> get workspacesOrFail =>
|
||||
throw _privateConstructorUsedError;
|
||||
@JsonKey(ignore: true)
|
||||
$WorkspacesReceivedCopyWith<WorkspacesReceived> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$WelcomeStateTearOff {
|
||||
const _$WelcomeStateTearOff();
|
||||
|
||||
_WelcomeState call(
|
||||
{required bool isLoading,
|
||||
required List<Workspace> workspaces,
|
||||
required Either<Unit, FlowyError> successOrFailure}) {
|
||||
return _WelcomeState(
|
||||
isLoading: isLoading,
|
||||
workspaces: workspaces,
|
||||
successOrFailure: successOrFailure,
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
const $WelcomeState = _$WelcomeStateTearOff();
|
||||
|
||||
/// @nodoc
|
||||
mixin _$WelcomeState {
|
||||
bool get isLoading => throw _privateConstructorUsedError;
|
||||
List<Workspace> get workspaces => throw _privateConstructorUsedError;
|
||||
Either<Unit, FlowyError> get successOrFailure =>
|
||||
throw _privateConstructorUsedError;
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
$WelcomeStateCopyWith<WelcomeState> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class $WelcomeStateCopyWith<$Res> {
|
||||
factory $WelcomeStateCopyWith(
|
||||
WelcomeState value, $Res Function(WelcomeState) then) =
|
||||
_$WelcomeStateCopyWithImpl<$Res>;
|
||||
$Res call(
|
||||
{bool isLoading,
|
||||
List<Workspace> workspaces,
|
||||
Either<Unit, FlowyError> successOrFailure});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class _$WelcomeStateCopyWithImpl<$Res> implements $WelcomeStateCopyWith<$Res> {
|
||||
_$WelcomeStateCopyWithImpl(this._value, this._then);
|
||||
|
||||
final WelcomeState _value;
|
||||
// ignore: unused_field
|
||||
final $Res Function(WelcomeState) _then;
|
||||
|
||||
@override
|
||||
$Res call({
|
||||
Object? isLoading = freezed,
|
||||
Object? workspaces = freezed,
|
||||
Object? successOrFailure = freezed,
|
||||
}) {
|
||||
return _then(_value.copyWith(
|
||||
isLoading: isLoading == freezed
|
||||
? _value.isLoading
|
||||
: isLoading // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
workspaces: workspaces == freezed
|
||||
? _value.workspaces
|
||||
: workspaces // ignore: cast_nullable_to_non_nullable
|
||||
as List<Workspace>,
|
||||
successOrFailure: successOrFailure == freezed
|
||||
? _value.successOrFailure
|
||||
: successOrFailure // ignore: cast_nullable_to_non_nullable
|
||||
as Either<Unit, FlowyError>,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
abstract class _$WelcomeStateCopyWith<$Res>
|
||||
implements $WelcomeStateCopyWith<$Res> {
|
||||
factory _$WelcomeStateCopyWith(
|
||||
_WelcomeState value, $Res Function(_WelcomeState) then) =
|
||||
__$WelcomeStateCopyWithImpl<$Res>;
|
||||
@override
|
||||
$Res call(
|
||||
{bool isLoading,
|
||||
List<Workspace> workspaces,
|
||||
Either<Unit, FlowyError> successOrFailure});
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
class __$WelcomeStateCopyWithImpl<$Res> extends _$WelcomeStateCopyWithImpl<$Res>
|
||||
implements _$WelcomeStateCopyWith<$Res> {
|
||||
__$WelcomeStateCopyWithImpl(
|
||||
_WelcomeState _value, $Res Function(_WelcomeState) _then)
|
||||
: super(_value, (v) => _then(v as _WelcomeState));
|
||||
|
||||
@override
|
||||
_WelcomeState get _value => super._value as _WelcomeState;
|
||||
|
||||
@override
|
||||
$Res call({
|
||||
Object? isLoading = freezed,
|
||||
Object? workspaces = freezed,
|
||||
Object? successOrFailure = freezed,
|
||||
}) {
|
||||
return _then(_WelcomeState(
|
||||
isLoading: isLoading == freezed
|
||||
? _value.isLoading
|
||||
: isLoading // ignore: cast_nullable_to_non_nullable
|
||||
as bool,
|
||||
workspaces: workspaces == freezed
|
||||
? _value.workspaces
|
||||
: workspaces // ignore: cast_nullable_to_non_nullable
|
||||
as List<Workspace>,
|
||||
successOrFailure: successOrFailure == freezed
|
||||
? _value.successOrFailure
|
||||
: successOrFailure // ignore: cast_nullable_to_non_nullable
|
||||
as Either<Unit, FlowyError>,
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/// @nodoc
|
||||
|
||||
class _$_WelcomeState implements _WelcomeState {
|
||||
const _$_WelcomeState(
|
||||
{required this.isLoading,
|
||||
required this.workspaces,
|
||||
required this.successOrFailure});
|
||||
|
||||
@override
|
||||
final bool isLoading;
|
||||
@override
|
||||
final List<Workspace> workspaces;
|
||||
@override
|
||||
final Either<Unit, FlowyError> successOrFailure;
|
||||
|
||||
@override
|
||||
String toString() {
|
||||
return 'WelcomeState(isLoading: $isLoading, workspaces: $workspaces, successOrFailure: $successOrFailure)';
|
||||
}
|
||||
|
||||
@override
|
||||
bool operator ==(dynamic other) {
|
||||
return identical(this, other) ||
|
||||
(other is _WelcomeState &&
|
||||
(identical(other.isLoading, isLoading) ||
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.isLoading, isLoading)) &&
|
||||
(identical(other.workspaces, workspaces) ||
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.workspaces, workspaces)) &&
|
||||
(identical(other.successOrFailure, successOrFailure) ||
|
||||
const DeepCollectionEquality()
|
||||
.equals(other.successOrFailure, successOrFailure)));
|
||||
}
|
||||
|
||||
@override
|
||||
int get hashCode =>
|
||||
runtimeType.hashCode ^
|
||||
const DeepCollectionEquality().hash(isLoading) ^
|
||||
const DeepCollectionEquality().hash(workspaces) ^
|
||||
const DeepCollectionEquality().hash(successOrFailure);
|
||||
|
||||
@JsonKey(ignore: true)
|
||||
@override
|
||||
_$WelcomeStateCopyWith<_WelcomeState> get copyWith =>
|
||||
__$WelcomeStateCopyWithImpl<_WelcomeState>(this, _$identity);
|
||||
}
|
||||
|
||||
abstract class _WelcomeState implements WelcomeState {
|
||||
const factory _WelcomeState(
|
||||
{required bool isLoading,
|
||||
required List<Workspace> workspaces,
|
||||
required Either<Unit, FlowyError> successOrFailure}) = _$_WelcomeState;
|
||||
|
||||
@override
|
||||
bool get isLoading => throw _privateConstructorUsedError;
|
||||
@override
|
||||
List<Workspace> get workspaces => throw _privateConstructorUsedError;
|
||||
@override
|
||||
Either<Unit, FlowyError> get successOrFailure =>
|
||||
throw _privateConstructorUsedError;
|
||||
@override
|
||||
@JsonKey(ignore: true)
|
||||
_$WelcomeStateCopyWith<_WelcomeState> get copyWith =>
|
||||
throw _privateConstructorUsedError;
|
||||
}
|
@ -114,7 +114,7 @@ class _DeltaVisitor implements ast.NodeVisitor {
|
||||
// TODO(kolja): Determine which behavior we really want here.
|
||||
// We can either insert an additional newline or just have the
|
||||
// paragraphs as single lines. Zefyr will by default render two lines
|
||||
// are different paragraphs so for now we will not add an additonal
|
||||
// are different paragraphs so for now we will not add an additional
|
||||
// newline here.
|
||||
//
|
||||
// if (previousToplevelElement != null &&
|
||||
|
@ -154,7 +154,7 @@ abstract class InlineSyntax {
|
||||
|
||||
/// Tries to match at the parser's current position.
|
||||
///
|
||||
/// The parser's position can be overriden with [startMatchPos].
|
||||
/// The parser's position can be overridden with [startMatchPos].
|
||||
/// Returns whether or not the pattern successfully matched.
|
||||
bool tryMatch(InlineParser parser, [int? startMatchPos]) {
|
||||
startMatchPos ??= parser.pos;
|
||||
@ -609,7 +609,7 @@ class LinkSyntax extends TagSyntax {
|
||||
//
|
||||
// Once we have parsed `Text [`, there is one (pending) link in the state
|
||||
// stack. It is, by default, active. Once we parse the next possible link,
|
||||
// `[more](links)`, as a real link, we must deactive the pending links (just
|
||||
// `[more](links)`, as a real link, we must deactivate the pending links (just
|
||||
// the one, in this case).
|
||||
var _pendingStatesAreActive = true;
|
||||
|
||||
@ -933,7 +933,7 @@ class LinkSyntax extends TagSyntax {
|
||||
// followed by mystery characters; no longer a link.
|
||||
return null;
|
||||
}
|
||||
// [_parseTitle] made sure the title was follwed by a closing `)`
|
||||
// [_parseTitle] made sure the title was followed by a closing `)`
|
||||
// (but it's up to the code here to examine the balance of
|
||||
// parentheses).
|
||||
parenCount--;
|
||||
|
@ -75,7 +75,7 @@ class HomeMenu extends StatelessWidget {
|
||||
}
|
||||
|
||||
Widget _renderBody(BuildContext context) {
|
||||
// nested cloumn: https://siddharthmolleti.com/flutter-box-constraints-nested-column-s-row-s-3dfacada7361
|
||||
// nested column: https://siddharthmolleti.com/flutter-box-constraints-nested-column-s-row-s-3dfacada7361
|
||||
final theme = context.watch<AppTheme>();
|
||||
return Container(
|
||||
color: theme.bg1,
|
||||
|
@ -35,7 +35,7 @@ class Config {
|
||||
/// Can be smaller due to screen size and amount of columns
|
||||
final double emojiSizeMax;
|
||||
|
||||
/// Verical spacing between emojis
|
||||
/// Vertical spacing between emojis
|
||||
final double verticalSpacing;
|
||||
|
||||
/// Horizontal spacing between emojis
|
||||
@ -57,7 +57,7 @@ class Config {
|
||||
/// The color of the category icon when selected
|
||||
final Color iconColorSelected;
|
||||
|
||||
/// The color of the loading indicator during initalization
|
||||
/// The color of the loading indicator during initialization
|
||||
final Color progressIndicatorColor;
|
||||
|
||||
/// The color of the backspace icon button
|
||||
|
@ -40,7 +40,7 @@ enum Category {
|
||||
/// Travel emojis
|
||||
TRAVEL,
|
||||
|
||||
/// Ojects emojis
|
||||
/// Objects emojis
|
||||
OBJECTS,
|
||||
|
||||
/// Sumbol emojis
|
||||
@ -179,7 +179,7 @@ class _EmojiPickerState extends State<EmojiPicker> {
|
||||
};
|
||||
}
|
||||
|
||||
// Initalize emoji data
|
||||
// Initialize emoji data
|
||||
Future<void> _updateEmojis() async {
|
||||
categoryEmoji.clear();
|
||||
if (widget.config.showRecentsTab) {
|
||||
|
@ -4,7 +4,7 @@ import 'config.dart';
|
||||
import 'emoji_view_state.dart';
|
||||
|
||||
/// Template class for custom implementation
|
||||
/// Inhert this class to create your own EmojiPicker
|
||||
/// Inherit this class to create your own EmojiPicker
|
||||
abstract class EmojiPickerBuilder extends StatefulWidget {
|
||||
/// Constructor
|
||||
const EmojiPickerBuilder(this.config, this.state, {Key? key}) : super(key: key);
|
||||
|
@ -9,14 +9,27 @@ String languageFromLocale(Locale locale) {
|
||||
return "简体中文";
|
||||
|
||||
// Then in alphabetical order
|
||||
case "ca":
|
||||
return "Català";
|
||||
case "de":
|
||||
return "Deutsch";
|
||||
case "es":
|
||||
return "Español";
|
||||
case "fr":
|
||||
return "Français";
|
||||
switch (locale.countryCode) {
|
||||
case "CA":
|
||||
return "Français (CA)";
|
||||
case "FR":
|
||||
return "Français (FR)";
|
||||
default:
|
||||
return locale.languageCode;
|
||||
}
|
||||
case "hu":
|
||||
return "Magyar";
|
||||
case "it":
|
||||
return "Italiano";
|
||||
case "pt":
|
||||
return "Português";
|
||||
case "ru":
|
||||
return "русский";
|
||||
|
||||
|
@ -18,10 +18,10 @@ abstract class FlowyInfraUIPlatform extends PlatformInterface {
|
||||
}
|
||||
|
||||
Stream<bool> get onKeyboardVisibilityChange {
|
||||
throw UnimplementedError('`onKeyboardChange` should be overrided by subclass.');
|
||||
throw UnimplementedError('`onKeyboardChange` should be overridden by subclass.');
|
||||
}
|
||||
|
||||
Future<String?> getPlatformVersion() {
|
||||
throw UnimplementedError('`getPlatformVersion` should be overrided by subclass.');
|
||||
throw UnimplementedError('`getPlatformVersion` should be overridden by subclass.');
|
||||
}
|
||||
}
|
||||
|
@ -37,7 +37,7 @@ enum OverlapBehaviour {
|
||||
/// Maintain overlay size, which may cover the anchor widget.
|
||||
none,
|
||||
|
||||
/// Resize overlay to avoid overlaping the anchor widget.
|
||||
/// Resize overlay to avoid overlapping the anchor widget.
|
||||
stretch,
|
||||
}
|
||||
|
||||
|
@ -82,7 +82,7 @@
|
||||
});
|
||||
|
||||
// If service worker doesn't succeed in a reasonable amount of time,
|
||||
// fallback to plaint <script> tag.
|
||||
// fallback to plain <script> tag.
|
||||
setTimeout(() => {
|
||||
if (!scriptLoaded) {
|
||||
console.warn(
|
||||
|
@ -4,11 +4,11 @@
|
||||
mod errors;
|
||||
pub use errors::*;
|
||||
|
||||
mod user_setting;
|
||||
pub use user_setting::*;
|
||||
|
||||
mod user_profile;
|
||||
pub use user_profile::*;
|
||||
|
||||
mod auth;
|
||||
pub use auth::*;
|
||||
|
||||
mod user_setting;
|
||||
pub use user_setting::*;
|
||||
|
Loading…
Reference in New Issue
Block a user