Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5cf3a365de | ||
|
|
4af02cdc87 | ||
|
|
bbe886fcdd | ||
|
|
f0f10b05f4 | ||
|
|
b5a1ccb4ee | ||
|
|
148f268923 | ||
|
|
1ed3d5439b | ||
|
|
2e00509ebb | ||
|
|
41ca1dd8ee |
No files matched your search
+305
@@ -1,4 +1,309 @@
|
||||
# Release Notes
|
||||
## Version 0.11.4 – 09/03/2026
|
||||
### Desktop
|
||||
#### New Features
|
||||
- Notification System: In-app notification center to track mentions, reminders, and activity updates
|
||||
- Revamped Slash Menu: Redesigned `/` command menu with improved layout and discoverability
|
||||
- Editor Block Spacing: Optimize spacing between blocks in the document editor
|
||||
|
||||
#### Bug Fixes
|
||||
- Fixed row document issues
|
||||
- Fixed bulk delete not working correctly
|
||||
- Fixed connection check causing unnecessary errors
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- Notification System: In-app notification center to track mentions, reminders, and activity updates
|
||||
- Revamped Slash Menu: Redesigned `/` command menu with improved layout and discoverability
|
||||
- Editor Block Spacing: Optimize spacing between blocks in the document editor
|
||||
|
||||
#### Bug Fixes
|
||||
- Fixed mobile block selection disappearing
|
||||
- Fixed select-all behavior with Gboard on Android
|
||||
- Fixed duplicate column names when creating board groups
|
||||
|
||||
## Version 0.11.3 – 25/02/2026
|
||||
### Desktop
|
||||
#### Bug Fixes
|
||||
- Fixed the space dropdown menu not displaying correctly
|
||||
- Fixed relation filter not applying correctly in advanced filter scenarios
|
||||
- Fixed the disconnect banner not refreshing properly
|
||||
|
||||
### Mobile
|
||||
#### Bug Fixes
|
||||
- Fixed losing focus after typing the first character in a text cell
|
||||
- Fixed FCM blocking the main app on startup
|
||||
|
||||
## Version 0.11.2 – 14/02/2026
|
||||
### Desktop
|
||||
#### New Features
|
||||
- New Database View: Feed view
|
||||
- AI Transcript & Meeting Blocks: Automatic speaker name guessing, referenced AI summaries, and meeting detection from Google Meet and Slack
|
||||
- Google Drive Block: Embed and select Google Drive files via link or connected account
|
||||
|
||||
#### Bug Fixes
|
||||
- File Block: Display upload progress during file uploads
|
||||
- Image Upload: Improved upload indicator and instant image caching
|
||||
- Unsplash Cover Image: Improved preview and keyboard navigation
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- New Database View: Feed view
|
||||
- Google Drive Block: Embed and select Google Drive files via link or connected account
|
||||
|
||||
#### Bug Fixes
|
||||
- File Block: Display upload progress during file uploads
|
||||
- Image Upload: Improved upload indicator and instant image caching
|
||||
|
||||
## Version 0.11.1 – 28/01/2026
|
||||
### Desktop
|
||||
#### New Features
|
||||
- New Database Views: Gallery, List, and Chart views
|
||||
- Grouping in a Grid (Table) view: Group by allows you to organize database entries into collapsible sections based on property values (e.g., Status, Priority)
|
||||
- Multi-row actions: Allows for powerful multi-row (bulk) actions within databases to edit, delete, or duplicate all at once
|
||||
- Database advanced filters: Useful when combining AND logic and OR logic in your filter
|
||||
- Number property new formats: Comma separated and percent
|
||||
- Export as PDF: Export a single page as .PDF
|
||||
- Database Cover Images: Added support for cover images to enhance visual representation
|
||||
- AI Transcript & Meeting Notes: Use the mention person type for task assignees in the action items of the AI summary
|
||||
|
||||
#### Bug Fixes
|
||||
- Enhanced playback experience for video blocks
|
||||
- Resolved issue with inline mention styles not matching block text styles
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- New Database Views: Gallery, List, and Chart views
|
||||
|
||||
#### Bug Fixes
|
||||
- Improved playback experience for video blocks
|
||||
- Fixed issue with inline mention styles not matching block text styles
|
||||
|
||||
## Version 0.11.0 – 12/01/2026
|
||||
### Desktop
|
||||
#### Bug Fixes
|
||||
- Fixed row detail page button style not following theme changes
|
||||
- Fixed target limit not being removed when creating two-way relation field
|
||||
- Improved speaker selector menu UI style in the transcript tab of AI meeting block
|
||||
|
||||
## Version 0.10.9 – 09/01/2026
|
||||
### Desktop
|
||||
#### New Features
|
||||
- Database Rollup: A powerful property used to retrieve and aggregate information from items in a related database
|
||||
- Database search: Search names of database pages, as well as property values (such as a status of "In progress") and content inside database pages
|
||||
- AI Transcript with auto speaker identification: Upload an audio file to generate transcriptions with speaker labels. You can assign or change speaker names
|
||||
- AI Meeting Notes with auto speaker identification: Real-time transcription during meetings with automatic speaker label detection after recording stops. You can assign or change speaker names
|
||||
- Mermaid diagram support: Add diagrams directly in Code blocks with split, preview, and code display modes, plus an expandable view
|
||||
- Top nav bar breadcrumb revamp: Refreshed design with improved layout
|
||||
- Document and database cover reposition: Reposition cover images for the best display
|
||||
|
||||
#### Bug Fixes
|
||||
- Fixed various database issues to improve stability and performance
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- AI Transcript with auto speaker identification: Upload an audio file to generate transcriptions with speaker labels. You can assign or change speaker names
|
||||
- Mermaid diagram support: Add diagrams directly in Code blocks with split, preview, and code display modes, plus an expandable view
|
||||
|
||||
#### Bug Fixes
|
||||
- Fixed various database issues to improve stability and performance
|
||||
|
||||
## Version 0.10.8 – 22/12/2025
|
||||
### Desktop
|
||||
#### Bug Fixes
|
||||
- Grid sort order preserved after edits — Editing a row no longer moves it to the bottom of a sorted Grid
|
||||
- Delete banner for databases — Grid, Board, and Calendar now show restore/delete banner when deleted
|
||||
- Timestamp field conversion — Converting Created time or Last modified to Text/Date no longer loses values
|
||||
- Unicode string sorting — Sorting now handles accented characters and special symbols correctly
|
||||
- Kanban filter fix — Filters now apply correctly to items added after view creation
|
||||
|
||||
### Mobile
|
||||
#### Bug Fixes
|
||||
- Grid sort order preserved after edits — Editing a row no longer moves it to the bottom of a sorted Grid
|
||||
- Timestamp field conversion — Converting Created time or Last modified to Text/Date no longer loses values
|
||||
- Unicode string sorting — Sorting now handles accented characters and special symbols correctly
|
||||
- Kanban filter fix — Filters now apply correctly to items added after view creation
|
||||
|
||||
## Version 0.10.7 – 19/12/2025
|
||||
### Desktop
|
||||
#### New Features
|
||||
- AI Meeting Notes Block: Supports real-time transcription on macOS and Windows. AI will turn everything into a clean, share-ready summary
|
||||
- Database Two-way Relations: Automatically sync connected data between databases, ensuring that information added in one place instantly appears in the other
|
||||
- Video Block: Upload or embed video files, then view and interact with them directly inside your document
|
||||
- Audio Block: Upload or embed audio files, then view and interact with them directly inside your document
|
||||
- Callout Block: Supports removing the callout icon
|
||||
- Table of Contents Block: Supports collapsing/uncollapsing the content
|
||||
|
||||
#### Bug Fixes
|
||||
- Fixed various issues related to database views, including sorting, filtering, counting, syncing, and layouts
|
||||
- Fixed various issues related to the linked views of databases
|
||||
- Fixed database issues related to date formats, file name display, view tabs, horizontal scroll, and Relation property performance
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- Video Block: Upload or embed video files, then view and interact with them directly inside your document
|
||||
- Audio Block: Upload or embed audio files, then view and interact with them directly inside your document
|
||||
- Callout Block: Supports removing the callout icon
|
||||
- Table of Contents Block: Supports collapsing/uncollapsing the content
|
||||
|
||||
#### Bug Fixes
|
||||
- Fixed various issues related to database views, including sorting, filtering, counting, syncing, and layouts
|
||||
- Fixed various issues related to the linked views of databases
|
||||
- Fixed database issues related to date formats, file name display, view tabs, horizontal scroll, and Relation property performance
|
||||
|
||||
## Version 0.10.6 – 05/12/2025
|
||||
### Desktop
|
||||
#### Bug Fixes
|
||||
- Fixed issues related to the duplicated databases
|
||||
- Fixed an issue where the Chinese (Simplified) and Chinese (Traditional) language options were not being saved properly in the summary language of the AI meeting block
|
||||
|
||||
### Mobile
|
||||
#### Bug Fixes
|
||||
- Fixed issues related to the duplicated databases
|
||||
|
||||
## Version 0.10.5 – 02/12/2025
|
||||
### Desktop
|
||||
#### New Features
|
||||
- AI Transcript Block: Turn audio and video recordings into ready-to-share notes with AI Transcribe. Easily use our rich-text editing features to refine both the AI transcription and summary. Perfect for work, school, or personal projects
|
||||
- PDF Block: Upload or embed PDF files, then view and interact with them directly inside your document
|
||||
- Improved Image Block: Supported new features such as captions, embedded external or page links, saving images, and replacing images with more polished visuals and interactions
|
||||
- Self-hosted: Enabled custom namespaces, fixed issues with inviting members via link, and removed Pro plan banners that were intended for the managed cloud version
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- PDF Block: Upload or embed PDF files, then view and interact with them directly inside your document
|
||||
- Improved Image Block: Supported new features such as captions, embedded external or page links, saving images, and replacing images—with more polished visuals and interactions
|
||||
- Self-hosted: Fixed issues with inviting members via link, and removed Pro plan banners that were intended for the managed cloud version
|
||||
|
||||
## Version 0.10.4 – 14/11/2025
|
||||
### Desktop
|
||||
#### New Features
|
||||
- Revamped the Math Equation block with an easier-to-use UX and new features: multiline equations, more environment variables, inline math equation markdown support, and Ask AI
|
||||
- Revamped the Toggle List block with an improved UI and bug fixes
|
||||
- Revamped the right-click Context Menu with a more polished UI and new features: Paste as plain text and Ask AI
|
||||
|
||||
#### Bug Fixes
|
||||
- Fixed issues related to the Math Equation and Toggle List blocks
|
||||
- Fixed issues related to the right-click Context Menu
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- Revamped the Math Equation and Toggle List blocks with improved UIs and new features
|
||||
|
||||
#### Bug Fixes
|
||||
- Fixed issues related to the Math Equation and Toggle List blocks
|
||||
|
||||
## Version 0.10.3 – 31/10/2025
|
||||
### Desktop
|
||||
#### New Features
|
||||
- Revamped the Code block with new features: pin language, caption, Ask AI, and Turn Text into Code
|
||||
- Revamped the Callout block with an improved UI and quick styles
|
||||
- Revamped the Outline block with a more polished UI and custom background colors
|
||||
- Notification Settings: enable or disable mobile push notifications
|
||||
|
||||
#### Bug Fixes
|
||||
- Fixed issues related to the Code and Callout blocks
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- Supported mobile push notifications: you'll receive a push message when you're mentioned, invited to a page, or when page permissions change
|
||||
- Revamped the Code, Callout, and Outline blocks with improved UIs and new features
|
||||
|
||||
## Version 0.10.2 – 24/10/2025
|
||||
### Desktop
|
||||
#### Bug Fixes
|
||||
- Fixed inability to import Notion zip file
|
||||
|
||||
## Version 0.10.1 – 16/10/2025
|
||||
### Desktop
|
||||
#### Bug Fixes
|
||||
- Fixed potential login token expired issue
|
||||
- Fixed inability to create Vault workspace on self-hosted servers with commercial plans
|
||||
- Fixed switching page rapidly caused the page flash
|
||||
|
||||
### Mobile
|
||||
#### Bug Fixes
|
||||
- Fixed potential login token expired issue
|
||||
|
||||
## Version 0.10.0 – 29/09/2025
|
||||
### Desktop
|
||||
#### New Features
|
||||
- Person, a new database property, lets you assign a row to one or more collaborators
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- Person, a new database property, lets you assign a row to one or more collaborators
|
||||
- iOS Share to AppFlowy: quickly save a web page with optional notes to a target AppFlowy page or database
|
||||
- Android Share to AppFlowy: quickly save a web page with optional notes to a target AppFlowy page or database
|
||||
- A new Android widget: Quick Page Access
|
||||
|
||||
## Version 0.9.9 – 11/09/2025
|
||||
### Desktop
|
||||
#### New Features
|
||||
- Workspace user profile: customize your avatar, about me, and profile card banner
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- Workspace user profile: customize your avatar, about me, and profile card banner
|
||||
- Two new Android widgets: Recent Pages and Favorites
|
||||
- A new iOS widget: Quick Page Access
|
||||
- iOS Share to AppFlowy: quickly save browser page links with optional notes to a target AppFlowy page
|
||||
|
||||
## Version 0.9.8 – 28/08/2025
|
||||
### Desktop
|
||||
#### New Features
|
||||
- Bulk add collaborators with Can view / Can edit permissions via the Share menu
|
||||
- Enable setting the start of the week to Monday to control default calendar layouts in the calendar view and date picker
|
||||
- Sync date and time formats, language, and week start day across devices under the same user account
|
||||
- Offer 10 premium Select-option colors to Pro Plan users
|
||||
- Support managing pending members via Settings → Members
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- Support iOS widgets for quick access to recent and favorite pages
|
||||
- Offer 10 premium Select option colors to Pro Plan users
|
||||
- Support managing pending members via Settings → Members
|
||||
|
||||
## Version 0.9.7 – 13/08/2025
|
||||
### Desktop
|
||||
#### New Features
|
||||
- Mention or assign persons in documents via '@' or '/'
|
||||
- Mentioned persons get notified about the mention via email
|
||||
- More colors are available for database Select options and page covers
|
||||
- Back up your AppFlowy workspace: Export your workspace as a ZIP file and import it back at any time
|
||||
- GPT-5 is now available in AppFlowy
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- Mention or assign persons in documents via '@' or '/'
|
||||
- Mentioned persons get notified about the mention via email
|
||||
- More colors are available for database Select options and page cover
|
||||
|
||||
#### Bug Fixes
|
||||
- Fixed login page UI overflow issues on small screen devices
|
||||
|
||||
## Version 0.9.6 – 05/08/2025
|
||||
|
||||
### Bug Fixes
|
||||
- Fixed some syncing issues
|
||||
- Improved the Share menu
|
||||
- Fixed some UI issues related to database filters and sorts
|
||||
|
||||
## Version 0.9.5 – 17/07/2025
|
||||
### Desktop
|
||||
#### New Features
|
||||
- Vault Workspace: A new workspace type, private and offline. AI runs locally with no data transfer. Supports switching embedding models, chatting with files (PDF, Markdown, TXT). Includes RAG search with AI-generated overviews.
|
||||
- Revamped color pickers in documents: Expanded palette with support for custom colors
|
||||
|
||||
### Mobile
|
||||
#### New Features
|
||||
- iOS In‑App Sign‑In: Sign in directly within the iOS app
|
||||
- New colors: Improved text and background color options
|
||||
|
||||
Bug Fixes
|
||||
- Add a network connection indicator
|
||||
- Fix sync bugs and issues with WebSocket connections.
|
||||
|
||||
## Version 0.9.4 – 02/07/2025
|
||||
### Desktop
|
||||
#### New Features
|
||||
|
||||
@@ -48,7 +48,7 @@ AppFlowy is the AI workspace where you achieve more without losing control of yo
|
||||
- [App Store](https://apps.apple.com/app/appflowy/id6457261352): iPhone
|
||||
- [Play Store](https://play.google.com/store/apps/details?id=io.appflowy.appflowy): Android 10 or above; ARMv7 is
|
||||
not supported
|
||||
- [Self-hosting AppFlowy](https://appflowy.com/docs/self-host-appflowy-overview)
|
||||
- [Self-hosting AppFlowy](https://appflowy.com/docs/Step-by-step-Self-Hosting-Guide---From-Zero-to-Production)
|
||||
- [Source](https://docs.appflowy.io/docs/documentation/appflowy/from-source)
|
||||
|
||||
## Built With
|
||||
|
||||
@@ -26,7 +26,7 @@ CARGO_MAKE_EXTEND_WORKSPACE_MAKEFILE = true
|
||||
CARGO_MAKE_CRATE_FS_NAME = "dart_ffi"
|
||||
CARGO_MAKE_CRATE_NAME = "dart-ffi"
|
||||
LIB_NAME = "dart_ffi"
|
||||
APPFLOWY_VERSION = "0.9.4"
|
||||
APPFLOWY_VERSION = "0.11.4"
|
||||
FLUTTER_DESKTOP_FEATURES = "dart"
|
||||
PRODUCT_NAME = "AppFlowy"
|
||||
MACOSX_DEPLOYMENT_TARGET = "11.0"
|
||||
|
||||
@@ -2,4 +2,4 @@ export 'share_access_level.dart';
|
||||
export 'share_popover_group_id.dart';
|
||||
export 'share_role.dart';
|
||||
export 'shared_user.dart';
|
||||
export 'share_section_type.dart';
|
||||
export 'share_section_type.dart';
|
||||
@@ -45,7 +45,7 @@ class ShareTabBloc extends Bloc<ShareTabEvent, ShareTabState> {
|
||||
|
||||
@override
|
||||
Future<void> close() async {
|
||||
await _folderNotificationListener?.stop();
|
||||
await _folderNotificationListener?.stop();
|
||||
await super.close();
|
||||
}
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ class MobileSearchResultCell extends StatelessWidget {
|
||||
child: BlocBuilder<ViewAncestorBloc, ViewAncestorState>(
|
||||
builder: (context, state) {
|
||||
final ancestors = state.ancestor.ancestors;
|
||||
if(ancestors.isEmpty) return const SizedBox.shrink();
|
||||
if (ancestors.isEmpty) return const SizedBox.shrink();
|
||||
List<String> displayPath = ancestors.map((e) => e.name).toList();
|
||||
if (ancestors.length > 2) {
|
||||
displayPath = [ancestors.first.name, '...', ancestors.last.name];
|
||||
|
||||
-1
@@ -121,7 +121,6 @@ class _FontFamilyDropDownState extends State<FontFamilyDropDown> {
|
||||
child: FlowyTextField(
|
||||
key: ThemeFontFamilySetting.textFieldKey,
|
||||
hintText: LocaleKeys.settings_appearance_fontFamily_search.tr(),
|
||||
autoFocus: false,
|
||||
debounceDuration: const Duration(milliseconds: 300),
|
||||
onChanged: (value) {
|
||||
setState(() {
|
||||
|
||||
+1
-1
@@ -345,7 +345,7 @@ class OutlineItemWidget extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
);
|
||||
} else {
|
||||
} else {
|
||||
children.add(
|
||||
TextSpan(
|
||||
text: text,
|
||||
|
||||
+1
@@ -133,6 +133,7 @@ class _ContinueWithPasswordPageState extends State<ContinueWithPasswordPage> {
|
||||
hintText: LocaleKeys.signIn_enterPassword.tr(),
|
||||
autoFocus: true,
|
||||
obscureText: true,
|
||||
autofillHints: const [AutofillHints.password],
|
||||
suffixIconConstraints: BoxConstraints.tightFor(
|
||||
width: iconSize + theme.spacing.m,
|
||||
height: iconSize,
|
||||
|
||||
+2
@@ -145,6 +145,7 @@ class _SetNewPasswordWidgetState extends State<SetNewPasswordWidget> {
|
||||
key: newPasswordKey,
|
||||
controller: newPasswordController,
|
||||
obscureText: true,
|
||||
autofillHints: const [AutofillHints.password],
|
||||
hintText: LocaleKeys.signIn_enterNewPassword.tr(),
|
||||
onSubmitted: (_) => _validateAndSubmit(),
|
||||
),
|
||||
@@ -160,6 +161,7 @@ class _SetNewPasswordWidgetState extends State<SetNewPasswordWidget> {
|
||||
key: confirmPasswordKey,
|
||||
controller: confirmPasswordController,
|
||||
obscureText: true,
|
||||
autofillHints: const [AutofillHints.password],
|
||||
hintText: LocaleKeys.signIn_confirmNewPassword.tr(),
|
||||
onSubmitted: (_) => _validateAndSubmit(),
|
||||
),
|
||||
|
||||
-1
@@ -25,7 +25,6 @@ class ActionNavigationBloc
|
||||
currentAction = currentAction.copyWith(arguments: {});
|
||||
}
|
||||
currentAction.arguments?.addAll({ActionArgumentKeys.view: view});
|
||||
|
||||
} else {
|
||||
Log.error('Open view failed: ${action.objectId}');
|
||||
if (showErrorToast) {
|
||||
|
||||
@@ -279,7 +279,7 @@ class SpaceBloc extends Bloc<SpaceEvent, SpaceState> {
|
||||
);
|
||||
}
|
||||
}
|
||||
afterOpen?.call();
|
||||
afterOpen?.call();
|
||||
},
|
||||
expand: (space, isExpanded) async {
|
||||
await _setSpaceExpandStatus(space, isExpanded);
|
||||
|
||||
@@ -28,6 +28,11 @@ class TabsBloc extends Bloc<TabsEvent, TabsState> {
|
||||
|
||||
late final MenuSharedState menuSharedState;
|
||||
|
||||
String? _lastOpenedPluginId;
|
||||
String? _lastOpenedViewId;
|
||||
DateTime? _lastOpenTime;
|
||||
static const _deduplicationWindow = Duration(milliseconds: 500);
|
||||
|
||||
@override
|
||||
Future<void> close() {
|
||||
state.dispose();
|
||||
@@ -73,6 +78,22 @@ class TabsBloc extends Bloc<TabsEvent, TabsState> {
|
||||
_setLatestOpenView(view);
|
||||
},
|
||||
openPlugin: (Plugin plugin, ViewPB? view, bool setLatest) {
|
||||
final now = DateTime.now();
|
||||
|
||||
// deduplicate. skip if same plugin and view were just opened
|
||||
if (_lastOpenedPluginId == plugin.id &&
|
||||
_lastOpenedViewId == view?.id &&
|
||||
_lastOpenTime != null) {
|
||||
final timeSinceLastOpen = now.difference(_lastOpenTime!);
|
||||
if (timeSinceLastOpen < _deduplicationWindow) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
_lastOpenedPluginId = plugin.id;
|
||||
_lastOpenedViewId = view?.id;
|
||||
_lastOpenTime = now;
|
||||
|
||||
state.currentPageManager
|
||||
..hideSecondaryPlugin()
|
||||
..setSecondaryPlugin(BlankPagePlugin());
|
||||
|
||||
@@ -497,6 +497,23 @@ class _SingleInnerViewItemState extends State<SingleInnerViewItem> {
|
||||
|
||||
bool isIconPickerOpened = false;
|
||||
|
||||
DateTime? _lastClickTime;
|
||||
static const _clickThrottleDuration = Duration(milliseconds: 200);
|
||||
|
||||
void _handleViewTap() {
|
||||
final now = DateTime.now();
|
||||
|
||||
if (_lastClickTime != null) {
|
||||
final timeSinceLastClick = now.difference(_lastClickTime!);
|
||||
if (timeSinceLastClick < _clickThrottleDuration) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
_lastClickTime = now;
|
||||
widget.onSelected(context, widget.view);
|
||||
}
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
bool isSelected = widget.isSelected;
|
||||
@@ -586,7 +603,7 @@ class _SingleInnerViewItemState extends State<SingleInnerViewItem> {
|
||||
|
||||
final child = GestureDetector(
|
||||
behavior: HitTestBehavior.translucent,
|
||||
onTap: () => widget.onSelected(context, widget.view),
|
||||
onTap: _handleViewTap,
|
||||
onTertiaryTapDown: (_) =>
|
||||
widget.onTertiarySelected?.call(context, widget.view),
|
||||
child: SizedBox(
|
||||
|
||||
+3
@@ -141,6 +141,7 @@ class _ChangePasswordDialogContentState
|
||||
.tr(),
|
||||
keyboardType: TextInputType.visiblePassword,
|
||||
obscureText: true,
|
||||
autofillHints: const [AutofillHints.password],
|
||||
suffixIconConstraints: BoxConstraints.tightFor(
|
||||
width: iconSize + theme.spacing.m,
|
||||
height: iconSize,
|
||||
@@ -173,6 +174,7 @@ class _ChangePasswordDialogContentState
|
||||
.tr(),
|
||||
keyboardType: TextInputType.visiblePassword,
|
||||
obscureText: true,
|
||||
autofillHints: const [AutofillHints.password],
|
||||
suffixIconConstraints: BoxConstraints.tightFor(
|
||||
width: iconSize + theme.spacing.m,
|
||||
height: iconSize,
|
||||
@@ -205,6 +207,7 @@ class _ChangePasswordDialogContentState
|
||||
.tr(),
|
||||
keyboardType: TextInputType.visiblePassword,
|
||||
obscureText: true,
|
||||
autofillHints: const [AutofillHints.password],
|
||||
suffixIconConstraints: BoxConstraints.tightFor(
|
||||
width: iconSize + theme.spacing.m,
|
||||
height: iconSize,
|
||||
|
||||
+2
@@ -136,6 +136,7 @@ class _SetupPasswordDialogContentState
|
||||
.tr(),
|
||||
keyboardType: TextInputType.visiblePassword,
|
||||
obscureText: true,
|
||||
autofillHints: const [AutofillHints.password],
|
||||
suffixIconConstraints: BoxConstraints.tightFor(
|
||||
width: iconSize + theme.spacing.m,
|
||||
height: iconSize,
|
||||
@@ -168,6 +169,7 @@ class _SetupPasswordDialogContentState
|
||||
.tr(),
|
||||
keyboardType: TextInputType.visiblePassword,
|
||||
obscureText: true,
|
||||
autofillHints: const [AutofillHints.password],
|
||||
suffixIconConstraints: BoxConstraints.tightFor(
|
||||
width: iconSize + theme.spacing.m,
|
||||
height: iconSize,
|
||||
|
||||
+5
@@ -34,6 +34,7 @@ class AFTextField extends StatefulWidget {
|
||||
this.focusNode,
|
||||
this.readOnly = false,
|
||||
this.maxLength,
|
||||
this.autofillHints,
|
||||
});
|
||||
|
||||
/// The hint text to display when the text field is empty.
|
||||
@@ -87,6 +88,9 @@ class AFTextField extends StatefulWidget {
|
||||
/// The maximum length of the text field.
|
||||
final int? maxLength;
|
||||
|
||||
/// The autofill hints for password managers.
|
||||
final Iterable<String>? autofillHints;
|
||||
|
||||
@override
|
||||
State<AFTextField> createState() => _AFTextFieldState();
|
||||
}
|
||||
@@ -205,6 +209,7 @@ class _AFTextFieldState extends AFTextFieldState {
|
||||
suffixIcon: widget.suffixIconBuilder?.call(context, isObscured),
|
||||
suffixIconConstraints: widget.suffixIconConstraints,
|
||||
),
|
||||
autofillHints: widget.autofillHints,
|
||||
);
|
||||
|
||||
if (hasError && errorText.isNotEmpty) {
|
||||
|
||||
@@ -1078,7 +1078,7 @@ packages:
|
||||
source: hosted
|
||||
version: "0.1.8"
|
||||
html:
|
||||
dependency: transitive
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: html
|
||||
sha256: "1fc58edeaec4307368c60d59b7e15b9d658b57d7f3125098b6294153c75337ec"
|
||||
|
||||
@@ -4,7 +4,7 @@ description: Bring projects, wikis, and teams together with AI. AppFlowy is an
|
||||
your data. The best open source alternative to Notion.
|
||||
publish_to: "none"
|
||||
|
||||
version: 0.9.4
|
||||
version: 0.11.4
|
||||
|
||||
environment:
|
||||
flutter: ">=3.27.4"
|
||||
@@ -151,6 +151,7 @@ dependencies:
|
||||
|
||||
analyzer: 6.11.0
|
||||
|
||||
html: any
|
||||
dev_dependencies:
|
||||
# Introduce talker to log the bloc events, and only log the events in the development mode
|
||||
|
||||
|
||||
@@ -2368,11 +2368,11 @@
|
||||
"layoutDateField": "تقويم التخطيط بواسطة",
|
||||
"changeLayoutDateField": "تغيير حقل التخطيط",
|
||||
"noDateTitle": "بدون تاريخ",
|
||||
"noDateHint": "ستظهر الأحداث غير المجدولة هنا",
|
||||
"unscheduledEventsTitle": "الأحداث غير المجدولة",
|
||||
"clickToAdd": "انقر للإضافة إلى التقويم",
|
||||
"name": "تخطيط التقويم",
|
||||
"clickToOpen": "انقر لفتح السجل"
|
||||
"clickToOpen": "انقر لفتح السجل",
|
||||
"noDateHint": "ستظهر الأحداث غير المجدولة هنا"
|
||||
},
|
||||
"referencedCalendarPrefix": "نظرا ل",
|
||||
"quickJumpYear": "انتقل إلى",
|
||||
|
||||
@@ -635,7 +635,7 @@
|
||||
"logoutLabel": "Log out"
|
||||
},
|
||||
"isUpToDate": "@:appName is up to date!",
|
||||
"officialVersion": "Version {version} (官方構建)"
|
||||
"officialVersion": "Version {version} (Official build)"
|
||||
},
|
||||
"workspacePage": {
|
||||
"menuLabel": "Workspace",
|
||||
@@ -3465,4 +3465,4 @@
|
||||
"shareSection": {
|
||||
"shared": "Shared with me"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -48,6 +48,7 @@
|
||||
"createAccount": "Créer un compte",
|
||||
"repeatPasswordEmptyError": "Vous n'avez pas ressaisi votre mot de passe",
|
||||
"unmatchedPasswordError": "Les deux mots de passe ne sont pas identiques",
|
||||
"passwordMustContain": "Votre mot de passe doit contenir au moins une lettre, un chiffre et un symbole",
|
||||
"syncPromptMessage": "La synchronisation des données peut prendre un certain temps. Merci de ne pas fermer pas cette page.",
|
||||
"or": "OU",
|
||||
"signInWithGoogle": "Continuer avec Google",
|
||||
@@ -77,6 +78,7 @@
|
||||
"temporaryVerificationLinkSent": "Un lien de vérification temporaire a été envoyé.\nVeuillez vérifier votre boîte de réception sur",
|
||||
"temporaryVerificationCodeSent": "Un code de vérification temporaire a été envoyé.\nVeuillez vérifier votre boîte de réception sur",
|
||||
"continueToSignIn": "Continuer à se connecter",
|
||||
"continueWithLoginCode": "Continuer avec vos identifiants",
|
||||
"backToLogin": "Retour à la connexion",
|
||||
"enterCode": "Entrez le code",
|
||||
"enterCodeManually": "Entrez le code manuellement",
|
||||
@@ -86,6 +88,25 @@
|
||||
"invalidVerificationCode": "Veuillez saisir un code de vérification valide",
|
||||
"tooFrequentVerificationCodeRequest": "Vous avez fait trop de demandes. Veuillez réessayer plus tard.",
|
||||
"invalidLoginCredentials": "Votre mot de passe est incorrect, veuillez réessayer",
|
||||
"resetPassword": "Réinitialiser le mot de passe",
|
||||
"resetPasswordDescription": "Entrer votre courriel pour réinitialiser votre mot de passe",
|
||||
"continueToResetPassword": "Continuer pour réinitialiser le mot de passe",
|
||||
"resetPasswordSuccess": "Le mot de passe a été réinitialisé avec succès",
|
||||
"resetPasswordFailed": "Échec de la réinitialisation du mot de passe",
|
||||
"resetPasswordLinkSent": "Un mail permettant de réinitialiser le mot de passe a été envoyé à votre adresse.",
|
||||
"resetPasswordLinkExpired": "Ce lien de renouvellement de mot de passe est obsolète. Veuillez redemander un lien de réinitialisation.",
|
||||
"resetPasswordLinkInvalid": "Ce lien de renouvellement de mot de passe est erroné. Veuillez redemander un lien de réinitialisation.",
|
||||
"enterNewPasswordFor": "Entrez votre nouveau mot de passe",
|
||||
"newPassword": "Nouveau mot de passe",
|
||||
"enterNewPassword": "Entrer votre nouveau mot de passe",
|
||||
"confirmPassword": "Confirmer votre mot de passe",
|
||||
"confirmNewPassword": "Confirmer votre nouveau mot de passe",
|
||||
"newPasswordCannotBeEmpty": "Le champ \"nouveau mot de passe\" ne peut pas être laissé vide.",
|
||||
"confirmPasswordCannotBeEmpty": "Le champ \"confirmation du nouveau mot de passe\" ne peut pas être laissé vide.",
|
||||
"passwordsDoNotMatch": "Le mot de passe et sa confirmation ne correspondent pas.",
|
||||
"verifying": "En cours de vérification",
|
||||
"youAreInLocalMode": "Vous êtes en mode local",
|
||||
"loginToAppFlowyCloud": "Connexion au nuage d'AppFlowy",
|
||||
"anonymous": "Anonyme",
|
||||
"LogInWithGoogle": "Se connecter avec Google",
|
||||
"LogInWithGithub": "Se connecter avec Github",
|
||||
@@ -552,6 +573,9 @@
|
||||
"selectHomePage": "Sélectionnez une page",
|
||||
"clearHomePage": "Effacer la page d'accueil pour cet espace",
|
||||
"customUrl": "URL personnalisée",
|
||||
"homePage": {
|
||||
"upgradeToPro": "Passez à la formule pro pour désigner une page d'accueil"
|
||||
},
|
||||
"namespace": {
|
||||
"description": "Ce changement s'appliquera à toutes les pages publiées en direct sur cet espace",
|
||||
"tooltip": "Nous nous réservons le droit de supprimer tout espace inapproprié",
|
||||
@@ -880,6 +904,7 @@
|
||||
"aiSettingsDescription": "Choisissez votre modèle préféré pour alimenter AppFlowy AI. Inclut désormais GPT 4-o, Claude 3,5, Llama 3.1 et Mistral 7B",
|
||||
"loginToEnableAIFeature": "Les fonctionnalités d'IA sont accessibles uniquement après s'être connecté avec @:appName Cloud. Pour créer un compte @:appName, voir dans la rubrique 'Mon Compte'.",
|
||||
"llmModel": "Modèle de langage",
|
||||
"readOnlyField": "Ce champ est en lecture seule",
|
||||
"llmModelType": "Type de modèle de langue",
|
||||
"downloadLLMPrompt": "Télécharger {}",
|
||||
"downloadAppFlowyOfflineAI": "Le téléchargement du package hors ligne AI permettra à AI de fonctionner sur votre appareil. Voulez-vous continuer ?",
|
||||
@@ -1063,6 +1088,7 @@
|
||||
"itemSeven": "Images IA",
|
||||
"itemFileUpload": "Téléchargements de fichiers",
|
||||
"customNamespace": "Nom d'espace personnalisé",
|
||||
"tooltipFive": "Collaborer sur des pages spécifiques avec des personnes qui ne sont pas membres",
|
||||
"tooltipSix": "La durée de vie signifie que le nombre de réponses n'est jamais réinitialisé",
|
||||
"intelligentSearch": "Recherche intelligente",
|
||||
"tooltipSeven": "Vous permet de personnaliser une partie de l'URL de votre espace de travail",
|
||||
@@ -1075,6 +1101,7 @@
|
||||
"itemFour": "Oui",
|
||||
"itemFive": "Oui",
|
||||
"itemSix": "10 à vie",
|
||||
"itemSeven": "à vie",
|
||||
"itemFileUpload": "Jusqu'à 7 Mo",
|
||||
"intelligentSearch": "Recherche intelligente"
|
||||
},
|
||||
@@ -1375,7 +1402,11 @@
|
||||
"resetInviteLinkFailed": "Échec de la réinitialisation du lien d'invitation",
|
||||
"resetInviteLinkFailedDescription": "Veuillez réessayer plus tard",
|
||||
"memberPageDescription1": "Accéder au",
|
||||
"memberPageDescription2": "pour la gestion des invités et des utilisateurs avancés."
|
||||
"memberPageDescription2": "pour la gestion des invités et des utilisateurs avancés.",
|
||||
"noInviteLink": "Vous n'avez pas généré de lien d'invitation pour le moment",
|
||||
"copyLink": "Copier le lien",
|
||||
"generatedLinkSuccessfully": "Lien généré avec succès",
|
||||
"generatedLinkFailed": "Échec de génération du lien"
|
||||
}
|
||||
},
|
||||
"files": {
|
||||
|
||||
@@ -36,6 +36,9 @@
|
||||
"loginButtonText": "Login",
|
||||
"loginStartWithAnonymous": "Inizia con una sessione anonima",
|
||||
"continueAnonymousUser": "Continua con una sessione anonima",
|
||||
"continueWithLocalModel": "Continua con il modello locale",
|
||||
"switchToAppFlowyCloud": "AppFlowy Cloud",
|
||||
"anonymousMode": "Modalità anonima",
|
||||
"buttonText": "Accedi",
|
||||
"signingInText": "Accesso in corso...",
|
||||
"forgotPassword": "Password Dimentica?",
|
||||
@@ -45,11 +48,14 @@
|
||||
"createAccount": "Crea account",
|
||||
"repeatPasswordEmptyError": "La password ripetuta non può essere vuota",
|
||||
"unmatchedPasswordError": "La password ripetuta non è uguale alla password",
|
||||
"passwordMustContain": "La password deve contenere almeno una lettera, un numero e un simbolo.",
|
||||
"syncPromptMessage": "La sincronizzazione dei dati potrebbe richiedere del tempo. Per favore, non chiudere questa pagina",
|
||||
"or": "O",
|
||||
"signInWithGoogle": "Continua con Google",
|
||||
"signInWithGithub": "Continua con Github",
|
||||
"signInWithDiscord": "Continua con Discord",
|
||||
"signInWithApple": "Continua con Apple",
|
||||
"continueAnotherWay": "Continua in un altro modo",
|
||||
"signUpWithGoogle": "Registrati con Google",
|
||||
"signUpWithGithub": "Registrati con Github",
|
||||
"signUpWithDiscord": "Registrati con Discord",
|
||||
@@ -66,6 +72,42 @@
|
||||
"generalError": "Qualcosa è andato storto. Per favore, riprova più tardi",
|
||||
"limitRateError": "Per ragioni di sicurezza, puoi richiedere un link magico ogni 60 secondi",
|
||||
"magicLinkSentDescription": "Un Link Magico è stato inviato alla tua email. Clicca il link per completare il tuo accesso. Il link scadrà dopo 5 minuti.",
|
||||
"tokenHasExpiredOrInvalid": "Il codice è scaduto o non è valido. Riprova.",
|
||||
"signingIn": "Accesso in corso...",
|
||||
"checkYourEmail": "Controlla la tua posta elettronica",
|
||||
"temporaryVerificationLinkSent": "È stato inviato un link di verifica temporaneo.\nSi prega di controllare la posta in arrivo di",
|
||||
"temporaryVerificationCodeSent": "È stato inviato un codice di verifica temporaneo.\nSi prega di controllare la posta in arrivo di",
|
||||
"continueToSignIn": "Continua ad accedere",
|
||||
"continueWithLoginCode": "Continua con il codice di accesso",
|
||||
"backToLogin": "Torna al login",
|
||||
"enterCode": "Inserisci il codice",
|
||||
"enterCodeManually": "Inserisci il codice manualmente",
|
||||
"continueWithEmail": "Continua con l'email",
|
||||
"enterPassword": "Inserisci la password",
|
||||
"loginAs": "Accedi come",
|
||||
"invalidVerificationCode": "Inserisci un codice di verifica valido",
|
||||
"tooFrequentVerificationCodeRequest": "Hai effettuato troppe richieste. Riprova più tardi.",
|
||||
"invalidLoginCredentials": "La tua password non è corretta, riprova",
|
||||
"resetPassword": "Reimposta password",
|
||||
"resetPasswordDescription": "Inserisci la tua email per reimpostare la password",
|
||||
"continueToResetPassword": "Continua per reimpostare la password",
|
||||
"resetPasswordSuccess": "Reimpostazione password riuscita",
|
||||
"resetPasswordFailed": "Impossibile reimpostare la password",
|
||||
"resetPasswordLinkSent": "Un link per reimpostare la password è stato inviato alla tua email. Controlla la tua casella di posta all'indirizzo",
|
||||
"resetPasswordLinkExpired": "Il link per reimpostare la password è scaduto. Richiedi un nuovo link.",
|
||||
"resetPasswordLinkInvalid": "Il link per reimpostare la password non è valido. Richiedi un nuovo link.",
|
||||
"enterNewPasswordFor": "Inserisci la nuova password per ",
|
||||
"newPassword": "Nuova password",
|
||||
"enterNewPassword": "Inserisci la nuova password",
|
||||
"confirmPassword": "Conferma password",
|
||||
"confirmNewPassword": "Inserisci la nuova password",
|
||||
"newPasswordCannotBeEmpty": "La nuova password non può essere vuota",
|
||||
"confirmPasswordCannotBeEmpty": "La password di conferma non può essere vuota",
|
||||
"passwordsDoNotMatch": "Le password non corrispondono",
|
||||
"verifying": "Verifica in corso...",
|
||||
"continueWithPassword": "Continua con la password",
|
||||
"youAreInLocalMode": "Sei in modalità locale.",
|
||||
"loginToAppFlowyCloud": "Accedi ad AppFlowy Cloud",
|
||||
"LogInWithGoogle": "Accedi con Google",
|
||||
"LogInWithGithub": "Accedi con Github",
|
||||
"LogInWithDiscord": "Accedi con Discord",
|
||||
@@ -73,9 +115,14 @@
|
||||
},
|
||||
"workspace": {
|
||||
"chooseWorkspace": "Scegli il tuo spazio di lavoro",
|
||||
"defaultName": "Il mio spazio di lavoro",
|
||||
"create": "Crea spazio di lavoro",
|
||||
"new": "Nuovo spazio di lavoro",
|
||||
"importFromNotion": "Importa da Notion",
|
||||
"learnMore": "Per saperne di più",
|
||||
"reset": "Ripristina lo spazio di lavoro",
|
||||
"renameWorkspace": "Rinomina workspace",
|
||||
"workspaceNameCannotBeEmpty": "Il nome dell'area di lavoro non può essere vuoto",
|
||||
"resetWorkspacePrompt": "Il ripristino dello spazio di lavoro eliminerà tutte le pagine e i dati al suo interno. Sei sicuro di voler ripristinare lo spazio di lavoro? In alternativa, puoi contattare il team di supporto per ristabilire lo spazio di lavoro",
|
||||
"hint": "spazio di lavoro",
|
||||
"notFoundError": "Spazio di lavoro non trovato",
|
||||
@@ -86,6 +133,7 @@
|
||||
"exportLogFiles": "Esporta i file di log",
|
||||
"reachOut": "Contattaci su Discord"
|
||||
},
|
||||
"menuTitle": "Spazi di lavoro",
|
||||
"deleteWorkspaceHintText": "Sei sicuro di voler cancellare la workspace? Questa azione non è reversibile, e ogni pagina che hai pubblicato sarà rimossa.",
|
||||
"createSuccess": "Workspace creata con successo",
|
||||
"createFailed": "Creazione workspace fallita",
|
||||
@@ -107,6 +155,7 @@
|
||||
"buttonText": "Condividi",
|
||||
"workInProgress": "Prossimamente",
|
||||
"markdown": "Markdown",
|
||||
"html": "HTML",
|
||||
"clipboard": "Copia",
|
||||
"csv": "CSV",
|
||||
"copyLink": "Copia Link",
|
||||
@@ -117,7 +166,17 @@
|
||||
"visitSite": "Visita sito",
|
||||
"exportAsTab": "Esporta come",
|
||||
"publishTab": "Pubblica",
|
||||
"shareTab": "Condividi"
|
||||
"shareTab": "Condividi",
|
||||
"publishOnAppFlowy": "Pubblica su AppFlowy",
|
||||
"shareTabTitle": "Invita a collaborare",
|
||||
"shareTabDescription": "Per una facile collaborazione con chiunque",
|
||||
"copyLinkSuccess": "Collegamento copiato negli appunti",
|
||||
"copyShareLink": "Copia il link di condivisione",
|
||||
"copyLinkFailed": "Impossibile copiare il collegamento negli appunti",
|
||||
"copyLinkToBlockSuccess": "Collegamento al blocco copiato negli appunti",
|
||||
"copyLinkToBlockFailed": "Impossibile copiare il collegamento del blocco negli appunti",
|
||||
"manageAllSites": "Gestisci tutti i siti",
|
||||
"updatePathName": "Aggiorna il nome del percorso"
|
||||
},
|
||||
"moreAction": {
|
||||
"small": "piccolo",
|
||||
@@ -130,15 +189,31 @@
|
||||
"charCount": "Numero di caratteri: {}",
|
||||
"createdAt": "Creata: {}",
|
||||
"deleteView": "Cancella",
|
||||
"duplicateView": "Duplica"
|
||||
"duplicateView": "Duplica",
|
||||
"wordCountLabel": "Numero di parole: ",
|
||||
"charCountLabel": "Numero di caratteri: ",
|
||||
"createdAtLabel": "Creato: ",
|
||||
"syncedAtLabel": "Sincronizzato: ",
|
||||
"saveAsNewPage": "Aggiungi messaggi alla pagina",
|
||||
"saveAsNewPageDisabled": "Nessun messaggio disponibile"
|
||||
},
|
||||
"importPanel": {
|
||||
"textAndMarkdown": "Testo e markdown",
|
||||
"documentFromV010": "Documento dalla v0.1.0",
|
||||
"databaseFromV010": "Database dalla v0.1.0",
|
||||
"notionZip": "File zip esportato da Notion",
|
||||
"csv": "CSV",
|
||||
"database": "Banca dati"
|
||||
},
|
||||
"emojiIconPicker": {
|
||||
"iconUploader": {
|
||||
"placeholderLeft": "Trascina e rilascia un file, fai clic per ",
|
||||
"placeholderUpload": "Carica",
|
||||
"placeholderRight": "oppure incolla il collegamento di un'immagine.",
|
||||
"dropToUpload": "Trascina un file per caricarlo",
|
||||
"change": "Modifica"
|
||||
}
|
||||
},
|
||||
"disclosureAction": {
|
||||
"rename": "Rinomina",
|
||||
"delete": "Cancella",
|
||||
@@ -150,7 +225,10 @@
|
||||
"addToFavorites": "Aggiungi ai preferiti",
|
||||
"copyLink": "Copia link",
|
||||
"changeIcon": "Cambia icona",
|
||||
"collapseAllPages": "Comprimi le sottopagine"
|
||||
"collapseAllPages": "Comprimi le sottopagine",
|
||||
"movePageTo": "Sposta la pagina in",
|
||||
"move": "Sposta",
|
||||
"lockPage": "Blocca la pagina"
|
||||
},
|
||||
"blankPageTitle": "Pagina vuota",
|
||||
"newPageText": "Nuova pagina",
|
||||
@@ -166,12 +244,15 @@
|
||||
"relatedQuestion": "Correlato",
|
||||
"serverUnavailable": "Servizio temporaneamente non disponibile. Per favore, riprova più tardi.",
|
||||
"aiServerUnavailable": "🌈 Uh-oh! 🌈. Un unicorno ha mangiato la nostra risposta. Per favore, riprova!",
|
||||
"retry": "Riprova",
|
||||
"clickToRetry": "Clicca per riprovare",
|
||||
"regenerateAnswer": "Rigenera",
|
||||
"question1": "Come usare Kanban per organizzare le attività",
|
||||
"question2": "Spiega il metodo GTD",
|
||||
"question3": "Perché usare Rust",
|
||||
"question4": "Ricetta con cos'è presente nella mia cucina",
|
||||
"question5": "Crea un'illustrazione per la mia pagina",
|
||||
"question6": "Stila una lista di cose da fare per la mia prossima settimana",
|
||||
"aiMistakePrompt": "Le IA possono fare errori. Controlla le informazioni importanti.",
|
||||
"chatWithFilePrompt": "Vuoi chattare col file?",
|
||||
"indexFileSuccess": "Indicizzazione file completata con successo",
|
||||
@@ -184,11 +265,54 @@
|
||||
"clickToMention": "Clicca per menzionare una pagina",
|
||||
"uploadFile": "Carica file PDF, MD o TXT con la quale chattare",
|
||||
"questionDetail": "Salve {}! Come posso aiutarti oggi?",
|
||||
"indexingFile": "Indicizzazione {}"
|
||||
"indexingFile": "Indicizzazione {}",
|
||||
"generatingResponse": "Sto generando una risposta",
|
||||
"selectSources": "Seleziona fonti",
|
||||
"currentPage": "Pagina corrente",
|
||||
"sourcesLimitReached": "È possibile selezionare solo fino a 3 documenti di livello superiore e i relativi figli",
|
||||
"sourceUnsupported": "Al momento non supportiamo la chat con i database",
|
||||
"regenerate": "Riprova",
|
||||
"addToPageButton": "Aggiungi messaggio alla pagina",
|
||||
"addToPageTitle": "Aggiungi messaggio a...",
|
||||
"addToNewPage": "Crea una nuova pagina",
|
||||
"addToNewPageName": "Messaggi estratti da \"{}\"",
|
||||
"addToNewPageSuccessToast": "Messaggio aggiunto a",
|
||||
"openPagePreviewFailedToast": "Impossibile aprire la pagina",
|
||||
"changeFormat": {
|
||||
"actionButton": "Cambia formato",
|
||||
"confirmButton": "Rigenera con questo formato",
|
||||
"textOnly": "Testo",
|
||||
"imageOnly": "Solo immagine",
|
||||
"textAndImage": "Testo e immagine",
|
||||
"text": "Paragrafo",
|
||||
"bullet": "Elenco puntato",
|
||||
"number": "Elenco numerato",
|
||||
"table": "Tavolo",
|
||||
"blankDescription": "Formato risposta",
|
||||
"defaultDescription": "Formato di risposta automatica",
|
||||
"textWithImageDescription": "@:chat .changeFormat.text con immagine",
|
||||
"numberWithImageDescription": "@:chat .changeFormat.number con immagine",
|
||||
"bulletWithImageDescription": "@:chat .changeFormat.bullet con immagine",
|
||||
"tableWithImageDescription": "@:chat .changeFormat.table con immagine"
|
||||
},
|
||||
"switchModel": {
|
||||
"label": "Cambia modello",
|
||||
"localModel": "Modello locale",
|
||||
"cloudModel": "Modello in cloud",
|
||||
"autoModel": "Automatico"
|
||||
},
|
||||
"selectBanner": {
|
||||
"saveButton": "Aggiungi a …",
|
||||
"selectMessages": "Seleziona i messaggi",
|
||||
"nSelected": "{} selezionati",
|
||||
"allSelected": "Tutti selezionati"
|
||||
},
|
||||
"stopTooltip": "Smetti di generare"
|
||||
},
|
||||
"trash": {
|
||||
"text": "Cestino",
|
||||
"restoreAll": "Ripristina Tutto",
|
||||
"restore": "Ripristina",
|
||||
"deleteAll": "Elimina Tutto",
|
||||
"pageHeader": {
|
||||
"fileName": "Nome file",
|
||||
@@ -203,6 +327,10 @@
|
||||
"title": "Sei sicuro di ripristinare tutte le pagine nel Cestino?",
|
||||
"caption": "Questa azione non può essere annullata."
|
||||
},
|
||||
"restorePage": {
|
||||
"title": "Ripristina: {}",
|
||||
"caption": "Sei sicuro di voler ripristinare questa pagina?"
|
||||
},
|
||||
"mobile": {
|
||||
"actions": "Azioni del cestino",
|
||||
"empty": "Il cestino è vuoto",
|
||||
@@ -215,12 +343,15 @@
|
||||
"deletePagePrompt": {
|
||||
"text": "Questa pagina è nel Cestino",
|
||||
"restore": "Ripristina pagina",
|
||||
"deletePermanent": "Elimina definitivamente"
|
||||
"deletePermanent": "Elimina definitivamente",
|
||||
"deletePermanentDescription": "Vuoi davvero eliminare definitivamente questa pagina? L'operazione è irreversibile."
|
||||
},
|
||||
"dialogCreatePageNameHint": "Nome pagina",
|
||||
"questionBubble": {
|
||||
"shortcuts": "Scorciatoie",
|
||||
"whatsNew": "Cosa c'è di nuovo?",
|
||||
"helpAndDocumentation": "Aiuto e documentazione",
|
||||
"getSupport": "Ottieni supporto",
|
||||
"markdown": "Markdown",
|
||||
"debug": {
|
||||
"name": "Informazioni di debug",
|
||||
@@ -234,7 +365,8 @@
|
||||
"moreButtonToolTip": "Rimuovi, rinomina e altro...",
|
||||
"addPageTooltip": "Aggiungi velocemente una pagina all'interno",
|
||||
"defaultNewPageName": "Senza titolo",
|
||||
"renameDialog": "Rinomina"
|
||||
"renameDialog": "Rinomina",
|
||||
"pageNameSuffix": "Copia"
|
||||
},
|
||||
"noPagesInside": "Nessuna pagina all'interno",
|
||||
"toolbar": {
|
||||
@@ -270,8 +402,10 @@
|
||||
"sideBar": {
|
||||
"closeSidebar": "Close sidebar",
|
||||
"openSidebar": "Open sidebar",
|
||||
"expandSidebar": "Espandi a pagina intera",
|
||||
"personal": "Personale",
|
||||
"private": "Privato",
|
||||
"workspace": "Area di lavoro",
|
||||
"favorites": "Preferiti",
|
||||
"clickToHidePrivate": "Clicca per nascondere l'area privata\nLe pagine create qui sono visibili solo a te",
|
||||
"clickToHideWorkspace": "Clicca per nascondere la workspace\nLe pagine che crei qui sono visibili a ogni membro",
|
||||
@@ -284,6 +418,7 @@
|
||||
"today": "Oggi",
|
||||
"thisWeek": "Questa settimana",
|
||||
"others": "Preferiti precedenti",
|
||||
"earlier": "Prima",
|
||||
"justNow": "poco fa",
|
||||
"minutesAgo": "{count} minuti fa",
|
||||
"lastViewed": "Visto per ultimo",
|
||||
@@ -300,8 +435,22 @@
|
||||
"upgradeToPro": "Aggiorna a Pro",
|
||||
"upgradeToAIMax": "Sblocca AI illimitata",
|
||||
"storageLimitDialogTitle": "Hai esaurito lo spazio d'archiviazione gratuito. Aggiorna per avere spazio d'archiviazione illimitato!",
|
||||
"storageLimitDialogTitleIOS": "Hai esaurito lo spazio di archiviazione gratuito.",
|
||||
"aiResponseLimitTitle": "Hai esaurito le risposte AI gratuite. Aggiorna al Piano Pro per acquistare un add-on AI per avere risposte illimitate",
|
||||
"aiResponseLimitDialogTitle": "Numero di riposte AI raggiunto"
|
||||
"aiResponseLimitDialogTitle": "Numero di riposte AI raggiunto",
|
||||
"aiResponseLimit": "Hai esaurito le risposte AI gratuite.\n\nVai su Impostazioni -> Piano -> Fai clic su AI Max o Pro Plan per ottenere più risposte AI",
|
||||
"askOwnerToUpgradeToPro": "Lo spazio di archiviazione gratuito del tuo spazio di lavoro sta esaurendo. Chiedi al proprietario del tuo spazio di lavoro di passare al piano Pro.",
|
||||
"askOwnerToUpgradeToProIOS": "Lo spazio di archiviazione gratuito nel tuo spazio di lavoro sta esaurendo.",
|
||||
"askOwnerToUpgradeToAIMax": "Il tuo spazio di lavoro ha esaurito le risposte AI gratuite. Chiedi al proprietario del tuo spazio di lavoro di aggiornare il piano o di acquistare componenti aggiuntivi AI.",
|
||||
"askOwnerToUpgradeToAIMaxIOS": "Il tuo spazio di lavoro sta esaurendo le risposte AI gratuite.",
|
||||
"purchaseAIMax": "Il tuo spazio di lavoro ha esaurito le risposte delle immagini AI. Chiedi al proprietario del tuo spazio di lavoro di acquistare AI Max",
|
||||
"aiImageResponseLimit": "Hai esaurito le risposte delle immagini dell'IA.\n\nVai su Impostazioni -> Piano -> Fai clic su AI Max per ottenere più risposte di immagini AI",
|
||||
"purchaseStorageSpace": "Acquista spazio di archiviazione",
|
||||
"singleFileProPlanLimitationDescription": "Hai superato la dimensione massima di caricamento file consentita nel piano gratuito. Passa al piano Pro per caricare file più grandi.",
|
||||
"purchaseAIResponse": "Acquista",
|
||||
"askOwnerToUpgradeToLocalAI": "Chiedi al proprietario dell'area di lavoro di abilitare l'intelligenza artificiale sul dispositivo",
|
||||
"upgradeToAILocal": "Esegui modelli locali sul tuo dispositivo per la massima privacy",
|
||||
"upgradeToAILocalDesc": "Chatta con i PDF, migliora la tua scrittura e compila automaticamente le tabelle utilizzando l'intelligenza artificiale locale"
|
||||
},
|
||||
"notifications": {
|
||||
"export": {
|
||||
@@ -317,11 +466,13 @@
|
||||
},
|
||||
"button": {
|
||||
"ok": "OK",
|
||||
"confirm": "Conferma",
|
||||
"done": "Fatto",
|
||||
"cancel": "Annulla",
|
||||
"signIn": "Accedi",
|
||||
"signOut": "Esci",
|
||||
"complete": "Completa",
|
||||
"change": "Modifica",
|
||||
"save": "Salva",
|
||||
"generate": "creare",
|
||||
"esc": "ESC",
|
||||
@@ -334,18 +485,48 @@
|
||||
"upload": "Caricamento",
|
||||
"edit": "Modificare",
|
||||
"delete": "Eliminare",
|
||||
"copy": "Copia",
|
||||
"duplicate": "Duplicare",
|
||||
"putback": "Rimettere a posto",
|
||||
"update": "Aggiorna",
|
||||
"share": "Condividi",
|
||||
"removeFromFavorites": "Rimuovi dai preferiti",
|
||||
"removeFromRecent": "Rimuovi da Recenti",
|
||||
"addToFavorites": "Aggiungi ai preferiti",
|
||||
"favoriteSuccessfully": "Preferito aggiunto con successo",
|
||||
"unfavoriteSuccessfully": "Preferito rimosso con successo",
|
||||
"duplicateSuccessfully": "Duplicato con successo",
|
||||
"rename": "Rinomina",
|
||||
"helpCenter": "Centro assistenza",
|
||||
"add": "Aggiungi",
|
||||
"yes": "SÌ",
|
||||
"no": "No",
|
||||
"clear": "Pulisci",
|
||||
"remove": "Rimuovi",
|
||||
"dontRemove": "Non rimuovere"
|
||||
"dontRemove": "Non rimuovere",
|
||||
"copyLink": "Copia collegamento",
|
||||
"align": "Allinea",
|
||||
"login": "Login",
|
||||
"logout": "Disconnettiti",
|
||||
"deleteAccount": "Elimina l'account",
|
||||
"back": "Indietro",
|
||||
"signInGoogle": "Continua con Google",
|
||||
"signInGithub": "Continua con GitHub",
|
||||
"signInDiscord": "Continua con Discord",
|
||||
"more": "Di più",
|
||||
"create": "Creare",
|
||||
"close": "Chiudi",
|
||||
"next": "Prossimo",
|
||||
"previous": "Precedente",
|
||||
"submit": "Invia",
|
||||
"download": "Scarica",
|
||||
"backToHome": "Torna alla Home",
|
||||
"viewing": "Visualizzazione",
|
||||
"editing": "Modifica",
|
||||
"gotIt": "Fatto",
|
||||
"retry": "Riprova",
|
||||
"uploadFailed": "Caricamento non riuscito.",
|
||||
"copyLinkOriginal": "Copia il collegamento all'originale"
|
||||
},
|
||||
"label": {
|
||||
"welcome": "Benvenuto!",
|
||||
@@ -369,6 +550,619 @@
|
||||
},
|
||||
"settings": {
|
||||
"title": "Impostazioni",
|
||||
"popupMenuItem": {
|
||||
"settings": "Impostazioni",
|
||||
"members": "Membri",
|
||||
"trash": "Spazzatura",
|
||||
"helpAndDocumentation": "Aiuto e documentazione",
|
||||
"getSupport": "Ottieni supporto"
|
||||
},
|
||||
"sites": {
|
||||
"title": "Siti",
|
||||
"namespaceTitle": "Namespace",
|
||||
"namespaceDescription": "Gestisci il tuo namespace e la tua homepage",
|
||||
"namespaceHeader": "Namespace",
|
||||
"homepageHeader": "Homepage",
|
||||
"updateNamespace": "Aggiorna il namespace",
|
||||
"removeHomepage": "Rimuovi la homepage",
|
||||
"selectHomePage": "Seleziona una pagina",
|
||||
"clearHomePage": "Cancella la homepage per questo namespace",
|
||||
"customUrl": "URL personalizzato",
|
||||
"homePage": {
|
||||
"upgradeToPro": "Passa al piano Pro per impostare una homepage"
|
||||
},
|
||||
"namespace": {
|
||||
"description": "Questa modifica verrà applicata a tutte le pagine pubblicate in questo namespace",
|
||||
"tooltip": "Ci riserviamo il diritto di rimuovere qualsiasi namespace inappropriato",
|
||||
"updateExistingNamespace": "Aggiorna il namexpace esistente",
|
||||
"upgradeToPro": "Passa al piano Pro per richiedere uno spazio dei nomi personalizzato",
|
||||
"redirectToPayment": "Reindirizzamento alla pagina di pagamento...",
|
||||
"onlyWorkspaceOwnerCanSetHomePage": "Solo il proprietario dell'area di lavoro può impostare una homepage",
|
||||
"pleaseAskOwnerToSetHomePage": "Chiedi al proprietario dell'area di lavoro di passare al piano Pro"
|
||||
},
|
||||
"publishedPage": {
|
||||
"title": "Tutte le pagine pubblicate",
|
||||
"description": "Gestisci le tue pagine pubblicate",
|
||||
"page": "Pagina",
|
||||
"pathName": "Nome del percorso",
|
||||
"date": "Data di pubblicazione",
|
||||
"emptyHinText": "Non hai pagine pubblicate in questo spazio di lavoro",
|
||||
"noPublishedPages": "Nessuna pagina pubblicata",
|
||||
"settings": "Impostazioni di pubblicazione",
|
||||
"clickToOpenPageInApp": "Apri la pagina nell'app",
|
||||
"clickToOpenPageInBrowser": "Apri la pagina nel browser"
|
||||
},
|
||||
"error": {
|
||||
"failedToGeneratePaymentLink": "Impossibile generare il collegamento di pagamento per il piano Pro",
|
||||
"failedToUpdateNamespace": "Impossibile aggiornare il namespace",
|
||||
"proPlanLimitation": "È necessario eseguire l'aggiornamento al piano Pro per aggiornare lo spazio dei nomi",
|
||||
"namespaceAlreadyInUse": "Il namespace è già stato preso, provane un altro",
|
||||
"invalidNamespace": "Namespace non valido, provane un altro",
|
||||
"namespaceLengthAtLeast2Characters": "Il namespace deve essere lungo almeno 2 caratteri",
|
||||
"onlyWorkspaceOwnerCanUpdateNamespace": "Solo il proprietario dell'area di lavoro può aggiornare il namespace",
|
||||
"onlyWorkspaceOwnerCanRemoveHomepage": "Solo il proprietario dell'area di lavoro può rimuovere la home page",
|
||||
"setHomepageFailed": "Impossibile impostare la homepage",
|
||||
"namespaceTooLong": "Il namespace è troppo lungo, provane un altro",
|
||||
"namespaceTooShort": "Il namespace è troppo breve, provane un altro",
|
||||
"namespaceIsReserved": "Il namespace è riservato, provane un altro",
|
||||
"updatePathNameFailed": "Impossibile aggiornare il percorso",
|
||||
"removeHomePageFailed": "Impossibile rimuovere la homepage",
|
||||
"publishNameContainsInvalidCharacters": "Il percorso contiene caratteri non validi, provane un altro",
|
||||
"publishNameTooShort": "Il percorso è troppo breve, provane un altro",
|
||||
"publishNameTooLong": "Il percorso è troppo lungo, provane un altro",
|
||||
"publishNameAlreadyInUse": "Il percorso è già in uso, provane un altro",
|
||||
"namespaceContainsInvalidCharacters": "Il namespace contiene caratteri non validi, provane un altro",
|
||||
"publishPermissionDenied": "Solo il proprietario dell'area di lavoro o l'editore della pagina può gestire le impostazioni di pubblicazione",
|
||||
"publishNameCannotBeEmpty": "Il percorso non può essere vuoto, provane un altro"
|
||||
},
|
||||
"success": {
|
||||
"namespaceUpdated": "Namespace aggiornato correttamente",
|
||||
"setHomepageSuccess": "La homepage è stata impostata correttamente",
|
||||
"updatePathNameSuccess": "Percorso aggiornato correttamente",
|
||||
"removeHomePageSuccess": "Homepage rimossa con successo"
|
||||
}
|
||||
},
|
||||
"accountPage": {
|
||||
"menuLabel": "Account e app",
|
||||
"title": "Il mio account",
|
||||
"general": {
|
||||
"title": "Nome dell'account e immagine del profilo",
|
||||
"changeProfilePicture": "Cambia l'immagine del profilo"
|
||||
},
|
||||
"email": {
|
||||
"title": "Email",
|
||||
"actions": {
|
||||
"change": "Cambia l'email"
|
||||
}
|
||||
},
|
||||
"login": {
|
||||
"title": "Accedi all'account",
|
||||
"loginLabel": "Login",
|
||||
"logoutLabel": "Disconnettiti"
|
||||
},
|
||||
"isUpToDate": "@:appName è aggiornato!",
|
||||
"officialVersion": "Versione {versione} (官方構建)"
|
||||
},
|
||||
"workspacePage": {
|
||||
"menuLabel": "Area di lavoro",
|
||||
"title": "Area di lavoro",
|
||||
"description": "Personalizza l'aspetto, il tema, il carattere, il layout del testo, il formato data/ora e la lingua del tuo spazio di lavoro.",
|
||||
"workspaceName": {
|
||||
"title": "Nome dell'area di lavoro"
|
||||
},
|
||||
"workspaceIcon": {
|
||||
"title": "Icona dell'area di lavoro",
|
||||
"description": "Carica un'immagine o usa un'emoji per il tuo spazio di lavoro. L'icona verrà visualizzata nella barra laterale e nelle notifiche."
|
||||
},
|
||||
"appearance": {
|
||||
"title": "Aspetto",
|
||||
"description": "Personalizza l'aspetto, il tema, il carattere, il layout del testo, la data, l'ora e la lingua del tuo spazio di lavoro.",
|
||||
"options": {
|
||||
"system": "Automatico",
|
||||
"light": "Chiaro",
|
||||
"dark": "Scuro"
|
||||
}
|
||||
},
|
||||
"resetCursorColor": {
|
||||
"title": "Reimposta il colore del cursore del documento",
|
||||
"description": "Vuoi davvero reimpostare il colore del cursore?"
|
||||
},
|
||||
"resetSelectionColor": {
|
||||
"title": "Reimposta il colore di selezione del documento",
|
||||
"description": "Vuoi davvero reimpostare il colore di selezione?"
|
||||
},
|
||||
"resetWidth": {
|
||||
"resetSuccess": "Reimposta correttamente la larghezza del documento"
|
||||
},
|
||||
"theme": {
|
||||
"title": "Tema",
|
||||
"description": "Seleziona un tema preimpostato o carica il tuo tema personalizzato.",
|
||||
"uploadCustomThemeTooltip": "Carica un tema personalizzato",
|
||||
"failedToLoadThemes": "Impossibile caricare i temi, controlla le impostazioni dei permessi in Impostazioni di sistema -> Privacy e sicurezza -> File e cartelle -> @:appName"
|
||||
},
|
||||
"workspaceFont": {
|
||||
"title": "Carattere dell'area di lavoro",
|
||||
"noFontHint": "Nessun font trovato, prova un altro termine."
|
||||
},
|
||||
"textDirection": {
|
||||
"title": "Direzione del testo",
|
||||
"leftToRight": "Da sinistra a destra",
|
||||
"rightToLeft": "Da destra a sinistra",
|
||||
"auto": "Auto",
|
||||
"enableRTLItems": "Abilita gli elementi della barra degli strumenti RTL"
|
||||
},
|
||||
"layoutDirection": {
|
||||
"title": "Direzione del layout",
|
||||
"leftToRight": "Da sinistra a destra",
|
||||
"rightToLeft": "Da destra a sinistra"
|
||||
},
|
||||
"dateTime": {
|
||||
"title": "Data e ora",
|
||||
"example": "{} alle {} ({})",
|
||||
"24HourTime": "formato 24 ore",
|
||||
"dateFormat": {
|
||||
"label": "Formato data",
|
||||
"local": "Locale",
|
||||
"us": "US",
|
||||
"iso": "ISO",
|
||||
"friendly": "Amichevole",
|
||||
"dmy": "G/M/A"
|
||||
}
|
||||
},
|
||||
"language": {
|
||||
"title": "Lingua"
|
||||
},
|
||||
"deleteWorkspacePrompt": {
|
||||
"title": "Elimina area di lavoro",
|
||||
"content": "Vuoi davvero eliminare questo spazio di lavoro? Questa azione non può essere annullata e tutte le pagine che hai pubblicato verranno rimosse dalla pubblicazione."
|
||||
},
|
||||
"leaveWorkspacePrompt": {
|
||||
"title": "Lascia l'area di lavoro",
|
||||
"content": "Vuoi davvero uscire da questa area di lavoro? Perderai l'accesso a tutte le pagine e ai dati in essa contenuti.",
|
||||
"success": "Hai abbandonato l'area di lavoro con successo.",
|
||||
"fail": "Impossibile uscire dall'area di lavoro."
|
||||
},
|
||||
"manageWorkspace": {
|
||||
"title": "Gestisci l'area di lavoro",
|
||||
"leaveWorkspace": "Lascia l'area di lavoro",
|
||||
"deleteWorkspace": "Elimina area di lavoro"
|
||||
}
|
||||
},
|
||||
"manageDataPage": {
|
||||
"menuLabel": "Gestisci i dati",
|
||||
"title": "Gestisci i dati",
|
||||
"description": "Gestisci l'archiviazione locale dei dati o importa i tuoi dati esistenti in @:appName .",
|
||||
"dataStorage": {
|
||||
"title": "Posizione di archiviazione dei file",
|
||||
"tooltip": "La posizione in cui sono archiviati i tuoi file",
|
||||
"actions": {
|
||||
"change": "Cambia percorso",
|
||||
"open": "Apri cartella",
|
||||
"openTooltip": "Apri la posizione della cartella dati corrente",
|
||||
"copy": "Copia percorso",
|
||||
"copiedHint": "Percorso copiato!",
|
||||
"resetTooltip": "Ripristina la posizione predefinita"
|
||||
},
|
||||
"resetDialog": {
|
||||
"title": "Sei sicuro?",
|
||||
"description": "Reimpostare il percorso alla posizione predefinita dei dati non eliminerà i dati. Se desideri reimportare i dati correnti, devi prima copiare il percorso della posizione corrente."
|
||||
}
|
||||
},
|
||||
"importData": {
|
||||
"title": "Importa dati",
|
||||
"tooltip": "Importa dati da cartelle di backup/dati @:appName",
|
||||
"description": "Copia i dati da una cartella dati esterna @:appName",
|
||||
"action": "Sfoglia file"
|
||||
},
|
||||
"encryption": {
|
||||
"title": "Crittografia",
|
||||
"tooltip": "Gestisci il modo in cui i tuoi dati vengono archiviati e crittografati",
|
||||
"descriptionNoEncryption": "L'attivazione della crittografia crittograferà tutti i dati. Questa operazione non può essere annullata.",
|
||||
"descriptionEncrypted": "I tuoi dati sono crittografati.",
|
||||
"action": "Crittografare i dati",
|
||||
"dialog": {
|
||||
"title": "Vuoi crittografare tutti i tuoi dati?",
|
||||
"description": "La crittografia di tutti i tuoi dati li manterrà al sicuro e protetti. Questa azione NON può essere annullata. Vuoi continuare?"
|
||||
}
|
||||
},
|
||||
"cache": {
|
||||
"title": "Cancella cache",
|
||||
"description": "Aiuta a risolvere problemi come il mancato caricamento delle immagini, pagine mancanti in uno spazio e caratteri non caricati. Questo non influirà sui tuoi dati.",
|
||||
"dialog": {
|
||||
"title": "Cancella cache",
|
||||
"description": "Aiuta a risolvere problemi come il mancato caricamento delle immagini, pagine mancanti in uno spazio e caratteri non caricati. Questo non influirà sui tuoi dati.",
|
||||
"successHint": "Cache svuotata!"
|
||||
}
|
||||
},
|
||||
"data": {
|
||||
"fixYourData": "Correggi i tuoi dati",
|
||||
"fixButton": "Correggi",
|
||||
"fixYourDataDescription": "Se riscontri problemi con i tuoi dati, puoi provare a risolverli qui."
|
||||
}
|
||||
},
|
||||
"shortcutsPage": {
|
||||
"menuLabel": "Scorciatoie",
|
||||
"title": "Scorciatoie",
|
||||
"editBindingHint": "Inserisci nuova associazione",
|
||||
"searchHint": "Ricerca",
|
||||
"actions": {
|
||||
"resetDefault": "Ripristina predefinito"
|
||||
},
|
||||
"errorPage": {
|
||||
"message": "Impossibile caricare i collegamenti: {}",
|
||||
"howToFix": "Riprova. Se il problema persiste, contattaci su GitHub."
|
||||
},
|
||||
"resetDialog": {
|
||||
"title": "Reimposta le scorciatoie",
|
||||
"description": "Questa operazione ripristinerà tutte le combinazioni di tasti predefinite; non sarà possibile annullare questa operazione in seguito. Vuoi procedere?",
|
||||
"buttonLabel": "Ripristina"
|
||||
},
|
||||
"conflictDialog": {
|
||||
"title": "{} è attualmente in uso",
|
||||
"descriptionPrefix": "Questa combinazione di tasti è attualmente utilizzata da ",
|
||||
"descriptionSuffix": ". Se si sostituisce questa combinazione di tasti, questa verrà rimossa da {}.",
|
||||
"confirmLabel": "Continua"
|
||||
},
|
||||
"editTooltip": "Premere per iniziare a modificare la combinazione di tasti",
|
||||
"keybindings": {
|
||||
"toggleToDoList": "Attiva/disattiva l'elenco delle cose da fare",
|
||||
"insertNewParagraphInCodeblock": "Inserisci nuovo paragrafo",
|
||||
"pasteInCodeblock": "Incolla nel blocco di codice",
|
||||
"selectAllCodeblock": "Seleziona tutto",
|
||||
"indentLineCodeblock": "Inserisci due spazi all'inizio della riga",
|
||||
"outdentLineCodeblock": "Elimina due spazi all'inizio della riga",
|
||||
"twoSpacesCursorCodeblock": "Inserisci due spazi al cursore",
|
||||
"copy": "Copia selezione",
|
||||
"paste": "Incolla nel contenuto",
|
||||
"cut": "Taglia la selezione",
|
||||
"alignLeft": "Allinea il testo a sinistra",
|
||||
"alignCenter": "Allinea il testo al centro",
|
||||
"alignRight": "Allinea il testo a destra",
|
||||
"insertInlineMathEquation": "Inserisci equazione matematica in linea",
|
||||
"undo": "Annulla",
|
||||
"redo": "Rifai",
|
||||
"convertToParagraph": "Converti blocco in paragrafo",
|
||||
"backspace": "Elimina",
|
||||
"deleteLeftWord": "Elimina la parola a sinistra",
|
||||
"deleteLeftSentence": "Elimina la frase a sinistra",
|
||||
"delete": "Elimina il carattere corretto",
|
||||
"deleteMacOS": "Elimina il carattere a sinistra",
|
||||
"deleteRightWord": "Elimina la parola a destra",
|
||||
"moveCursorLeft": "Sposta il cursore a sinistra",
|
||||
"moveCursorBeginning": "Sposta il cursore all'inizio",
|
||||
"moveCursorLeftWord": "Sposta il cursore a sinistra di una parola",
|
||||
"moveCursorLeftSelect": "Seleziona e sposta il cursore a sinistra",
|
||||
"moveCursorBeginSelect": "Seleziona e sposta il cursore all'inizio",
|
||||
"moveCursorLeftWordSelect": "Seleziona e sposta il cursore a sinistra di una parola",
|
||||
"moveCursorRight": "Sposta il cursore a destra",
|
||||
"moveCursorEnd": "Sposta il cursore alla fine",
|
||||
"moveCursorRightWord": "Sposta il cursore a destra di una parola",
|
||||
"moveCursorRightSelect": "Seleziona e sposta il cursore a destra",
|
||||
"moveCursorEndSelect": "Seleziona e sposta il cursore alla fine",
|
||||
"moveCursorRightWordSelect": "Seleziona e sposta il cursore a destra di una parola",
|
||||
"moveCursorUp": "Sposta il cursore verso l'alto",
|
||||
"moveCursorTopSelect": "Seleziona e sposta il cursore in alto",
|
||||
"moveCursorTop": "Sposta il cursore in alto",
|
||||
"moveCursorUpSelect": "Seleziona e sposta il cursore verso l'alto",
|
||||
"moveCursorBottomSelect": "Seleziona e sposta il cursore in basso",
|
||||
"moveCursorBottom": "Sposta il cursore in basso",
|
||||
"moveCursorDown": "Sposta il cursore verso il basso",
|
||||
"moveCursorDownSelect": "Seleziona e sposta il cursore verso il basso",
|
||||
"home": "Scorri verso l'alto",
|
||||
"end": "Scorri fino in fondo",
|
||||
"toggleBold": "Attiva/disattiva grassetto",
|
||||
"toggleItalic": "Attiva/disattiva il corsivo",
|
||||
"toggleUnderline": "Attiva/disattiva la sottolineatura",
|
||||
"toggleStrikethrough": "Attiva/disattiva barrato",
|
||||
"toggleCode": "Attiva/disattiva il codice in linea",
|
||||
"toggleHighlight": "Attiva/disattiva l'evidenziazione",
|
||||
"showLinkMenu": "Mostra il menu dei link",
|
||||
"openInlineLink": "Apri collegamento in linea",
|
||||
"openLinks": "Apri tutti i link selezionati",
|
||||
"indent": "Aumenta rientro",
|
||||
"outdent": "Riduci rientro",
|
||||
"exit": "Esci dalla modifica",
|
||||
"pageUp": "Scorri una pagina verso l'alto",
|
||||
"pageDown": "Scorri una pagina verso il basso",
|
||||
"selectAll": "Seleziona tutto",
|
||||
"pasteWithoutFormatting": "Incolla il contenuto senza formattazione",
|
||||
"showEmojiPicker": "Mostra selettore emoji",
|
||||
"enterInTableCell": "Aggiungi interruzione di riga nella tabella",
|
||||
"leftInTableCell": "Sposta a sinistra di una cella nella tabella",
|
||||
"rightInTableCell": "Spostati a destra di una cella nella tabella",
|
||||
"upInTableCell": "Spostarsi su di una cella nella tabella",
|
||||
"downInTableCell": "Spostarsi verso il basso di una cella nella tabella",
|
||||
"tabInTableCell": "Vai alla cella disponibile successiva nella tabella",
|
||||
"shiftTabInTableCell": "Vai alla cella precedentemente disponibile nella tabella",
|
||||
"backSpaceInTableCell": "Fermati all'inizio della cella"
|
||||
},
|
||||
"commands": {
|
||||
"codeBlockNewParagraph": "Inserisci un nuovo paragrafo accanto al blocco di codice",
|
||||
"codeBlockIndentLines": "Inserire due spazi all'inizio della riga nel blocco di codice",
|
||||
"codeBlockOutdentLines": "Elimina due spazi all'inizio della riga nel blocco di codice",
|
||||
"codeBlockAddTwoSpaces": "Inserisci due spazi nella posizione del cursore nel blocco di codice",
|
||||
"codeBlockSelectAll": "Seleziona tutto il contenuto all'interno di un blocco di codice",
|
||||
"codeBlockPasteText": "Incolla il testo nel blocco di codice",
|
||||
"textAlignLeft": "Allinea il testo a sinistra",
|
||||
"textAlignCenter": "Allinea il testo al centro",
|
||||
"textAlignRight": "Allinea il testo a destra"
|
||||
},
|
||||
"couldNotLoadErrorMsg": "Impossibile caricare i collegamenti. Riprova.",
|
||||
"couldNotSaveErrorMsg": "Impossibile salvare i collegamenti. Riprova."
|
||||
},
|
||||
"aiPage": {
|
||||
"title": "Impostazioni AI",
|
||||
"menuLabel": "Impostazioni AI",
|
||||
"keys": {
|
||||
"enableAISearchTitle": "Ricerca AI",
|
||||
"aiSettingsDescription": "Scegli il modello che preferisci per potenziare AppFlowy AI. Ora include GPT-4o, GPT-o3-mini, DeepSeek R1, Claude 3.5 Sonnet e modelli disponibili in Ollama.",
|
||||
"loginToEnableAIFeature": "Le funzionalità di intelligenza artificiale sono abilitate solo dopo aver effettuato l'accesso con @:appName Cloud. Se non hai un @:appName , vai su \"Il mio account\" per registrarti.",
|
||||
"llmModel": "Modello linguistico",
|
||||
"globalLLMModel": "Modello linguistico globale",
|
||||
"readOnlyField": "Questo campo è di sola lettura",
|
||||
"llmModelType": "Tipo di modello linguistico",
|
||||
"downloadLLMPrompt": "Scarica {}",
|
||||
"downloadAppFlowyOfflineAI": "Scaricando il pacchetto AI offline, l'AI potrà essere eseguita sul tuo dispositivo. Vuoi continuare?",
|
||||
"downloadLLMPromptDetail": "Il download del modello locale {} occuperà fino a {} di spazio di archiviazione. Vuoi continuare?",
|
||||
"downloadBigFilePrompt": "Potrebbero essere necessari circa 10 minuti per completare il download",
|
||||
"downloadAIModelButton": "Scarica",
|
||||
"downloadingModel": "Scaricando",
|
||||
"localAILoaded": "Modello AI locale aggiunto correttamente e pronto per l'uso",
|
||||
"localAIStart": "L'intelligenza artificiale locale si sta avviando. Se è lenta, prova a disattivarla e riattivarla.",
|
||||
"localAILoading": "Caricamento del modello di chat AI locale...",
|
||||
"localAIStopped": "L'IA locale si è fermata",
|
||||
"localAIRunning": "L'intelligenza artificiale locale è in esecuzione",
|
||||
"localAINotReadyRetryLater": "L'IA locale è in fase di inizializzazione, riprova più tardi",
|
||||
"localAIDisabled": "Stai utilizzando l'intelligenza artificiale locale, ma è disabilitata. Vai alle impostazioni per abilitarla o prova un modello diverso.",
|
||||
"localAIInitializing": "L'intelligenza artificiale locale è in fase di caricamento. Potrebbero volerci alcuni secondi, a seconda del dispositivo.",
|
||||
"localAINotReadyTextFieldPrompt": "Non è possibile modificare mentre l'IA locale è in fase di caricamento",
|
||||
"localAIDisabledTextFieldPrompt": "Non puoi modificare mentre l'IA locale è disabilitata",
|
||||
"failToLoadLocalAI": "Impossibile avviare l'IA locale.",
|
||||
"restartLocalAI": "Riavvia",
|
||||
"disableLocalAITitle": "Disabilita l'IA locale",
|
||||
"disableLocalAIDescription": "Vuoi disattivare l'IA locale?",
|
||||
"localAIToggleTitle": "AppFlowy IA locale (LAI)",
|
||||
"localAIToggleSubTitle": "Esegui i modelli di intelligenza artificiale locale più avanzati all'interno di AppFlowy per la massima privacy e sicurezza",
|
||||
"offlineAIInstruction1": "Segui l'",
|
||||
"offlineAIInstruction2": "istruzione",
|
||||
"offlineAIInstruction3": "per abilitare l'intelligenza artificiale offline.",
|
||||
"offlineAIDownload1": "Se non hai scaricato AppFlowy AI, per favore",
|
||||
"offlineAIDownload2": "scaricala",
|
||||
"offlineAIDownload3": "prima di tutto",
|
||||
"activeOfflineAI": "Attiva",
|
||||
"downloadOfflineAI": "Scarica",
|
||||
"openModelDirectory": "Apri cartella",
|
||||
"laiNotReady": "L'app Local AI non è stata installata correttamente.",
|
||||
"ollamaNotReady": "Il server Ollama non è pronto.",
|
||||
"pleaseFollowThese": "Per favore segui queste",
|
||||
"instructions": "istruzioni",
|
||||
"installOllamaLai": "per configurare Ollama e AppFlowy Local AI.",
|
||||
"modelsMissing": "Impossibile trovare i modelli richiesti: ",
|
||||
"downloadModel": "per scaricarli."
|
||||
}
|
||||
},
|
||||
"planPage": {
|
||||
"menuLabel": "Piano",
|
||||
"title": "Piano tariffario",
|
||||
"planUsage": {
|
||||
"title": "Riepilogo dell'utilizzo del piano",
|
||||
"storageLabel": "Archiviazione",
|
||||
"storageUsage": "{} di {} GB",
|
||||
"unlimitedStorageLabel": "Spazio di archiviazione illimitato",
|
||||
"collaboratorsLabel": "Membri",
|
||||
"collaboratorsUsage": "{} di {}",
|
||||
"aiResponseLabel": "Risposte IA",
|
||||
"aiResponseUsage": "{} di {}",
|
||||
"unlimitedAILabel": "Risposte illimitate",
|
||||
"proBadge": "Pro",
|
||||
"aiMaxBadge": "AI Max",
|
||||
"aiOnDeviceBadge": "AI sul dispositivo per Mac",
|
||||
"memberProToggle": "Più membri e accesso illimitato all'IA e agli ospiti",
|
||||
"aiMaxToggle": "Intelligenza artificiale illimitata e accesso a modelli avanzati",
|
||||
"aiOnDeviceToggle": "Intelligenza artificiale locale per la massima privacy",
|
||||
"aiCredit": {
|
||||
"title": "Aggiungi credito AI @:appName",
|
||||
"price": "{}",
|
||||
"priceDescription": "per 1.000 crediti",
|
||||
"purchase": "Acquista AI",
|
||||
"info": "Aggiungi 1.000 crediti AI per area di lavoro e integra perfettamente l'AI personalizzabile nel tuo flusso di lavoro per risultati più intelligenti e rapidi con un massimo di:",
|
||||
"infoItemOne": "10.000 risposte per database",
|
||||
"infoItemTwo": "1.000 risposte per spazio di lavoro"
|
||||
},
|
||||
"currentPlan": {
|
||||
"bannerLabel": "Piano attuale",
|
||||
"freeTitle": "Gratuito",
|
||||
"proTitle": "Pro",
|
||||
"teamTitle": "Team",
|
||||
"freeInfo": "Perfetto per singoli fino a 2 membri per organizzare tutto",
|
||||
"proInfo": "Perfetto per team piccoli e medi fino a 10 membri.",
|
||||
"teamInfo": "Perfetto per tutti i team produttivi e ben organizzati.",
|
||||
"upgrade": "Cambia piano",
|
||||
"canceledInfo": "Il tuo piano è stato annullato e il {} passerà al piano gratuito."
|
||||
},
|
||||
"addons": {
|
||||
"title": "Componenti aggiuntivi",
|
||||
"addLabel": "Aggiungi",
|
||||
"activeLabel": "Aggiunto",
|
||||
"aiMax": {
|
||||
"title": "AI Max",
|
||||
"description": "Risposte AI illimitate basate su modelli AI avanzati e 50 immagini AI al mese",
|
||||
"price": "{}",
|
||||
"priceInfo": "Per utente, al mese, fatturato annualmente"
|
||||
},
|
||||
"aiOnDevice": {
|
||||
"title": "AI sul dispositivo per Mac",
|
||||
"description": "Esegui Mistral 7B, LLAMA 3 e altri modelli locali sul tuo computer",
|
||||
"price": "{}",
|
||||
"priceInfo": "Per utente al mese fatturato annualmente",
|
||||
"recommend": "Si consiglia M1 o più recente"
|
||||
}
|
||||
},
|
||||
"deal": {
|
||||
"bannerLabel": "Offerta per il nuovo anno!",
|
||||
"title": "Fai crescere il tuo team!",
|
||||
"info": "Esegui l'upgrade e risparmia il 10% sui piani Pro e Team! Aumenta la produttività del tuo spazio di lavoro con nuove potenti funzionalità, tra cui l'intelligenza artificiale @:appName .",
|
||||
"viewPlans": "Visualizza i piani"
|
||||
}
|
||||
}
|
||||
},
|
||||
"billingPage": {
|
||||
"menuLabel": "Fatturazione",
|
||||
"title": "Fatturazione",
|
||||
"plan": {
|
||||
"title": "Piano",
|
||||
"freeLabel": "Gratuito",
|
||||
"proLabel": "Pro",
|
||||
"planButtonLabel": "Cambia piano",
|
||||
"billingPeriod": "Periodo di fatturazione",
|
||||
"periodButtonLabel": "Periodo di modifica"
|
||||
},
|
||||
"paymentDetails": {
|
||||
"title": "Dettagli di pagamento",
|
||||
"methodLabel": "Metodo di pagamento",
|
||||
"methodButtonLabel": "Modifica il metodo"
|
||||
},
|
||||
"addons": {
|
||||
"title": "Componenti aggiuntivi",
|
||||
"addLabel": "Aggiungi",
|
||||
"removeLabel": "Rimuovi",
|
||||
"renewLabel": "Rinnova",
|
||||
"aiMax": {
|
||||
"label": "AI Max",
|
||||
"description": "Sblocca IA illimitata e modelli avanzati",
|
||||
"activeDescription": "Prossima fattura in scadenza il {}",
|
||||
"canceledDescription": "AI Max sarà disponibile fino al {}"
|
||||
},
|
||||
"aiOnDevice": {
|
||||
"label": "AI sul dispositivo per Mac",
|
||||
"description": "Sblocca l'intelligenza artificiale illimitata sul tuo dispositivo",
|
||||
"activeDescription": "Prossima fattura in scadenza il {}",
|
||||
"canceledDescription": "AI On-device per Mac sarà disponibile fino al {}"
|
||||
},
|
||||
"removeDialog": {
|
||||
"title": "Rimuovi {}",
|
||||
"description": "Vuoi davvero rimuovere {plan}? Perderai immediatamente l'accesso alle funzionalità e ai vantaggi di {plan}."
|
||||
}
|
||||
},
|
||||
"currentPeriodBadge": "ATTUALE",
|
||||
"changePeriod": "Modifica il periodo",
|
||||
"planPeriod": "{} periodo",
|
||||
"monthlyInterval": "Mensile",
|
||||
"monthlyPriceInfo": "per posto fatturato mensilmente",
|
||||
"annualInterval": "Annualmente",
|
||||
"annualPriceInfo": "per posto fatturato annualmente"
|
||||
},
|
||||
"comparePlanDialog": {
|
||||
"title": "Confronta e seleziona il piano",
|
||||
"planFeatures": "Piano\nCaratteristiche",
|
||||
"current": "Attuale",
|
||||
"actions": {
|
||||
"upgrade": "Aggiorna",
|
||||
"downgrade": "Downgrade",
|
||||
"current": "Attuale"
|
||||
},
|
||||
"freePlan": {
|
||||
"title": "Gratuito",
|
||||
"description": "Per singoli fino a 2 membri per organizzare tutto",
|
||||
"price": "{}",
|
||||
"priceInfo": "Gratuito per sempre"
|
||||
},
|
||||
"proPlan": {
|
||||
"title": "Pro",
|
||||
"description": "Per piccoli team per gestire progetti e conoscenze di squadra",
|
||||
"price": "{}",
|
||||
"priceInfo": "Per utente al mese\nfatturato annualmente<inlang-LineFeed>\n{} fatturato mensilmente"
|
||||
},
|
||||
"planLabels": {
|
||||
"itemOne": "Spazi di lavoro",
|
||||
"itemTwo": "Membri",
|
||||
"itemThree": "Archiviazione",
|
||||
"itemFour": "Collaborazione in tempo reale",
|
||||
"itemFive": "Editor ospiti",
|
||||
"itemSix": "Risposte AI",
|
||||
"itemSeven": "Immagini AI",
|
||||
"itemFileUpload": "Caricamento di file",
|
||||
"customNamespace": "Namespace personalizzato",
|
||||
"tooltipFive": "Collaborare su pagine specifiche con i non membri",
|
||||
"tooltipSix": "Per sempre significa che il numero di risposte non viene mai azzerato",
|
||||
"intelligentSearch": "Ricerca intelligente",
|
||||
"tooltipSeven": "Ti consente di personalizzare parte dell'URL per il tuo spazio di lavoro",
|
||||
"customNamespaceTooltip": "URL del sito pubblicato personalizzato"
|
||||
},
|
||||
"freeLabels": {
|
||||
"itemOne": "Addebitato per spazio di lavoro",
|
||||
"itemTwo": "Fino a 2",
|
||||
"itemThree": "5 GB",
|
||||
"itemFour": "si",
|
||||
"itemFive": "si",
|
||||
"itemSix": "10 a vita",
|
||||
"itemSeven": "2 a vita",
|
||||
"itemFileUpload": "Fino a 7 MB",
|
||||
"intelligentSearch": "Ricerca intelligente"
|
||||
},
|
||||
"proLabels": {
|
||||
"itemOne": "Addebitato per spazio di lavoro",
|
||||
"itemTwo": "Fino a 10",
|
||||
"itemThree": "Illimitato",
|
||||
"itemFour": "si",
|
||||
"itemFive": "Fino a 100",
|
||||
"itemSix": "Illimitato",
|
||||
"itemSeven": "50 immagini al mese",
|
||||
"itemFileUpload": "Illimitato",
|
||||
"intelligentSearch": "Ricerca intelligente"
|
||||
},
|
||||
"paymentSuccess": {
|
||||
"title": "Ora sei sul piano {}!",
|
||||
"description": "Il tuo pagamento è stato elaborato con successo e il tuo piano è stato aggiornato a @:appName {}. Puoi visualizzare i dettagli del tuo piano nella pagina Piano"
|
||||
},
|
||||
"downgradeDialog": {
|
||||
"title": "Sei sicuro di voler effettuare il downgrade del tuo piano?",
|
||||
"description": "Effettuando il downgrade del tuo piano tornerai al piano gratuito. Gli utenti potrebbero perdere l'accesso a questo spazio di lavoro e potresti dover liberare spazio per rispettare i limiti di archiviazione del piano gratuito.",
|
||||
"downgradeLabel": "Effettua il downgrade del piano"
|
||||
}
|
||||
},
|
||||
"cancelSurveyDialog": {
|
||||
"title": "Ci dispiace vederti andare",
|
||||
"description": "Ci dispiace vederti andare via. Ci piacerebbe ricevere il tuo feedback per aiutarci a migliorare @:appName . Ti preghiamo di dedicare un momento per rispondere ad alcune domande.",
|
||||
"commonOther": "Altro",
|
||||
"otherHint": "Scrivi qui la tua risposta",
|
||||
"questionOne": {
|
||||
"question": "Cosa ti ha spinto ad annullare il tuo abbonamento Pro @:appName ?",
|
||||
"answerOne": "Costo troppo alto",
|
||||
"answerTwo": "Le caratteristiche non hanno soddisfatto le aspettative",
|
||||
"answerThree": "Ho trovato un'alternativa migliore",
|
||||
"answerFour": "Non l'ho usato abbastanza per giustificare la spesa",
|
||||
"answerFive": "Problema di servizio o difficoltà tecniche"
|
||||
},
|
||||
"questionTwo": {
|
||||
"question": "Quanto è probabile che in futuro prenderai in considerazione l'idea di riabbonarti a @:appName Pro?",
|
||||
"answerOne": "Molto probabile",
|
||||
"answerTwo": "Abbastanza probabile",
|
||||
"answerThree": "Non so",
|
||||
"answerFour": "Improbabile",
|
||||
"answerFive": "Molto improbabile"
|
||||
},
|
||||
"questionThree": {
|
||||
"question": "Quale funzionalità Pro hai apprezzato di più durante il tuo abbonamento?",
|
||||
"answerOne": "Collaborazione multiutente",
|
||||
"answerTwo": "Cronologia delle versioni più lunghe",
|
||||
"answerThree": "Risposte AI illimitate",
|
||||
"answerFour": "Accesso ai modelli di intelligenza artificiale locali"
|
||||
},
|
||||
"questionFour": {
|
||||
"question": "Come descriveresti la tua esperienza complessiva con @:appName ?",
|
||||
"answerOne": "Eccezionale",
|
||||
"answerTwo": "Buona",
|
||||
"answerThree": "Nella media",
|
||||
"answerFour": "Sotto la media",
|
||||
"answerFive": "Insoddisfatto"
|
||||
}
|
||||
},
|
||||
"common": {
|
||||
"uploadingFile": "Il file è in fase di caricamento. Non uscire dall'app.",
|
||||
"uploadNotionSuccess": "Il tuo file zip Notion è stato caricato correttamente. Una volta completata l'importazione, riceverai un'email di conferma.",
|
||||
"reset": "Reset"
|
||||
},
|
||||
"menu": {
|
||||
"appearance": "Aspetto",
|
||||
"language": "Lingua",
|
||||
|
||||
Reference in new issue
Block a user