diff --git a/frontend/viewer/README.md b/frontend/viewer/README.md index 753a5440ee..72ee3da6bf 100644 --- a/frontend/viewer/README.md +++ b/frontend/viewer/README.md @@ -37,5 +37,5 @@ For formatted values you can do this: Add a new component with this: ```bash -pnpx shadcn-svelte@next add context-menu +npx shadcn-svelte@next add context-menu ``` diff --git a/frontend/viewer/package.json b/frontend/viewer/package.json index 77149cbbc5..e2c538b3c1 100644 --- a/frontend/viewer/package.json +++ b/frontend/viewer/package.json @@ -74,9 +74,9 @@ "tailwindcss": "catalog:", "tailwindcss-animate": "^1.0.7", "tslib": "catalog:", - "typescript-eslint": "catalog:", "tw-colors": "^3.3.2", "typescript": "catalog:", + "typescript-eslint": "catalog:", "vaul-svelte": "1.0.0-next.6", "vite": "catalog:", "vite-plugin-webfont-dl": "^3.11.1", @@ -85,15 +85,15 @@ "@vitejs/plugin-basic-ssl": "catalog:" }, "dependencies": { + "@ffmpeg/core": "0.12.10", + "@ffmpeg/ffmpeg": "0.12.15", + "@ffmpeg/util": "0.12.2", "@formatjs/intl-durationformat": "^0.7.4", "@lingui/core": "^5.3.3", "@microsoft/dotnet-js-interop": "^8.0.0", "@microsoft/signalr": "^8.0.7", "autoprefixer": "^10.4.21", "fast-json-patch": "^3.1.1", - "@ffmpeg/ffmpeg": "0.12.15", - "@ffmpeg/util": "0.12.2", - "@ffmpeg/core": "0.12.10", "jsdom": "^26.1.0", "just-throttle": "^4.2.0", "postcss": "catalog:", diff --git a/frontend/viewer/src/app.postcss b/frontend/viewer/src/app.postcss index 1b3ecdb44b..c345d90cb4 100644 --- a/frontend/viewer/src/app.postcss +++ b/frontend/viewer/src/app.postcss @@ -26,6 +26,10 @@ .app { @apply bg-background text-foreground; } + + .loading-text { + @apply bg-shimmer animate-shimmer rounded-md text-transparent select-none pointer-events-none; + } } .font-inter { diff --git a/frontend/viewer/src/css-breakpoints.ts b/frontend/viewer/src/css-breakpoints.ts index 7c98dcd38d..5f427284f3 100644 --- a/frontend/viewer/src/css-breakpoints.ts +++ b/frontend/viewer/src/css-breakpoints.ts @@ -1,2 +1,2 @@ -// used in the is-mobile.svelte hook +// used in the is-mobile.svelte hook and for the tailwind md breakpoint export const MOBILE_BREAKPOINT = 768; diff --git a/frontend/viewer/src/lib/components/responsive-dialog/responsive-dialog.svelte b/frontend/viewer/src/lib/components/responsive-dialog/responsive-dialog.svelte index 2fb9a4c42d..1ea4c78438 100644 --- a/frontend/viewer/src/lib/components/responsive-dialog/responsive-dialog.svelte +++ b/frontend/viewer/src/lib/components/responsive-dialog/responsive-dialog.svelte @@ -3,22 +3,27 @@ import * as Dialog from '$lib/components/ui/dialog'; import * as Drawer from '$lib/components/ui/drawer'; import { buttonVariants } from '$lib/components/ui/button'; - import type {PopoverTriggerProps, WithChildren} from 'bits-ui'; + import type {PopoverTriggerProps, WithChildren, WithoutChildren} from 'bits-ui'; import {Icon} from '../ui/icon'; import type {ComponentProps} from 'svelte'; + import {cn} from '$lib/utils'; type TriggerSnippet = PopoverTriggerProps['child']; + type ContentProps = WithoutChildren>; type Props = ComponentProps & { open?: boolean, title: string, trigger?: TriggerSnippet, + contentProps?: ContentProps, }; + let { open = $bindable(false), children, title, trigger, + contentProps, ...rest }: WithChildren = $props(); @@ -26,7 +31,7 @@ {#if !IsMobile.value} - + {title} @@ -36,7 +41,7 @@ {:else} - + diff --git a/frontend/viewer/src/lib/components/ui/accordion/accordion-content.svelte b/frontend/viewer/src/lib/components/ui/accordion/accordion-content.svelte new file mode 100644 index 0000000000..996d8a5a5e --- /dev/null +++ b/frontend/viewer/src/lib/components/ui/accordion/accordion-content.svelte @@ -0,0 +1,24 @@ + + + +
+ {@render children?.()} +
+
diff --git a/frontend/viewer/src/lib/components/ui/accordion/accordion-item.svelte b/frontend/viewer/src/lib/components/ui/accordion/accordion-item.svelte new file mode 100644 index 0000000000..c3da22e799 --- /dev/null +++ b/frontend/viewer/src/lib/components/ui/accordion/accordion-item.svelte @@ -0,0 +1,8 @@ + + + diff --git a/frontend/viewer/src/lib/components/ui/accordion/accordion-trigger.svelte b/frontend/viewer/src/lib/components/ui/accordion/accordion-trigger.svelte new file mode 100644 index 0000000000..fa10d044ba --- /dev/null +++ b/frontend/viewer/src/lib/components/ui/accordion/accordion-trigger.svelte @@ -0,0 +1,29 @@ + + + + .i-mdi-chevron-down]:rotate-180', + className, + )} + {...restProps} + > + {@render children?.()} + + + diff --git a/frontend/viewer/src/lib/components/ui/accordion/index.ts b/frontend/viewer/src/lib/components/ui/accordion/index.ts new file mode 100644 index 0000000000..42ce45e642 --- /dev/null +++ b/frontend/viewer/src/lib/components/ui/accordion/index.ts @@ -0,0 +1,18 @@ +import {Accordion as AccordionPrimitive} from 'bits-ui'; +import Content from './accordion-content.svelte'; +import Item from './accordion-item.svelte'; +import Trigger from './accordion-trigger.svelte'; +// eslint-disable-next-line @typescript-eslint/naming-convention +const Root = AccordionPrimitive.Root; + +export { + Root, + Content, + Item, + Trigger, + // + Root as Accordion, + Content as AccordionContent, + Item as AccordionItem, + Trigger as AccordionTrigger, +}; diff --git a/frontend/viewer/src/lib/components/ui/format/format-duration.ts b/frontend/viewer/src/lib/components/ui/format/format-duration.ts index c449476795..41257abc4e 100644 --- a/frontend/viewer/src/lib/components/ui/format/format-duration.ts +++ b/frontend/viewer/src/lib/components/ui/format/format-duration.ts @@ -5,6 +5,7 @@ import {locale} from 'svelte-i18n-lingui'; const currentLocale = fromStore(locale); type Duration = Pick; +export type SmallestUnit = 'hours' | 'minutes' | 'seconds' | 'milliseconds'; function limitDurationUnits(duration: Duration, maxUnits: number): Duration { const units: (keyof Duration)[] = ['days', 'hours', 'minutes', 'seconds', 'milliseconds']; @@ -52,17 +53,17 @@ export function formatDigitalDuration(value: Duration) { }); } -export function formatDuration(value: Duration, smallestUnit?: 'hours' | 'minutes' | 'seconds' | 'milliseconds', options?: Intl.DurationFormatOptions, maxUnits?: number) { +export function formatDuration(value: Duration, smallestUnit?: SmallestUnit, options?: Intl.DurationFormatOptions, maxUnits?: number) { const formatter = new Intl.DurationFormat(currentLocale.current, options);//has been polyfilled in main.ts const normalized = normalizeDuration(value, smallestUnit); const limitedDuration = maxUnits ? limitDurationUnits(normalized, maxUnits) : normalized; return formatter.format(limitedDuration); } -export function normalizeDuration(value: Duration, smallestUnit?: 'hours' | 'minutes' | 'seconds' | 'milliseconds'): Duration +export function normalizeDuration(value: Duration, smallestUnit?: SmallestUnit): Duration export function normalizeDuration(value: Duration, smallestUnit: 'seconds'): Omit export function normalizeDuration(value: Duration): Duration -export function normalizeDuration(value: Duration, smallestUnit?: 'hours' | 'minutes' | 'seconds' | 'milliseconds'): Duration { +export function normalizeDuration(value: Duration, smallestUnit?: SmallestUnit): Duration { const msPerHour = 3_600_000; const msPerMinute = 60_000; const msPerSecond = 1_000; diff --git a/frontend/viewer/src/lib/components/ui/format/format-relative-date-fn.svelte.ts b/frontend/viewer/src/lib/components/ui/format/format-relative-date-fn.svelte.ts index 2fcf74c893..42289ac37b 100644 --- a/frontend/viewer/src/lib/components/ui/format/format-relative-date-fn.svelte.ts +++ b/frontend/viewer/src/lib/components/ui/format/format-relative-date-fn.svelte.ts @@ -1,14 +1,15 @@ -import {formatDuration} from './format-duration'; -import {locale} from 'svelte-i18n-lingui'; +import {SvelteDate} from 'svelte/reactivity'; +import {formatDuration, type SmallestUnit} from './format-duration'; import {fromStore} from 'svelte/store'; import {gt} from 'svelte-i18n-lingui'; -import {SvelteDate} from 'svelte/reactivity'; +import {locale} from 'svelte-i18n-lingui'; const currentLocale = fromStore(locale); type Config = { defaultValue: string, now: Date, maxUnits?: number, + smallestUnit?: SmallestUnit, } export function formatRelativeDate(value: Date | string | undefined | null, options?: Intl.DurationFormatOptions, config: Config = {defaultValue: '', now: new SvelteDate()}): string { @@ -20,7 +21,7 @@ export function formatRelativeDate(value: Date | string | undefined | null, opti const isPast = diffMs < 0; const absDiffMs = Math.abs(diffMs); - const duration = formatDuration({milliseconds: absDiffMs}, undefined, options, config.maxUnits); + const duration = formatDuration({milliseconds: absDiffMs}, config.smallestUnit, options, config.maxUnits); if (!duration) return config.defaultValue; return isPast ? gt`${duration} ago` : gt`in ${duration}`; diff --git a/frontend/viewer/src/lib/components/ui/format/format-relative-date.svelte b/frontend/viewer/src/lib/components/ui/format/format-relative-date.svelte index 0ed22fdc19..a91fa14c7d 100644 --- a/frontend/viewer/src/lib/components/ui/format/format-relative-date.svelte +++ b/frontend/viewer/src/lib/components/ui/format/format-relative-date.svelte @@ -4,7 +4,8 @@ import type {HTMLAttributes} from 'svelte/elements'; import {SvelteDate} from 'svelte/reactivity'; import Icon from '../icon/icon.svelte'; - import * as Popover from '../popover/index.js'; + import * as Popover from '../popover'; + import type {SmallestUnit} from './format-duration'; type Props = HTMLAttributes & { date: Date | string | undefined | null; @@ -14,6 +15,8 @@ showActualDate?: boolean; actualDateOptions?: Intl.DateTimeFormatOptions; maxUnits?: number; + smallestUnit?: SmallestUnit, + loading?: boolean; }; const { @@ -24,6 +27,8 @@ showActualDate = false, actualDateOptions, maxUnits = 2, + smallestUnit = 'seconds', + loading, ...restProps }: Props = $props(); @@ -50,7 +55,7 @@ }); const formattedRelativeDate = $derived.by(() => { - return formatRelativeDate(date, options, {defaultValue: defaultValue || '', now, maxUnits}); + return formatRelativeDate(date, options, {defaultValue: defaultValue || '', now, maxUnits, smallestUnit}); }); const actualFormattedDate = $derived.by(() => { @@ -60,10 +65,10 @@ {#if showActualDate && actualFormattedDate} - - + + @@ -73,5 +78,5 @@ {:else} - + {/if} diff --git a/frontend/viewer/src/lib/utils/url.svelte.ts b/frontend/viewer/src/lib/utils/url.svelte.ts index b3d0668a2c..035320c682 100644 --- a/frontend/viewer/src/lib/utils/url.svelte.ts +++ b/frontend/viewer/src/lib/utils/url.svelte.ts @@ -1,4 +1,5 @@ -import {createSubscriber, SvelteURL} from 'svelte/reactivity'; +import {SvelteURL, createSubscriber} from 'svelte/reactivity'; + import {queueHistoryChange} from './history'; import {useLocation} from 'svelte-routing'; @@ -48,7 +49,8 @@ export class QueryParamState { if (this.config.replaceOnDefaultValue && isDefault) { if (this.config.allowBack) { if (!this.isOnTopOfHistoryStack()) { - console.warn(`${this.fullKey}: wanted to pop history, but not on top of history stack, ignoring, history entry not removed.`); + console.warn(`${this.fullKey}: wanted to pop history, but not on top of history stack. Pushing new state instead so change is applied.`); + history.pushState(null, '', currentUrl.href); return; } //the last history event was pushed by us so we need to just go back otherwise the next back will do nothing diff --git a/frontend/viewer/src/locales/en.po b/frontend/viewer/src/locales/en.po index 8ba6ad6e32..2bc1118e5e 100644 --- a/frontend/viewer/src/locales/en.po +++ b/frontend/viewer/src/locales/en.po @@ -36,14 +36,6 @@ msgstr "{0} (FieldWorks)" msgid "{0} ago" msgstr "{0} ago" -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Changes" -msgstr "{0} Changes" - -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Commits" -msgstr "{0} Commits" - #: src/lib/components/audio/audio-editor.svelte msgid "{0} MB" msgstr "{0} MB" @@ -52,15 +44,19 @@ msgstr "{0} MB" msgid "{0} Server" msgstr "{0} Server" -#: src/project/SyncDialog.svelte -msgid "{0} synced to FieldWorks. {1} synced to FieldWorks Lite." -msgstr "{0} synced to FieldWorks. {1} synced to FieldWorks Lite." - #: src/project/SyncDialog.svelte #: src/project/SyncDialog.svelte msgid "{num, plural, one {# change} other {# changes}}" msgstr "{num, plural, one {# change} other {# changes}}" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Classic commit} other {# new FieldWorks Classic commits}}" +msgstr "{num, plural, one {# new FieldWorks Classic commit} other {# new FieldWorks Classic commits}}" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Lite commit} other {# new FieldWorks Lite commits}}" +msgstr "{num, plural, one {# new FieldWorks Lite commit} other {# new FieldWorks Lite commits}}" + #: src/lib/history/HistoryView.svelte #: src/lib/activity/ActivityView.svelte msgid "# ago" @@ -130,6 +126,10 @@ msgstr "Add Sense" msgid "Add Word" msgstr "Add Word" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "After the sync, changes made in FW Classic will appear in FW Lite and changes made in FW Lite will appear in FW Classic after the next Send/Receive." +msgstr "After the sync, changes made in FW Classic will appear in FW Lite and changes made in FW Lite will appear in FW Classic after the next Send/Receive." + #: src/project/browse/BrowseView.svelte msgid "an entry" msgstr "an entry" @@ -172,8 +172,8 @@ msgid "Auto" msgstr "Auto" #: src/project/sync/SyncStatusPrimitive.svelte -msgid "Auto sync" -msgstr "Auto sync" +msgid "Auto syncing" +msgstr "Auto syncing" #: src/project/browse/SortMenu.svelte msgid "Best match" @@ -193,6 +193,14 @@ msgstr "Browse" msgid "Cancel" msgstr "Cancel" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changes can also be the result of additional fields being added to new versions of FieldWorks Lite." +msgstr "Changes can also be the result of additional fields being added to new versions of FieldWorks Lite." + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changing the same field twice (e.g.) can result in two commits, but only one change that needs to be applied to FieldWorks Classic. Commits can also consist of multiple changes." +msgstr "Changing the same field twice (e.g.) can result in two commits, but only one change that needs to be applied to FieldWorks Classic. Commits can also consist of multiple changes." + #: src/lib/ThemePicker.svelte msgid "Choose theme" msgstr "Choose theme" @@ -471,10 +479,6 @@ msgstr "Field" msgid "Field Labels" msgstr "Field Labels" -#: src/project/sync/SyncStatusPrimitive.svelte -msgid "FieldWorks Classic" -msgstr "FieldWorks Classic" - #: src/project/sync/SyncStatusPrimitive.svelte msgid "FieldWorks Lite" msgstr "FieldWorks Lite" @@ -620,6 +624,10 @@ msgstr "Last sync: #" msgid "Length:" msgstr "Length:" +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Lexbox" +msgstr "Lexbox" + #: src/home/HomeView.svelte msgid "Lexbox logo" msgstr "Lexbox logo" @@ -741,6 +749,10 @@ msgstr "Never" msgid "New" msgstr "New" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "New data" +msgstr "New data" + #: src/project/PrimaryNewEntryButton.svelte #: src/lib/entry-editor/NewEntryDialog.svelte msgid "New Entry" @@ -785,6 +797,10 @@ msgstr "No history found" msgid "No items found" msgstr "No items found" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "No new data" +msgstr "No new data" + #: src/project/sync/SyncStatusPrimitive.svelte msgid "No server" msgstr "No server" @@ -835,6 +851,10 @@ msgstr "Offline" msgid "Offline, unable to download" msgstr "Offline, unable to download" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "One FieldWorks Classic commit may consist of changes to multiple entries or fields. On the other hand, a commit may only affect data that is not synced to FieldWorks Lite." +msgstr "One FieldWorks Classic commit may consist of changes to multiple entries or fields. On the other hand, a commit may only affect data that is not synced to FieldWorks Lite." + #: src/home/Server.svelte msgid "Open" msgstr "Open" @@ -1056,6 +1076,18 @@ msgstr "Sync" msgid "Sync Changes" msgstr "Sync Changes" +#: src/project/SyncDialog.svelte +msgid "Sync complete. {0} were applied to FieldWorks Classic. {1} were applied to FieldWorks Lite." +msgstr "Sync complete. {0} were applied to FieldWorks Classic. {1} were applied to FieldWorks Lite." + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Sync FieldWorks Lite and FieldWorks Classic" +msgstr "Sync FieldWorks Lite and FieldWorks Classic" + +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Sync your changes with other FieldWorks Lite users" +msgstr "Sync your changes with other FieldWorks Lite users" + #: src/project/ProjectSidebar.svelte msgid "Synced" msgstr "Synced" @@ -1073,8 +1105,8 @@ msgid "Synchronize" msgstr "Synchronize" #: src/project/SyncDialog.svelte -msgid "Synchronizing FieldWorks Lite with FieldWorks..." -msgstr "Synchronizing FieldWorks Lite with FieldWorks..." +msgid "Synchronizing FieldWorks Lite and FieldWorks..." +msgstr "Synchronizing FieldWorks Lite and FieldWorks..." #: src/project/sync/SyncStatusPrimitive.svelte msgid "Syncing..." @@ -1100,6 +1132,14 @@ msgstr "Tasks" msgid "Tell us about a bug or issue you’ve encountered." msgstr "Tell us about a bug or issue you’ve encountered." +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Classic commits will not necessarily match the number of changes shown in the sync result message." +msgstr "The number of FieldWorks Classic commits will not necessarily match the number of changes shown in the sync result message." + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Lite commits will not necessarily match the number of changes shown in the sync result message." +msgstr "The number of FieldWorks Lite commits will not necessarily match the number of changes shown in the sync result message." + #: src/project/tasks/TaskView.svelte msgid "The task you are looking for does not exist." msgstr "The task you are looking for does not exist." @@ -1116,6 +1156,10 @@ msgstr "This project is now open in FieldWorks. To continue working in FieldWork msgid "This task is complete" msgstr "This task is complete" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "This will synchronize the FieldWorks Lite and FieldWorks Classic copies of your project in Lexbox." +msgstr "This will synchronize the FieldWorks Lite and FieldWorks Classic copies of your project in Lexbox." + #: src/project/browse/SearchFilter.svelte msgid "Toggle filters" msgstr "Toggle filters" @@ -1214,6 +1258,11 @@ msgstr "View Configuration" msgid "Where are my projects?" msgstr "Where are my projects?" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Why is that?" +msgstr "Why is that?" + #: src/project/browse/SearchFilter.svelte #: src/project/browse/EntryMenu.svelte #: src/lib/entry-editor/EntryOrSensePicker.svelte diff --git a/frontend/viewer/src/locales/es.po b/frontend/viewer/src/locales/es.po index 903b34b441..0b1ef3cec6 100644 --- a/frontend/viewer/src/locales/es.po +++ b/frontend/viewer/src/locales/es.po @@ -41,14 +41,6 @@ msgstr "{0} (FieldWorks)" msgid "{0} ago" msgstr "{0} hace" -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Changes" -msgstr "Cambios {0}" - -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Commits" -msgstr "{0} Comandos" - #: src/lib/components/audio/audio-editor.svelte msgid "{0} MB" msgstr "{0} MB" @@ -57,15 +49,19 @@ msgstr "{0} MB" msgid "{0} Server" msgstr "{0} Servidor" -#: src/project/SyncDialog.svelte -msgid "{0} synced to FieldWorks. {1} synced to FieldWorks Lite." -msgstr "{0} sincronizado con FieldWorks. {1} sincronizado con FieldWorks Lite." - #: src/project/SyncDialog.svelte #: src/project/SyncDialog.svelte msgid "{num, plural, one {# change} other {# changes}}" msgstr "{num, plural, one {# cambio} other {# cambios}}" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Classic commit} other {# new FieldWorks Classic commits}}" +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Lite commit} other {# new FieldWorks Lite commits}}" +msgstr "" + #: src/lib/history/HistoryView.svelte #: src/lib/activity/ActivityView.svelte msgid "# ago" @@ -135,6 +131,10 @@ msgstr "Añadir acepción" msgid "Add Word" msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "After the sync, changes made in FW Classic will appear in FW Lite and changes made in FW Lite will appear in FW Classic after the next Send/Receive." +msgstr "" + #: src/project/browse/BrowseView.svelte msgid "an entry" msgstr "una entrada" @@ -177,8 +177,8 @@ msgid "Auto" msgstr "Auto" #: src/project/sync/SyncStatusPrimitive.svelte -msgid "Auto sync" -msgstr "Auto sincronización" +msgid "Auto syncing" +msgstr "" #: src/project/browse/SortMenu.svelte msgid "Best match" @@ -198,6 +198,14 @@ msgstr "Visite" msgid "Cancel" msgstr "Cancelar" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changes can also be the result of additional fields being added to new versions of FieldWorks Lite." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changing the same field twice (e.g.) can result in two commits, but only one change that needs to be applied to FieldWorks Classic. Commits can also consist of multiple changes." +msgstr "" + #: src/lib/ThemePicker.svelte msgid "Choose theme" msgstr "" @@ -476,10 +484,6 @@ msgstr "Campo" msgid "Field Labels" msgstr "Etiquetas de campo" -#: src/project/sync/SyncStatusPrimitive.svelte -msgid "FieldWorks Classic" -msgstr "FieldWorks clásico" - #: src/project/sync/SyncStatusPrimitive.svelte msgid "FieldWorks Lite" msgstr "FieldWorks Lite" @@ -625,6 +629,10 @@ msgstr "" msgid "Length:" msgstr "Longitud:" +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Lexbox" +msgstr "" + #: src/home/HomeView.svelte msgid "Lexbox logo" msgstr "Logotipo de Lexbox" @@ -746,6 +754,10 @@ msgstr "Nunca" msgid "New" msgstr "Nuevo" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "New data" +msgstr "" + #: src/project/PrimaryNewEntryButton.svelte #: src/lib/entry-editor/NewEntryDialog.svelte msgid "New Entry" @@ -790,6 +802,10 @@ msgstr "No se han encontrado antecedentes" msgid "No items found" msgstr "No se han encontrado artículos" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "No new data" +msgstr "" + #: src/project/sync/SyncStatusPrimitive.svelte msgid "No server" msgstr "" @@ -840,6 +856,10 @@ msgstr "Fuera de línea" msgid "Offline, unable to download" msgstr "Desconectado, no se puede descargar" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "One FieldWorks Classic commit may consist of changes to multiple entries or fields. On the other hand, a commit may only affect data that is not synced to FieldWorks Lite." +msgstr "" + #: src/home/Server.svelte msgid "Open" msgstr "Abrir" @@ -1061,6 +1081,18 @@ msgstr "Sincronizar" msgid "Sync Changes" msgstr "Sincronizar Cambios" +#: src/project/SyncDialog.svelte +msgid "Sync complete. {0} were applied to FieldWorks Classic. {1} were applied to FieldWorks Lite." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Sync FieldWorks Lite and FieldWorks Classic" +msgstr "" + +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Sync your changes with other FieldWorks Lite users" +msgstr "" + #: src/project/ProjectSidebar.svelte msgid "Synced" msgstr "Sincronizado" @@ -1078,8 +1110,8 @@ msgid "Synchronize" msgstr "Sincronice" #: src/project/SyncDialog.svelte -msgid "Synchronizing FieldWorks Lite with FieldWorks..." -msgstr "Sincronización de FieldWorks Lite con FieldWorks..." +msgid "Synchronizing FieldWorks Lite and FieldWorks..." +msgstr "" #: src/project/sync/SyncStatusPrimitive.svelte msgid "Syncing..." @@ -1105,6 +1137,14 @@ msgstr "Tareas" msgid "Tell us about a bug or issue you’ve encountered." msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Classic commits will not necessarily match the number of changes shown in the sync result message." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Lite commits will not necessarily match the number of changes shown in the sync result message." +msgstr "" + #: src/project/tasks/TaskView.svelte msgid "The task you are looking for does not exist." msgstr "La tarea que buscas no existe." @@ -1121,6 +1161,10 @@ msgstr "Este proyecto está ahora abierto en FieldWorks. Para continuar trabajan msgid "This task is complete" msgstr "Esta tarea está completa" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "This will synchronize the FieldWorks Lite and FieldWorks Classic copies of your project in Lexbox." +msgstr "" + #: src/project/browse/SearchFilter.svelte msgid "Toggle filters" msgstr "Alternar filtros" @@ -1219,6 +1263,11 @@ msgstr "Ver configuración" msgid "Where are my projects?" msgstr "¿Dónde están mis proyectos?" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Why is that?" +msgstr "" + #: src/project/browse/SearchFilter.svelte #: src/project/browse/EntryMenu.svelte #: src/lib/entry-editor/EntryOrSensePicker.svelte diff --git a/frontend/viewer/src/locales/fr.po b/frontend/viewer/src/locales/fr.po index d54f205a6c..a76949a34d 100644 --- a/frontend/viewer/src/locales/fr.po +++ b/frontend/viewer/src/locales/fr.po @@ -41,14 +41,6 @@ msgstr "{0} (FieldWorks)" msgid "{0} ago" msgstr "il y a {0}" -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Changes" -msgstr "Changements {0}" - -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Commits" -msgstr "Commits {0}" - #: src/lib/components/audio/audio-editor.svelte msgid "{0} MB" msgstr "{0} MB" @@ -57,15 +49,19 @@ msgstr "{0} MB" msgid "{0} Server" msgstr "{0} Serveur" -#: src/project/SyncDialog.svelte -msgid "{0} synced to FieldWorks. {1} synced to FieldWorks Lite." -msgstr "{0} synchronisé avec FieldWorks. {1} synchronisé avec FieldWorks Lite." - #: src/project/SyncDialog.svelte #: src/project/SyncDialog.svelte msgid "{num, plural, one {# change} other {# changes}}" msgstr "{num, plural, one {# changement} other {# changements}}" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Classic commit} other {# new FieldWorks Classic commits}}" +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Lite commit} other {# new FieldWorks Lite commits}}" +msgstr "" + #: src/lib/history/HistoryView.svelte #: src/lib/activity/ActivityView.svelte msgid "# ago" @@ -135,6 +131,10 @@ msgstr "Ajouter du sens" msgid "Add Word" msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "After the sync, changes made in FW Classic will appear in FW Lite and changes made in FW Lite will appear in FW Classic after the next Send/Receive." +msgstr "" + #: src/project/browse/BrowseView.svelte msgid "an entry" msgstr "une entrée" @@ -177,8 +177,8 @@ msgid "Auto" msgstr "Auto" #: src/project/sync/SyncStatusPrimitive.svelte -msgid "Auto sync" -msgstr "Synchronisation automatique" +msgid "Auto syncing" +msgstr "" #: src/project/browse/SortMenu.svelte msgid "Best match" @@ -198,6 +198,14 @@ msgstr "Parcourir" msgid "Cancel" msgstr "Annuler" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changes can also be the result of additional fields being added to new versions of FieldWorks Lite." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changing the same field twice (e.g.) can result in two commits, but only one change that needs to be applied to FieldWorks Classic. Commits can also consist of multiple changes." +msgstr "" + #: src/lib/ThemePicker.svelte msgid "Choose theme" msgstr "" @@ -476,10 +484,6 @@ msgstr "Champ d'application" msgid "Field Labels" msgstr "Étiquettes de champ" -#: src/project/sync/SyncStatusPrimitive.svelte -msgid "FieldWorks Classic" -msgstr "FieldWorks Classique" - #: src/project/sync/SyncStatusPrimitive.svelte msgid "FieldWorks Lite" msgstr "FieldWorks Lite" @@ -625,6 +629,10 @@ msgstr "" msgid "Length:" msgstr "Longueur :" +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Lexbox" +msgstr "" + #: src/home/HomeView.svelte msgid "Lexbox logo" msgstr "Logo Lexbox" @@ -746,6 +754,10 @@ msgstr "Jamais" msgid "New" msgstr "Nouveau" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "New data" +msgstr "" + #: src/project/PrimaryNewEntryButton.svelte #: src/lib/entry-editor/NewEntryDialog.svelte msgid "New Entry" @@ -790,6 +802,10 @@ msgstr "Aucun antécédent n'a été trouvé" msgid "No items found" msgstr "Aucun élément trouvé" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "No new data" +msgstr "" + #: src/project/sync/SyncStatusPrimitive.svelte msgid "No server" msgstr "" @@ -840,6 +856,10 @@ msgstr "Hors ligne" msgid "Offline, unable to download" msgstr "Hors ligne, impossible de télécharger" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "One FieldWorks Classic commit may consist of changes to multiple entries or fields. On the other hand, a commit may only affect data that is not synced to FieldWorks Lite." +msgstr "" + #: src/home/Server.svelte msgid "Open" msgstr "Ouvert" @@ -1061,6 +1081,18 @@ msgstr "Synchroniser" msgid "Sync Changes" msgstr "Synchroniser les modifications" +#: src/project/SyncDialog.svelte +msgid "Sync complete. {0} were applied to FieldWorks Classic. {1} were applied to FieldWorks Lite." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Sync FieldWorks Lite and FieldWorks Classic" +msgstr "" + +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Sync your changes with other FieldWorks Lite users" +msgstr "" + #: src/project/ProjectSidebar.svelte msgid "Synced" msgstr "Synchronisé" @@ -1078,8 +1110,8 @@ msgid "Synchronize" msgstr "Synchroniser" #: src/project/SyncDialog.svelte -msgid "Synchronizing FieldWorks Lite with FieldWorks..." -msgstr "Synchronisation de FieldWorks Lite avec FieldWorks..." +msgid "Synchronizing FieldWorks Lite and FieldWorks..." +msgstr "" #: src/project/sync/SyncStatusPrimitive.svelte msgid "Syncing..." @@ -1105,6 +1137,14 @@ msgstr "Tâches" msgid "Tell us about a bug or issue you’ve encountered." msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Classic commits will not necessarily match the number of changes shown in the sync result message." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Lite commits will not necessarily match the number of changes shown in the sync result message." +msgstr "" + #: src/project/tasks/TaskView.svelte msgid "The task you are looking for does not exist." msgstr "La tâche que vous cherchez n'existe pas." @@ -1121,6 +1161,10 @@ msgstr "Ce projet est maintenant ouvert dans FieldWorks. Pour continuer à trava msgid "This task is complete" msgstr "Cette tâche est terminée" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "This will synchronize the FieldWorks Lite and FieldWorks Classic copies of your project in Lexbox." +msgstr "" + #: src/project/browse/SearchFilter.svelte msgid "Toggle filters" msgstr "Filtres à bascule" @@ -1219,6 +1263,11 @@ msgstr "Voir la configuration" msgid "Where are my projects?" msgstr "Où sont mes projets ?" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Why is that?" +msgstr "" + #: src/project/browse/SearchFilter.svelte #: src/project/browse/EntryMenu.svelte #: src/lib/entry-editor/EntryOrSensePicker.svelte diff --git a/frontend/viewer/src/locales/id.po b/frontend/viewer/src/locales/id.po index d55c05afc3..dc5df71ea6 100644 --- a/frontend/viewer/src/locales/id.po +++ b/frontend/viewer/src/locales/id.po @@ -41,14 +41,6 @@ msgstr "{0} (FieldWorks)" msgid "{0} ago" msgstr "{0} yang lalu" -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Changes" -msgstr "{0} Perubahan" - -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Commits" -msgstr "{0} Komitmen" - #: src/lib/components/audio/audio-editor.svelte msgid "{0} MB" msgstr "{0} MB" @@ -57,15 +49,19 @@ msgstr "{0} MB" msgid "{0} Server" msgstr "{0} Server" -#: src/project/SyncDialog.svelte -msgid "{0} synced to FieldWorks. {1} synced to FieldWorks Lite." -msgstr "{0} disinkronkan ke FieldWorks. {1} disinkronkan ke FieldWorks Lite." - #: src/project/SyncDialog.svelte #: src/project/SyncDialog.svelte msgid "{num, plural, one {# change} other {# changes}}" msgstr "{num, plural, other {# perubahan}}" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Classic commit} other {# new FieldWorks Classic commits}}" +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Lite commit} other {# new FieldWorks Lite commits}}" +msgstr "" + #: src/lib/history/HistoryView.svelte #: src/lib/activity/ActivityView.svelte msgid "# ago" @@ -135,6 +131,10 @@ msgstr "Tambahkan Pengertian" msgid "Add Word" msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "After the sync, changes made in FW Classic will appear in FW Lite and changes made in FW Lite will appear in FW Classic after the next Send/Receive." +msgstr "" + #: src/project/browse/BrowseView.svelte msgid "an entry" msgstr "sebuah entri" @@ -177,8 +177,8 @@ msgid "Auto" msgstr "Otomatis" #: src/project/sync/SyncStatusPrimitive.svelte -msgid "Auto sync" -msgstr "Sinkronisasi otomatis" +msgid "Auto syncing" +msgstr "" #: src/project/browse/SortMenu.svelte msgid "Best match" @@ -198,6 +198,14 @@ msgstr "Jelajahi" msgid "Cancel" msgstr "Batal" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changes can also be the result of additional fields being added to new versions of FieldWorks Lite." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changing the same field twice (e.g.) can result in two commits, but only one change that needs to be applied to FieldWorks Classic. Commits can also consist of multiple changes." +msgstr "" + #: src/lib/ThemePicker.svelte msgid "Choose theme" msgstr "" @@ -476,10 +484,6 @@ msgstr "Bidang" msgid "Field Labels" msgstr "Label Bidang" -#: src/project/sync/SyncStatusPrimitive.svelte -msgid "FieldWorks Classic" -msgstr "FieldWorks Classic" - #: src/project/sync/SyncStatusPrimitive.svelte msgid "FieldWorks Lite" msgstr "FieldWorks Lite" @@ -625,6 +629,10 @@ msgstr "" msgid "Length:" msgstr "Panjang:" +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Lexbox" +msgstr "" + #: src/home/HomeView.svelte msgid "Lexbox logo" msgstr "Logo Lexbox" @@ -746,6 +754,10 @@ msgstr "Tidak pernah." msgid "New" msgstr "Baru" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "New data" +msgstr "" + #: src/project/PrimaryNewEntryButton.svelte #: src/lib/entry-editor/NewEntryDialog.svelte msgid "New Entry" @@ -790,6 +802,10 @@ msgstr "Tidak ditemukan riwayat" msgid "No items found" msgstr "Tidak ada barang yang ditemukan" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "No new data" +msgstr "" + #: src/project/sync/SyncStatusPrimitive.svelte msgid "No server" msgstr "" @@ -840,6 +856,10 @@ msgstr "Offline" msgid "Offline, unable to download" msgstr "Offline, tidak dapat mengunduh" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "One FieldWorks Classic commit may consist of changes to multiple entries or fields. On the other hand, a commit may only affect data that is not synced to FieldWorks Lite." +msgstr "" + #: src/home/Server.svelte msgid "Open" msgstr "Buka" @@ -1061,6 +1081,18 @@ msgstr "Sinkronisasi" msgid "Sync Changes" msgstr "Perubahan Sinkronisasi" +#: src/project/SyncDialog.svelte +msgid "Sync complete. {0} were applied to FieldWorks Classic. {1} were applied to FieldWorks Lite." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Sync FieldWorks Lite and FieldWorks Classic" +msgstr "" + +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Sync your changes with other FieldWorks Lite users" +msgstr "" + #: src/project/ProjectSidebar.svelte msgid "Synced" msgstr "Disinkronkan" @@ -1078,8 +1110,8 @@ msgid "Synchronize" msgstr "Sinkronisasi" #: src/project/SyncDialog.svelte -msgid "Synchronizing FieldWorks Lite with FieldWorks..." -msgstr "Menyinkronkan FieldWorks Lite dengan FieldWorks..." +msgid "Synchronizing FieldWorks Lite and FieldWorks..." +msgstr "" #: src/project/sync/SyncStatusPrimitive.svelte msgid "Syncing..." @@ -1105,6 +1137,14 @@ msgstr "Tugas" msgid "Tell us about a bug or issue you’ve encountered." msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Classic commits will not necessarily match the number of changes shown in the sync result message." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Lite commits will not necessarily match the number of changes shown in the sync result message." +msgstr "" + #: src/project/tasks/TaskView.svelte msgid "The task you are looking for does not exist." msgstr "Tugas yang Anda cari tidak ada." @@ -1121,6 +1161,10 @@ msgstr "Proyek ini sekarang terbuka di FieldWorks. Untuk melanjutkan bekerja di msgid "This task is complete" msgstr "Tugas ini selesai" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "This will synchronize the FieldWorks Lite and FieldWorks Classic copies of your project in Lexbox." +msgstr "" + #: src/project/browse/SearchFilter.svelte msgid "Toggle filters" msgstr "Beralih filter" @@ -1219,6 +1263,11 @@ msgstr "Lihat Konfigurasi" msgid "Where are my projects?" msgstr "Di mana proyek saya?" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Why is that?" +msgstr "" + #: src/project/browse/SearchFilter.svelte #: src/project/browse/EntryMenu.svelte #: src/lib/entry-editor/EntryOrSensePicker.svelte diff --git a/frontend/viewer/src/locales/ko.po b/frontend/viewer/src/locales/ko.po index ba81e2d64a..f1be00ab15 100644 --- a/frontend/viewer/src/locales/ko.po +++ b/frontend/viewer/src/locales/ko.po @@ -41,14 +41,6 @@ msgstr "{0} (FieldWorks)" msgid "{0} ago" msgstr "{0} 전" -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Changes" -msgstr "{0} 변경 사항" - -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Commits" -msgstr "{0} 커밋" - #: src/lib/components/audio/audio-editor.svelte msgid "{0} MB" msgstr "{0} MB" @@ -57,15 +49,19 @@ msgstr "{0} MB" msgid "{0} Server" msgstr "{0} 서버" -#: src/project/SyncDialog.svelte -msgid "{0} synced to FieldWorks. {1} synced to FieldWorks Lite." -msgstr "{0} FieldWorks에 동기화됨. {1} FieldWorks Lite에 동기화됨." - #: src/project/SyncDialog.svelte #: src/project/SyncDialog.svelte msgid "{num, plural, one {# change} other {# changes}}" msgstr "{num, plural, other {#개 변경}}" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Classic commit} other {# new FieldWorks Classic commits}}" +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Lite commit} other {# new FieldWorks Lite commits}}" +msgstr "" + #: src/lib/history/HistoryView.svelte #: src/lib/activity/ActivityView.svelte msgid "# ago" @@ -135,6 +131,10 @@ msgstr "센스 추가" msgid "Add Word" msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "After the sync, changes made in FW Classic will appear in FW Lite and changes made in FW Lite will appear in FW Classic after the next Send/Receive." +msgstr "" + #: src/project/browse/BrowseView.svelte msgid "an entry" msgstr "항목" @@ -177,8 +177,8 @@ msgid "Auto" msgstr "자동" #: src/project/sync/SyncStatusPrimitive.svelte -msgid "Auto sync" -msgstr "자동 동기화" +msgid "Auto syncing" +msgstr "" #: src/project/browse/SortMenu.svelte msgid "Best match" @@ -198,6 +198,14 @@ msgstr "찾아보기" msgid "Cancel" msgstr "취소" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changes can also be the result of additional fields being added to new versions of FieldWorks Lite." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changing the same field twice (e.g.) can result in two commits, but only one change that needs to be applied to FieldWorks Classic. Commits can also consist of multiple changes." +msgstr "" + #: src/lib/ThemePicker.svelte msgid "Choose theme" msgstr "" @@ -476,10 +484,6 @@ msgstr "필드" msgid "Field Labels" msgstr "필드 레이블" -#: src/project/sync/SyncStatusPrimitive.svelte -msgid "FieldWorks Classic" -msgstr "FieldWorks 클래식" - #: src/project/sync/SyncStatusPrimitive.svelte msgid "FieldWorks Lite" msgstr "FieldWorks Lite" @@ -625,6 +629,10 @@ msgstr "" msgid "Length:" msgstr "길이:" +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Lexbox" +msgstr "" + #: src/home/HomeView.svelte msgid "Lexbox logo" msgstr "렉스박스 로고" @@ -746,6 +754,10 @@ msgstr "절대로" msgid "New" msgstr "신규" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "New data" +msgstr "" + #: src/project/PrimaryNewEntryButton.svelte #: src/lib/entry-editor/NewEntryDialog.svelte msgid "New Entry" @@ -790,6 +802,10 @@ msgstr "기록을 찾을 수 없습니다." msgid "No items found" msgstr "항목을 찾을 수 없습니다." +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "No new data" +msgstr "" + #: src/project/sync/SyncStatusPrimitive.svelte msgid "No server" msgstr "" @@ -840,6 +856,10 @@ msgstr "오프라인" msgid "Offline, unable to download" msgstr "오프라인 상태, 다운로드할 수 없음" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "One FieldWorks Classic commit may consist of changes to multiple entries or fields. On the other hand, a commit may only affect data that is not synced to FieldWorks Lite." +msgstr "" + #: src/home/Server.svelte msgid "Open" msgstr "열기" @@ -1061,6 +1081,18 @@ msgstr "동기화" msgid "Sync Changes" msgstr "동기화 변경 사항" +#: src/project/SyncDialog.svelte +msgid "Sync complete. {0} were applied to FieldWorks Classic. {1} were applied to FieldWorks Lite." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Sync FieldWorks Lite and FieldWorks Classic" +msgstr "" + +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Sync your changes with other FieldWorks Lite users" +msgstr "" + #: src/project/ProjectSidebar.svelte msgid "Synced" msgstr "동기화" @@ -1078,8 +1110,8 @@ msgid "Synchronize" msgstr "동기화" #: src/project/SyncDialog.svelte -msgid "Synchronizing FieldWorks Lite with FieldWorks..." -msgstr "FieldWorks Lite와 FieldWorks 동기화..." +msgid "Synchronizing FieldWorks Lite and FieldWorks..." +msgstr "" #: src/project/sync/SyncStatusPrimitive.svelte msgid "Syncing..." @@ -1105,6 +1137,14 @@ msgstr "작업" msgid "Tell us about a bug or issue you’ve encountered." msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Classic commits will not necessarily match the number of changes shown in the sync result message." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Lite commits will not necessarily match the number of changes shown in the sync result message." +msgstr "" + #: src/project/tasks/TaskView.svelte msgid "The task you are looking for does not exist." msgstr "찾고 있는 작업이 존재하지 않습니다." @@ -1121,6 +1161,10 @@ msgstr "이제 이 프로젝트가 FieldWorks에서 열렸습니다. FieldWorks msgid "This task is complete" msgstr "이 작업이 완료되었습니다." +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "This will synchronize the FieldWorks Lite and FieldWorks Classic copies of your project in Lexbox." +msgstr "" + #: src/project/browse/SearchFilter.svelte msgid "Toggle filters" msgstr "필터 토글" @@ -1219,6 +1263,11 @@ msgstr "구성 보기" msgid "Where are my projects?" msgstr "내 프로젝트는 어디에 있나요?" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Why is that?" +msgstr "" + #: src/project/browse/SearchFilter.svelte #: src/project/browse/EntryMenu.svelte #: src/lib/entry-editor/EntryOrSensePicker.svelte diff --git a/frontend/viewer/src/locales/ms.po b/frontend/viewer/src/locales/ms.po index 3e86e1f962..9586244334 100644 --- a/frontend/viewer/src/locales/ms.po +++ b/frontend/viewer/src/locales/ms.po @@ -41,14 +41,6 @@ msgstr "{0} (FieldWorks)" msgid "{0} ago" msgstr "" -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Changes" -msgstr "" - -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Commits" -msgstr "" - #: src/lib/components/audio/audio-editor.svelte msgid "{0} MB" msgstr "{0} MB" @@ -57,15 +49,19 @@ msgstr "{0} MB" msgid "{0} Server" msgstr "Pelayan {0}" -#: src/project/SyncDialog.svelte -msgid "{0} synced to FieldWorks. {1} synced to FieldWorks Lite." -msgstr "{0} disegerakkan ke FieldWorks. {1} disegerakkan ke FieldWorks Lite." - #: src/project/SyncDialog.svelte #: src/project/SyncDialog.svelte msgid "{num, plural, one {# change} other {# changes}}" msgstr "{num, plural, other {# perubahan}}" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Classic commit} other {# new FieldWorks Classic commits}}" +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Lite commit} other {# new FieldWorks Lite commits}}" +msgstr "" + #: src/lib/history/HistoryView.svelte #: src/lib/activity/ActivityView.svelte msgid "# ago" @@ -135,6 +131,10 @@ msgstr "Tambah Makna" msgid "Add Word" msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "After the sync, changes made in FW Classic will appear in FW Lite and changes made in FW Lite will appear in FW Classic after the next Send/Receive." +msgstr "" + #: src/project/browse/BrowseView.svelte msgid "an entry" msgstr "satu entri" @@ -177,7 +177,7 @@ msgid "Auto" msgstr "Auto" #: src/project/sync/SyncStatusPrimitive.svelte -msgid "Auto sync" +msgid "Auto syncing" msgstr "" #: src/project/browse/SortMenu.svelte @@ -198,6 +198,14 @@ msgstr "Semak seimbas (Melihat-lihat)" msgid "Cancel" msgstr "Batal" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changes can also be the result of additional fields being added to new versions of FieldWorks Lite." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changing the same field twice (e.g.) can result in two commits, but only one change that needs to be applied to FieldWorks Classic. Commits can also consist of multiple changes." +msgstr "" + #: src/lib/ThemePicker.svelte msgid "Choose theme" msgstr "" @@ -476,10 +484,6 @@ msgstr "Bidang" msgid "Field Labels" msgstr "Label Medan" -#: src/project/sync/SyncStatusPrimitive.svelte -msgid "FieldWorks Classic" -msgstr "" - #: src/project/sync/SyncStatusPrimitive.svelte msgid "FieldWorks Lite" msgstr "" @@ -625,6 +629,10 @@ msgstr "" msgid "Length:" msgstr "Panjang:" +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Lexbox" +msgstr "" + #: src/home/HomeView.svelte msgid "Lexbox logo" msgstr "Logo Lexbox" @@ -746,6 +754,10 @@ msgstr "Tidak Pernah" msgid "New" msgstr "Baru" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "New data" +msgstr "" + #: src/project/PrimaryNewEntryButton.svelte #: src/lib/entry-editor/NewEntryDialog.svelte msgid "New Entry" @@ -790,6 +802,10 @@ msgstr "Tiada sejarah ditemui" msgid "No items found" msgstr "Tiada item ditemui" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "No new data" +msgstr "" + #: src/project/sync/SyncStatusPrimitive.svelte msgid "No server" msgstr "" @@ -840,6 +856,10 @@ msgstr "Luar talian" msgid "Offline, unable to download" msgstr "Luar talian, tidak dapat memuat turun" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "One FieldWorks Classic commit may consist of changes to multiple entries or fields. On the other hand, a commit may only affect data that is not synced to FieldWorks Lite." +msgstr "" + #: src/home/Server.svelte msgid "Open" msgstr "" @@ -1061,6 +1081,18 @@ msgstr "" msgid "Sync Changes" msgstr "" +#: src/project/SyncDialog.svelte +msgid "Sync complete. {0} were applied to FieldWorks Classic. {1} were applied to FieldWorks Lite." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Sync FieldWorks Lite and FieldWorks Classic" +msgstr "" + +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Sync your changes with other FieldWorks Lite users" +msgstr "" + #: src/project/ProjectSidebar.svelte msgid "Synced" msgstr "Disegerakkan" @@ -1078,8 +1110,8 @@ msgid "Synchronize" msgstr "Segerakkan" #: src/project/SyncDialog.svelte -msgid "Synchronizing FieldWorks Lite with FieldWorks..." -msgstr "Menyegerakkan FieldWorks Lite dengan FieldWorks..." +msgid "Synchronizing FieldWorks Lite and FieldWorks..." +msgstr "" #: src/project/sync/SyncStatusPrimitive.svelte msgid "Syncing..." @@ -1105,6 +1137,14 @@ msgstr "Tugasan" msgid "Tell us about a bug or issue you’ve encountered." msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Classic commits will not necessarily match the number of changes shown in the sync result message." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Lite commits will not necessarily match the number of changes shown in the sync result message." +msgstr "" + #: src/project/tasks/TaskView.svelte msgid "The task you are looking for does not exist." msgstr "" @@ -1121,6 +1161,10 @@ msgstr "Projek ini kini dibuka dalam FieldWorks. Untuk terus bekerja dalam Field msgid "This task is complete" msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "This will synchronize the FieldWorks Lite and FieldWorks Classic copies of your project in Lexbox." +msgstr "" + #: src/project/browse/SearchFilter.svelte msgid "Toggle filters" msgstr "Togol penapis" @@ -1219,6 +1263,11 @@ msgstr "Lihat Konfigurasi" msgid "Where are my projects?" msgstr "Di manakah projek saya?" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Why is that?" +msgstr "" + #: src/project/browse/SearchFilter.svelte #: src/project/browse/EntryMenu.svelte #: src/lib/entry-editor/EntryOrSensePicker.svelte diff --git a/frontend/viewer/src/locales/sw.po b/frontend/viewer/src/locales/sw.po index 7e2c44a0d5..fa24c1221c 100644 --- a/frontend/viewer/src/locales/sw.po +++ b/frontend/viewer/src/locales/sw.po @@ -41,14 +41,6 @@ msgstr "" msgid "{0} ago" msgstr "" -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Changes" -msgstr "" - -#: src/project/sync/FwLiteToFwMergeDetails.svelte -msgid "{0} Commits" -msgstr "" - #: src/lib/components/audio/audio-editor.svelte msgid "{0} MB" msgstr "" @@ -57,15 +49,19 @@ msgstr "" msgid "{0} Server" msgstr "" -#: src/project/SyncDialog.svelte -msgid "{0} synced to FieldWorks. {1} synced to FieldWorks Lite." -msgstr "" - #: src/project/SyncDialog.svelte #: src/project/SyncDialog.svelte msgid "{num, plural, one {# change} other {# changes}}" msgstr "{num, plural, other {# mabadiliko}}" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Classic commit} other {# new FieldWorks Classic commits}}" +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "{num, plural, one {# new FieldWorks Lite commit} other {# new FieldWorks Lite commits}}" +msgstr "" + #: src/lib/history/HistoryView.svelte #: src/lib/activity/ActivityView.svelte msgid "# ago" @@ -135,6 +131,10 @@ msgstr "" msgid "Add Word" msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "After the sync, changes made in FW Classic will appear in FW Lite and changes made in FW Lite will appear in FW Classic after the next Send/Receive." +msgstr "" + #: src/project/browse/BrowseView.svelte msgid "an entry" msgstr "" @@ -177,7 +177,7 @@ msgid "Auto" msgstr "" #: src/project/sync/SyncStatusPrimitive.svelte -msgid "Auto sync" +msgid "Auto syncing" msgstr "" #: src/project/browse/SortMenu.svelte @@ -198,6 +198,14 @@ msgstr "Angalia" msgid "Cancel" msgstr "Ghairi" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changes can also be the result of additional fields being added to new versions of FieldWorks Lite." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Changing the same field twice (e.g.) can result in two commits, but only one change that needs to be applied to FieldWorks Classic. Commits can also consist of multiple changes." +msgstr "" + #: src/lib/ThemePicker.svelte msgid "Choose theme" msgstr "" @@ -476,10 +484,6 @@ msgstr "" msgid "Field Labels" msgstr "" -#: src/project/sync/SyncStatusPrimitive.svelte -msgid "FieldWorks Classic" -msgstr "" - #: src/project/sync/SyncStatusPrimitive.svelte msgid "FieldWorks Lite" msgstr "" @@ -625,6 +629,10 @@ msgstr "" msgid "Length:" msgstr "" +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Lexbox" +msgstr "" + #: src/home/HomeView.svelte msgid "Lexbox logo" msgstr "" @@ -746,6 +754,10 @@ msgstr "Kamwe" msgid "New" msgstr "Mpya" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "New data" +msgstr "" + #: src/project/PrimaryNewEntryButton.svelte #: src/lib/entry-editor/NewEntryDialog.svelte msgid "New Entry" @@ -790,6 +802,10 @@ msgstr "" msgid "No items found" msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "No new data" +msgstr "" + #: src/project/sync/SyncStatusPrimitive.svelte msgid "No server" msgstr "" @@ -840,6 +856,10 @@ msgstr "" msgid "Offline, unable to download" msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "One FieldWorks Classic commit may consist of changes to multiple entries or fields. On the other hand, a commit may only affect data that is not synced to FieldWorks Lite." +msgstr "" + #: src/home/Server.svelte msgid "Open" msgstr "" @@ -1061,6 +1081,18 @@ msgstr "" msgid "Sync Changes" msgstr "" +#: src/project/SyncDialog.svelte +msgid "Sync complete. {0} were applied to FieldWorks Classic. {1} were applied to FieldWorks Lite." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Sync FieldWorks Lite and FieldWorks Classic" +msgstr "" + +#: src/project/sync/SyncStatusPrimitive.svelte +msgid "Sync your changes with other FieldWorks Lite users" +msgstr "" + #: src/project/ProjectSidebar.svelte msgid "Synced" msgstr "" @@ -1078,7 +1110,7 @@ msgid "Synchronize" msgstr "" #: src/project/SyncDialog.svelte -msgid "Synchronizing FieldWorks Lite with FieldWorks..." +msgid "Synchronizing FieldWorks Lite and FieldWorks..." msgstr "" #: src/project/sync/SyncStatusPrimitive.svelte @@ -1105,6 +1137,14 @@ msgstr "Jukumu" msgid "Tell us about a bug or issue you’ve encountered." msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Classic commits will not necessarily match the number of changes shown in the sync result message." +msgstr "" + +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "The number of FieldWorks Lite commits will not necessarily match the number of changes shown in the sync result message." +msgstr "" + #: src/project/tasks/TaskView.svelte msgid "The task you are looking for does not exist." msgstr "" @@ -1121,6 +1161,10 @@ msgstr "" msgid "This task is complete" msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "This will synchronize the FieldWorks Lite and FieldWorks Classic copies of your project in Lexbox." +msgstr "" + #: src/project/browse/SearchFilter.svelte msgid "Toggle filters" msgstr "" @@ -1219,6 +1263,11 @@ msgstr "" msgid "Where are my projects?" msgstr "" +#: src/project/sync/FwLiteToFwMergeDetails.svelte +#: src/project/sync/FwLiteToFwMergeDetails.svelte +msgid "Why is that?" +msgstr "" + #: src/project/browse/SearchFilter.svelte #: src/project/browse/EntryMenu.svelte #: src/lib/entry-editor/EntryOrSensePicker.svelte diff --git a/frontend/viewer/src/project/SyncDialog.svelte b/frontend/viewer/src/project/SyncDialog.svelte index b3b7f906bb..92260456cc 100644 --- a/frontend/viewer/src/project/SyncDialog.svelte +++ b/frontend/viewer/src/project/SyncDialog.svelte @@ -4,7 +4,6 @@ - - - - {$t`Sync Changes`} - - - - + + + diff --git a/frontend/viewer/src/project/sync/FwLiteToFwMergeDetails.svelte b/frontend/viewer/src/project/sync/FwLiteToFwMergeDetails.svelte index 5c286e48fb..9b981f6799 100644 --- a/frontend/viewer/src/project/sync/FwLiteToFwMergeDetails.svelte +++ b/frontend/viewer/src/project/sync/FwLiteToFwMergeDetails.svelte @@ -1,16 +1,19 @@ +

