Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
61 commits
Select commit Hold shift + click to select a range
5a602d3
Update source file en.po
myieye Feb 24, 2026
7e6124e
New translations en.po (French)
myieye Feb 24, 2026
81061da
New translations en.po (Spanish)
myieye Feb 24, 2026
85f1642
New translations en.po (Korean)
myieye Feb 24, 2026
bd3a754
New translations en.po (Vietnamese)
myieye Feb 24, 2026
abc2038
New translations en.po (Indonesian)
myieye Feb 24, 2026
0670e12
New translations en.po (Malay)
myieye Feb 24, 2026
97c20f5
New translations en.po (Swahili)
myieye Feb 24, 2026
dafe410
Update source file en.po
myieye Mar 6, 2026
422ccc2
New translations en.po (French)
myieye Mar 6, 2026
4c28f07
New translations en.po (Spanish)
myieye Mar 6, 2026
2cd995b
New translations en.po (Korean)
myieye Mar 6, 2026
b208d1d
New translations en.po (Vietnamese)
myieye Mar 6, 2026
215ddef
New translations en.po (Indonesian)
myieye Mar 6, 2026
d6f0b39
New translations en.po (Malay)
myieye Mar 6, 2026
a506bf8
New translations en.po (Swahili)
myieye Mar 6, 2026
4daeb34
Update source file en.po
myieye Mar 13, 2026
f4be04f
New translations en.po (French)
myieye Mar 13, 2026
e09ccbd
New translations en.po (Spanish)
myieye Mar 13, 2026
680d1ad
New translations en.po (Korean)
myieye Mar 13, 2026
af4ae87
New translations en.po (Vietnamese)
myieye Mar 13, 2026
31e2646
New translations en.po (Indonesian)
myieye Mar 13, 2026
70e7427
New translations en.po (Malay)
myieye Mar 13, 2026
d0af022
New translations en.po (Swahili)
myieye Mar 13, 2026
0bcc6ef
Update source file en.po
myieye Apr 8, 2026
da1bd3c
New translations en.po (French)
myieye Apr 8, 2026
d02891e
New translations en.po (Spanish)
myieye Apr 8, 2026
0c40692
New translations en.po (Korean)
myieye Apr 8, 2026
e54f112
New translations en.po (Vietnamese)
myieye Apr 8, 2026
595a6ac
New translations en.po (Indonesian)
myieye Apr 8, 2026
948a8a6
New translations en.po (Malay)
myieye Apr 8, 2026
ac5e1a0
New translations en.po (Swahili)
myieye Apr 8, 2026
8ff7a02
Update source file description-en.md
myieye Apr 22, 2026
6bd3264
New translations description-en.md (French)
myieye Apr 22, 2026
554ef55
New translations description-en.md (Spanish)
myieye Apr 22, 2026
94b05bb
New translations description-en.md (Korean)
myieye Apr 22, 2026
15efef7
New translations description-en.md (Vietnamese)
myieye Apr 22, 2026
19bf2bd
New translations description-en.md (Indonesian)
myieye Apr 22, 2026
6e9c700
New translations description-en.md (Malay)
myieye Apr 22, 2026
235a048
New translations description-en.md (Swahili)
myieye Apr 22, 2026
4fefcad
New translations en.po (French)
myieye May 13, 2026
1e58ac6
New translations en.po (Spanish)
myieye May 13, 2026
84b8c86
New translations en.po (Korean)
myieye May 13, 2026
d5fce2e
New translations en.po (Vietnamese)
myieye May 13, 2026
a4e088b
New translations en.po (Indonesian)
myieye May 13, 2026
398f2ab
New translations en.po (Malay)
myieye May 13, 2026
c66c73a
New translations en.po (Swahili)
myieye May 13, 2026
9c87d6d
Update source file en.po
myieye May 14, 2026
b394266
New translations en.po (French)
myieye May 14, 2026
a5c5a9e
New translations en.po (Spanish)
myieye May 14, 2026
d4d785f
New translations en.po (Korean)
myieye May 14, 2026
73c9cee
New translations en.po (Vietnamese)
myieye May 14, 2026
16413fc
New translations en.po (Indonesian)
myieye May 14, 2026
31e6249
New translations en.po (Malay)
myieye May 14, 2026
5f9887a
New translations en.po (Swahili)
myieye May 14, 2026
76c022f
New translations en.po (Vietnamese)
myieye May 28, 2026
a18f29c
New translations en.po (Malay)
myieye May 28, 2026
af83b48
New translations en.po (Swahili)
myieye May 28, 2026
ea2b908
Merge develop into l10n_develop and reconcile catalogs
myieye May 28, 2026
e8515fa
Apply translation fixes from review pass
myieye May 28, 2026
cad0a8d
Backfill translator context for 49 msgids
myieye May 28, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@
import type {WithElementRef} from 'bits-ui';
import type {HTMLAttributes} from 'svelte/elements';

