@gabrielbourget/i18n-foundation 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/README.md +159 -0
  2. package/dist/assets/index.d.ts +35 -0
  3. package/dist/assets/index.d.ts.map +1 -0
  4. package/dist/assets/index.js +102 -0
  5. package/dist/common/index.d.ts +18 -0
  6. package/dist/common/index.d.ts.map +1 -0
  7. package/dist/common/index.js +27 -0
  8. package/dist/core/client.d.ts +22 -0
  9. package/dist/core/client.d.ts.map +1 -0
  10. package/dist/core/client.js +89 -0
  11. package/dist/core/configuration.d.ts +18 -0
  12. package/dist/core/configuration.d.ts.map +1 -0
  13. package/dist/core/configuration.js +36 -0
  14. package/dist/core/createIsolatedI18nInstance.d.ts +13 -0
  15. package/dist/core/createIsolatedI18nInstance.d.ts.map +1 -0
  16. package/dist/core/createIsolatedI18nInstance.js +16 -0
  17. package/dist/core/i18nStrictMode.d.ts +11 -0
  18. package/dist/core/i18nStrictMode.d.ts.map +1 -0
  19. package/dist/core/i18nStrictMode.js +19 -0
  20. package/dist/core/index.d.ts +7 -0
  21. package/dist/core/index.d.ts.map +1 -0
  22. package/dist/core/index.js +6 -0
  23. package/dist/core/initCommon.d.ts +15 -0
  24. package/dist/core/initCommon.d.ts.map +1 -0
  25. package/dist/core/initCommon.js +51 -0
  26. package/dist/core/resourceLoader.d.ts +9 -0
  27. package/dist/core/resourceLoader.d.ts.map +1 -0
  28. package/dist/core/resourceLoader.js +56 -0
  29. package/dist/core/server.d.ts +21 -0
  30. package/dist/core/server.d.ts.map +1 -0
  31. package/dist/core/server.js +20 -0
  32. package/dist/core/types.d.ts +20 -0
  33. package/dist/core/types.d.ts.map +1 -0
  34. package/dist/core/types.js +1 -0
  35. package/dist/env/client.d.ts +29 -0
  36. package/dist/env/client.d.ts.map +1 -0
  37. package/dist/env/client.js +42 -0
  38. package/dist/env/index.d.ts +4 -0
  39. package/dist/env/index.d.ts.map +1 -0
  40. package/dist/env/index.js +3 -0
  41. package/dist/env/server.d.ts +30 -0
  42. package/dist/env/server.d.ts.map +1 -0
  43. package/dist/env/server.js +45 -0
  44. package/dist/env/utils.d.ts +23 -0
  45. package/dist/env/utils.d.ts.map +1 -0
  46. package/dist/env/utils.js +65 -0
  47. package/dist/index.d.ts +6 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +5 -0
  50. package/dist/manifest/index.d.ts +37 -0
  51. package/dist/manifest/index.d.ts.map +1 -0
  52. package/dist/manifest/index.js +46 -0
  53. package/dist/pseudolocalization/index.d.ts +89 -0
  54. package/dist/pseudolocalization/index.d.ts.map +1 -0
  55. package/dist/pseudolocalization/index.js +182 -0
  56. package/dist/verifier/domainContracts.d.ts +43 -0
  57. package/dist/verifier/domainContracts.d.ts.map +1 -0
  58. package/dist/verifier/domainContracts.js +324 -0
  59. package/dist/verifier/fileSystem.d.ts +9 -0
  60. package/dist/verifier/fileSystem.d.ts.map +1 -0
  61. package/dist/verifier/fileSystem.js +42 -0
  62. package/dist/verifier/icuContracts.d.ts +13 -0
  63. package/dist/verifier/icuContracts.d.ts.map +1 -0
  64. package/dist/verifier/icuContracts.js +109 -0
  65. package/dist/verifier/index.d.ts +7 -0
  66. package/dist/verifier/index.d.ts.map +1 -0
  67. package/dist/verifier/index.js +6 -0
  68. package/dist/verifier/keyShape.d.ts +12 -0
  69. package/dist/verifier/keyShape.d.ts.map +1 -0
  70. package/dist/verifier/keyShape.js +73 -0
  71. package/dist/verifier/sheetOrdering.d.ts +2 -0
  72. package/dist/verifier/sheetOrdering.d.ts.map +1 -0
  73. package/dist/verifier/sheetOrdering.js +161 -0
  74. package/dist/verifier/verifyI18nSource.d.ts +25 -0
  75. package/dist/verifier/verifyI18nSource.d.ts.map +1 -0
  76. package/dist/verifier/verifyI18nSource.js +162 -0
  77. package/locales/en/common--carousel.json +30 -0
  78. package/locales/en/common--delete-entity-modal.json +15 -0
  79. package/locales/en/common--file-upload.json +88 -0
  80. package/locales/en/common--form-rules.json +12 -0
  81. package/locales/en/common--form-validation.json +19 -0
  82. package/locales/en/common--pagination.json +36 -0
  83. package/locales/en/common--saved-views.json +37 -0
  84. package/locales/en/common--searching.json +14 -0
  85. package/locales/en/common--sort-and-filter-panel.json +135 -0
  86. package/locales/en/common--theme.json +9 -0
  87. package/locales/en/common--ui.json +52 -0
  88. package/locales/fr/common--carousel.json +30 -0
  89. package/locales/fr/common--delete-entity-modal.json +15 -0
  90. package/locales/fr/common--file-upload.json +88 -0
  91. package/locales/fr/common--form-rules.json +12 -0
  92. package/locales/fr/common--form-validation.json +19 -0
  93. package/locales/fr/common--pagination.json +36 -0
  94. package/locales/fr/common--saved-views.json +37 -0
  95. package/locales/fr/common--searching.json +14 -0
  96. package/locales/fr/common--sort-and-filter-panel.json +135 -0
  97. package/locales/fr/common--theme.json +9 -0
  98. package/locales/fr/common--ui.json +52 -0
  99. package/package.json +103 -0