+ + + {$t`Sync FieldWorks Lite and FieldWorks Classic`} + + + +

+

+ {$t`This will synchronize the FieldWorks Lite and FieldWorks Classic copies of your project in Lexbox.`} +

+

+ {$t`After the sync, changes made in FW Classic will appear in FW Lite and changes made in FW Lite will appear in FW Classic after the next Send/Receive.`} +

+
+ + +

+
- -

FieldWorks Lite

+ +

FieldWorks Lite

+ {loading} + defaultValue={remoteStatus?.status === ProjectSyncStatusEnum.NeverSynced ? $t`Never` : $t`Unknown`} + />
-
- {#if syncStatus === SyncStatus.Offline} - - {:else if syncStatus === SyncStatus.NotLoggedIn && server} - onLoginStatusChange(s)}/> - {:else} - {$t`${flexToLexboxCount} Commits`} - - - - {$t`${lexboxToFlexCount} Changes`} - {/if} +
+ {#if syncStatus === SyncStatus.Offline} + + {:else if syncStatus === SyncStatus.NotLoggedIn && server} + onLoginStatusChange(s)} + /> + {:else} + + + + {countToMessage(hgToCrdtCount)} + + + + {$plural(hgToCrdtCount, { + one: '# new FieldWorks Classic commit', + other: '# new FieldWorks Classic commits', + })} +

+ {$t`The number of FieldWorks Classic commits will not necessarily match the number of changes shown in the sync result message.`} +

+ + + + {$t`Why is that?`} + + +
+ + {$t`One FieldWorks Classic commit may consist of changes to multiple entries or fields. On the other hand, a commit may only affect data that is not synced to FieldWorks Lite.`} + + + {$t`Changes can also be the result of additional fields being added to new versions of FieldWorks Lite.`} + +
+
+
+
+
+
+
+ + + + + + + + {countToMessage(crdtToHgCount)} + + + + {$plural(crdtToHgCount, { + one: '# new FieldWorks Lite commit', + other: '# new FieldWorks Lite commits', + })} +

+ {$t`The number of FieldWorks Lite commits will not necessarily match the number of changes shown in the sync result message.`} +

+ + + + {$t`Why is that?`} + + +
+ + {$t`Changing the same field twice (e.g.) can result in two commits, but only one change that needs to be applied to FieldWorks Classic. Commits can also consist of multiple changes.`} + +
+
+
+
+
+
+
+ {/if}
- -

FieldWorks Classic

+ +

FieldWorks Classic

+ {loading} + defaultValue={remoteStatus?.status === ProjectSyncStatusEnum.NeverSynced ? $t`Never` : $t`Unknown`} + />
diff --git a/frontend/viewer/src/project/sync/SyncArrow.svelte b/frontend/viewer/src/project/sync/SyncArrow.svelte index a100d1b458..3c8c339920 100644 --- a/frontend/viewer/src/project/sync/SyncArrow.svelte +++ b/frontend/viewer/src/project/sync/SyncArrow.svelte @@ -23,7 +23,7 @@ (dir === 'down' || dir === 'right') && 'rotate-180', className, )}> - + {#if isVertical} { - }, - syncLexboxToLocal = async () => { - }, - onLoginStatusChange = () => { - }, + syncLexboxToFlex = async () => {}, + syncLexboxToLocal = async () => {}, + onLoginStatusChange = () => {}, }: Props = $props(); @@ -52,6 +50,7 @@ const serverProjectUrl = $derived(`${server?.authority}/project/${encodeURIComponent(projectCode ?? '')}`); const isOffline = $derived(syncStatus === SyncStatus.Offline); const showRemote = $derived(!!server); + const cloudIcon = $derived(isOffline ? 'i-mdi-cloud-off-outline' : 'i-mdi-cloud-outline'); let loadingSyncLexboxToFlex = $state(false); @@ -64,14 +63,17 @@ }); } - + {#if showRemote} - + {$t`FieldWorks Lite`} - {$t`FieldWorks Classic`} + {$t`Lexbox`} {/if} +

+ {$t`Sync your changes with other FieldWorks Lite users`} +

@@ -87,7 +89,7 @@
@@ -98,8 +100,8 @@
- {remoteToLocalCount ?? '?'} - + {remoteToLocalCount ?? '?'} +
{#if syncStatus === SyncStatus.Success} {#if remoteToLocalCount === 0 && localToRemoteCount === 0} @@ -118,7 +120,7 @@ {#if loadingSyncLexboxToLocal} {$t`Syncing...`} {:else} - {$t`Auto sync`} + {$t`Auto syncing`} {/if} {:else if syncStatus === SyncStatus.Offline} @@ -138,8 +140,8 @@
{$t`Error getting sync status.`}
{/if}
- - {localToRemoteCount ?? '?'} + + {localToRemoteCount ?? '?'}
diff --git a/frontend/viewer/tailwind.config.ts b/frontend/viewer/tailwind.config.ts index 6b195e45ff..df75283bb3 100644 --- a/frontend/viewer/tailwind.config.ts +++ b/frontend/viewer/tailwind.config.ts @@ -48,6 +48,7 @@ export default { extend: { screens: { 'md': `${MOBILE_BREAKPOINT}px`, + 'max-xs': {'max': '400px'}, 'max-sm': {'max': '639px'}, 'max-md': {'max': '767px'},