@glissandoo/lib 1.39.3 → 1.40.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/functions/group.d.ts +2 -1
- package/helpers/fileSections/orders.js +1 -1
- package/helpers/musicStyles/index.d.ts +2 -0
- package/helpers/musicStyles/index.js +15 -1
- package/helpers/musicStyles/orders.js +1 -1
- package/helpers/{notifications/index.d.ts → notifications.d.ts} +4 -4
- package/helpers/{notifications/index.js → notifications.js} +3 -3
- package/helpers/slate.d.ts +0 -1
- package/helpers/slate.js +0 -18
- package/helpers/utils.d.ts +8 -4
- package/helpers/utils.js +94 -4
- package/lang/ca.json +35 -26
- package/lang/de.json +36 -27
- package/lang/en.json +35 -26
- package/lang/es.json +35 -26
- package/lang/eu.json +35 -26
- package/lang/gl.json +37 -28
- package/lang/pt.json +35 -26
- package/models/Communication/index.js +2 -2
- package/models/Group/index.d.ts +1 -0
- package/models/Group/index.js +3 -0
- package/models/Group/types.d.ts +6 -0
- package/models/Group/types.js +7 -1
- package/models/User/Notification/index.js +3 -3
- package/package.json +3 -3
- package/helpers/notifications/placeholders.d.ts +0 -4
- package/helpers/notifications/placeholders.js +0 -80
package/functions/group.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { GroupBasicData, GroupStatus } from '../models/Group/types';
|
|
1
|
+
import { GroupBasicData, GroupCreatedOn, GroupStatus } from '../models/Group/types';
|
|
2
2
|
export declare namespace GroupFbFunctionsTypes {
|
|
3
3
|
interface PublishParams {
|
|
4
4
|
displayName: string;
|
|
@@ -9,6 +9,7 @@ export declare namespace GroupFbFunctionsTypes {
|
|
|
9
9
|
musicStyle: string;
|
|
10
10
|
photoURL: string;
|
|
11
11
|
metadata?: Record<string, string>;
|
|
12
|
+
createdOn: GroupCreatedOn;
|
|
12
13
|
}
|
|
13
14
|
interface PublishResult {
|
|
14
15
|
id: string;
|
|
@@ -15,6 +15,6 @@ const getOrderByMusicStyle = (musicStyle) => {
|
|
|
15
15
|
exports.getOrderByMusicStyle = getOrderByMusicStyle;
|
|
16
16
|
const orderByMusicStyle = (list, field, musicStyle) => {
|
|
17
17
|
const order = (0, exports.getOrderByMusicStyle)(musicStyle);
|
|
18
|
-
return (0, utils_1.
|
|
18
|
+
return (0, utils_1.orderByMatch)(list, field, order);
|
|
19
19
|
};
|
|
20
20
|
exports.orderByMusicStyle = orderByMusicStyle;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { LanguagesTypes } from '../../lang';
|
|
2
2
|
import MusicStyle from '../../models/MusicStyle';
|
|
3
|
+
import { InstrumentId } from '../instruments';
|
|
3
4
|
export declare enum MusicStyleId {
|
|
4
5
|
Orchestra = "orquesta-sinfonica",
|
|
5
6
|
Band = "banda-de-musica",
|
|
@@ -13,6 +14,7 @@ export declare enum MusicStyleId {
|
|
|
13
14
|
Choir = "coro",
|
|
14
15
|
Batucada = "batucada"
|
|
15
16
|
}
|
|
17
|
+
export declare const musicStylesIcon: Record<MusicStyleId, InstrumentId>;
|
|
16
18
|
export declare const MusicStylesCover: Record<MusicStyleId, string>;
|
|
17
19
|
export type MusicStyleType = MusicStyleId | string;
|
|
18
20
|
export declare const musicStyleByCountry: Record<LanguagesTypes, MusicStyleId[]>;
|
|
@@ -3,9 +3,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.list = exports.musicStyleByCountry = exports.MusicStylesCover = exports.MusicStyleId = void 0;
|
|
6
|
+
exports.list = exports.musicStyleByCountry = exports.MusicStylesCover = exports.musicStylesIcon = exports.MusicStyleId = void 0;
|
|
7
7
|
const lang_1 = require("../../lang");
|
|
8
8
|
const MusicStyle_1 = __importDefault(require("../../models/MusicStyle"));
|
|
9
|
+
const instruments_1 = require("../instruments");
|
|
9
10
|
var MusicStyleId;
|
|
10
11
|
(function (MusicStyleId) {
|
|
11
12
|
MusicStyleId["Orchestra"] = "orquesta-sinfonica";
|
|
@@ -20,6 +21,19 @@ var MusicStyleId;
|
|
|
20
21
|
MusicStyleId["Choir"] = "coro";
|
|
21
22
|
MusicStyleId["Batucada"] = "batucada";
|
|
22
23
|
})(MusicStyleId = exports.MusicStyleId || (exports.MusicStyleId = {}));
|
|
24
|
+
exports.musicStylesIcon = {
|
|
25
|
+
[MusicStyleId.Orchestra]: instruments_1.InstrumentId.Violin,
|
|
26
|
+
[MusicStyleId.Band]: instruments_1.InstrumentId.Clarinet,
|
|
27
|
+
[MusicStyleId.MarchingBand]: instruments_1.InstrumentId.MarchingToms,
|
|
28
|
+
[MusicStyleId.BigBand]: instruments_1.InstrumentId.Trombone,
|
|
29
|
+
[MusicStyleId.JazzBand]: instruments_1.InstrumentId.SaxTenor,
|
|
30
|
+
[MusicStyleId.Colla]: instruments_1.InstrumentId.Dulzaina,
|
|
31
|
+
[MusicStyleId.TxistularisBand]: instruments_1.InstrumentId.Txistu,
|
|
32
|
+
[MusicStyleId.BandaCornetasYTambores]: instruments_1.InstrumentId.Cornet,
|
|
33
|
+
[MusicStyleId.Charanga]: instruments_1.InstrumentId.BassDrum,
|
|
34
|
+
[MusicStyleId.Choir]: instruments_1.InstrumentId.Tenor,
|
|
35
|
+
[MusicStyleId.Batucada]: instruments_1.InstrumentId.Repique,
|
|
36
|
+
};
|
|
23
37
|
exports.MusicStylesCover = {
|
|
24
38
|
[MusicStyleId.Orchestra]: 'orquestra',
|
|
25
39
|
[MusicStyleId.Band]: 'bandaDeMusica',
|
|
@@ -199,6 +199,6 @@ const getInstrumentsOrderByMusicStyle = (musicStyle) => {
|
|
|
199
199
|
exports.getInstrumentsOrderByMusicStyle = getInstrumentsOrderByMusicStyle;
|
|
200
200
|
const orderByMusicStyle = (list, field, musicStyle) => {
|
|
201
201
|
const order = (0, exports.getInstrumentsOrderByMusicStyle)(musicStyle);
|
|
202
|
-
return (0, utils_1.
|
|
202
|
+
return (0, utils_1.orderByMatch)(list, field, order);
|
|
203
203
|
};
|
|
204
204
|
exports.orderByMusicStyle = orderByMusicStyle;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { EventoFbFunctionsTypes } from '
|
|
2
|
-
import { NotificationActions } from '
|
|
3
|
-
import { UserNotificationSettings } from '
|
|
4
|
-
import { BadgesTypes } from '
|
|
1
|
+
import { EventoFbFunctionsTypes } from '../functions/event';
|
|
2
|
+
import { NotificationActions } from '../models/Notification/types';
|
|
3
|
+
import { UserNotificationSettings } from '../models/User/types';
|
|
4
|
+
import { BadgesTypes } from './badges';
|
|
5
5
|
export declare const notificationActionsBadges: Record<BadgesTypes, {
|
|
6
6
|
firstLevel: NotificationActions;
|
|
7
7
|
upLevel: NotificationActions;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.userNotificationSettings = exports.notificationMultiplePractice = exports.notificationSinglePractice = exports.notificationPerformance = exports.editScopeToAction = exports.NotificationEventActions = exports.notificationActionsBadges = void 0;
|
|
4
|
-
const types_1 = require("
|
|
5
|
-
const types_2 = require("
|
|
6
|
-
const badges_1 = require("
|
|
4
|
+
const types_1 = require("../models/Notification/types");
|
|
5
|
+
const types_2 = require("../models/User/types");
|
|
6
|
+
const badges_1 = require("./badges");
|
|
7
7
|
exports.notificationActionsBadges = {
|
|
8
8
|
[badges_1.BadgesTypes.AccPerformances]: {
|
|
9
9
|
firstLevel: types_1.NotificationActions.BadgeAccPerformancesFirstLevel,
|
package/helpers/slate.d.ts
CHANGED
|
@@ -12,5 +12,4 @@ export interface CustomTypes {
|
|
|
12
12
|
[key: string]: unknown;
|
|
13
13
|
}
|
|
14
14
|
export declare type ExtendedType<K extends ExtendableTypes, B> = unknown extends CustomTypes[K] ? B : CustomTypes[K];
|
|
15
|
-
export declare const serializeSlateBlock: (nodes: Descendant[]) => string;
|
|
16
15
|
export {};
|
package/helpers/slate.js
CHANGED
|
@@ -1,20 +1,2 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.serializeSlateBlock = void 0;
|
|
7
|
-
const get_1 = __importDefault(require("lodash/get"));
|
|
8
|
-
const serializeSlateBlock = (nodes) => {
|
|
9
|
-
return nodes
|
|
10
|
-
.map((node) => {
|
|
11
|
-
const children = (0, get_1.default)(node, 'children');
|
|
12
|
-
if (children) {
|
|
13
|
-
return (0, exports.serializeSlateBlock)(children);
|
|
14
|
-
}
|
|
15
|
-
const text = (0, get_1.default)(node, 'text');
|
|
16
|
-
return text || '';
|
|
17
|
-
})
|
|
18
|
-
.join(' ');
|
|
19
|
-
};
|
|
20
|
-
exports.serializeSlateBlock = serializeSlateBlock;
|
package/helpers/utils.d.ts
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { LanguagesTypes } from '../lang';
|
|
2
|
+
import { MetaNotificationData } from '../models/User/Notification/types';
|
|
3
|
+
import { Descendant } from './slate';
|
|
4
|
+
export declare const replaceVarsBrackets: (string: string, values: MetaNotificationData) => string;
|
|
5
|
+
export declare const replaceKeysNotification: (text: string, values: MetaNotificationData, lang: LanguagesTypes) => string;
|
|
6
|
+
export declare const serializeSlateBlock: (nodes: Descendant[]) => string;
|
|
7
|
+
export declare const orderByMatch: <T>(list: T[], field: keyof T, order: string[]) => T[];
|
|
8
|
+
export declare const enumToObj: <T extends Record<string, string | number | boolean>>(enumObject: Record<string, string>, defaultValue: string | number | boolean) => T;
|
package/helpers/utils.js
CHANGED
|
@@ -3,10 +3,95 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.enumToObj = exports.
|
|
6
|
+
exports.enumToObj = exports.orderByMatch = exports.serializeSlateBlock = exports.replaceKeysNotification = exports.replaceVarsBrackets = void 0;
|
|
7
|
+
const date_fns_1 = require("date-fns");
|
|
8
|
+
const date_fns_tz_1 = require("date-fns-tz");
|
|
7
9
|
const lodash_1 = require("lodash");
|
|
8
10
|
const get_1 = __importDefault(require("lodash/get"));
|
|
9
|
-
const
|
|
11
|
+
const lang_1 = require("../lang");
|
|
12
|
+
const Instrument_1 = __importDefault(require("../models/Instrument"));
|
|
13
|
+
const replaceVarsBrackets = (string, values) => {
|
|
14
|
+
const matches = string.match(/[^[\]]+(?=])/g);
|
|
15
|
+
let replaceString = string;
|
|
16
|
+
if (matches && matches.length > 0) {
|
|
17
|
+
matches.forEach((match) => {
|
|
18
|
+
replaceString = replaceString.replace(`[${match}]`, (0, get_1.default)(values, match));
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
return replaceString;
|
|
22
|
+
};
|
|
23
|
+
exports.replaceVarsBrackets = replaceVarsBrackets;
|
|
24
|
+
const replaceKeysNotification = (text, values, lang) => {
|
|
25
|
+
const dateLang = (0, lang_1.getDateLang)(lang);
|
|
26
|
+
const matches = text.match(/(\{).+?(\})/g);
|
|
27
|
+
const { extra, ...other } = values;
|
|
28
|
+
const newValues = { extra };
|
|
29
|
+
Object.keys(other || {}).forEach((key) => Object.assign(newValues, {
|
|
30
|
+
[key]: Object.values((0, get_1.default)(other, key)),
|
|
31
|
+
}));
|
|
32
|
+
let replaceString = text;
|
|
33
|
+
if (!matches || matches.length === 0) {
|
|
34
|
+
return replaceString;
|
|
35
|
+
}
|
|
36
|
+
for (const match of matches) {
|
|
37
|
+
const value = match.slice(1, -1);
|
|
38
|
+
const typeKeyMatch = value.split(':');
|
|
39
|
+
const type = typeKeyMatch[0];
|
|
40
|
+
const key = typeKeyMatch[1];
|
|
41
|
+
const path = key.split('.');
|
|
42
|
+
switch (type) {
|
|
43
|
+
case 'instrument': {
|
|
44
|
+
const instrumentId = (0, get_1.default)(newValues, path);
|
|
45
|
+
const instrument = new Instrument_1.default(instrumentId, lang);
|
|
46
|
+
if (instrument) {
|
|
47
|
+
replaceString = replaceString.replace(match, instrument.name.toLowerCase());
|
|
48
|
+
}
|
|
49
|
+
break;
|
|
50
|
+
}
|
|
51
|
+
case 'date': {
|
|
52
|
+
const timestamp = (0, get_1.default)(newValues, path);
|
|
53
|
+
if (!timestamp) {
|
|
54
|
+
replaceString = replaceString.replace(match, '');
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const timezonePath = path;
|
|
58
|
+
timezonePath[path.length - 1] = 'timezone';
|
|
59
|
+
const timezone = (0, get_1.default)(newValues, timezonePath) || 'Europe/Madrid';
|
|
60
|
+
const dateUTC = (0, date_fns_tz_1.utcToZonedTime)(timestamp.toDate(), timezone);
|
|
61
|
+
const formatValue = typeKeyMatch[2] || 'shortDate';
|
|
62
|
+
const dateFormat = (0, date_fns_1.format)(dateUTC, (0, get_1.default)(dateLang.format, formatValue), {
|
|
63
|
+
locale: dateLang.locale,
|
|
64
|
+
});
|
|
65
|
+
replaceString = replaceString.replace(match, dateFormat);
|
|
66
|
+
}
|
|
67
|
+
break;
|
|
68
|
+
}
|
|
69
|
+
case 'string': {
|
|
70
|
+
replaceString = replaceString.replace(match, (0, get_1.default)(newValues, path));
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
default: {
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return replaceString;
|
|
79
|
+
};
|
|
80
|
+
exports.replaceKeysNotification = replaceKeysNotification;
|
|
81
|
+
const serializeSlateBlock = (nodes) => {
|
|
82
|
+
return nodes
|
|
83
|
+
.map((node) => {
|
|
84
|
+
const children = (0, get_1.default)(node, 'children');
|
|
85
|
+
if (children) {
|
|
86
|
+
return (0, exports.serializeSlateBlock)(children);
|
|
87
|
+
}
|
|
88
|
+
const text = (0, get_1.default)(node, 'text');
|
|
89
|
+
return text || '';
|
|
90
|
+
})
|
|
91
|
+
.join(' ');
|
|
92
|
+
};
|
|
93
|
+
exports.serializeSlateBlock = serializeSlateBlock;
|
|
94
|
+
const orderByMatch = (list, field, order) => {
|
|
10
95
|
const [match, noMatch] = (0, lodash_1.partition)(list, (item) => order.includes((0, get_1.default)(item, field)));
|
|
11
96
|
const sortedmatch = (0, lodash_1.sortBy)(match, [
|
|
12
97
|
(player) => order.indexOf((0, get_1.default)(player, field)),
|
|
@@ -15,6 +100,11 @@ const sortByMatch = (list, field, order) => {
|
|
|
15
100
|
const sortedNoMatch = (0, lodash_1.orderBy)(noMatch, field, 'asc');
|
|
16
101
|
return [...sortedmatch, ...sortedNoMatch];
|
|
17
102
|
};
|
|
18
|
-
exports.
|
|
19
|
-
const enumToObj = (enumObject, defaultValue) =>
|
|
103
|
+
exports.orderByMatch = orderByMatch;
|
|
104
|
+
const enumToObj = (enumObject, defaultValue) => {
|
|
105
|
+
return Object.values(enumObject).reduce((acc, key) => ({
|
|
106
|
+
...acc,
|
|
107
|
+
[key]: defaultValue,
|
|
108
|
+
}), {});
|
|
109
|
+
};
|
|
20
110
|
exports.enumToObj = enumToObj;
|
package/lang/ca.json
CHANGED
|
@@ -19,6 +19,15 @@
|
|
|
19
19
|
"communication.create.title": "Nou post",
|
|
20
20
|
"communication.newComment.text": "{string:user.0.displayName} ha comentat una publicació",
|
|
21
21
|
"communication.newComment.title": "Comentari nou",
|
|
22
|
+
"emails.biweeklyEventReminder.attendance.confirm": "Confirm",
|
|
23
|
+
"emails.biweeklyEventReminder.attendance.confirmed": "Going 😎",
|
|
24
|
+
"emails.biweeklyEventReminder.attendance.decline": "Decline",
|
|
25
|
+
"emails.biweeklyEventReminder.attendance.declined": "Not going 🥲",
|
|
26
|
+
"emails.biweeklyEventReminder.intro": "Hi {name}, here is a summary of the events you can't miss!",
|
|
27
|
+
"emails.biweeklyEventReminder.subject": "Don't miss these events!",
|
|
28
|
+
"emails.biweeklyEventReminder.title": "Events Summary",
|
|
29
|
+
"emails.common.footer.contact": "If you have any doubts, please don't hesitate to contact us.\nOur email is hello@glissandoo.com.",
|
|
30
|
+
"emails.common.footer.rights": "© 2023 Glissandoo.com, All rights reserved.",
|
|
22
31
|
"event": "Esdeveniment",
|
|
23
32
|
"group.delete.text": "El grupo {string:group.0.displayName} ha estat esborrat",
|
|
24
33
|
"group.delete.title": "Grup esborrat",
|
|
@@ -152,13 +161,13 @@
|
|
|
152
161
|
"performance.edit.stage.title": "Concert - pla modificat",
|
|
153
162
|
"performance.edit.title.text": "S'ha actualitzat el títol de {string:event.0.displayName}",
|
|
154
163
|
"performance.edit.title.title": "Acte - canvi de nom",
|
|
155
|
-
"performance.eveningReminder.confirm.text": "{string:event.0.displayName} de {string:group.0.displayName} demà a les {date:event.0.
|
|
164
|
+
"performance.eveningReminder.confirm.text": "{string:event.0.displayName} de {string:group.0.displayName} demà a les {date:event.0.datetime:time}",
|
|
156
165
|
"performance.eveningReminder.confirm.title": "Recordatori acte",
|
|
157
|
-
"performance.eveningReminder.pending.text": "Confirma l'assistència per {string:event.0.displayName} de {string:group.0.displayName} demà a les {date:event.0.
|
|
166
|
+
"performance.eveningReminder.pending.text": "Confirma l'assistència per {string:event.0.displayName} de {string:group.0.displayName} demà a les {date:event.0.datetime:time}",
|
|
158
167
|
"performance.eveningReminder.pending.title": "Recordatori acte",
|
|
159
|
-
"performance.morningReminder.confirm.text": "{string:event.0.displayName} de {string:group.0.displayName} avui a les {date:event.0.
|
|
168
|
+
"performance.morningReminder.confirm.text": "{string:event.0.displayName} de {string:group.0.displayName} avui a les {date:event.0.datetime:time}",
|
|
160
169
|
"performance.morningReminder.confirm.title": "Recordatori acte",
|
|
161
|
-
"performance.morningReminder.pending.text": "Confirma l'assistència per {string:event.0.displayName} de {string:group.0.displayName} avui a les {date:event.0.
|
|
170
|
+
"performance.morningReminder.pending.text": "Confirma l'assistència per {string:event.0.displayName} de {string:group.0.displayName} avui a les {date:event.0.datetime:time}",
|
|
162
171
|
"performance.morningReminder.pending.title": "Recordatori acte",
|
|
163
172
|
"performance.players.add.text": "T'han afegit a {string:event.0.displayName}",
|
|
164
173
|
"performance.players.add.title": "Nou acte",
|
|
@@ -169,47 +178,47 @@
|
|
|
169
178
|
"performance.rollCallReminder.text": "Ara es el millor moment per a passar llista",
|
|
170
179
|
"performance.rollCallReminder.title": "Pots passar llista a l'assaig",
|
|
171
180
|
"practice": "Assaig",
|
|
172
|
-
"practice.assistance.confirm.text": "{string:user.0.displayName} ha confirmat l'assistència a l'assaig del {date:event.0.
|
|
181
|
+
"practice.assistance.confirm.text": "{string:user.0.displayName} ha confirmat l'assistència a l'assaig del {date:event.0.datetime:date}",
|
|
173
182
|
"practice.assistance.confirm.title": "Assistència confirmada",
|
|
174
|
-
"practice.assistance.decline.text": "{string:user.0.displayName} ha rebutjat l'assistència a l'assaig del {date:event.0.
|
|
183
|
+
"practice.assistance.decline.text": "{string:user.0.displayName} ha rebutjat l'assistència a l'assaig del {date:event.0.datetime:date}",
|
|
175
184
|
"practice.assistance.decline.title": "Assistència rebutjada",
|
|
176
|
-
"practice.cancel.text": "S'ha cancel·lat l'assaig del {date:event.0.
|
|
185
|
+
"practice.cancel.text": "S'ha cancel·lat l'assaig del {date:event.0.datetime:date} de {string:group.0.displayName}",
|
|
177
186
|
"practice.cancel.title": "Assaig cancel·lat",
|
|
178
|
-
"practice.create.text": "S'ha afegit un assaig de {string:group.0.displayName} el {date:event.0.
|
|
187
|
+
"practice.create.text": "S'ha afegit un assaig de {string:group.0.displayName} el {date:event.0.datetime:datetime}",
|
|
179
188
|
"practice.create.title": "Nou assaig",
|
|
180
|
-
"practice.edit.attendance.text": "S'ha actualitzat el límit d'assistència del assaig de {date:event.0.
|
|
189
|
+
"practice.edit.attendance.text": "S'ha actualitzat el límit d'assistència del assaig de {date:event.0.datetime:date}",
|
|
181
190
|
"practice.edit.attendance.title": "Assaig - límit d'assistència modificat",
|
|
182
|
-
"practice.edit.comments.text": "S0han actualitzat els comentaris del assaig de {date:event.0.
|
|
191
|
+
"practice.edit.comments.text": "S0han actualitzat els comentaris del assaig de {date:event.0.datetime:date}",
|
|
183
192
|
"practice.edit.comments.title": "Assaig - comentaris actualitzats",
|
|
184
|
-
"practice.edit.datetime.text": "S'ha actualitzat l'horari de l'assaig del {date:event.0.
|
|
193
|
+
"practice.edit.datetime.text": "S'ha actualitzat l'horari de l'assaig del {date:event.0.datetime:date}",
|
|
185
194
|
"practice.edit.datetime.title": "Assaig - canvi d'horari",
|
|
186
|
-
"practice.edit.locality.text": "S'ha actualitzat l'adreça de l'assaig del {date:event.0.
|
|
195
|
+
"practice.edit.locality.text": "S'ha actualitzat l'adreça de l'assaig del {date:event.0.datetime:date}",
|
|
187
196
|
"practice.edit.locality.title": "Assaig - l'adreça ha canviat",
|
|
188
|
-
"practice.edit.repertory.text": "S'ha actualitzat el repertori del assaig del {date:event.0.
|
|
197
|
+
"practice.edit.repertory.text": "S'ha actualitzat el repertori del assaig del {date:event.0.datetime:date}",
|
|
189
198
|
"practice.edit.repertory.title": "Assaig - actualització de repertori",
|
|
190
|
-
"practice.edit.stage.text": "El pla del assaig {date:event.0.
|
|
199
|
+
"practice.edit.stage.text": "El pla del assaig {date:event.0.datetime:date} ha estat actualitzat",
|
|
191
200
|
"practice.edit.stage.title": "Assaig - pla actualitzat",
|
|
192
|
-
"practice.edit.title.text": "S'ha actualitzat el títol de l'assaig del {date:event.0.
|
|
201
|
+
"practice.edit.title.text": "S'ha actualitzat el títol de l'assaig del {date:event.0.datetime:date}",
|
|
193
202
|
"practice.edit.title.title": "Assaig - canvi de nom",
|
|
194
|
-
"practice.eveningReminder.confirm.text": "Assaig de {string:group.0.displayName} demà a les {date:event.0.
|
|
203
|
+
"practice.eveningReminder.confirm.text": "Assaig de {string:group.0.displayName} demà a les {date:event.0.datetime:time}",
|
|
195
204
|
"practice.eveningReminder.confirm.title": "Recordatori assaig",
|
|
196
|
-
"practice.eveningReminder.pending.text": "Confirma l'assistència per l'assaig de {string:group.0.displayName} demà a les {date:event.0.
|
|
205
|
+
"practice.eveningReminder.pending.text": "Confirma l'assistència per l'assaig de {string:group.0.displayName} demà a les {date:event.0.datetime:time}",
|
|
197
206
|
"practice.eveningReminder.pending.title": "Recordatori assaig",
|
|
198
|
-
"practice.morningReminder.confirm.text": "Assaig de {string:group.0.displayName} avui a les {date:event.0.
|
|
207
|
+
"practice.morningReminder.confirm.text": "Assaig de {string:group.0.displayName} avui a les {date:event.0.datetime:time}",
|
|
199
208
|
"practice.morningReminder.confirm.title": "Recordatori assaig",
|
|
200
|
-
"practice.morningReminder.pending.text": "Confirma l'assistència per l'assaig de {string:group.0.displayName} avui a les {date:event.0.
|
|
209
|
+
"practice.morningReminder.pending.text": "Confirma l'assistència per l'assaig de {string:group.0.displayName} avui a les {date:event.0.datetime:time}",
|
|
201
210
|
"practice.morningReminder.pending.title": "Recordatori assaig",
|
|
202
|
-
"practice.players.add.text": "T'han afegit a un assaig de {string:group.0.displayName} programat pel {date:event.0.
|
|
211
|
+
"practice.players.add.text": "T'han afegit a un assaig de {string:group.0.displayName} programat pel {date:event.0.datetime:datetime}",
|
|
203
212
|
"practice.players.add.title": "Nou assaig",
|
|
204
|
-
"practice.players.remove.text": "Has estat esborrat de l'assaig de {string:group.0.displayName} pel {date:event.0.
|
|
213
|
+
"practice.players.remove.text": "Has estat esborrat de l'assaig de {string:group.0.displayName} pel {date:event.0.datetime:date}",
|
|
205
214
|
"practice.players.remove.title": "Assaig cancel·lat",
|
|
206
|
-
"practice.reminder.text": "És necessari que confirmes l'assistència a l'assaig del {date:event.0.
|
|
215
|
+
"practice.reminder.text": "És necessari que confirmes l'assistència a l'assaig del {date:event.0.datetime:datetime} de {string:group.0.displayName}",
|
|
207
216
|
"practice.reminder.title": "Recordatori per confirmar assistència",
|
|
208
217
|
"practice.rollCallReminder.text": "Ara es el millor moment per a passar llista",
|
|
209
218
|
"practice.rollCallReminder.title": "Pots passar llista al vostre darrer assaig",
|
|
210
|
-
"practices.cancel.text": "S'han cancel·lat {string:extra.num} assajos de {string:group.0.displayName} des del {date:event.0.
|
|
219
|
+
"practices.cancel.text": "S'han cancel·lat {string:extra.num} assajos de {string:group.0.displayName} des del {date:event.0.datetime:shortDate} fins al {date:event.1.datetime:shortDate}",
|
|
211
220
|
"practices.cancel.title": "Assajos cancel·lats",
|
|
212
|
-
"practices.create.text": "S'han afegit {string:extra.num} assajos de {string:group.0.displayName} des del {date:event.0.
|
|
221
|
+
"practices.create.text": "S'han afegit {string:extra.num} assajos de {string:group.0.displayName} des del {date:event.0.datetime:shortDate} fins al {date:event.1.datetime:shortDate}",
|
|
213
222
|
"practices.create.title": "Nous assajos",
|
|
214
223
|
"practices.edit.attendance.text": "Una serie d'assajos han actualitzat el seu límit d'assistència",
|
|
215
224
|
"practices.edit.attendance.title": "Assajos - canvi de límit d'assistència",
|
|
@@ -225,9 +234,9 @@
|
|
|
225
234
|
"practices.edit.stage.title": "Assajos - pla actualitzat",
|
|
226
235
|
"practices.edit.title.text": "Una serie d'assajos han actualitzat el seu títol",
|
|
227
236
|
"practices.edit.title.title": "Assajos - canvi de nom",
|
|
228
|
-
"practices.players.add.text": "Us han afegit a una sèrie d'assajos entre {date:event.0.
|
|
237
|
+
"practices.players.add.text": "Us han afegit a una sèrie d'assajos entre {date:event.0.datetime:shortDate} i {date:event.1.datetime:shortDate}",
|
|
229
238
|
"practices.players.add.title": "Nous assajos",
|
|
230
|
-
"practices.players.remove.text": "Us han eliminat d'una sèrie d'assajos entre {date:event.0.
|
|
239
|
+
"practices.players.remove.text": "Us han eliminat d'una sèrie d'assajos entre {date:event.0.datetime:shortDate} i {date:event.1.datetime:shortDate}",
|
|
231
240
|
"practices.players.remove.title": "Assajos eliminats",
|
|
232
241
|
"repertoireTags.1": "1r",
|
|
233
242
|
"repertoireTags.2": "2n",
|
package/lang/de.json
CHANGED
|
@@ -19,6 +19,15 @@
|
|
|
19
19
|
"communication.create.title": "Neuer Beitrag",
|
|
20
20
|
"communication.newComment.text": "{string:user.0.displayName} hat einen Beitrag kommentiert",
|
|
21
21
|
"communication.newComment.title": "Neuer Kommentar",
|
|
22
|
+
"emails.biweeklyEventReminder.attendance.confirm": "Confirm",
|
|
23
|
+
"emails.biweeklyEventReminder.attendance.confirmed": "Going 😎",
|
|
24
|
+
"emails.biweeklyEventReminder.attendance.decline": "Decline",
|
|
25
|
+
"emails.biweeklyEventReminder.attendance.declined": "Not going 🥲",
|
|
26
|
+
"emails.biweeklyEventReminder.intro": "Hi {name}, here is a summary of the events you can't miss!",
|
|
27
|
+
"emails.biweeklyEventReminder.subject": "Don't miss these events!",
|
|
28
|
+
"emails.biweeklyEventReminder.title": "Events Summary",
|
|
29
|
+
"emails.common.footer.contact": "If you have any doubts, please don't hesitate to contact us.\nOur email is hello@glissandoo.com.",
|
|
30
|
+
"emails.common.footer.rights": "© 2023 Glissandoo.com, All rights reserved.",
|
|
22
31
|
"event": "Veranstaltung",
|
|
23
32
|
"group.delete.text": "Die Gruppe {string:group.0.displayName} wurde gelöscht",
|
|
24
33
|
"group.delete.title": "Gruppe gelöscht",
|
|
@@ -152,13 +161,13 @@
|
|
|
152
161
|
"performance.edit.stage.title": "Auftritt - Sitzplan hat sich geändert",
|
|
153
162
|
"performance.edit.title.text": "Der Titel von {string:event.0.displayName} wurde aktualisiert",
|
|
154
163
|
"performance.edit.title.title": "Auftritt - Der Titel wurde geändert",
|
|
155
|
-
"performance.eveningReminder.confirm.text": "{string:event.0.displayName} von {string:group.0.displayName} morgen um {date:event.0.
|
|
164
|
+
"performance.eveningReminder.confirm.text": "{string:event.0.displayName} von {string:group.0.displayName} morgen um {date:event.0.datetime:time}",
|
|
156
165
|
"performance.eveningReminder.confirm.title": "Auftritt-Erinnerung",
|
|
157
|
-
"performance.eveningReminder.pending.text": "Bestätige deine Teilnahme an {string:event.0.displayName} von {string:group.0.displayName} morgen um {date:event.0.
|
|
166
|
+
"performance.eveningReminder.pending.text": "Bestätige deine Teilnahme an {string:event.0.displayName} von {string:group.0.displayName} morgen um {date:event.0.datetime:time}",
|
|
158
167
|
"performance.eveningReminder.pending.title": "Auftritt-Erinnerung",
|
|
159
|
-
"performance.morningReminder.confirm.text": "{string:event.0.displayName} von {string:group.0.displayName} heute um {date:event.0.
|
|
168
|
+
"performance.morningReminder.confirm.text": "{string:event.0.displayName} von {string:group.0.displayName} heute um {date:event.0.datetime:time}",
|
|
160
169
|
"performance.morningReminder.confirm.title": "Auftritt-Erinnerung",
|
|
161
|
-
"performance.morningReminder.pending.text": "Bestätige deine Teilnahme an {string:event.0.displayName} von {string:group.0.displayName} noch heute um{date:event.0.
|
|
170
|
+
"performance.morningReminder.pending.text": "Bestätige deine Teilnahme an {string:event.0.displayName} von {string:group.0.displayName} noch heute um{date:event.0.datetime:time}",
|
|
162
171
|
"performance.morningReminder.pending.title": "Auftritt-Erinnerung",
|
|
163
172
|
"performance.players.add.text": "Du wurdest zu {string:event.0.displayName} hinzugefügt",
|
|
164
173
|
"performance.players.add.title": "Neuer Auftritt\n",
|
|
@@ -169,47 +178,47 @@
|
|
|
169
178
|
"performance.rollCallReminder.text": "Jetzt ist der beste Moment, um zu überprüfen, wer an der Probe teilgenommen hat.",
|
|
170
179
|
"performance.rollCallReminder.title": "Du kannst die Anwesenheit zur Probe überprüfen",
|
|
171
180
|
"practice": "Probe\n",
|
|
172
|
-
"practice.assistance.confirm.text": "{string:user.0.displayName} hat die Teilnahme an der Probe am {date:event.0.
|
|
181
|
+
"practice.assistance.confirm.text": "{string:user.0.displayName} hat die Teilnahme an der Probe am {date:event.0.datetime:date} bestätigt",
|
|
173
182
|
"practice.assistance.confirm.title": "Teilnahme bestätigt",
|
|
174
|
-
"practice.assistance.decline.text": "{string:user.0.displayName} hat die Teilnahme an der Probe am {date:event.0.
|
|
183
|
+
"practice.assistance.decline.text": "{string:user.0.displayName} hat die Teilnahme an der Probe am {date:event.0.datetime:date} abgelehnt",
|
|
175
184
|
"practice.assistance.decline.title": "Teilnahme abgelehnt",
|
|
176
|
-
"practice.cancel.text": "Die Probe von {string:group.0.displayName} für {date:event.0.
|
|
185
|
+
"practice.cancel.text": "Die Probe von {string:group.0.displayName} für {date:event.0.datetime:date} wurde abgesagt",
|
|
177
186
|
"practice.cancel.title": "Die Probe wurde abgesagt",
|
|
178
|
-
"practice.create.text": "Eine neue Probe von {string:group.0.displayName} am {date:event.0.
|
|
187
|
+
"practice.create.text": "Eine neue Probe von {string:group.0.displayName} am {date:event.0.datetime:datetime} wurde hinzugefügt",
|
|
179
188
|
"practice.create.title": "Neue Probe",
|
|
180
|
-
"practice.edit.attendance.text": "Das Teilnahmelimit für die Probe am {date:event.0.
|
|
189
|
+
"practice.edit.attendance.text": "Das Teilnahmelimit für die Probe am {date:event.0.datetime:date} wurde aktualisiert",
|
|
181
190
|
"practice.edit.attendance.title": "Probe - Das Teilnahmelimit wurde geändert",
|
|
182
|
-
"practice.edit.comments.text": "Die Beschreibung der Probe am {date:event.0.
|
|
191
|
+
"practice.edit.comments.text": "Die Beschreibung der Probe am {date:event.0.datetime:date} wurden aktualisiert",
|
|
183
192
|
"practice.edit.comments.title": "Probe - Die Beschreibung wurde geändert",
|
|
184
|
-
"practice.edit.datetime.text": "Die Probenzeit für {date:event.0.
|
|
193
|
+
"practice.edit.datetime.text": "Die Probenzeit für {date:event.0.datetime:date} wurde aktualisiert",
|
|
185
194
|
"practice.edit.datetime.title": "Probe - Der Zeitplan wurde geändert",
|
|
186
|
-
"practice.edit.locality.text": "Die Anschrift der Probe am {date:event.0.
|
|
195
|
+
"practice.edit.locality.text": "Die Anschrift der Probe am {date:event.0.datetime:date} wurde aktualisiert",
|
|
187
196
|
"practice.edit.locality.title": "Die Anschrift der Probe wurde geändert",
|
|
188
|
-
"practice.edit.repertory.text": "Die Noten der Probe für {date:event.0.
|
|
197
|
+
"practice.edit.repertory.text": "Die Noten der Probe für {date:event.0.datetime:date} wurden aktualisiert",
|
|
189
198
|
"practice.edit.repertory.title": "Probe - Die Noten wurden geändert",
|
|
190
|
-
"practice.edit.stage.text": "Die Sitzplan für die Probe {date:event.0.
|
|
199
|
+
"practice.edit.stage.text": "Die Sitzplan für die Probe {date:event.0.datetime:date} wurde aktualisiert",
|
|
191
200
|
"practice.edit.stage.title": "Probe - Sitzplan geändert",
|
|
192
|
-
"practice.edit.title.text": "Der Probentitel für {date:event.0.
|
|
201
|
+
"practice.edit.title.text": "Der Probentitel für {date:event.0.datetime:date} wurde aktualisiert",
|
|
193
202
|
"practice.edit.title.title": "Probe - Der Titel wurde geändert",
|
|
194
|
-
"practice.eveningReminder.confirm.text": "Probe von {string:group.0.displayName} morgen um {date:event.0.
|
|
203
|
+
"practice.eveningReminder.confirm.text": "Probe von {string:group.0.displayName} morgen um {date:event.0.datetime:time}",
|
|
195
204
|
"practice.eveningReminder.confirm.title": "Probe-Erinnerung",
|
|
196
|
-
"practice.eveningReminder.pending.text": "Bestätige deine Teilnahme an der Probe von {string:group.0.displayName} morgen um {date:event.0.
|
|
205
|
+
"practice.eveningReminder.pending.text": "Bestätige deine Teilnahme an der Probe von {string:group.0.displayName} morgen um {date:event.0.datetime:time}",
|
|
197
206
|
"practice.eveningReminder.pending.title": "Probe-Erinnerung",
|
|
198
|
-
"practice.morningReminder.confirm.text": "Probe von {string:group.0.displayName} heute um {date:event.0.
|
|
207
|
+
"practice.morningReminder.confirm.text": "Probe von {string:group.0.displayName} heute um {date:event.0.datetime:time}",
|
|
199
208
|
"practice.morningReminder.confirm.title": "Probe-Erinnerung",
|
|
200
|
-
"practice.morningReminder.pending.text": "Bestätige deine Teilnahme an der {string:group.0.displayName}-Probe noch heute um {date:event.0.
|
|
209
|
+
"practice.morningReminder.pending.text": "Bestätige deine Teilnahme an der {string:group.0.displayName}-Probe noch heute um {date:event.0.datetime:time}",
|
|
201
210
|
"practice.morningReminder.pending.title": "Probe-Erinnerung",
|
|
202
|
-
"practice.players.add.text": "Du wurdest zu einer Probe von {string:group.0.displayName} für {date:event.0.
|
|
211
|
+
"practice.players.add.text": "Du wurdest zu einer Probe von {string:group.0.displayName} für {date:event.0.datetime:datetime} hinzugefügt.",
|
|
203
212
|
"practice.players.add.title": "Neue Probe",
|
|
204
|
-
"practice.players.remove.text": "Du wurdest von der Probe von {string:group.0.displayName} am {date:event.0.
|
|
213
|
+
"practice.players.remove.text": "Du wurdest von der Probe von {string:group.0.displayName} am {date:event.0.datetime:date} entfernt",
|
|
205
214
|
"practice.players.remove.title": "Die Probe wurde abgesagt",
|
|
206
|
-
"practice.reminder.text": "Du musst bitte die Teilnahme am {date:event.0.
|
|
215
|
+
"practice.reminder.text": "Du musst bitte die Teilnahme am {date:event.0.datetime:datetime} von {string:group.0.displayName} bestätigen",
|
|
207
216
|
"practice.reminder.title": "Erinnerung zur Bestätigung der Teilnahme",
|
|
208
217
|
"practice.rollCallReminder.text": "Jetzt ist der beste Moment, um zu überprüfen, wer an der Probe teilgenommen hat.",
|
|
209
218
|
"practice.rollCallReminder.title": "Du kannst die Anwesenheit zu deiner letzten Probe überprüfen",
|
|
210
|
-
"practices.cancel.text": "{string:extra.num} Proben von {string:group.0.displayName} zwischen {date:event.0.
|
|
219
|
+
"practices.cancel.text": "{string:extra.num} Proben von {string:group.0.displayName} zwischen {date:event.0.datetime:shortDate} und {date:event.1.datetime:shortDate} wurden abgesagt",
|
|
211
220
|
"practices.cancel.title": "Proben abgesagt",
|
|
212
|
-
"practices.create.text": "{string:extra.num} neue Proben von {string:group.0.displayName} zwischen {date:event.0.
|
|
221
|
+
"practices.create.text": "{string:extra.num} neue Proben von {string:group.0.displayName} zwischen {date:event.0.datetime:shortDate} und {date:event.1.datetime:shortDate} wurden hinzugefügt",
|
|
213
222
|
"practices.create.title": "Neue Proben",
|
|
214
223
|
"practices.edit.attendance.text": "Das Teilnahmelimit einer Reihe von Proben wurde aktualisiert",
|
|
215
224
|
"practices.edit.attendance.title": "Probe - Das Teilnahmelimit wurde geändert",
|
|
@@ -225,9 +234,9 @@
|
|
|
225
234
|
"practices.edit.stage.title": "Proben - Sitzplan geändert",
|
|
226
235
|
"practices.edit.title.text": "Der Titel einer Reihe von Proben wurde aktualisiert",
|
|
227
236
|
"practices.edit.title.title": "Probe - Der Titel wurde geändert",
|
|
228
|
-
"practices.players.add.text": "Du wurdest zu einer Reihe von Proben von {date:event.0.
|
|
237
|
+
"practices.players.add.text": "Du wurdest zu einer Reihe von Proben von {date:event.0.datetime:shortDate} bis {date:event.1.datetime:shortDate} hinzugefügt.",
|
|
229
238
|
"practices.players.add.title": "Neue Proben",
|
|
230
|
-
"practices.players.remove.text": "Du wurdest aus einer Reihe von Proben von {date:event.0.
|
|
239
|
+
"practices.players.remove.text": "Du wurdest aus einer Reihe von Proben von {date:event.0.datetime:shortDate} bis {date:event.1.datetime:shortDate} entfernt.",
|
|
231
240
|
"practices.players.remove.title": "Die Proben wurden entfernt",
|
|
232
241
|
"repertoireTags.1": "1.",
|
|
233
242
|
"repertoireTags.2": "2.",
|
|
@@ -237,6 +246,6 @@
|
|
|
237
246
|
"sections.all": "Alle",
|
|
238
247
|
"theme.claim.new.text": "{string:user.0.displayName} fordert eine Überprüfung der Noten für {instrument:extra.instrumentId} von \"{string:extra.title}\"",
|
|
239
248
|
"theme.claim.new.title": "Ein Musiker hat eine Überprüfung der Noten angefordert",
|
|
240
|
-
"theme.claim.update.text": "{instrument:extra.
|
|
249
|
+
"theme.claim.update.text": "{instrument:extra.instrumentld} -Noten des Stücks \"{string:extra.title}\" wurden hinzugefügt.",
|
|
241
250
|
"theme.claim.update.title": "Neue {instrument:extra.instrumentId} -Noten"
|
|
242
251
|
}
|