@@ -0,0 +1,30 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "dots.actions.go-to-item.label": ["itemCount", "itemNumber"],
5
+ "item.label": ["itemCount", "itemNumber"],
6
+ "root.live-region": ["itemCount", "itemNumber"]
7
+ },
8
+ "lastModified": "14-05-2026"
9
+ },
10
+
11
+ "controls.actions.close.label": "Close Carousel",
12
+ "controls.actions.next.label": "Next Item",
13
+ "controls.actions.previous.label": "Previous Item",
14
+
15
+ "counter.label": "Carousel Counter",
16
+ "counter.text": "Items",
17
+
18
+ "dots.actions.go-to-item.label": "Go to item {itemNumber} of {itemCount}",
19
+ "dots.label": "Slide Navigation",
20
+
21
+ "item.label": "Item {itemNumber} of {itemCount}",
22
+ "item.role-description": "slide",
23
+
24
+ "media.dialog.description": "Browse the selected media item in a full-screen carousel with previous, next, and close controls.",
25
+ "media.dialog.title": "Media carousel",
26
+
27
+ "root.label": "Content Carousel",
28
+ "root.live-region": "Item {itemNumber} of {itemCount}",
29
+ "root.role-description": "carousel"
30
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "messages.confirm-delete.body": ["entityBare"],
5
+ "messages.confirm-delete.title": ["entityWithArticle"]
6
+ },
7
+ "lastModified": "08-03-2026"
8
+ },
9
+
10
+ "actions.cancel": "Cancel",
11
+ "actions.confirm-delete": "Delete",
12
+
13
+ "messages.confirm-delete.body": "This will permanently delete {entityBare}.",
14
+ "messages.confirm-delete.title": "Are you sure you'd like to delete {entityWithArticle} from the application?"
15
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "preview-strip.actions.show-more-upload-items.label": ["count"],
5
+ "toasts.large-upload-set.body": ["itemCount", "sourceLabel", "threshold"],
6
+ "toasts.rejected-items.affected": ["itemNames"],
7
+ "toasts.rejected-items.affected-with-more": ["itemNames"],
8
+ "toasts.rejected-items.reasons.directory-not-allowed": ["count"],
9
+ "toasts.rejected-items.reasons.invalid-upload-item": ["count"],
10
+ "toasts.rejected-items.reasons.item-read-failed": ["count"],
11
+ "toasts.rejected-items.reasons.unsupported-drop-item-kind": ["count"],
12
+ "toasts.rejected-items.reasons.unsupported-type": ["count"],
13
+ "toasts.rejected-items.title": ["count"]
14
+ },
15
+ "lastModified": "14-05-2026"
16
+ },
17
+
18
+ "sheet.actions.close.label": "Close Media Sheet",
19
+ "sheet.actions.close.tooltip": "Close Media Sheet",
20
+ "sheet.actions.grid-view.label": "Grid View",
21
+ "sheet.actions.grid-view.tooltip": "Select Grid View",
22
+ "sheet.actions.list-view.label": "List View",
23
+ "sheet.actions.list-view.tooltip": "Select List View",
24
+ "sheet.actions.remove-selected-media-items.label": "Remove Selected Media Items",
25
+ "sheet.actions.remove-selected-media-items.tooltip": "Remove Selected Media Items",
26
+ "sheet.actions.select-all.label": "Select all media items",
27
+ "sheet.actions.select-all.text": "Select All",
28
+ "sheet.description": "Displays upload items in a grid or list view and allows selecting and deleting them.",
29
+ "sheet.title": "File Upload Previews",
30
+ "sheet.view-options.label": "Media View Options",
31
+
32
+ "table.columns.actions.label": "Item actions",
33
+ "table.columns.name": "Name",
34
+ "table.columns.size": "Size",
35
+ "table.columns.status": "Status",
36
+ "table.columns.thumbnail.label": "File preview",
37
+ "table.columns.type": "Type",
38
+ "table.empty-state": "No files queued",
39
+ "table.label": "File Upload Table",
40
+ "table.media-kinds.audio": "Audio",
41
+ "table.media-kinds.image": "Image",
42
+ "table.media-kinds.video": "Video",
43
+ "table.selection.select-all.label": "Select All",
44
+ "table.selection.select-row.label": "Select Row",
45
+ "table.statuses.marked-for-deletion": "Marked for Deletion",
46
+ "table.statuses.new": "New",
47
+ "table.statuses.saved": "Saved",
48
+
49
+ "alt-text-popover.actions.submit": "SUBMIT",
50
+ "alt-text-popover.dialog.label": "Edit alt text",
51
+ "alt-text-popover.form.alt-text.aria-label": "Alt text for this media item",
52
+ "alt-text-popover.form.alt-text.label": "Alt Text For Media Item",
53
+ "alt-text-popover.form.alt-text.placeholder": "Short description of media item",
54
+
55
+ "browse-trigger.actions.add-multiple-files": "+ Add new files",
56
+ "browse-trigger.actions.add-single-file": "+ Add a new file",
57
+
58
+ "context-menu.actions.edit-alt-text": "Edit Alt Text",
59
+ "context-menu.actions.move-to-gallery": "Move To Gallery",
60
+ "context-menu.actions.open.label": "Open item actions",
61
+ "context-menu.actions.remove": "Remove",
62
+ "context-menu.actions.restore": "Restore",
63
+ "context-menu.actions.set-as-profile-image": "Set As Profile Image",
64
+
65
+ "preview-item.actions.media-item-actions.label": "Media item actions",
66
+ "preview-item.actions.open-media-gallery.label": "Open media gallery",
67
+ "preview-item.actions.select-for-deletion.label": "Select For Deletion",
68
+ "preview-item.actions.select-media-item.label": "Select media item",
69
+
70
+ "preview-strip.actions.delete-selected-upload-items.label": "Delete Selected Upload Items",
71
+ "preview-strip.actions.delete-selected-upload-items.tooltip": "Delete Selected Upload Items",
72
+ "preview-strip.actions.show-more-upload-items.label": "{count, plural, one {Show # more upload item} other {Show # more upload items}}",
73
+
74
+ "toasts.drop-failure.body": "Some dropped items could not be processed.",
75
+ "toasts.drop-failure.title": "Drop upload failed",
76
+ "toasts.large-upload-set.body": "{itemCount, plural, one {1 file was discovered in this {sourceLabel}, which exceeds the warning threshold of {threshold}. Processing may take longer than usual.} other {# files were discovered in this {sourceLabel}, which exceeds the warning threshold of {threshold}. Processing may take longer than usual.}}",
77
+ "toasts.large-upload-set.sources.drop": "drop",
78
+ "toasts.large-upload-set.sources.selection": "selection",
79
+ "toasts.large-upload-set.title": "Large upload set detected",
80
+ "toasts.rejected-items.affected": "Affected: {itemNames}.",
81
+ "toasts.rejected-items.affected-with-more": "Affected: {itemNames}, and more.",
82
+ "toasts.rejected-items.reasons.directory-not-allowed": "{count, plural, one {1 directory not allowed} other {# directories not allowed}}",
83
+ "toasts.rejected-items.reasons.invalid-upload-item": "{count, plural, one {1 invalid upload item} other {# invalid upload items}}",
84
+ "toasts.rejected-items.reasons.item-read-failed": "{count, plural, one {1 item could not be read} other {# items could not be read}}",
85
+ "toasts.rejected-items.reasons.unsupported-drop-item-kind": "{count, plural, one {1 unsupported dropped item kind} other {# unsupported dropped item kinds}}",
86
+ "toasts.rejected-items.reasons.unsupported-type": "{count, plural, one {1 unsupported file type} other {# unsupported file types}}",
87
+ "toasts.rejected-items.title": "{count, plural, one {1 item was not added} other {# items were not added}}"
88
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "rules.duplicate-event": ["field"],
5
+ "rules.duplicate-external-link": ["field"]
6
+ },
7
+ "lastModified": "03-27-2026"
8
+ },
9
+
10
+ "rules.duplicate-event": "Each {field} entry must be unique.",
11
+ "rules.duplicate-external-link": "Each {field} entry must use a unique destination."
12
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "errors.max-field-value": ["field", "max"],
5
+ "errors.min-field-value": ["field", "min"],
6
+ "errors.required-field": ["field"]
7
+ },
8
+ "lastModified": "03-11-2025"
9
+ },
10
+
11
+ "errors.email.format": "Invalid email format",
12
+ "errors.max-field-value": "{field} can have a maximum value of {max}",
13
+ "errors.min-field-value": "{field} can have a minimum value of {min}",
14
+ "errors.password-confirmation.match": "Passwords must match",
15
+ "errors.password-confirmation.required": "You must confirm your password",
16
+ "errors.phone-number.format": "Invalid phone number format",
17
+ "errors.required-field": "{field} is required.",
18
+ "errors.url.format": "Invalid URL format"
19
+ }
@@ -0,0 +1,36 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "page-counter.text": ["count"],
5
+ "primary-controls.actions.overflow-list.label": ["position"],
6
+ "primary-controls.actions.page-button.label": ["pageNumber"]
7
+ },
8
+ "lastModified": "14-05-2026"
9
+ },
10
+
11
+ "nav.label": "Pagination Navigation",
12
+
13
+ "page-counter.label": "Page Number Counter",
14
+ "page-counter.text": "{count, plural, one {Page} other {Pages}}",
15
+
16
+ "page-input.actions.go": "Go",
17
+ "page-input.actions.go.label": "Navigate to Selected Page",
18
+ "page-input.form.input.input-button-group.aria-label": "Pagination page input controls",
19
+ "page-input.form.input.label": "Go To Page",
20
+ "page-input.form.input.placeholder": "Page #",
21
+
22
+ "items-per-page.form.items-per-page.label": "Items Per Page",
23
+ "items-per-page.form.items-per-page.placeholder": "#/Page",
24
+
25
+ "primary-controls.actions.first": "First",
26
+ "primary-controls.actions.first.label": "First Page",
27
+ "primary-controls.actions.last": "Last",
28
+ "primary-controls.actions.last.label": "Last Page",
29
+ "primary-controls.actions.next": "Next",
30
+ "primary-controls.actions.next.label": "Next Page",
31
+ "primary-controls.actions.overflow-list.label": "Consolidated pages at position {position}",
32
+ "primary-controls.actions.overflow-popover.label": "Visually Consolidated Pagination Items",
33
+ "primary-controls.actions.page-button.label": "Go to page {pageNumber}",
34
+ "primary-controls.actions.previous": "Prev",
35
+ "primary-controls.actions.previous.label": "Previous Page"
36
+ }
@@ -0,0 +1,37 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "actions.apply.aria-label": ["name"],
5
+ "actions.delete.aria-label": ["name"],
6
+ "import.body.plural": ["count"]
7
+ },
8
+ "lastModified": "07-05-2026"
9
+ },
10
+
11
+ "title": "Saved Views",
12
+
13
+ "form.name.label": "Name",
14
+ "form.name.placeholder": "Saved view name",
15
+
16
+ "actions.apply.aria-label": "Select {name}",
17
+ "actions.apply.label": "Select View",
18
+ "actions.clear-active.aria-label": "Clear active saved view",
19
+ "actions.clear-active.label": "Clear View",
20
+ "actions.delete.aria-label": "Delete {name}",
21
+ "actions.save-current.label": "SAVE VIEW",
22
+
23
+ "import.actions.dismiss.label": "Not Now",
24
+ "import.actions.import.label": "Import",
25
+ "import.body.plural": "{count} saved views on this device are not in your account. Importing copies them to your account and keeps the local copies on this device.",
26
+ "import.body.singular": "One saved view on this device is not in your account. Importing copies it to your account and keeps the local copy on this device.",
27
+ "import.failure.body": "The device saved views could not be imported. Please try again.",
28
+ "import.failure.title": "Import Failed",
29
+ "import.title": "Import Device Saved Views",
30
+
31
+ "messages.delete-error": "Saved view could not be deleted.",
32
+ "messages.empty": "No saved views yet.",
33
+ "messages.load-error": "Saved views could not be loaded.",
34
+ "messages.loading": "Loading saved views.",
35
+ "messages.save-current-requires-query-change": "Apply search, sorting, or filters to save a custom view.",
36
+ "messages.save-error": "Saved view could not be saved."
37
+ }
@@ -0,0 +1,14 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "search-panel.title": ["entity"]
5
+ },
6
+ "lastModified": "04-11-2025"
7
+ },
8
+
9
+ "search-panel.title": "Search {entity}",
10
+
11
+ "actions.apply.label": "Apply",
12
+ "actions.clear.label": "Clear",
13
+ "actions.search.label": "Search"
14
+ }
@@ -0,0 +1,135 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "current-sorts.sort-parameter-list-item.full-aria-label": ["criteriaName", "sortDirection"],
5
+ "current-filters.filter-group.add-filter.label": ["criteriaName"],
6
+ "current-filters.filter-group.item.aria-label": ["criteriaName"],
7
+ "current-filters.filter-group.match-mode.label": ["criteriaName"],
8
+ "filter-entry.filter-parameter.item.aria-label": ["criteriaName", "position"],
9
+ "filter-entry.form.filter-argument.accessible-label": ["criteriaName"],
10
+ "filter-entry.form.filter-argument.contained-text-accessible-label": ["criteriaName"],
11
+ "filter-entry.form.filter-argument.multi-input-entry.label": ["index"],
12
+ "filter-entry.form.filter-argument.multi-input-entry.placeholder": ["position"],
13
+ "filter-entry.form.filter-argument.multi-input-fallback.placeholder": ["position"],
14
+ "filter-entry.form.filter-argument.similar-text-accessible-label": ["criteriaName"],
15
+ "table-filter-popover.criteria-tag.label": ["criteriaName"],
16
+ "table-filter-popover.match-mode.label": ["criteriaName"],
17
+ "table-filter-popover.trigger.label": ["criteriaName"]
18
+ },
19
+ "lastModified": "14-05-2026"
20
+ },
21
+
22
+ "form.add-filter-criteria.label": "Add Filter Criteria",
23
+ "form.add-filter-criteria.placeholder": "Select filter criteria",
24
+ "form.add-sort-criteria.label": "Add Sort Criteria",
25
+ "form.add-sort-criteria.placeholder": "Select sort criteria",
26
+
27
+ "current-sorts.actions.add-sort-button": "Add Sort",
28
+ "current-sorts.active-sorts-aria-label": "Active Sort Parameters",
29
+ "current-sorts.no-sorts-fallback": "No sorting currently applied",
30
+ "current-sorts.sort-parameter-list-item.full-aria-label": "Sort Parameter - {criteriaName} - {sortDirection}",
31
+ "current-sorts.sort-parameter-list.aria-label": "Sort Parameter List",
32
+ "current-sorts.sorting-by.label": "Sorting By:",
33
+
34
+ "sort-entry.actions.delete.aria-label": "Delete Sort Entry",
35
+ "sort-entry.actions.drag": "Drag Sort Entry",
36
+ "sort-entry.actions.sort-asc.aria-label": "Sort Ascending",
37
+ "sort-entry.actions.sort-dsc.aria-label": "Sort Descending",
38
+ "sort-entry.controls-group.aria-label": "Sort Parameter List Item Controls",
39
+ "sort-entry.form.modify-sort-criteria.placeholder": "Select Sort Criteria",
40
+
41
+ "current-filters.actions.add-filter": "Add Filter",
42
+ "current-filters.active-filters-list.aria-label": "Filter Parameter List",
43
+ "current-filters.active-filters.aria-label": "Active Filter Parameters",
44
+ "current-filters.filter-group.add-filter.label": "Add filter for {criteriaName}",
45
+ "current-filters.filter-group.item.aria-label": "{criteriaName} filter group",
46
+ "current-filters.filter-group.label": "Filters:",
47
+ "current-filters.filter-group.match-all.label": "Match all",
48
+ "current-filters.filter-group.match-any.label": "Match any",
49
+ "current-filters.filter-group.match-mode.label": "{criteriaName} filter match mode",
50
+ "current-filters.filtering-by.label": "Filtering By:",
51
+ "current-filters.no-filters-fallback": "No filters currently applied",
52
+
53
+ "filter-entry.actions.delete.aria-label": "Delete Filter Entry",
54
+ "filter-entry.filter-parameter.aria-label": "Filter Parameter",
55
+ "filter-entry.filter-parameter.item.aria-label": "Filter Parameter #{position} - {criteriaName}",
56
+ "filter-entry.form.filter-argument.accessible-label": "Filter {criteriaName}",
57
+ "filter-entry.form.filter-argument.actions.add-entry.label": "Add Filter Argument Entry",
58
+ "filter-entry.form.filter-argument.actions.delete-entry.label": "Delete Filter Entry",
59
+ "filter-entry.form.filter-argument.boolean.label": "Filter Argument",
60
+ "filter-entry.form.filter-argument.combo-box.empty-list": "No filter arguments remaining to select",
61
+ "filter-entry.form.filter-argument.combo-box.input-button-group.aria-label": "Filter argument combobox controls",
62
+ "filter-entry.form.filter-argument.combo-box.trigger.aria-label": "Show filter argument suggestions",
63
+ "filter-entry.form.filter-argument.contained-text-accessible-label": "Filter {criteriaName} by contained text",
64
+ "filter-entry.form.filter-argument.date-range.label": "Filter Argument",
65
+ "filter-entry.form.filter-argument.date-range.placeholder": "Select date range",
66
+ "filter-entry.form.filter-argument.date-time-picker.calendar.aria-label": "Filter argument calendar",
67
+ "filter-entry.form.filter-argument.date-time-picker.input-button-group.aria-label": "Filter argument date and time picker controls",
68
+ "filter-entry.form.filter-argument.date-time-picker.trigger-button.aria-label": "Open filter argument calendar",
69
+ "filter-entry.form.filter-argument.date-time-range.label": "Filter Argument",
70
+ "filter-entry.form.filter-argument.date-time-range.placeholder": "Select date-time range",
71
+ "filter-entry.form.filter-argument.date-time.label": "Filter Argument",
72
+ "filter-entry.form.filter-argument.date-time.placeholder": "Select date and time",
73
+ "filter-entry.form.filter-argument.date.label": "Filter Argument",
74
+ "filter-entry.form.filter-argument.date.placeholder": "Select date",
75
+ "filter-entry.form.filter-argument.label": "Filter Argument",
76
+ "filter-entry.form.filter-argument.max-value.label": "Max Value",
77
+ "filter-entry.form.filter-argument.max-value.placeholder": "Enter max value",
78
+ "filter-entry.form.filter-argument.maximum.label": "Maximum",
79
+ "filter-entry.form.filter-argument.min-value.label": "Min Value",
80
+ "filter-entry.form.filter-argument.min-value.placeholder": "Enter min value",
81
+ "filter-entry.form.filter-argument.minimum.label": "Minimum",
82
+ "filter-entry.form.filter-argument.multi-input-entry.label": "Filter Argument {index}",
83
+ "filter-entry.form.filter-argument.multi-input-entry.placeholder": "Filter Argument Entry #{position}",
84
+ "filter-entry.form.filter-argument.multi-input-fallback.placeholder": "Filter Argument #{position}",
85
+ "filter-entry.form.filter-argument.multi-type-ahead-search.unavailable": "placeholder: multi-typeahead search not implemented yet",
86
+ "filter-entry.form.filter-argument.number-input.input-button-group.aria-label": "Filter argument number input controls",
87
+ "filter-entry.form.filter-argument.placeholder": "Filter Argument",
88
+ "filter-entry.form.filter-argument.select.label": "Filter Argument",
89
+ "filter-entry.form.filter-argument.select.placeholder": "Select Filter Argument",
90
+ "filter-entry.form.filter-argument.similar-text-accessible-label": "Filter {criteriaName} by similar text",
91
+ "filter-entry.form.filter-argument.tag-combo-box.group.aria-label": "Filter argument tag combobox controls",
92
+ "filter-entry.form.filter-argument.tag-combo-box.tag-group.aria-label": "Selected filter arguments",
93
+ "filter-entry.form.filter-argument.time-picker.input-icon-group.aria-label": "Filter argument time picker controls",
94
+ "filter-entry.form.filter-argument.time.label": "Filter Argument",
95
+ "filter-entry.form.filter-argument.time.placeholder": "Select time",
96
+ "filter-entry.form.filter-argument.type-ahead-search.label": "Filter Argument",
97
+ "filter-entry.form.filter-argument.type-ahead-search.placeholder": "Begin typing to search",
98
+ "filter-entry.form.filter-argument.type-ahead-search.unavailable": "placeholder: typeahead search not implemented yet",
99
+ "filter-entry.form.filter-condition-type.label": "Filter Condition Type",
100
+ "filter-entry.form.filter-condition-type.placeholder": "Filter Condition Type",
101
+ "filter-entry.form.filter-condition.label": "Filter Condition",
102
+ "filter-entry.form.filter-condition.placeholder": "Filter Condition",
103
+ "filter-entry.form.filter-criteria.label": "Filter Criteria",
104
+ "filter-entry.form.filter-criteria.placeholder": "Filter Criteria",
105
+ "filter-entry.operations.between": "Between",
106
+ "filter-entry.operations.equal": "Equal to",
107
+ "filter-entry.operations.greater-than": "Greater than",
108
+ "filter-entry.operations.greater-than-equal": "Greater than or equal to",
109
+ "filter-entry.operations.in": "Included in",
110
+ "filter-entry.operations.less-than": "Less than",
111
+ "filter-entry.operations.less-than-equal": "Less than or equal to",
112
+ "filter-entry.operations.like": "Contains",
113
+ "filter-entry.operations.not-equal": "Not equal to",
114
+ "filter-entry.operations.not-greater-than": "Not greater than",
115
+ "filter-entry.operations.not-greater-than-equal": "Not greater than or equal to",
116
+ "filter-entry.operations.not-in": "Not included in",
117
+ "filter-entry.operations.not-less-than": "Not less than",
118
+ "filter-entry.operations.not-less-than-equal": "Not less than or equal to",
119
+ "filter-entry.operations.not-like": "Does not contain",
120
+ "filter-entry.operations.similar-to": "Similar to",
121
+
122
+ "actions.apply": "Apply",
123
+ "actions.cancel": "Cancel",
124
+ "actions.clear-all": "Clear All",
125
+ "actions.close": "Close",
126
+ "actions.close.label": "Close Sort and Filter Panel",
127
+
128
+ "table-filter-popover.actions.add-condition.label": "Add filter condition",
129
+ "table-filter-popover.actions.apply": "Apply",
130
+ "table-filter-popover.actions.clear": "Clear",
131
+ "table-filter-popover.criteria-tag.label": "Filtering {criteriaName}",
132
+ "table-filter-popover.match-mode.label": "{criteriaName} match mode",
133
+ "table-filter-popover.title": "Filters:",
134
+ "table-filter-popover.trigger.label": "Filter by {criteriaName}"
135
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {},
4
+ "lastModified": "09-11-2025"
5
+ },
6
+
7
+ "theme.dark": "Dark",
8
+ "theme.light": "Light"
9
+ }
@@ -0,0 +1,52 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "media-sheet.aria-label-with-title": ["title"]
5
+ },
6
+ "lastModified": "14-05-2026"
7
+ },
8
+
9
+ "display-mode.grid": "Grid",
10
+ "display-mode.list": "List",
11
+ "display-mode.map": "Map",
12
+ "display-mode.table": "Table",
13
+
14
+ "table.selection.select-all.aria-label": "Select All",
15
+ "table.selection.select-row.aria-label": "Select Row",
16
+
17
+ "alert-dialog.actions.cancel": "Cancel",
18
+ "alert-dialog.actions.cancel.aria-label": "Cancel Action",
19
+ "alert-dialog.actions.confirm": "Confirm",
20
+ "alert-dialog.actions.confirm.aria-label": "Confirm Action",
21
+
22
+ "breadcrumbs.nav.aria-label": "Breadcrumbs",
23
+ "breadcrumbs.overflow.breadcrumb.aria-label": "Collapsed breadcrumbs",
24
+ "breadcrumbs.overflow.button.aria-label": "Show collapsed breadcrumbs",
25
+ "breadcrumbs.overflow.list.aria-label": "Collapsed breadcrumb items",
26
+
27
+ "date-time-picker.calendar.aria-label": "Date and time picker calendar",
28
+ "date-time-picker.input-button-group.aria-label": "Date and time input controls",
29
+ "date-time-picker.trigger-button.aria-label": "Open date and time picker",
30
+
31
+ "date-time-range-picker.calendar.aria-label": "Date and time range picker calendar",
32
+ "date-time-range-picker.input-button-group.aria-label": "Date and time range input controls",
33
+ "date-time-range-picker.trigger-button.aria-label": "Open date and time range picker",
34
+
35
+ "media-sheet.actions.close.aria-label": "Close Media Sheet",
36
+ "media-sheet.actions.close.tooltip": "Close Media Sheet",
37
+ "media-sheet.aria-label": "Media Sheet",
38
+ "media-sheet.aria-label-with-title": "Media Sheet: {title}",
39
+ "media-sheet.description": "Media sheet",
40
+
41
+ "number-input.input-button-group.aria-label": "Number input controls",
42
+
43
+ "stepper.input-button-group.aria-label": "Stepper controls",
44
+
45
+ "time-picker.input-icon-group.aria-label": "Time input controls",
46
+
47
+ "toast.actions.cancel": "Cancel",
48
+ "toast.actions.cancel.aria-label": "Cancel Action",
49
+ "toast.actions.close.aria-label": "Close Toast",
50
+ "toast.actions.confirm": "Confirm",
51
+ "toast.actions.confirm.aria-label": "Confirm Action"
52
+ }
@@ -0,0 +1,30 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "dots.actions.go-to-item.label": ["itemCount", "itemNumber"],
5
+ "item.label": ["itemCount", "itemNumber"],
6
+ "root.live-region": ["itemCount", "itemNumber"]
7
+ },
8
+ "lastModified": "14-05-2026"
9
+ },
10
+
11
+ "controls.actions.close.label": "Fermer le carrousel",
12
+ "controls.actions.next.label": "Élément suivant",
13
+ "controls.actions.previous.label": "Élément précédent",
14
+
15
+ "counter.label": "Compteur du carrousel",
16
+ "counter.text": "Éléments",
17
+
18
+ "dots.actions.go-to-item.label": "Aller à l’élément {itemNumber} sur {itemCount}",
19
+ "dots.label": "Navigation par diapositives",
20
+
21
+ "item.label": "Élément {itemNumber} sur {itemCount}",
22
+ "item.role-description": "diapositive",
23
+
24
+ "media.dialog.description": "Parcourir l’élément multimédia sélectionné dans un carrousel plein écran avec les contrôles précédent, suivant et fermer.",
25
+ "media.dialog.title": "Carrousel multimédia",
26
+
27
+ "root.label": "Carrousel de contenu",
28
+ "root.live-region": "Élément {itemNumber} sur {itemCount}",
29
+ "root.role-description": "carrousel"
30
+ }
@@ -0,0 +1,15 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "messages.confirm-delete.body": ["entityBare"],
5
+ "messages.confirm-delete.title": ["entityWithArticle"]
6
+ },
7
+ "lastModified": "08-03-2026"
8
+ },
9
+
10
+ "actions.cancel": "Annuler",
11
+ "actions.confirm-delete": "Supprimer",
12
+
13
+ "messages.confirm-delete.body": "Cela supprimera définitivement {entityBare}.",
14
+ "messages.confirm-delete.title": "Êtes-vous sûr de vouloir supprimer {entityWithArticle} de l'application ?"
15
+ }
@@ -0,0 +1,88 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "preview-strip.actions.show-more-upload-items.label": ["count"],
5
+ "toasts.large-upload-set.body": ["itemCount", "sourceLabel", "threshold"],
6
+ "toasts.rejected-items.affected": ["itemNames"],
7
+ "toasts.rejected-items.affected-with-more": ["itemNames"],
8
+ "toasts.rejected-items.reasons.directory-not-allowed": ["count"],
9
+ "toasts.rejected-items.reasons.invalid-upload-item": ["count"],
10
+ "toasts.rejected-items.reasons.item-read-failed": ["count"],
11
+ "toasts.rejected-items.reasons.unsupported-drop-item-kind": ["count"],
12
+ "toasts.rejected-items.reasons.unsupported-type": ["count"],
13
+ "toasts.rejected-items.title": ["count"]
14
+ },
15
+ "lastModified": "14-05-2026"
16
+ },
17
+
18
+ "sheet.actions.close.label": "Fermer la feuille multimédia",
19
+ "sheet.actions.close.tooltip": "Fermer la feuille multimédia",
20
+ "sheet.actions.grid-view.label": "Vue grille",
21
+ "sheet.actions.grid-view.tooltip": "Sélectionner la vue grille",
22
+ "sheet.actions.list-view.label": "Vue liste",
23
+ "sheet.actions.list-view.tooltip": "Sélectionner la vue liste",
24
+ "sheet.actions.remove-selected-media-items.label": "Supprimer les éléments multimédias sélectionnés",
25
+ "sheet.actions.remove-selected-media-items.tooltip": "Supprimer les éléments multimédias sélectionnés",
26
+ "sheet.actions.select-all.label": "Sélectionner tous les éléments multimédias",
27
+ "sheet.actions.select-all.text": "Tout sélectionner",
28
+ "sheet.description": "Affiche les éléments téléversés en grille ou en liste et permet de les sélectionner et de les supprimer.",
29
+ "sheet.title": "Aperçus des fichiers téléversés",
30
+ "sheet.view-options.label": "Options d’affichage des médias",
31
+
32
+ "table.columns.actions.label": "Actions de l’élément",
33
+ "table.columns.name": "Nom",
34
+ "table.columns.size": "Taille",
35
+ "table.columns.status": "Statut",
36
+ "table.columns.thumbnail.label": "Aperçu du fichier",
37
+ "table.columns.type": "Type",
38
+ "table.empty-state": "Aucun fichier en attente",
39
+ "table.label": "Table des fichiers téléversés",
40
+ "table.media-kinds.audio": "Audio",
41
+ "table.media-kinds.image": "Image",
42
+ "table.media-kinds.video": "Vidéo",
43
+ "table.selection.select-all.label": "Tout sélectionner",
44
+ "table.selection.select-row.label": "Sélectionner la ligne",
45
+ "table.statuses.marked-for-deletion": "Marqué pour suppression",
46
+ "table.statuses.new": "Nouveau",
47
+ "table.statuses.saved": "Enregistré",
48
+
49
+ "alt-text-popover.actions.submit": "ENVOYER",
50
+ "alt-text-popover.dialog.label": "Modifier le texte alternatif",
51
+ "alt-text-popover.form.alt-text.aria-label": "Texte alternatif pour cet élément multimédia",
52
+ "alt-text-popover.form.alt-text.label": "Texte alternatif de l’élément multimédia",
53
+ "alt-text-popover.form.alt-text.placeholder": "Courte description de l’élément multimédia",
54
+
55
+ "browse-trigger.actions.add-multiple-files": "+ Ajouter des fichiers",
56
+ "browse-trigger.actions.add-single-file": "+ Ajouter un fichier",
57
+
58
+ "context-menu.actions.edit-alt-text": "Modifier le texte alternatif",
59
+ "context-menu.actions.move-to-gallery": "Déplacer vers la galerie",
60
+ "context-menu.actions.open.label": "Ouvrir les actions de l’élément",
61
+ "context-menu.actions.remove": "Supprimer",
62
+ "context-menu.actions.restore": "Restaurer",
63
+ "context-menu.actions.set-as-profile-image": "Définir comme image de profil",
64
+
65
+ "preview-item.actions.media-item-actions.label": "Actions de l’élément multimédia",
66
+ "preview-item.actions.open-media-gallery.label": "Ouvrir la galerie multimédia",
67
+ "preview-item.actions.select-for-deletion.label": "Sélectionner pour suppression",
68
+ "preview-item.actions.select-media-item.label": "Sélectionner l’élément multimédia",
69
+
70
+ "preview-strip.actions.delete-selected-upload-items.label": "Supprimer les éléments téléversés sélectionnés",
71
+ "preview-strip.actions.delete-selected-upload-items.tooltip": "Supprimer les éléments téléversés sélectionnés",
72
+ "preview-strip.actions.show-more-upload-items.label": "{count, plural, one {Afficher # élément téléversé de plus} other {Afficher # éléments téléversés de plus}}",
73
+
74
+ "toasts.drop-failure.body": "Certains éléments déposés n’ont pas pu être traités.",
75
+ "toasts.drop-failure.title": "Échec du téléversement par dépôt",
76
+ "toasts.large-upload-set.body": "{itemCount, plural, one {1 fichier a été trouvé dans cette {sourceLabel}, ce qui dépasse le seuil d’avertissement de {threshold}. Le traitement peut prendre plus de temps que d’habitude.} other {# fichiers ont été trouvés dans cette {sourceLabel}, ce qui dépasse le seuil d’avertissement de {threshold}. Le traitement peut prendre plus de temps que d’habitude.}}",
77
+ "toasts.large-upload-set.sources.drop": "dépose",
78
+ "toasts.large-upload-set.sources.selection": "sélection",
79
+ "toasts.large-upload-set.title": "Grand ensemble de téléversement détecté",
80
+ "toasts.rejected-items.affected": "Éléments concernés : {itemNames}.",
81
+ "toasts.rejected-items.affected-with-more": "Éléments concernés : {itemNames}, et plus.",
82
+ "toasts.rejected-items.reasons.directory-not-allowed": "{count, plural, one {1 dossier non autorisé} other {# dossiers non autorisés}}",
83
+ "toasts.rejected-items.reasons.invalid-upload-item": "{count, plural, one {1 élément de téléversement invalide} other {# éléments de téléversement invalides}}",
84
+ "toasts.rejected-items.reasons.item-read-failed": "{count, plural, one {1 élément n’a pas pu être lu} other {# éléments n’ont pas pu être lus}}",
85
+ "toasts.rejected-items.reasons.unsupported-drop-item-kind": "{count, plural, one {1 type d’élément déposé non pris en charge} other {# types d’éléments déposés non pris en charge}}",
86
+ "toasts.rejected-items.reasons.unsupported-type": "{count, plural, one {1 type de fichier non pris en charge} other {# types de fichiers non pris en charge}}",
87
+ "toasts.rejected-items.title": "{count, plural, one {1 élément n’a pas été ajouté} other {# éléments n’ont pas été ajoutés}}"
88
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "rules.duplicate-event": ["field"],
5
+ "rules.duplicate-external-link": ["field"]
6
+ },
7
+ "lastModified": "03-27-2026"
8
+ },
9
+
10
+ "rules.duplicate-event": "Chaque entree de {field} doit etre unique.",
11
+ "rules.duplicate-external-link": "Chaque entree de {field} doit utiliser une destination unique."
12
+ }
@@ -0,0 +1,19 @@
1
+ {
2
+ "_meta": {
3
+ "interpolation": {
4
+ "errors.max-field-value": ["field", "max"],
5
+ "errors.min-field-value": ["field", "min"],
6
+ "errors.required-field": ["field"]
7
+ },
8
+ "lastModified": "03-11-2025"
9
+ },
10
+
11
+ "errors.email.format": "Format d'e-mail invalide",
12
+ "errors.max-field-value": "{field} peut avoir une valeur maximale de {max}",
13
+ "errors.min-field-value": "{field} peut avoir une valeur minimale de {min}",
14
+ "errors.password-confirmation.match": "Les mots de passe doivent correspondre",
15
+ "errors.password-confirmation.required": "Vous devez confirmer votre mot de passe",
16
+ "errors.phone-number.format": "Format de numéro de téléphone invalide",
17
+ "errors.required-field": "{field} est requis.",
18
+ "errors.url.format": "Format d'URL invalide"
19
+ }