@appsupportkit/support-sdk 0.2.0 → 0.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/lib/commonjs/api.js +17 -2
- package/lib/commonjs/api.js.map +1 -1
- package/lib/commonjs/components/SupportButton.js +123 -23
- package/lib/commonjs/components/SupportButton.js.map +1 -1
- package/lib/commonjs/components/icons.js +36 -0
- package/lib/commonjs/components/icons.js.map +1 -1
- package/lib/commonjs/components/primitives.js +9 -7
- package/lib/commonjs/components/primitives.js.map +1 -1
- package/lib/commonjs/components/screens/ComposeScreen.js +14 -23
- package/lib/commonjs/components/screens/ComposeScreen.js.map +1 -1
- package/lib/commonjs/components/screens/HomeScreen.js +70 -22
- package/lib/commonjs/components/screens/HomeScreen.js.map +1 -1
- package/lib/commonjs/components/screens/LanguageScreen.js +150 -0
- package/lib/commonjs/components/screens/LanguageScreen.js.map +1 -0
- package/lib/commonjs/components/screens/ThreadScreen.js +31 -19
- package/lib/commonjs/components/screens/ThreadScreen.js.map +1 -1
- package/lib/commonjs/i18n/index.js +101 -0
- package/lib/commonjs/i18n/index.js.map +1 -0
- package/lib/commonjs/i18n/languages.js +95 -0
- package/lib/commonjs/i18n/languages.js.map +1 -0
- package/lib/commonjs/i18n/strings/de.js +72 -0
- package/lib/commonjs/i18n/strings/de.js.map +1 -0
- package/lib/commonjs/i18n/strings/en.js +88 -0
- package/lib/commonjs/i18n/strings/en.js.map +1 -0
- package/lib/commonjs/i18n/strings/es.js +72 -0
- package/lib/commonjs/i18n/strings/es.js.map +1 -0
- package/lib/commonjs/i18n/strings/fr.js +72 -0
- package/lib/commonjs/i18n/strings/fr.js.map +1 -0
- package/lib/commonjs/i18n/strings/hi.js +72 -0
- package/lib/commonjs/i18n/strings/hi.js.map +1 -0
- package/lib/commonjs/i18n/strings/it.js +72 -0
- package/lib/commonjs/i18n/strings/it.js.map +1 -0
- package/lib/commonjs/i18n/strings/ja.js +72 -0
- package/lib/commonjs/i18n/strings/ja.js.map +1 -0
- package/lib/commonjs/i18n/strings/ko.js +72 -0
- package/lib/commonjs/i18n/strings/ko.js.map +1 -0
- package/lib/commonjs/i18n/strings/nl.js +72 -0
- package/lib/commonjs/i18n/strings/nl.js.map +1 -0
- package/lib/commonjs/i18n/strings/pl.js +72 -0
- package/lib/commonjs/i18n/strings/pl.js.map +1 -0
- package/lib/commonjs/i18n/strings/pt.js +72 -0
- package/lib/commonjs/i18n/strings/pt.js.map +1 -0
- package/lib/commonjs/i18n/strings/ru.js +72 -0
- package/lib/commonjs/i18n/strings/ru.js.map +1 -0
- package/lib/commonjs/i18n/strings/tr.js +72 -0
- package/lib/commonjs/i18n/strings/tr.js.map +1 -0
- package/lib/commonjs/i18n/strings/zh.js +72 -0
- package/lib/commonjs/i18n/strings/zh.js.map +1 -0
- package/lib/commonjs/index.js +31 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js +11 -0
- package/lib/commonjs/types.js.map +1 -1
- package/lib/commonjs/useSupportThreads.js +19 -9
- package/lib/commonjs/useSupportThreads.js.map +1 -1
- package/lib/commonjs/utils.js +32 -17
- package/lib/commonjs/utils.js.map +1 -1
- package/lib/module/api.js +16 -2
- package/lib/module/api.js.map +1 -1
- package/lib/module/components/SupportButton.js +126 -26
- package/lib/module/components/SupportButton.js.map +1 -1
- package/lib/module/components/icons.js +35 -0
- package/lib/module/components/icons.js.map +1 -1
- package/lib/module/components/primitives.js +9 -7
- package/lib/module/components/primitives.js.map +1 -1
- package/lib/module/components/screens/ComposeScreen.js +15 -22
- package/lib/module/components/screens/ComposeScreen.js.map +1 -1
- package/lib/module/components/screens/HomeScreen.js +71 -23
- package/lib/module/components/screens/HomeScreen.js.map +1 -1
- package/lib/module/components/screens/LanguageScreen.js +147 -0
- package/lib/module/components/screens/LanguageScreen.js.map +1 -0
- package/lib/module/components/screens/ThreadScreen.js +31 -19
- package/lib/module/components/screens/ThreadScreen.js.map +1 -1
- package/lib/module/i18n/index.js +56 -0
- package/lib/module/i18n/index.js.map +1 -0
- package/lib/module/i18n/languages.js +88 -0
- package/lib/module/i18n/languages.js.map +1 -0
- package/lib/module/i18n/strings/de.js +68 -0
- package/lib/module/i18n/strings/de.js.map +1 -0
- package/lib/module/i18n/strings/en.js +84 -0
- package/lib/module/i18n/strings/en.js.map +1 -0
- package/lib/module/i18n/strings/es.js +68 -0
- package/lib/module/i18n/strings/es.js.map +1 -0
- package/lib/module/i18n/strings/fr.js +68 -0
- package/lib/module/i18n/strings/fr.js.map +1 -0
- package/lib/module/i18n/strings/hi.js +68 -0
- package/lib/module/i18n/strings/hi.js.map +1 -0
- package/lib/module/i18n/strings/it.js +68 -0
- package/lib/module/i18n/strings/it.js.map +1 -0
- package/lib/module/i18n/strings/ja.js +68 -0
- package/lib/module/i18n/strings/ja.js.map +1 -0
- package/lib/module/i18n/strings/ko.js +68 -0
- package/lib/module/i18n/strings/ko.js.map +1 -0
- package/lib/module/i18n/strings/nl.js +68 -0
- package/lib/module/i18n/strings/nl.js.map +1 -0
- package/lib/module/i18n/strings/pl.js +68 -0
- package/lib/module/i18n/strings/pl.js.map +1 -0
- package/lib/module/i18n/strings/pt.js +68 -0
- package/lib/module/i18n/strings/pt.js.map +1 -0
- package/lib/module/i18n/strings/ru.js +68 -0
- package/lib/module/i18n/strings/ru.js.map +1 -0
- package/lib/module/i18n/strings/tr.js +68 -0
- package/lib/module/i18n/strings/tr.js.map +1 -0
- package/lib/module/i18n/strings/zh.js +68 -0
- package/lib/module/i18n/strings/zh.js.map +1 -0
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js +11 -0
- package/lib/module/types.js.map +1 -1
- package/lib/module/useSupportThreads.js +19 -9
- package/lib/module/useSupportThreads.js.map +1 -1
- package/lib/module/utils.js +32 -17
- package/lib/module/utils.js.map +1 -1
- package/lib/typescript/api.d.ts +9 -0
- package/lib/typescript/api.d.ts.map +1 -1
- package/lib/typescript/components/SupportButton.d.ts.map +1 -1
- package/lib/typescript/components/icons.d.ts +5 -0
- package/lib/typescript/components/icons.d.ts.map +1 -1
- package/lib/typescript/components/primitives.d.ts +7 -3
- package/lib/typescript/components/primitives.d.ts.map +1 -1
- package/lib/typescript/components/screens/ComposeScreen.d.ts +3 -1
- package/lib/typescript/components/screens/ComposeScreen.d.ts.map +1 -1
- package/lib/typescript/components/screens/HomeScreen.d.ts +6 -1
- package/lib/typescript/components/screens/HomeScreen.d.ts.map +1 -1
- package/lib/typescript/components/screens/LanguageScreen.d.ts +30 -0
- package/lib/typescript/components/screens/LanguageScreen.d.ts.map +1 -0
- package/lib/typescript/components/screens/ThreadScreen.d.ts +3 -1
- package/lib/typescript/components/screens/ThreadScreen.d.ts.map +1 -1
- package/lib/typescript/i18n/index.d.ts +15 -0
- package/lib/typescript/i18n/index.d.ts.map +1 -0
- package/lib/typescript/i18n/languages.d.ts +36 -0
- package/lib/typescript/i18n/languages.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/de.d.ts +3 -0
- package/lib/typescript/i18n/strings/de.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/en.d.ts +83 -0
- package/lib/typescript/i18n/strings/en.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/es.d.ts +3 -0
- package/lib/typescript/i18n/strings/es.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/fr.d.ts +3 -0
- package/lib/typescript/i18n/strings/fr.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/hi.d.ts +3 -0
- package/lib/typescript/i18n/strings/hi.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/it.d.ts +3 -0
- package/lib/typescript/i18n/strings/it.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/ja.d.ts +3 -0
- package/lib/typescript/i18n/strings/ja.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/ko.d.ts +3 -0
- package/lib/typescript/i18n/strings/ko.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/nl.d.ts +3 -0
- package/lib/typescript/i18n/strings/nl.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/pl.d.ts +3 -0
- package/lib/typescript/i18n/strings/pl.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/pt.d.ts +3 -0
- package/lib/typescript/i18n/strings/pt.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/ru.d.ts +3 -0
- package/lib/typescript/i18n/strings/ru.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/tr.d.ts +3 -0
- package/lib/typescript/i18n/strings/tr.d.ts.map +1 -0
- package/lib/typescript/i18n/strings/zh.d.ts +3 -0
- package/lib/typescript/i18n/strings/zh.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +1 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +32 -2
- package/lib/typescript/types.d.ts.map +1 -1
- package/lib/typescript/useSupportThreads.d.ts +11 -1
- package/lib/typescript/useSupportThreads.d.ts.map +1 -1
- package/lib/typescript/utils.d.ts +6 -5
- package/lib/typescript/utils.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/api.ts +24 -1
- package/src/components/SupportButton.tsx +162 -33
- package/src/components/icons.tsx +36 -0
- package/src/components/primitives.tsx +14 -4
- package/src/components/screens/ComposeScreen.tsx +19 -23
- package/src/components/screens/HomeScreen.tsx +84 -25
- package/src/components/screens/LanguageScreen.tsx +172 -0
- package/src/components/screens/ThreadScreen.tsx +48 -21
- package/src/i18n/index.ts +81 -0
- package/src/i18n/languages.ts +106 -0
- package/src/i18n/strings/de.ts +78 -0
- package/src/i18n/strings/en.ts +94 -0
- package/src/i18n/strings/es.ts +77 -0
- package/src/i18n/strings/fr.ts +78 -0
- package/src/i18n/strings/hi.ts +77 -0
- package/src/i18n/strings/it.ts +77 -0
- package/src/i18n/strings/ja.ts +77 -0
- package/src/i18n/strings/ko.ts +76 -0
- package/src/i18n/strings/nl.ts +77 -0
- package/src/i18n/strings/pl.ts +77 -0
- package/src/i18n/strings/pt.ts +77 -0
- package/src/i18n/strings/ru.ts +77 -0
- package/src/i18n/strings/tr.ts +77 -0
- package/src/i18n/strings/zh.ts +75 -0
- package/src/index.tsx +8 -0
- package/src/types.ts +32 -2
- package/src/useSupportThreads.ts +30 -10
- package/src/utils.ts +22 -17
|
@@ -12,7 +12,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
12
12
|
const GROUP_WINDOW_MS = 5 * 60 * 1000;
|
|
13
13
|
/** The counter only appears once the limit is actually in play. */
|
|
14
14
|
const COUNTER_VISIBLE_FROM = USER_MESSAGE_MAX - 60;
|
|
15
|
-
function buildRows(messages, unreadCount) {
|
|
15
|
+
function buildRows(messages, unreadCount, strings) {
|
|
16
16
|
// Unread messages are always the newest admin ones, so the divider goes
|
|
17
17
|
// above the Nth-from-last admin message.
|
|
18
18
|
let remaining = unreadCount;
|
|
@@ -26,8 +26,11 @@ function buildRows(messages, unreadCount) {
|
|
|
26
26
|
return messages.map((message, i) => {
|
|
27
27
|
const previous = i > 0 ? messages[i - 1] ?? null : null;
|
|
28
28
|
const next = i < messages.length - 1 ? messages[i + 1] ?? null : null;
|
|
29
|
-
|
|
30
|
-
|
|
29
|
+
// Grouped by sender alone. Two replies from two different admins are two
|
|
30
|
+
// messages from "Support" as far as this side is concerned, so breaking
|
|
31
|
+
// the group between them would be a visible seam with no visible cause.
|
|
32
|
+
const withinGroup = (a, b) => a !== null && a.sender === b.sender && Math.abs(Date.parse(b.created_at) - Date.parse(a.created_at)) < GROUP_WINDOW_MS;
|
|
33
|
+
const day = previous === null || !isSameDay(previous.created_at, message.created_at) ? dayLabel(message.created_at, strings) : null;
|
|
31
34
|
const startsUnread = message.id === firstUnreadId;
|
|
32
35
|
return {
|
|
33
36
|
message,
|
|
@@ -77,7 +80,8 @@ function Separator({
|
|
|
77
80
|
}
|
|
78
81
|
function MessageBubble({
|
|
79
82
|
row,
|
|
80
|
-
theme
|
|
83
|
+
theme,
|
|
84
|
+
strings
|
|
81
85
|
}) {
|
|
82
86
|
const {
|
|
83
87
|
message,
|
|
@@ -99,7 +103,7 @@ function MessageBubble({
|
|
|
99
103
|
style: [textStyles.meta(theme), {
|
|
100
104
|
paddingHorizontal: 4
|
|
101
105
|
}],
|
|
102
|
-
children:
|
|
106
|
+
children: strings.t('thread.support')
|
|
103
107
|
}), /*#__PURE__*/_jsx(View, {
|
|
104
108
|
style: {
|
|
105
109
|
paddingHorizontal: 14,
|
|
@@ -122,12 +126,13 @@ function MessageBubble({
|
|
|
122
126
|
style: [textStyles.meta(theme), {
|
|
123
127
|
paddingHorizontal: 4
|
|
124
128
|
}],
|
|
125
|
-
children: formatTime(message.created_at)
|
|
129
|
+
children: message.translation_pending ? strings.t('thread.translating') : formatTime(message.created_at, strings)
|
|
126
130
|
})]
|
|
127
131
|
});
|
|
128
132
|
}
|
|
129
133
|
export function ThreadScreen({
|
|
130
134
|
theme,
|
|
135
|
+
strings,
|
|
131
136
|
thread,
|
|
132
137
|
onBack,
|
|
133
138
|
onSend
|
|
@@ -143,7 +148,7 @@ export function ThreadScreen({
|
|
|
143
148
|
const trimmed = draft.trim();
|
|
144
149
|
const valid = trimmed.length >= USER_MESSAGE_MIN && trimmed.length <= USER_MESSAGE_MAX;
|
|
145
150
|
const tooShort = trimmed.length > 0 && trimmed.length < USER_MESSAGE_MIN;
|
|
146
|
-
const rows = useMemo(() => buildRows(thread.messages, unreadOnOpen), [thread.messages, unreadOnOpen]);
|
|
151
|
+
const rows = useMemo(() => buildRows(thread.messages, unreadOnOpen, strings), [thread.messages, unreadOnOpen, strings]);
|
|
147
152
|
useEffect(() => {
|
|
148
153
|
scrollRef.current?.scrollToEnd({
|
|
149
154
|
animated: false
|
|
@@ -175,7 +180,7 @@ export function ThreadScreen({
|
|
|
175
180
|
children: [/*#__PURE__*/_jsx(IconButton, {
|
|
176
181
|
onPress: onBack,
|
|
177
182
|
theme: theme,
|
|
178
|
-
accessibilityLabel:
|
|
183
|
+
accessibilityLabel: strings.t('compose.back'),
|
|
179
184
|
size: 32,
|
|
180
185
|
children: /*#__PURE__*/_jsx(Chevron, {
|
|
181
186
|
color: theme.colors.textSecondary,
|
|
@@ -184,15 +189,17 @@ export function ThreadScreen({
|
|
|
184
189
|
})
|
|
185
190
|
}), /*#__PURE__*/_jsx(TypeChipView, {
|
|
186
191
|
type: thread.type,
|
|
187
|
-
theme: theme
|
|
192
|
+
theme: theme,
|
|
193
|
+
strings: strings
|
|
188
194
|
}), /*#__PURE__*/_jsx(StatusIndicator, {
|
|
189
195
|
status: thread.status,
|
|
190
|
-
theme: theme
|
|
196
|
+
theme: theme,
|
|
197
|
+
strings: strings
|
|
191
198
|
}), /*#__PURE__*/_jsx(Text, {
|
|
192
199
|
style: [textStyles.meta(theme), {
|
|
193
200
|
marginLeft: 'auto'
|
|
194
201
|
}],
|
|
195
|
-
children: relativeTime(thread.created_at)
|
|
202
|
+
children: relativeTime(thread.created_at, strings)
|
|
196
203
|
})]
|
|
197
204
|
}), /*#__PURE__*/_jsxs(ScrollView, {
|
|
198
205
|
ref: scrollRef,
|
|
@@ -212,19 +219,22 @@ export function ThreadScreen({
|
|
|
212
219
|
label: row.day,
|
|
213
220
|
theme: theme
|
|
214
221
|
}), row.startsUnread && /*#__PURE__*/_jsx(Separator, {
|
|
215
|
-
label:
|
|
222
|
+
label: strings.t('thread.new'),
|
|
216
223
|
theme: theme,
|
|
217
224
|
tone: "accent"
|
|
218
225
|
}), /*#__PURE__*/_jsx(MessageBubble, {
|
|
219
226
|
row: row,
|
|
220
|
-
theme: theme
|
|
227
|
+
theme: theme,
|
|
228
|
+
strings: strings
|
|
221
229
|
})]
|
|
222
230
|
}, row.message.id)), resolved && thread.resolved_at !== null && /*#__PURE__*/_jsx(View, {
|
|
223
231
|
style: {
|
|
224
232
|
marginTop: 16
|
|
225
233
|
},
|
|
226
234
|
children: /*#__PURE__*/_jsx(Separator, {
|
|
227
|
-
label:
|
|
235
|
+
label: strings.t('thread.resolvedAt', {
|
|
236
|
+
date: formatDate(thread.resolved_at, strings)
|
|
237
|
+
}),
|
|
228
238
|
theme: theme
|
|
229
239
|
})
|
|
230
240
|
})]
|
|
@@ -245,7 +255,7 @@ export function ThreadScreen({
|
|
|
245
255
|
},
|
|
246
256
|
children: /*#__PURE__*/_jsx(Text, {
|
|
247
257
|
style: textStyles.secondary(theme),
|
|
248
|
-
children:
|
|
258
|
+
children: strings.t('thread.readOnly')
|
|
249
259
|
})
|
|
250
260
|
}) : /*#__PURE__*/_jsxs(_Fragment, {
|
|
251
261
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
@@ -262,7 +272,7 @@ export function ThreadScreen({
|
|
|
262
272
|
},
|
|
263
273
|
multiline: true,
|
|
264
274
|
editable: !sending,
|
|
265
|
-
placeholder:
|
|
275
|
+
placeholder: strings.t('thread.placeholder'),
|
|
266
276
|
placeholderTextColor: theme.colors.textTertiary,
|
|
267
277
|
style: {
|
|
268
278
|
flex: 1,
|
|
@@ -286,7 +296,7 @@ export function ThreadScreen({
|
|
|
286
296
|
tone: "accent",
|
|
287
297
|
size: 44,
|
|
288
298
|
disabled: !valid || sending,
|
|
289
|
-
accessibilityLabel: sending ? '
|
|
299
|
+
accessibilityLabel: strings.t(sending ? 'thread.sendingA11y' : 'thread.sendA11y'),
|
|
290
300
|
children: /*#__PURE__*/_jsx(ArrowUpIcon, {
|
|
291
301
|
color: theme.colors.accentForeground,
|
|
292
302
|
size: 19
|
|
@@ -306,9 +316,11 @@ export function ThreadScreen({
|
|
|
306
316
|
color: theme.colors.statusDanger
|
|
307
317
|
},
|
|
308
318
|
children: failedMessage
|
|
309
|
-
}) : tooShort ? /*#__PURE__*/
|
|
319
|
+
}) : tooShort ? /*#__PURE__*/_jsx(Text, {
|
|
310
320
|
style: textStyles.meta(theme),
|
|
311
|
-
children:
|
|
321
|
+
children: strings.t('compose.minChars', {
|
|
322
|
+
count: USER_MESSAGE_MIN
|
|
323
|
+
})
|
|
312
324
|
}) : null, draft.length >= COUNTER_VISIBLE_FROM && /*#__PURE__*/_jsxs(Text, {
|
|
313
325
|
style: [textStyles.meta(theme), {
|
|
314
326
|
marginLeft: 'auto'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useEffect","useMemo","useRef","useState","KeyboardAvoidingView","Platform","ScrollView","Text","TextInput","View","USER_MESSAGE_MAX","USER_MESSAGE_MIN","dayLabel","formatDate","formatTime","isSameDay","relativeTime","ArrowUpIcon","Chevron","IconButton","StatusIndicator","textStyles","TypeChipView","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GROUP_WINDOW_MS","COUNTER_VISIBLE_FROM","buildRows","messages","unreadCount","remaining","firstUnreadId","i","length","candidate","undefined","sender","id","map","message","previous","next","withinGroup","a","b","admin_name","Math","abs","Date","parse","created_at","day","startsUnread","firstInGroup","lastInGroup","Separator","label","theme","tone","color","colors","accent","textTertiary","style","flexDirection","alignItems","gap","paddingVertical","children","flex","height","backgroundColor","accentMuted","border","fontSize","fontWeight","letterSpacing","MessageBubble","row","own","round","radii","bubble","tight","bubbleTail","maxWidth","alignSelf","marginTop","meta","paddingHorizontal","surface","borderWidth","borderColor","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","body","accentForeground","ThreadScreen","thread","onBack","onSend","draft","setDraft","sending","setSending","failedMessage","setFailedMessage","scrollRef","unreadOnOpen","unread_count","resolved","status","trimmed","trim","valid","tooShort","rows","current","scrollToEnd","animated","handleSend","errorMessage","behavior","OS","paddingBottom","borderBottomWidth","borderBottomColor","onPress","accessibilityLabel","size","textSecondary","direction","type","marginLeft","ref","contentContainerStyle","keyboardShouldPersistTaps","onContentSizeChange","resolved_at","resolved_by_name","borderTopWidth","borderTopColor","paddingTop","borderRadius","control","secondary","value","onChangeText","v","multiline","editable","placeholder","placeholderTextColor","minHeight","maxHeight","cardLg","textPrimary","lineHeight","textAlignVertical","disabled","statusDanger"],"sourceRoot":"../../../../src","sources":["components/screens/ThreadScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["useEffect","useMemo","useRef","useState","KeyboardAvoidingView","Platform","ScrollView","Text","TextInput","View","USER_MESSAGE_MAX","USER_MESSAGE_MIN","dayLabel","formatDate","formatTime","isSameDay","relativeTime","ArrowUpIcon","Chevron","IconButton","StatusIndicator","textStyles","TypeChipView","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","GROUP_WINDOW_MS","COUNTER_VISIBLE_FROM","buildRows","messages","unreadCount","strings","remaining","firstUnreadId","i","length","candidate","undefined","sender","id","map","message","previous","next","withinGroup","a","b","Math","abs","Date","parse","created_at","day","startsUnread","firstInGroup","lastInGroup","Separator","label","theme","tone","color","colors","accent","textTertiary","style","flexDirection","alignItems","gap","paddingVertical","children","flex","height","backgroundColor","accentMuted","border","fontSize","fontWeight","letterSpacing","MessageBubble","row","own","round","radii","bubble","tight","bubbleTail","maxWidth","alignSelf","marginTop","meta","paddingHorizontal","t","surface","borderWidth","borderColor","borderTopLeftRadius","borderBottomLeftRadius","borderTopRightRadius","borderBottomRightRadius","body","accentForeground","translation_pending","ThreadScreen","thread","onBack","onSend","draft","setDraft","sending","setSending","failedMessage","setFailedMessage","scrollRef","unreadOnOpen","unread_count","resolved","status","trimmed","trim","valid","tooShort","rows","current","scrollToEnd","animated","handleSend","errorMessage","behavior","OS","paddingBottom","borderBottomWidth","borderBottomColor","onPress","accessibilityLabel","size","textSecondary","direction","type","marginLeft","ref","contentContainerStyle","keyboardShouldPersistTaps","onContentSizeChange","resolved_at","date","borderTopWidth","borderTopColor","paddingTop","borderRadius","control","secondary","value","onChangeText","v","multiline","editable","placeholder","placeholderTextColor","minHeight","maxHeight","cardLg","textPrimary","lineHeight","textAlignVertical","disabled","statusDanger","count"],"sourceRoot":"../../../../src","sources":["components/screens/ThreadScreen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// UI copy, in the user's language.
|
|
4
|
+
//
|
|
5
|
+
// Message bodies are translated by the backend at write time; the sheet's own
|
|
6
|
+
// chrome is not — it is a fixed set of strings that never changes, so it ships
|
|
7
|
+
// as a bundled table. A model call to render the word "Send" would be absurd,
|
|
8
|
+
// and it would also mean the SDK couldn't draw its own UI offline.
|
|
9
|
+
|
|
10
|
+
import { DEFAULT_LANGUAGE } from './languages';
|
|
11
|
+
import { en } from './strings/en';
|
|
12
|
+
import { de } from './strings/de';
|
|
13
|
+
import { es } from './strings/es';
|
|
14
|
+
import { fr } from './strings/fr';
|
|
15
|
+
import { hi } from './strings/hi';
|
|
16
|
+
import { it } from './strings/it';
|
|
17
|
+
import { ja } from './strings/ja';
|
|
18
|
+
import { ko } from './strings/ko';
|
|
19
|
+
import { nl } from './strings/nl';
|
|
20
|
+
import { pl } from './strings/pl';
|
|
21
|
+
import { pt } from './strings/pt';
|
|
22
|
+
import { ru } from './strings/ru';
|
|
23
|
+
import { tr } from './strings/tr';
|
|
24
|
+
import { zh } from './strings/zh';
|
|
25
|
+
const TABLES = {
|
|
26
|
+
en,
|
|
27
|
+
es,
|
|
28
|
+
fr,
|
|
29
|
+
de,
|
|
30
|
+
nl,
|
|
31
|
+
pt,
|
|
32
|
+
it,
|
|
33
|
+
pl,
|
|
34
|
+
tr,
|
|
35
|
+
ru,
|
|
36
|
+
ja,
|
|
37
|
+
ko,
|
|
38
|
+
zh,
|
|
39
|
+
hi
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
/** Fills `{name}` placeholders. Unknown tokens are left alone, not blanked. */
|
|
43
|
+
function format(template, vars) {
|
|
44
|
+
if (!vars) return template;
|
|
45
|
+
return template.replace(/\{(\w+)\}/g, (match, key) => key in vars ? String(vars[key]) : match);
|
|
46
|
+
}
|
|
47
|
+
export function createTranslator(language) {
|
|
48
|
+
const table = TABLES[language] ?? TABLES[DEFAULT_LANGUAGE];
|
|
49
|
+
return {
|
|
50
|
+
language,
|
|
51
|
+
locale: language,
|
|
52
|
+
t: (key, vars) => format(table[key] ?? en[key], vars)
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
export { asLanguage, baseLanguage, DEFAULT_LANGUAGE, deviceLanguage, isSupportedLanguage, LANGUAGE_LABELS, SUPPORTED_LANGUAGES } from './languages';
|
|
56
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEFAULT_LANGUAGE","en","de","es","fr","hi","it","ja","ko","nl","pl","pt","ru","tr","zh","TABLES","format","template","vars","replace","match","key","String","createTranslator","language","table","locale","t","asLanguage","baseLanguage","deviceLanguage","isSupportedLanguage","LANGUAGE_LABELS","SUPPORTED_LANGUAGES"],"sourceRoot":"../../../src","sources":["i18n/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,gBAAgB,QAAuB,aAAa;AAC7D,SAASC,EAAE,QAA0C,cAAc;AACnE,SAASC,EAAE,QAAQ,cAAc;AACjC,SAASC,EAAE,QAAQ,cAAc;AACjC,SAASC,EAAE,QAAQ,cAAc;AACjC,SAASC,EAAE,QAAQ,cAAc;AACjC,SAASC,EAAE,QAAQ,cAAc;AACjC,SAASC,EAAE,QAAQ,cAAc;AACjC,SAASC,EAAE,QAAQ,cAAc;AACjC,SAASC,EAAE,QAAQ,cAAc;AACjC,SAASC,EAAE,QAAQ,cAAc;AACjC,SAASC,EAAE,QAAQ,cAAc;AACjC,SAASC,EAAE,QAAQ,cAAc;AACjC,SAASC,EAAE,QAAQ,cAAc;AACjC,SAASC,EAAE,QAAQ,cAAc;AAEjC,MAAMC,MAAqC,GAAG;EAC5Cd,EAAE;EACFE,EAAE;EACFC,EAAE;EACFF,EAAE;EACFO,EAAE;EACFE,EAAE;EACFL,EAAE;EACFI,EAAE;EACFG,EAAE;EACFD,EAAE;EACFL,EAAE;EACFC,EAAE;EACFM,EAAE;EACFT;AACF,CAAC;;AAED;AACA,SAASW,MAAMA,CACbC,QAAgB,EAChBC,IAAsC,EAC9B;EACR,IAAI,CAACA,IAAI,EAAE,OAAOD,QAAQ;EAC1B,OAAOA,QAAQ,CAACE,OAAO,CAAC,YAAY,EAAE,CAACC,KAAK,EAAEC,GAAW,KACvDA,GAAG,IAAIH,IAAI,GAAGI,MAAM,CAACJ,IAAI,CAACG,GAAG,CAAC,CAAC,GAAGD,KACpC,CAAC;AACH;AAYA,OAAO,SAASG,gBAAgBA,CAACC,QAAkB,EAAc;EAC/D,MAAMC,KAAK,GAAGV,MAAM,CAACS,QAAQ,CAAC,IAAIT,MAAM,CAACf,gBAAgB,CAAC;EAC1D,OAAO;IACLwB,QAAQ;IACRE,MAAM,EAAEF,QAAQ;IAChBG,CAAC,EAAEA,CAACN,GAAG,EAAEH,IAAI,KAAKF,MAAM,CAACS,KAAK,CAACJ,GAAG,CAAC,IAAIpB,EAAE,CAACoB,GAAG,CAAC,EAAEH,IAAI;EACtD,CAAC;AACH;AAGA,SACEU,UAAU,EACVC,YAAY,EACZ7B,gBAAgB,EAChB8B,cAAc,EACdC,mBAAmB,EACnBC,eAAe,EACfC,mBAAmB,QAEd,aAAa","ignoreList":[]}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { NativeModules, Platform } from 'react-native';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* The languages the picker offers.
|
|
7
|
+
*
|
|
8
|
+
* Kept in sync by hand with supabase/functions/_shared/languages.ts — the two
|
|
9
|
+
* run in different runtimes and share no build step. Adding one means adding a
|
|
10
|
+
* string table here too, which the compiler enforces.
|
|
11
|
+
*
|
|
12
|
+
* Right-to-left languages are deliberately absent for now: React Native only
|
|
13
|
+
* flips layout direction through I18nManager, which needs an app restart the
|
|
14
|
+
* SDK has no business triggering inside a host app.
|
|
15
|
+
*/
|
|
16
|
+
export const SUPPORTED_LANGUAGES = ['en', 'es', 'fr', 'de', 'nl', 'pt', 'it', 'pl', 'tr', 'ru', 'ja', 'ko', 'zh', 'hi'];
|
|
17
|
+
/** The language the support team reads and writes. */
|
|
18
|
+
export const DEFAULT_LANGUAGE = 'en';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Endonyms — a language is listed the way its own speakers write it, so the
|
|
22
|
+
* picker is readable to someone who can't read the current UI language.
|
|
23
|
+
*/
|
|
24
|
+
export const LANGUAGE_LABELS = {
|
|
25
|
+
en: 'English',
|
|
26
|
+
es: 'Español',
|
|
27
|
+
fr: 'Français',
|
|
28
|
+
de: 'Deutsch',
|
|
29
|
+
nl: 'Nederlands',
|
|
30
|
+
pt: 'Português',
|
|
31
|
+
it: 'Italiano',
|
|
32
|
+
pl: 'Polski',
|
|
33
|
+
tr: 'Türkçe',
|
|
34
|
+
ru: 'Русский',
|
|
35
|
+
ja: '日本語',
|
|
36
|
+
ko: '한국어',
|
|
37
|
+
zh: '简体中文',
|
|
38
|
+
hi: 'हिन्दी'
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/** Strips a region qualifier: "pt-BR" → "pt". */
|
|
42
|
+
export function baseLanguage(code) {
|
|
43
|
+
return code.trim().toLowerCase().split(/[-_]/)[0] ?? '';
|
|
44
|
+
}
|
|
45
|
+
export function isSupportedLanguage(code) {
|
|
46
|
+
return SUPPORTED_LANGUAGES.includes(baseLanguage(code));
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
/** Narrows any string to a supported language, or null. */
|
|
50
|
+
export function asLanguage(code) {
|
|
51
|
+
if (!code) return null;
|
|
52
|
+
const base = baseLanguage(code);
|
|
53
|
+
return isSupportedLanguage(base) ? base : null;
|
|
54
|
+
}
|
|
55
|
+
function rawDeviceLocale() {
|
|
56
|
+
try {
|
|
57
|
+
if (Platform.OS === 'ios') {
|
|
58
|
+
const settings = NativeModules.SettingsManager?.settings;
|
|
59
|
+
const locale = settings?.AppleLocale ?? settings?.AppleLanguages?.[0];
|
|
60
|
+
if (typeof locale === 'string') return locale;
|
|
61
|
+
} else {
|
|
62
|
+
const locale = NativeModules.I18nManager?.localeIdentifier;
|
|
63
|
+
if (typeof locale === 'string') return locale;
|
|
64
|
+
}
|
|
65
|
+
} catch {
|
|
66
|
+
// Fall through to Intl.
|
|
67
|
+
}
|
|
68
|
+
try {
|
|
69
|
+
return Intl.DateTimeFormat().resolvedOptions().locale;
|
|
70
|
+
} catch {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* The device's language, if the SDK supports it.
|
|
77
|
+
*
|
|
78
|
+
* Used to pre-select a row in the picker and to render the picker itself, so
|
|
79
|
+
* the one screen shown before we know the user's choice is already in a
|
|
80
|
+
* language they probably read. Deliberately not used to *skip* the picker: a
|
|
81
|
+
* device set to French says nothing about which language its owner wants to
|
|
82
|
+
* write support messages in.
|
|
83
|
+
*/
|
|
84
|
+
export function deviceLanguage() {
|
|
85
|
+
const locale = rawDeviceLocale();
|
|
86
|
+
return locale === null ? null : asLanguage(locale);
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=languages.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NativeModules","Platform","SUPPORTED_LANGUAGES","DEFAULT_LANGUAGE","LANGUAGE_LABELS","en","es","fr","de","nl","pt","it","pl","tr","ru","ja","ko","zh","hi","baseLanguage","code","trim","toLowerCase","split","isSupportedLanguage","includes","asLanguage","base","rawDeviceLocale","OS","settings","SettingsManager","locale","AppleLocale","AppleLanguages","I18nManager","localeIdentifier","Intl","DateTimeFormat","resolvedOptions","deviceLanguage"],"sourceRoot":"../../../src","sources":["i18n/languages.ts"],"mappings":";;AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMC,mBAAmB,GAAG,CACjC,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,EACJ,IAAI,CACI;AAIV;AACA,OAAO,MAAMC,gBAA0B,GAAG,IAAI;;AAE9C;AACA;AACA;AACA;AACA,OAAO,MAAMC,eAAyC,GAAG;EACvDC,EAAE,EAAE,SAAS;EACbC,EAAE,EAAE,SAAS;EACbC,EAAE,EAAE,UAAU;EACdC,EAAE,EAAE,SAAS;EACbC,EAAE,EAAE,YAAY;EAChBC,EAAE,EAAE,WAAW;EACfC,EAAE,EAAE,UAAU;EACdC,EAAE,EAAE,QAAQ;EACZC,EAAE,EAAE,QAAQ;EACZC,EAAE,EAAE,SAAS;EACbC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,KAAK;EACTC,EAAE,EAAE,MAAM;EACVC,EAAE,EAAE;AACN,CAAC;;AAED;AACA,OAAO,SAASC,YAAYA,CAACC,IAAY,EAAU;EACjD,OAAOA,IAAI,CAACC,IAAI,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,CAACC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE;AACzD;AAEA,OAAO,SAASC,mBAAmBA,CAACJ,IAAY,EAAoB;EAClE,OAAQlB,mBAAmB,CAAuBuB,QAAQ,CAACN,YAAY,CAACC,IAAI,CAAC,CAAC;AAChF;;AAEA;AACA,OAAO,SAASM,UAAUA,CAACN,IAA+B,EAAmB;EAC3E,IAAI,CAACA,IAAI,EAAE,OAAO,IAAI;EACtB,MAAMO,IAAI,GAAGR,YAAY,CAACC,IAAI,CAAC;EAC/B,OAAOI,mBAAmB,CAACG,IAAI,CAAC,GAAGA,IAAI,GAAG,IAAI;AAChD;AAEA,SAASC,eAAeA,CAAA,EAAkB;EACxC,IAAI;IACF,IAAI3B,QAAQ,CAAC4B,EAAE,KAAK,KAAK,EAAE;MACzB,MAAMC,QAAQ,GAAG9B,aAAa,CAAC+B,eAAe,EAAED,QAAQ;MACxD,MAAME,MAAM,GAAGF,QAAQ,EAAEG,WAAW,IAAIH,QAAQ,EAAEI,cAAc,GAAG,CAAC,CAAC;MACrE,IAAI,OAAOF,MAAM,KAAK,QAAQ,EAAE,OAAOA,MAAM;IAC/C,CAAC,MAAM;MACL,MAAMA,MAAM,GAAGhC,aAAa,CAACmC,WAAW,EAAEC,gBAAgB;MAC1D,IAAI,OAAOJ,MAAM,KAAK,QAAQ,EAAE,OAAOA,MAAM;IAC/C;EACF,CAAC,CAAC,MAAM;IACN;EAAA;EAGF,IAAI;IACF,OAAOK,IAAI,CAACC,cAAc,CAAC,CAAC,CAACC,eAAe,CAAC,CAAC,CAACP,MAAM;EACvD,CAAC,CAAC,MAAM;IACN,OAAO,IAAI;EACb;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASQ,cAAcA,CAAA,EAAoB;EAChD,MAAMR,MAAM,GAAGJ,eAAe,CAAC,CAAC;EAChC,OAAOI,MAAM,KAAK,IAAI,GAAG,IAAI,GAAGN,UAAU,CAACM,MAAM,CAAC;AACpD","ignoreList":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const de = {
|
|
4
|
+
'home.title': 'Support',
|
|
5
|
+
'home.subtitle': 'Starte ein Gespräch — wir antworten direkt hier.',
|
|
6
|
+
'home.close': 'Support schließen',
|
|
7
|
+
'home.open': 'Offen',
|
|
8
|
+
'home.resolved': 'Erledigt',
|
|
9
|
+
'home.empty': 'Noch keine Gespräche',
|
|
10
|
+
'home.emptyHint': 'Alles, was du sendest, landet beim Team, und die Antworten kommen in dieses Fenster zurück.',
|
|
11
|
+
'home.noMessages': 'Noch keine Nachrichten',
|
|
12
|
+
'home.you': 'Du',
|
|
13
|
+
'home.threadA11y': 'Gespräch: {type}',
|
|
14
|
+
'home.threadUnreadA11y': 'Gespräch: {type}, {count} ungelesen',
|
|
15
|
+
'home.newA11y': 'Neu: {type}',
|
|
16
|
+
'home.language': 'Sprache',
|
|
17
|
+
'type.feedback': 'Feedback',
|
|
18
|
+
'type.feature_request': 'Funktionswunsch',
|
|
19
|
+
'type.bug_report': 'Fehlerbericht',
|
|
20
|
+
'hint.feedback': 'Sag uns, was du denkst',
|
|
21
|
+
'hint.feature_request': 'Schlage eine Verbesserung vor',
|
|
22
|
+
'hint.bug_report': 'Etwas funktioniert nicht',
|
|
23
|
+
'prompt.feedback': 'Was sollten wir wissen?',
|
|
24
|
+
'prompt.feature_request': 'Was würdest du dir wünschen?',
|
|
25
|
+
'prompt.bug_report': 'Was ist passiert, und was hattest du erwartet?',
|
|
26
|
+
'sub.feedback': 'Gut oder schlecht — es geht direkt ans Team.',
|
|
27
|
+
'sub.feature_request': 'Sag uns, was du erreichen möchtest.',
|
|
28
|
+
'sub.bug_report': 'Schritte, Bildschirm und deine Erwartung helfen uns weiter.',
|
|
29
|
+
'compose.back': 'Zurück zu den Gesprächen',
|
|
30
|
+
'compose.sent': 'Gesendet',
|
|
31
|
+
'compose.sentHint': 'Wir antworten direkt hier. Du findest das Gespräch unter Offen, und der Button zeigt ein Abzeichen, sobald wir geantwortet haben.',
|
|
32
|
+
'compose.done': 'Fertig',
|
|
33
|
+
'compose.send': 'Senden',
|
|
34
|
+
'compose.sending': 'Wird gesendet…',
|
|
35
|
+
'compose.minChars': 'Mindestens {count} Zeichen',
|
|
36
|
+
'thread.support': 'Support',
|
|
37
|
+
'thread.new': 'Neu',
|
|
38
|
+
'thread.resolvedAt': 'Erledigt · {date}',
|
|
39
|
+
'thread.readOnly': 'Dieses Gespräch ist erledigt und schreibgeschützt',
|
|
40
|
+
'thread.placeholder': 'Antwort schreiben…',
|
|
41
|
+
'thread.sendA11y': 'Antwort senden',
|
|
42
|
+
'thread.sendingA11y': 'Wird gesendet',
|
|
43
|
+
'thread.translating': 'Wird übersetzt…',
|
|
44
|
+
'status.open': 'Offen',
|
|
45
|
+
'status.resolved': 'Erledigt',
|
|
46
|
+
'error.tryAgain': 'Erneut versuchen',
|
|
47
|
+
'error.rateLimited': 'Zu viele Anfragen — versuche es später noch einmal',
|
|
48
|
+
'error.offline': 'Du bist offline — prüfe deine Verbindung',
|
|
49
|
+
'error.sendFailed': 'Senden fehlgeschlagen — versuche es noch einmal',
|
|
50
|
+
'error.loadFailed': 'Deine Gespräche konnten nicht geladen werden',
|
|
51
|
+
'error.unavailable': 'Der Support ist gerade nicht verfügbar',
|
|
52
|
+
'error.loadRateLimited': 'Zu viele Anfragen — versuche es gleich noch einmal',
|
|
53
|
+
'lang.title': 'Wähle deine Sprache',
|
|
54
|
+
'lang.subtitle': 'Schreib in der Sprache, die dir liegt — wir übersetzen zwischen dir und dem Support-Team.',
|
|
55
|
+
'lang.continue': 'Weiter',
|
|
56
|
+
'lang.change': 'Sprache ändern',
|
|
57
|
+
'lang.saveFailed': 'Speichern fehlgeschlagen — versuche es noch einmal',
|
|
58
|
+
'time.justNow': 'gerade eben',
|
|
59
|
+
'time.minutes': 'vor {count} Min.',
|
|
60
|
+
'time.hours': 'vor {count} Std.',
|
|
61
|
+
'time.days': 'vor {count} T.',
|
|
62
|
+
'time.weeks': 'vor {count} Wo.',
|
|
63
|
+
'time.months': 'vor {count} Mon.',
|
|
64
|
+
'time.years': 'vor {count} J.',
|
|
65
|
+
'time.today': 'Heute',
|
|
66
|
+
'time.yesterday': 'Gestern'
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=de.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["de"],"sourceRoot":"../../../../src","sources":["i18n/strings/de.ts"],"mappings":";;AAEA,OAAO,MAAMA,EAAe,GAAG;EAC7B,YAAY,EAAE,SAAS;EACvB,eAAe,EAAE,kDAAkD;EACnE,YAAY,EAAE,mBAAmB;EACjC,WAAW,EAAE,OAAO;EACpB,eAAe,EAAE,UAAU;EAC3B,YAAY,EAAE,sBAAsB;EACpC,gBAAgB,EACd,6FAA6F;EAC/F,iBAAiB,EAAE,wBAAwB;EAC3C,UAAU,EAAE,IAAI;EAChB,iBAAiB,EAAE,kBAAkB;EACrC,uBAAuB,EAAE,qCAAqC;EAC9D,cAAc,EAAE,aAAa;EAC7B,eAAe,EAAE,SAAS;EAE1B,eAAe,EAAE,UAAU;EAC3B,sBAAsB,EAAE,iBAAiB;EACzC,iBAAiB,EAAE,eAAe;EAClC,eAAe,EAAE,wBAAwB;EACzC,sBAAsB,EAAE,+BAA+B;EACvD,iBAAiB,EAAE,0BAA0B;EAC7C,iBAAiB,EAAE,yBAAyB;EAC5C,wBAAwB,EAAE,8BAA8B;EACxD,mBAAmB,EAAE,gDAAgD;EACrE,cAAc,EAAE,8CAA8C;EAC9D,qBAAqB,EAAE,qCAAqC;EAC5D,gBAAgB,EACd,6DAA6D;EAE/D,cAAc,EAAE,0BAA0B;EAC1C,cAAc,EAAE,UAAU;EAC1B,kBAAkB,EAChB,mIAAmI;EACrI,cAAc,EAAE,QAAQ;EACxB,cAAc,EAAE,QAAQ;EACxB,iBAAiB,EAAE,gBAAgB;EACnC,kBAAkB,EAAE,4BAA4B;EAEhD,gBAAgB,EAAE,SAAS;EAC3B,YAAY,EAAE,KAAK;EACnB,mBAAmB,EAAE,mBAAmB;EACxC,iBAAiB,EAAE,mDAAmD;EACtE,oBAAoB,EAAE,oBAAoB;EAC1C,iBAAiB,EAAE,gBAAgB;EACnC,oBAAoB,EAAE,eAAe;EACrC,oBAAoB,EAAE,iBAAiB;EAEvC,aAAa,EAAE,OAAO;EACtB,iBAAiB,EAAE,UAAU;EAE7B,gBAAgB,EAAE,kBAAkB;EACpC,mBAAmB,EAAE,oDAAoD;EACzE,eAAe,EAAE,0CAA0C;EAC3D,kBAAkB,EAAE,iDAAiD;EACrE,kBAAkB,EAAE,8CAA8C;EAClE,mBAAmB,EAAE,wCAAwC;EAC7D,uBAAuB,EAAE,oDAAoD;EAE7E,YAAY,EAAE,qBAAqB;EACnC,eAAe,EACb,2FAA2F;EAC7F,eAAe,EAAE,QAAQ;EACzB,aAAa,EAAE,gBAAgB;EAC/B,iBAAiB,EAAE,oDAAoD;EAEvE,cAAc,EAAE,aAAa;EAC7B,cAAc,EAAE,kBAAkB;EAClC,YAAY,EAAE,kBAAkB;EAChC,WAAW,EAAE,gBAAgB;EAC7B,YAAY,EAAE,iBAAiB;EAC/B,aAAa,EAAE,kBAAkB;EACjC,YAAY,EAAE,gBAAgB;EAC9B,YAAY,EAAE,OAAO;EACrB,gBAAgB,EAAE;AACpB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* English is the source table: every other language is typed against it, so a
|
|
5
|
+
* missing or misspelled key fails the build rather than falling back silently
|
|
6
|
+
* at runtime.
|
|
7
|
+
*
|
|
8
|
+
* Placeholders are `{name}` tokens filled in by `format()` — the table stays
|
|
9
|
+
* pure data so it can be handed to a translator (or lifted to JSON) without
|
|
10
|
+
* touching code.
|
|
11
|
+
*
|
|
12
|
+
* Keys that read identically in English are still separate when their context
|
|
13
|
+
* differs: `home.open` labels a section of several threads, `status.open`
|
|
14
|
+
* labels one thread's state, and plenty of languages inflect those
|
|
15
|
+
* differently.
|
|
16
|
+
*/
|
|
17
|
+
export const en = {
|
|
18
|
+
'home.title': 'Support',
|
|
19
|
+
'home.subtitle': 'Start a conversation — we reply right here.',
|
|
20
|
+
'home.close': 'Close support',
|
|
21
|
+
'home.open': 'Open',
|
|
22
|
+
'home.resolved': 'Resolved',
|
|
23
|
+
'home.empty': 'No conversations yet',
|
|
24
|
+
'home.emptyHint': 'Anything you send lands with the team, and their replies come back to this sheet.',
|
|
25
|
+
'home.noMessages': 'No messages yet',
|
|
26
|
+
'home.you': 'You',
|
|
27
|
+
'home.threadA11y': '{type} thread',
|
|
28
|
+
'home.threadUnreadA11y': '{type} thread, {count} unread',
|
|
29
|
+
'home.newA11y': 'New {type}',
|
|
30
|
+
'home.language': 'Language',
|
|
31
|
+
'type.feedback': 'Feedback',
|
|
32
|
+
'type.feature_request': 'Feature request',
|
|
33
|
+
'type.bug_report': 'Bug report',
|
|
34
|
+
'hint.feedback': 'Tell us what you think',
|
|
35
|
+
'hint.feature_request': 'Suggest an improvement',
|
|
36
|
+
'hint.bug_report': "Something isn't working",
|
|
37
|
+
'prompt.feedback': 'What should we know?',
|
|
38
|
+
'prompt.feature_request': 'What would you like to see?',
|
|
39
|
+
'prompt.bug_report': 'What happened, and what did you expect?',
|
|
40
|
+
'sub.feedback': 'Good or bad — it goes straight to the team.',
|
|
41
|
+
'sub.feature_request': 'Tell us what you are trying to do.',
|
|
42
|
+
'sub.bug_report': 'Steps, screen, and what you expected all help.',
|
|
43
|
+
'compose.back': 'Back to conversations',
|
|
44
|
+
'compose.sent': 'Sent',
|
|
45
|
+
'compose.sentHint': "We'll reply right here. You'll find the conversation under Open, and the button shows a badge when we answer.",
|
|
46
|
+
'compose.done': 'Done',
|
|
47
|
+
'compose.send': 'Send',
|
|
48
|
+
'compose.sending': 'Sending…',
|
|
49
|
+
'compose.minChars': 'At least {count} characters',
|
|
50
|
+
'thread.support': 'Support',
|
|
51
|
+
'thread.new': 'New',
|
|
52
|
+
'thread.resolvedAt': 'Resolved · {date}',
|
|
53
|
+
'thread.readOnly': 'This conversation is resolved and read-only',
|
|
54
|
+
'thread.placeholder': 'Write a reply…',
|
|
55
|
+
'thread.sendA11y': 'Send reply',
|
|
56
|
+
'thread.sendingA11y': 'Sending',
|
|
57
|
+
'thread.translating': 'Translating…',
|
|
58
|
+
'status.open': 'Open',
|
|
59
|
+
'status.resolved': 'Resolved',
|
|
60
|
+
'error.tryAgain': 'Try again',
|
|
61
|
+
'error.rateLimited': 'Too many requests — try again later',
|
|
62
|
+
'error.offline': "You're offline — check your connection",
|
|
63
|
+
'error.sendFailed': "Couldn't send — try again",
|
|
64
|
+
'error.loadFailed': "Couldn't load your conversations",
|
|
65
|
+
'error.unavailable': 'Support is unavailable right now',
|
|
66
|
+
'error.loadRateLimited': 'Too many requests — try again in a bit',
|
|
67
|
+
'lang.title': 'Choose your language',
|
|
68
|
+
'lang.subtitle': 'Write in whichever language you prefer — we translate between you and the support team.',
|
|
69
|
+
'lang.continue': 'Continue',
|
|
70
|
+
'lang.change': 'Change language',
|
|
71
|
+
'lang.saveFailed': "Couldn't save — try again",
|
|
72
|
+
'time.justNow': 'just now',
|
|
73
|
+
'time.minutes': '{count}m ago',
|
|
74
|
+
'time.hours': '{count}h ago',
|
|
75
|
+
'time.days': '{count}d ago',
|
|
76
|
+
'time.weeks': '{count}w ago',
|
|
77
|
+
'time.months': '{count}mo ago',
|
|
78
|
+
'time.years': '{count}y ago',
|
|
79
|
+
'time.today': 'Today',
|
|
80
|
+
'time.yesterday': 'Yesterday'
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
/** Every language provides every key — enforced at compile time. */
|
|
84
|
+
//# sourceMappingURL=en.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["en"],"sourceRoot":"../../../../src","sources":["i18n/strings/en.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,EAAE,GAAG;EAChB,YAAY,EAAE,SAAS;EACvB,eAAe,EAAE,6CAA6C;EAC9D,YAAY,EAAE,eAAe;EAC7B,WAAW,EAAE,MAAM;EACnB,eAAe,EAAE,UAAU;EAC3B,YAAY,EAAE,sBAAsB;EACpC,gBAAgB,EACd,mFAAmF;EACrF,iBAAiB,EAAE,iBAAiB;EACpC,UAAU,EAAE,KAAK;EACjB,iBAAiB,EAAE,eAAe;EAClC,uBAAuB,EAAE,+BAA+B;EACxD,cAAc,EAAE,YAAY;EAC5B,eAAe,EAAE,UAAU;EAE3B,eAAe,EAAE,UAAU;EAC3B,sBAAsB,EAAE,iBAAiB;EACzC,iBAAiB,EAAE,YAAY;EAC/B,eAAe,EAAE,wBAAwB;EACzC,sBAAsB,EAAE,wBAAwB;EAChD,iBAAiB,EAAE,yBAAyB;EAC5C,iBAAiB,EAAE,sBAAsB;EACzC,wBAAwB,EAAE,6BAA6B;EACvD,mBAAmB,EAAE,yCAAyC;EAC9D,cAAc,EAAE,6CAA6C;EAC7D,qBAAqB,EAAE,oCAAoC;EAC3D,gBAAgB,EAAE,gDAAgD;EAElE,cAAc,EAAE,uBAAuB;EACvC,cAAc,EAAE,MAAM;EACtB,kBAAkB,EAChB,+GAA+G;EACjH,cAAc,EAAE,MAAM;EACtB,cAAc,EAAE,MAAM;EACtB,iBAAiB,EAAE,UAAU;EAC7B,kBAAkB,EAAE,6BAA6B;EAEjD,gBAAgB,EAAE,SAAS;EAC3B,YAAY,EAAE,KAAK;EACnB,mBAAmB,EAAE,mBAAmB;EACxC,iBAAiB,EAAE,6CAA6C;EAChE,oBAAoB,EAAE,gBAAgB;EACtC,iBAAiB,EAAE,YAAY;EAC/B,oBAAoB,EAAE,SAAS;EAC/B,oBAAoB,EAAE,cAAc;EAEpC,aAAa,EAAE,MAAM;EACrB,iBAAiB,EAAE,UAAU;EAE7B,gBAAgB,EAAE,WAAW;EAC7B,mBAAmB,EAAE,qCAAqC;EAC1D,eAAe,EAAE,wCAAwC;EACzD,kBAAkB,EAAE,2BAA2B;EAC/C,kBAAkB,EAAE,kCAAkC;EACtD,mBAAmB,EAAE,kCAAkC;EACvD,uBAAuB,EAAE,wCAAwC;EAEjE,YAAY,EAAE,sBAAsB;EACpC,eAAe,EACb,yFAAyF;EAC3F,eAAe,EAAE,UAAU;EAC3B,aAAa,EAAE,iBAAiB;EAChC,iBAAiB,EAAE,2BAA2B;EAE9C,cAAc,EAAE,UAAU;EAC1B,cAAc,EAAE,cAAc;EAC9B,YAAY,EAAE,cAAc;EAC5B,WAAW,EAAE,cAAc;EAC3B,YAAY,EAAE,cAAc;EAC5B,aAAa,EAAE,eAAe;EAC9B,YAAY,EAAE,cAAc;EAC5B,YAAY,EAAE,OAAO;EACrB,gBAAgB,EAAE;AACpB,CAAU;;AAIV","ignoreList":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const es = {
|
|
4
|
+
'home.title': 'Soporte',
|
|
5
|
+
'home.subtitle': 'Inicia una conversación: te respondemos aquí mismo.',
|
|
6
|
+
'home.close': 'Cerrar soporte',
|
|
7
|
+
'home.open': 'Abiertas',
|
|
8
|
+
'home.resolved': 'Resueltas',
|
|
9
|
+
'home.empty': 'Aún no hay conversaciones',
|
|
10
|
+
'home.emptyHint': 'Todo lo que envíes llega al equipo, y sus respuestas vuelven a esta ventana.',
|
|
11
|
+
'home.noMessages': 'Aún no hay mensajes',
|
|
12
|
+
'home.you': 'Tú',
|
|
13
|
+
'home.threadA11y': 'Conversación de {type}',
|
|
14
|
+
'home.threadUnreadA11y': 'Conversación de {type}, {count} sin leer',
|
|
15
|
+
'home.newA11y': 'Nuevo: {type}',
|
|
16
|
+
'home.language': 'Idioma',
|
|
17
|
+
'type.feedback': 'Comentarios',
|
|
18
|
+
'type.feature_request': 'Sugerencia',
|
|
19
|
+
'type.bug_report': 'Informe de error',
|
|
20
|
+
'hint.feedback': 'Cuéntanos qué opinas',
|
|
21
|
+
'hint.feature_request': 'Propón una mejora',
|
|
22
|
+
'hint.bug_report': 'Algo no funciona',
|
|
23
|
+
'prompt.feedback': '¿Qué deberíamos saber?',
|
|
24
|
+
'prompt.feature_request': '¿Qué te gustaría ver?',
|
|
25
|
+
'prompt.bug_report': '¿Qué pasó y qué esperabas?',
|
|
26
|
+
'sub.feedback': 'Bueno o malo: va directo al equipo.',
|
|
27
|
+
'sub.feature_request': 'Cuéntanos qué intentas hacer.',
|
|
28
|
+
'sub.bug_report': 'Los pasos, la pantalla y lo que esperabas ayudan.',
|
|
29
|
+
'compose.back': 'Volver a las conversaciones',
|
|
30
|
+
'compose.sent': 'Enviado',
|
|
31
|
+
'compose.sentHint': 'Te responderemos aquí mismo. Encontrarás la conversación en Abiertas, y el botón muestra un aviso cuando contestemos.',
|
|
32
|
+
'compose.done': 'Listo',
|
|
33
|
+
'compose.send': 'Enviar',
|
|
34
|
+
'compose.sending': 'Enviando…',
|
|
35
|
+
'compose.minChars': 'Al menos {count} caracteres',
|
|
36
|
+
'thread.support': 'Soporte',
|
|
37
|
+
'thread.new': 'Nuevo',
|
|
38
|
+
'thread.resolvedAt': 'Resuelta · {date}',
|
|
39
|
+
'thread.readOnly': 'Esta conversación está resuelta y es de solo lectura',
|
|
40
|
+
'thread.placeholder': 'Escribe una respuesta…',
|
|
41
|
+
'thread.sendA11y': 'Enviar respuesta',
|
|
42
|
+
'thread.sendingA11y': 'Enviando',
|
|
43
|
+
'thread.translating': 'Traduciendo…',
|
|
44
|
+
'status.open': 'Abierta',
|
|
45
|
+
'status.resolved': 'Resuelta',
|
|
46
|
+
'error.tryAgain': 'Reintentar',
|
|
47
|
+
'error.rateLimited': 'Demasiadas solicitudes: inténtalo más tarde',
|
|
48
|
+
'error.offline': 'Sin conexión: revisa tu red',
|
|
49
|
+
'error.sendFailed': 'No se pudo enviar: inténtalo de nuevo',
|
|
50
|
+
'error.loadFailed': 'No se pudieron cargar tus conversaciones',
|
|
51
|
+
'error.unavailable': 'El soporte no está disponible ahora mismo',
|
|
52
|
+
'error.loadRateLimited': 'Demasiadas solicitudes: inténtalo en un momento',
|
|
53
|
+
'lang.title': 'Elige tu idioma',
|
|
54
|
+
'lang.subtitle': 'Escribe en el idioma que prefieras: traducimos entre tú y el equipo de soporte.',
|
|
55
|
+
'lang.continue': 'Continuar',
|
|
56
|
+
'lang.change': 'Cambiar idioma',
|
|
57
|
+
'lang.saveFailed': 'No se pudo guardar: inténtalo de nuevo',
|
|
58
|
+
'time.justNow': 'ahora mismo',
|
|
59
|
+
'time.minutes': 'hace {count} min',
|
|
60
|
+
'time.hours': 'hace {count} h',
|
|
61
|
+
'time.days': 'hace {count} d',
|
|
62
|
+
'time.weeks': 'hace {count} sem',
|
|
63
|
+
'time.months': 'hace {count} meses',
|
|
64
|
+
'time.years': 'hace {count} años',
|
|
65
|
+
'time.today': 'Hoy',
|
|
66
|
+
'time.yesterday': 'Ayer'
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["es"],"sourceRoot":"../../../../src","sources":["i18n/strings/es.ts"],"mappings":";;AAEA,OAAO,MAAMA,EAAe,GAAG;EAC7B,YAAY,EAAE,SAAS;EACvB,eAAe,EAAE,qDAAqD;EACtE,YAAY,EAAE,gBAAgB;EAC9B,WAAW,EAAE,UAAU;EACvB,eAAe,EAAE,WAAW;EAC5B,YAAY,EAAE,2BAA2B;EACzC,gBAAgB,EACd,8EAA8E;EAChF,iBAAiB,EAAE,qBAAqB;EACxC,UAAU,EAAE,IAAI;EAChB,iBAAiB,EAAE,wBAAwB;EAC3C,uBAAuB,EAAE,0CAA0C;EACnE,cAAc,EAAE,eAAe;EAC/B,eAAe,EAAE,QAAQ;EAEzB,eAAe,EAAE,aAAa;EAC9B,sBAAsB,EAAE,YAAY;EACpC,iBAAiB,EAAE,kBAAkB;EACrC,eAAe,EAAE,sBAAsB;EACvC,sBAAsB,EAAE,mBAAmB;EAC3C,iBAAiB,EAAE,kBAAkB;EACrC,iBAAiB,EAAE,wBAAwB;EAC3C,wBAAwB,EAAE,uBAAuB;EACjD,mBAAmB,EAAE,4BAA4B;EACjD,cAAc,EAAE,qCAAqC;EACrD,qBAAqB,EAAE,+BAA+B;EACtD,gBAAgB,EAAE,mDAAmD;EAErE,cAAc,EAAE,6BAA6B;EAC7C,cAAc,EAAE,SAAS;EACzB,kBAAkB,EAChB,uHAAuH;EACzH,cAAc,EAAE,OAAO;EACvB,cAAc,EAAE,QAAQ;EACxB,iBAAiB,EAAE,WAAW;EAC9B,kBAAkB,EAAE,6BAA6B;EAEjD,gBAAgB,EAAE,SAAS;EAC3B,YAAY,EAAE,OAAO;EACrB,mBAAmB,EAAE,mBAAmB;EACxC,iBAAiB,EAAE,sDAAsD;EACzE,oBAAoB,EAAE,wBAAwB;EAC9C,iBAAiB,EAAE,kBAAkB;EACrC,oBAAoB,EAAE,UAAU;EAChC,oBAAoB,EAAE,cAAc;EAEpC,aAAa,EAAE,SAAS;EACxB,iBAAiB,EAAE,UAAU;EAE7B,gBAAgB,EAAE,YAAY;EAC9B,mBAAmB,EAAE,6CAA6C;EAClE,eAAe,EAAE,6BAA6B;EAC9C,kBAAkB,EAAE,uCAAuC;EAC3D,kBAAkB,EAAE,0CAA0C;EAC9D,mBAAmB,EAAE,2CAA2C;EAChE,uBAAuB,EAAE,iDAAiD;EAE1E,YAAY,EAAE,iBAAiB;EAC/B,eAAe,EACb,iFAAiF;EACnF,eAAe,EAAE,WAAW;EAC5B,aAAa,EAAE,gBAAgB;EAC/B,iBAAiB,EAAE,wCAAwC;EAE3D,cAAc,EAAE,aAAa;EAC7B,cAAc,EAAE,kBAAkB;EAClC,YAAY,EAAE,gBAAgB;EAC9B,WAAW,EAAE,gBAAgB;EAC7B,YAAY,EAAE,kBAAkB;EAChC,aAAa,EAAE,oBAAoB;EACnC,YAAY,EAAE,mBAAmB;EACjC,YAAY,EAAE,KAAK;EACnB,gBAAgB,EAAE;AACpB,CAAC","ignoreList":[]}
|