@object-ui/i18n 17.2.0 → 17.3.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.
- package/CHANGELOG.md +522 -0
- package/README.md +26 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -1
- package/dist/locales/ar.d.ts +84 -0
- package/dist/locales/ar.js +87 -3
- package/dist/locales/de.d.ts +84 -0
- package/dist/locales/de.js +87 -3
- package/dist/locales/en.d.ts +87 -3
- package/dist/locales/en.js +178 -3
- package/dist/locales/es.d.ts +84 -0
- package/dist/locales/es.js +94 -5
- package/dist/locales/fr.d.ts +84 -0
- package/dist/locales/fr.js +87 -3
- package/dist/locales/index.d.ts +846 -6
- package/dist/locales/ja.d.ts +84 -0
- package/dist/locales/ja.js +87 -3
- package/dist/locales/ko.d.ts +84 -0
- package/dist/locales/ko.js +87 -3
- package/dist/locales/pt.d.ts +84 -0
- package/dist/locales/pt.js +87 -3
- package/dist/locales/ru.d.ts +84 -0
- package/dist/locales/ru.js +87 -3
- package/dist/locales/zh.d.ts +87 -3
- package/dist/locales/zh.js +87 -3
- package/dist/provider.d.ts +43 -1
- package/dist/provider.js +105 -3
- package/dist/useSafeTranslation.js +17 -1
- package/package.json +2 -2
package/dist/locales/en.d.ts
CHANGED
|
@@ -81,6 +81,10 @@ declare const en: {
|
|
|
81
81
|
readonly select: "Select...";
|
|
82
82
|
readonly openChat: "Open chat";
|
|
83
83
|
readonly closeChat: "Close chat";
|
|
84
|
+
readonly closePanel: "Close panel";
|
|
85
|
+
readonly resizeDrawer: "Resize drawer";
|
|
86
|
+
readonly itemCount: "{{count}} items";
|
|
87
|
+
readonly itemCountOne: "{{count}} item";
|
|
84
88
|
readonly toggleSidebar: "Toggle sidebar";
|
|
85
89
|
readonly package: "Package";
|
|
86
90
|
};
|
|
@@ -105,6 +109,7 @@ declare const en: {
|
|
|
105
109
|
readonly url: "Please enter a valid URL";
|
|
106
110
|
readonly pattern: "{{field}} format is invalid";
|
|
107
111
|
readonly formInvalid: "Please check the highlighted fields: {{fields}}";
|
|
112
|
+
readonly formInvalidJoiner: ", ";
|
|
108
113
|
readonly unique: "{{field}} must be unique";
|
|
109
114
|
readonly type: "{{field}} must be a valid {{type}}";
|
|
110
115
|
};
|
|
@@ -129,12 +134,21 @@ declare const en: {
|
|
|
129
134
|
readonly stepOf: "Step {{current}} of {{total}}";
|
|
130
135
|
readonly createTitle: "Create {{object}}";
|
|
131
136
|
readonly editTitle: "Edit {{object}}";
|
|
137
|
+
readonly viewTitle: "View {{object}}";
|
|
138
|
+
readonly createTargetOrg: "Creates in {{org}}";
|
|
132
139
|
readonly saveRecord: "Save";
|
|
133
140
|
readonly create: "Create";
|
|
134
141
|
readonly update: "Update";
|
|
135
142
|
readonly createSuccess: "{{object}} created successfully";
|
|
136
143
|
readonly updateSuccess: "{{object}} updated successfully";
|
|
137
144
|
readonly deleteSuccess: "{{object}} deleted successfully";
|
|
145
|
+
readonly fullscreen: {
|
|
146
|
+
readonly title: "Edit text";
|
|
147
|
+
readonly description: "Edit the full text value, then save or cancel your changes.";
|
|
148
|
+
readonly done: "Done";
|
|
149
|
+
readonly toggle: "Edit {{label}} fullscreen";
|
|
150
|
+
readonly textFallback: "text";
|
|
151
|
+
};
|
|
138
152
|
};
|
|
139
153
|
readonly fields: {
|
|
140
154
|
readonly relativeDate: {
|
|
@@ -174,6 +188,10 @@ declare const en: {
|
|
|
174
188
|
readonly basicEditorHint: "Rich text editor (basic)";
|
|
175
189
|
readonly placeholder: "Enter text...";
|
|
176
190
|
};
|
|
191
|
+
readonly options: {
|
|
192
|
+
readonly empty: "No options available";
|
|
193
|
+
readonly selectFirst: "Select {{fields}} first";
|
|
194
|
+
};
|
|
177
195
|
readonly objectRef: {
|
|
178
196
|
readonly loading: "Loading objects…";
|
|
179
197
|
readonly placeholder: "Select an object";
|
|
@@ -201,6 +219,13 @@ declare const en: {
|
|
|
201
219
|
readonly editAsJson: "Edit as JSON";
|
|
202
220
|
readonly useVisualBuilder: "Use visual builder";
|
|
203
221
|
};
|
|
222
|
+
readonly tags: {
|
|
223
|
+
readonly placeholder: "Type and press Enter to add…";
|
|
224
|
+
};
|
|
225
|
+
readonly textarea: {
|
|
226
|
+
readonly characterCount: "Character count: {{count}} of {{max}}";
|
|
227
|
+
readonly charactersRemaining: "Characters remaining: {{count}}";
|
|
228
|
+
};
|
|
204
229
|
};
|
|
205
230
|
readonly table: {
|
|
206
231
|
readonly rowsPerPage: "Rows per page";
|
|
@@ -666,6 +691,12 @@ declare const en: {
|
|
|
666
691
|
readonly over: "overloaded";
|
|
667
692
|
readonly empty: "No tasks to allocate.";
|
|
668
693
|
};
|
|
694
|
+
readonly quickFilter: {
|
|
695
|
+
readonly all: "All";
|
|
696
|
+
readonly clear: "Clear filters";
|
|
697
|
+
readonly empty: "No options";
|
|
698
|
+
readonly resultSummary: "Showing {shown} / {total} tasks";
|
|
699
|
+
};
|
|
669
700
|
readonly readOnly: "Read-only";
|
|
670
701
|
readonly readOnlyHint: "Editing is disabled for this view.";
|
|
671
702
|
readonly lockedHint: "No edit permission";
|
|
@@ -712,14 +743,15 @@ declare const en: {
|
|
|
712
743
|
readonly editInlineHint: "Double-click to edit";
|
|
713
744
|
readonly lockedByApproval: "Locked for approval";
|
|
714
745
|
readonly lockedTooltip: "This record has a pending approval request; editing is locked";
|
|
715
|
-
readonly writeStrippedTitle: "
|
|
716
|
-
readonly writeStrippedReadonly: "Read-only, so it
|
|
717
|
-
readonly writeStrippedByState: "Not editable in this record's current state, so it
|
|
746
|
+
readonly writeStrippedTitle: "Saved — but some fields did not take effect";
|
|
747
|
+
readonly writeStrippedReadonly: "Read-only, so it did not take effect: {{fields}}";
|
|
748
|
+
readonly writeStrippedByState: "Not editable in this record's current state, so it did not take effect: {{fields}}";
|
|
718
749
|
readonly approvalPendingEditable: "In approval · editable";
|
|
719
750
|
readonly approvalPendingTooltip: "This record has a pending approval request; this step still allows editing";
|
|
720
751
|
readonly approvalProgress: "Approvals — {{got}} of {{need}}";
|
|
721
752
|
readonly approvalProgressGroups: "Sign-off — {{got}} of {{need}} groups";
|
|
722
753
|
readonly approvalProgressLabel: "Approval progress";
|
|
754
|
+
readonly approvalsPanelTitle: "Approvals";
|
|
723
755
|
readonly cancelApproval: "Recall approval";
|
|
724
756
|
readonly cancelApprovalInFlight: "Recalling…";
|
|
725
757
|
readonly cancelApprovalTooltip: "Recall the pending approval request to unlock this record";
|
|
@@ -747,6 +779,15 @@ declare const en: {
|
|
|
747
779
|
readonly viewHistory: "View history";
|
|
748
780
|
readonly delete: "Delete";
|
|
749
781
|
readonly moreActions: "More actions";
|
|
782
|
+
readonly addReaction: "Add reaction";
|
|
783
|
+
readonly pageHeaderActions: "Page header actions";
|
|
784
|
+
readonly emojiPicker: "Emoji picker";
|
|
785
|
+
readonly reactionCount: "{{emoji}} {{count}} reactions";
|
|
786
|
+
readonly reactionCountOne: "{{emoji}} {{count}} reaction";
|
|
787
|
+
readonly recordDetail: "Record Detail";
|
|
788
|
+
readonly recordDetailWithLabel: "{{label}} Detail";
|
|
789
|
+
readonly openAsFullPage: "Open as full page";
|
|
790
|
+
readonly recordDetailOverlay: "Record detail overlay for {{title}}.";
|
|
750
791
|
readonly addToFavorites: "Add to favorites";
|
|
751
792
|
readonly removeFromFavorites: "Remove from favorites";
|
|
752
793
|
readonly previousRecord: "Previous record";
|
|
@@ -1378,6 +1419,13 @@ declare const en: {
|
|
|
1378
1419
|
readonly retry: "Retry";
|
|
1379
1420
|
readonly retrying: "Retrying…";
|
|
1380
1421
|
};
|
|
1422
|
+
readonly serverAction: {
|
|
1423
|
+
readonly openingTitle: "Opening…";
|
|
1424
|
+
readonly openingBody: "Opening… this may take a moment.";
|
|
1425
|
+
readonly popupBlockedTitle: "Popup blocked";
|
|
1426
|
+
readonly popupBlockedDescription: "Your browser blocked the new tab from opening.";
|
|
1427
|
+
readonly popupBlockedAction: "Open in new tab";
|
|
1428
|
+
};
|
|
1381
1429
|
readonly shortcuts: {
|
|
1382
1430
|
readonly title: "Keyboard Shortcuts";
|
|
1383
1431
|
readonly description: "Quick reference for all available keyboard shortcuts.";
|
|
@@ -1613,6 +1661,8 @@ declare const en: {
|
|
|
1613
1661
|
readonly objectNotFound: "Object Not Found";
|
|
1614
1662
|
readonly objectNotFoundDescription: "The object \"{{objectName}}\" does not exist in the current configuration.";
|
|
1615
1663
|
readonly objectNotFoundHint: "Check your app navigation settings or select a different object from the sidebar.";
|
|
1664
|
+
readonly filterOrNotSavable: "This filter uses OR between conditions, which a saved view cannot store yet. It still applies to this list — remove the OR grouping to save it to the view.";
|
|
1665
|
+
readonly filterNestedNotSavable: "This filter uses nested condition groups, which a saved view cannot store. Flatten it to a single list of conditions to save it to the view.";
|
|
1616
1666
|
readonly systemViewReadonly: "System view defined in code — read-only.";
|
|
1617
1667
|
readonly expandToPage: "Open as full page";
|
|
1618
1668
|
readonly allRecords: "All Records";
|
|
@@ -3007,6 +3057,40 @@ declare const en: {
|
|
|
3007
3057
|
readonly addSort: "Add sort";
|
|
3008
3058
|
readonly removeSort: "Remove sort";
|
|
3009
3059
|
};
|
|
3060
|
+
readonly collaboration: {
|
|
3061
|
+
readonly commentCount: "{{count}} comments";
|
|
3062
|
+
readonly commentCountOne: "{{count}} comment";
|
|
3063
|
+
readonly resolvedSuffix: " · Resolved";
|
|
3064
|
+
readonly sortComments: "Sort comments";
|
|
3065
|
+
readonly sortOldest: "Oldest";
|
|
3066
|
+
readonly sortNewest: "Newest";
|
|
3067
|
+
readonly resolve: "Resolve";
|
|
3068
|
+
readonly reopen: "Reopen";
|
|
3069
|
+
readonly justNow: "just now";
|
|
3070
|
+
readonly minutesAgo: "{{count}}m ago";
|
|
3071
|
+
readonly hoursAgo: "{{count}}h ago";
|
|
3072
|
+
readonly daysAgo: "{{count}}d ago";
|
|
3073
|
+
readonly edited: "(edited)";
|
|
3074
|
+
readonly reactionCount: "{{count}} reactions";
|
|
3075
|
+
readonly reactionCountOne: "{{count}} reaction";
|
|
3076
|
+
readonly addThumbsUp: "Add thumbs up";
|
|
3077
|
+
readonly reply: "Reply";
|
|
3078
|
+
readonly reactThumbsUp: "React with thumbs up";
|
|
3079
|
+
readonly reactHeart: "React with heart";
|
|
3080
|
+
readonly cancelReply: "Cancel reply";
|
|
3081
|
+
readonly replyingTo: "Replying to {{name}}...";
|
|
3082
|
+
readonly replyingToComment: "Replying to comment...";
|
|
3083
|
+
readonly commentPlaceholder: "Add a comment... (use @ to mention)";
|
|
3084
|
+
readonly send: "Send";
|
|
3085
|
+
readonly presentUserCount: "{{count}} users present";
|
|
3086
|
+
readonly presentUserCountOne: "{{count}} user present";
|
|
3087
|
+
readonly moreUserCount: "{{count}} more users";
|
|
3088
|
+
readonly moreUserCountOne: "{{count}} more user";
|
|
3089
|
+
readonly userStatusTitle: "{{name}} ({{status}})";
|
|
3090
|
+
readonly statusActive: "active";
|
|
3091
|
+
readonly statusIdle: "idle";
|
|
3092
|
+
readonly statusAway: "away";
|
|
3093
|
+
};
|
|
3010
3094
|
};
|
|
3011
3095
|
export default en;
|
|
3012
3096
|
export type TranslationKeys = typeof en;
|
package/dist/locales/en.js
CHANGED
|
@@ -85,6 +85,12 @@ const en = {
|
|
|
85
85
|
select: 'Select...',
|
|
86
86
|
openChat: 'Open chat',
|
|
87
87
|
closeChat: 'Close chat',
|
|
88
|
+
closePanel: 'Close panel',
|
|
89
|
+
resizeDrawer: 'Resize drawer',
|
|
90
|
+
// Count badge on a tab / section header. Two keys, NOT an i18next
|
|
91
|
+
// `_one`/`_other` pair — see the `reactionCount` note under `detail`.
|
|
92
|
+
itemCount: '{{count}} items',
|
|
93
|
+
itemCountOne: '{{count}} item',
|
|
88
94
|
toggleSidebar: 'Toggle sidebar',
|
|
89
95
|
package: 'Package',
|
|
90
96
|
},
|
|
@@ -109,6 +115,12 @@ const en = {
|
|
|
109
115
|
url: 'Please enter a valid URL',
|
|
110
116
|
pattern: '{{field}} format is invalid',
|
|
111
117
|
formInvalid: 'Please check the highlighted fields: {{fields}}',
|
|
118
|
+
// Separator between the field names interpolated into `formInvalid`.
|
|
119
|
+
// Per-locale because list punctuation is a locale property, not a code
|
|
120
|
+
// constant: CJK enumerates with U+3001, Latin scripts with a comma+space,
|
|
121
|
+
// Arabic with U+060C. Hardcoding one of them in the renderer put the CJK
|
|
122
|
+
// comma into the English toast (objectstack#5407).
|
|
123
|
+
formInvalidJoiner: ', ',
|
|
112
124
|
unique: '{{field}} must be unique',
|
|
113
125
|
type: '{{field}} must be a valid {{type}}',
|
|
114
126
|
},
|
|
@@ -133,12 +145,21 @@ const en = {
|
|
|
133
145
|
stepOf: 'Step {{current}} of {{total}}',
|
|
134
146
|
createTitle: 'Create {{object}}',
|
|
135
147
|
editTitle: 'Edit {{object}}',
|
|
148
|
+
viewTitle: 'View {{object}}',
|
|
149
|
+
createTargetOrg: 'Creates in {{org}}',
|
|
136
150
|
saveRecord: 'Save',
|
|
137
151
|
create: 'Create',
|
|
138
152
|
update: 'Update',
|
|
139
153
|
createSuccess: '{{object}} created successfully',
|
|
140
154
|
updateSuccess: '{{object}} updated successfully',
|
|
141
155
|
deleteSuccess: '{{object}} deleted successfully',
|
|
156
|
+
fullscreen: {
|
|
157
|
+
title: 'Edit text',
|
|
158
|
+
description: 'Edit the full text value, then save or cancel your changes.',
|
|
159
|
+
done: 'Done',
|
|
160
|
+
toggle: 'Edit {{label}} fullscreen',
|
|
161
|
+
textFallback: 'text',
|
|
162
|
+
},
|
|
142
163
|
},
|
|
143
164
|
fields: {
|
|
144
165
|
relativeDate: {
|
|
@@ -178,6 +199,14 @@ const en = {
|
|
|
178
199
|
basicEditorHint: 'Rich text editor (basic)',
|
|
179
200
|
placeholder: 'Enter text...',
|
|
180
201
|
},
|
|
202
|
+
// objectui#3231 — the "this option list cannot be filled" copy shared by
|
|
203
|
+
// the fixed-option widgets (select / multiselect / radio / checkboxes) AND
|
|
204
|
+
// by the form renderer's gate hint. One key, one sentence: the renderer
|
|
205
|
+
// interpolates field LABELS, a standalone widget its raw field names.
|
|
206
|
+
options: {
|
|
207
|
+
empty: 'No options available',
|
|
208
|
+
selectFirst: 'Select {{fields}} first',
|
|
209
|
+
},
|
|
181
210
|
objectRef: {
|
|
182
211
|
loading: 'Loading objects…',
|
|
183
212
|
placeholder: 'Select an object',
|
|
@@ -205,6 +234,32 @@ const en = {
|
|
|
205
234
|
editAsJson: 'Edit as JSON',
|
|
206
235
|
useVisualBuilder: 'Use visual builder',
|
|
207
236
|
},
|
|
237
|
+
// objectui#3342 — the tags widget's input hint, shown while the tag list
|
|
238
|
+
// is empty. The author-declared `field.placeholder` always wins over this.
|
|
239
|
+
tags: {
|
|
240
|
+
placeholder: 'Type and press Enter to add…',
|
|
241
|
+
},
|
|
242
|
+
// objectui#3406 — the accessible sentence of the textarea character
|
|
243
|
+
// counter, rendered only when the field declares `maxLength`. The visible
|
|
244
|
+
// text is `{count}/{max}` digits and needs no locale. ONE interpolated key
|
|
245
|
+
// rather than assembled parts: ja and ko put the cap BEFORE the count
|
|
246
|
+
// ("of {{max}} characters, {{count}}"), an order no code-side
|
|
247
|
+
// concatenation can produce.
|
|
248
|
+
//
|
|
249
|
+
// objectui#3408 moved it off the `aria-live` region and onto the
|
|
250
|
+
// textarea's `aria-describedby` — read once when focus lands, instead of
|
|
251
|
+
// re-announced on every keystroke — and added `charactersRemaining` as the
|
|
252
|
+
// one thing that IS still spoken while typing: after a pause, and only
|
|
253
|
+
// inside the last 10% (or last 20 characters) of the cap.
|
|
254
|
+
//
|
|
255
|
+
// `charactersRemaining` is deliberately colon-form. `count` sends i18next
|
|
256
|
+
// to plural lookup before the base key, and these packs declare the base
|
|
257
|
+
// key only; a sentence whose grammar does not bend on the number is
|
|
258
|
+
// correct at 1 without ten plural entries per pack.
|
|
259
|
+
textarea: {
|
|
260
|
+
characterCount: 'Character count: {{count}} of {{max}}',
|
|
261
|
+
charactersRemaining: 'Characters remaining: {{count}}',
|
|
262
|
+
},
|
|
208
263
|
},
|
|
209
264
|
table: {
|
|
210
265
|
rowsPerPage: 'Rows per page',
|
|
@@ -670,6 +725,15 @@ const en = {
|
|
|
670
725
|
over: 'overloaded',
|
|
671
726
|
empty: 'No tasks to allocate.',
|
|
672
727
|
},
|
|
728
|
+
quickFilter: {
|
|
729
|
+
all: 'All',
|
|
730
|
+
clear: 'Clear filters',
|
|
731
|
+
empty: 'No options',
|
|
732
|
+
// SINGLE braces on purpose: the ObjectGantt call site resolves these
|
|
733
|
+
// with a literal `.replace('{shown}', …)`, not i18next interpolation
|
|
734
|
+
// (same convention as `autoScheduleDlg.body` above).
|
|
735
|
+
resultSummary: 'Showing {shown} / {total} tasks',
|
|
736
|
+
},
|
|
673
737
|
readOnly: 'Read-only',
|
|
674
738
|
readOnlyHint: 'Editing is disabled for this view.',
|
|
675
739
|
lockedHint: 'No edit permission',
|
|
@@ -716,14 +780,15 @@ const en = {
|
|
|
716
780
|
editInlineHint: 'Double-click to edit',
|
|
717
781
|
lockedByApproval: 'Locked for approval',
|
|
718
782
|
lockedTooltip: 'This record has a pending approval request; editing is locked',
|
|
719
|
-
writeStrippedTitle: '
|
|
720
|
-
writeStrippedReadonly: 'Read-only, so it
|
|
721
|
-
writeStrippedByState: "Not editable in this record's current state, so it
|
|
783
|
+
writeStrippedTitle: 'Saved — but some fields did not take effect',
|
|
784
|
+
writeStrippedReadonly: 'Read-only, so it did not take effect: {{fields}}',
|
|
785
|
+
writeStrippedByState: "Not editable in this record's current state, so it did not take effect: {{fields}}",
|
|
722
786
|
approvalPendingEditable: 'In approval · editable',
|
|
723
787
|
approvalPendingTooltip: 'This record has a pending approval request; this step still allows editing',
|
|
724
788
|
approvalProgress: 'Approvals — {{got}} of {{need}}',
|
|
725
789
|
approvalProgressGroups: 'Sign-off — {{got}} of {{need}} groups',
|
|
726
790
|
approvalProgressLabel: 'Approval progress',
|
|
791
|
+
approvalsPanelTitle: 'Approvals',
|
|
727
792
|
cancelApproval: 'Recall approval',
|
|
728
793
|
cancelApprovalInFlight: 'Recalling…',
|
|
729
794
|
cancelApprovalTooltip: 'Recall the pending approval request to unlock this record',
|
|
@@ -752,6 +817,28 @@ const en = {
|
|
|
752
817
|
viewHistory: 'View history',
|
|
753
818
|
delete: 'Delete',
|
|
754
819
|
moreActions: 'More actions',
|
|
820
|
+
addReaction: 'Add reaction',
|
|
821
|
+
pageHeaderActions: 'Page header actions',
|
|
822
|
+
emojiPicker: 'Emoji picker',
|
|
823
|
+
reactionCount: '{{emoji}} {{count}} reactions',
|
|
824
|
+
reactionCountOne: '{{emoji}} {{count}} reaction',
|
|
825
|
+
// Record-overlay chrome (objectstack#5506). `recordDetail` is the VISIBLE
|
|
826
|
+
// heading the overlay falls back to when the host passes no title;
|
|
827
|
+
// `openAsFullPage` is the icon-only expand button's default accessible
|
|
828
|
+
// name; `recordDetailOverlay` is the sr-only description on the
|
|
829
|
+
// Sheet/Dialog when the host supplies none.
|
|
830
|
+
recordDetail: 'Record Detail',
|
|
831
|
+
// Same heading, but for the hosts that DO know which object they are
|
|
832
|
+
// showing (objectui#3426): `ListView` / `ObjectGrid` used to string-build
|
|
833
|
+
// `` `${label} Detail` `` in TypeScript and hand it to the overlay's
|
|
834
|
+
// `title` prop, so `recordDetail` above never got a chance to apply and a
|
|
835
|
+
// non-English session read one English heading. Interpolating keeps the
|
|
836
|
+
// object label in the heading without freezing English word order — a pack
|
|
837
|
+
// whose qualifier trails the noun (de: a hyphenated compound) or that needs
|
|
838
|
+
// a possessive particle (ja/zh) writes its own arrangement here.
|
|
839
|
+
recordDetailWithLabel: '{{label}} Detail',
|
|
840
|
+
openAsFullPage: 'Open as full page',
|
|
841
|
+
recordDetailOverlay: 'Record detail overlay for {{title}}.',
|
|
755
842
|
addToFavorites: 'Add to favorites',
|
|
756
843
|
removeFromFavorites: 'Remove from favorites',
|
|
757
844
|
previousRecord: 'Previous record',
|
|
@@ -1400,6 +1487,15 @@ const en = {
|
|
|
1400
1487
|
retry: 'Retry',
|
|
1401
1488
|
retrying: 'Retrying…',
|
|
1402
1489
|
},
|
|
1490
|
+
// Copy owned by the console server-action wrapper (`consoleServerAction.ts`,
|
|
1491
|
+
// objectui#3321): the pre-opened SSO spinner tab and the popup-blocked toast.
|
|
1492
|
+
serverAction: {
|
|
1493
|
+
openingTitle: 'Opening…',
|
|
1494
|
+
openingBody: 'Opening… this may take a moment.',
|
|
1495
|
+
popupBlockedTitle: 'Popup blocked',
|
|
1496
|
+
popupBlockedDescription: 'Your browser blocked the new tab from opening.',
|
|
1497
|
+
popupBlockedAction: 'Open in new tab',
|
|
1498
|
+
},
|
|
1403
1499
|
shortcuts: {
|
|
1404
1500
|
title: 'Keyboard Shortcuts',
|
|
1405
1501
|
description: 'Quick reference for all available keyboard shortcuts.',
|
|
@@ -1643,6 +1739,8 @@ const en = {
|
|
|
1643
1739
|
objectNotFound: 'Object Not Found',
|
|
1644
1740
|
objectNotFoundDescription: 'The object "{{objectName}}" does not exist in the current configuration.',
|
|
1645
1741
|
objectNotFoundHint: 'Check your app navigation settings or select a different object from the sidebar.',
|
|
1742
|
+
filterOrNotSavable: 'This filter uses OR between conditions, which a saved view cannot store yet. It still applies to this list — remove the OR grouping to save it to the view.',
|
|
1743
|
+
filterNestedNotSavable: 'This filter uses nested condition groups, which a saved view cannot store. Flatten it to a single list of conditions to save it to the view.',
|
|
1646
1744
|
systemViewReadonly: 'System view defined in code — read-only.',
|
|
1647
1745
|
expandToPage: 'Open as full page',
|
|
1648
1746
|
allRecords: 'All Records',
|
|
@@ -3052,5 +3150,82 @@ const en = {
|
|
|
3052
3150
|
addSort: 'Add sort',
|
|
3053
3151
|
removeSort: 'Remove sort',
|
|
3054
3152
|
},
|
|
3153
|
+
// `@object-ui/collaboration` — the comment thread's copy (objectstack#5506,
|
|
3154
|
+
// objectui#3424). The package used to carry every one of these as an English
|
|
3155
|
+
// literal, so a zh session read a Chinese console with an English comment
|
|
3156
|
+
// thread inside it. `COLLAB_DEFAULT_TRANSLATIONS` in that package mirrors
|
|
3157
|
+
// this namespace verbatim as its no-provider fallback; keep the two in step.
|
|
3158
|
+
//
|
|
3159
|
+
// The generic action words (Save / Cancel / Edit / Delete) are NOT repeated
|
|
3160
|
+
// here — the thread reads them from `common`.
|
|
3161
|
+
collaboration: {
|
|
3162
|
+
// Thread header. `commentCount`/`commentCountOne` are two keys, NOT an
|
|
3163
|
+
// i18next `_one`/`_other` pair — see the `reactionCount` note under
|
|
3164
|
+
// `detail`: zh/ja/ko have no separate singular form, so those packs would
|
|
3165
|
+
// legitimately omit the `_one` half and `all-locales-key-parity` reads a
|
|
3166
|
+
// legitimately-absent half as a lost key.
|
|
3167
|
+
commentCount: '{{count}} comments',
|
|
3168
|
+
commentCountOne: '{{count}} comment',
|
|
3169
|
+
// Appended to the count, separator included, so a translator owns the
|
|
3170
|
+
// whole phrase rather than inheriting an English-shaped ` · ` glue.
|
|
3171
|
+
resolvedSuffix: ' · Resolved',
|
|
3172
|
+
sortComments: 'Sort comments',
|
|
3173
|
+
sortOldest: 'Oldest',
|
|
3174
|
+
sortNewest: 'Newest',
|
|
3175
|
+
resolve: 'Resolve',
|
|
3176
|
+
reopen: 'Reopen',
|
|
3177
|
+
// Relative comment age. Word-level entries only — the component keeps its
|
|
3178
|
+
// existing minute/hour/day buckets and no date library was introduced.
|
|
3179
|
+
justNow: 'just now',
|
|
3180
|
+
minutesAgo: '{{count}}m ago',
|
|
3181
|
+
hoursAgo: '{{count}}h ago',
|
|
3182
|
+
daysAgo: '{{count}}d ago',
|
|
3183
|
+
edited: '(edited)',
|
|
3184
|
+
// Reaction-chip tooltip. A DEDICATED pair rather than `detail.reactionCount`:
|
|
3185
|
+
// that one interpolates `{{emoji}}`, and here the emoji is the chip's
|
|
3186
|
+
// visible label with nothing to hand the placeholder.
|
|
3187
|
+
reactionCount: '{{count}} reactions',
|
|
3188
|
+
reactionCountOne: '{{count}} reaction',
|
|
3189
|
+
addThumbsUp: 'Add thumbs up',
|
|
3190
|
+
reply: 'Reply',
|
|
3191
|
+
// Accessible names for the three emoji-only controls (objectui#3441).
|
|
3192
|
+
// A `button`'s accessible name is computed from its CONTENT before `title`
|
|
3193
|
+
// is ever consulted, so '👍' / '❤️' / '✕' named themselves — these keys are
|
|
3194
|
+
// wired as `aria-label`, which overrides content.
|
|
3195
|
+
//
|
|
3196
|
+
// `reactThumbsUp` stays distinct from `addThumbsUp` above even though both
|
|
3197
|
+
// dispatch the same reaction today: that one names the reaction-bar `+`
|
|
3198
|
+
// picker, and the two render side by side on a comment that already has
|
|
3199
|
+
// reactions.
|
|
3200
|
+
reactThumbsUp: 'React with thumbs up',
|
|
3201
|
+
reactHeart: 'React with heart',
|
|
3202
|
+
// Not `common.cancel`: an accessible name has to say what is cancelled.
|
|
3203
|
+
// Only the reply TARGET is dropped — the composer keeps whatever was typed.
|
|
3204
|
+
cancelReply: 'Cancel reply',
|
|
3205
|
+
replyingTo: 'Replying to {{name}}...',
|
|
3206
|
+
// The no-author-found half of the reply banner, as a whole sentence:
|
|
3207
|
+
// languages that inflect around the addressee cannot build it by
|
|
3208
|
+
// substituting a noun into the `{{name}}` form.
|
|
3209
|
+
replyingToComment: 'Replying to comment...',
|
|
3210
|
+
commentPlaceholder: 'Add a comment... (use @ to mention)',
|
|
3211
|
+
send: 'Send',
|
|
3212
|
+
// Presence avatar stack (objectui#3440). `presentUserCount*` is the avatar
|
|
3213
|
+
// group's `aria-label` — with only images and initials inside, that label
|
|
3214
|
+
// IS the control for a screen reader. Two keys, same reason as
|
|
3215
|
+
// `commentCount` above.
|
|
3216
|
+
presentUserCount: '{{count}} users present',
|
|
3217
|
+
presentUserCountOne: '{{count}} user present',
|
|
3218
|
+
moreUserCount: '{{count}} more users',
|
|
3219
|
+
moreUserCountOne: '{{count}} more user',
|
|
3220
|
+
// Avatar tooltip. The parentheses are part of the translation, spacing
|
|
3221
|
+
// included, so the CJK packs can drop the space English puts before `(`.
|
|
3222
|
+
userStatusTitle: '{{name}} ({{status}})',
|
|
3223
|
+
// Display copy for the `PresenceUser['status']` enum. The enum value
|
|
3224
|
+
// itself stays raw data — it is translated at the render exit only, and a
|
|
3225
|
+
// status outside the union falls back to the raw string.
|
|
3226
|
+
statusActive: 'active',
|
|
3227
|
+
statusIdle: 'idle',
|
|
3228
|
+
statusAway: 'away',
|
|
3229
|
+
},
|
|
3055
3230
|
};
|
|
3056
3231
|
export default en;
|
package/dist/locales/es.d.ts
CHANGED
|
@@ -78,6 +78,10 @@ declare const es: {
|
|
|
78
78
|
select: string;
|
|
79
79
|
openChat: string;
|
|
80
80
|
closeChat: string;
|
|
81
|
+
closePanel: string;
|
|
82
|
+
resizeDrawer: string;
|
|
83
|
+
itemCount: string;
|
|
84
|
+
itemCountOne: string;
|
|
81
85
|
toggleSidebar: string;
|
|
82
86
|
package: string;
|
|
83
87
|
};
|
|
@@ -102,6 +106,7 @@ declare const es: {
|
|
|
102
106
|
url: string;
|
|
103
107
|
pattern: string;
|
|
104
108
|
formInvalid: string;
|
|
109
|
+
formInvalidJoiner: string;
|
|
105
110
|
unique: string;
|
|
106
111
|
type: string;
|
|
107
112
|
};
|
|
@@ -126,12 +131,21 @@ declare const es: {
|
|
|
126
131
|
stepOf: string;
|
|
127
132
|
createTitle: string;
|
|
128
133
|
editTitle: string;
|
|
134
|
+
viewTitle: string;
|
|
135
|
+
createTargetOrg: string;
|
|
129
136
|
saveRecord: string;
|
|
130
137
|
create: string;
|
|
131
138
|
update: string;
|
|
132
139
|
createSuccess: string;
|
|
133
140
|
updateSuccess: string;
|
|
134
141
|
deleteSuccess: string;
|
|
142
|
+
fullscreen: {
|
|
143
|
+
title: string;
|
|
144
|
+
description: string;
|
|
145
|
+
done: string;
|
|
146
|
+
toggle: string;
|
|
147
|
+
textFallback: string;
|
|
148
|
+
};
|
|
135
149
|
};
|
|
136
150
|
fields: {
|
|
137
151
|
image: {
|
|
@@ -171,6 +185,10 @@ declare const es: {
|
|
|
171
185
|
basicEditorHint: string;
|
|
172
186
|
placeholder: string;
|
|
173
187
|
};
|
|
188
|
+
options: {
|
|
189
|
+
empty: string;
|
|
190
|
+
selectFirst: string;
|
|
191
|
+
};
|
|
174
192
|
objectRef: {
|
|
175
193
|
loading: string;
|
|
176
194
|
placeholder: string;
|
|
@@ -198,6 +216,13 @@ declare const es: {
|
|
|
198
216
|
editAsJson: string;
|
|
199
217
|
useVisualBuilder: string;
|
|
200
218
|
};
|
|
219
|
+
tags: {
|
|
220
|
+
placeholder: string;
|
|
221
|
+
};
|
|
222
|
+
textarea: {
|
|
223
|
+
characterCount: string;
|
|
224
|
+
charactersRemaining: string;
|
|
225
|
+
};
|
|
201
226
|
};
|
|
202
227
|
table: {
|
|
203
228
|
rowsPerPage: string;
|
|
@@ -636,6 +661,12 @@ declare const es: {
|
|
|
636
661
|
over: string;
|
|
637
662
|
empty: string;
|
|
638
663
|
};
|
|
664
|
+
quickFilter: {
|
|
665
|
+
all: string;
|
|
666
|
+
clear: string;
|
|
667
|
+
empty: string;
|
|
668
|
+
resultSummary: string;
|
|
669
|
+
};
|
|
639
670
|
readOnly: string;
|
|
640
671
|
readOnlyHint: string;
|
|
641
672
|
lockedHint: string;
|
|
@@ -718,6 +749,15 @@ declare const es: {
|
|
|
718
749
|
viewHistory: string;
|
|
719
750
|
delete: string;
|
|
720
751
|
moreActions: string;
|
|
752
|
+
addReaction: string;
|
|
753
|
+
pageHeaderActions: string;
|
|
754
|
+
emojiPicker: string;
|
|
755
|
+
reactionCount: string;
|
|
756
|
+
reactionCountOne: string;
|
|
757
|
+
recordDetail: string;
|
|
758
|
+
recordDetailWithLabel: string;
|
|
759
|
+
openAsFullPage: string;
|
|
760
|
+
recordDetailOverlay: string;
|
|
721
761
|
addToFavorites: string;
|
|
722
762
|
removeFromFavorites: string;
|
|
723
763
|
previousRecord: string;
|
|
@@ -821,6 +861,7 @@ declare const es: {
|
|
|
821
861
|
approvalProgress: string;
|
|
822
862
|
approvalProgressGroups: string;
|
|
823
863
|
approvalProgressLabel: string;
|
|
864
|
+
approvalsPanelTitle: string;
|
|
824
865
|
cancelApproval: string;
|
|
825
866
|
cancelApprovalInFlight: string;
|
|
826
867
|
cancelApprovalTooltip: string;
|
|
@@ -1412,6 +1453,13 @@ declare const es: {
|
|
|
1412
1453
|
retry: string;
|
|
1413
1454
|
retrying: string;
|
|
1414
1455
|
};
|
|
1456
|
+
serverAction: {
|
|
1457
|
+
openingTitle: string;
|
|
1458
|
+
openingBody: string;
|
|
1459
|
+
popupBlockedTitle: string;
|
|
1460
|
+
popupBlockedDescription: string;
|
|
1461
|
+
popupBlockedAction: string;
|
|
1462
|
+
};
|
|
1415
1463
|
shortcuts: {
|
|
1416
1464
|
title: string;
|
|
1417
1465
|
description: string;
|
|
@@ -1479,6 +1527,8 @@ declare const es: {
|
|
|
1479
1527
|
objectNotFound: string;
|
|
1480
1528
|
objectNotFoundDescription: string;
|
|
1481
1529
|
objectNotFoundHint: string;
|
|
1530
|
+
filterOrNotSavable: string;
|
|
1531
|
+
filterNestedNotSavable: string;
|
|
1482
1532
|
allRecords: string;
|
|
1483
1533
|
exitDesignMode: string;
|
|
1484
1534
|
enterDesignMode: string;
|
|
@@ -3000,5 +3050,39 @@ declare const es: {
|
|
|
3000
3050
|
addSort: string;
|
|
3001
3051
|
removeSort: string;
|
|
3002
3052
|
};
|
|
3053
|
+
collaboration: {
|
|
3054
|
+
commentCount: string;
|
|
3055
|
+
commentCountOne: string;
|
|
3056
|
+
resolvedSuffix: string;
|
|
3057
|
+
sortComments: string;
|
|
3058
|
+
sortOldest: string;
|
|
3059
|
+
sortNewest: string;
|
|
3060
|
+
resolve: string;
|
|
3061
|
+
reopen: string;
|
|
3062
|
+
justNow: string;
|
|
3063
|
+
minutesAgo: string;
|
|
3064
|
+
hoursAgo: string;
|
|
3065
|
+
daysAgo: string;
|
|
3066
|
+
edited: string;
|
|
3067
|
+
reactionCount: string;
|
|
3068
|
+
reactionCountOne: string;
|
|
3069
|
+
addThumbsUp: string;
|
|
3070
|
+
reply: string;
|
|
3071
|
+
reactThumbsUp: string;
|
|
3072
|
+
reactHeart: string;
|
|
3073
|
+
cancelReply: string;
|
|
3074
|
+
replyingTo: string;
|
|
3075
|
+
replyingToComment: string;
|
|
3076
|
+
commentPlaceholder: string;
|
|
3077
|
+
send: string;
|
|
3078
|
+
presentUserCount: string;
|
|
3079
|
+
presentUserCountOne: string;
|
|
3080
|
+
moreUserCount: string;
|
|
3081
|
+
moreUserCountOne: string;
|
|
3082
|
+
userStatusTitle: string;
|
|
3083
|
+
statusActive: string;
|
|
3084
|
+
statusIdle: string;
|
|
3085
|
+
statusAway: string;
|
|
3086
|
+
};
|
|
3003
3087
|
};
|
|
3004
3088
|
export default es;
|