@antscorp/antsomi-ui 1.3.5-beta.782 → 1.3.5-beta.783
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/es/components/molecules/AddDynamicContent/components/DisplayFormat/DisplayFormat.d.ts +0 -1
- package/es/components/molecules/TagifyInput/TagifyInput.js +79 -29
- package/es/components/molecules/TagifyInput/constants.js +2 -1
- package/es/components/molecules/TagifyInput/errorWrapper.js +2 -2
- package/es/components/molecules/TagifyInput/hooks/index.d.ts +1 -0
- package/es/components/molecules/TagifyInput/hooks/index.js +1 -0
- package/es/components/molecules/TagifyInput/hooks/useSettingsTagify.d.ts +7 -0
- package/es/components/molecules/TagifyInput/hooks/useSettingsTagify.js +30 -0
- package/es/components/molecules/TagifyInput/patternHandlers.d.ts +5 -1
- package/es/components/molecules/TagifyInput/patternHandlers.js +8 -8
- package/es/components/molecules/TagifyInput/types.d.ts +7 -6
- package/es/components/molecules/TagifyInput/utils.d.ts +6 -4
- package/es/components/molecules/TagifyInput/utils.js +7 -5
- package/es/components/template/TemplateListing/Loadable.d.ts +0 -1
- package/es/locales/en/google-sheet.json +9 -2
- package/es/locales/i18n.d.ts +21 -0
- package/es/locales/ja/google-sheet.json +62 -55
- package/es/locales/vi/google-sheet.json +8 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@ import { useDeepCompareMemo } from '@antscorp/antsomi-ui/es/hooks/useDeepCompare
|
|
|
7
7
|
import { useDebounce } from '@antscorp/antsomi-ui/es/hooks/useDebounce';
|
|
8
8
|
import { useUpdateEffect } from '@antscorp/antsomi-ui/es/hooks/useUpdateEffect';
|
|
9
9
|
import { useDeepCompareEffect } from '@antscorp/antsomi-ui/es/hooks/useDeepCompareEffect';
|
|
10
|
+
import { useSettingsTagify } from './hooks';
|
|
10
11
|
// Components
|
|
11
12
|
import Tagify from '@yaireo/tagify';
|
|
12
13
|
// Css
|
|
@@ -14,15 +15,16 @@ import '@yaireo/tagify/dist/tagify.css';
|
|
|
14
15
|
// Styled
|
|
15
16
|
import { TagTextArea, TagifyWrapper, WrapperPlaceHolder } from './styled';
|
|
16
17
|
// Utils
|
|
17
|
-
import { parseTagStringToTagify, convertInputStringToOriginal, emojiManufacturer, getEmojiTag, } from './utils';
|
|
18
|
+
import { parseTagStringToTagify, convertInputStringToOriginal, emojiManufacturer, getEmojiTag, isPersonalizeTagType, } from './utils';
|
|
19
|
+
import { acceptablePatternChecking, getCachedRegex, getPersonalizeTagInfo, patternHandlers, } from './patternHandlers';
|
|
18
20
|
// Constants
|
|
19
|
-
import { EMOJI, defaultCssVariables, tagifyDefaultProps } from './constants';
|
|
21
|
+
import { EMOJI, PERSONALIZE_PTN, SHORT_LINK, defaultCssVariables, tagifyDefaultProps, } from './constants';
|
|
20
22
|
const TagifyInput = forwardRef((props, ref) => {
|
|
21
23
|
// Props
|
|
22
|
-
const {
|
|
24
|
+
const { initialValue, readonly, disabled, maxLength, placeholder, acceptableTagPattern, mapAttributes, maxPersonalizeTags, name, children, cssTagifyVariables, onTagClick, onChange, } = props;
|
|
23
25
|
console.count('------------ re-render ------------');
|
|
24
26
|
// States
|
|
25
|
-
const [
|
|
27
|
+
const [inputTypeDebounce, , setInputTyping] = useDebounce(initialValue, 450);
|
|
26
28
|
// Refs
|
|
27
29
|
const inputRef = useRef(null);
|
|
28
30
|
const tagifyRef = useRef(null);
|
|
@@ -30,20 +32,22 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
30
32
|
const placeHolderRef = useRef(null);
|
|
31
33
|
// Memoizations
|
|
32
34
|
const cssVariablesMemoized = useMemo(() => _.assign({}, defaultCssVariables, cssTagifyVariables || {}), [cssTagifyVariables]);
|
|
33
|
-
const
|
|
35
|
+
const parsedDefaultValue = useDeepCompareMemo(() => parseTagStringToTagify(initialValue, acceptableTagPattern), [initialValue, acceptableTagPattern]);
|
|
34
36
|
// Expose some methods
|
|
35
37
|
useImperativeHandle(ref, () => ({
|
|
36
38
|
onAddNewTag: (newTag) => {
|
|
37
39
|
if (newTag && tagifyRef.current) {
|
|
38
|
-
const { settings } = tagifyRef.current;
|
|
39
|
-
const { readonly } = settings;
|
|
40
|
+
const { settings, value: currentTags } = tagifyRef.current;
|
|
41
|
+
const { readonly, maxTags } = settings;
|
|
42
|
+
const currentPersonalizeTags = currentTags.filter(tag => ![EMOJI, SHORT_LINK].includes(tag.type));
|
|
43
|
+
const currentPersonalizeTagsLength = currentPersonalizeTags.length;
|
|
40
44
|
// Check readonly
|
|
41
45
|
if (readonly)
|
|
42
46
|
return;
|
|
43
47
|
// For case add new common emoji
|
|
44
48
|
if (typeof newTag === 'string') {
|
|
45
49
|
tagifyRef.current.injectAtCaret(newTag);
|
|
46
|
-
// Need to
|
|
50
|
+
// Need to re-select to keep the caret position
|
|
47
51
|
const selection = window.getSelection();
|
|
48
52
|
if (selection?.rangeCount) {
|
|
49
53
|
const range = selection.getRangeAt(0);
|
|
@@ -52,21 +56,26 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
52
56
|
}
|
|
53
57
|
}
|
|
54
58
|
else {
|
|
59
|
+
// In case add new common tag
|
|
55
60
|
const { type } = newTag;
|
|
56
|
-
|
|
61
|
+
/*
|
|
62
|
+
* Validate the max limit before add new tag
|
|
63
|
+
* For emoji and short link, it will be passed
|
|
64
|
+
*/
|
|
65
|
+
if (![EMOJI, SHORT_LINK].includes(type) &&
|
|
66
|
+
currentPersonalizeTagsLength >= maxTags)
|
|
67
|
+
return;
|
|
68
|
+
// Create new tag
|
|
57
69
|
const newTagEle = tagifyRef.current.createTagElem(newTag);
|
|
70
|
+
// Add new tag
|
|
58
71
|
tagifyRef.current.injectAtCaret(newTagEle);
|
|
59
72
|
// Change data out before place the caret to keep valid caret positioning
|
|
60
73
|
const inputValue = tagifyRef.current.getInputValue();
|
|
61
74
|
const convertedValue = convertInputStringToOriginal(inputValue);
|
|
62
75
|
onChange(convertedValue);
|
|
63
|
-
if
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
tagifyRef.current.placeCaretAfterNode(newTagEle);
|
|
69
|
-
}
|
|
76
|
+
// NOTE: place to refactor if not need to add space after the tag
|
|
77
|
+
const spaceEle = tagifyRef.current.insertAfterTag(newTagEle, '\u00A0'); // <- adds space after the tag
|
|
78
|
+
tagifyRef.current.placeCaretAfterNode(spaceEle);
|
|
70
79
|
}
|
|
71
80
|
}
|
|
72
81
|
},
|
|
@@ -136,17 +145,19 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
136
145
|
templates: {
|
|
137
146
|
tag: customizeTag,
|
|
138
147
|
},
|
|
139
|
-
maxTags,
|
|
140
|
-
readonly,
|
|
141
148
|
mode: 'mix',
|
|
142
|
-
placeholder,
|
|
149
|
+
placeholder: 'Enter your text...',
|
|
143
150
|
mixMode: {
|
|
144
151
|
insertAfterTag: '', // Not insert anything after tag
|
|
145
152
|
},
|
|
146
153
|
tagTextProp: 'label', // Use `tagify.label` to display the tags
|
|
147
154
|
enforceWhitelist: false, // Ensure that tags not in the whitelist can be added
|
|
148
155
|
duplicates: true, // Allow duplicate tags
|
|
149
|
-
editTags: false, //
|
|
156
|
+
editTags: false, // Not allow tag editing
|
|
157
|
+
dropdown: {
|
|
158
|
+
enabled: false, // Do not display the dropdown
|
|
159
|
+
},
|
|
160
|
+
pattern: /^$a/, // -> using this regex never match any character to "prevent" add new tag when press enter
|
|
150
161
|
hooks: {
|
|
151
162
|
beforeKeyDown: (event, data) => {
|
|
152
163
|
/*
|
|
@@ -174,7 +185,7 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
174
185
|
},
|
|
175
186
|
});
|
|
176
187
|
}
|
|
177
|
-
}, [
|
|
188
|
+
}, [maxLength, customizeTag]);
|
|
178
189
|
// Initialization tagify
|
|
179
190
|
useLayoutEffect(() => {
|
|
180
191
|
initializeTagify();
|
|
@@ -184,14 +195,53 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
184
195
|
}
|
|
185
196
|
};
|
|
186
197
|
}, [initializeTagify]);
|
|
187
|
-
//
|
|
198
|
+
// Settings some tagify attributes
|
|
199
|
+
useSettingsTagify(tagifyRef.current, {
|
|
200
|
+
disabled,
|
|
201
|
+
readonly,
|
|
202
|
+
maxPersonalizeTags,
|
|
203
|
+
placeholder,
|
|
204
|
+
});
|
|
205
|
+
/*
|
|
206
|
+
* Need to sync label of the tags if any map attribute is changed to make correct label
|
|
207
|
+
* */
|
|
188
208
|
useDeepCompareEffect(() => {
|
|
189
209
|
if (!_.isEmpty(mapAttributes) && tagifyRef.current) {
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
210
|
+
const tagElements = tagifyRef.current.getTagElms();
|
|
211
|
+
const { pattern, name: cachePatternName, acceptablePattern: acceptableType, } = patternHandlers[PERSONALIZE_PTN];
|
|
212
|
+
tagElements.forEach(tagElement => {
|
|
213
|
+
const { __tagifyTagData: tagData } = tagElement;
|
|
214
|
+
if (tagData) {
|
|
215
|
+
const { type, value } = tagData;
|
|
216
|
+
const isPersonalTag = isPersonalizeTagType(type);
|
|
217
|
+
if (isPersonalTag && value) {
|
|
218
|
+
const isAccepted = acceptablePatternChecking(acceptableType, acceptableTagPattern);
|
|
219
|
+
// No need to continue if pattern is not accepted
|
|
220
|
+
if (!isAccepted)
|
|
221
|
+
return;
|
|
222
|
+
// Use the cached regex instead of creating a new one each time
|
|
223
|
+
const regex = getCachedRegex(pattern, 'g', cachePatternName);
|
|
224
|
+
let match;
|
|
225
|
+
// Iterate over matches of the current pattern
|
|
226
|
+
// eslint-disable-next-line no-cond-assign
|
|
227
|
+
while ((match = regex.exec(value)) !== null) {
|
|
228
|
+
const [, personalizeContent] = match;
|
|
229
|
+
const [tagCode] = personalizeContent.split('||');
|
|
230
|
+
const { label: tagLabel } = getPersonalizeTagInfo(tagCode, mapAttributes);
|
|
231
|
+
const tagTextNode = tagifyRef.current?.getTagTextNode(tagElement);
|
|
232
|
+
if (tagTextNode) {
|
|
233
|
+
/*
|
|
234
|
+
* Just only update to the correct text of the tag
|
|
235
|
+
* NOTE: Do not actually affect raw data
|
|
236
|
+
*/
|
|
237
|
+
tagTextNode.textContent = tagLabel;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
});
|
|
193
243
|
}
|
|
194
|
-
}, [mapAttributes]);
|
|
244
|
+
}, [mapAttributes, acceptableTagPattern]);
|
|
195
245
|
// Listen to Tagify events
|
|
196
246
|
useEffect(() => {
|
|
197
247
|
const { current: tagifyInstance } = tagifyRef || {};
|
|
@@ -210,9 +260,9 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
210
260
|
};
|
|
211
261
|
}, [onTagItemClick, onTagifyTyping, onTagifyRemoved]);
|
|
212
262
|
useUpdateEffect(() => {
|
|
213
|
-
const convertedValue = convertInputStringToOriginal(
|
|
263
|
+
const convertedValue = convertInputStringToOriginal(inputTypeDebounce);
|
|
214
264
|
onChange(convertedValue);
|
|
215
|
-
}, [
|
|
265
|
+
}, [inputTypeDebounce]);
|
|
216
266
|
useEffect(() => {
|
|
217
267
|
if (!tagifyRef.current?.DOM.scope)
|
|
218
268
|
return;
|
|
@@ -241,7 +291,7 @@ const TagifyInput = forwardRef((props, ref) => {
|
|
|
241
291
|
}
|
|
242
292
|
};
|
|
243
293
|
}, []);
|
|
244
|
-
return (_jsxs(TagifyWrapper, { ref: tagifyWrapperRef, "$cssTagifyVariables": cssVariablesMemoized, className: "tagify-container", id: "tagify-container", "data-test": "tagify-wrapper", children: [_jsx(TagTextArea, { id: "tagify-textarea", ref: inputRef, name: name, defaultValue:
|
|
294
|
+
return (_jsxs(TagifyWrapper, { ref: tagifyWrapperRef, "$cssTagifyVariables": cssVariablesMemoized, className: "tagify-container", id: "tagify-container", "data-test": "tagify-wrapper", children: [_jsx(TagTextArea, { id: "tagify-textarea", ref: inputRef, name: name, defaultValue: parsedDefaultValue, "data-test": "tagify-input" }), _jsx(WrapperPlaceHolder, { ref: placeHolderRef, "$isShow": !!children, children: children })] }));
|
|
245
295
|
});
|
|
246
296
|
TagifyInput.defaultProps = tagifyDefaultProps;
|
|
247
297
|
export default memo(TagifyInput);
|
|
@@ -36,9 +36,10 @@ export const DEFAULT_ACCEPT_TAGS = [
|
|
|
36
36
|
LINE_EMOJI_PTN,
|
|
37
37
|
];
|
|
38
38
|
export const tagifyDefaultProps = {
|
|
39
|
-
|
|
39
|
+
initialValue: '',
|
|
40
40
|
name: 'tagifyInput',
|
|
41
41
|
readonly: false,
|
|
42
|
+
disabled: false,
|
|
42
43
|
placeholder: undefined,
|
|
43
44
|
acceptableTagPattern: DEFAULT_ACCEPT_TAGS,
|
|
44
45
|
onChange: () => { },
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useSettingsTagify';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useSettingsTagify';
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="yaireo__tagify" />
|
|
2
|
+
import Tagify from '@yaireo/tagify';
|
|
3
|
+
import type { TagDataCustomize, TagifyInputProps } from '../types';
|
|
4
|
+
type TagifyInstanceProps = Tagify<TagDataCustomize> | null;
|
|
5
|
+
type SettingsTagifyProps = Pick<TagifyInputProps, 'readonly' | 'disabled' | 'placeholder' | 'maxPersonalizeTags'>;
|
|
6
|
+
export declare const useSettingsTagify: (tagifyInstance: TagifyInstanceProps, settings: SettingsTagifyProps) => void;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/* eslint-disable react-hooks/exhaustive-deps */
|
|
2
|
+
// Libraries
|
|
3
|
+
import { useLayoutEffect } from 'react';
|
|
4
|
+
export const useSettingsTagify = (tagifyInstance, settings) => {
|
|
5
|
+
const { readonly, disabled, placeholder, maxPersonalizeTags } = settings;
|
|
6
|
+
// Set read only
|
|
7
|
+
useLayoutEffect(() => {
|
|
8
|
+
if (tagifyInstance && typeof readonly !== 'undefined') {
|
|
9
|
+
tagifyInstance.setReadonly(readonly);
|
|
10
|
+
}
|
|
11
|
+
}, [readonly]);
|
|
12
|
+
// Set disabled
|
|
13
|
+
useLayoutEffect(() => {
|
|
14
|
+
if (tagifyInstance && typeof disabled !== 'undefined') {
|
|
15
|
+
tagifyInstance.setDisabled(disabled);
|
|
16
|
+
}
|
|
17
|
+
}, [disabled]);
|
|
18
|
+
// Set placeholder
|
|
19
|
+
useLayoutEffect(() => {
|
|
20
|
+
if (tagifyInstance && typeof placeholder !== 'undefined') {
|
|
21
|
+
tagifyInstance.setPlaceholder(placeholder);
|
|
22
|
+
}
|
|
23
|
+
}, [placeholder]);
|
|
24
|
+
// Set max personalize tags
|
|
25
|
+
useLayoutEffect(() => {
|
|
26
|
+
if (tagifyInstance && typeof maxPersonalizeTags !== 'undefined') {
|
|
27
|
+
tagifyInstance.settings.maxTags = maxPersonalizeTags;
|
|
28
|
+
}
|
|
29
|
+
}, [maxPersonalizeTags]);
|
|
30
|
+
};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AcceptablePattern, PatterTagName, PatternHandlerWrapper } from './types';
|
|
1
|
+
import type { AcceptablePattern, MapAttributesProps, PatterTagName, PatternHandlerWrapper } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Retrieves a cached regular expression or compiles and caches it if not found.
|
|
4
4
|
* @param pattern The regex pattern string.
|
|
@@ -10,4 +10,8 @@ export declare function getCachedRegex(pattern: string, flags?: string, cacheKey
|
|
|
10
10
|
export declare const tagRegexStringPattern = "\\[\\[({.*?})\\]\\]";
|
|
11
11
|
export declare function acceptablePatternChecking(pattern: AcceptablePattern, acceptablePattern: Array<AcceptablePattern>): boolean;
|
|
12
12
|
export declare function validateURL(txt: string): boolean;
|
|
13
|
+
export declare const getPersonalizeTagInfo: (originalTag: string, mapAttributes?: MapAttributesProps) => {
|
|
14
|
+
label: string;
|
|
15
|
+
type: string;
|
|
16
|
+
};
|
|
13
17
|
export declare const patternHandlers: Record<PatterTagName, PatternHandlerWrapper>;
|
|
@@ -38,7 +38,7 @@ export function validateURL(txt) {
|
|
|
38
38
|
const regexUrl = getCachedRegex('^(https?:\\/\\/)?(([A-Za-z]{3,9}:)?(\\/\\/)?(?:[-;:&=+$,\\w]+@)?[A-Za-z0-9.-]+|(?:www\\.|[-;:&=+$,\\w]+@)[A-Za-z0-9.-]+)((\\/[+~%\\/\\.\\w-_]*)*(?:\\?[-+=&;%@\\.\\w_]*)?(#(?:[.!\\/\\\\\\w-]*)?)?)$', '', 'checkingURL');
|
|
39
39
|
return regexUrl.test(txt);
|
|
40
40
|
}
|
|
41
|
-
const getPersonalizeTagInfo = (originalTag, mapAttributes) => {
|
|
41
|
+
export const getPersonalizeTagInfo = (originalTag, mapAttributes) => {
|
|
42
42
|
try {
|
|
43
43
|
const [type, attributeName] = originalTag.split('.');
|
|
44
44
|
if (!mapAttributes || !mapAttributes[type]) {
|
|
@@ -87,7 +87,7 @@ const handleShortlinkIndividualPattern = match => {
|
|
|
87
87
|
const tag = createTagPattern({
|
|
88
88
|
label,
|
|
89
89
|
type: SHORT_LINK,
|
|
90
|
-
|
|
90
|
+
shortlinkType: SHORT_LINK_TYPE.INDIVIDUAL,
|
|
91
91
|
value: fullMatch,
|
|
92
92
|
});
|
|
93
93
|
return { isValid, tag };
|
|
@@ -114,7 +114,7 @@ const handleShortlinkGeneralPattern = match => {
|
|
|
114
114
|
const tag = createTagPattern({
|
|
115
115
|
label,
|
|
116
116
|
type: SHORT_LINK,
|
|
117
|
-
|
|
117
|
+
shortlinkType: SHORT_LINK_TYPE.GENERAL,
|
|
118
118
|
value: fullMatch,
|
|
119
119
|
});
|
|
120
120
|
return { isValid, tag };
|
|
@@ -140,17 +140,17 @@ const handleLinePattern = match => {
|
|
|
140
140
|
/*
|
|
141
141
|
* Function to handle generic of personalize #{...} pattern
|
|
142
142
|
*/
|
|
143
|
-
const handlePersonalizeTagPattern =
|
|
143
|
+
const handlePersonalizeTagPattern = match => {
|
|
144
144
|
const [personalizeTag, personalizeContent] = match;
|
|
145
145
|
const [tagCode] = personalizeContent.split('||');
|
|
146
|
-
const
|
|
147
|
-
if (!tagCode || !
|
|
146
|
+
const [type, attributeName] = tagCode.split('.');
|
|
147
|
+
if (!tagCode || !type) {
|
|
148
148
|
console.error('Invalid personalize pattern detected: ', tagCode);
|
|
149
149
|
return { isValid: false, tag: '[[Invalid Personalize]]' };
|
|
150
150
|
}
|
|
151
151
|
const tag = createTagPattern({
|
|
152
|
-
type:
|
|
153
|
-
label:
|
|
152
|
+
type: type,
|
|
153
|
+
label: attributeName || type,
|
|
154
154
|
value: personalizeTag,
|
|
155
155
|
});
|
|
156
156
|
return { isValid: true, tag };
|
|
@@ -9,10 +9,10 @@ export type MapAttributesProps = Record<string, Record<string, any>>;
|
|
|
9
9
|
*/
|
|
10
10
|
export interface TagifyInputProps {
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* Initial value for the Tagify input field.
|
|
13
|
+
* Only used when the component is first rendered.
|
|
14
14
|
*/
|
|
15
|
-
|
|
15
|
+
initialValue: string;
|
|
16
16
|
/**
|
|
17
17
|
* Optional mapping configuration for custom attributes associated with tags.
|
|
18
18
|
* Defines how tag attributes are mapped and processed internally.
|
|
@@ -30,12 +30,13 @@ export interface TagifyInputProps {
|
|
|
30
30
|
classNames?: ClassNameSettings;
|
|
31
31
|
placeholder?: TagifySettings['placeholder'];
|
|
32
32
|
readonly?: TagifySettings['readonly'];
|
|
33
|
+
disabled?: boolean;
|
|
33
34
|
maxLength?: number;
|
|
34
35
|
/**
|
|
35
36
|
* Specifies the maximum number of tags that can be added to the input.
|
|
36
37
|
* Helps enforce constraints by limiting the number of tags a user can input.
|
|
37
38
|
*/
|
|
38
|
-
|
|
39
|
+
maxPersonalizeTags?: TagifySettings['maxTags'];
|
|
39
40
|
/**
|
|
40
41
|
* Defines acceptable patterns or validation rules for tags.
|
|
41
42
|
* Ensures only tags matching specified patterns can be added, enforcing content rules.
|
|
@@ -84,7 +85,7 @@ interface TagDataEmoji extends Omit<TagDataText, 'type'> {
|
|
|
84
85
|
interface TagDataShortLink extends Omit<TagDataText, 'type'> {
|
|
85
86
|
value: string;
|
|
86
87
|
type: Extract<TagType, 'shortlink'>;
|
|
87
|
-
|
|
88
|
+
shortlinkType: ShortLinkType;
|
|
88
89
|
}
|
|
89
90
|
export type TagDataCustomize = TagDataEmoji | TagDataText | TagDataShortLink;
|
|
90
91
|
export interface EmojiTag {
|
|
@@ -92,7 +93,7 @@ export interface EmojiTag {
|
|
|
92
93
|
emoji: string;
|
|
93
94
|
code: string;
|
|
94
95
|
}
|
|
95
|
-
export type PatternHandler = (match: RegExpExecArray
|
|
96
|
+
export type PatternHandler = (match: RegExpExecArray) => {
|
|
96
97
|
isValid: boolean;
|
|
97
98
|
tag: string;
|
|
98
99
|
};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { AcceptablePattern, EmojiCollection, EmojiTag,
|
|
1
|
+
import { AcceptablePattern, EmojiCollection, EmojiTag, TagType } from './types';
|
|
2
2
|
/**
|
|
3
3
|
* Parses the input string and replaces matching patterns with processed tags.
|
|
4
4
|
* This function iterates over predefined regex patterns and replaces each match
|
|
5
5
|
* with a corresponding replacement string generated by pattern handlers.
|
|
6
6
|
*
|
|
7
7
|
* @param {string} input - The input string containing tags and patterns to be replaced.
|
|
8
|
-
* @param {
|
|
8
|
+
* @param {Array<AcceptablePattern>} acceptableTagPattern - An array of acceptable tag patterns
|
|
9
9
|
* passed to the pattern handler for tag processing.
|
|
10
10
|
* @returns {string} The modified string with all pattern matches replaced by their corresponding tags.
|
|
11
11
|
*
|
|
@@ -18,10 +18,11 @@ import { AcceptablePattern, EmojiCollection, EmojiTag, MapAttributesProps } from
|
|
|
18
18
|
* Example:
|
|
19
19
|
* ```javascript
|
|
20
20
|
* const input = "Here is some text with a #{shortlink(https://example.com)} pattern.";
|
|
21
|
-
* const
|
|
21
|
+
* const acceptableTagPattern = ['shortlink'];
|
|
22
|
+
* const result = parseTagStringToTagify(input, acceptableTagPattern);
|
|
22
23
|
* ```
|
|
23
24
|
*/
|
|
24
|
-
export declare const parseTagStringToTagify: (input: string, acceptableTagPattern: Array<AcceptablePattern
|
|
25
|
+
export declare const parseTagStringToTagify: (input: string, acceptableTagPattern: Array<AcceptablePattern>) => string;
|
|
25
26
|
/**
|
|
26
27
|
* Converts an input string containing JSON-like tags to a formatted string.
|
|
27
28
|
* @param input The input string with JSON-like tags.
|
|
@@ -43,3 +44,4 @@ export declare const getImageSourceViberEmoji: (fileName?: string) => any;
|
|
|
43
44
|
export declare const emojiManufacturer: (text: string, collectionType: EmojiCollection) => string[];
|
|
44
45
|
export declare const getEmojiTag: ({ src, emoji, code }: EmojiTag) => string;
|
|
45
46
|
export declare const getStyledTags: () => string;
|
|
47
|
+
export declare const isPersonalizeTagType: (type: TagType) => boolean;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// Libraries
|
|
2
2
|
import stringReplaceToArray from 'string-replace-to-array';
|
|
3
3
|
// Constants
|
|
4
|
-
import { EMOJI, EMOJI_COLLECTIONS, PREFIX_PATTERN_LINE_MESSAGE, TAG_COLOR, TAG_TYPE, } from './constants';
|
|
4
|
+
import { CUSTOMER, CUSTOM_FN, EMOJI, EMOJI_COLLECTIONS, EVENT, OBJECT_WIDGET, PREFIX_PATTERN_LINE_MESSAGE, PROMOTION_CODE, TAG_COLOR, TAG_TYPE, VISITOR, } from './constants';
|
|
5
5
|
import { iconsViber } from './iconsViber';
|
|
6
6
|
// Utils
|
|
7
7
|
import { acceptablePatternChecking, getCachedRegex, patternHandlers, tagRegexStringPattern, } from './patternHandlers';
|
|
@@ -11,7 +11,7 @@ import { acceptablePatternChecking, getCachedRegex, patternHandlers, tagRegexStr
|
|
|
11
11
|
* with a corresponding replacement string generated by pattern handlers.
|
|
12
12
|
*
|
|
13
13
|
* @param {string} input - The input string containing tags and patterns to be replaced.
|
|
14
|
-
* @param {
|
|
14
|
+
* @param {Array<AcceptablePattern>} acceptableTagPattern - An array of acceptable tag patterns
|
|
15
15
|
* passed to the pattern handler for tag processing.
|
|
16
16
|
* @returns {string} The modified string with all pattern matches replaced by their corresponding tags.
|
|
17
17
|
*
|
|
@@ -24,10 +24,11 @@ import { acceptablePatternChecking, getCachedRegex, patternHandlers, tagRegexStr
|
|
|
24
24
|
* Example:
|
|
25
25
|
* ```javascript
|
|
26
26
|
* const input = "Here is some text with a #{shortlink(https://example.com)} pattern.";
|
|
27
|
-
* const
|
|
27
|
+
* const acceptableTagPattern = ['shortlink'];
|
|
28
|
+
* const result = parseTagStringToTagify(input, acceptableTagPattern);
|
|
28
29
|
* ```
|
|
29
30
|
*/
|
|
30
|
-
export const parseTagStringToTagify = (input, acceptableTagPattern
|
|
31
|
+
export const parseTagStringToTagify = (input, acceptableTagPattern) => {
|
|
31
32
|
const resultParts = [];
|
|
32
33
|
let lastIndex = 0;
|
|
33
34
|
// Array to store all matches from all patterns with their positions
|
|
@@ -45,7 +46,7 @@ export const parseTagStringToTagify = (input, acceptableTagPattern, mapAttribute
|
|
|
45
46
|
// Iterate over matches of the current pattern
|
|
46
47
|
// eslint-disable-next-line no-cond-assign
|
|
47
48
|
while ((match = regex.exec(input)) !== null) {
|
|
48
|
-
const { isValid, tag } = handler(match
|
|
49
|
+
const { isValid, tag } = handler(match);
|
|
49
50
|
if (isValid) {
|
|
50
51
|
matches.push({ startIndex: match.index, endIndex: regex.lastIndex, replacement: tag });
|
|
51
52
|
}
|
|
@@ -325,3 +326,4 @@ export const getStyledTags = () => {
|
|
|
325
326
|
});
|
|
326
327
|
return styledTags.join('');
|
|
327
328
|
};
|
|
329
|
+
export const isPersonalizeTagType = (type) => [CUSTOMER, VISITOR, EVENT, PROMOTION_CODE, OBJECT_WIDGET, CUSTOM_FN].includes(type);
|
|
@@ -1060,6 +1060,7 @@
|
|
|
1060
1060
|
"_TITL_DISPLAY_TIME_AS": "Display time as",
|
|
1061
1061
|
"_TITL_DISPLAY_FUNCTION_OUTPUT": "Display function output",
|
|
1062
1062
|
"_TITL_DOMAIN": "Domain",
|
|
1063
|
+
"_TITL_COOKIE_DOMAIN": "Cookie Domain",
|
|
1063
1064
|
"_TITL_DOWNLOAD_DATA_EXAMPLE": "Download data example",
|
|
1064
1065
|
"_TITL_DRAG_FILE_HERE": "Drag file here",
|
|
1065
1066
|
"_TITL_DRAG_IMAGE_HERE": "Drag image here",
|
|
@@ -2121,7 +2122,7 @@
|
|
|
2121
2122
|
"_PREDICT_MODEL_DESCRIBE_PLACEHOLDER": "Describe your RFM model",
|
|
2122
2123
|
"_PREDICT_MODEL_BO_DISABLE": "Data-updated of this Business Object has been disabled",
|
|
2123
2124
|
"_PREDICT_MODEL_CREATE_NEW_RFM": "Create new RFM",
|
|
2124
|
-
"_DES_DELIVERY_INTERVAL": "Delivery Interval
|
|
2125
|
+
"_DES_DELIVERY_INTERVAL": "Delivery Interval",
|
|
2125
2126
|
"_DES_BY_NUMBER_RECORD": "By number of record",
|
|
2126
2127
|
"_DES_BY_DAY": "By day(s)",
|
|
2127
2128
|
"_DES_BY_HOUR": "By hour(s)",
|
|
@@ -2628,5 +2629,11 @@
|
|
|
2628
2629
|
"_PROFILES_BTN_SET_DEFAULT": "Set as default",
|
|
2629
2630
|
"_PROFILES_DEFAULT_TEMP_TOOLTIP": "Default template",
|
|
2630
2631
|
"_PROFILES_MESSAGE_NO_TEMP": "You don't have any templates to visualize profiles",
|
|
2631
|
-
"_PROFILES_USER_GUIDE_2": "Click the button to create a template"
|
|
2632
|
+
"_PROFILES_USER_GUIDE_2": "Click the button to create a template",
|
|
2633
|
+
"_COOKIE_DM_DEFINITION": "What is it?",
|
|
2634
|
+
"_COOKIE_DM_INSTRUCTION": "Instruction",
|
|
2635
|
+
"_COOKIE_DM_DEFINITION_1": "The cookie domain allows you to specify a domain where tracking cookies will be set, ensuring seamless data collection across subdomains. This helps maintain a consistent User ID, enabling accurate cross-subdomain tracking and preventing fragmented customer profiles. ",
|
|
2636
|
+
"_COOKIE_DM_DEFINITION_2": "By ensuring unified data collection, it enhances personalization, improves analytics, and provides a clearer view of customer behavior across your entire web ecosystem.",
|
|
2637
|
+
"_COOKIE_DM_INSTRUCTION_1": "Identify the Primary Domain: \nThis is the base domain for all subdomains you want to track. \nExample: https://antsomi.com",
|
|
2638
|
+
"_COOKIE_DM_INSTRUCTION_2": "Configure the Cookie Domain: \nInput .antsomi.com to track data across all subdomains (eg: shop.antsomi.com or blog.antsomi.com)"
|
|
2632
2639
|
}
|
package/es/locales/i18n.d.ts
CHANGED
|
@@ -1062,6 +1062,7 @@ export declare const translationsJson: {
|
|
|
1062
1062
|
_TITL_DISPLAY_TIME_AS: string;
|
|
1063
1063
|
_TITL_DISPLAY_FUNCTION_OUTPUT: string;
|
|
1064
1064
|
_TITL_DOMAIN: string;
|
|
1065
|
+
_TITL_COOKIE_DOMAIN: string;
|
|
1065
1066
|
_TITL_DOWNLOAD_DATA_EXAMPLE: string;
|
|
1066
1067
|
_TITL_DRAG_FILE_HERE: string;
|
|
1067
1068
|
_TITL_DRAG_IMAGE_HERE: string;
|
|
@@ -2631,6 +2632,12 @@ export declare const translationsJson: {
|
|
|
2631
2632
|
_PROFILES_DEFAULT_TEMP_TOOLTIP: string;
|
|
2632
2633
|
_PROFILES_MESSAGE_NO_TEMP: string;
|
|
2633
2634
|
_PROFILES_USER_GUIDE_2: string;
|
|
2635
|
+
_COOKIE_DM_DEFINITION: string;
|
|
2636
|
+
_COOKIE_DM_INSTRUCTION: string;
|
|
2637
|
+
_COOKIE_DM_DEFINITION_1: string;
|
|
2638
|
+
_COOKIE_DM_DEFINITION_2: string;
|
|
2639
|
+
_COOKIE_DM_INSTRUCTION_1: string;
|
|
2640
|
+
_COOKIE_DM_INSTRUCTION_2: string;
|
|
2634
2641
|
global: {
|
|
2635
2642
|
minus: string;
|
|
2636
2643
|
plus: string;
|
|
@@ -4379,6 +4386,7 @@ export declare const translationsJson: {
|
|
|
4379
4386
|
_TITL_DISPLAY_TIME_AS: string;
|
|
4380
4387
|
_TITL_DISPLAY_FUNCTION_OUTPUT: string;
|
|
4381
4388
|
_TITL_DOMAIN: string;
|
|
4389
|
+
_TITL_COOKIE_DOMAIN: string;
|
|
4382
4390
|
_TITL_DOWNLOAD_DATA_EXAMPLE: string;
|
|
4383
4391
|
_TITL_DRAG_FILE_HERE: string;
|
|
4384
4392
|
_TITL_DRAG_IMAGE_HERE: string;
|
|
@@ -5948,6 +5956,12 @@ export declare const translationsJson: {
|
|
|
5948
5956
|
_PROFILES_DEFAULT_TEMP_TOOLTIP: string;
|
|
5949
5957
|
_PROFILES_MESSAGE_NO_TEMP: string;
|
|
5950
5958
|
_PROFILES_USER_GUIDE_2: string;
|
|
5959
|
+
_COOKIE_DM_DEFINITION: string;
|
|
5960
|
+
_COOKIE_DM_INSTRUCTION: string;
|
|
5961
|
+
_COOKIE_DM_DEFINITION_1: string;
|
|
5962
|
+
_COOKIE_DM_DEFINITION_2: string;
|
|
5963
|
+
_COOKIE_DM_INSTRUCTION_1: string;
|
|
5964
|
+
_COOKIE_DM_INSTRUCTION_2: string;
|
|
5951
5965
|
global: {
|
|
5952
5966
|
minus: string;
|
|
5953
5967
|
plus: string;
|
|
@@ -7246,6 +7260,7 @@ export declare const translationsJson: {
|
|
|
7246
7260
|
_TITL_DISPLAY_TIME_AS: string;
|
|
7247
7261
|
_TITL_DISPLAY_FUNCTION_OUTPUT: string;
|
|
7248
7262
|
_TITL_DOMAIN: string;
|
|
7263
|
+
_TITL_COOKIE_DOMAIN: string;
|
|
7249
7264
|
_TITL_DOWNLOAD_DATA_EXAMPLE: string;
|
|
7250
7265
|
_TITL_DRAG_FILE_HERE: string;
|
|
7251
7266
|
_TITL_DRAG_IMAGE_HERE: string;
|
|
@@ -8804,6 +8819,12 @@ export declare const translationsJson: {
|
|
|
8804
8819
|
_PROFILES_DEFAULT_TEMP_TOOLTIP: string;
|
|
8805
8820
|
_PROFILES_MESSAGE_NO_TEMP: string;
|
|
8806
8821
|
_PROFILES_USER_GUIDE_2: string;
|
|
8822
|
+
_COOKIE_DM_DEFINITION: string;
|
|
8823
|
+
_COOKIE_DM_INSTRUCTION: string;
|
|
8824
|
+
_COOKIE_DM_DEFINITION_1: string;
|
|
8825
|
+
_COOKIE_DM_DEFINITION_2: string;
|
|
8826
|
+
_COOKIE_DM_INSTRUCTION_1: string;
|
|
8827
|
+
_COOKIE_DM_INSTRUCTION_2: string;
|
|
8807
8828
|
};
|
|
8808
8829
|
};
|
|
8809
8830
|
};
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"_ACT_ACTION": "アクション",
|
|
3
3
|
"_ACT_ADD_AN_OPTION": "オプションを追加する",
|
|
4
4
|
"_ACT_ADD_BRANCH": "ブランチを追加する",
|
|
5
|
-
"_ACT_ADD_CONDITION": "
|
|
5
|
+
"_ACT_ADD_CONDITION": "条件の追加",
|
|
6
6
|
"_ACT_ADD_CRITERIA": "基準を追加する",
|
|
7
7
|
"_ACT_ADD_DELAY_TIME": "その日の時刻まで遅延する",
|
|
8
8
|
"_ACT_ADD_EVENT": "イベント",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"_ACT_CHANGE": "変化",
|
|
34
34
|
"_ACT_CHANGE_ASSIGN_GROUP": "割り当てグループの変更",
|
|
35
35
|
"_ACT_CHANGE_FORMAT": "フォーマットの変更",
|
|
36
|
-
"_ACT_CHANGE_PORTAL": "
|
|
36
|
+
"_ACT_CHANGE_PORTAL": "ポータルの変更",
|
|
37
37
|
"_ACT_CHANGE_TEMPLATE": "テンプレートの変更",
|
|
38
38
|
"_ACT_CHART_TYPE": "グラフの種類",
|
|
39
39
|
"_ACT_CHOOSE_FILE_UPLOAD": "アップロードする画像を選択してください",
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
"_ACT_COPY_TO_CLIPBOARD": "クリップボードにコピー",
|
|
48
48
|
"_ACT_CREATE": "作成する",
|
|
49
49
|
"_ACT_CREATE_ASSIGN_ROLE": "役割の作成と割り当て",
|
|
50
|
-
"_ACT_CREATE_NEW_EVENT_ACTION": "
|
|
50
|
+
"_ACT_CREATE_NEW_EVENT_ACTION": "新しいイベントアクションの作成",
|
|
51
51
|
"_ACT_CREATE_NEW_EVENT_CATEGORY": "新しいイベント カテゴリを作成する",
|
|
52
52
|
"_ACT_CREATE_NEW_MODEL": "新しいモデルを作成する",
|
|
53
53
|
"_ACT_CUSTOMER_SEGMENT": "顧客セグメント",
|
|
@@ -94,7 +94,7 @@
|
|
|
94
94
|
"_ACT_QUICK_TEST": "クイックテスト",
|
|
95
95
|
"_ACT_REFINE_ATTRIBUTE": "属性で絞り込む",
|
|
96
96
|
"_ACT_REMOVE": "取り除く",
|
|
97
|
-
"_ACT_REMOVE_ALL": "
|
|
97
|
+
"_ACT_REMOVE_ALL": "すべて削除する",
|
|
98
98
|
"_ACT_REPLACE": "交換する",
|
|
99
99
|
"_ACT_REPORTS": "レポート",
|
|
100
100
|
"_ACT_RESET": "リセット",
|
|
@@ -128,7 +128,7 @@
|
|
|
128
128
|
"_ACT_TABLE_DETAIL": "テーブルの詳細",
|
|
129
129
|
"_ACT_UNCHECK_ALL": "すべてのチェックを外します",
|
|
130
130
|
"_ACT_UPDATE": "アップデート",
|
|
131
|
-
"_ACT_UPDATE_END_DATE": "
|
|
131
|
+
"_ACT_UPDATE_END_DATE": "終了日を更新する",
|
|
132
132
|
"_ACT_UPLOAD": "アップロード",
|
|
133
133
|
"_ACT_VARIANT_PRIORITY": "バリアントの優先順位",
|
|
134
134
|
"_ACT_VIEW_ALL": "すべて見る",
|
|
@@ -232,7 +232,7 @@
|
|
|
232
232
|
"_BOX_TITL_REMOVE_EVENT_ATTRIBUTE": "イベント属性の削除",
|
|
233
233
|
"_BOX_TITL_REMOVE_FIELD": "フィールドの削除",
|
|
234
234
|
"_BOX_TITL_REMOVE_GROUP": "グループの削除",
|
|
235
|
-
"_BOX_TITL_REMOVE_IMAGE": "
|
|
235
|
+
"_BOX_TITL_REMOVE_IMAGE": "画像を削除する",
|
|
236
236
|
"_BOX_TITL_REMOVE_MODEL": "モデルの削除",
|
|
237
237
|
"_BOX_TITL_REPLACE_FILTER": "フィルターセットを交換する",
|
|
238
238
|
"_BOX_TITL_SAVE_FILTER": "フィルターセットに名前を付けます",
|
|
@@ -273,7 +273,7 @@
|
|
|
273
273
|
"_BREADCRUMB_CREATE_NEW_MODEL": "新しいモデルを作成する",
|
|
274
274
|
"_BREADCRUMB_CREATE_NEW_SEGMENT": "新しいセグメントを作成する",
|
|
275
275
|
"_BREADCRUMB_CREATE_NEW_SOURCE": "新しいソースを作成する",
|
|
276
|
-
"_BREADCRUMB_CREATE_NEW_STORY_WEB": "新しい Web
|
|
276
|
+
"_BREADCRUMB_CREATE_NEW_STORY_WEB": "新しい Web パーソナライゼーションの旅を作成する",
|
|
277
277
|
"_BREADCRUMB_CREATE_NEW_STORY_WEB_NOTI": "新しい Web 通知ジャーニーを作成する",
|
|
278
278
|
"_BREADCRUMB_CREATE_NEW_STORY_APP_NOTI": "新しいアプリ通知ジャーニーを作成する",
|
|
279
279
|
"_BREADCRUMB_CREATE_NEW_STORY_EMAIL": "新しいメールジャーニーを作成する",
|
|
@@ -424,7 +424,7 @@
|
|
|
424
424
|
"_EVENT_DES_CLICK_ADVERTISING": "{{customer_name}} さんがキャンペーン {{campaign_name}} をクリックしました",
|
|
425
425
|
"_EVENT_DES_CLICK_EMAIL_ADVERTISING": "{{customer_name}} が広告 {{advertising_name}} のメールをクリックしました",
|
|
426
426
|
"_EVENT_DES_CLICK_PRODUCT": "{{customer_name}} さんが商品 {{product_name}} をクリックしました",
|
|
427
|
-
"_EVENT_DES_CLICK_TRACKING_ADVERTISING": "{{customer_name}}
|
|
427
|
+
"_EVENT_DES_CLICK_TRACKING_ADVERTISING": "{{customer_name}} さんがトラッキング広告 {{advertising_name}} をクリックしました",
|
|
428
428
|
"_EVENT_DES_IDENTIFY_USER": "匿名訪問者プロファイル {{user_id}} は、この顧客プロファイルに関連付けられていました。",
|
|
429
429
|
"_EVENT_DES_IMPRESSION_ADVERTISING": "キャンペーン {{campaign_name}} は {{customer_name}} に送信されました",
|
|
430
430
|
"_EVENT_DES_PURCHASE_TRANSACTION": "{{customer_name}} が、{{num_of_products}} 個の製品 {{store_link}} のトランザクション購入 ID {{order_id}} を実行しました",
|
|
@@ -594,7 +594,7 @@
|
|
|
594
594
|
"_INFO_STORY_EVERY_DAY": "日",
|
|
595
595
|
"_INFO_STORY_EVERY_MONTH": "月",
|
|
596
596
|
"_INFO_STORY_EVERY_WEEK": "週",
|
|
597
|
-
"_INFO_STORY_EXE_BRANCH_NO": "
|
|
597
|
+
"_INFO_STORY_EXE_BRANCH_NO": "他のブランチの条件がいずれも一致しない場合、オーディエンスはこのブランチに誘導されます。",
|
|
598
598
|
"_INFO_STORY_FILTER_CONDITION": "状態",
|
|
599
599
|
"_INFO_STORY_FILTER_TYPE": "フィルターの種類",
|
|
600
600
|
"_INFO_STORY_FREQUENCY": "トリガージャーニー",
|
|
@@ -613,7 +613,7 @@
|
|
|
613
613
|
"_INFO_STORY_SELECT_END_DATE": "締め日を選択してください",
|
|
614
614
|
"_INFO_STORY_SELECT_WEEK_DAY": "曜日にトリガー",
|
|
615
615
|
"_INFO_STORY_SETTING": "一般設定",
|
|
616
|
-
"_INFO_STORY_SETTING_FREQ": "
|
|
616
|
+
"_INFO_STORY_SETTING_FREQ": "観客はこの旅に何回参加する必要があるでしょうか?",
|
|
617
617
|
"_INFO_STORY_START_DATE": "開始日",
|
|
618
618
|
"_INFO_STORY_START_TIME": "開始時間",
|
|
619
619
|
"_INFO_STORY_STATUS_ABORTED": "中止されました",
|
|
@@ -710,7 +710,7 @@
|
|
|
710
710
|
"_NODE_GO_TO": "に行く",
|
|
711
711
|
"_NODE_IF_ELSE": "それ以外の場合は、次のことを確認してください",
|
|
712
712
|
"_NODE_IF_MAIN": "どうかを確認してください",
|
|
713
|
-
"_NODE_IF_NO": "
|
|
713
|
+
"_NODE_IF_NO": "それ以外の場合は、次のサイトにアクセスしてください",
|
|
714
714
|
"_NODE_IF_THEN": "If/then 分岐",
|
|
715
715
|
"_NODE_IF_THEN_TITL_NO": "いいえ",
|
|
716
716
|
"_NODE_IF_THEN_TITL_YES": "はい",
|
|
@@ -797,7 +797,7 @@
|
|
|
797
797
|
"_NOTI_UPLOAD_ICON_SUCCESS": "成功!ファイルがアップロードされました。",
|
|
798
798
|
"_NOTI_VALIDATE_END_DATE_GREATER_CURRENT": "終了日は現在の日付より後の日付にする必要があります",
|
|
799
799
|
"_NOTI_VALIDATE_END_TIME_GREATER": "終了時間は開始時間よりも長くする必要があります",
|
|
800
|
-
"_NOTI_VALIDATE_FILE_FORMAT": "
|
|
800
|
+
"_NOTI_VALIDATE_FILE_FORMAT": "ファイルの形式が正しくありません。もう一度お試しください。",
|
|
801
801
|
"_NOTI_VALIDATE_FORMAT_CSS_SELECTOR": "CSS セレクターは接頭辞 で始まる必要があります。または #",
|
|
802
802
|
"_NOTI_VALIDATE_ICON_FORMAT": "画像の形式が正しくありません。もう一度お試しください。",
|
|
803
803
|
"_NOTI_VALIDATE_ONE_DAY": "少なくとも 1 日を選択してください",
|
|
@@ -917,7 +917,7 @@
|
|
|
917
917
|
"_TAB_INFORMATION_FIELD": "情報フィールド",
|
|
918
918
|
"_TAB_JOURNEY": "旅",
|
|
919
919
|
"_TAB_METRIC": "メトリック",
|
|
920
|
-
"_TAB_MODEL_DIAGRAM": "
|
|
920
|
+
"_TAB_MODEL_DIAGRAM": "ダイアグラム",
|
|
921
921
|
"_TAB_MODEL_FIELD": "フィールド",
|
|
922
922
|
"_TAB_OBECT_REFERENCE": "オブジェクトリファレンス",
|
|
923
923
|
"_TAB_OBJECT_ATTRIBUTE": "属性",
|
|
@@ -1020,7 +1020,7 @@
|
|
|
1020
1020
|
"_TITL_CUSTOMER_CONVERSION": "顧客変換",
|
|
1021
1021
|
"_TITL_VISITOR_CONVERSION": "訪問者のコンバージョン",
|
|
1022
1022
|
"_TITL_CURRENCY": "通貨",
|
|
1023
|
-
"_TITL_CURRENCY_NUMBER_DEFAULT_FORMAT": "
|
|
1023
|
+
"_TITL_CURRENCY_NUMBER_DEFAULT_FORMAT": "通貨と数値",
|
|
1024
1024
|
"_TITL_CURRENCY_SETTING": "通貨設定",
|
|
1025
1025
|
"_TITL_CURRENT_ATTRIBUTE": "BO の属性",
|
|
1026
1026
|
"_TITL_CURRENT_PAGE": "現在のページ",
|
|
@@ -1046,7 +1046,7 @@
|
|
|
1046
1046
|
"_TITL_DELIVERY_ALGORITHM": "配信アルゴリズム",
|
|
1047
1047
|
"_TITL_DELIVERY_DETAIL": "納品詳細",
|
|
1048
1048
|
"_TITL_DELIVERY_PERFORMANCE": "配信パフォーマンス",
|
|
1049
|
-
"_TITL_DELIVERY_RATE": "
|
|
1049
|
+
"_TITL_DELIVERY_RATE": "配送料",
|
|
1050
1050
|
"_TITL_DELIVERY_RESULT": "納品実績",
|
|
1051
1051
|
"_TITL_DELIVERY_STATUS": "配送状況",
|
|
1052
1052
|
"_TITL_DESCENDING": "降順",
|
|
@@ -1060,6 +1060,7 @@
|
|
|
1060
1060
|
"_TITL_DISPLAY_TIME_AS": "時刻を次のように表示します",
|
|
1061
1061
|
"_TITL_DISPLAY_FUNCTION_OUTPUT": "表示機能出力",
|
|
1062
1062
|
"_TITL_DOMAIN": "ドメイン",
|
|
1063
|
+
"_TITL_COOKIE_DOMAIN": "クッキードメイン",
|
|
1063
1064
|
"_TITL_DOWNLOAD_DATA_EXAMPLE": "ダウンロードデータ例",
|
|
1064
1065
|
"_TITL_DRAG_FILE_HERE": "ここにファイルをドラッグします",
|
|
1065
1066
|
"_TITL_DRAG_IMAGE_HERE": "ここに画像をドラッグします",
|
|
@@ -1079,7 +1080,7 @@
|
|
|
1079
1080
|
"_TITL_EVENT_ACTION_NAME": "イベントアクション名",
|
|
1080
1081
|
"_TITL_EVENT_ATTRIBUTE": "イベント属性",
|
|
1081
1082
|
"_TITL_EVENT_CATEGORY": "イベントカテゴリー",
|
|
1082
|
-
"_TITL_EVENT_CATEGORY_CODE": "
|
|
1083
|
+
"_TITL_EVENT_CATEGORY_CODE": "イベントカテゴリーコード",
|
|
1083
1084
|
"_TITL_EVENT_CATEGORY_NAME": "イベントカテゴリ名",
|
|
1084
1085
|
"_TITL_EVENT_INFO": "イベント情報",
|
|
1085
1086
|
"_TITL_EVENT_INTERNAL_NAME": "イベントの内部名",
|
|
@@ -1102,7 +1103,7 @@
|
|
|
1102
1103
|
"_TITL_FIXED": "修理済み",
|
|
1103
1104
|
"_TITL_FOREIGN_OBJECT": "異物",
|
|
1104
1105
|
"_TITL_FREQUENCY": "頻度",
|
|
1105
|
-
"_TITL_FREQUENCY_CAPPING": "
|
|
1106
|
+
"_TITL_FREQUENCY_CAPPING": "フリークエンシーキャップ",
|
|
1106
1107
|
"_TITL_FROM_PAGE": "ページから",
|
|
1107
1108
|
"_TITL_FUNCTION": "関数",
|
|
1108
1109
|
"_TITL_GENERAL": "一般的な",
|
|
@@ -1208,7 +1209,7 @@
|
|
|
1208
1209
|
"_TITL_ORIGINAL_NAME": "オリジナル",
|
|
1209
1210
|
"_TITL_PAGE_DOWNLOAD": "ページのダウンロード",
|
|
1210
1211
|
"_TITL_PERCENTAGE": "パーセンテージ",
|
|
1211
|
-
"_TITL_PERCENTAGE_SETTING": "
|
|
1212
|
+
"_TITL_PERCENTAGE_SETTING": "パーセンテージ設定",
|
|
1212
1213
|
"_TITL_PERFORM_EVENT": "イベントを行う",
|
|
1213
1214
|
"_TITL_PERSONALIZATION_CODE": "コードをマージ",
|
|
1214
1215
|
"_TITL_PERSONALIZATION_TAG": "タグを結合",
|
|
@@ -1326,7 +1327,7 @@
|
|
|
1326
1327
|
"_USER_GUIDE_AUDIDENCE_PARENT_NODE": "親ノードからの {{percent}} 視聴者",
|
|
1327
1328
|
"_USER_GUIDE_CATALOG_CLOUD": "データをクラウド アプリから当社のシステムに効果的に同期すると、すべてのフラグメント データを相互接続して、ビジネス運営の 1 つの詳細な概要を得ることができます。",
|
|
1328
1329
|
"_USER_GUIDE_CATALOG_MOBILE_APP": "ビジネス モバイル アプリをデータ ソースとして接続し、ユーザーが製品やアプリとどのようにやり取りしているかを確認します。",
|
|
1329
|
-
"_USER_GUIDE_CATALOG_SERVER": "
|
|
1330
|
+
"_USER_GUIDE_CATALOG_SERVER": "お客様のサーバーから当社のシステムにデータを直接送信することで、当社の分析ツールの多くを使用して顧客と業績をより深く理解できるようになります。",
|
|
1330
1331
|
"_USER_GUIDE_CATALOG_WEBSITE": "ビジネス Web サイトをデータ ソースとして接続し、製品に対するユーザーの意図に関する驚くべき洞察を発見します。",
|
|
1331
1332
|
"_USER_GUIDE_CHOOOSE_ATTR_DISPLAY": "顧客/訪問者の各プロファイルに表示される属性を選択します",
|
|
1332
1333
|
"_USER_GUIDE_CHOOSE_EVENT_ATTRIBUTE_OBJECT": "イベント属性とオブジェクトの選択",
|
|
@@ -1335,7 +1336,7 @@
|
|
|
1335
1336
|
"_USER_GUIDE_CLONE": "元のアイテムの設定を継承した新しいアイテムが作成されます。これは元のものには何も影響しません。 <br />\n新しいアイテムに名前を付けて、「保存」をクリックしてください。",
|
|
1336
1337
|
"_USER_GUIDE_COLLECTION_CREATE_CRITERIA": "ファイルの を使用して、このコレクションに適したアイテムを見つけるための条件を作成します",
|
|
1337
1338
|
"_USER_GUIDE_COLLECTION_CREATE_CRITERIA_INTRO": "このシステムは、条件を満たすアイテムを検索し、このコレクションに追加します。",
|
|
1338
|
-
"_USER_GUIDE_COLLECTION_CREATE_CRITERIA_NOTE": "<b>注:</b>\n</br> -
|
|
1339
|
+
"_USER_GUIDE_COLLECTION_CREATE_CRITERIA_NOTE": "<b>注:</b>\n</br> - アップロードしたファイルの中から、本システム内に存在するIDのアイテムのみ作成するコレクションに追加できます\n</br> - アップロードされたファイルは最後に使用されてから 6 か月間保存され、その後は使用できなくなります。",
|
|
1339
1340
|
"_USER_GUIDE_FILE_STORAGE_LIMIT": "<b>注:</b> アップロードされたファイルは最後に使用されてから 6 か月間保存され、その後は使用できなくなります。",
|
|
1340
1341
|
"_UPLOAD_FILE_DELETED_ERROR_MESSAGE": "アップロードされたファイルが削除されました",
|
|
1341
1342
|
"_USER_GUIDE_CONFIRM_NEW_PASSWORD": "新しいパスワードを確認します",
|
|
@@ -1347,7 +1348,7 @@
|
|
|
1347
1348
|
"_USER_GUIDE_EDIT_NODE": "ここで選択したノードのコンテンツを編集します",
|
|
1348
1349
|
"_USER_GUIDE_ENCRYPTED_INFO": "暗号化された情報",
|
|
1349
1350
|
"_USER_GUIDE_ENTER_VALUE": "値を入力してください",
|
|
1350
|
-
"_USER_GUIDE_EVENT_ATTR_OBJECT": "
|
|
1351
|
+
"_USER_GUIDE_EVENT_ATTR_OBJECT": "イベント属性とオブジェクトを選択する ",
|
|
1351
1352
|
"_USER_GUIDE_EVENT_TEMPLATE": "イベントテンプレートの選択",
|
|
1352
1353
|
"_USER_GUIDE_FOR_ASSIGN": "割り当て用",
|
|
1353
1354
|
"_USER_GUIDE_FOR_CREATE": "作成用",
|
|
@@ -1415,7 +1416,7 @@
|
|
|
1415
1416
|
"_USER_GUIDE_TOTAL_ATTR_MEASURE": "合計 {{num_attr}} 個の属性と {{num_measure}} 個のメジャーが選択されました",
|
|
1416
1417
|
"_USER_GUIDE_TOTAL_BRANCH": "注: 合計 100%",
|
|
1417
1418
|
"_USER_GUIDE_TOTAL_FIELD": "{{x}} 個の選択されたフィールド",
|
|
1418
|
-
"_USER_GUIDE_UPLOAD_FILE": "- サポートされているファイル形式は次のとおりです: .csv、.xls、.xlsx <br />\n- .xlsx ファイルの最初の行はヘッダー行とみなされます<br />\n- デフォルトのデータエンコーディングはUTF-8
|
|
1419
|
+
"_USER_GUIDE_UPLOAD_FILE": "- サポートされているファイル形式は次のとおりです: .csv、.xls、.xlsx <br />\n- .xlsx ファイルの最初の行はヘッダー行とみなされます<br />\n- デフォルトのデータエンコーディングはUTF-8です",
|
|
1419
1420
|
"_USER_GUIDE_UPLOAD_FILE_BEFORE_MAPPING": "属性をマッピングする前にファイルをアップロードする必要があります",
|
|
1420
1421
|
"_USER_GUIDE_UPLOAD_WAITING": "システムの処理が完了するまで 10 分間お待ちください。<br />\nページを更新してデータを確認します",
|
|
1421
1422
|
"_USER_GUIDE_USER_NOT_FOUND": "ユーザーが見つかりません",
|
|
@@ -1435,7 +1436,7 @@
|
|
|
1435
1436
|
"_WARN_DELETE_ITEMS": "注意: {{all}} {{module}} の削除をリクエストしました。ただし、そのうちの {{number_not_delete}} 個は他の機能の入力として使用されているため削除できません。 <br />\n他の {{number_delete}} {{module}} を削除してもよろしいですか?",
|
|
1436
1437
|
"_WARN_DELETE_ITEMS_ALL": "{{number_delete}} {{module}} を削除してもよろしいですか?この操作は元に戻すことができません。",
|
|
1437
1438
|
"_WARN_DELETE_NODE": "確認すると、このノードとこのノードに関連するすべてのものが失われます。",
|
|
1438
|
-
"_WARN_DELETE_STORY": "注意: {{all}}
|
|
1439
|
+
"_WARN_DELETE_STORY": "注意: {{all}} 件の旅行を削除するようリクエストされました。ただし、削除できるのは、ステータスが「設計内」である {{x}} 件のジャーニーのみです。",
|
|
1439
1440
|
"_WARN_DELETE_TRIGGER_NODE": "トリガー ノードを削除すると、ジャーニー全体のデザインも削除されます。",
|
|
1440
1441
|
"_WARN_DESIGN_LOST": "現在のデザインは失われる可能性があります",
|
|
1441
1442
|
"_WARN_DISCARD_CHANGE_INTRO": "このサイトを離れると、作成した変更は保存されません",
|
|
@@ -1527,7 +1528,7 @@
|
|
|
1527
1528
|
"_CODE_RULE_EMPTY": "無効なコードです!コードを空にすることはできません。",
|
|
1528
1529
|
"_CODE_RULE_INVALID_FORMAT": "aud_*、number_*、および sgmt_* 形式のコードはシステム用に予約されています。",
|
|
1529
1530
|
"_CODE_RULE_INVALID_FORMAT_EVT": "*_id 、 aud_* 、number_* および sgmt_* 形式のコードはシステム用に予約されています。",
|
|
1530
|
-
"_NAME_RULE_INVALID_CHARACTER": "名前が無効です!名前は文字 a ~ Z
|
|
1531
|
+
"_NAME_RULE_INVALID_CHARACTER": "名前が無効です!名前は文字 a ~ Z またはアンダースコアで始まる必要があります。",
|
|
1531
1532
|
"_NAME_RULE_INVALID_MAX_LENGTH": "名前が無効です!名前は 255 文字以内です。",
|
|
1532
1533
|
"_NAME_RULE_EMPTY": "名前が無効です!名前を空にすることはできません。",
|
|
1533
1534
|
"_DELIVERY_STATUS_SENT": "送信済み",
|
|
@@ -1570,8 +1571,8 @@
|
|
|
1570
1571
|
"_TITL_ADD_FIELD": "フィールドの追加",
|
|
1571
1572
|
"_ITEM_NAME_LINE_ITEM_ATTRIBUTE": "ラインアイテム属性",
|
|
1572
1573
|
"_CHK_IGNORE_DUPLICATE": "予定された旅行の重複メッセージを無視する",
|
|
1573
|
-
"_CHK_LIMITED_FREQ_JOURNEY": "
|
|
1574
|
-
"_CHK_LIMITED_FREQ_DESTINATION": "
|
|
1574
|
+
"_CHK_LIMITED_FREQ_JOURNEY": "旅行の回数制限(3ヶ月間)",
|
|
1575
|
+
"_CHK_LIMITED_FREQ_DESTINATION": "宛先の頻度を制限する",
|
|
1575
1576
|
"_TITL_TIME_PER_PERSON": "1人あたりの時間",
|
|
1576
1577
|
"_TITL_MEMBER_INPUT_METHOD": "メンバー入力方法",
|
|
1577
1578
|
"_TITL_SET_UP_ALERT": "アラートを設定する",
|
|
@@ -1708,7 +1709,7 @@
|
|
|
1708
1709
|
"_TITL_VERSION": "バージョン",
|
|
1709
1710
|
"_TAB_DELIVERY_LOG": "配信ログ",
|
|
1710
1711
|
"_TAB_DETAIL": "詳細",
|
|
1711
|
-
"_TAB_DIAGRAM": "
|
|
1712
|
+
"_TAB_DIAGRAM": "ダイアグラム",
|
|
1712
1713
|
"_CODE_BUILD_CONTENT_ERROR": "ビルドコンテンツエラー",
|
|
1713
1714
|
"_CODE_MISSING_RECEIVER": "受信機がありません",
|
|
1714
1715
|
"_CODE_DESTINATION_FREQUENCY_CAPPING": "宛先フリークエンシー キャップに違反する",
|
|
@@ -1719,7 +1720,7 @@
|
|
|
1719
1720
|
"_TITL_TAG_ACTION_HISTORY_DETAIL": "行動履歴詳細",
|
|
1720
1721
|
"_TITL_TAG_SCHEDULE_HISTORY_DETAIL": "スケジュール履歴の詳細",
|
|
1721
1722
|
"_INFO_AD_ZONE_CODE": "ゾーンコード",
|
|
1722
|
-
"_STATE_COMPLETED": "
|
|
1723
|
+
"_STATE_COMPLETED": "完了",
|
|
1723
1724
|
"_STATE_END": "終わり",
|
|
1724
1725
|
"_STATE_EXIT_JOURNEY": "出口行程",
|
|
1725
1726
|
"_STATE_VIOLATE_TRIGGER_FC": "トリガーのフリークエンシー キャップに違反する",
|
|
@@ -1735,7 +1736,7 @@
|
|
|
1735
1736
|
"_OPT_TRIGGER_FC_LIFETIME": "一生",
|
|
1736
1737
|
"_OPT_TRIGGER_FC_IMPRESSION": "印象",
|
|
1737
1738
|
"_MENU_SUB_UPLOAD_HISTORY": "アップロード履歴",
|
|
1738
|
-
"_USER_GUIDE_SEG_STATUS_ENABLE": "
|
|
1739
|
+
"_USER_GUIDE_SEG_STATUS_ENABLE": "セグメントはインターバルビルド可能で、他のオブジェクトでも使用可能",
|
|
1739
1740
|
"_USER_GUIDE_SEG_STATUS_DISABLE": "セグメントは間隔の構築を停止しました。 セグメントは他のオブジェクトで使用できますが、新しいデータは使用できません",
|
|
1740
1741
|
"_USER_GUIDE_SEG_STATUS_ARCHIVE": "セグメントは間隔の構築を停止したため、他のオブジェクトでは使用できません",
|
|
1741
1742
|
"_USER_GUIDE_COL_STATUS_ENABLE": "コレクションはインターバルビルド可能で、他のオブジェクトでも使用可能",
|
|
@@ -1753,7 +1754,7 @@
|
|
|
1753
1754
|
"_USER_GUIDE_JOURNEY_STATUS_ACTIVE": "旅は進行中です",
|
|
1754
1755
|
"_USER_GUIDE_JOURNEY_STATUS_CLOSED": "ジャーニーの処理時間が近づいています",
|
|
1755
1756
|
"_USER_GUIDE_JOURNEY_STATUS_PAUSED": "キャンペーンは一時的に停止されていますが、新規視聴者の参加は引き続き許可されています",
|
|
1756
|
-
"_USER_GUIDE_JOURNEY_STATUS_FROZEN": "
|
|
1757
|
+
"_USER_GUIDE_JOURNEY_STATUS_FROZEN": "キャンペーンは保留されており、新しい視聴者が参加することはできません",
|
|
1757
1758
|
"_USER_GUIDE_JOURNEY_STATUS_ERROR": "旅行処理中にエラーが発生しました",
|
|
1758
1759
|
"_USER_GUIDE_JOURNEY_STATUS_ABORTED": "旅は完全停止を余儀なくされる",
|
|
1759
1760
|
"_USER_GUIDE_JOURNEY_STATUS_REMOVED": "旅が削除されました",
|
|
@@ -1765,7 +1766,7 @@
|
|
|
1765
1766
|
"_PORTAL_LIMITATION_DES_COL_ARCHIVED": "コレクションは、使用されない場合はアーカイブされます。",
|
|
1766
1767
|
"_PORTAL_LIMITATION_DES_COL_DELETE": "までに回復しない場合、コレクションは完全に削除されます",
|
|
1767
1768
|
"_PORTAL_LIMITATION_DES_BO_DISABLED": "データ オブジェクトは、次の場所で使用されない場合は無効になります。",
|
|
1768
|
-
"_PORTAL_LIMITATION_DES_BO_ARCHIVED": "
|
|
1769
|
+
"_PORTAL_LIMITATION_DES_BO_ARCHIVED": "データ オブジェクトは、使用されない場合はアーカイブされます。",
|
|
1769
1770
|
"_PORTAL_LIMITATION_DES_BO_DELETE": "次の期間に回復しない場合、データ オブジェクトは完全に削除されます",
|
|
1770
1771
|
"_PORTAL_LIMITATION_DES_ATTR_DISABLED": "で使用されない場合、属性は無効になります。 ",
|
|
1771
1772
|
"_PORTAL_LIMITATION_DES_ATTR_ARCHIVED": "属性が使用されない場合はアーカイブされます。",
|
|
@@ -1807,7 +1808,7 @@
|
|
|
1807
1808
|
"_USER_GUIDE_PLAN_PROCESSING": "処理...",
|
|
1808
1809
|
"_USER_GUIDE_MOVE_GROUP_INCLUDE": "人を含めるためにグループをここに移動します",
|
|
1809
1810
|
"_USER_GUIDE_MOVE_GROUP_EXCLUDE": "ユーザーを除外するにはグループをここに移動します",
|
|
1810
|
-
"_USER_GUIDE_NOTIFY_PROCESSING_SUCCESS": "{{セグメント名}}セグメントのデータ処理が完了しました",
|
|
1811
|
+
"_USER_GUIDE_NOTIFY_PROCESSING_SUCCESS": "{{セグメント名}} セグメントのデータ処理が完了しました",
|
|
1811
1812
|
"_USER_GUIDE_NOTIFY_PROCESSING_FAILT": "{{セグメント名}} セグメントのデータ処理に失敗しました",
|
|
1812
1813
|
"_TITLE_NOTIFY_HIDE": "隠れる",
|
|
1813
1814
|
"_TITLE_BTN_RECOMPUTED": "再計算された",
|
|
@@ -1939,7 +1940,7 @@
|
|
|
1939
1940
|
"_WARN_TITLE_AM_CREATED_BY": "作成者",
|
|
1940
1941
|
"_ERROR_MESS_AM_COMPUTED_LIMIT": "この時間内に構築される分析モデルの数の制限に達しました。",
|
|
1941
1942
|
"_WARN_TITLE_AM_COMPUTATIONAL_LIMIT": "警告 分析モデルの計算制限",
|
|
1942
|
-
"_WARN_AM_COMPUTATIONAL_LIMIT": "
|
|
1943
|
+
"_WARN_AM_COMPUTATIONAL_LIMIT": "現在、計算制限に達しているため、システムは次の有効な時間内にこの分析モデルを計算します。",
|
|
1943
1944
|
"_WARN_TITLE_BO_WARN_TOTAL": "警告 ビジネス オブジェクトの合計制限",
|
|
1944
1945
|
"_WARN_BO_WARN_TOTAL_CONTENT_CREATE": "ビジネス オブジェクトの数が制限に達しました。\n新しいビジネス オブジェクトを作成する場合は、未使用のビジネス オブジェクトをアーカイブしてください。",
|
|
1945
1946
|
"_ACT_WARN_BO_GO_TO_LIST": "ビジネスオブジェクトリストに移動",
|
|
@@ -2117,7 +2118,7 @@
|
|
|
2117
2118
|
"_PREDICT_MODEL_DESCRIBE_PLACEHOLDER": "RFM モデルについて説明してください",
|
|
2118
2119
|
"_PREDICT_MODEL_BO_DISABLE": "このビジネス オブジェクトのデータの更新は停止しました",
|
|
2119
2120
|
"_PREDICT_MODEL_CREATE_NEW_RFM": "新しい RFM を作成する",
|
|
2120
|
-
"_DES_DELIVERY_INTERVAL": "
|
|
2121
|
+
"_DES_DELIVERY_INTERVAL": "配送間隔",
|
|
2121
2122
|
"_DES_BY_NUMBER_RECORD": "レコード数別",
|
|
2122
2123
|
"_DES_BY_DAY": "日ごと",
|
|
2123
2124
|
"_DES_BY_HOUR": "時間ごと",
|
|
@@ -2150,7 +2151,7 @@
|
|
|
2150
2151
|
"_EVENT_CLICK_VIBER": "{{customer_name}} さんが Journey {{journey_name}} からの Viber メッセージをクリックしました",
|
|
2151
2152
|
"_EVENT_CLICK_SMS": "{{customer_name}} さんが Journey {{journey_name}} からの SMS メッセージをクリックしました",
|
|
2152
2153
|
"_EVENT_SENT_WEB_PERSONALIZA": "ジャーニー {{journey_name}} が {{customer_name}} に送信されました",
|
|
2153
|
-
"_EVENT_SENT_WEB_PUSH": "ジャーニー {{journey_name}}
|
|
2154
|
+
"_EVENT_SENT_WEB_PUSH": "ジャーニー {{journey_name}} がウェブ プッシュ通知経由で {{customer_name}} に送信されました",
|
|
2154
2155
|
"_EVENT_SENT_APP PUSH": "ジャーニー {{journey_name}} がアプリのプッシュ通知経由で {{customer_name}} に送信されました",
|
|
2155
2156
|
"_EVENT_SENT_EMAIL": "Journey {{journey_name}} からのメールが {{customer_name}} に送信されました",
|
|
2156
2157
|
"_EVENT_SENT_FB": "Journey {{journey_name}} からの Facebook メッセージが {{customer_name}} に送信されました",
|
|
@@ -2268,7 +2269,7 @@
|
|
|
2268
2269
|
"_CHANNEL_DES_EMAIL": "パーソナライズされたメッセージをユーザーの受信箱に直接配信し、ターゲットを絞ったコンテンツでのエンゲージメントとコンバージョンを促進します。",
|
|
2269
2270
|
"_CHANNEL_DES_SMS": "直接的かつ即時的なコミュニケーションを提供し、ユーザーのモバイルデバイスに到達して即時のエンゲージメントとインタラクションを実現します。",
|
|
2270
2271
|
"_CHANNEL_DES_SMART_INB": "プッシュ通知のコンテンツを一元管理して管理とエンゲージメントを合理化",
|
|
2271
|
-
"_CHANNEL_DES_FB_MESS": "
|
|
2272
|
+
"_CHANNEL_DES_FB_MESS": "直接的で会話的なコミュニケーションを提供し、使い慣れたソーシャル メディア プラットフォームでユーザーを引き付ける",
|
|
2272
2273
|
"_CHANNEL_DES_VIBER": "ダイレクト メッセージング機能を提供し、安全で使い慣れたソーシャル メディア プラットフォームでユーザーを魅了します。",
|
|
2273
2274
|
"_CHANNEL_DES_ZALO": "OA や ZNS などのサービス用のさまざまなテンプレートを使用したダイレクト メッセージング機能を提供します",
|
|
2274
2275
|
"_CHANNEL_DES_WHATSAPP": "関連性のあるメッセージを顧客の WhatsApp アカウントに直接配信し、より強力な関係を促進し、エンゲージメントを高めます",
|
|
@@ -2370,7 +2371,7 @@
|
|
|
2370
2371
|
"_WEBPER_TEMP_OBJ_INLINE_5": "ソーシャルプルーフディスプレイ",
|
|
2371
2372
|
"_WEBPER_TEMP_OBJ_INLINE_6": "教育コンテンツ",
|
|
2372
2373
|
"_WEBPER_TEMP_OBJ_SLIDEIN_1": "リードマグネット",
|
|
2373
|
-
"_WEBPER_TEMP_OBJ_SLIDEIN_2": "
|
|
2374
|
+
"_WEBPER_TEMP_OBJ_SLIDEIN_2": "終了の意図",
|
|
2374
2375
|
"_WEBPER_TEMP_OBJ_SLIDEIN_3": "コンテンツティーザー",
|
|
2375
2376
|
"_WEBPER_TEMP_OBJ_SLIDEIN_4": "アンケートと投票",
|
|
2376
2377
|
"_WEBPER_TEMP_OBJ_SLIDEIN_5": "ソーシャルプルーフディスプレイ",
|
|
@@ -2410,7 +2411,7 @@
|
|
|
2410
2411
|
"_OBJ_DES_WEB_NOTI_4": "ユーザーの興味や好みに合わせた関連性の高い有益な通知を送信することで、ユーザーの関心とリピートを維持します。",
|
|
2411
2412
|
"_OBJ_DES_WEB_NOTI_5": "アカウント、トランザクション更新などの関連情報をユーザーのブラウザに直接配信します。",
|
|
2412
2413
|
"_OBJ_DES_APP_NOTI_1": "タイムリーな更新、プロモーション、アラートでユーザーに即座に連絡します",
|
|
2413
|
-
"_OBJ_DES_APP_NOTI_2": "
|
|
2414
|
+
"_OBJ_DES_APP_NOTI_2": "価値のある通知でユーザーを誘導することで、ユーザーがアプリを積極的に操作するよう促します。",
|
|
2414
2415
|
"_OBJ_DES_APP_NOTI_3": "パーソナライズされたオファーやリマインダーを配信してユーザーの行動を促す",
|
|
2415
2416
|
"_OBJ_DES_APP_NOTI_4": "ユーザーの興味や好みに合わせた関連性の高い有益な通知を送信することで、ユーザーの関心を維持し、さらに戻ってくるようにします。",
|
|
2416
2417
|
"_OBJ_DES_APP_NOTI_5": "アカウント、トランザクション更新などの関連情報をユーザーのブラウザに直接配信します。",
|
|
@@ -2426,12 +2427,12 @@
|
|
|
2426
2427
|
"_OBJ_DES_SMS_4": "予定や予約のリマインダーと確認を送信してノーショーを減らします",
|
|
2427
2428
|
"_OBJ_DES_SMS_5": "注文確認、出荷通知、アカウント更新をリアルタイムで提供します",
|
|
2428
2429
|
"_OBJ_DES_SMART_INB_1": "通知を集約し、ユーザーがメッセージを 1 か所で簡単に表示および管理できるようにします。",
|
|
2429
|
-
"_OBJ_DES_SMART_INB_2": "
|
|
2430
|
+
"_OBJ_DES_SMART_INB_2": "プラットフォーム間で通知にアクセスし、操作するためのシームレスで直感的なインターフェイスを提供します。",
|
|
2430
2431
|
"_OBJ_DES_SMART_INB_3": "通知によるタイムリーな応答と対話を促進し、ユーザー エンゲージメントと満足度を最大化します",
|
|
2431
2432
|
"_OBJ_DES_SMART_INB_4": "Web プッシュやアプリ プッシュなどのさまざまなチャネルからの通知を統合し、ユーザーとの一貫性のある一貫したコミュニケーションを確保します。",
|
|
2432
2433
|
"_OBJ_DES_FB_MESS_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
|
|
2433
2434
|
"_OBJ_DES_FB_MESS_2": "鮮やかなメッセージ テンプレートを使用してタイムリーで関連性のある更新を提供します",
|
|
2434
|
-
"_OBJ_DES_FB_MESS_3": "
|
|
2435
|
+
"_OBJ_DES_FB_MESS_3": "タイムリーかつ効率的な顧客サポートを提供し、メッセンジャー内で直接問い合わせに対応し、問題を解決します。",
|
|
2435
2436
|
"_OBJ_DES_FB_MESS_4": "予定や予約のリマインダーと確認を送信してノーショーを減らします",
|
|
2436
2437
|
"_OBJ_DES_FB_MESS_5": "アンケートやインタラクティブなテンプレートを通じて、ユーザーから貴重な洞察とフィードバックを直接収集します",
|
|
2437
2438
|
"_OBJ_DES_VIBER_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
|
|
@@ -2440,25 +2441,25 @@
|
|
|
2440
2441
|
"_OBJ_DES_VIBER_4": "注文確認、配送の最新情報、または予約のリマインダーを送信する",
|
|
2441
2442
|
"_OBJ_DES_VIBER_5": "アンケートやインタラクティブなテンプレートを通じて、ユーザーから貴重な洞察とフィードバックを直接収集します",
|
|
2442
2443
|
"_OBJ_DES_ZALO_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
|
|
2443
|
-
"_OBJ_DES_ZALO_2": "
|
|
2444
|
+
"_OBJ_DES_ZALO_2": "インタラクティブな要素を使用してセールスファネルを通じてリードと見込み顧客を育成する",
|
|
2444
2445
|
"_OBJ_DES_ZALO_3": "タイムリーなコミュニケーションを確保するために、注文確認、配送の最新情報、または予約のリマインダーを送信します。",
|
|
2445
|
-
"_OBJ_DES_ZALO_4": "
|
|
2446
|
+
"_OBJ_DES_ZALO_4": "重要なお知らせ、アップデート、ニュースをユーザーと共有して常に最新情報を入手します。",
|
|
2446
2447
|
"_OBJ_DES_ZALO_5": "一貫性があり、有益で魅力的なコンテンツを通じてブランド アイデンティティと価値を強化する",
|
|
2447
2448
|
"_OBJ_DES_WHATSAPP_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
|
|
2448
2449
|
"_OBJ_DES_WHATSAPP_2": "鮮やかなメッセージ テンプレートを使用してタイムリーで関連性のある更新を提供します",
|
|
2449
|
-
"_OBJ_DES_WHATSAPP_3": "
|
|
2450
|
+
"_OBJ_DES_WHATSAPP_3": "インタラクティブな要素を使用してセールスファネルを通じてリードと見込み顧客を育成する",
|
|
2450
2451
|
"_OBJ_DES_WHATSAPP_4": "予定や予約のリマインダーと確認を送信してノーショーを減らします",
|
|
2451
|
-
"_OBJ_DES_WHATSAPP_5": "
|
|
2452
|
+
"_OBJ_DES_WHATSAPP_5": "重要なお知らせ、アップデート、ニュースをユーザーと共有して常に最新情報を入手します。",
|
|
2452
2453
|
"_OBJ_DES_TELEGRAM_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
|
|
2453
2454
|
"_OBJ_DES_TELEGRAM_2": "鮮やかなメッセージ テンプレートを使用してタイムリーで関連性のある更新を提供します",
|
|
2454
2455
|
"_OBJ_DES_TELEGRAM_3": "インタラクティブなテンプレート要素を使用して販売目標到達プロセスをガイドし、リードと見込み客を育成します。",
|
|
2455
2456
|
"_OBJ_DES_TELEGRAM_4": "予定や予約のリマインダーと確認を送信してノーショーを減らします",
|
|
2456
|
-
"_OBJ_DES_TELEGRAM_5": "
|
|
2457
|
+
"_OBJ_DES_TELEGRAM_5": "重要なお知らせ、アップデート、ニュースをユーザーと共有して常に最新情報を入手します。",
|
|
2457
2458
|
"_OBJ_DES_LINE_1": "ターゲットを絞ったプロモーションやオファーをブロードキャストして、エンゲージメントと販売を促進します",
|
|
2458
2459
|
"_OBJ_DES_LINE_2": "Line のリッチ メニューを利用して、メッセージ内のインタラクティブなオプションとナビゲーションをユーザーに提供します",
|
|
2459
2460
|
"_OBJ_DES_LINE_3": "インタラクティブなテンプレート要素を使用して販売目標到達プロセスをガイドし、リードと見込み客を育成します。",
|
|
2460
2461
|
"_OBJ_DES_LINE_4": "予定や予約のリマインダーと確認を送信してノーショーを減らします",
|
|
2461
|
-
"_OBJ_DES_LINE_5": "
|
|
2462
|
+
"_OBJ_DES_LINE_5": "重要なお知らせ、アップデート、ニュースをユーザーと共有して常に最新情報を入手します。",
|
|
2462
2463
|
"_WEBPER_TEMP_OBJ_DES_POP_1": "潜在顧客からの情報、または既存顧客からのレビューやフィードバックを収集してデータを充実させます",
|
|
2463
2464
|
"_WEBPER_TEMP_OBJ_DES_POP_2": "限定セール、期間限定プロモーション、見逃せないおすすめ商品を紹介することで、収益を飛躍的に高めます。",
|
|
2464
2465
|
"_WEBPER_TEMP_OBJ_DES_POP_3": "追加購入を促すために補完的な製品やアップグレードを提案する",
|
|
@@ -2470,11 +2471,11 @@
|
|
|
2470
2471
|
"_WEBPER_TEMP_OBJ_DES_POP_9": "ソーシャル メディア プラットフォームでコミュニティを拡大し、ブランドの存在感を高めます",
|
|
2471
2472
|
"_WEBPER_TEMP_OBJ_DES_POP_10": "参加者と興奮を促進する注目を集めるイベント プロモーションで成功への舞台を整えます。",
|
|
2472
2473
|
"_WEBPER_TEMP_OBJ_DES_POP_11": "魅力的な運ゲーやインタラクティブなコンテンツで興奮を呼び起こし、エンゲージメントを高め、ユーザーを何度もリピートさせます。",
|
|
2473
|
-
"_WEBPER_TEMP_OBJ_DES_POP_12": "
|
|
2474
|
+
"_WEBPER_TEMP_OBJ_DES_POP_12": "新しいユーザーを支援し、提供された回答に基づいてパーソナライズされた推奨事項を提供します",
|
|
2474
2475
|
"_WEBPER_TEMP_OBJ_DES_POP_13": "直接リンクまたは QR コードを介してモバイル アプリをダウンロードしてスキャンするようユーザーに奨励します。",
|
|
2475
2476
|
"_WEBPER_TEMP_OBJ_DES_FLOAT_1": "リード獲得フォームを含めて、訪問者にニュースレター、プロモーション、またはその他のマーケティング資料への登録を促します。",
|
|
2476
2477
|
"_WEBPER_TEMP_OBJ_DES_FLOAT_2": "カウントダウンタイマー付きの特別セールや限定プロモーションで視聴者の目を引き、さらに探索するよう促します。",
|
|
2477
|
-
"_WEBPER_TEMP_OBJ_DES_FLOAT_3": "
|
|
2478
|
+
"_WEBPER_TEMP_OBJ_DES_FLOAT_3": "訪問者がスクロールしても表示され続けるバナーを使用して、重要なニュースが確実に注目されるようにし、最新情報を前面と中央に保ちます。",
|
|
2478
2479
|
"_WEBPER_TEMP_OBJ_DES_FLOAT_4": "あなたのブランドに対するフレンドリーな意見を確立するために、初めて Web サイトを閲覧する訪問者を歓迎します。",
|
|
2479
2480
|
"_WEBPER_TEMP_OBJ_DES_FLOAT_5": "ソーシャル メディア プラットフォームでコミュニティを拡大することで、ブランドの存在感を高めます。",
|
|
2480
2481
|
"_WEBPER_TEMP_OBJ_DES_FLOAT_6": "ブランドロゴを目立つように表示することでアイデンティティを強化し、ブランド認知度を向上させます",
|
|
@@ -2492,14 +2493,14 @@
|
|
|
2492
2493
|
"_WEBPER_TEMP_OBJ_DES_INLINE_5": "顧客のレビュー、評価、お客様の声などの社会的証明要素を紹介して、購入の意思決定に影響を与える信頼と信用を構築します。",
|
|
2493
2494
|
"_WEBPER_TEMP_OBJ_DES_INLINE_6": "顧客の生活に価値を付加し、単なる購入を超えてブランドと関わるよう促すために、詳細な情報と関連チュートリアルを提供します。",
|
|
2494
2495
|
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_1": "購読フォーム、登録プロンプト、またはゲート付きコンテンツのオファーを通じて、電子メール アドレスや連絡先の詳細などのユーザー情報を取得します。",
|
|
2495
|
-
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_2": "
|
|
2496
|
+
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_2": "直前の取引やコンテンツの推奨を提供して、ユーザーに滞在してさらに探索するよう促します。",
|
|
2496
2497
|
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_3": "今後のコンテンツ、製品の発売、イベントを予告して、視聴者の期待と興奮を高め、Web サイトへのトラフィックを促進します。",
|
|
2497
2498
|
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_4": "アンケート、投票、フィードバック フォームを組み込んで貴重な洞察を収集し、交流を促進します。",
|
|
2498
2499
|
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_5": "顧客のレビュー、評価、お客様の声などの社会的証明要素を紹介して、購入の意思決定に影響を与える信頼と信用を構築します。",
|
|
2499
|
-
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_6": "
|
|
2500
|
+
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_6": "期間限定のオファー、カウントダウンタイマー、フラッシュセール通知を提示することで、緊迫感を醸成し、即時行動を促します。",
|
|
2500
2501
|
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_7": "ターゲットを絞ったオファー、インセンティブ、またはリマインダーを使用して、躊躇する買い物客を購入を完了させるよう促します。",
|
|
2501
2502
|
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_8": "顧客からの問い合わせの必要性を減らし、ショッピング体験の全体的な満足度を向上させるために、顧客が遭遇する可能性のある一般的な懸念事項や問題のトラブルシューティングに対処する",
|
|
2502
|
-
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_9": "
|
|
2503
|
+
"_WEBPER_TEMP_OBJ_DES_SLIDEIN_9": "登録や出欠確認のオプションを提供して、ウェビナー、ワークショップ、イベントにユーザーを招待し、参加とエンゲージメントを促進します。",
|
|
2503
2504
|
"_LINE_MESS_OBJ_DES_1": "各ユーザーの好み、行動、過去のやり取りに基づいてメッセージをカスタマイズする",
|
|
2504
2505
|
"_LINE_MESS_OBJ_DES_2": "画像、ビデオ、ステッカーなどのマルチメディア コンテンツでメッセージを充実させます",
|
|
2505
2506
|
"_LINE_MESS_OBJ_DES_3": "ユーザーの参加を促すために、クリック可能なボタンなどのインタラクティブな要素を組み込む",
|
|
@@ -2512,7 +2513,7 @@
|
|
|
2512
2513
|
"_LINE_RM_DEFAULT_OBJ_DES_3": "今後のイベント、ウェビナー、またはワークショップを宣伝する",
|
|
2513
2514
|
"_LINE_RM_DEFAULT_OBJ_DES_4": "ユーザーを注目の記事、ビデオ、またはブログ投稿に誘導するオプションを提供します",
|
|
2514
2515
|
"_LINE_RM_DEFAULT_OBJ_DES_5": "他のソーシャル メディア プラットフォームでコミュニティを拡大することで、ブランドの存在感を高めます。",
|
|
2515
|
-
"_LINE_RM_DEFAULT_OBJ_DES_6": "
|
|
2516
|
+
"_LINE_RM_DEFAULT_OBJ_DES_6": "メニューの選択に基づいて、さまざまなインタラクションを通じてユーザーをガイドします。\n\n たとえば、「カスタマー サポート」のメニュー項目を選択すると、「技術サポート」や「請求に関する問い合わせ」など、必要なサポートの種類を選択するオプションがユーザーに表示される場合があります。",
|
|
2516
2517
|
"_LINE_RM_DEFAULT_OBJ_DES_7": "購読フォームや登録プロンプトを備えたLDPにユーザーを誘導して、ユーザー情報を取得します。",
|
|
2517
2518
|
"_LINE_RM_SINGLE_OBJ_DES_1": "各ユーザーの好み、行動、Line チャネルとの過去のやり取りに基づいて、各ユーザーに表示されるメニュー オプションとコンテンツをカスタマイズします。",
|
|
2518
2519
|
"_LINE_RM_SINGLE_OBJ_DES_2": "各ユーザーの興味、閲覧履歴、人口統計に合わせたパーソナライズされた推奨事項や提案を提供し、関連性とエンゲージメントを強化します。",
|
|
@@ -2544,7 +2545,7 @@
|
|
|
2544
2545
|
"_EVENT_TEMPLATE_ECOMMERCE_DES_6": "ユーザー インタラクションに関するデータを使用して、より優れた顧客サポートを提供し、一般的な問題に効果的に対処します。",
|
|
2545
2546
|
"_REALTIME_FACEBOOK_LEAD": "「Facebook Lead」テンプレートを使用すると、Facebook 広告キャンペーンを通じて配布されたフォームに記入したユーザーからリアルタイムで簡単に情報を収集し、この情報を CDP 365 で管理できます。この機能により、顧客データを迅速に一元化し、マーケティングを最適化できます。戦略を立て、コンバージョン率を向上させます。",
|
|
2546
2547
|
"_REALTIME_FACEBOOK_LEAD_OBJ_1": "リードを顧客に変える",
|
|
2547
|
-
"_REALTIME_FACEBOOK_LEAD_DES_1": "
|
|
2548
|
+
"_REALTIME_FACEBOOK_LEAD_DES_1": "収集した情報を使用して、潜在的な見込み客と直接連絡を取ったり相談したりして、彼らを実際の顧客に変えます。",
|
|
2548
2549
|
"_REALTIME_FACEBOOK_LEAD_OBJ_2": "マーケティング戦略の強化",
|
|
2549
2550
|
"_REALTIME_FACEBOOK_LEAD_DES_2": "フォームからのデータを分析して顧客のニーズと好みをより深く理解し、マーケティング戦略を調整して最適化できるようにします。",
|
|
2550
2551
|
"_REALTIME_FACEBOOK_LEAD_OBJ_3": "マーケティングプロセスを自動化する",
|
|
@@ -2588,7 +2589,7 @@
|
|
|
2588
2589
|
"_LIFECYCLE_STAGE_OBJ_1": "ブランド認知度の向上",
|
|
2589
2590
|
"_LIFECYCLE_STAGE_DES_1": "データに基づいた洞察を使用して、潜在的な顧客の注目を集める影響力のあるマーケティング キャンペーンを作成します。",
|
|
2590
2591
|
"_LIFECYCLE_STAGE_OBJ_2": "リード育成の強化",
|
|
2591
|
-
"_LIFECYCLE_STAGE_DES_2": "
|
|
2592
|
+
"_LIFECYCLE_STAGE_DES_2": "パーソナライズされたコンテンツとコミュニケーション戦略を開発し、見込み顧客を検討段階まで導きます。",
|
|
2592
2593
|
"_LIFECYCLE_STAGE_OBJ_3": "コンバージョンの増加",
|
|
2593
2594
|
"_LIFECYCLE_STAGE_DES_3": "ターゲットを絞ったプロモーションと合理化された購入プロセスにより販売目標到達プロセスを最適化し、見込み客を購入者に変えます。",
|
|
2594
2595
|
"_LIFECYCLE_STAGE_OBJ_4": "忠誠心を育む",
|
|
@@ -2617,5 +2618,11 @@
|
|
|
2617
2618
|
"_PROFILES_BTN_SET_DEFAULT": "デフォルトとして設定",
|
|
2618
2619
|
"_PROFILES_DEFAULT_TEMP_TOOLTIP": "デフォルトのテンプレート",
|
|
2619
2620
|
"_PROFILES_MESSAGE_NO_TEMP": "プロフィールを視覚化するためのテンプレートがありません",
|
|
2620
|
-
"_PROFILES_USER_GUIDE_2": "ボタンをクリックしてテンプレートを作成します"
|
|
2621
|
+
"_PROFILES_USER_GUIDE_2": "ボタンをクリックしてテンプレートを作成します",
|
|
2622
|
+
"_COOKIE_DM_DEFINITION": "それは何ですか?",
|
|
2623
|
+
"_COOKIE_DM_INSTRUCTION": "命令",
|
|
2624
|
+
"_COOKIE_DM_DEFINITION_1": "Cookie ドメインを使用すると、追跡 Cookie が設定されるドメインを指定できるため、サブドメイン間でのシームレスなデータ収集が保証されます。これにより、一貫したユーザー ID が維持され、サブドメイン間の正確な追跡が可能になり、顧客プロファイルの断片化が防止されます。 ",
|
|
2625
|
+
"_COOKIE_DM_DEFINITION_2": "統合されたデータ収集を確実にすることで、パーソナライゼーションが強化され、分析が改善され、Web エコシステム全体にわたる顧客の行動をより明確に把握できるようになります。",
|
|
2626
|
+
"_COOKIE_DM_INSTRUCTION_1": "プライマリ ドメインを特定します。 \nこれは、追跡するすべてのサブドメインのベース ドメインです。 \n例: https://antsomi.com",
|
|
2627
|
+
"_COOKIE_DM_INSTRUCTION_2": "Cookie ドメインを構成します。 \nすべてのサブドメイン全体でデータを追跡するには、「.antsomi.com」と入力します (例: shop.antsomi.com または blog.antsomi.com)。"
|
|
2621
2628
|
}
|
|
@@ -1060,6 +1060,7 @@
|
|
|
1060
1060
|
"_TITL_DISPLAY_TIME_AS": "Kiểu hiển thị giờ",
|
|
1061
1061
|
"_TITL_DISPLAY_FUNCTION_OUTPUT": "Hiển thị hàm trả ra",
|
|
1062
1062
|
"_TITL_DOMAIN": "Tên miền",
|
|
1063
|
+
"_TITL_COOKIE_DOMAIN": "Tên miền cookie",
|
|
1063
1064
|
"_TITL_DOWNLOAD_DATA_EXAMPLE": "Tải xuống dữ liệu mẫu",
|
|
1064
1065
|
"_TITL_DRAG_FILE_HERE": "Kéo tệp vào đây",
|
|
1065
1066
|
"_TITL_DRAG_IMAGE_HERE": "Kéo hình ảnh vào đây",
|
|
@@ -2628,5 +2629,11 @@
|
|
|
2628
2629
|
"_PROFILES_BTN_SET_DEFAULT": "Đặt làm mặc định",
|
|
2629
2630
|
"_PROFILES_DEFAULT_TEMP_TOOLTIP": "Mẫu mặc định",
|
|
2630
2631
|
"_PROFILES_MESSAGE_NO_TEMP": "Bạn không có mẫu nào để trực quan hóa hồ sơ",
|
|
2631
|
-
"_PROFILES_USER_GUIDE_2": "Nhấn vào nút để tạo mẫu"
|
|
2632
|
+
"_PROFILES_USER_GUIDE_2": "Nhấn vào nút để tạo mẫu",
|
|
2633
|
+
"_COOKIE_DM_DEFINITION": "Đây là gì?",
|
|
2634
|
+
"_COOKIE_DM_INSTRUCTION": "Hướng dẫn",
|
|
2635
|
+
"_COOKIE_DM_DEFINITION_1": "Cookie domain cho phép bạn chỉ định một domain nơi các cookie theo dõi sẽ được thiết lập, đảm bảo việc thu thập dữ liệu liền mạch trên các subdomain. Điều này giúp đồng nhất định danh khách hàng giữa các trang và ngăn chặn việc hồ sơ khách hàng bị phân mảnh.",
|
|
2636
|
+
"_COOKIE_DM_DEFINITION_2": "Việc thu thập dữ liệu thống nhất giúp tăng cường cá nhân hóa, cải thiện phân tích và cung cấp cái nhìn rõ ràng hơn về hành vi của khách hàng trên toàn bộ hệ sinh thái web của bạn.",
|
|
2637
|
+
"_COOKIE_DM_INSTRUCTION_1": "Xác định Domain chính: \nĐây là tên miền cơ bản cho tất cả các subdomain mà bạn muốn theo dõi. \nVí dụ: https://antsomi.com",
|
|
2638
|
+
"_COOKIE_DM_INSTRUCTION_2": "Cấu hình Cookie Domain: \nNhập .antsomi.com để theo dõi dữ liệu trên tất cả các subdomain (ví dụ: shop.antsomi.com hoặc blog.antsomi.com).\""
|
|
2632
2639
|
}
|