@glissandoo/lib 1.40.0 → 1.40.2
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/helpers/fileSections/orders.js +1 -1
- package/helpers/musicStyles/orders.js +1 -1
- package/helpers/{notifications.d.ts → notifications/index.d.ts} +4 -4
- package/helpers/{notifications.js → notifications/index.js} +3 -3
- package/helpers/notifications/placeholders.d.ts +4 -0
- package/helpers/notifications/placeholders.js +83 -0
- package/helpers/slate.d.ts +1 -0
- package/helpers/slate.js +18 -0
- package/helpers/utils.d.ts +4 -8
- package/helpers/utils.js +4 -94
- package/lang/ca.json +26 -35
- package/lang/de.json +27 -36
- package/lang/en.json +26 -35
- package/lang/es.json +26 -35
- package/lang/eu.json +26 -35
- package/lang/gl.json +28 -37
- package/lang/pt.json +26 -35
- package/models/Communication/index.js +2 -2
- package/models/User/Notification/index.js +3 -3
- package/package.json +3 -3
|
@@ -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.sortByMatch)(list, field, order);
|
|
19
19
|
};
|
|
20
20
|
exports.orderByMusicStyle = orderByMusicStyle;
|
|
@@ -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.sortByMatch)(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,
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { LanguagesTypes } from '../../lang';
|
|
2
|
+
import { MetaNotificationData } from '../../models/User/Notification/types';
|
|
3
|
+
export declare const replaceVarsBrackets: (string: string, values: MetaNotificationData) => string;
|
|
4
|
+
export declare const replaceKeysNotification: (text: string, values: MetaNotificationData, lang: LanguagesTypes) => string;
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.replaceKeysNotification = exports.replaceVarsBrackets = void 0;
|
|
7
|
+
const date_fns_1 = require("date-fns");
|
|
8
|
+
const date_fns_tz_1 = require("date-fns-tz");
|
|
9
|
+
const lodash_1 = require("lodash");
|
|
10
|
+
const lang_1 = require("../../lang");
|
|
11
|
+
const Instrument_1 = __importDefault(require("../../models/Instrument"));
|
|
12
|
+
var PlaceholderType;
|
|
13
|
+
(function (PlaceholderType) {
|
|
14
|
+
PlaceholderType["Instrument"] = "instrument";
|
|
15
|
+
PlaceholderType["Date"] = "date";
|
|
16
|
+
PlaceholderType["String"] = "string";
|
|
17
|
+
})(PlaceholderType || (PlaceholderType = {}));
|
|
18
|
+
const replaceVarsBrackets = (string, values) => {
|
|
19
|
+
const matches = string.match(/[^[\]]+(?=])/g);
|
|
20
|
+
let replaceString = string;
|
|
21
|
+
if (matches && matches.length > 0) {
|
|
22
|
+
matches.forEach((match) => {
|
|
23
|
+
replaceString = replaceString.replace(`[${match}]`, (0, lodash_1.get)(values, match));
|
|
24
|
+
});
|
|
25
|
+
}
|
|
26
|
+
return replaceString;
|
|
27
|
+
};
|
|
28
|
+
exports.replaceVarsBrackets = replaceVarsBrackets;
|
|
29
|
+
const getTypeAndPathFromPlaceholder = (placeholder) => {
|
|
30
|
+
const placeholderWithoutBrackets = placeholder.slice(1, -1);
|
|
31
|
+
const [type, key, formatValue] = placeholderWithoutBrackets.split(':');
|
|
32
|
+
const path = key.split('.');
|
|
33
|
+
return {
|
|
34
|
+
type: type,
|
|
35
|
+
path,
|
|
36
|
+
formatValue: (formatValue || 'shortDate'),
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
const replaceKeysNotification = (text, values, lang) => {
|
|
40
|
+
const placeholders = text.match(/(\{).+?(\})/g);
|
|
41
|
+
if (!placeholders || placeholders.length === 0) {
|
|
42
|
+
return text;
|
|
43
|
+
}
|
|
44
|
+
const { extra, ...entityObjects } = values;
|
|
45
|
+
const entityArrays = (0, lodash_1.mapValues)(entityObjects, (value) => value ? Object.values(value) : undefined);
|
|
46
|
+
const newValues = {
|
|
47
|
+
extra,
|
|
48
|
+
...entityArrays,
|
|
49
|
+
};
|
|
50
|
+
return placeholders.reduce((text, placeholder) => {
|
|
51
|
+
const { type, path, formatValue } = getTypeAndPathFromPlaceholder(placeholder);
|
|
52
|
+
switch (type) {
|
|
53
|
+
case PlaceholderType.Instrument: {
|
|
54
|
+
const instrumentId = (0, lodash_1.get)(newValues, path);
|
|
55
|
+
const instrument = new Instrument_1.default(instrumentId, lang);
|
|
56
|
+
if (!instrument)
|
|
57
|
+
return text;
|
|
58
|
+
return text.replace(placeholder, instrument.name.toLowerCase());
|
|
59
|
+
}
|
|
60
|
+
case PlaceholderType.Date: {
|
|
61
|
+
const lastPath = path.pop();
|
|
62
|
+
const [datetimeProp, timezoneProp] = lastPath
|
|
63
|
+
? lastPath.slice(1, -1).replace(' ', '').split(',')
|
|
64
|
+
: [];
|
|
65
|
+
const datetime = (0, lodash_1.get)(newValues, [...path, datetimeProp]);
|
|
66
|
+
if (!datetime)
|
|
67
|
+
return text.replace(placeholder, '');
|
|
68
|
+
const timezone = (0, lodash_1.get)(newValues, [...path, timezoneProp]) || 'Europe/Madrid';
|
|
69
|
+
const zonedDatetime = (0, date_fns_tz_1.utcToZonedTime)(datetime.toDate(), timezone);
|
|
70
|
+
const dateLang = (0, lang_1.getDateLang)(lang);
|
|
71
|
+
const dateFormat = (0, date_fns_1.format)(zonedDatetime, (0, lodash_1.get)(dateLang.format, formatValue), {
|
|
72
|
+
locale: dateLang.locale,
|
|
73
|
+
});
|
|
74
|
+
return text.replace(placeholder, dateFormat);
|
|
75
|
+
}
|
|
76
|
+
case PlaceholderType.String:
|
|
77
|
+
return text.replace(placeholder, (0, lodash_1.get)(newValues, path));
|
|
78
|
+
default:
|
|
79
|
+
return text;
|
|
80
|
+
}
|
|
81
|
+
}, text);
|
|
82
|
+
};
|
|
83
|
+
exports.replaceKeysNotification = replaceKeysNotification;
|
package/helpers/slate.d.ts
CHANGED
|
@@ -12,4 +12,5 @@ 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;
|
|
15
16
|
export {};
|
package/helpers/slate.js
CHANGED
|
@@ -1,2 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
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,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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;
|
|
1
|
+
export declare const sortByMatch: <T>(list: T[], field: keyof T, order: string[]) => T[];
|
|
2
|
+
export declare const enumToObj: (enumObject: Record<string, string>, defaultValue: string | number | boolean) => {
|
|
3
|
+
[k: string]: string | number | boolean;
|
|
4
|
+
};
|
package/helpers/utils.js
CHANGED
|
@@ -3,95 +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.enumToObj = exports.
|
|
7
|
-
const date_fns_1 = require("date-fns");
|
|
8
|
-
const date_fns_tz_1 = require("date-fns-tz");
|
|
6
|
+
exports.enumToObj = exports.sortByMatch = void 0;
|
|
9
7
|
const lodash_1 = require("lodash");
|
|
10
8
|
const get_1 = __importDefault(require("lodash/get"));
|
|
11
|
-
const
|
|
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) => {
|
|
9
|
+
const sortByMatch = (list, field, order) => {
|
|
95
10
|
const [match, noMatch] = (0, lodash_1.partition)(list, (item) => order.includes((0, get_1.default)(item, field)));
|
|
96
11
|
const sortedmatch = (0, lodash_1.sortBy)(match, [
|
|
97
12
|
(player) => order.indexOf((0, get_1.default)(player, field)),
|
|
@@ -100,11 +15,6 @@ const orderByMatch = (list, field, order) => {
|
|
|
100
15
|
const sortedNoMatch = (0, lodash_1.orderBy)(noMatch, field, 'asc');
|
|
101
16
|
return [...sortedmatch, ...sortedNoMatch];
|
|
102
17
|
};
|
|
103
|
-
exports.
|
|
104
|
-
const enumToObj = (enumObject, defaultValue) =>
|
|
105
|
-
return Object.values(enumObject).reduce((acc, key) => ({
|
|
106
|
-
...acc,
|
|
107
|
-
[key]: defaultValue,
|
|
108
|
-
}), {});
|
|
109
|
-
};
|
|
18
|
+
exports.sortByMatch = sortByMatch;
|
|
19
|
+
const enumToObj = (enumObject, defaultValue) => Object.fromEntries(Object.values(enumObject).map((key) => [key, defaultValue]));
|
|
110
20
|
exports.enumToObj = enumToObj;
|
package/lang/ca.json
CHANGED
|
@@ -19,15 +19,6 @@
|
|
|
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.",
|
|
31
22
|
"event": "Esdeveniment",
|
|
32
23
|
"group.delete.text": "El grupo {string:group.0.displayName} ha estat esborrat",
|
|
33
24
|
"group.delete.title": "Grup esborrat",
|
|
@@ -161,13 +152,13 @@
|
|
|
161
152
|
"performance.edit.stage.title": "Concert - pla modificat",
|
|
162
153
|
"performance.edit.title.text": "S'ha actualitzat el títol de {string:event.0.displayName}",
|
|
163
154
|
"performance.edit.title.title": "Acte - canvi de nom",
|
|
164
|
-
"performance.eveningReminder.confirm.text": "{string:event.0.displayName} de {string:group.0.displayName} demà a les {date:event.0.datetime:time}",
|
|
155
|
+
"performance.eveningReminder.confirm.text": "{string:event.0.displayName} de {string:group.0.displayName} demà a les {date:event.0.[datetime,timezone]:time}",
|
|
165
156
|
"performance.eveningReminder.confirm.title": "Recordatori acte",
|
|
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}",
|
|
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.[datetime,timezone]:time}",
|
|
167
158
|
"performance.eveningReminder.pending.title": "Recordatori acte",
|
|
168
|
-
"performance.morningReminder.confirm.text": "{string:event.0.displayName} de {string:group.0.displayName} avui a les {date:event.0.datetime:time}",
|
|
159
|
+
"performance.morningReminder.confirm.text": "{string:event.0.displayName} de {string:group.0.displayName} avui a les {date:event.0.[datetime,timezone]:time}",
|
|
169
160
|
"performance.morningReminder.confirm.title": "Recordatori acte",
|
|
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}",
|
|
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.[datetime,timezone]:time}",
|
|
171
162
|
"performance.morningReminder.pending.title": "Recordatori acte",
|
|
172
163
|
"performance.players.add.text": "T'han afegit a {string:event.0.displayName}",
|
|
173
164
|
"performance.players.add.title": "Nou acte",
|
|
@@ -178,47 +169,47 @@
|
|
|
178
169
|
"performance.rollCallReminder.text": "Ara es el millor moment per a passar llista",
|
|
179
170
|
"performance.rollCallReminder.title": "Pots passar llista a l'assaig",
|
|
180
171
|
"practice": "Assaig",
|
|
181
|
-
"practice.assistance.confirm.text": "{string:user.0.displayName} ha confirmat l'assistència a l'assaig del {date:event.0.datetime:date}",
|
|
172
|
+
"practice.assistance.confirm.text": "{string:user.0.displayName} ha confirmat l'assistència a l'assaig del {date:event.0.[datetime,timezone]:date}",
|
|
182
173
|
"practice.assistance.confirm.title": "Assistència confirmada",
|
|
183
|
-
"practice.assistance.decline.text": "{string:user.0.displayName} ha rebutjat l'assistència a l'assaig del {date:event.0.datetime:date}",
|
|
174
|
+
"practice.assistance.decline.text": "{string:user.0.displayName} ha rebutjat l'assistència a l'assaig del {date:event.0.[datetime,timezone]:date}",
|
|
184
175
|
"practice.assistance.decline.title": "Assistència rebutjada",
|
|
185
|
-
"practice.cancel.text": "S'ha cancel·lat l'assaig del {date:event.0.datetime:date} de {string:group.0.displayName}",
|
|
176
|
+
"practice.cancel.text": "S'ha cancel·lat l'assaig del {date:event.0.[datetime,timezone]:date} de {string:group.0.displayName}",
|
|
186
177
|
"practice.cancel.title": "Assaig cancel·lat",
|
|
187
|
-
"practice.create.text": "S'ha afegit un assaig de {string:group.0.displayName} el {date:event.0.datetime:datetime}",
|
|
178
|
+
"practice.create.text": "S'ha afegit un assaig de {string:group.0.displayName} el {date:event.0.[datetime,timezone]:datetime}",
|
|
188
179
|
"practice.create.title": "Nou assaig",
|
|
189
|
-
"practice.edit.attendance.text": "S'ha actualitzat el límit d'assistència del assaig de {date:event.0.datetime:date}",
|
|
180
|
+
"practice.edit.attendance.text": "S'ha actualitzat el límit d'assistència del assaig de {date:event.0.[datetime,timezone]:date}",
|
|
190
181
|
"practice.edit.attendance.title": "Assaig - límit d'assistència modificat",
|
|
191
|
-
"practice.edit.comments.text": "S0han actualitzat els comentaris del assaig de {date:event.0.datetime:date}",
|
|
182
|
+
"practice.edit.comments.text": "S0han actualitzat els comentaris del assaig de {date:event.0.[datetime,timezone]:date}",
|
|
192
183
|
"practice.edit.comments.title": "Assaig - comentaris actualitzats",
|
|
193
|
-
"practice.edit.datetime.text": "S'ha actualitzat l'horari de l'assaig del {date:event.0.datetime:date}",
|
|
184
|
+
"practice.edit.datetime.text": "S'ha actualitzat l'horari de l'assaig del {date:event.0.[datetime,timezone]:date}",
|
|
194
185
|
"practice.edit.datetime.title": "Assaig - canvi d'horari",
|
|
195
|
-
"practice.edit.locality.text": "S'ha actualitzat l'adreça de l'assaig del {date:event.0.datetime:date}",
|
|
186
|
+
"practice.edit.locality.text": "S'ha actualitzat l'adreça de l'assaig del {date:event.0.[datetime,timezone]:date}",
|
|
196
187
|
"practice.edit.locality.title": "Assaig - l'adreça ha canviat",
|
|
197
|
-
"practice.edit.repertory.text": "S'ha actualitzat el repertori del assaig del {date:event.0.datetime:date}",
|
|
188
|
+
"practice.edit.repertory.text": "S'ha actualitzat el repertori del assaig del {date:event.0.[datetime,timezone]:date}",
|
|
198
189
|
"practice.edit.repertory.title": "Assaig - actualització de repertori",
|
|
199
|
-
"practice.edit.stage.text": "El pla del assaig {date:event.0.datetime:date} ha estat actualitzat",
|
|
190
|
+
"practice.edit.stage.text": "El pla del assaig {date:event.0.[datetime,timezone]:date} ha estat actualitzat",
|
|
200
191
|
"practice.edit.stage.title": "Assaig - pla actualitzat",
|
|
201
|
-
"practice.edit.title.text": "S'ha actualitzat el títol de l'assaig del {date:event.0.datetime:date}",
|
|
192
|
+
"practice.edit.title.text": "S'ha actualitzat el títol de l'assaig del {date:event.0.[datetime,timezone]:date}",
|
|
202
193
|
"practice.edit.title.title": "Assaig - canvi de nom",
|
|
203
|
-
"practice.eveningReminder.confirm.text": "Assaig de {string:group.0.displayName} demà a les {date:event.0.datetime:time}",
|
|
194
|
+
"practice.eveningReminder.confirm.text": "Assaig de {string:group.0.displayName} demà a les {date:event.0.[datetime,timezone]:time}",
|
|
204
195
|
"practice.eveningReminder.confirm.title": "Recordatori assaig",
|
|
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}",
|
|
196
|
+
"practice.eveningReminder.pending.text": "Confirma l'assistència per l'assaig de {string:group.0.displayName} demà a les {date:event.0.[datetime,timezone]:time}",
|
|
206
197
|
"practice.eveningReminder.pending.title": "Recordatori assaig",
|
|
207
|
-
"practice.morningReminder.confirm.text": "Assaig de {string:group.0.displayName} avui a les {date:event.0.datetime:time}",
|
|
198
|
+
"practice.morningReminder.confirm.text": "Assaig de {string:group.0.displayName} avui a les {date:event.0.[datetime,timezone]:time}",
|
|
208
199
|
"practice.morningReminder.confirm.title": "Recordatori assaig",
|
|
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}",
|
|
200
|
+
"practice.morningReminder.pending.text": "Confirma l'assistència per l'assaig de {string:group.0.displayName} avui a les {date:event.0.[datetime,timezone]:time}",
|
|
210
201
|
"practice.morningReminder.pending.title": "Recordatori assaig",
|
|
211
|
-
"practice.players.add.text": "T'han afegit a un assaig de {string:group.0.displayName} programat pel {date:event.0.datetime:datetime}",
|
|
202
|
+
"practice.players.add.text": "T'han afegit a un assaig de {string:group.0.displayName} programat pel {date:event.0.[datetime,timezone]:datetime}",
|
|
212
203
|
"practice.players.add.title": "Nou assaig",
|
|
213
|
-
"practice.players.remove.text": "Has estat esborrat de l'assaig de {string:group.0.displayName} pel {date:event.0.datetime:date}",
|
|
204
|
+
"practice.players.remove.text": "Has estat esborrat de l'assaig de {string:group.0.displayName} pel {date:event.0.[datetime,timezone]:date}",
|
|
214
205
|
"practice.players.remove.title": "Assaig cancel·lat",
|
|
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}",
|
|
206
|
+
"practice.reminder.text": "És necessari que confirmes l'assistència a l'assaig del {date:event.0.[datetime,timezone]:datetime} de {string:group.0.displayName}",
|
|
216
207
|
"practice.reminder.title": "Recordatori per confirmar assistència",
|
|
217
208
|
"practice.rollCallReminder.text": "Ara es el millor moment per a passar llista",
|
|
218
209
|
"practice.rollCallReminder.title": "Pots passar llista al vostre darrer assaig",
|
|
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}",
|
|
210
|
+
"practices.cancel.text": "S'han cancel·lat {string:extra.num} assajos de {string:group.0.displayName} des del {date:event.0.[datetime,timezone]:shortDate} fins al {date:event.1.[datetime,timezone]:shortDate}",
|
|
220
211
|
"practices.cancel.title": "Assajos cancel·lats",
|
|
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}",
|
|
212
|
+
"practices.create.text": "S'han afegit {string:extra.num} assajos de {string:group.0.displayName} des del {date:event.0.[datetime,timezone]:shortDate} fins al {date:event.1.[datetime,timezone]:shortDate}",
|
|
222
213
|
"practices.create.title": "Nous assajos",
|
|
223
214
|
"practices.edit.attendance.text": "Una serie d'assajos han actualitzat el seu límit d'assistència",
|
|
224
215
|
"practices.edit.attendance.title": "Assajos - canvi de límit d'assistència",
|
|
@@ -234,9 +225,9 @@
|
|
|
234
225
|
"practices.edit.stage.title": "Assajos - pla actualitzat",
|
|
235
226
|
"practices.edit.title.text": "Una serie d'assajos han actualitzat el seu títol",
|
|
236
227
|
"practices.edit.title.title": "Assajos - canvi de nom",
|
|
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}",
|
|
228
|
+
"practices.players.add.text": "Us han afegit a una sèrie d'assajos entre {date:event.0.[datetime,timezone]:shortDate} i {date:event.1.[datetime,timezone]:shortDate}",
|
|
238
229
|
"practices.players.add.title": "Nous assajos",
|
|
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}",
|
|
230
|
+
"practices.players.remove.text": "Us han eliminat d'una sèrie d'assajos entre {date:event.0.[datetime,timezone]:shortDate} i {date:event.1.[datetime,timezone]:shortDate}",
|
|
240
231
|
"practices.players.remove.title": "Assajos eliminats",
|
|
241
232
|
"repertoireTags.1": "1r",
|
|
242
233
|
"repertoireTags.2": "2n",
|
package/lang/de.json
CHANGED
|
@@ -19,15 +19,6 @@
|
|
|
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.",
|
|
31
22
|
"event": "Veranstaltung",
|
|
32
23
|
"group.delete.text": "Die Gruppe {string:group.0.displayName} wurde gelöscht",
|
|
33
24
|
"group.delete.title": "Gruppe gelöscht",
|
|
@@ -161,13 +152,13 @@
|
|
|
161
152
|
"performance.edit.stage.title": "Auftritt - Sitzplan hat sich geändert",
|
|
162
153
|
"performance.edit.title.text": "Der Titel von {string:event.0.displayName} wurde aktualisiert",
|
|
163
154
|
"performance.edit.title.title": "Auftritt - Der Titel wurde geändert",
|
|
164
|
-
"performance.eveningReminder.confirm.text": "{string:event.0.displayName} von {string:group.0.displayName} morgen um {date:event.0.datetime:time}",
|
|
155
|
+
"performance.eveningReminder.confirm.text": "{string:event.0.displayName} von {string:group.0.displayName} morgen um {date:event.0.[datetime,timezone]:time}",
|
|
165
156
|
"performance.eveningReminder.confirm.title": "Auftritt-Erinnerung",
|
|
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}",
|
|
157
|
+
"performance.eveningReminder.pending.text": "Bestätige deine Teilnahme an {string:event.0.displayName} von {string:group.0.displayName} morgen um {date:event.0.[datetime,timezone]:time}",
|
|
167
158
|
"performance.eveningReminder.pending.title": "Auftritt-Erinnerung",
|
|
168
|
-
"performance.morningReminder.confirm.text": "{string:event.0.displayName} von {string:group.0.displayName} heute um {date:event.0.datetime:time}",
|
|
159
|
+
"performance.morningReminder.confirm.text": "{string:event.0.displayName} von {string:group.0.displayName} heute um {date:event.0.[datetime,timezone]:time}",
|
|
169
160
|
"performance.morningReminder.confirm.title": "Auftritt-Erinnerung",
|
|
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}",
|
|
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.[datetime,timezone]:time}",
|
|
171
162
|
"performance.morningReminder.pending.title": "Auftritt-Erinnerung",
|
|
172
163
|
"performance.players.add.text": "Du wurdest zu {string:event.0.displayName} hinzugefügt",
|
|
173
164
|
"performance.players.add.title": "Neuer Auftritt\n",
|
|
@@ -178,47 +169,47 @@
|
|
|
178
169
|
"performance.rollCallReminder.text": "Jetzt ist der beste Moment, um zu überprüfen, wer an der Probe teilgenommen hat.",
|
|
179
170
|
"performance.rollCallReminder.title": "Du kannst die Anwesenheit zur Probe überprüfen",
|
|
180
171
|
"practice": "Probe\n",
|
|
181
|
-
"practice.assistance.confirm.text": "{string:user.0.displayName} hat die Teilnahme an der Probe am {date:event.0.datetime:date} bestätigt",
|
|
172
|
+
"practice.assistance.confirm.text": "{string:user.0.displayName} hat die Teilnahme an der Probe am {date:event.0.[datetime,timezone]:date} bestätigt",
|
|
182
173
|
"practice.assistance.confirm.title": "Teilnahme bestätigt",
|
|
183
|
-
"practice.assistance.decline.text": "{string:user.0.displayName} hat die Teilnahme an der Probe am {date:event.0.datetime:date} abgelehnt",
|
|
174
|
+
"practice.assistance.decline.text": "{string:user.0.displayName} hat die Teilnahme an der Probe am {date:event.0.[datetime,timezone]:date} abgelehnt",
|
|
184
175
|
"practice.assistance.decline.title": "Teilnahme abgelehnt",
|
|
185
|
-
"practice.cancel.text": "Die Probe von {string:group.0.displayName} für {date:event.0.datetime:date} wurde abgesagt",
|
|
176
|
+
"practice.cancel.text": "Die Probe von {string:group.0.displayName} für {date:event.0.[datetime,timezone]:date} wurde abgesagt",
|
|
186
177
|
"practice.cancel.title": "Die Probe wurde abgesagt",
|
|
187
|
-
"practice.create.text": "Eine neue Probe von {string:group.0.displayName} am {date:event.0.datetime:datetime} wurde hinzugefügt",
|
|
178
|
+
"practice.create.text": "Eine neue Probe von {string:group.0.displayName} am {date:event.0.[datetime,timezone]:datetime} wurde hinzugefügt",
|
|
188
179
|
"practice.create.title": "Neue Probe",
|
|
189
|
-
"practice.edit.attendance.text": "Das Teilnahmelimit für die Probe am {date:event.0.datetime:date} wurde aktualisiert",
|
|
180
|
+
"practice.edit.attendance.text": "Das Teilnahmelimit für die Probe am {date:event.0.[datetime,timezone]:date} wurde aktualisiert",
|
|
190
181
|
"practice.edit.attendance.title": "Probe - Das Teilnahmelimit wurde geändert",
|
|
191
|
-
"practice.edit.comments.text": "Die Beschreibung der Probe am {date:event.0.datetime:date} wurden aktualisiert",
|
|
182
|
+
"practice.edit.comments.text": "Die Beschreibung der Probe am {date:event.0.[datetime,timezone]:date} wurden aktualisiert",
|
|
192
183
|
"practice.edit.comments.title": "Probe - Die Beschreibung wurde geändert",
|
|
193
|
-
"practice.edit.datetime.text": "Die Probenzeit für {date:event.0.datetime:date} wurde aktualisiert",
|
|
184
|
+
"practice.edit.datetime.text": "Die Probenzeit für {date:event.0.[datetime,timezone]:date} wurde aktualisiert",
|
|
194
185
|
"practice.edit.datetime.title": "Probe - Der Zeitplan wurde geändert",
|
|
195
|
-
"practice.edit.locality.text": "Die Anschrift der Probe am {date:event.0.datetime:date} wurde aktualisiert",
|
|
186
|
+
"practice.edit.locality.text": "Die Anschrift der Probe am {date:event.0.[datetime,timezone]:date} wurde aktualisiert",
|
|
196
187
|
"practice.edit.locality.title": "Die Anschrift der Probe wurde geändert",
|
|
197
|
-
"practice.edit.repertory.text": "Die Noten der Probe für {date:event.0.datetime:date} wurden aktualisiert",
|
|
188
|
+
"practice.edit.repertory.text": "Die Noten der Probe für {date:event.0.[datetime,timezone]:date} wurden aktualisiert",
|
|
198
189
|
"practice.edit.repertory.title": "Probe - Die Noten wurden geändert",
|
|
199
|
-
"practice.edit.stage.text": "Die Sitzplan für die Probe {date:event.0.datetime:date} wurde aktualisiert",
|
|
190
|
+
"practice.edit.stage.text": "Die Sitzplan für die Probe {date:event.0.[datetime,timezone]:date} wurde aktualisiert",
|
|
200
191
|
"practice.edit.stage.title": "Probe - Sitzplan geändert",
|
|
201
|
-
"practice.edit.title.text": "Der Probentitel für {date:event.0.datetime:date} wurde aktualisiert",
|
|
192
|
+
"practice.edit.title.text": "Der Probentitel für {date:event.0.[datetime,timezone]:date} wurde aktualisiert",
|
|
202
193
|
"practice.edit.title.title": "Probe - Der Titel wurde geändert",
|
|
203
|
-
"practice.eveningReminder.confirm.text": "Probe von {string:group.0.displayName} morgen um {date:event.0.datetime:time}",
|
|
194
|
+
"practice.eveningReminder.confirm.text": "Probe von {string:group.0.displayName} morgen um {date:event.0.[datetime,timezone]:time}",
|
|
204
195
|
"practice.eveningReminder.confirm.title": "Probe-Erinnerung",
|
|
205
|
-
"practice.eveningReminder.pending.text": "Bestätige deine Teilnahme an der Probe von {string:group.0.displayName} morgen um {date:event.0.datetime:time}",
|
|
196
|
+
"practice.eveningReminder.pending.text": "Bestätige deine Teilnahme an der Probe von {string:group.0.displayName} morgen um {date:event.0.[datetime,timezone]:time}",
|
|
206
197
|
"practice.eveningReminder.pending.title": "Probe-Erinnerung",
|
|
207
|
-
"practice.morningReminder.confirm.text": "Probe von {string:group.0.displayName} heute um {date:event.0.datetime:time}",
|
|
198
|
+
"practice.morningReminder.confirm.text": "Probe von {string:group.0.displayName} heute um {date:event.0.[datetime,timezone]:time}",
|
|
208
199
|
"practice.morningReminder.confirm.title": "Probe-Erinnerung",
|
|
209
|
-
"practice.morningReminder.pending.text": "Bestätige deine Teilnahme an der {string:group.0.displayName}-Probe noch heute um {date:event.0.datetime:time}",
|
|
200
|
+
"practice.morningReminder.pending.text": "Bestätige deine Teilnahme an der {string:group.0.displayName}-Probe noch heute um {date:event.0.[datetime,timezone]:time}",
|
|
210
201
|
"practice.morningReminder.pending.title": "Probe-Erinnerung",
|
|
211
|
-
"practice.players.add.text": "Du wurdest zu einer Probe von {string:group.0.displayName} für {date:event.0.datetime:datetime} hinzugefügt.",
|
|
202
|
+
"practice.players.add.text": "Du wurdest zu einer Probe von {string:group.0.displayName} für {date:event.0.[datetime,timezone]:datetime} hinzugefügt.",
|
|
212
203
|
"practice.players.add.title": "Neue Probe",
|
|
213
|
-
"practice.players.remove.text": "Du wurdest von der Probe von {string:group.0.displayName} am {date:event.0.datetime:date} entfernt",
|
|
204
|
+
"practice.players.remove.text": "Du wurdest von der Probe von {string:group.0.displayName} am {date:event.0.[datetime,timezone]:date} entfernt",
|
|
214
205
|
"practice.players.remove.title": "Die Probe wurde abgesagt",
|
|
215
|
-
"practice.reminder.text": "Du musst bitte die Teilnahme am {date:event.0.datetime:datetime} von {string:group.0.displayName} bestätigen",
|
|
206
|
+
"practice.reminder.text": "Du musst bitte die Teilnahme am {date:event.0.[datetime,timezone]:datetime} von {string:group.0.displayName} bestätigen",
|
|
216
207
|
"practice.reminder.title": "Erinnerung zur Bestätigung der Teilnahme",
|
|
217
208
|
"practice.rollCallReminder.text": "Jetzt ist der beste Moment, um zu überprüfen, wer an der Probe teilgenommen hat.",
|
|
218
209
|
"practice.rollCallReminder.title": "Du kannst die Anwesenheit zu deiner letzten Probe überprüfen",
|
|
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",
|
|
210
|
+
"practices.cancel.text": "{string:extra.num} Proben von {string:group.0.displayName} zwischen {date:event.0.[datetime,timezone]:shortDate} und {date:event.1.[datetime,timezone]:shortDate} wurden abgesagt",
|
|
220
211
|
"practices.cancel.title": "Proben abgesagt",
|
|
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",
|
|
212
|
+
"practices.create.text": "{string:extra.num} neue Proben von {string:group.0.displayName} zwischen {date:event.0.[datetime,timezone]:shortDate} und {date:event.1.[datetime,timezone]:shortDate} wurden hinzugefügt",
|
|
222
213
|
"practices.create.title": "Neue Proben",
|
|
223
214
|
"practices.edit.attendance.text": "Das Teilnahmelimit einer Reihe von Proben wurde aktualisiert",
|
|
224
215
|
"practices.edit.attendance.title": "Probe - Das Teilnahmelimit wurde geändert",
|
|
@@ -234,9 +225,9 @@
|
|
|
234
225
|
"practices.edit.stage.title": "Proben - Sitzplan geändert",
|
|
235
226
|
"practices.edit.title.text": "Der Titel einer Reihe von Proben wurde aktualisiert",
|
|
236
227
|
"practices.edit.title.title": "Probe - Der Titel wurde geändert",
|
|
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.",
|
|
228
|
+
"practices.players.add.text": "Du wurdest zu einer Reihe von Proben von {date:event.0.[datetime,timezone]:shortDate} bis {date:event.1.[datetime,timezone]:shortDate} hinzugefügt.",
|
|
238
229
|
"practices.players.add.title": "Neue Proben",
|
|
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.",
|
|
230
|
+
"practices.players.remove.text": "Du wurdest aus einer Reihe von Proben von {date:event.0.[datetime,timezone]:shortDate} bis {date:event.1.[datetime,timezone]:shortDate} entfernt.",
|
|
240
231
|
"practices.players.remove.title": "Die Proben wurden entfernt",
|
|
241
232
|
"repertoireTags.1": "1.",
|
|
242
233
|
"repertoireTags.2": "2.",
|
|
@@ -246,6 +237,6 @@
|
|
|
246
237
|
"sections.all": "Alle",
|
|
247
238
|
"theme.claim.new.text": "{string:user.0.displayName} fordert eine Überprüfung der Noten für {instrument:extra.instrumentId} von \"{string:extra.title}\"",
|
|
248
239
|
"theme.claim.new.title": "Ein Musiker hat eine Überprüfung der Noten angefordert",
|
|
249
|
-
"theme.claim.update.text": "{instrument:extra.
|
|
240
|
+
"theme.claim.update.text": "{instrument:extra.instrumentId} -Noten des Stücks \"{string:extra.title}\" wurden hinzugefügt.",
|
|
250
241
|
"theme.claim.update.title": "Neue {instrument:extra.instrumentId} -Noten"
|
|
251
242
|
}
|