let {ref = $bindable(null), class: className, children, ...restProps}: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
let {
ref = $bindable(null),
class: className,
children,
...restProps
}: WithElementRef<HTMLAttributes<HTMLDivElement>> = $props();
</script>

<div
bind:this={ref}
data-slot="checkbox-group"
class={cn('grid md:gap-4', className)}
{...restProps}
>
<div bind:this={ref} data-slot="checkbox-group" class={cn('grid md:gap-4', className)} {...restProps}>
{@render children?.()}
</div>
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,18 @@
label?: string;
} & WithoutChildrenOrChild<CheckboxPrimitive.RootProps>;

let {ref = $bindable(null), class: className, label, checked = $bindable(false), indeterminate = $bindable(false), ...restProps}: Props = $props();
let {
ref = $bindable(null),
class: className,
label,
checked = $bindable(false),
indeterminate = $bindable(false),
...restProps
}: Props = $props();
</script>

{#snippet control()}
<Checkbox
bind:ref
bind:checked
bind:indeterminate
class={className}
{...restProps}
/>
<Checkbox bind:ref bind:checked bind:indeterminate class={className} {...restProps} />
{/snippet}

{#if label}
Expand Down
52 changes: 52 additions & 0 deletions frontend/viewer/src/locales/en.po
Original file line number Diff line number Diff line change
Expand Up @@ -785,14 +785,17 @@ msgstr "Fields"
msgid "FieldWorks Lite"
msgstr "FieldWorks Lite"

#. Success notification shown after FieldWorks Lite auto-updates. "FieldWorks Lite" is a product name — do not translate.
#: src/lib/notifications/NotificationOutlet.svelte
msgid "FieldWorks Lite has been updated successfully. Please restart the app to apply the changes."
msgstr "FieldWorks Lite has been updated successfully. Please restart the app to apply the changes."

#. Explanatory text in a popover on the sync panel. "FieldWorks Lite" and "FieldWorks Classic" are product names — do not translate.
#: src/project/sync/FwLiteToFwMergeDetails.svelte
msgid "FieldWorks Lite users will automatically receive changes that were made in FieldWorks Classic. FieldWorks Classic users will see changes that were made in FieldWorks Lite after they do Send/Receive."
msgstr "FieldWorks Lite users will automatically receive changes that were made in FieldWorks Classic. FieldWorks Classic users will see changes that were made in FieldWorks Lite after they do Send/Receive."

#. Field label in Troubleshoot and Update dialogs. "FieldWorks Lite" is a product name — do not translate.
#: src/lib/troubleshoot/TroubleshootDialog.svelte
#: src/lib/updates/UpdateDialog.svelte
msgid "FieldWorks Lite version"
Expand Down Expand Up @@ -958,6 +961,7 @@ msgstr "green"
msgid "Headword"
msgstr "Headword"

#. Radio button option to hide the Dictionary Preview panel in the entry editor. Paired with "Show" and "Pinned".
#: src/project/browse/EditorViewOptions.svelte
msgid "Hide"
msgstr "Hide"
Expand All @@ -978,22 +982,28 @@ msgstr "Hold to record or#press and release to start recording."
msgid "I don't see my project"
msgstr "I don't see my project"

#. Toggle switch label in the delete confirmation dialog when the action is flagged as dangerous (e.g. deleting a project).
#. User must enable this switch before the Delete button is enabled.
#: src/lib/entry-editor/DeleteDialog.svelte
msgid "I understand that this can't be undone"
msgstr "I understand that this can't be undone"

#. Dev-mode only icon button tooltip on a Classic FieldWorks project list item. Imports the fwdata project into FwLite.
#: src/home/HomeView.svelte
msgid "Import"
msgstr "Import"

#. Future relative date format. {0} = formatted duration string (e.g., "3 hours", "2 days"). Paired with "{0} ago" for past dates.
#: src/lib/components/ui/format/format-relative-date-fn.svelte.ts
msgid "in {0}"
msgstr "in {0}"

#. Toggle switch in the filter panel next to the semantic domain selector. When enabled, also matches child semantic domains.
#: src/project/browse/SearchFilter.svelte
msgid "Include subdomains"
msgstr "Include subdomains"

#. Filter section label in the browse filter panel. Below it is a dropdown to filter entries that are missing a specific field (e.g., missing gloss or definition).
#: src/project/browse/SearchFilter.svelte
msgid "Incomplete entries"
msgstr "Incomplete entries"
Expand All @@ -1013,15 +1023,18 @@ msgstr "Installing Update..."
msgid "Keep going"
msgstr "Keep going"

#. Label showing the date of the last change in the FwLite↔Classic sync panel. # is replaced by a formatted relative date component (e.g., "3 days ago").
#: src/project/sync/FwLiteToFwMergeDetails.svelte
#: src/project/sync/FwLiteToFwMergeDetails.svelte
msgid "Last change: #"
msgstr "Last change: #"

#. Label showing the timestamp of the last local sync in the sync panel. # is replaced by a formatted relative date component (e.g., "5 minutes ago").
#: src/project/sync/SyncStatusPrimitive.svelte
msgid "Last sync: #"
msgstr "Last sync: #"

#. Field label in the audio editor showing the duration of the audio file.
#: src/lib/components/audio/audio-editor.svelte
msgid "Length:"
msgstr "Length:"
Expand All @@ -1031,6 +1044,7 @@ msgstr "Length:"
msgid "Lexbox"
msgstr "Lexbox"

#. Alt text for the Lexbox logo image shown in the home screen app bar. "Lexbox" is a product name — do not translate.
#: src/home/HomeView.svelte
msgid "Lexbox logo"
msgstr "Lexbox logo"
Expand All @@ -1042,6 +1056,9 @@ msgstr "Lexbox logo"
msgid "Lexeme form"
msgstr "Lexeme form"

#. Relevant view: Classic
#. Lite view equivalent: "Word or Display as is required"
#. Validation error in the New Entry dialog when neither the Lexeme form nor Citation form field has a value.
#: src/lib/entry-editor/NewEntryDialog.svelte
#: src/lib/views/custom/validation.ts
msgid "Lexeme form or Citation form is required"
Expand All @@ -1051,6 +1068,7 @@ msgstr "Lexeme form or Citation form is required"
msgid "Light"
msgstr "Light"

#. Section header in the entry list view options popup. Controls whether the entry list shows simple rows or a preview. Options below it: "Simple" and "Preview".
#: src/project/browse/EntryListViewOptions.svelte
msgid "List mode"
msgstr "List mode"
Expand All @@ -1062,6 +1080,7 @@ msgstr "List mode"
msgid "Literal meaning"
msgstr "Literal meaning"

#. Loading state text shown in the project/dictionary dropdown while the list of dictionaries is being fetched.
#: src/project/ProjectDropdown.svelte
msgid "Loading Dictionaries..."
msgstr "Loading Dictionaries..."
Expand All @@ -1070,20 +1089,24 @@ msgstr "Loading Dictionaries..."
msgid "loading..."
msgstr "loading..."

#. Section label for the local device box in the sync panel, and section header on the home screen project list.
#: src/home/HomeView.svelte
#: src/project/sync/SyncStatusPrimitive.svelte
msgid "Local"
msgstr "Local"

#. Subtitle shown on a project card when the project has no server configured (no sync partner).
#: src/home/HomeView.svelte
msgid "Local only"
msgstr "Local only"

#. Button label in the sync panel when the user is not logged in. Initiates authentication with the server.
#: src/project/sync/FwLiteToFwMergeDetails.svelte
#: src/project/sync/SyncStatusPrimitive.svelte
msgid "Login"
msgstr "Login"

#. Default button label on the login button when not yet authenticated. Clicking opens the login flow for a server.
#: src/lib/auth/LoginButton.svelte
#: src/lib/auth/LoginButton.svelte
msgid "Login to see projects"
Expand All @@ -1093,14 +1116,17 @@ msgstr "Login to see projects"
msgid "Logout"
msgstr "Logout"

#. Footer text in the project sidebar. The emoji flags are the countries of origin of the development team — do not translate.
#: src/project/ProjectSidebar.svelte
msgid "Made with ❤️ from 🇦🇹 🇹🇭 🇺🇸"
msgstr "Made with ❤️ from 🇦🇹 🇹🇭 🇺🇸"

#. Button label in the Feedback & Support dialog. Opens an external link to submit a feature suggestion.
#: src/lib/about/FeedbackDialog.svelte
msgid "Make a suggestion"
msgstr "Make a suggestion"

#. Warning shown in the delete-project confirmation dialog. Markdown link format: [link text]({0}) where {0} = URL to the sync dialog. "Lexbox" is a product name — do not translate.
#: src/home/HomeView.svelte
msgid "Make sure your [changes are synced]({0}) to Lexbox."
msgstr "Make sure your [changes are synced]({0}) to Lexbox."
Expand Down Expand Up @@ -1135,18 +1161,22 @@ msgstr "Manual update is required. Please follow the instructions provided."
msgid "Meaning"
msgstr "Meaning"

#. Task subject label in the task list. {0} = writing system abbreviation (e.g., "en", "fr"). Identifies entries lacking a definition in that writing system.
#: src/project/tasks/tasks-service.ts
msgid "Missing Definition {0}"
msgstr "Missing Definition {0}"

#. Task subject label in the task list. {0} = writing system abbreviation (e.g., "en", "fr"). Identifies entries lacking an example sentence in that writing system.
#: src/project/tasks/tasks-service.ts
msgid "Missing Example sentence {0}"
msgstr "Missing Example sentence {0}"

#. Task subject label in the task list. {0} = writing system abbreviation (e.g., "en", "fr"). Identifies entries lacking a gloss (brief translation) in that writing system.
#: src/project/tasks/tasks-service.ts
msgid "Missing Gloss {0}"
msgstr "Missing Gloss {0}"

#. Task subject label in the task list. Identifies senses/meanings that have no part-of-speech (grammatical category) assigned.
#: src/project/tasks/tasks-service.ts
msgid "Missing Part of Speech"
msgstr "Missing Part of Speech"
Expand All @@ -1158,10 +1188,12 @@ msgstr "Missing Part of Speech"
msgid "Missing: {0}"
msgstr "Missing: {0}"

#. Section label in the theme picker popup for the light/dark/system mode selector. Options below it: "Light", "Dark", "System".
#: src/lib/components/ThemePicker.svelte
msgid "Mode"
msgstr "Mode"

#. Drag-handle or button tooltip to reorder an item in a list (e.g., senses or examples within an entry).
#: src/lib/entry-editor/ItemListItem.svelte
msgid "Move"
msgstr "Move"
Expand All @@ -1187,6 +1219,7 @@ msgstr "Name is required"
msgid "Never"
msgstr "Never"

#. Badge label on the primary "New Entry" / "New Word" button indicating it creates a new item.
#: src/project/PrimaryNewEntryButton.svelte
msgid "New"
msgstr "New"
Expand All @@ -1196,6 +1229,7 @@ msgstr "New"
msgid "New Custom View"
msgstr "New Custom View"

#. Sync status indicator in the FwLite↔Classic sync panel. Shown when there are pending changes waiting to be applied. Paired with "No new data".
#: src/project/sync/FwLiteToFwMergeDetails.svelte
msgid "New data"
msgstr "New data"
Expand Down Expand Up @@ -1246,6 +1280,7 @@ msgstr "No Dictionaries found"
msgid "No entries found"
msgstr "No entries found"

#. Error message in the audio upload dialog when the user tries to save/upload without having selected a file.
#: src/lib/components/audio/AudioDialog.svelte
msgid "No file to upload"
msgstr "No file to upload"
Expand All @@ -1259,18 +1294,22 @@ msgstr "No history found"
msgid "No items found"
msgstr "No items found"

#. Sync status indicator in the FwLite↔Classic sync panel. Shown when there are no pending changes. Paired with "New data".
#: src/project/sync/FwLiteToFwMergeDetails.svelte
msgid "No new data"
msgstr "No new data"

#. Sync status label shown in the sync panel when no server is associated with this project.
#: src/project/sync/SyncStatusPrimitive.svelte
msgid "No server"
msgstr "No server"

#. Status text in the project sidebar when the project has no server/sync partner configured.
#: src/project/ProjectSidebar.svelte
msgid "No server configured"
msgstr "No server configured"

#. Error message in the task editing drawer when no subject entity can be found. {0} = subject type (e.g., "sense", "example-sentence").
#: src/project/tasks/SubjectPopup.svelte
msgid "No subject, unable to create a new {0}"
msgstr "No subject, unable to create a new {0}"
Expand All @@ -1295,15 +1334,18 @@ msgstr "None"
msgid "Not equal"
msgstr "Not equal"

#. Placeholder shown in the activity change preview when a referenced entry or sense no longer exists in the dictionary.
#: src/lib/activity/ActivityItemChangePreview.svelte
#: src/lib/activity/ActivityItemChangePreview.svelte
msgid "Not found"
msgstr "Not found"

#. Status text in the project sidebar indicating the user is not authenticated with the sync server.
#: src/project/ProjectSidebar.svelte
msgid "Not logged in"
msgstr "Not logged in"

#. Badge label on an activity item indicating these local changes have not yet been uploaded to the server.
#: src/lib/activity/ActivityItem.svelte
msgid "Not synced"
msgstr "Not synced"
Expand All @@ -1315,6 +1357,7 @@ msgstr "Not synced"
msgid "Note"
msgstr "Note"

#. Error tooltip/message on the copy button when there is no text content available to copy to the clipboard.
#: src/lib/components/ui/button/copy-button.svelte
msgid "Nothing to copy"
msgstr "Nothing to copy"
Expand Down Expand Up @@ -1366,6 +1409,7 @@ msgstr "Open in new Window"
msgid "Open Log file"
msgstr "Open Log file"

#. Status message shown after the user clicks "Open in FieldWorks" while the handoff is in progress. "FieldWorks" is a product name — do not translate.
#: src/lib/components/OpenInFieldWorksButton.svelte
msgid "Opening in FieldWorks…"
msgstr "Opening in FieldWorks…"
Expand Down Expand Up @@ -1741,6 +1785,7 @@ msgstr "Sync FieldWorks Lite and FieldWorks Classic"
msgid "Sync your changes with other FieldWorks Lite users"
msgstr "Sync your changes with other FieldWorks Lite users"

#. Sync status label in the project sidebar indicating all changes are in sync with the server.
#: src/project/ProjectSidebar.svelte
msgid "Synced"
msgstr "Synced"
Expand Down Expand Up @@ -1790,6 +1835,7 @@ msgstr "Task not found: {0}"
msgid "Tasks"
msgstr "Tasks"

#. Short description under the "Report a technical problem" button in the Feedback & Support dialog.
#: src/lib/about/FeedbackDialog.svelte
msgid "Tell us about a bug or issue you’ve encountered."
msgstr "Tell us about a bug or issue you’ve encountered."
Expand Down Expand Up @@ -1870,6 +1916,7 @@ msgstr "Toggle pinned"
msgid "Translation"
msgstr "Translation"

#. Field title in the example editor when an entry has multiple translations. {0} = 1-based index number (e.g., "Translation 1", "Translation 2"). When there is only one translation, "Translation" is used instead.
#: src/lib/entry-editor/object-editors/ExampleEditorPrimitive.svelte
msgid "Translation {0}"
msgstr "Translation {0}"
Expand Down Expand Up @@ -1907,6 +1954,7 @@ msgstr "Type:"
msgid "Unable to open in FieldWorks"
msgstr "Unable to open in FieldWorks"

#. Fallback value shown when author name or last-change date is unavailable (e.g., in activity history or the sync panel).
#: src/lib/activity/ActivityItem.svelte
#: src/project/sync/FwLiteToFwMergeDetails.svelte
#: src/project/sync/FwLiteToFwMergeDetails.svelte
Expand Down Expand Up @@ -2053,6 +2101,9 @@ msgstr "Word"
msgid "Word only"
msgstr "Word only"

#. Relevant view: Lite
#. Classic view equivalent: "Lexeme form or Citation form is required"
#. Validation error in the New Word dialog when neither the Word (Lexeme form) nor Display as (Citation form) field has a value.
#: src/lib/entry-editor/NewEntryDialog.svelte
#: src/lib/views/custom/validation.ts
msgid "Word or Display as is required"
Expand All @@ -2070,6 +2121,7 @@ msgstr "Word or meaning:"
msgid "Writing System"
msgstr "Writing System"

#. Tooltip on a text span in the rich-text editor. {0} = writing system code (e.g., "en", "fr-IPA"). Identifies which writing system the span belongs to.
#: src/lib/components/lcm-rich-text-editor/editor-schema.ts
msgid "Writing system: {0}"
msgstr "Writing system: {0}"
Expand Down
Loading
Loading